/* GALOK Launch · one self-contained stylesheet.
   Everything here lives under .lc-* or on :root custom properties named --lc-*. The page loads no other site CSS and no
   runtime "skin" script, so nothing outside this file can change a heading, a colour or a font on /launch/.
   Palette and type are decided by data-theme on <html> (set before first paint by the inline script in index.html). */

/* ---------- fonts: the same files and family names as assets/galok-type.css, served from this origin ---------- */
@font-face{font-family:"Galok Sans";src:url("/assets/fonts/inter-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Galok Sans";src:url("/assets/fonts/inter-var-italic.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Galok Serif";src:url("/assets/fonts/gambetta-400i.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Galok Serif";src:url("/assets/fonts/gambetta-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

/* ---------- semantic tokens ---------- */
:root{
  --lc-sans:"Galok Sans",system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Microsoft YaHei",Roboto,"Helvetica Neue",Arial,sans-serif;
  --lc-serif:"Galok Serif",Georgia,"Songti SC","Noto Serif CJK SC",serif;
  --lc-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --lc-pad:clamp(20px,5vw,64px);
  --lc-max:1180px;
  --lc-ease:cubic-bezier(.22,1,.36,1);
  --lc-spring:cubic-bezier(.3,1.2,.5,1);

  --lc-bg:#fafaf7;        /* page */
  --lc-ink:#161613;       /* text 17.6:1 on bg */
  --lc-muted:#62635e;     /* secondary text 5.6:1 */
  --lc-line:#dcddd5;      /* hairlines (decorative) */
  --lc-line-strong:#c4c5bc;
  --lc-ghost:#8f8f88;     /* very large decorative numerals: 3.2:1, the large-text threshold */
  --lc-surface:#f1f1ea;   /* quiet panels */
  --lc-signal:#ffd60a;    /* the one signal colour: marks and highlights, never body text on light */
  --lc-on-signal:#161613; /* text that sits on the signal colour */
  --lc-em-bg:linear-gradient(transparent 60%,#ffd60a 60% 94%,transparent 94%); /* light: a highlighter under ink text */
  --lc-em-ink:#161613;
  --lc-inv-bg:#161613;    /* inverse pill (dock active) */
  --lc-inv-ink:#fafaf7;
  --lc-focus:#161613;
  color-scheme:light;
}
html[data-theme="dark"]{
  --lc-bg:#111310;
  --lc-ink:#f4f4ec;       /* 16.5:1 */
  --lc-muted:#a5a69d;     /* 7.4:1 */
  --lc-line:#2c2e28;
  --lc-line-strong:#444740;
  --lc-ghost:#666860;     /* 3.2:1 on the dark ground */
  --lc-surface:#1a1c18;
  --lc-signal:#ffd60a;
  --lc-on-signal:#161613;
  --lc-em-bg:none;        /* dark: the emphasis is the signal colour itself, on the dark ground (13:1) */
  --lc-em-ink:#ffd60a;
  --lc-inv-bg:#f4f4ec;
  --lc-inv-ink:#111310;
  --lc-focus:#f4f4ec;
  color-scheme:dark;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--lc-bg);color:var(--lc-ink);font:400 16px/1.55 var(--lc-sans);-webkit-font-smoothing:antialiased;font-synthesis:none;min-height:100svh;overflow-x:clip}
:lang(zh),:lang(ja){line-break:strict}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--lc-focus);outline-offset:3px;border-radius:2px}
::selection{background:var(--lc-signal);color:var(--lc-on-signal)}
.lc-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lc-skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--lc-ink);color:var(--lc-bg);padding:10px 14px;border-radius:6px;text-decoration:none}
.lc-skip:focus{top:12px}
.lc-wrap{width:min(100%,var(--lc-max));margin-inline:auto;padding-inline:var(--lc-pad)}
.lc-kicker,.lc-label,.lc-eyebrow{margin:0 0 20px;font:500 12px/1.3 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted)}
.lc-h2{margin:0 0 18px;font:560 clamp(2rem,5.4vw,4.4rem)/1.02 var(--lc-sans);letter-spacing:-.05em;max-width:14em;text-wrap:balance}
.lc-dot{color:var(--lc-muted)}
.lc-lede{max-width:34em;margin:0 0 clamp(36px,6vw,72px);color:var(--lc-muted);font-size:clamp(1rem,1.5vw,1.2rem)}

