h4{margin:0}
.evidence-note{font-size:.8rem;color:var(--color-muted);margin-bottom:1.5rem;max-width:65ch}
.chips li:has(>a){padding:0}
.chips li>a{display:block;padding:6px 12px;border-radius:99px;transition:background .2s}
.chips li>a:hover{background:rgba(255,91,46,.12)}
.chips a span,.evidence-link span{color:var(--color-primary)}
.evidence-link:hover{text-decoration:underline;text-underline-offset:4px}
:root{color-scheme:dark;
  --font-display:'Cabinet Grotesk','Satoshi',system-ui,sans-serif;
  --font-body:'Satoshi',system-ui,sans-serif;
  --text-xs:clamp(.75rem,.72rem + .15vw,.8125rem);--text-sm:clamp(.875rem,.84rem + .2vw,.9375rem);--text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .6vw,1.5rem);--text-xl:clamp(1.5rem,1.1rem + 1.6vw,2.5rem);--text-2xl:clamp(2.25rem,1rem + 4.6vw,5rem);--text-hero:clamp(3.1rem,.6rem + 10.6vw,9.75rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --bg-rgb:18,19,22;--ink:236,233,226;--color-bg:rgb(var(--bg-rgb));--color-surface:#1b1d21;--color-surface-2:#23262b;--color-text:#efece5;--color-muted:#b2afa6;--color-faint:#7d7b74;
  --color-line:rgba(var(--ink),.13);--color-primary:#ff5b2e;--color-primary-hover:#ff7a52;--color-on-primary:#111215;--shadow:0 30px 80px #00000066;
  --radius-sm:6px;--radius-md:12px;--radius-lg:20px;--ease:cubic-bezier(.16,1,.3,1);--gutter:clamp(1.25rem,4vw,3.5rem);--max:1280px;
}

[data-theme=light]{color-scheme:light;--bg-rgb:243,240,234;--ink:28,27,25;--color-surface:#fbfaf6;--color-surface-2:#ebe7df;--color-text:#18181a;--color-muted:#57544e;--color-faint:#8a867e;--color-primary:#e5461a;--color-primary-hover:#c93a12;--color-on-primary:#fff;--shadow:0 24px 60px #3b2a1a1f}
[data-theme=light] .bar.active,[data-theme=light] .steps b{color:#fff}
html{background:var(--color-bg);transition:background .4s}
body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;overflow-x:hidden}
#field{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.9}
main,.header,.footer{position:relative;z-index:1}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:4px}
::selection{background:var(--color-primary);color:var(--color-on-primary)}
.skip{background:var(--color-primary);color:var(--color-on-primary)}

.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--gutter);background:linear-gradient(to bottom,rgba(var(--bg-rgb),.93),rgba(var(--bg-rgb),0));backdrop-filter:blur(8px);-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.brand{font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);letter-spacing:-.02em}
.brand span,.dot{color:var(--color-primary)}
.header nav{display:flex;gap:clamp(var(--space-3),2.4vw,var(--space-8));align-items:center;font-size:var(--text-sm)}
.header nav a{color:var(--color-muted);transition:color .2s;padding:var(--space-2) 0}
.header nav a:hover{color:var(--color-text)}
.header .nav-cta{color:var(--color-on-primary);background:var(--color-primary);padding:var(--space-2) var(--space-4);border-radius:99px;font-weight:700}
.header .nav-cta:hover{background:var(--color-primary-hover);color:var(--color-on-primary)}

.eyebrow{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-weight:700}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 0 #ff5b2e99;animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 12px #ff5b2e00}100%{box-shadow:0 0 0 0 #ff5b2e00}}

