/* ============================================================
   I-9-11 醫工量子：UCLA 菁英計畫 · clean, high-contrast, dual-theme
   Day (default, light) + Night (dark). UCLA navy + gold. Readability first.
   ============================================================ */

:root{
  /* ---- DAY (default) ---- */
  --bg:#FAFBFD; --bg-2:#FFFFFF; --bg-3:#EEF2F8;
  --ink:#0C1426; --ink-2:#46536C;
  --heading:#0E1E4A;
  --line:rgba(12,20,38,.12); --line-2:rgba(12,20,38,.07);
  --brand:#0E1E4A; --brand-2:#14306B;
  --gold:#9C6B06;            /* gold for small text/links (AA on light) */
  --gold-bright:#FBB615;     /* decorative / large only */
  /* two-hue tonal family (gold + steel), harmonious soft shades */
  --gold-deep:#875613; --steel:#2A6A86; --steel-deep:#21505F; --steel-mid:#3E8099; --steel-soft:#7FB0C6;
  --cyan:var(--steel); --violet:var(--steel-deep); --rose:var(--gold);
  --accent:var(--steel);
  --card-shadow:0 1px 2px rgba(20,38,60,.04),0 14px 34px rgba(31,80,95,.07);
  --field-1:#9FB4D9; --field-2:#C7A24B;   /* hero particle tints (always over dark) */

  /* hero is always a dark photo panel → fixed light text */
  --on-dark:#F4F8FF; --on-dark-dim:rgba(231,239,255,.74);

  /* fonts */
  --f-display:'Clash Display','Space Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  --f-body:'Inter',-apple-system,'Segoe UI',sans-serif;
  --f-mono:'Space Mono','JetBrains Mono',ui-monospace,monospace;
  --f-tc:'Noto Sans TC',-apple-system,'PingFang TC','Microsoft JhengHei',sans-serif;

  --t-hero:clamp(1.8rem,3.4vw,2.9rem);
  --t-h2:clamp(1.5rem,2.8vw,2.2rem);
  --t-h3:clamp(1.15rem,1.7vw,1.4rem);
  --t-body:clamp(1rem,.4vw+.92rem,1.12rem);

  --nav-h:62px; --rail-h:24px; --pad:clamp(1.15rem,4vw,2.5rem); --maxw:1120px; --measure:64ch;
  --ease:cubic-bezier(.16,1,.3,1);
  --z-prog:55; --z-nav:50; --z-skip:60;
}
:root[data-theme="night"]{
  --bg:#060B1B; --bg-2:#0B142E; --bg-3:#0E1A3A;
  --ink:#E7EEFC; --ink-2:#9DACCB;
  --heading:#F2F6FF;
  --line:rgba(160,180,220,.16); --line-2:rgba(160,180,220,.09);
  --brand:#EAF1FF; --brand-2:#CBD9F5;
  --gold:#FBB615; --gold-bright:#FFD25A;
  --gold-deep:#E0A24A; --steel:#74C2DE; --steel-deep:#4E9ABA; --steel-mid:#5FB0D0; --steel-soft:#3E7E97;
  --cyan:var(--steel); --violet:var(--steel-deep); --rose:var(--gold);
  --accent:var(--steel);
  --card-shadow:0 1px 0 rgba(160,180,220,.06);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@view-transition{navigation:auto}

body{
  font-family:var(--f-body);font-size:var(--t-body);line-height:1.62;color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;
  transition:background .4s var(--ease),color .4s var(--ease);
}
body[data-lang="zh"]{font-family:var(--f-tc)}
:lang(zh-Hant),.tc{font-family:var(--f-tc)}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold-bright);color:#0C1426}
h1,h2,h3,h4{color:var(--heading);font-family:var(--f-display);font-weight:600;line-height:1.1;letter-spacing:-.015em}
strong{color:var(--heading);font-weight:600}

.mono{font-family:var(--f-mono);font-feature-settings:"tnum" 1;letter-spacing:.01em}
.mono:lang(zh-Hant){font-family:var(--f-tc)}
.cross{color:var(--gold-bright);font-weight:500;padding:0 .04em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:8px;left:8px;z-index:var(--z-skip);background:var(--gold-bright);color:#0C1426;padding:.6rem 1rem;font-family:var(--f-mono);font-size:.8rem;font-weight:700;transform:translateY(-160%);transition:transform .2s var(--ease)}
.skip-link:focus{transform:translateY(0)}
:where(a,button,[tabindex],input,summary):focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px;border-radius:3px}

/* top horizontal measurement rail (D01→D60) */
.railbar{position:fixed;top:var(--nav-h);left:0;right:0;height:var(--rail-h);z-index:var(--z-prog);display:flex;align-items:center;gap:.8rem;padding:0 var(--pad);background:color-mix(in oklab,var(--bg) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);overflow:hidden}
.railbar__end{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--f-mono);font-size:.7rem;color:var(--ink-2);flex:0 0 auto;white-space:nowrap}
.railbar__dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 6px color-mix(in oklab,var(--gold-bright) 60%,transparent)}
.railbar__dot--to{background:var(--cyan);box-shadow:0 0 6px color-mix(in oklab,var(--cyan) 60%,transparent)}
.railbar__path{position:relative;flex:1 1 auto;height:100%}
.railbar__line{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);border-top:1px dashed color-mix(in oklab,var(--line) 70%,transparent)}
.railbar__ticks{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:10px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.rtick{width:1px;height:5px;background:var(--line);transition:height .2s var(--ease),background .2s}
.rtick--week{height:10px;background:color-mix(in oklab,var(--ink-2) 55%,transparent)}
.rtick.past{background:var(--steel)}
.rtick--week.past{background:var(--gold)}
.railbar__trail{position:absolute;left:0;top:50%;transform:translateY(-50%);height:2px;width:0;background:linear-gradient(90deg,color-mix(in oklab,var(--gold-bright) 25%,transparent),var(--gold-bright));border-radius:2px}
.railbar__plane{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);color:var(--gold-bright);line-height:0;will-change:left}
.railbar__plane svg{width:15px;height:15px;filter:drop-shadow(0 0 5px color-mix(in oklab,var(--gold-bright) 55%,transparent));transition:transform .35s var(--ease)}
.railbar.arrived .railbar__plane svg{transform:scale(1.14)}
.railbar.arrived .railbar__dot--to{background:var(--gold-bright);animation:landed 1.5s var(--ease) infinite}
@keyframes landed{0%{box-shadow:0 0 0 0 rgba(251,182,21,.5)}70%,100%{box-shadow:0 0 0 7px rgba(251,182,21,0)}}