/* ---------- header ---------- */
.lc-head{position:relative;z-index:5;display:flex;justify-content:space-between;align-items:center;width:min(100%,var(--lc-max));margin-inline:auto;padding:18px var(--lc-pad);min-height:64px}
.lc-brand{display:inline-flex;align-items:center;gap:10px;font:600 17px/1 var(--lc-sans);letter-spacing:-.03em;text-decoration:none;min-height:44px}
html[data-theme="dark"] .lc-brand img{filter:invert(1)}
.lc-tools{display:flex;align-items:center;gap:clamp(14px,3vw,28px)}
.lc-quiet{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--lc-muted);text-decoration:none}
.lc-quiet:hover{color:var(--lc-ink)}
.lc-theme{display:inline-grid;place-items:center;width:44px;height:44px;margin-right:-10px;background:none;border:0;border-radius:50%;cursor:pointer}
.lc-theme__dot{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--lc-ink);background:linear-gradient(90deg,var(--lc-ink) 50%,transparent 50%)}

/* ---------- hero: the question is the interface ---------- */
.lc-hero{position:relative;min-height:calc(100svh - 64px);display:flex;flex-direction:column;justify-content:space-between;padding-block:clamp(16px,6vh,72px) 108px;scroll-margin-top:96px}
.lc-hero .lc-wrap{flex:1}
.lc-form{position:relative;display:flex;align-items:flex-start;gap:12px}
.lc-q{--q:clamp(2.6rem,8.6vw,7.4rem);flex:1;min-width:0;display:block;width:100%;margin:0;padding:0 0 .08em;border:0;background:transparent;color:var(--lc-ink);font:560 var(--q)/1.02 var(--lc-sans);letter-spacing:-.055em;caret-color:var(--lc-signal);resize:none;overflow:hidden;outline:0;border-radius:0;text-wrap:balance;transition:font-size .6s var(--lc-ease),color .4s}
html[data-theme="light"] .lc-q{caret-color:var(--lc-ink)}
.lc-q::placeholder{color:var(--lc-muted)}
.lc-form::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;background:var(--lc-line);transition:background .3s}
.lc-form:focus-within::after{background:var(--lc-signal)}
.lc-form:focus-within{outline:0}
.lc-send{flex:none;width:44px;height:44px;margin-top:.7em;display:inline-grid;place-items:center;border-radius:50%;border:1px solid var(--lc-line-strong);background:transparent;color:var(--lc-ink);cursor:pointer;transition:background .25s,border-color .25s,transform .25s var(--lc-spring)}
.lc-send:hover{background:var(--lc-signal);color:var(--lc-on-signal);border-color:var(--lc-signal)}
.lc-send:active{transform:scale(.92)}

.lc-listen{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;max-width:44rem;margin:12px 0 0;color:var(--lc-muted);font:500 12px/1.5 var(--lc-mono);letter-spacing:.04em;opacity:0;transform:translateY(-4px);transition:opacity .25s var(--lc-ease),transform .3s var(--lc-ease)}
.lc-listen.is-on{opacity:1;transform:none}
.lc-listen b{font-weight:500;color:var(--lc-ink)}
.lc-listen__ear{display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.08em}
.lc-listen__ear::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--lc-signal);animation:lc-ear 1.4s ease-in-out infinite}
@keyframes lc-ear{50%{transform:scale(.55);opacity:.6}}
.lc-listen__hit{display:inline-flex;align-items:center;min-height:44px;margin-left:10px;padding:0;border:0;background:none;color:var(--lc-ink);font:500 14px/1.2 var(--lc-sans);letter-spacing:-.01em;text-decoration:underline;text-decoration-color:var(--lc-signal);text-decoration-thickness:2px;text-underline-offset:.2em;cursor:pointer}
.lc-listen__hit:hover{background:var(--lc-signal);color:var(--lc-on-signal);text-decoration-color:transparent}
.lc-run{display:grid;grid-template-rows:0fr;opacity:0;max-width:26rem;transition:grid-template-rows .45s var(--lc-ease),opacity .3s,margin .45s var(--lc-ease)}
.lc-run__in{display:grid;gap:12px;min-height:0;overflow:hidden}
.lc-run.is-on{grid-template-rows:1fr;opacity:1;margin-top:30px}
.lc-run.is-on.is-finished{grid-template-rows:0fr;opacity:0;margin-top:0}
.lc-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px;font:500 12px/1.4 var(--lc-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--lc-muted)}
.lc-steps li{display:flex;gap:10px;opacity:0;transform:translateY(4px);animation:lc-in .35s var(--lc-ease) forwards}
.lc-steps li b{font-weight:500;color:var(--lc-ink)}
.lc-steps li.is-done::before{content:"✓";color:var(--lc-ink)}
.lc-steps li:not(.is-done)::before{content:"·";color:var(--lc-muted)}
.lc-bar{position:relative;display:block;height:1px;background:var(--lc-line);overflow:hidden}
.lc-bar::after{content:"";position:absolute;inset:0 auto 0 0;width:28%;background:var(--lc-ink);animation:lc-scan 1.1s var(--lc-ease) infinite}
.lc-run.is-finished .lc-bar::after{animation:none;width:100%;background:var(--lc-line)}
@keyframes lc-scan{from{transform:translateX(-100%)}to{transform:translateX(360%)}}
@keyframes lc-in{to{opacity:1;transform:none}}