.hero{max-width:var(--max);margin:0 auto;padding:clamp(var(--space-12),9vh,var(--space-24)) var(--gutter) var(--space-20)}
h1{font-family:var(--font-display);font-weight:800;font-size:var(--text-hero);line-height:.9;letter-spacing:-.045em;margin-top:var(--space-6)}
h1 .line{display:block;overflow:hidden;padding-bottom:.17em;margin-bottom:-.12em}
h1 .line>span{display:block;animation:rise 1.1s var(--ease) both}
h1 .line:nth-child(2)>span{animation-delay:.12s}h1 .line:nth-child(3)>span{animation-delay:.24s}
@keyframes rise{from{transform:translateY(105%)}to{transform:none}}
.hero-sub{margin-top:var(--space-6);font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);letter-spacing:-.02em;color:var(--color-primary);animation:fade 1s .5s both}
.hero-sub span{color:var(--color-muted)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(var(--space-8),6vw,var(--space-20));margin-top:clamp(var(--space-10),7vw,var(--space-20));align-items:start;animation:fade 1s .7s both}
.question{font-size:var(--text-lg);line-height:1.4;color:var(--color-text);max-width:34ch;font-family:var(--font-display);font-weight:500;letter-spacing:-.01em}
.question-sub{margin-top:var(--space-5);color:var(--color-muted);max-width:56ch}
.punch{margin-top:var(--space-5);font-family:var(--font-display);font-weight:700;font-size:var(--text-lg)}
.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}
.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:99px;font-weight:700;font-size:var(--text-sm);min-height:44px;transition:transform .25s var(--ease),background .2s,border-color .2s}
.btn.primary{background:var(--color-primary);color:var(--color-on-primary)}
.btn.primary:hover{background:var(--color-primary-hover);transform:translateY(-2px)}
.btn.ghost{border:1px solid var(--color-line);background:rgba(var(--ink),.04);color:var(--color-text)}
.btn.ghost:hover{border-color:var(--color-text);transform:translateY(-2px)}
.hero-stats{display:grid;gap:0;border-top:1px solid var(--color-line)}
.hero-stats div{display:grid;grid-template-columns:minmax(6.5rem,auto) 1fr;gap:var(--space-5);align-items:baseline;padding:var(--space-5) 0;border-bottom:1px solid var(--color-line)}
.hero-stats strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.hero-stats span{color:var(--color-muted);font-size:var(--text-sm);line-height:1.45}

section{max-width:var(--max);margin:0 auto;padding:clamp(var(--space-16),11vw,var(--space-32)) var(--gutter)}
.section-head{margin-bottom:clamp(var(--space-10),5vw,var(--space-16))}
h2{font-family:var(--font-display);font-weight:800;font-size:var(--text-2xl);line-height:.98;letter-spacing:-.04em;margin-top:var(--space-4)}
h2 em{font-style:normal;color:var(--color-primary)}
.lede{margin-top:var(--space-6);max-width:60ch;color:var(--color-muted)}

.pillars{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-line)}
.pillar{display:grid;grid-template-columns:4rem 1fr 2rem;gap:var(--space-5);align-items:start;padding:clamp(var(--space-6),3vw,var(--space-10)) 0;border-bottom:1px solid var(--color-line);position:relative;transition:padding .5s var(--ease)}
.pillar::before{content:"";position:absolute;inset:0 calc(var(--gutter)*-1);background:var(--color-surface);opacity:0;transition:opacity .4s;z-index:-1}
.pillar:hover::before,.pillar:focus-visible::before{opacity:1}
.pillar:hover,.pillar:focus-visible{padding-left:var(--space-4)}
.num{color:var(--color-faint);font-variant-numeric:tabular-nums;font-size:var(--text-sm);padding-top:.6em}
.pillar h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:-.03em;line-height:1.1}
.pillar p{margin-top:var(--space-3);color:var(--color-muted);max-width:62ch}
.arrow{color:var(--color-primary);font-size:var(--text-lg);transition:transform .4s var(--ease)}
.pillar:hover .arrow{transform:translate(4px,-4px)}