/* ---- Nav ---- */
.nav{position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:var(--z-nav);display:flex;align-items:center;gap:1rem;
  padding:0 var(--pad);background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav__brand{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}
.nav__mark{height:1.95em;width:1.95em;aspect-ratio:1;flex:none;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px rgba(251,182,21,.42),0 0 9px rgba(251,182,21,.28);transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.nav__brand:hover .nav__mark{box-shadow:0 0 0 1px rgba(251,182,21,.72),0 0 14px rgba(251,182,21,.5);transform:scale(1.06)}
.nav__brand b{font-family:var(--f-mono);font-weight:700;letter-spacing:.03em;font-size:.9rem;color:var(--gold)}
.nav__brand span{font-family:var(--f-tc);font-weight:700;font-size:.92rem;color:var(--heading)}
.nav__links{display:flex;gap:clamp(.5rem,1.4vw,1.2rem);margin-left:auto}
.nav__link{font-family:var(--f-mono);font-size:.78rem;color:var(--ink-2);padding:.35rem .1rem;position:relative;white-space:nowrap;transition:color .25s}
.nav__link::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:1.5px;background:var(--gold-bright);transition:right .3s var(--ease)}
.nav__link:hover,.nav__link:focus-visible,.nav__link[aria-current="page"]{color:var(--heading)}
.nav__link:hover::after,.nav__link:focus-visible::after,.nav__link[aria-current="page"]::after{right:0}
.nav__tools{display:flex;align-items:center;gap:.5rem;flex:0 0 auto}
.iconbtn,.nav__lang{background:transparent;border:1px solid var(--line);color:var(--ink);cursor:pointer;font-family:var(--f-mono);font-size:.76rem;transition:border-color .25s,color .25s;display:inline-flex;align-items:center;justify-content:center}
.iconbtn{width:34px;height:34px}
.nav__lang{gap:.35rem;padding:.3rem .5rem}
.iconbtn:hover,.nav__lang:hover{border-color:var(--gold)}
.iconbtn svg{width:17px;height:17px}
.nav__lang .o{opacity:.5;transition:opacity .2s,color .2s}.nav__lang .o.on{opacity:1;color:var(--gold)}
.theme-day{display:none}.theme-night{display:inline-flex}
:root[data-theme="night"] .theme-day{display:inline-flex}:root[data-theme="night"] .theme-night{display:none}
.nav__burger{display:none;width:34px;height:34px;background:transparent;border:1px solid var(--line);cursor:pointer;position:relative}
.nav__burger span{position:absolute;left:8px;right:8px;height:1.5px;background:var(--ink);transition:.3s var(--ease)}
.nav__burger span:nth-child(1){top:12px}.nav__burger span:nth-child(2){top:16px}.nav__burger span:nth-child(3){top:20px}

/* ---- Layout ---- */
body{padding-top:calc(var(--nav-h) + var(--rail-h))}
.section{padding:clamp(3.2rem,8vh,6.5rem) var(--pad)}
.section--alt{background:var(--bg-3)}
.wrap{max-width:var(--maxw);margin:0 auto}
.section__head{max-width:60rem;margin:0 auto clamp(1.8rem,4vh,3rem)}
.klabel{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--f-mono);font-size:.74rem;color:var(--accent);margin-bottom:.9rem}
.klabel .n{color:var(--gold);font-weight:700}
.section__title{font-size:var(--t-h2);text-wrap:balance;max-width:24ch}
.section__title .tc{font-family:var(--f-tc);font-weight:700}
.section__note{margin-top:.9rem;color:var(--ink-2);max-width:54ch;text-wrap:pretty}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--f-mono);font-size:.82rem;font-weight:700;padding:.8rem 1.4rem;cursor:pointer;border:1px solid transparent;transition:transform .3s var(--ease),background .25s,color .25s,border-color .25s}
.btn--gold{background:var(--gold-bright);color:#0C1426}
.btn--gold:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(251,182,21,.3)}
.btn--ghost{background:transparent;color:var(--heading);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.btn .arr{transition:transform .3s var(--ease)}.btn:hover .arr{transform:translateX(4px)}
.cta-row{display:flex;flex-wrap:wrap;gap:.7rem}

/* ---- Hero (always dark photo panel) ---- */
.hero{position:relative;min-height:min(88vh,720px);display:flex;align-items:center;padding:clamp(2rem,6vh,4rem) var(--pad);overflow:hidden;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-2;background:#04081A}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:grayscale(.3) contrast(1.02) brightness(.55) saturate(1.1)}
.hero__media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(110deg,rgba(4,8,26,.92) 0%,rgba(6,12,34,.7) 45%,rgba(8,20,55,.4) 100%),
  radial-gradient(900px 500px at 80% 110%,rgba(251,182,21,.16),transparent 60%)}
#hero-field{position:absolute;inset:0;z-index:-1;width:100%;height:100%;opacity:.9}
.hero__inner{max-width:var(--maxw);margin:0 auto;width:100%}
.hero__eyebrow{font-family:var(--f-mono);font-size:.8rem;color:var(--gold-bright);margin-bottom:1.2rem;display:inline-flex;align-items:center;gap:.55rem}
.hero__eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--gold-bright);box-shadow:0 0 10px var(--gold-bright)}
.hero__title{color:var(--on-dark);font-size:var(--t-hero);max-width:20ch;letter-spacing:-.02em}
.hero__title-zh{font-family:var(--f-tc);font-weight:700;color:#fff}
.hero__title-zh .gold{color:var(--gold-bright)}
.hero__title-zh{display:none}
body[data-lang="zh"] .hero__title-zh{display:block}
body[data-lang="zh"] .hero__title-en{display:none}
.hero__sub{margin-top:1.1rem;color:var(--on-dark);font-size:clamp(1.05rem,1.5vw,1.3rem);font-weight:500;max-width:40ch}
.hero__meta{margin-top:1rem;font-family:var(--f-mono);font-size:.84rem;color:var(--on-dark-dim);display:flex;flex-wrap:wrap;gap:.4rem .8rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.9rem}
.hero__cta .btn--ghost{color:var(--on-dark);border-color:rgba(231,239,255,.3)}
.hero__cta .btn--ghost:hover{border-color:var(--gold-bright);color:var(--gold-bright)}
.hero--page{min-height:min(46vh,400px)}
.hero--page .hero__title{font-size:clamp(1.55rem,3vw,2.4rem);max-width:26ch}
.hero--page .hero__inner{padding-block:.5rem}

/* Taiwan glyph: gold rim-lit eyebrow bullet + faint ambient hero watermark (same source path) */
.tw-eyebrow{height:1.3em;aspect-ratio:638/1126;width:auto;flex:none;overflow:visible;
  fill:color-mix(in oklab,var(--gold-bright) 8%,transparent);stroke:var(--gold-bright);stroke-width:1.3;
  filter:drop-shadow(0 0 4px color-mix(in oklab,var(--gold-bright) 70%,transparent)) drop-shadow(0 0 9px color-mix(in oklab,var(--gold) 35%,transparent));transition:filter .3s var(--ease)}
.hero__eyebrow:hover .tw-eyebrow{filter:drop-shadow(0 0 7px color-mix(in oklab,var(--gold-bright) 78%,transparent)) drop-shadow(0 0 12px color-mix(in oklab,var(--gold) 42%,transparent))}

/* endorsement rail: four institutional logos woven into the hero bottom as frosted credential chips */
.hero__endorse{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin-top:clamp(2rem,5vh,3.2rem);opacity:.92;transition:opacity .3s var(--ease)}
.hero__endorse:hover{opacity:1}
.endorse__label{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-dim)}
.endorse__tick{display:inline-block;width:14px;height:1px;background:var(--gold);opacity:.55}
.endorse__orgs{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;list-style:none;margin:0;padding:0}
.cred-chip{display:inline-flex;align-items:center;background:rgba(247,249,252,.93);border:1px solid rgba(255,255,255,.5);border-radius:8px;padding:5px 11px;box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 6px 18px rgba(2,6,18,.42);backdrop-filter:blur(3px);transition:background .3s var(--ease),transform .3s var(--ease)}
.cred-chip:hover{background:#fff;transform:translateY(-1px)}
.cred-chip img{display:block;width:auto}
@media (max-width:720px){.hero__endorse{gap:.5rem}.endorse__label{flex-basis:100%}.endorse__tick{display:none}.endorse__orgs{gap:.5rem}.cred-chip{box-shadow:none;padding:4px 8px}.cred-chip img{height:17px!important}.cred-chip--taita img{height:22px!important}}

/* view counter docked on the flight rail */
.railbar__count{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.04em;color:var(--ink-2);flex:0 0 auto;white-space:nowrap;min-width:7ch}
.railbar__count-dot{width:5px;height:5px;border-radius:50%;background:var(--steel);box-shadow:0 0 6px color-mix(in oklab,var(--steel) 60%,transparent);flex:none}
.railbar__count-num{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.railbar__count-label{text-transform:lowercase;opacity:.7}
@media (max-width:480px){.railbar__count{display:none}}

/* ---- Stats ---- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.7rem,1.5vw,1.2rem)}
.stat{padding:clamp(1.1rem,2.2vw,1.8rem);border:1px solid var(--line);border-radius:14px;background:var(--bg-2);box-shadow:var(--card-shadow)}
.stat__num{font-family:var(--f-display);font-weight:600;font-size:clamp(2.2rem,4.5vw,3.4rem);line-height:1;color:var(--heading);letter-spacing:-.02em}
.stat__num .u{color:var(--gold);font-size:.42em;margin-left:.12em;vertical-align:.35em}
.stat__label{margin-top:.5rem;font-family:var(--f-mono);font-size:.76rem;color:var(--ink-2)}

/* ---- Signal cards ---- */
.signals{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:clamp(1rem,2vw,1.4rem)}
.signal-card{padding:clamp(1.3rem,2.4vw,1.8rem);border:1px solid var(--line);border-radius:14px;background:var(--bg-2);box-shadow:var(--card-shadow);transition:transform .25s var(--ease),border-color .3s}
.signal-card:hover,.signal-card:focus-within{transform:translateY(-3px);border-color:var(--accent)}
.signal-card[data-key="quantum"]{--accent:var(--steel)}.signal-card[data-key="quantum2"]{--accent:var(--steel-deep)}
.signal-card[data-key="medicine"]{--accent:var(--gold)}.signal-card[data-key="gold"]{--accent:var(--gold-deep)}
.signal-card__wave{width:100%;height:38px;margin-bottom:1rem}
.signal-card__wave path{fill:none;stroke:var(--accent);stroke-width:1.8}
.signal-card__field{font-family:var(--f-mono);font-size:.72rem;color:var(--accent);margin-bottom:.5rem}
.signal-card__title{font-size:var(--t-h3);margin-bottom:.6rem;line-height:1.18}
.signal-card__desc{color:var(--ink-2);font-size:.96rem;text-wrap:pretty}
.signal-card__tag{margin-top:.8rem;font-family:var(--f-mono);font-size:.72rem;color:var(--ink-2);opacity:.85}

/* ---- Home themes teaser (compact, no duplicate of Program cards) ---- */
.theme-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(1.5rem,3vw,3rem);max-width:62rem}
.theme-li{display:flex;align-items:center;gap:.7rem;padding:1rem 0;border-top:1px solid var(--line)}
.theme-li__dot{width:9px;height:9px;border-radius:50%;background:var(--acc-c,var(--steel));flex:0 0 auto;box-shadow:0 0 7px color-mix(in oklab,var(--acc-c,var(--steel)) 55%,transparent)}
.theme-li__t{font-family:var(--f-display);font-weight:500;font-size:1.02rem;line-height:1.2}
.theme-li__k{margin-left:auto;font-family:var(--f-mono);font-size:.7rem;color:var(--ink-2);white-space:nowrap}
.theme-li[data-acc="gold"]{--acc-c:var(--gold)}.theme-li[data-acc="gold-deep"]{--acc-c:var(--gold-deep)}.theme-li[data-acc="steel"]{--acc-c:var(--steel)}.theme-li[data-acc="steel-deep"]{--acc-c:var(--steel-deep)}
@media (max-width:600px){.theme-list{grid-template-columns:1fr}}

/* ---- Vertical timeline (curriculum) ---- */
.vtimeline{position:relative;max-width:920px;margin:0 auto;padding-left:clamp(2.4rem,5vw,3.4rem);--vt-line-left:clamp(15px,2.2vw,22px)}
.vtimeline::before{content:"";position:absolute;left:var(--vt-line-left);top:var(--vt-y0,8px);bottom:var(--vt-y1,8px);width:2px;background:linear-gradient(var(--accent),var(--line) 92%)}
/* scroll-driven: a glowing star travels down the line, the trail lights up, nodes ignite like lamps */
.vt-progress{position:absolute;left:var(--vt-line-left);top:var(--vt-y0,8px);width:2px;height:0;border-radius:2px;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,var(--steel-deep),var(--gold-deep) 55%,var(--gold-bright));
  box-shadow:0 0 9px 1px color-mix(in srgb,var(--gold-deep) 65%,transparent)}