.lc-answer{margin-top:clamp(36px,7vh,72px)}
.lc-answer{transition:opacity .25s}
.lc-answer.is-working{opacity:.28}
.lc-ans{display:grid;gap:22px;animation:lc-rise .7s var(--lc-ease) both}
.lc-ans__title{margin:0;font:560 clamp(1.8rem,3.9vw,3.2rem)/1.06 var(--lc-sans);letter-spacing:-.045em}
.lc-ans__title em{font-style:normal;background:var(--lc-em-bg);background-repeat:no-repeat;background-size:100% 100%;color:var(--lc-em-ink);padding:0 .06em;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size .8s var(--lc-ease)}
.lc-ans__body{margin:0;font:400 clamp(1.05rem,min(1.7vw,2.35vh),1.4rem)/1.5 var(--lc-sans);letter-spacing:-.01em;max-width:36em;text-wrap:pretty}
.lc-ref{display:inline;padding:0;margin:0;border:0;background:none;font:inherit;letter-spacing:inherit;color:var(--lc-ink);cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone;text-decoration:underline;text-decoration-color:var(--lc-signal);text-decoration-thickness:2px;text-underline-offset:.2em;transition:background .2s,color .2s}
.lc-ref:hover,.lc-ref[aria-expanded="true"]{background:var(--lc-signal);color:var(--lc-on-signal);text-decoration-color:transparent}
.lc-ans__src{margin:0;font:400 13px/1.5 var(--lc-sans);color:var(--lc-muted)}
.lc-ans__src a{color:var(--lc-ink)}
.lc-srcbtn{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:-10px 0;padding:0;border:0;background:none;color:var(--lc-muted);font:500 12px/1 var(--lc-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.lc-srcbtn:hover{color:var(--lc-ink)}
.lc-srcbtn i{font-style:normal;transition:transform .3s var(--lc-ease)}
.lc-srcbtn[aria-expanded="true"] i{transform:rotate(180deg)}
.lc-srclist[hidden]{display:none}
.lc-srclist{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:14px}
.lc-srclist li{display:grid;grid-template-columns:minmax(0,1fr);gap:2px}
.lc-srclist a{color:var(--lc-ink)}
.lc-srclist small{color:var(--lc-muted);font-size:12px}
.lc-scope{margin:0;font:500 12px/1.4 var(--lc-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--lc-muted)}

/* the answer opens into the work */
.lc-pv{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(18px,3vw,40px);align-items:start;margin-top:6px;padding-top:26px;border-top:1px solid var(--lc-line-strong);animation:lc-rise .55s var(--lc-ease) both}
.lc-pv[hidden]{display:none}
.lc-pv--noimg{grid-template-columns:minmax(0,1fr);max-width:36rem}
.lc-pv__fig{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--lc-surface);border-radius:2px}
.lc-pv__fig img{width:100%;height:100%;object-fit:cover}
.lc-pv__kicker{margin:0 0 10px;font:500 12px/1.3 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted)}
.lc-pv__title{margin:0 0 8px;font:560 clamp(1.4rem,2.6vw,2.2rem)/1.08 var(--lc-sans);letter-spacing:-.035em}
.lc-pv__desc{margin:0 0 14px;color:var(--lc-muted);max-width:30em}
.lc-pv__items{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:0;font-size:15px}
.lc-pv__items li{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--lc-line);min-height:44px;align-items:center}
.lc-pv__items li:last-child{border-bottom:1px solid var(--lc-line)}
.lc-pv__items a{text-decoration:none}
.lc-pv__items a:hover{text-decoration:underline;text-decoration-color:var(--lc-signal);text-underline-offset:.2em;text-decoration-thickness:2px}
.lc-pv__items span{color:var(--lc-muted);font-size:13px;white-space:nowrap}
.lc-pv__act{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.lc-open{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;background:var(--lc-ink);color:var(--lc-bg);font-weight:560;font-size:15px;text-decoration:none;transition:transform .25s var(--lc-spring),background .2s,color .2s}
.lc-open:hover{background:var(--lc-signal);color:var(--lc-on-signal)}
.lc-open:active{transform:scale(.96)}
.lc-close{min-height:44px;padding:0;border:0;background:none;color:var(--lc-muted);font-size:14px;cursor:pointer;text-decoration:underline;text-underline-offset:.2em}
.lc-close:hover{color:var(--lc-ink)}

.lc-chips{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:clamp(28px,5vh,48px)}
.lc-chips[hidden]{display:none}
.lc-chip{min-height:44px;padding:0;border:0;background:none;color:var(--lc-muted);font-size:15px;cursor:pointer;text-align:left}
.lc-chip::before{content:"→ ";color:var(--lc-line-strong);transition:color .2s}
.lc-chip:hover{color:var(--lc-ink)}
.lc-chip:hover::before{color:var(--lc-ink)}
.lc-foot-hint{display:flex;justify-content:space-between;gap:16px;width:min(100%,var(--lc-max));margin:0 auto;padding:0 var(--lc-pad);font:500 12px/1.3 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted)}
.lc-foot-hint a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:12px;min-height:44px}
.lc-foot-hint a:hover{color:var(--lc-ink)}
.lc-foot-hint i{display:block;width:40px;height:1px;background:currentColor;position:relative;overflow:hidden}
.lc-foot-hint i::after{content:"";position:absolute;inset:0 auto 0 0;width:40%;background:var(--lc-signal);animation:lc-scan 2.4s var(--lc-ease) infinite}
html[data-theme="light"] .lc-foot-hint i::after{background:var(--lc-ink)}
@keyframes lc-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* without JavaScript the default answer is already in the page; with it, the script takes over */
html[data-js] .lc-ans--static{display:none}
html:not([data-js]) .lc-form,html:not([data-js]) .lc-chips{display:none}
html:not([data-js]) .lc-q{display:none}