.ai-shell{display:grid;grid-template-columns:minmax(0,17rem) minmax(0,1fr);gap:clamp(var(--space-6),4vw,var(--space-12))}
.tabs{display:flex;flex-direction:column;gap:var(--space-2)}
.tabs button{display:flex;gap:var(--space-4);text-align:left;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:transparent;color:var(--color-muted);font-weight:500;font-size:var(--text-sm);border:1px solid transparent;min-height:48px;transition:all .3s var(--ease)}
.tabs button span{color:var(--color-faint);font-variant-numeric:tabular-nums}
.tabs button:hover{color:var(--color-text);background:var(--color-surface)}
.tabs button[aria-selected=true]{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-line)}
.tabs button[aria-selected=true] span{color:var(--color-primary)}
.panel{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(var(--space-6),3vw,var(--space-10));align-items:start;animation:fade .6s var(--ease)}
.panel[hidden]{display:none}
.panel-copy h3{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.05;letter-spacing:-.03em;font-weight:800}
.panel-copy p{margin-top:var(--space-4);color:var(--color-muted)}
.mock{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6) var(--space-6);box-shadow:var(--shadow);min-width:0}
.mock-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);font-weight:700;font-size:var(--text-sm)}
.mock-bar em{font-style:normal;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);border:1px solid var(--color-line);padding:2px 10px;border-radius:99px;font-weight:500}

.roadmap{position:relative}
.months{display:grid;grid-template-columns:4.25rem repeat(6,1fr);color:var(--color-faint);font-size:var(--text-xs);margin-bottom:var(--space-3)}
.months span:first-child{grid-column:2}
.lane{display:grid;grid-template-columns:4.25rem 1fr;align-items:center;height:48px;border-top:1px solid var(--color-line);position:relative}
.lane b{font-size:var(--text-xs);color:var(--color-muted);font-weight:500}
.lane .bar{position:absolute;left:calc(4.25rem + (100% - 4.25rem)*var(--s)/100%);width:calc((100% - 4.25rem)*var(--w)/100%);height:28px;border-radius:99px;display:flex;align-items:center;padding:0 var(--space-3);font-style:normal;font-size:var(--text-xs);font-weight:700;overflow:hidden;white-space:nowrap}
.lane .bar u{text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.bar.done{background:rgba(var(--ink),.14);color:var(--color-text)}
.bar.active{background:var(--color-primary);color:var(--color-on-primary);animation:glow 3s ease-in-out infinite}
.bar.planned{border:1px dashed rgba(var(--ink),.38);color:var(--color-muted)}
@keyframes glow{50%{box-shadow:0 0 28px #ff5b2e66}}
.today{position:absolute;top:44px;bottom:48px;left:calc(4.25rem + (100% - 4.25rem - 3rem)*.48 + 1.5rem);width:1px;background:var(--color-text);opacity:.7}
.today span{position:absolute;top:-22px;left:-18px;font-size:var(--text-xs);color:var(--color-text)}
.legend{display:flex;gap:var(--space-4);align-items:center;margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-line);font-size:var(--text-xs);color:var(--color-muted);flex-wrap:wrap}
.k{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:-8px}.k.done{background:rgba(var(--ink),.33)}.k.active{background:var(--color-primary)}.k.planned{border:1px dashed var(--color-muted)}

.planner label{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-4)}
.planner output{color:var(--color-text);font-weight:700;font-variant-numeric:tabular-nums}
input[type=range]{width:100%;accent-color:var(--color-primary);height:28px;background:transparent}
.cap{position:relative;height:44px;border-radius:99px;background:var(--color-surface-2);overflow:hidden;margin:var(--space-5) 0}
.cap-fill{position:absolute;inset:0 auto 0 0;width:50%;background:var(--color-primary);transition:width .5s var(--ease)}
.cap span{position:absolute;inset:0;display:grid;place-items:center;font-weight:700;font-size:var(--text-sm);mix-blend-mode:normal;color:var(--color-text);text-shadow:0 1px 8px rgba(var(--bg-rgb),.9)}
.epics{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.epics li{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--color-surface-2);transition:all .4s var(--ease)}
.epics li.fits{outline:1px solid #ff5b2e88}
.epics li.out{opacity:.45}
.epics li span:last-child{font-variant-numeric:tabular-nums;color:var(--color-muted)}
.epics li.fits span:last-child{color:var(--color-primary);font-weight:700}

.erow{display:grid;grid-template-columns:6.5rem 1fr;gap:var(--space-2) var(--space-4);align-items:center;margin-bottom:var(--space-5)}
.erow b{font-size:var(--text-xs);color:var(--color-muted);font-weight:500}
.track{height:14px;border-radius:99px;background:var(--color-surface-2);position:relative;overflow:hidden}
.track i{position:absolute;inset:0 auto 0 0;width:var(--p);background:var(--color-primary);border-radius:99px;animation:grow 1.2s var(--ease) both}
.track u{position:absolute;inset:0 auto 0 var(--p);width:var(--g);background:repeating-linear-gradient(45deg,rgba(var(--ink),.33) 0 4px,transparent 4px 8px)}
@keyframes grow{from{width:0}}
.erow>span{grid-column:2;font-size:var(--text-xs);color:var(--color-muted)}
.flag{margin-top:var(--space-2);padding:var(--space-4);border:1px dashed #ff5b2e88;border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-muted)}
.flag strong{display:block;color:var(--color-primary);margin-bottom:var(--space-1)}

.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);position:relative}
.steps li{display:grid;grid-template-columns:2rem 1fr auto;gap:var(--space-4);align-items:center;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-2);opacity:0;animation:fade .6s var(--ease) forwards}
.steps li:nth-child(2){animation-delay:.2s}.steps li:nth-child(3){animation-delay:.4s}.steps li:nth-child(4){animation-delay:.6s}
.steps b{width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-sm)}
.steps span{font-weight:500}.steps em{font-style:normal;font-size:var(--text-xs);color:var(--color-muted)}
.ba{display:grid;gap:var(--space-6)}
.ba small{display:block;margin-bottom:var(--space-2);color:var(--color-muted);font-size:var(--text-sm)}
.meter{height:34px;border-radius:99px;background:var(--color-surface-2);overflow:hidden}
.meter i{display:block;height:100%;width:var(--m);background:rgba(var(--ink),.27);border-radius:99px;animation:grow 1.2s var(--ease) both}
.meter.ai i{background:var(--color-primary)}
.note{margin-top:var(--space-6);font-size:var(--text-xs);color:var(--color-muted)}