/* soft travelling light head — sits BEHIND the nodes (z-index 0) so it never covers an icon */
.vt-head{position:absolute;left:var(--vt-line-left);top:8px;width:14px;height:14px;border-radius:50%;z-index:0;pointer-events:none;opacity:0;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,var(--gold-bright) 0%,color-mix(in srgb,var(--gold-deep) 80%,transparent) 45%,transparent 72%)}
.vt-live .vt-head{opacity:1}
.vt-node{transition:border-color .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease),background .4s var(--ease)}
.vt-node.is-lit{border-color:var(--accent);color:var(--gold-bright);
  box-shadow:0 0 0 1px var(--accent),0 0 17px 1px color-mix(in srgb,var(--accent) 55%,transparent);
  background:color-mix(in srgb,var(--accent) 13%,var(--bg-2))}
@media (prefers-reduced-motion:no-preference){.vt-head{animation:vtPulse 2.2s var(--ease) infinite}}
@keyframes vtPulse{0%,100%{opacity:.7;transform:translate(-50%,-50%) scale(.85)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.25)}}
.vt-item{position:relative;padding:0 0 clamp(1.6rem,3.5vh,2.6rem)}
.vt-item[data-key="quantum"]{--accent:var(--steel)}.vt-item[data-key="gold"]{--accent:var(--gold-deep)}
.vt-item[data-key="medicine"]{--accent:var(--gold)}.vt-item[data-key="ink"]{--accent:var(--steel-deep)}
.vt-node{position:absolute;left:calc(-1 * clamp(2.4rem,5vw,3.4rem));top:0;width:clamp(34px,4.5vw,46px);height:clamp(34px,4.5vw,46px);
  display:grid;place-items:center;border-radius:12px;background:var(--bg-2);border:1px solid var(--line);color:var(--accent);box-shadow:var(--card-shadow);transform:translateX(calc(clamp(15px,2.2vw,22px) - 50%));z-index:1}
.vt-node svg{width:22px;height:22px}
.vt-card{border:1px solid var(--line);border-radius:14px;background:var(--bg-2);box-shadow:var(--card-shadow);padding:clamp(1.2rem,2.4vw,1.8rem);transition:transform .25s var(--ease),border-color .3s}
.vt-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.vt-band{font-family:var(--f-mono);font-size:.76rem;color:var(--accent);margin-bottom:.45rem}
.vt-title{font-size:var(--t-h3);margin-bottom:1.1rem;text-wrap:balance}
.vt-io{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.vt-io__col .lab{display:block;font-family:var(--f-mono);font-size:.7rem;color:var(--ink-2);margin-bottom:.45rem}
.vt-io__col .lab b{color:var(--accent)}
.vt-io p{font-size:.94rem;color:var(--ink-2);text-wrap:pretty}
.vt-deliver{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line-2);font-size:.97rem;color:var(--ink)}
.vt-deliver .k{font-family:var(--f-mono);font-size:.7rem;color:var(--gold);display:block;margin-bottom:.3rem}