/* ---------- sections ---------- */
.lc-section{padding-block:clamp(72px,12vw,160px);border-top:1px solid var(--lc-line);scroll-margin-top:0}

/* timeline */
.lc-tl{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,5vw,80px)}
.lc-tl__aside{position:relative}
.lc-tl__year{position:sticky;top:72px;margin:0;font:560 clamp(4rem,8.4vw,7.6rem)/.82 var(--lc-sans);letter-spacing:-.07em;color:var(--lc-ghost)}
.lc-tl__note{position:sticky;top:calc(72px + clamp(4rem,8.4vw,7.6rem) * .95);max-width:18em;margin:20px 0 0;color:var(--lc-muted);font-size:14px}
.lc-label{margin-bottom:14px}
.lc-tl__yearonly{margin-bottom:clamp(36px,6vw,64px);padding-bottom:28px;border-bottom:1px solid var(--lc-line)}
.lc-tl__yearonly ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 20px}
.lc-tl__yearonly a{display:inline-flex;align-items:center;min-height:36px;color:var(--lc-ink);text-decoration-color:var(--lc-line-strong);text-underline-offset:.2em;font-size:15px}
.lc-tl__yearonly a:hover{text-decoration-color:var(--lc-signal);text-decoration-thickness:2px}
.lc-tl__months{list-style:none;margin:0;padding:0}
.lc-m{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:clamp(12px,3vw,36px);padding:clamp(28px,4vw,44px) 0;border-top:1px solid var(--lc-line)}
.lc-m__name{margin:0;font:500 13px/1.4 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted);position:sticky;top:76px;align-self:start}
.lc-m__items{list-style:none;margin:0;padding:0;display:grid;gap:clamp(28px,4vw,44px)}
.lc-i{display:grid;grid-template-columns:3.2rem minmax(0,1fr) clamp(88px,18vw,200px);gap:clamp(12px,2.4vw,28px);align-items:start;transition:opacity .6s var(--lc-ease),transform .6s var(--lc-ease)}
html[data-js] .lc-i:not(.in){opacity:0;transform:translateY(18px)}
.lc-i__t b{font:560 clamp(1.6rem,3vw,2.4rem)/1 var(--lc-sans);letter-spacing:-.05em}
.lc-i__kind{display:block;margin-bottom:8px;font:500 11px/1.3 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted)}
.lc-i__link{font:560 clamp(1.2rem,2.1vw,1.7rem)/1.15 var(--lc-sans);letter-spacing:-.035em;text-decoration:none}
.lc-i__link:hover{text-decoration:underline;text-decoration-color:var(--lc-signal);text-decoration-thickness:2px;text-underline-offset:.18em}
.lc-i__sum{margin:8px 0 8px;max-width:34em;color:var(--lc-muted);font-size:15px}
.lc-i__src{font:400 11px/1.3 var(--lc-mono);letter-spacing:.04em;color:var(--lc-muted);opacity:.9}
.lc-i__img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--lc-surface);border-radius:2px}
.lc-i__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--lc-ease)}
.lc-i:hover .lc-i__img img{transform:scale(1.04)}
.lc-tl__ongoing{margin-top:clamp(36px,6vw,64px);padding-top:28px;border-top:1px solid var(--lc-line)}
.lc-tl__ongoing ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 22px}
.lc-tl__ongoing a{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration-color:var(--lc-line-strong);text-underline-offset:.2em;font-size:15px}
.lc-og__img{width:56px;height:40px;object-fit:cover;border-radius:2px}