.exp-main{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(var(--space-8),6vw,var(--space-20));border-top:1px solid var(--color-line);padding-top:var(--space-10)}
.exp-meta{display:grid;gap:var(--space-2);align-content:start}
.exp-meta strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.exp-meta span{color:var(--color-muted)}.tag{display:inline-block;width:fit-content;border:1px solid var(--color-line);padding:2px 12px;border-radius:99px;font-size:var(--text-xs)}
.exp-lead{font-size:var(--text-lg);line-height:1.45;font-family:var(--font-display);font-weight:500;max-width:46ch}
.bullets{list-style:none;margin:var(--space-8) 0 0;padding:0;display:grid;gap:var(--space-5)}
.bullets li{padding-left:var(--space-6);position:relative;color:var(--color-muted);max-width:62ch}
.bullets li::before{content:"";position:absolute;left:0;top:.75em;width:12px;height:1px;background:var(--color-primary)}
.bullets b{color:var(--color-text)}
.exp-prior{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(var(--space-8),6vw,var(--space-20));margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-line);color:var(--color-muted)}
.exp-prior span{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.exp-prior a{color:var(--color-text);width:fit-content;border-bottom:1px solid var(--color-primary);margin-top:var(--space-3);display:inline-block}

.contact h2{font-size:var(--text-hero)}
.contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin-top:var(--space-10)}
.mail{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;border-bottom:2px solid var(--color-primary);padding-bottom:2px;word-break:break-all}
.mail:hover{color:var(--color-primary)}
#copy-status{font-size:var(--text-sm);color:var(--color-muted)}
.footer{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;max-width:var(--max);margin:0 auto;padding:var(--space-8) var(--gutter) var(--space-12);border-top:1px solid var(--color-line);color:var(--color-muted);font-size:var(--text-sm)}

