
    :root {
      --icac-red: #b71c1c;
      --icac-red-dark: #8e0000;
      --text-main: #1a2332;
      --text-muted: #4a5562;
      --focus-ring: #0b57d0;
      --bs-primary: #b71c1c;
      --bs-primary-rgb: 183, 28, 28;
      --bs-link-color: #0b57d0;
      --bs-link-hover-color: #0842a0;
      --bs-body-color: #1a2332;
      --bs-secondary-color: #4a5562;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: var(--masthead-height, 6.5rem);
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
      }

      .progress-bar {
        transition: none !important;
      }
    }

    body {
      font-family: "Source Sans 3", "Noto Sans TC", "Noto Sans SC", system-ui, sans-serif;
      font-size: 1.125rem;
      line-height: 1.65;
      color: var(--text-main);
      background: linear-gradient(180deg, #f4f6f9 0%, #eef1f5 100%);
      min-height: 100vh;
      padding-top: var(--masthead-height, 6.5rem);
    }

    a {
      color: var(--bs-link-color);
      text-decoration: underline;
      text-underline-offset: 0.15em;
    }

    a:hover,
    a:focus-visible {
      color: var(--bs-link-hover-color);
    }

    :focus {
      outline: none;
    }

    :focus-visible {
      outline: 3px solid var(--focus-ring);
      outline-offset: 2px;
      scroll-margin-top: var(--masthead-height, 6.5rem);
    }

    #main:focus,
    #main:focus-visible,
    #page-title:focus,
    #page-title:focus-visible {
      outline: none;
      scroll-margin-top: var(--masthead-height, 6.5rem);
    }

    .skip-link {
      position: absolute;
      left: 0.75rem;
      top: 0.75rem;
      z-index: 1000;
      padding: 0.65rem 1rem;
      background: #fff;
      color: var(--text-main);
      border: 2px solid var(--focus-ring);
      border-radius: 0.25rem;
      font-weight: 700;
      text-decoration: none;
      transform: translateY(-200%);
    }

    .skip-link:focus,
    .skip-link:focus-visible {
      transform: translateY(0);
    }

    .masthead {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 200;
      background: #fff;
      color: var(--text-main);
      border-bottom: 1px solid #d5dae2;
      padding-top: 1.15rem;
      padding-bottom: 1.15rem;
      box-shadow: 0 1px 0 rgba(26, 35, 50, 0.04);
    }

    .masthead-brand {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 1rem 1.5rem;
      max-width: 56rem;
      margin: 0 auto;
      text-align: start;
    }

    .masthead-logos {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 0.85rem 1.25rem;
      flex: 0 0 auto;
    }

    .masthead-logo {
      height: 3.25rem;
      width: auto;
      max-width: min(100%, 18rem);
      display: block;
      object-fit: contain;
    }

    .masthead-logo--pcis {
      height: 3rem;
    }

    .masthead-titles {
      min-width: 0;
      flex: 0 1 auto;
      max-width: 100%;
    }

    .masthead-title {
      margin: 0;
      font-size: clamp(1.25rem, 4vw, 1.55rem);
      font-weight: 700;
      line-height: 1.3;
      color: var(--text-main);
    }

    .masthead-subtitle {
      margin-top: 0.35rem;
      font-size: clamp(0.95rem, 2.8vw, 1.05rem);
      color: var(--text-muted);
      line-height: 1.45;
    }

    .card-notice {
      border-top: 4px solid var(--icac-red);
      max-width: 48rem;
    }

    .notice-heading {
      font-size: clamp(1.15rem, 3.2vw, 1.35rem);
      line-height: 1.35;
      color: var(--text-main);
    }

    .notice-heading-zh {
      white-space: nowrap;
    }

    .timer-panel {
      background: #f8f9fb;
      border: 1px solid #d5dae2;
      border-radius: 0.25rem;
    }

    .timer-label {
      font-size: 0.95rem;
      font-weight: 600;
      color: var(--text-muted);
    }

    .timer-num {
      font-size: clamp(2rem, 6vw, 2.5rem);
      font-weight: 700;
      color: var(--icac-red);
      font-variant-numeric: tabular-nums;
      line-height: 1;
    }

    .timer-unit {
      color: var(--text-muted);
    }

    .merge-list {
      font-size: 1.05rem;
    }

    .merge-list li {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem 0.75rem;
    }

    .merge-site {
      display: inline-flex;
      align-items: center;
      gap: 0.55rem;
      min-width: 0;
    }

    .merge-from {
      display: inline-flex;
      flex-wrap: nowrap;
      align-items: center;
      gap: 0.5rem 0.75rem;
      min-width: 0;
      max-width: 100%;
    }

    .merge-arrow {
      font-size: 1.25rem;
      line-height: 1;
      flex-shrink: 0;
    }

    .site-logo {
      height: 2.75rem;
      width: auto;
      max-width: min(100%, 11rem);
      object-fit: contain;
      flex-shrink: 0;
    }

    .site-logo--wide {
      height: 2.5rem;
      max-width: min(100%, 13rem);
    }

    .lang-label {
      font-size: 0.95rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--icac-red);
      margin: 0;
    }

    .notice-note {
      color: var(--text-muted);
    }

    [lang="zh-Hant"] { font-family: "Noto Sans TC", "Noto Sans SC", "Source Sans 3", sans-serif; }
    [lang="zh-Hans"] { font-family: "Noto Sans SC", "Noto Sans TC", "Source Sans 3", sans-serif; }

    .domain-from {
      color: var(--text-muted);
    }

    .domain-from .domain-text {
      text-decoration: line-through;
      text-decoration-color: #8b949e;
    }

    code {
      color: var(--text-main);
      background: #eef1f5;
      padding: 0.1em 0.35em;
      border-radius: 0.2rem;
      word-break: break-word;
    }

    .btn-icac {
      --bs-btn-bg: var(--icac-red);
      --bs-btn-border-color: var(--icac-red);
      --bs-btn-hover-bg: var(--icac-red-dark);
      --bs-btn-hover-border-color: var(--icac-red-dark);
      --bs-btn-active-bg: var(--icac-red-dark);
      --bs-btn-active-border-color: var(--icac-red-dark);
      --bs-btn-color: #fff;
      --bs-btn-hover-color: #fff;
      --bs-btn-active-color: #fff;
      text-decoration: none;
    }

    .btn-go {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.85rem;
      text-align: start;
      min-height: 3rem;
      padding: 0.9rem 1.25rem;
      font-size: 1.15rem;
      line-height: 1.35;
    }

    .btn-go:focus-visible {
      outline: 3px solid #fff;
      outline-offset: 3px;
      box-shadow: 0 0 0 6px var(--focus-ring);
    }

    .btn-go-logo {
      height: 2.75rem;
      width: auto;
      max-width: 9rem;
      object-fit: contain;
      flex-shrink: 0;
      background: #fff;
      border-radius: 0.25rem;
      padding: 0.2rem 0.35rem;
    }

    .btn-go-text {
      min-width: 0;
    }

    .btn-go-sub {
      display: block;
      margin-top: 0.15rem;
      font-size: 1rem;
      font-weight: 600;
      opacity: 1;
      color: #fff;
    }

    .action-row {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0.75rem;
    }

    .btn-outline-action {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 2.75rem;
      padding: 0.65rem 1.15rem;
      font-size: 1.05rem;
      font-weight: 600;
      line-height: 1.3;
      color: var(--text-main);
      background: #fff;
      border: 2px solid #1a2332;
      border-radius: 0.375rem;
      text-decoration: none;
      text-align: center;
    }

    .btn-lang {
      display: inline;
    }

    .btn-lang-en,
    .btn-lang-zh {
      display: inline;
    }

    .btn-outline-action:hover,
    .btn-outline-action:focus-visible {
      color: #fff;
      background: #1a2332;
      border-color: #1a2332;
      text-decoration: none;
    }

    .btn-outline-action:focus-visible {
      outline: 3px solid var(--focus-ring);
      outline-offset: 2px;
    }

    #stay.is-cancelled,
    #stay:disabled {
      color: var(--text-muted);
      background: #f1f3f5;
      border-color: #c5cbd3;
      cursor: default;
      opacity: 1;
    }

    .progress {
      height: 0.5rem;
      background-color: #d5dae2;
    }

    .progress-bar {
      background-color: var(--icac-red);
      transition: width 0.35s linear;
    }

    .site-footer {
      max-width: 48rem;
      margin: 0 auto;
      text-align: center;
      font-size: 1rem;
      color: var(--text-muted);
    }

    .wcag-block {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.75rem;
    }

    .wcag-logo-link {
      display: inline-flex;
      min-height: 2.75rem;
      min-width: 2.75rem;
      align-items: center;
      justify-content: center;
      text-decoration: none;
    }

    .wcag-logo {
      display: block;
      height: 31px;
      width: 88px;
    }

    .wcag-claim {
      max-width: 40rem;
      font-size: 0.95rem;
      line-height: 1.5;
      text-align: center;
    }

    .back-to-top {
      position: fixed;
      right: 1rem;
      bottom: 1rem;
      z-index: 190;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 2.75rem;
      height: 2.75rem;
      border-radius: 50%;
      background: var(--icac-red);
      color: #fff;
      text-decoration: none;
      box-shadow: 0 2px 8px rgba(26, 35, 50, 0.22);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translateY(0.5rem);
      transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease, background-color 0.15s ease;
    }

    .back-to-top.is-visible {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateY(0);
    }

    .back-to-top:hover,
    .back-to-top:focus-visible {
      background: var(--icac-red-dark);
      color: #fff;
    }

    .back-to-top:focus-visible {
      outline: 3px solid var(--focus-ring);
      outline-offset: 3px;
    }

    @media (max-width: 575.98px) {
      body {
        font-size: 1.05rem;
      }

      .masthead-brand {
        flex-direction: column;
        text-align: center;
      }

      .masthead-titles {
        width: auto;
      }

      .masthead-logos {
        flex-wrap: nowrap;
        width: 100%;
        max-width: 100%;
        gap: 0.5rem 0.75rem;
      }

      .masthead-logos > a {
        flex: 1 1 0;
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: center;
      }

      .masthead-logo {
        height: 2.25rem;
        max-width: 100%;
      }

      .masthead-logo--pcis {
        height: 2.1rem;
      }

      .btn-go {
        flex-direction: column;
        text-align: center;
        gap: 0.65rem;
      }

      .btn-go-logo {
        height: 2.4rem;
        max-width: 8rem;
      }

      .action-row {
        flex-direction: column;
      }

      .btn-outline-action {
        width: 100%;
      }

      #stay .btn-lang {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.2rem;
        line-height: 1.25;
      }

      #stay .btn-lang-sep {
        display: none;
      }

      #stay .btn-lang-en,
      #stay .btn-lang-zh {
        display: block;
      }

      .merge-list li {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 0.55rem;
        width: 100%;
      }

      .merge-from {
        display: flex;
        width: 100%;
        justify-content: flex-start;
        align-items: center;
        gap: 0.5rem 0.65rem;
      }

      .merge-list li > .merge-site {
        display: flex;
        width: 100%;
        justify-content: flex-start;
        align-items: center;
      }

      .merge-site {
        flex-wrap: nowrap;
        gap: 0.45rem;
        min-width: 0;
      }

      .site-logo {
        height: 2.4rem;
        max-width: 9rem;
        flex-shrink: 1;
        min-width: 0;
      }

      .site-logo--wide {
        height: 2.2rem;
        max-width: 10rem;
      }

      .merge-site .domain-text,
      .merge-site .js-site-host {
        white-space: nowrap;
        font-size: 1rem;
        min-width: 0;
      }
    }