/* ---- One day figure ---- */
.day-figure{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:clamp(1rem,2vw,1.4rem);list-style:none}
.day-step{padding:1.3rem;border:1px solid var(--line);border-radius:14px;background:var(--bg-2);box-shadow:var(--card-shadow)}
.day-step__fig{display:flex;align-items:center;gap:.5rem;font-family:var(--f-mono);font-size:.74rem;color:var(--accent);margin-bottom:.7rem}
.day-step__fig svg{width:18px;height:18px}
.day-step--weekend{--accent:var(--ink-2);opacity:.9}
.day-step__t{font-size:1.18rem;margin-bottom:.45rem}
.day-step p{color:var(--ink-2);font-size:.94rem}

/* ---- Prose ---- */
.prose{max-width:var(--measure)}
.prose .lede{font-size:clamp(1.12rem,1.4vw,1.42rem);line-height:1.5;color:var(--ink);margin-bottom:1.2rem}
.prose p{margin-bottom:1.05rem;color:var(--ink-2);text-wrap:pretty}
.prose p strong{color:var(--heading)}
.dropcap{float:left;font-family:var(--f-display);font-weight:600;font-size:3.3em;line-height:.72;padding:.05em .14em 0 0;color:var(--gold)}
.pub{margin-top:1.8rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.pub__label{font-family:var(--f-mono);font-size:.72rem;color:var(--ink-2);margin-bottom:.5rem}
.pub ul{list-style:none;display:grid;gap:.3rem;font-family:var(--f-mono);font-size:.84rem;color:var(--ink-2)}

/* ---- Faculty ---- */
.fac-lead{margin-bottom:1.6rem}
.fac-band{margin-top:2rem}
.fac-band__title{font-family:var(--f-mono);font-size:.8rem;color:var(--accent);padding-bottom:.5rem;border-bottom:1px solid var(--line);margin-bottom:1rem}
.fac-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(1rem,2vw,1.4rem)}
.fac-card{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.2rem;border:1px solid var(--line);border-radius:14px;background:var(--bg-2);box-shadow:var(--card-shadow);transition:transform .25s var(--ease),border-color .3s}
.fac-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.fac-card--lead{grid-column:1/-1;align-items:center;background:linear-gradient(120deg,var(--bg-2),var(--bg-3))}
.fac-shot{width:60px;height:60px;border-radius:50%;overflow:hidden;background:var(--bg-3);border:1px solid var(--line);display:grid;place-items:center;flex:0 0 auto;position:relative}
.fac-card--lead .fac-shot{width:96px;height:96px}
.fac-shot img{width:100%;height:100%;object-fit:cover}
.fac-shot .mono-ph{font-family:var(--f-display);font-weight:600;font-size:1.2rem;color:var(--accent)}
.fac-card--lead .fac-shot .mono-ph{font-size:2rem}
.fac-name{font-size:1.12rem;line-height:1.16}
.fac-card--lead .fac-name{font-size:1.5rem}
.fac-name .tc{font-family:var(--f-tc);color:var(--ink-2);font-size:.85em;font-weight:500}
.fac-role{font-family:var(--f-mono);font-size:.74rem;color:var(--accent);margin:.3rem 0 .45rem}
.fac-areas{font-size:.9rem;color:var(--ink-2);text-wrap:pretty}
.fac-links{display:flex;gap:.4rem;margin-top:.7rem}
.fac-links a{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--ink-2);transition:color .2s,border-color .2s,transform .2s}
.fac-links a:hover{color:var(--gold);border-color:var(--gold);transform:translateY(-2px)}
.fac-links a[aria-disabled="true"]{opacity:.4;pointer-events:none}
.fac-links svg{width:15px;height:15px}
/* faculty bio expand/collapse (for longer self-introductions) */
.fac-more{margin-top:.5rem}
.fac-more__sum{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;list-style:none;font-family:var(--f-mono);font-size:.72rem;color:var(--accent);-webkit-tap-highlight-color:transparent}
.fac-more__sum::-webkit-details-marker{display:none}
.fac-more__sum:hover{color:var(--gold)}
.fac-more__sum::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .25s var(--ease)}
.fac-more[open] .fac-more__sum::after{transform:rotate(-135deg)}
.fac-more__less{display:none}
.fac-more[open] .fac-more__more{display:none}
.fac-more[open] .fac-more__less{display:inline}
.fac-more__body{margin-top:.45rem}
.fac-more[open] .fac-more__body{animation:introIn .3s var(--ease)}

/* ---- Delegation ---- */
.manifest{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:clamp(1rem,2vw,1.4rem)}
.delegate{padding:1.2rem;border:1px solid var(--line);border-radius:14px;background:var(--bg-2);box-shadow:var(--card-shadow);transition:transform .25s var(--ease),border-color .3s}
.delegate:hover{transform:translateY(-2px)}
.delegate[data-g="A"]{--accent:var(--steel)}.delegate[data-g="B"]{--accent:var(--gold)}.delegate[data-g="C"]{--accent:var(--gold-deep)}
.delegate[data-g="D"]{--accent:var(--steel-deep)}.delegate[data-g="E"]{--accent:var(--steel-mid)}
.delegate:hover{border-color:var(--accent)}
.delegate__no{font-family:var(--f-mono);font-size:.74rem;color:var(--accent)}
.delegate__name{font-size:1.2rem;margin:.3rem 0;line-height:1.12}
.delegate__name .tc{font-family:var(--f-tc);color:var(--ink-2);font-size:.8em;font-weight:500}
.delegate__school{font-family:var(--f-mono);font-size:.8rem;color:var(--ink-2)}
.accompanying{margin-top:1.8rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.accompanying .label{font-family:var(--f-mono);font-size:.74rem;color:var(--ink-2);margin-bottom:.4rem}
.accompanying .names{font-family:var(--f-display);font-size:1.05rem;color:var(--heading)}
.accompanying .names .tc{font-family:var(--f-tc);color:var(--ink-2)}
/* student cards: reserved headshot + link slots, and an expandable self-intro */
.delegate__head{display:flex;gap:.85rem;align-items:flex-start}
.delegate__meta{min-width:0}
.delegate__intro{margin-top:.9rem;border-top:1px solid var(--line)}
.delegate__introbtn{display:flex;align-items:center;gap:.5rem;padding:.7rem .1rem .15rem;cursor:pointer;list-style:none;font-family:var(--f-mono);font-size:.74rem;color:var(--accent);-webkit-tap-highlight-color:transparent}
.delegate__introbtn::-webkit-details-marker{display:none}
.delegate__introbtn:hover{color:var(--gold)}
.delegate__chev{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-left:auto;transition:transform .25s var(--ease)}
.delegate__intro[open] .delegate__chev{transform:rotate(-135deg)}
.delegate__bio{font-size:.86rem;color:var(--ink-2);padding:.35rem 0 .15rem;font-style:italic;text-wrap:pretty}
.delegate__intro[open] .delegate__bio{animation:introIn .32s var(--ease)}
@keyframes introIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

/* ---- Media band (image strip) ---- */
.mediaband{position:relative;height:clamp(220px,40vh,420px);overflow:hidden;border-radius:0}
.mediaband img{width:100%;height:100%;object-fit:cover}
.mediaband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,12,34,.25),rgba(6,12,34,.55))}
.mediaband__cap{position:absolute;left:var(--pad);bottom:1.1rem;font-family:var(--f-mono);font-size:.74rem;color:rgba(231,239,255,.8)}