@media(max-width:960px){
  .hero-grid,.ai-shell,.panel,.exp-main,.exp-prior{grid-template-columns:1fr}
  .tabs{flex-direction:row;overflow-x:auto;gap:var(--space-2);padding-bottom:var(--space-2);scrollbar-width:thin;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter)}
  .tabs button{white-space:nowrap;flex:none}
}
@media(max-width:560px){
  .header nav a:not(.nav-cta){display:none}
  .pillar{grid-template-columns:2.5rem 1fr}.arrow{display:none}
  .hero-stats div{grid-template-columns:1fr;gap:var(--space-1)}
  .months{font-size:.6875rem}.lane .bar u{display:none}
  .mock{padding:var(--space-4)}
  .erow{grid-template-columns:1fr}.erow>span{grid-column:1}
}
.deliveries{margin-top:var(--space-16)}
.deliveries>h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;letter-spacing:-.03em;margin-bottom:var(--space-6)}
.delivery-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--color-line);border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden}
.delivery-grid li{background:var(--color-bg);padding:clamp(var(--space-5),3vw,var(--space-8));transition:background .3s}
.delivery-grid li:hover{background:var(--color-surface)}
.delivery-grid li:first-child,.delivery-grid li:nth-child(2){background:var(--color-surface)}
.d-num{color:var(--color-primary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:700}
.delivery-grid h4{margin:var(--space-3) 0;font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em;line-height:1.15}
.delivery-grid p{color:var(--color-muted);font-size:var(--text-sm)}
@media(max-width:720px){.delivery-grid{grid-template-columns:1fr}}

/* v3: links, marquee, culture & talks, reveal */
.pillars>li{list-style:none}
a.pillar{color:inherit}
.pillar:hover .arrow,.pillar:focus-visible .arrow{transform:translate(3px,3px)}
.exp-prior a{margin-top:var(--space-4)}

.marquee{position:relative;z-index:1;border-block:1px solid var(--color-line);overflow:hidden;padding:var(--space-5) 0;background:rgba(var(--bg-rgb),.8);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-10);width:max-content;animation:marq 48s linear infinite}
.marquee-track li{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:-.01em;white-space:nowrap;color:var(--color-muted);display:flex;align-items:center;gap:var(--space-10)}
.marquee-track li::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--color-primary)}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}