/* selected */
.lc-sel{list-style:none;margin:clamp(28px,5vw,56px) 0 0;padding:0;border-bottom:1px solid var(--lc-line-strong)}
.lc-sel__row{position:relative;display:grid;grid-template-columns:3rem minmax(0,1fr) clamp(96px,22vw,260px);grid-template-areas:"n t i" "n c i" "n d i";gap:4px clamp(12px,3vw,40px);align-items:center;padding:clamp(22px,3.4vw,40px) 0;border-top:1px solid var(--lc-line-strong);text-decoration:none;transition:padding .5s var(--lc-ease)}
.lc-sel__n{grid-area:n;font:500 12px/1 var(--lc-mono);color:var(--lc-muted);align-self:start;padding-top:.9em}
.lc-sel__t{grid-area:t;font:560 clamp(2.4rem,8vw,6.4rem)/.98 var(--lc-sans);letter-spacing:-.06em;transition:transform .6s var(--lc-ease)}
.lc-sel__c{grid-area:c;font:500 12px/1.3 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted)}
.lc-sel__d{grid-area:d;max-width:30em;color:var(--lc-muted);font-size:15px}
.lc-sel__img{grid-area:i;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px;background:var(--lc-surface);transition:transform .8s var(--lc-ease)}
.lc-sel__row:hover .lc-sel__t,.lc-sel__row:focus-visible .lc-sel__t{transform:translateX(10px)}
.lc-sel__row:hover .lc-sel__img{transform:scale(1.03)}
.lc-sel__row:hover .lc-sel__t{text-decoration:underline;text-decoration-color:var(--lc-signal);text-decoration-thickness:4px;text-underline-offset:.1em}

/* archive */
.lc-arch{list-style:none;margin:0 0 clamp(36px,6vw,64px);padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--lc-line-strong)}
.lc-arch a{display:grid;gap:6px;min-height:104px;padding:20px 18px 20px 0;text-decoration:none;border-bottom:1px solid var(--lc-line)}
.lc-arch b{font:560 1.35rem/1.1 var(--lc-sans);letter-spacing:-.03em}
.lc-arch span{color:var(--lc-muted);font-size:14px}
.lc-arch a:hover b{text-decoration:underline;text-decoration-color:var(--lc-signal);text-decoration-thickness:2px;text-underline-offset:.18em}
.lc-end{display:flex;flex-wrap:wrap;gap:4px 28px;margin:0 0 clamp(60px,10vw,120px);font-size:15px}
.lc-end a{display:inline-flex;align-items:center;min-height:44px;color:var(--lc-muted);text-decoration:none}
.lc-end a:hover{color:var(--lc-ink)}
.lc-archive{padding-bottom:clamp(120px,16vw,200px)}
.lc-archive .lc-h2{font-size:clamp(3.2rem,11vw,9.6rem);line-height:.92;max-width:none;margin-bottom:28px}
.lc-i.noimg{grid-template-columns:3.2rem minmax(0,1fr)}
.lc-i.noimg .lc-i__img{display:none}