/* ---- Generative scene art (SVG, navy plates; consistent in both themes) ---- */
.scene-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(.8rem,1.6vw,1.2rem)}
.scene-plate{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#070C1E;aspect-ratio:5/3;box-shadow:var(--card-shadow)}
.scene-plate img{width:100%;height:100%;object-fit:cover}
.scene-plate figcaption{position:absolute;left:.8rem;bottom:.6rem;font-family:var(--f-mono);font-size:.7rem;color:rgba(231,239,255,.82)}
.scene-band{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#070C1E;aspect-ratio:16/4.5;box-shadow:var(--card-shadow)}
.scene-band img{width:100%;height:100%;object-fit:cover}
.scene-band figcaption{position:absolute;left:1rem;bottom:.7rem;font-family:var(--f-mono);font-size:.72rem;color:rgba(231,239,255,.82)}
@media (max-width:600px){.scene-band{aspect-ratio:16/8}}
.signal-card__scene{border-radius:10px;overflow:hidden;margin-bottom:1rem;aspect-ratio:16/7;background:#070C1E;border:1px solid var(--line)}
.signal-card__scene img{width:100%;height:100%;object-fit:cover}
/* reserved AI-image placeholder (shows filename + size until the photo is generated) */
.genph{position:relative}
.genph::before{content:attr(data-ph);position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:.7rem;font-family:var(--f-mono);font-size:.64rem;line-height:1.6;color:rgba(231,239,255,.42);background:repeating-linear-gradient(135deg,rgba(116,194,222,.06) 0 9px,transparent 9px 18px)}
.genph > img{position:relative;z-index:1}
.scene-plate figcaption,.scene-band figcaption{z-index:2}

/* image + text feature split (replaces standalone centred band images) */
.feat{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.4rem,3.2vw,2.8rem);align-items:center;margin:0 auto clamp(2rem,4.5vh,3.2rem)}
.feat .section__head{margin:0;max-width:none}
.feat__media{position:relative;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#070C1E;aspect-ratio:4/3;box-shadow:var(--card-shadow)}
.feat__media img{width:100%;height:100%;object-fit:cover}
.feat--rev .feat__media{order:-1}
@media (max-width:760px){.feat{grid-template-columns:1fr;gap:1.1rem}.feat--rev .feat__media{order:0}}

/* timeline card: text + illustration side by side, plus a reserved live-log dropdown */
.vt-card__main{display:grid;grid-template-columns:1fr clamp(190px,30%,300px);gap:clamp(1rem,2.2vw,1.7rem);align-items:stretch}
.vt-card__media{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#070C1E;min-height:172px}
.vt-card__media img{width:100%;height:100%;object-fit:cover}
@media (max-width:680px){.vt-card__main{grid-template-columns:1fr}.vt-card__media{aspect-ratio:16/10;min-height:0}}

.vt-log{margin-top:1.1rem;border-top:1px solid var(--line)}
.vt-log__sum{display:flex;align-items:center;gap:.6rem;padding:.85rem .1rem .25rem;cursor:pointer;list-style:none;font-family:var(--f-mono);font-size:.76rem;color:var(--ink-2);-webkit-tap-highlight-color:transparent}
.vt-log__sum::-webkit-details-marker{display:none}
.vt-log__sum:hover{color:var(--accent)}
.vt-log__ic{position:relative;width:14px;height:14px;flex:none}
.vt-log__ic::before,.vt-log__ic::after{content:"";position:absolute;background:var(--accent);transition:transform .25s var(--ease)}
.vt-log__ic::before{top:6px;left:0;width:14px;height:2px}
.vt-log__ic::after{left:6px;top:0;width:2px;height:14px}
.vt-log[open] .vt-log__ic::after{transform:scaleY(0)}
.vt-log__hint{margin-left:auto;font-size:.68rem;color:var(--ink-2);opacity:.65}
.vt-log__body{padding:.5rem 0 .4rem}
.vt-log__shots{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:.7rem}
.vt-log__ph{aspect-ratio:4/3;border-radius:8px;border:1px dashed var(--line);background:repeating-linear-gradient(135deg,rgba(116,194,222,.05) 0 8px,transparent 8px 16px)}
.vt-log__shot{aspect-ratio:4/3;width:100%;height:auto;display:block;border-radius:8px;border:1px solid var(--line);object-fit:cover;background:#070C1E;transition:transform .25s var(--ease)}
.vt-log__shot:hover{transform:scale(1.03)}
.vt-log__note{font-size:.84rem;color:var(--ink-2);font-style:italic}

/* ---- Journal ---- */
.journal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:clamp(.8rem,1.6vw,1.1rem)}
.journal-cell{aspect-ratio:4/3;border:1px solid var(--line);border-radius:12px;background:var(--bg-3);display:grid;place-items:center;font-family:var(--f-mono);font-size:.74rem;color:var(--ink-2);overflow:hidden}
.journal-cell img{width:100%;height:100%;object-fit:cover}

/* ---- 404 ---- */
.nf{min-height:calc(100vh - var(--nav-h) - var(--rail-h));display:flex;flex-direction:column;justify-content:center;padding:var(--pad)}
.nf__code{font-family:var(--f-display);font-weight:600;font-size:clamp(4rem,15vw,11rem);line-height:.9;color:var(--heading);letter-spacing:-.03em}
.nf__state{font-family:var(--f-mono);color:var(--accent);margin:1rem 0 1.6rem;font-size:.88rem}

/* ---- Footer ---- */
.foot{padding:clamp(2.4rem,6vh,4rem) var(--pad);border-top:1px solid var(--line);background:var(--bg-3)}
.foot__grid{max-width:var(--maxw);margin:0 auto;display:grid;gap:1.3rem}
.foot__line{font-size:.94rem;color:var(--ink-2)}
.foot__line .mono{color:var(--accent);font-size:.72rem;margin-right:.4rem}
.logos{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(1rem,3vw,2rem);padding:1.4rem;background:#fff;border-radius:12px;border:1px solid var(--line)}
.logos img{height:clamp(26px,4vw,40px);width:auto;object-fit:contain}
.logos img.logo-taita{height:clamp(34px,4.6vw,48px);border-radius:6px}
.foot__nav{display:flex;flex-wrap:wrap;gap:1rem;font-family:var(--f-mono);font-size:.8rem}
.foot__nav a{color:var(--ink-2)}.foot__nav a:hover{color:var(--gold)}
.foot__fine{font-family:var(--f-mono);font-size:.71rem;color:var(--ink-2);opacity:.85;max-width:74ch;line-height:1.7}

/* reveal prep */
.js-anim .reveal{opacity:0}

.nav__brand{view-transition-name:brand}

/* ---- Responsive ---- */
@media (max-width:860px){
  .nav__links{position:fixed;inset:calc(var(--nav-h) + var(--rail-h)) 0 auto 0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);
    padding:.4rem 0;transform:translateY(-120%);transition:transform .38s var(--ease);margin:0;z-index:-1}
  .nav.open .nav__links{transform:translateY(0)}
  .nav__link{padding:.9rem var(--pad);font-size:.92rem;border-top:1px solid var(--line-2)}
  .nav__links{margin-left:auto}
  .nav__burger{display:block}
  .nav__tools{margin-left:auto}
  .nav.open .nav__burger span:nth-child(1){top:16px;transform:rotate(45deg)}
  .nav.open .nav__burger span:nth-child(2){opacity:0}
  .nav.open .nav__burger span:nth-child(3){top:16px;transform:rotate(-45deg)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .vt-io{grid-template-columns:1fr;gap:.9rem}
  .fac-card{grid-template-columns:1fr}
  .fac-shot{width:52px;height:52px}
}
@media (max-width:430px){ .stats{grid-template-columns:1fr 1fr} }

@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important}
  .js-anim .reveal{opacity:1!important;transform:none!important}
  .railbar.arrived .railbar__dot--to{animation:none!important}
}

/* ── Site-architect badge (delegate #01) ── */
.delegate--architect{
  border-color:rgba(251,182,21,.4);
  box-shadow:0 0 0 1px rgba(251,182,21,.12), 0 16px 46px -18px rgba(251,182,21,.38), var(--card-shadow);
}
.delegate--architect .fac-shot{border-color:rgba(251,182,21,.6);box-shadow:0 0 0 3px rgba(251,182,21,.14)}
.arch-badge{
  display:inline-flex;align-items:center;gap:.5em;
  margin-top:.6rem;padding:.38em .82em;
  font-family:var(--f-mono);font-size:.63rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;line-height:1;white-space:nowrap;
  color:var(--gold-bright);
  border:1px solid rgba(251,182,21,.55);border-radius:999px;
  background:linear-gradient(100deg,rgba(251,182,21,.18),rgba(251,182,21,.05));
  text-decoration:none;position:relative;overflow:hidden;
  animation:archGlow 2.6s ease-in-out infinite;
  transition:transform .2s var(--ease);
}
.arch-badge:hover{transform:translateY(-1px)}
.arch-badge>*{position:relative;z-index:1}
.arch-badge__glyph{font-weight:700;letter-spacing:0;font-size:.95em;color:#FFE9A8}
/* bright diagonal shine sweep, repeats every 2.6s */
.arch-badge::after{
  content:"";position:absolute;top:-40%;left:0;width:60%;height:180%;pointer-events:none;z-index:2;
  background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.15) 35%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.15) 65%,transparent 100%);
  transform:translateX(-220%) skewX(-18deg);
  animation:archSweep 2.6s ease-in-out infinite;
}
@keyframes archSweep{0%,45%{transform:translateX(-220%) skewX(-18deg)}80%,100%{transform:translateX(320%) skewX(-18deg)}}
@keyframes archGlow{
  0%,100%{box-shadow:0 0 0 0 rgba(251,182,21,0), 0 2px 10px -4px rgba(251,182,21,.3)}
  50%{box-shadow:0 0 16px 1px rgba(251,182,21,.4), 0 2px 14px -3px rgba(251,182,21,.55)}
}
@media (prefers-reduced-motion:reduce){.arch-badge,.arch-badge::after{animation:none}.arch-badge::after{display:none}}

/* ── News / press-release article ── */
.press{max-width:1080px;margin:0 auto;padding:0 clamp(1.1rem,4vw,2rem) 4.5rem}
.press__head{max-width:56rem;margin:0 auto;text-align:center;padding:clamp(2.6rem,8vh,5rem) 0 1.4rem}
.press__kicker{display:inline-flex;align-items:center;gap:.55em;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem}
.press__kdot{width:7px;height:7px;border-radius:50%;background:var(--gold-bright);box-shadow:0 0 8px color-mix(in oklab,var(--gold-bright) 70%,transparent)}
.press__title{font-family:var(--f-display);font-weight:700;font-size:clamp(2.1rem,5.2vw,3.6rem);line-height:1.1;letter-spacing:-.015em;color:var(--heading);text-wrap:balance}
.press__sub{font-size:clamp(1.05rem,2vw,1.3rem);color:var(--ink);margin-top:1.15rem;font-weight:500;line-height:1.5;text-wrap:balance}
body[data-lang="zh"] .press__title{font-family:var(--f-tc);font-weight:900;letter-spacing:.01em}
body[data-lang="zh"] .press__sub{font-family:var(--f-tc)}
.press__dateline{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.9em;margin-top:1.7rem;padding-top:1.15rem;border-top:1px solid var(--line);font-family:var(--f-mono);font-size:.72rem;letter-spacing:.06em;color:var(--ink-2)}
.press__dsep{width:3px;height:3px;border-radius:50%;background:var(--gold);opacity:.85;flex:none}
.press__hero{margin:2.2rem auto 0;border-radius:18px;overflow:hidden;border:1px solid var(--line);position:relative;box-shadow:0 32px 70px -32px rgba(4,10,30,.55)}
.press__hero img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.press__hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(6,11,27,.38));pointer-events:none}
.press__body{max-width:44rem;margin:0 auto;counter-reset:fig}
.press__lede{font-size:1.14rem;line-height:1.9;color:var(--ink);margin:2.7rem 0 2.2rem;text-wrap:pretty}
.press__lede::first-letter{font-family:var(--f-display);font-weight:700;font-size:3.3em;line-height:.82;float:left;padding:.1em .14em 0 0;color:var(--gold)}
body[data-lang="zh"] .press__lede::first-letter{font-family:var(--f-tc);font-size:2.8em;padding:.06em .18em 0 0}
.press__sec{margin:3.1rem 0}
.press__sec h2{font-family:var(--f-display);font-weight:600;font-size:clamp(1.3rem,2.6vw,1.7rem);color:var(--heading);line-height:1.22;margin-bottom:1.05rem;text-wrap:balance}
body[data-lang="zh"] .press__sec h2{font-family:var(--f-tc);font-weight:800}
.press__sec p{font-size:1.01rem;line-height:1.92;color:var(--ink-2);margin:1.05rem 0;text-wrap:pretty}
.press__fig{counter-increment:fig;margin:1.9rem 0;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--bg-2)}
.press__fig img{width:100%;display:block;transition:transform .8s var(--ease)}
.press__fig:hover img{transform:scale(1.025)}
.press__fig figcaption{display:flex;align-items:baseline;gap:.75em;font-family:var(--f-mono);font-size:.72rem;color:var(--ink-2);padding:.7rem 1rem;border-top:1px solid var(--line-2);letter-spacing:.02em;line-height:1.55;text-align:left}
.press__fig figcaption::before{content:"FIG. " counter(fig,decimal-leading-zero);flex:none;color:var(--gold);font-weight:700;letter-spacing:.08em}
body[data-lang="zh"] .press__fig figcaption::before{content:"圖 " counter(fig,decimal-leading-zero)}
.pullquote{margin:2.8rem 0;text-align:center}
.pullquote::before{content:"";display:block;width:44px;height:3px;border-radius:2px;background:var(--gold-bright);margin:0 auto 1.35rem}
.pullquote p{font-family:var(--f-display);font-size:clamp(1.25rem,2.7vw,1.66rem);line-height:1.5;color:var(--heading);font-weight:500;text-wrap:balance;margin:0}
body[data-lang="zh"] .pullquote p{font-family:var(--f-tc);font-weight:700}
.pullquote cite{display:block;margin-top:1.15rem;font-style:normal;font-family:var(--f-mono);font-size:.74rem;color:var(--ink-2);letter-spacing:.08em}
.proposals{margin:2.1rem 0 0}
.proposal{border-top:1px solid var(--line);padding:1.55rem 0 .5rem}
.proposal__hd{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.3rem}
.proposal__name{font-family:var(--f-mono);font-weight:700;font-size:1.12rem;color:var(--heading);letter-spacing:.03em;margin:0}
.proposal__tag{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.press__concl p:last-of-type::after{content:"";display:inline-block;width:.52em;height:.52em;background:var(--gold-bright);margin-left:.55em;border-radius:2px}
.will-reveal{opacity:0;transform:translateY(16px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.will-reveal.revealed{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.will-reveal{opacity:1;transform:none;transition:none}.press__fig:hover img{transform:none}}
@media(max-width:680px){.press__hero{border-radius:12px}.press__hero img{aspect-ratio:4/3}}

/* Journal · weekly photo galleries */
.jweek__hd{margin-bottom:.7rem;line-height:1.4}
.jweek__tag{font-family:var(--f-mono);font-size:.74rem;color:var(--gold-bright);letter-spacing:.05em}
.jweek__theme{color:var(--ink-2);font-size:.85rem;margin-left:.55rem}

/* footer · social links + author credit */
.foot__connect{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}
.foot__connect-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.foot__social{display:flex;gap:.6rem}
.social{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:#fff;transition:transform .22s var(--ease),box-shadow .22s var(--ease),filter .22s var(--ease)}
.social svg{width:23px;height:23px}
.social--fb{background:#1877F2}
.social--ig{background:radial-gradient(circle at 28% 108%,#fdf497 0%,#fdf497 6%,#fd5949 42%,#d6249f 62%,#285AEB 92%)}
.social--th{background:#000;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.30)}
.social:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 12px 24px -9px rgba(20,30,60,.5);filter:brightness(1.08) saturate(1.05)}
.foot__credits{max-width:74ch}
.foot__credits>summary{font-family:var(--f-mono);font-size:.72rem;color:var(--ink-2);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:.45em;opacity:.9;transition:color .2s}
.foot__credits>summary::-webkit-details-marker{display:none}
.foot__credits>summary::before{content:"+";color:var(--gold);font-weight:700}
.foot__credits[open]>summary::before{content:"\2013"}
.foot__credits>summary:hover{color:var(--ink)}
.foot__credits .foot__fine{margin-top:.55rem}
#chi-wei-lee{scroll-margin-top:96px}
.foot__author{display:flex;align-items:center;gap:.5em;margin-top:.3rem;font-family:var(--f-mono);font-size:.72rem;color:var(--ink-2);letter-spacing:.02em}
.foot__author-mark{color:var(--gold);font-weight:700;letter-spacing:0}
.foot__author a{color:var(--ink);position:relative;transition:color .25s var(--ease)}
.foot__author a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--gold-bright);transition:right .35s var(--ease)}
.foot__author a:hover{color:var(--gold-bright)}
.foot__author a:hover::after{right:0}

/* footer social · Threads optical-size fix */
.social--th svg{width:19px;height:19px}


/* ── Left-edge social "signal rail" — a vertical sibling of .railbar / .vtimeline ── */
.srail{position:fixed;left:clamp(6px,1vw,15px);top:50%;z-index:40;display:flex;flex-direction:column;align-items:center;gap:16px;padding:12px 0;pointer-events:none;opacity:0;transform:translate(-14px,-50%);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.srail--in{opacity:1;transform:translate(0,-50%)}
.srail__line{position:absolute;left:50%;top:30px;bottom:14px;width:2px;transform:translateX(-50%) scaleY(0);transform-origin:top;background:linear-gradient(180deg,transparent 0,var(--line) 16%,var(--line) 60%,color-mix(in oklab,var(--gold) 55%,var(--line)) 100%);z-index:0;transition:transform .7s var(--ease) .1s}
.srail--in .srail__line{transform:translateX(-50%) scaleY(1)}
.srail__spark{position:absolute;left:50%;top:30px;width:6px;height:6px;border-radius:50%;transform:translate(-50%,0);opacity:0;z-index:0;pointer-events:none;background:radial-gradient(circle,var(--gold-bright) 0%,color-mix(in oklab,var(--gold) 70%,transparent) 45%,transparent 72%)}
.srail__cap{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--f-mono);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-2);opacity:.8;line-height:1}
.srail__node{position:relative;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;z-index:1;pointer-events:auto;color:color-mix(in oklab,var(--brand-c,var(--ink-2)) 66%,var(--ink-2));background:color-mix(in oklab,var(--brand-c,var(--ink-2)) 13%,var(--bg-2));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid color-mix(in oklab,var(--brand-c,var(--ink-2)) 42%,var(--line));box-shadow:var(--card-shadow);transition:transform .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}
.srail__node svg{width:19px;height:19px}
.srail__node--th svg{width:16px;height:16px}
.srail__node--fb{--brand-c:#1877F2}
.srail__node--ig{--brand-c:#D6249F}
.srail__node--th{--brand-c:var(--heading)}
.srail__node:hover,.srail__node:focus-visible{transform:translateX(3px) scale(1.06);color:var(--brand-c);border-color:var(--brand-c);background:color-mix(in oklab,var(--brand-c) 22%,var(--bg-2));box-shadow:0 0 0 1px var(--brand-c),0 0 18px 1px color-mix(in srgb,var(--brand-c) 55%,transparent),var(--card-shadow)}
.srail__dot{width:7px;height:7px;border-radius:50%;z-index:1;background:var(--gold);box-shadow:0 0 8px color-mix(in oklab,var(--gold-bright) 65%,transparent)}
.srail--in .srail__dot{animation:srailLanded 2s var(--ease) 1s infinite}
.srail__tip{position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(-6px);white-space:nowrap;font-family:var(--f-mono);font-size:.66rem;letter-spacing:.06em;color:var(--ink);background:color-mix(in oklab,var(--bg-2) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-left:2px solid var(--brand-c);border-radius:8px;padding:.32em .6em;box-shadow:0 8px 20px -10px rgba(6,11,27,.5);opacity:0;pointer-events:none;transition:opacity .2s var(--ease),transform .2s var(--ease)}
.srail__node:hover .srail__tip,.srail__node:focus-visible .srail__tip{opacity:1;transform:translateY(-50%) translateX(0)}
.srail--in .srail__node{animation:srailNodeIn .55s var(--ease) both}
.srail--in .srail__node--fb{animation-delay:.14s}
.srail--in .srail__node--ig{animation-delay:.24s}
.srail--in .srail__node--th{animation-delay:.34s}
@keyframes srailNodeIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@keyframes srailLanded{0%{box-shadow:0 0 0 0 rgba(251,182,21,.5)}70%,100%{box-shadow:0 0 0 7px rgba(251,182,21,0)}}
@keyframes srailSpark{0%{opacity:0;transform:translate(-50%,0)}10%{opacity:1}70%{opacity:1}100%{opacity:0;transform:translate(-50%,150px)}}
@media (prefers-reduced-motion:no-preference){.srail--in .srail__spark{animation:srailSpark 6.5s var(--ease) 1.8s infinite}}
@media (prefers-reduced-motion:reduce){.srail{opacity:1;transform:translate(0,-50%);transition:none}.srail__line{transform:translateX(-50%) scaleY(1);transition:none}.srail__node{animation:none}.srail__dot{animation:none}.srail__spark{display:none}}
@media (max-width:1199px){.srail{display:none}}

/* News · in-the-media coverage list */
.medialist{display:flex;flex-direction:column;gap:.85rem;margin-top:.3rem}
.mediacard{display:flex;gap:1rem;align-items:stretch;border:1px solid var(--line);border-radius:12px;padding:.85rem .95rem;background:var(--bg-2);text-decoration:none;transition:border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.mediacard:hover{border-color:color-mix(in oklab,var(--gold-bright) 45%,var(--line));transform:translateY(-2px);box-shadow:0 12px 28px -14px rgba(6,11,27,.5)}
.mediacard__thumb{position:relative;flex:0 0 136px;border-radius:8px;overflow:hidden;align-self:center;line-height:0}
.mediacard__thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.mediacard__play{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(rgba(6,11,27,.08),rgba(6,11,27,.42));transition:background .25s var(--ease)}
.mediacard__play svg{width:30px;height:30px;color:#fff;filter:drop-shadow(0 2px 6px rgba(0,0,0,.55))}
.mediacard:hover .mediacard__play{background:linear-gradient(rgba(6,11,27,0),rgba(6,11,27,.2))}
.mediacard__body{display:flex;flex-direction:column;justify-content:center;gap:.42rem;min-width:0}
.mediacard__meta{display:flex;align-items:center;gap:.6em;font-size:.66rem;letter-spacing:.05em;color:var(--ink-2)}
.mediacard__type{color:var(--gold);border:1px solid color-mix(in oklab,var(--gold) 42%,var(--line));border-radius:5px;padding:.12em .5em;text-transform:uppercase;letter-spacing:.11em;font-size:.58rem;flex:none}
.mediacard__title{font-family:var(--f-tc);font-weight:600;font-size:1.02rem;line-height:1.5;color:var(--heading)}
.mediacard__foot{font-size:.68rem;color:var(--ink-2);letter-spacing:.04em;display:flex;align-items:center;gap:.5em}
.mediacard__foot .arr{color:var(--gold);transition:transform .25s var(--ease);display:inline-block}
.mediacard:hover .mediacard__foot .arr{transform:translateX(3px)}
@media(max-width:520px){.mediacard{flex-direction:column;gap:.7rem}.mediacard__thumb{flex-basis:auto;width:100%}}

/* ===== Latest-coverage media hero (news headline) ===== */
.mediahero{max-width:1080px;margin:0 auto;padding:clamp(1.5rem,4vw,2.6rem) clamp(1.1rem,4vw,2rem) 0}
.mediahero__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.15rem}
.mediahero__kicker{display:inline-flex;align-items:center;gap:.65em;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0}
.mediahero__count{font-size:.68rem;letter-spacing:.12em;color:var(--ink-2);margin:0}
.live-dot{width:9px;height:9px;border-radius:50%;background:#ff3b30;box-shadow:0 0 0 0 rgba(255,59,48,.6)}
@media(prefers-reduced-motion:no-preference){.live-dot{animation:livePulse 1.9s var(--ease) infinite}}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(255,59,48,.55)}70%{box-shadow:0 0 0 10px rgba(255,59,48,0)}100%{box-shadow:0 0 0 0 rgba(255,59,48,0)}}
.mediahero__grid{display:grid;grid-template-columns:1.6fr 1fr;gap:1.5rem;align-items:start}
.mediahero__main{min-width:0}
.mediahero__cap{margin-top:1.05rem}
.mediahero__meta{display:block;font-size:.66rem;letter-spacing:.06em;color:var(--ink-2);margin-bottom:.5rem}
.mediahero__title{font-family:var(--f-tc);font-weight:700;font-size:clamp(1.12rem,2.1vw,1.5rem);line-height:1.48;color:var(--heading);letter-spacing:.005em;margin:0}
.mediahero__side{display:flex;flex-direction:column;gap:.85rem;min-width:0}
.mediahero__sidehd{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin:.15rem 0 .05rem}
.mediahero__rule{height:1px;background:var(--line);border:0;margin:clamp(1.8rem,4vw,2.8rem) 0 0}

/* in-print newspaper clipping */
.inprint{margin:1.7rem 0 0}
.inprint__link{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--bg-2);line-height:0;transition:border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.inprint__link:hover{border-color:color-mix(in oklab,var(--gold-bright) 45%,var(--line));transform:translateY(-2px);box-shadow:0 16px 36px -18px rgba(6,11,27,.5)}
.inprint__link img{width:100%;height:auto;display:block}
.inprint__cap{display:flex;align-items:center;gap:.6em .8em;flex-wrap:wrap;margin-top:.7rem;font-size:.68rem;letter-spacing:.04em;color:var(--ink-2)}
.inprint__tag{flex:none;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid color-mix(in oklab,var(--gold) 42%,var(--line));border-radius:5px;padding:.2em .5em}
.inprint__hint{color:var(--gold);text-decoration:none;transition:opacity .2s var(--ease)}
.inprint__hint:hover{opacity:.7}

/* click-to-play YouTube facade */
.ytlite{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;cursor:pointer;border:1px solid var(--line);background:#05070f;box-shadow:0 34px 74px -34px rgba(4,10,30,.62);-webkit-tap-highlight-color:transparent}
.ytlite__thumb{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s var(--ease),filter .35s var(--ease)}
.ytlite:hover .ytlite__thumb,.ytlite:focus-visible .ytlite__thumb{transform:scale(1.035);filter:brightness(1.06)}
.ytlite:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}
.ytlite__grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,11,27,.02) 45%,rgba(6,11,27,.5));pointer-events:none}
.ytlite__badge{position:absolute;left:14px;top:13px;z-index:2;font-size:.6rem;letter-spacing:.07em;color:#fff;background:rgba(6,11,27,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:.34em .62em;text-transform:uppercase}
.ytlite__play{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.ytlite__play svg{width:76px;height:auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.5));transition:transform .3s var(--ease)}
.ytlite__play .ytp-bg{fill:rgba(20,20,22,.82);transition:fill .25s var(--ease)}
.ytlite:hover .ytlite__play svg,.ytlite:focus-visible .ytlite__play svg{transform:scale(1.09)}
.ytlite:hover .ytlite__play .ytp-bg,.ytlite:focus-visible .ytlite__play .ytp-bg{fill:#f00}
.ytlite__frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
@media(max-width:900px){.mediahero__grid{grid-template-columns:1fr;gap:1.6rem}.mediahero__cap{margin-top:.9rem}}

/* ===== Homepage "latest news" flash toast ===== */
.newsflash{position:fixed;right:clamp(.9rem,3vw,1.8rem);bottom:clamp(.9rem,3vw,1.8rem);z-index:45;max-width:min(94vw,384px);display:flex;align-items:center;gap:.25rem;background:var(--bg-2);border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 54px -20px rgba(4,10,30,.62),0 3px 10px rgba(4,10,30,.28);padding:.55rem .55rem .55rem .6rem;opacity:0;transform:translateY(20px) scale(.98);transition:opacity .5s var(--ease),transform .55s var(--ease),border-color .3s var(--ease);will-change:transform,opacity}
.newsflash--in{opacity:1;transform:none}
.newsflash--out{opacity:0;transform:translateY(14px)}
.newsflash:hover{border-color:color-mix(in oklab,var(--gold-bright) 42%,var(--line))}
.newsflash__link{display:flex;align-items:center;gap:.7rem;text-decoration:none;padding:.1rem;min-width:0}
.newsflash__thumb{flex:none;position:relative;width:60px;height:60px;border-radius:10px;overflow:hidden;line-height:0;border:1px solid var(--line)}
.newsflash__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.newsflash__play{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(rgba(6,11,27,.04),rgba(6,11,27,.42))}
.newsflash__play svg{width:19px;height:19px;color:#fff;filter:drop-shadow(0 1px 4px rgba(0,0,0,.6))}
.newsflash__text{display:flex;flex-direction:column;gap:.28rem;min-width:0}
.newsflash__eyebrow{display:inline-flex;align-items:center;gap:.55em;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}
.newsflash__title{font-family:var(--f-tc);font-weight:600;font-size:.92rem;line-height:1.4;color:var(--heading);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.newsflash__cta{display:inline-flex;align-items:center;gap:.45em;font-size:.66rem;letter-spacing:.05em;color:var(--ink-2)}
.newsflash__cta .arr{color:var(--gold);transition:transform .25s var(--ease)}
.newsflash__link:hover .newsflash__cta .arr{transform:translateX(4px)}
.newsflash__close{flex:none;align-self:flex-start;width:27px;height:27px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink-2);border-radius:8px;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}
.newsflash__close:hover{background:var(--bg-3);color:var(--heading)}
.newsflash__close svg{width:15px;height:15px}
@media(prefers-reduced-motion:reduce){.newsflash{transition:opacity .35s var(--ease)}.newsflash,.newsflash--in,.newsflash--out{transform:none}}
@media(max-width:520px){.newsflash{left:clamp(.7rem,4vw,1rem);right:clamp(.7rem,4vw,1rem);max-width:none}}