.culture-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.c-card{position:relative;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:clamp(var(--space-6),3vw,var(--space-8));overflow:hidden;transition:transform .5s var(--ease),border-color .3s}
.c-card::after{content:"";position:absolute;inset:auto -30% -60% auto;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(#ff5b2e33,transparent 65%);opacity:0;transition:opacity .5s}
.c-card:hover{transform:translateY(-4px);border-color:#ff5b2e55}.c-card:hover::after{opacity:1}
.c-tag{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--color-primary)}
.c-card h3{margin-top:var(--space-4);font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;letter-spacing:-.02em;line-height:1.15}
.c-card p{margin-top:var(--space-3);color:var(--color-muted);font-size:var(--text-sm)}
.loop{position:relative;width:min(200px,70%);aspect-ratio:1;margin:var(--space-6) auto 0}
.loop svg{width:100%;height:100%;transform:rotate(-90deg)}
.loop-track{fill:none;stroke:var(--color-line);stroke-width:2}
.loop-run{fill:none;stroke:var(--color-primary);stroke-width:3;stroke-linecap:round;stroke-dasharray:120 370;animation:loop 6s linear infinite}
@keyframes loop{to{stroke-dashoffset:-490}}
.loop ol{list-style:none;margin:0;padding:0;position:absolute;inset:0;font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.loop li{position:absolute;background:var(--color-surface);padding:2px 6px;border-radius:99px;transform:translate(-50%,-50%)}
.loop li:nth-child(1){left:50%;top:11%}.loop li:nth-child(2){left:89%;top:50%}.loop li:nth-child(3){left:50%;top:89%}.loop li:nth-child(4){left:11%;top:50%}

.talks{margin-top:var(--space-16)}
.talks-head{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(var(--space-8),6vw,var(--space-20));margin-bottom:var(--space-8);align-items:start}
.talks-head h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;letter-spacing:-.03em;line-height:1.05}
.talks-head p{color:var(--color-muted);max-width:60ch}
.talk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
.talk{display:block;color:inherit;border-radius:var(--radius-lg);border:1px solid var(--color-line);background:var(--color-surface);overflow:hidden;transition:transform .5s var(--ease),border-color .3s}
.talk:hover{transform:translateY(-6px);border-color:#ff5b2e66}
.talk-img{position:relative;aspect-ratio:960/483;overflow:hidden;border-bottom:1px solid var(--color-line)}
.talk-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .6s,transform 1.2s var(--ease)}
.talk-img .alt{opacity:0}
.talk:hover .talk-img img{transform:scale(1.03)}.talk:hover .talk-img .alt{opacity:1}
.talk-meta{padding:var(--space-6)}
.talk-meta span{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-weight:700}
.talk-meta h4{margin-top:var(--space-2);font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;letter-spacing:-.02em}
.talk-meta p{margin-top:var(--space-2);color:var(--color-muted);font-size:var(--text-sm)}
.talk-meta b{display:inline-block;margin-top:var(--space-4);font-size:var(--text-sm);border-bottom:1px solid var(--color-primary)}

.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
@media(max-width:960px){.culture-grid{grid-template-columns:1fr}.talks-head{grid-template-columns:1fr;gap:var(--space-4)}}
@media(max-width:720px){.talk-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.marquee-track,.loop-run{animation:none}.js .reveal{opacity:1;transform:none}}
.culture-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"a c" "b c"}
.culture-grid .c-card:nth-child(1){grid-area:a}.culture-grid .c-card:nth-child(2){grid-area:b}.culture-grid .c-loop{grid-area:c;display:flex;flex-direction:column}
.c-loop .loop{margin:auto;width:min(260px,80%);padding-top:var(--space-6)}
@media(max-width:960px){.culture-grid{grid-template-columns:1fr;grid-template-areas:"a" "b" "c"}}
.hero-sub{line-height:1.15}

/* v4: header tools, portrait, AI note, dossier, palette */
.header nav{flex-wrap:nowrap}
.icon-btn{display:inline-flex;align-items:center;gap:6px;min-width:40px;height:40px;justify-content:center;padding:0 10px;border-radius:99px;border:1px solid var(--color-line);background:rgba(var(--ink),.04);color:var(--color-text);transition:border-color .2s,background .2s}
.icon-btn:hover{border-color:var(--color-text)}
.icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.icon-btn kbd{font:600 11px/1 var(--font-body);color:var(--color-muted)}
.i-moon{display:none}[data-theme=light] .i-sun{display:none}[data-theme=light] .i-moon{display:block}
kbd{font-family:var(--font-body);font-size:.8em;border:1px solid var(--color-line);border-bottom-width:2px;border-radius:6px;padding:1px 6px;background:rgba(var(--ink),.05)}

.hero{position:relative}
.portrait{position:absolute;right:var(--gutter);top:clamp(var(--space-10),8vh,var(--space-20));width:clamp(220px,24vw,340px);margin:0;aspect-ratio:800/1040;border-radius:var(--radius-lg);overflow:hidden;background:#0a0a0a;box-shadow:var(--shadow);animation:fade 1.2s .3s both}
.portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#0a0a0acc);pointer-events:none}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;transition:transform 1.4s var(--ease)}
.portrait:hover img{transform:scale(1.04)}
.portrait figcaption{position:absolute;left:var(--space-4);bottom:var(--space-4);z-index:1;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#efece5}
.portrait::before{content:"";position:absolute;inset:-1px;border-radius:inherit;border:1px solid rgba(255,91,46,.35);z-index:2;pointer-events:none}
@media(min-width:961px){.hero h1,.hero-sub{max-width:calc(100% - clamp(220px,24vw,340px) - var(--space-8))}.hero h1{font-size:clamp(3.1rem,.2rem + 7.6vw,8.25rem)}}
@media(max-width:960px){.portrait{position:relative;right:auto;top:auto;width:min(260px,62vw);margin:var(--space-8) 0 var(--space-6)}}

.ai-note{margin-top:var(--space-4);max-width:60ch;font-size:var(--text-sm);color:var(--color-muted);padding:var(--space-3) var(--space-4);border-left:2px solid var(--color-primary);background:rgba(var(--ink),.03);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.ai-note b{color:var(--color-text)}

.dossier{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:clamp(var(--space-6),4vw,var(--space-12));align-items:start}
.d-tabs{position:sticky;top:88px;display:flex;flex-direction:column;gap:6px}
.d-tabs button{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);min-height:48px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--color-muted);font-weight:700;font-size:var(--text-sm);text-align:left;position:relative;transition:all .3s var(--ease)}
.d-tabs button small{font-weight:700;font-size:var(--text-xs);color:var(--color-faint);font-variant-numeric:tabular-nums}
.d-tabs button:hover{color:var(--color-text);background:var(--color-surface)}
.d-tabs button[aria-selected=true]{color:var(--color-text);background:var(--color-surface-2);border-color:var(--color-line)}
.d-tabs button[aria-selected=true]::before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--color-primary)}
.d-tabs button[aria-selected=true] small{color:var(--color-primary)}
.d-panel{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:clamp(var(--space-5),3vw,var(--space-10));animation:fade .5s var(--ease);min-width:0}
.d-panel[hidden]{display:none}
.d-panel h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;font-size:var(--text-lg);line-height:1.2}