/* ---------- the elastic capsule ---------- */
.lc-dock{position:fixed;left:50%;bottom:max(14px,calc(env(safe-area-inset-bottom,0px) + 10px));z-index:100;display:flex;align-items:center;gap:2px;padding:4px;border:1px solid var(--lc-line-strong);border-radius:999px;background:var(--lc-bg);transform:translateX(-50%);transition:transform .45s var(--lc-ease),opacity .25s;max-width:calc(100vw - 24px)}
.lc-dock.is-hidden{transform:translate(-50%,160%);opacity:0;pointer-events:none}
.lc-dock a{display:flex;align-items:center;justify-content:flex-start;width:44px;height:44px;padding:0 0 0 15px;overflow:hidden;border-radius:999px;color:var(--lc-muted);text-decoration:none;font:560 14px/1 var(--lc-sans);letter-spacing:-.01em;white-space:nowrap;transition:width .62s var(--lc-spring),background .35s var(--lc-ease),color .25s}
.lc-dock a b{flex:none;font:500 11px/1 var(--lc-mono);letter-spacing:.04em}
.lc-dock .lc-lbl{flex:none;margin-left:9px;opacity:0;transition:opacity .22s}
.lc-dock a[aria-current="location"]{width:var(--aw,6.5rem);background:var(--lc-inv-bg);color:var(--lc-inv-ink)}
.lc-dock a[aria-current="location"] .lc-lbl{opacity:1;transition:opacity .3s .12s}
.lc-dock a[aria-current="location"] b{color:var(--lc-signal)}
html[data-theme="dark"] .lc-dock a[aria-current="location"] b{color:#8a6a00}
.lc-dock a:not([aria-current]):hover{color:var(--lc-ink)}
html:not([data-js]) .lc-dock a{width:auto;padding:0 14px}
html:not([data-js]) .lc-dock .lc-lbl{opacity:1;margin-left:0}
html:not([data-js]) .lc-dock a b{display:none}

/* ---------- the answer takes the stage: once answered, the question condenses into a quiet line and the answer becomes the headline ---------- */
.lc-hero.is-answered .lc-q{--q:clamp(1.15rem,2vw,1.5rem);font-weight:500;letter-spacing:-.025em;line-height:1.3;color:var(--lc-muted)}
.lc-hero.is-answered .lc-form{max-width:38rem}
.lc-hero.is-answered .lc-form:focus-within .lc-q{--q:clamp(1.6rem,3.2vw,2.4rem);color:var(--lc-ink)}
.lc-hero.is-answered .lc-send{margin-top:-.15em;width:36px;height:36px}
.lc-hero.is-answered .lc-eyebrow{opacity:.0;height:0;margin:0;overflow:hidden}
.lc-hero.is-answered .lc-answer{margin-top:clamp(22px,4vh,44px)}
.lc-hero.is-answered .lc-chips{margin-top:clamp(18px,3vh,32px)}
.lc-ans{max-width:none}
.lc-ans__title{font-size:clamp(2.6rem,min(7.4vw,10vh),6.4rem);line-height:.98;letter-spacing:-.06em;max-width:11em}
.lc-ans__body{max-width:30em}

/* ---------- the answer is written out: each word already holds its place and comes into focus in turn ---------- */
.lc-ans{position:relative}
.lc-w{transition:opacity .45s var(--lc-ease),filter .55s var(--lc-ease)}
.lc-ans.is-streaming .lc-w:not(.on){opacity:0;filter:blur(.14em)}
.lc-ans.is-streaming .lc-ref:not(.on){text-decoration-color:transparent}
.lc-ans.is-streaming .lc-ans__title em:not(.on){background-size:0 100%}
.lc-ref{transition:background .2s,color .2s,text-decoration-color .6s var(--lc-ease)}
.lc-ans > .lc-srcbtn,.lc-ans > .lc-scope{transition:opacity .5s var(--lc-ease) .1s,transform .5s var(--lc-ease) .1s}
.lc-ans.is-streaming > .lc-srcbtn,.lc-ans.is-streaming > .lc-scope{opacity:0;transform:translateY(6px);pointer-events:none}
.lc-caret{--lc-caret:var(--lc-ink);position:absolute;left:0;top:0;width:2px;height:1em;margin-left:.06em;background:var(--lc-caret);border-radius:1px;pointer-events:none;transition:transform .14s var(--lc-ease),opacity .3s;animation:lc-blink 1.05s steps(1) .6s infinite}
html[data-theme="dark"] .lc-caret{--lc-caret:var(--lc-signal)}
.lc-caret.is-gone{opacity:0;animation:none}
@keyframes lc-blink{50%{opacity:0}}
.lc-chips:not([hidden]) .lc-chip{opacity:0;transform:translateY(6px);animation:lc-in .5s var(--lc-ease) forwards;animation-delay:calc(var(--i,0) * 70ms + 60ms)}

/* ---------- pictures arrive: shown only once really loaded, settling from a soft enlarged blur into focus ---------- */
.lc-pv.is-leaving{animation:lc-leave .18s var(--lc-ease) forwards}
@keyframes lc-leave{to{opacity:0;transform:translateY(6px)}}
.lc-pv__fig{animation:lc-unveil .9s var(--lc-ease) both}
@keyframes lc-unveil{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
.lc-pv__fig img{transition:opacity .7s var(--lc-ease),transform 1.3s var(--lc-ease),filter .9s var(--lc-ease)}
.lc-pv__fig:not(.is-loaded) img{opacity:0;transform:scale(1.08);filter:blur(14px)}
.lc-pv__body > *,.lc-pv__items li{opacity:0;transform:translateY(8px);animation:lc-in .55s var(--lc-ease) forwards;animation-delay:calc(var(--i,0) * 60ms + 140ms)}
.lc-pv__items li{animation-delay:calc(var(--i,0) * 45ms + 320ms)}
.lc-i__img img{transition:transform .8s var(--lc-ease),opacity .8s var(--lc-ease) .12s,filter 1s var(--lc-ease) .12s}
.lc-sel__img,.lc-og__img{transition:transform .8s var(--lc-ease),opacity .8s var(--lc-ease) .1s,filter 1s var(--lc-ease) .1s}
html[data-js] .lc-i__img img:not(.is-loaded),html[data-js] .lc-i:not(.in) .lc-i__img img,
html[data-js] .lc-sel__img:not(.is-loaded),html[data-js] .lc-sel__row:not(.in) .lc-sel__img,
html[data-js] .lc-og__img:not(.is-loaded){opacity:0;filter:blur(12px);transform:scale(1.06)}

/* ---------- small screens ---------- */
@media (max-width:860px){
  .lc-tl{grid-template-columns:1fr}
  .lc-tl__year{position:static;font-size:clamp(5rem,28vw,9rem);margin-bottom:8px}
  .lc-tl__note{position:static;margin-bottom:36px}
  .lc-pv{grid-template-columns:1fr}
  .lc-arch{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .lc-m{grid-template-columns:1fr;gap:10px}
  .lc-m__name{position:static}
  .lc-i{grid-template-columns:2.6rem minmax(0,1fr) 72px}
  .lc-i.noimg{grid-template-columns:2.6rem minmax(0,1fr)}
  .lc-sel__row{grid-template-columns:2rem minmax(0,1fr) 84px}
  .lc-arch{grid-template-columns:1fr}
  .lc-quiet:first-of-type{display:none}
  .lc-hero{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}
  .lc-hero.is-answered .lc-foot-hint{display:none}
  .lc-steps{font-size:11px;letter-spacing:.03em}
  .lc-chips{flex-direction:column;gap:0}
  .lc-foot-hint span{display:none}
  .lc-foot-hint{justify-content:flex-start}
}
@media (max-width:360px){
  .lc-dock a{font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  html[data-js] .lc-i:not(.in){opacity:1;transform:none}
  .lc-steps li,.lc-chips:not([hidden]) .lc-chip,.lc-pv__body > *,.lc-pv__items li{opacity:1;transform:none}
  .lc-caret{display:none}
}
@media print{.lc-dock,.lc-chips,.lc-form{display:none}}

/* ---------- seven cities, on film: a 35mm strip running across the page; the frame in the gate is lit, the rest wait on the reel ---------- */
.lc-film{margin:clamp(48px,7vw,96px) 0 clamp(32px,5vw,56px)}
.lc-film__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;margin-bottom:18px}
.lc-film__head .lc-label{margin:0}
.lc-film__count{margin:0 auto 0 0;font:500 12px/1 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted)}
.lc-film__count b{display:inline-block;min-width:2ch;font-weight:500;color:var(--lc-ink);transition:transform .35s var(--lc-ease),opacity .25s}
.lc-film__count b.is-rolling{transform:translateY(-40%);opacity:0}
.lc-film__count span{margin-left:10px;color:var(--lc-ink)}
.lc-film__nav{display:flex;gap:6px}
.lc-film__nav button{width:44px;height:44px;border:1px solid var(--lc-line-strong);border-radius:50%;background:transparent;color:var(--lc-ink);cursor:pointer;transition:background .2s,border-color .2s}
.lc-film__nav button:hover{background:var(--lc-signal);border-color:var(--lc-signal);color:var(--lc-on-signal)}
.lc-film__nav button:disabled{opacity:.35;cursor:default;background:transparent;border-color:var(--lc-line-strong);color:var(--lc-ink)}
/* the strip bleeds to the edges of the window; the film base is dark in both themes (it is an object, not a surface) */
.lc-film__strip{--fw:clamp(250px,44vw,600px);--perf:28px;position:relative;margin-inline:calc(50% - 50vw);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;background:#0c0c0b;cursor:grab;outline-offset:-3px}
.lc-film__strip::-webkit-scrollbar{display:none}
.lc-film__strip.is-dragging{cursor:grabbing;scroll-snap-type:none}
.lc-film__reel{position:relative;display:flex;gap:14px;width:max-content;margin:0;padding:var(--perf) calc(50vw - var(--fw) / 2);list-style:none}
/* sprocket holes along both edges, drawn once across the whole reel so they move with the film */
.lc-film__reel::before,.lc-film__reel::after{content:"";position:absolute;left:0;right:0;height:var(--perf);background:repeating-linear-gradient(90deg,transparent 0 9px,#f4f1e6 9px 21px,transparent 21px 30px);-webkit-mask:linear-gradient(transparent 9px,#000 9px calc(100% - 9px),transparent calc(100% - 9px));mask:linear-gradient(transparent 9px,#000 9px calc(100% - 9px),transparent calc(100% - 9px));opacity:.9;pointer-events:none}
.lc-film__reel::before{top:0}
.lc-film__reel::after{bottom:0}
.lc-film__frame{flex:none;width:var(--fw);scroll-snap-align:center}
.lc-film__frame a{display:block;color:#f4f1e6;text-decoration:none}
.lc-film__pic{display:block;aspect-ratio:3/2;overflow:hidden;border-radius:3px;background:#1d1d1a}
.lc-film__img{width:100%;height:100%;object-fit:cover;filter:grayscale(.75) brightness(.55) contrast(1.05);transform:scale(.94);transition:filter .6s var(--lc-ease),transform .7s var(--lc-ease)}
.lc-film__frame.is-active .lc-film__img{filter:none;transform:none}
.lc-film__frame a:hover .lc-film__img{filter:grayscale(.2) brightness(.85)}
.lc-film__frame.is-active a:hover .lc-film__img{filter:none;transform:scale(1.02)}
.lc-film__edge{display:block;margin:8px 2px 0;color:#e2b45a;font:500 10px/1.3 var(--lc-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.85}
.lc-film__cap{display:grid;gap:4px;margin:10px 2px 6px;opacity:.55;transition:opacity .5s var(--lc-ease)}
.lc-film__frame.is-active .lc-film__cap{opacity:1}
.lc-film__cap b{font:560 clamp(1.4rem,2.6vw,2.2rem)/1 var(--lc-sans);letter-spacing:-.04em;color:#f4f1e6}
.lc-film__cap small{font-size:14px;line-height:1.4;color:#c9c6bb}
.lc-film__cap em{font:500 11px/1.3 var(--lc-mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:#a8a598}
@media (max-width:640px){.lc-film__strip{--fw:78vw;--perf:24px}.lc-film__nav{display:none}}
@media (prefers-reduced-motion:reduce){.lc-film__img,.lc-film__cap,.lc-film__count b{transition:none}}


/* ---------- identity: who, what, the four ways in (first screen) ---------- */
.lc-id{padding-block:clamp(28px,4.5vw,56px) clamp(20px,2.5vw,32px);border-bottom:1px solid var(--lc-line)}
.lc-id__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:end}
.lc-id__name{margin:0;font:560 clamp(3.4rem,10vw,8.6rem)/.9 var(--lc-sans);letter-spacing:-.06em}
.lc-id__line{margin:10px 0 0;font:560 clamp(1.6rem,3.6vw,2.9rem)/1.05 var(--lc-sans);letter-spacing:-.04em}
.lc-id__line em{font:italic 400 1.06em/1 var(--lc-serif);letter-spacing:-.01em}
.lc-id__sub{max-width:30em;margin:18px 0 0;color:var(--lc-muted);font-size:clamp(1.02rem,1.4vw,1.2rem);line-height:1.5}
.lc-id__ways{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:clamp(24px,3.5vw,36px) 0 0;padding:0;list-style:none;border-top:1px solid var(--lc-ink)}
.lc-id__ways a{display:grid;gap:4px;min-height:96px;padding:14px 14px 16px 0;color:var(--lc-ink);text-decoration:none;border-right:1px solid var(--lc-line);transition:background .25s var(--lc-ease)}
.lc-id__ways li + li a{padding-left:14px}
.lc-id__ways li:last-child a{border-right:0}
.lc-id__ways a:hover{background:var(--lc-surface)}
.lc-id__ways a:focus-visible{outline:2px solid var(--lc-focus);outline-offset:-2px}
.lc-id__n{font:500 11px/1 var(--lc-mono);color:var(--lc-muted)}
.lc-id__ways b{font:560 1.35rem/1.1 var(--lc-sans);letter-spacing:-.025em}
.lc-id__c{color:var(--lc-muted);font-size:14px;line-height:1.35}
.lc-id__pic{margin:0}
.lc-id__pic img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:4px;background:var(--lc-surface)}
.lc-id__pic figcaption{margin-top:10px;font:500 11px/1.3 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted)}
/* the question now follows the identity: it no longer has to fill the first screen */
.lc-hero{min-height:auto;padding-block:clamp(24px,3.5vw,44px) 96px}

/* ---------- contact ---------- */
.lc-contact .lc-h2 em{font:italic 400 1.04em/1 var(--lc-serif);letter-spacing:-.01em}
.lc-contact__ways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(24px,4vw,40px) 0 0;padding:0;list-style:none;border-top:1px solid var(--lc-ink)}
.lc-contact__ways a{display:grid;gap:6px;min-height:88px;padding:16px 14px 16px 0;color:var(--lc-ink);text-decoration:none;border-bottom:1px solid var(--lc-line)}
.lc-contact__ways span{font:500 11px/1.3 var(--lc-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lc-muted)}
.lc-contact__ways b{font:560 clamp(1.1rem,1.8vw,1.4rem)/1.2 var(--lc-sans);letter-spacing:-.02em;overflow-wrap:anywhere}
.lc-contact__ways a:hover b{text-decoration:underline;text-decoration-color:var(--lc-signal);text-decoration-thickness:2px;text-underline-offset:.25em}

@media (max-width:900px){
  .lc-id__grid{grid-template-columns:1fr}
  .lc-id__ways{grid-template-columns:1fr 1fr}
  .lc-id__ways li:nth-child(2) a{border-right:0}
  .lc-id__ways li:nth-child(3) a{padding-left:0}
  .lc-id__ways li:nth-child(-n+2) a{border-bottom:1px solid var(--lc-line)}
  .lc-contact__ways{grid-template-columns:1fr}
}
@media (max-width:640px){
  .lc-id__ways a{min-height:72px;padding:10px 10px 12px 0}
  .lc-id__ways li + li a{padding-left:10px}
}
.lc-id__c > span{white-space:nowrap}
/* anchors and the capsule land each section just under the sticky masthead */
html{scroll-padding-top:64px}
.lc-hero,.lc-section{scroll-margin-top:64px}