.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:7.5rem;top:8px;bottom:8px;width:1px;background:var(--color-line)}
.timeline li{display:grid;grid-template-columns:7.5rem 1fr;gap:var(--space-6);padding:0 0 var(--space-8);position:relative}
.timeline li:last-child{padding-bottom:0}
.timeline li::after{content:"";position:absolute;left:calc(7.5rem - 4px);top:7px;width:9px;height:9px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-faint)}
.timeline li.now::after{border-color:var(--color-primary);background:var(--color-primary);box-shadow:0 0 0 5px #ff5b2e2e}
.timeline time{font-size:var(--text-xs);color:var(--color-muted);font-weight:700;letter-spacing:.04em;padding-top:.3em;font-variant-numeric:tabular-nums;padding-right:var(--space-4)}
.timeline li>div{padding-left:var(--space-4)}
.timeline .org{color:var(--color-primary);font-weight:700;font-size:var(--text-sm);margin-top:2px}
.timeline p:not(.org){color:var(--color-muted);font-size:var(--text-sm);margin-top:var(--space-2);max-width:62ch}
details{margin-top:var(--space-3)}
summary{cursor:pointer;width:fit-content;font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);list-style:none;display:inline-flex;gap:6px;align-items:center;padding:4px 12px;border:1px solid var(--color-line);border-radius:99px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--color-primary);font-size:14px}
details[open] summary::after{content:"−"}
details ul{margin:var(--space-3) 0 0;padding-left:1.1em;color:var(--color-muted);font-size:var(--text-sm);display:grid;gap:4px}
details li::marker{color:var(--color-primary)}

.cert-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8)}
.cert-groups h4{font-size:var(--text-base);margin-bottom:var(--space-3)}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{font-size:var(--text-xs);font-weight:500;padding:6px 12px;border-radius:99px;background:var(--color-surface-2);border:1px solid var(--color-line);line-height:1.35}
.learning{margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px dashed var(--color-line);display:grid;gap:var(--space-2)}
.learning span{font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary)}
.learning p{color:var(--color-muted);font-size:var(--text-sm)}

.award-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}
.award-hero div{padding:var(--space-5);border-radius:var(--radius-md);background:var(--color-surface-2);display:grid;gap:var(--space-2)}
.award-hero strong{font-family:var(--font-display);font-weight:800;font-size:var(--text-xl);letter-spacing:-.03em;color:var(--color-primary);line-height:1}
.award-hero span{font-size:var(--text-xs);color:var(--color-muted)}
.awards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-8)}
.awards li{display:grid;gap:2px;padding:var(--space-4) 0;border-bottom:1px solid var(--color-line)}
.awards b{font-size:var(--text-sm)}.awards span{font-size:var(--text-xs);color:var(--color-muted)}

.refs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
.refs blockquote{margin:0;padding:var(--space-6);border-radius:var(--radius-md);background:var(--color-surface-2);position:relative;display:flex;flex-direction:column;gap:var(--space-4)}
.refs blockquote::before{content:"“";position:absolute;top:-.15em;right:.2em;font-family:var(--font-display);font-size:7rem;line-height:1;color:var(--color-primary);opacity:.25}
.refs blockquote>p:first-child{font-family:var(--font-display);font-size:var(--text-base);font-weight:500;line-height:1.5}
.ref-ctx{font-size:var(--text-xs);color:var(--color-muted)}
.refs footer{margin-top:auto;display:grid;font-size:var(--text-sm)}.refs footer span{color:var(--color-muted);font-size:var(--text-xs)}

.me-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8)}
.me-grid .wide{grid-column:1/-1}
.me-grid h4{font-size:var(--text-base);margin-bottom:var(--space-4)}
.langs{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
.langs li{display:grid;grid-template-columns:5rem 1fr 7rem;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}
.langs i{height:6px;border-radius:99px;background:var(--color-surface-2);position:relative;overflow:hidden}
.langs i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--l);background:var(--color-primary);border-radius:99px}
.langs em{font-style:normal;color:var(--color-muted);font-size:var(--text-xs);text-align:right}
.mbti{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-3)}.mbti b{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text);margin-right:6px}
.traits li{border-color:#ff5b2e55}
.me-grid .wide p{color:var(--color-muted);font-size:var(--text-sm);margin-bottom:var(--space-4);max-width:70ch}

.kpal{padding:0;border:none;background:transparent;width:min(560px,calc(100vw - 2rem));margin:12vh auto auto;color:var(--color-text)}
.kpal::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(6px)}
.kpal-box{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}
.kpal input{width:100%;padding:var(--space-5) var(--space-6);font:inherit;font-size:var(--text-lg);background:transparent;border:0;border-bottom:1px solid var(--color-line);color:var(--color-text);outline:none}
.kpal ul{list-style:none;margin:0;padding:var(--space-2);max-height:min(50vh,380px);overflow:auto}
.kpal li{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm)}
.kpal li small{color:var(--color-faint);font-size:var(--text-xs);white-space:nowrap}
.kpal li[aria-selected=true]{background:var(--color-surface-2)}.kpal li[aria-selected=true] small{color:var(--color-primary)}
.kpal-hint{padding:var(--space-3) var(--space-6);border-top:1px solid var(--color-line);font-size:var(--text-xs);color:var(--color-muted)}
.kpal-hint kbd{margin-right:2px}

@media(max-width:1100px){.header nav a[href="#story"]{display:none}}
@media(max-width:960px){
  .dossier{grid-template-columns:1fr}
  .d-tabs{position:sticky;top:64px;z-index:5;flex-direction:row;overflow-x:auto;margin-inline:calc(var(--gutter)*-1);padding:var(--space-2) var(--gutter);background:rgba(var(--bg-rgb),.92);backdrop-filter:blur(8px);scrollbar-width:none}
  .d-tabs button{flex:none;white-space:nowrap;min-height:44px}
  .d-tabs button[aria-selected=true]::before{left:12px;right:12px;top:auto;bottom:-1px;width:auto;height:3px}
  .header nav a:not(.nav-cta){display:none}
}
@media(max-width:720px){
  .cert-groups,.awards,.refs,.me-grid,.award-hero{grid-template-columns:1fr}
  .timeline::before{left:4px}.timeline li{grid-template-columns:1fr;gap:var(--space-1);padding-left:var(--space-6)}
  .timeline li::after{left:0}.timeline li>div{padding-left:0}
  .langs li{grid-template-columns:4.5rem 1fr 6.5rem}
  .icon-btn kbd{display:none}
}
.learning-list{margin-top:var(--space-2)}
.learning-list .soon{border-style:dashed;color:var(--color-muted);background:transparent}

.btn.dl{border:1px solid rgba(255,91,46,.55);color:var(--color-text);background:rgba(255,91,46,.08)}
.btn.dl svg{width:17px;height:17px;fill:none;stroke:var(--color-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.btn.dl small{font-weight:500;color:var(--color-muted);font-size:var(--text-xs)}
.btn.dl:hover{background:rgba(255,91,46,.16);transform:translateY(-2px)}
.header .nav-dl{color:var(--color-text);font-weight:700;border:1px solid var(--color-line);padding:var(--space-2) var(--space-4);border-radius:99px}
.header .nav-dl span{color:var(--color-primary)}
.header .nav-dl:hover{border-color:var(--color-primary)}
.cv-dl{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}
@media(max-width:960px){.header nav a.nav-dl{display:inline-flex}}
@media(max-width:400px){.icon-btn#open-k{display:none}}
