@charset "utf-8";
/* E0.5 project page. Base: E05_v6_Source/index.html (hero, story, end section). Project-page additions follow the '=== Project page ===' marker. */
:root{--bg:#0b1010;--bg2:#0e1716;--paper:#f5f6f0;--ink:#172320;--light:#edf6f0;--muted:#a0b0a8;--teal:#64dbcb;--teal2:#2bb5ae;--line:#35514a;--font:Inter,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--bg);color:var(--light);font-family:var(--font);-webkit-font-smoothing:antialiased} button,a{font:inherit} button{cursor:pointer} a{color:inherit;text-decoration:none} button:focus-visible,a:focus-visible{outline:2px solid var(--teal);outline-offset:4px} ::selection{background:var(--teal2);color:#061612}
.nav{height:85px;position:absolute;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(28px,5.5vw,100px);border-bottom:1px solid #a9cdc521}
.brand{display:inline-flex;align-items:center;gap:13px;font-size:22px;letter-spacing:-.05em;font-weight:760}.brandmark{position:relative;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.brandmark img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 0 10px rgba(101,219,203,.18))}
.navright{display:flex;align-items:center;gap:38px;font-size:12px;color:#a9bdb3}.navright a{transition:color .25s}.navright a:hover{color:white}.navcta{border:1px solid #658b7c;padding:12px 20px;border-radius:2px;color:#e5f6ed!important;display:inline-flex;gap:20px;align-items:center}.navcta:hover{background:#ffffff0d}
.hero{height:min(1000px,100svh);min-height:730px;position:relative;overflow:hidden;background:radial-gradient(ellipse 60% 60% at 74% 49%,#13352e 0%,#0c1816 45%,#0b1010 90%)}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#0b1010 0%,#0b1010fa 22%,#0b1010a0 39%,transparent 58%),radial-gradient(circle at 93% 6%,#45d6ba14,transparent 43%)}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.24;background-image:linear-gradient(#60b5a50d 1px,transparent 1px),linear-gradient(90deg,#60b5a50d 1px,transparent 1px);background-size:74px 74px;mask-image:linear-gradient(90deg,transparent 20%,#000)}
.hero-copy{position:absolute;z-index:8;left:clamp(28px,5.5vw,100px);top:49%;transform:translateY(-43%);pointer-events:none;max-width:580px}
.kicker{font-size:11px;letter-spacing:.22em;color:#81cfc2;font-weight:650;display:flex;gap:11px;align-items:center}.live-dot{width:7px;height:7px;border-radius:50%;background:#7be7d4;box-shadow:0 0 0 4px #61ebcc10,0 0 16px #61ebcc7a;flex-shrink:0;animation:pulse 3s infinite}@keyframes pulse{50%{opacity:.48;box-shadow:0 0 0 8px #61ebcc05,0 0 22px #61ebcca2}}
.hero h1{font-size:clamp(115px,11.2vw,184px);font-weight:510;letter-spacing:-.105em;line-height:.98;margin:28px 0 15px}.hero h1 span{color:#6ddccb}
.hero-lead{font-size:clamp(29px,3.65vw,58px);letter-spacing:-.063em;font-weight:480;line-height:1.065;margin:0 0 24px;max-width:580px}.hero-lead em{font-style:normal;color:#96aaa0}.hero-desc{font-size:clamp(14px,1.24vw,17px);line-height:1.68;color:#aabdb2;max-width:370px;margin:0 0 34px}.hero-pills{display:flex;gap:9px;flex-wrap:wrap}.hero-pills span{display:inline-flex;align-items:center;padding:8px 13px;border-radius:20px;border:1px solid #6b9c8d53;color:#a8c4b5;font-size:10px;letter-spacing:.07em;text-transform:uppercase}
.hero-stage{position:absolute;top:85px;right:0;width:67%;height:calc(100% - 118px);z-index:4;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none}
.hero-stage::before{position:absolute;inset:0;content:"";z-index:0;pointer-events:none;background:radial-gradient(ellipse at 53% 47%,#287b6c22,transparent 58%)}
.hero-stage canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block}
#scene-overlay{z-index:2}#particle-canvas{z-index:1}
.scene-bar{position:absolute;z-index:7;top:45px;right:clamp(28px,5.5vw,100px);font-size:10px;color:#96c3b4;letter-spacing:.17em;display:flex;align-items:center;gap:13px;pointer-events:none}
.scene-bar:before{content:"";height:1px;width:30px;background:#5eb2a0}
.stage-bottom{position:absolute;z-index:10;left:8%;right:clamp(28px,5.5vw,100px);bottom:18px;display:flex;align-items:end;justify-content:space-between;gap:20px;pointer-events:none}
.stage-info{display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:300px}.stage-info strong{color:#effff6;letter-spacing:.09em;font-size:11px;font-weight:580;text-transform:uppercase}.stage-info span{color:#91b3a3;font-size:11px;line-height:1.6}.statusline{display:flex;align-items:center;gap:7px}.statusline i{width:6px;height:6px;border-radius:50%;background:#5ce2c0;display:block;box-shadow:0 0 10px #63e5d2}
.stage-actions{display:flex;gap:8px;pointer-events:auto;align-items:center}.small-btn{white-space:nowrap;appearance:none;background:#122721bd;border:1px solid #7cb5a44a;color:#cde8dc;letter-spacing:.07em;font-size:10px;padding:13px 16px;border-radius:2px;backdrop-filter:blur(12px);transition:background .2s,border-color .2s}.small-btn:hover{background:#224538;border-color:#6acbb2}.small-btn.primary{background:#d8f3e6;color:#183029;border-color:#d8f3e6}.small-btn.primary:hover{background:#a6e2d2}
.hero-bottom{position:absolute;z-index:10;bottom:0;left:clamp(28px,5.5vw,100px);right:clamp(28px,5.5vw,100px);height:55px;border-top:1px solid #8fc5b52a;display:flex;align-items:center;justify-content:space-between;color:#719589;font-size:10px;letter-spacing:.15em;pointer-events:none}
.hero-bottom .scroll{color:#bdd5c9}.hero-bottom .scroll span{display:inline-block;font-size:18px;vertical-align:middle;margin-left:10px}
.progressline{height:2px;background:#28473e;width:90px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:12px}.progressline i{display:block;width:0%;height:100%;background:#72dec5;transition:width .15s}
.story{background:#f3f5ef;color:#172620;padding:clamp(90px,10vw,160px) clamp(28px,5.5vw,100px) 120px}.sec-meta{display:flex;justify-content:space-between;color:#77887e;font-size:11px;letter-spacing:.15em;font-weight:600;text-transform:uppercase;border-top:1px solid #bbc9bf;padding-top:20px}.story h2{margin:68px 0 62px;font-size:clamp(48px,6.5vw,100px);letter-spacing:-.08em;line-height:1.02;max-width:1100px;font-weight:540}.story h2 span{color:#95a99c}.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #c1ccc2}.step{padding:30px 38px 45px 0;border-right:1px solid #c1ccc2}.step:not(:first-child){padding-left:40px}.step:last-child{border:0}.step .idx{font-size:11px;color:#6c9888;letter-spacing:.1em}.step svg{display:block;width:100%;height:146px;margin:24px 0;max-width:280px}.step h3{font-size:28px;letter-spacing:-.06em;font-weight:550;margin:12px 0 13px}.step p{font-size:14px;color:#718276;line-height:1.7;max-width:310px;margin:0}.subnote{color:#778a7d;line-height:1.65;font-size:12px;margin-top:37px}
.end-section{padding:130px clamp(28px,5.5vw,100px) 110px;background:#101b18;color:#edf8ee;position:relative;overflow:hidden}.end-section::before{content:"";position:absolute;right:-12%;bottom:-90%;width:60vw;height:60vw;border-radius:50%;border:1px solid #6cd9ba26;box-shadow:0 0 0 120px #6cd9ba06,0 0 0 240px #6cd9ba05;pointer-events:none}.end-section .kicker{margin-bottom:28px}.end-section h2{font-size:clamp(52px,7.5vw,118px);font-weight:500;letter-spacing:-.085em;line-height:1;max-width:1000px;margin:0 0 30px}.end-section h2 em{color:#70d6c0;font-style:normal}.end-section p{font-size:16px;color:#9cb3a5;line-height:1.7;max-width:550px}.end-section a{display:inline-flex;border-bottom:1px solid #79daca;padding:13px 0;gap:70px;margin-top:36px;color:#ddf5e9;font-size:13px}.footer{padding:28px clamp(28px,5.5vw,100px);background:#0e1513;border-top:1px solid #43645661;display:flex;justify-content:space-between;gap:20px;align-items:center;color:#7e998b;font-size:11px}.footer b{color:#eef7ef;font-size:19px;letter-spacing:-.08em}
@media(max-width:1100px){.hero-copy{max-width:410px}.hero h1{font-size:clamp(105px,12vw,150px)}.hero-lead{font-size:clamp(29px,4vw,48px)}.hero-stage{width:66%}.scene-bar{right:32px}.stage-bottom{right:27px;left:6%}.hero::before{background:linear-gradient(90deg,#0b1010 0%,#0b1010f2 20%,#0b10109a 42%,transparent 66%)}}
@media(max-width:780px){.nav{height:71px;padding:0 24px}.navright>a:not(.navcta){display:none}.navright{gap:15px}.navcta{padding:10px 13px;font-size:10px}.hero{height:100svh;min-height:800px;max-height:1000px}.hero::before{background:linear-gradient(180deg,#0b1010 0%,#0b1010 19%,#0b1010cf 34%,transparent 58%)}.hero-copy{top:105px;left:25px;right:25px;transform:none;max-width:660px}.hero h1{font-size:clamp(90px,21vw,150px);margin:17px 0 9px}.hero-lead{font-size:clamp(31px,7.2vw,53px);max-width:500px;margin-bottom:14px}.hero-desc{font-size:13px;margin-bottom:16px;max-width:340px}.hero-pills span{font-size:9px;padding:7px 10px}.kicker{font-size:10px}.hero-stage{top:355px;left:0;right:0;width:100%;height:calc(100% - 410px)}.scene-bar{top:359px;right:23px;font-size:8px}.stage-bottom{left:24px;right:24px;bottom:10px}.stage-info span{max-width:200px;font-size:10px}.stage-info strong{font-size:10px}.small-btn{font-size:9px;padding:11px}.hero-bottom{left:24px;right:24px;font-size:8px}.story{padding:90px 26px}.story h2{font-size:clamp(43px,9vw,70px);margin:46px 0}.story-grid{grid-template-columns:1fr}.step{padding:24px 0 30px!important;border-right:0;border-bottom:1px solid #c1ccc2}.step svg{height:110px;margin:7px 0}.step h3{margin-top:0}.end-section{padding:105px 26px}.footer{padding:23px 26px}}
@media(max-width:430px){.navright .navcta{display:none}.hero{min-height:770px}.hero h1{font-size:94px}.hero-lead{font-size:34px;line-height:1.02}.hero-stage{top:344px;height:calc(100% - 396px)}.scene-bar{top:347px}.hero-pills span:last-child{display:none}.stage-bottom{flex-direction:column;align-items:flex-start;gap:12px;bottom:6px}.stage-actions{align-self:flex-end}.stage-info{gap:3px}.stage-info span{max-width:none}.hero-bottom .scroll{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.live-dot{animation:none}}

@media(max-width:780px){.footer{flex-wrap:wrap}}

/* === Project page ===================================================== */
:root{--gut:clamp(28px,5.5vw,100px);--p-bg:#f3f5ef;--p-bg2:#e2e9df;--p-ink:#172620;--p-ink2:#4c5c53;--p-muted:#718276;--p-line:#c1ccc2;--p-line2:#dbe2d9;--e-teal:#179f9a;--e-teal-soft:#9fd6d1;--e-graph:#4f5452;--e-amber:#c0782e;--e-amber-soft:#ebc9a3;--d-bg:#0e1514;--d-panel:#13171e}
html{scroll-padding-top:72px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* nav: fixed, turns solid after the hero */
.nav{position:fixed;transition:background .3s,height .3s,border-color .3s}
.nav.is-solid{height:64px;background:#0b1010e8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:#a9cdc52e}
.brand-tag{font-weight:400;font-size:10px;letter-spacing:.16em;color:#72998b;margin-left:10px}
.navright{gap:30px}
@media(max-width:1100px){.navright>a:not(.navcta){display:none}}

.scene-bar{top:108px}
@media(max-width:780px){.scene-bar{display:none}.sec-meta{flex-direction:column;gap:6px}}
/* hero links replace the template pills */
.hero-links{display:flex;gap:9px;flex-wrap:wrap;pointer-events:auto}
.hero-links a{display:inline-flex;align-items:center;gap:10px;padding:10px 15px;border-radius:2px;border:1px solid #6b9c8d70;color:#cfe6da;font-size:11px;letter-spacing:.1em;text-transform:uppercase;transition:background .2s,border-color .2s}
.hero-links a:first-child{background:#d8f3e6;color:#183029;border-color:#d8f3e6}
.hero-links a:hover{background:#224538;border-color:#6acbb2;color:#effff6}
.hero-links a:first-child:hover{background:#a6e2d2;color:#183029}
.hero-links a span{font-size:14px;line-height:0}
@media(max-width:780px){.hero-links a{font-size:9px;padding:8px 10px;gap:6px}}

/* generic sections */
.sec{background:var(--p-bg);color:var(--p-ink);padding:clamp(90px,9vw,150px) max(var(--gut),calc((100% - 1440px) / 2)) clamp(80px,8vw,130px)}
.sec--paper2{background:var(--p-bg2)}
.display{margin:60px 0 34px;font-size:clamp(40px,5.4vw,84px);letter-spacing:-.07em;line-height:1.03;font-weight:540}
.display span{color:#95a99c}
.display i{font-style:italic;font-weight:440}
.paper-title{font-size:clamp(34px,4.3vw,66px);letter-spacing:-.06em;max-width:1440px}
.paper-title span{color:var(--e-teal)}
.lede{font-size:clamp(15px,1.25vw,18px);line-height:1.7;color:#a4b8ad;max-width:820px;margin-top:0;margin-bottom:46px}
.lede.dark-ink{color:var(--p-ink2)}
.fine{font-size:12px;line-height:1.7;color:#7f9a8e;max-width:1100px;margin-top:22px}
.fine.dark-ink{color:var(--p-muted)}
.idx{font-size:11px;color:#6c9888;letter-spacing:.1em;text-transform:uppercase}

/* authors + abstract */
.authors{border-top:1px solid var(--p-line);padding-top:26px;margin-bottom:56px}
.author-team{font-size:18px;font-weight:620;letter-spacing:-.02em;margin:0 0 14px}
.author-list{font-size:14px;line-height:1.85;color:var(--p-ink2);margin:0 0 6px;max-width:1150px}
.author-list b{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#6c9888;margin-right:12px;font-weight:650}
.author-list sup,.author-note sup{color:var(--e-teal);font-weight:700}
.author-note{font-size:12px;color:var(--p-muted);margin:12px 0 0}
.abstract-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;border-top:1px solid var(--p-line);padding-top:30px}
.abstract-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#6c9888;font-weight:650}
.abstract-body p{font-size:clamp(16px,1.3vw,19px);line-height:1.75;margin:0 0 18px;max-width:900px;color:#26352f}
.abstract-body b{font-weight:640;color:var(--p-ink)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--p-line);margin-top:54px}
.stat{padding:30px 28px 6px 0;border-right:1px solid var(--p-line)}
.stat:not(:first-child){padding-left:30px}.stat:last-child{border-right:0}
.stat b{display:block;font-size:clamp(40px,4.4vw,66px);font-weight:520;letter-spacing:-.07em;line-height:1;color:var(--p-ink)}
.stat b small{font-size:.45em;letter-spacing:-.02em;color:var(--e-teal);font-weight:560}
.stat span{display:block;margin-top:14px;font-size:12px;line-height:1.55;color:var(--p-muted)}

/* figures */
.figure{margin:56px 0 0;background:#fff;border:1px solid var(--p-line2);padding:clamp(14px,2.4vw,34px);border-radius:2px}
.figure img{display:block;width:100%;height:auto}
.figure figcaption{margin-top:18px;font-size:13px;line-height:1.65;color:var(--p-muted);max-width:980px}
.figure figcaption b{color:var(--p-ink);font-weight:620}
.story .figure{max-width:none}

/* method: at-a-glance diagram */
.arch{margin:52px 0 0;display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1.1fr) 116px minmax(0,1.15fr);grid-template-areas:"in lin core lgeo geo" "in lin core lact act";gap:16px 0}
.arch-in{grid-area:in;display:grid;gap:16px}
.arch-node,.arch-core{display:flex;flex-direction:column;gap:9px;padding:22px 24px;border-radius:2px}
.arch-node{background:#fff;border:1px solid var(--p-line2)}
.arch-k{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#6c9888;font-weight:650}
.arch-node b{font-size:20px;letter-spacing:-.04em;font-weight:600;line-height:1.15;color:var(--p-ink)}
.arch-node b i{font-weight:500}
.arch-node small,.arch-core small{font-size:13px;line-height:1.6;color:var(--p-ink2)}
.arch-cams{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:4px}
.arch-cams i{aspect-ratio:4/3;display:flex;align-items:flex-end;padding:4px 6px;font-style:normal;font-size:10px;line-height:1.2;color:var(--p-muted);background:linear-gradient(160deg,#eef2ee,#d5ded8);border-radius:2px}
.arch-core{grid-area:core;justify-content:center;background:var(--p-ink);color:#effff6;padding:28px}
.arch-core .arch-k{color:#64dbcb}
.arch-core b{font-size:clamp(24px,2.2vw,32px);letter-spacing:-.05em;font-weight:560;line-height:1.1;color:#fff}
.arch-core small{color:#a9c7ba}
.arch-layers{display:flex;gap:4px;height:48px;margin-top:14px}
.arch-layers i{flex:1;background:#2bb5ae;opacity:.3;border-radius:1px;animation:arch-pulse 2.4s ease-in-out infinite}
.arch-layers i:nth-child(2){animation-delay:.1s}.arch-layers i:nth-child(3){animation-delay:.2s}.arch-layers i:nth-child(4){animation-delay:.3s}.arch-layers i:nth-child(5){animation-delay:.4s}.arch-layers i:nth-child(6){animation-delay:.5s}.arch-layers i:nth-child(7){animation-delay:.6s}.arch-layers i:nth-child(8){animation-delay:.7s}.arch-layers i:nth-child(9){animation-delay:.8s}.arch-layers i:nth-child(10){animation-delay:.9s}.arch-layers i:nth-child(11){animation-delay:1s}.arch-layers i:nth-child(12){animation-delay:1.1s}
@keyframes arch-pulse{0%,100%{opacity:.28}40%{opacity:.95}}
.arch-geo{grid-area:geo;background:#fffaf3;border:1.5px dashed var(--e-amber)}
.arch-geo .arch-k{color:var(--e-amber)}
.arch-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;font-size:11px;color:var(--p-muted)}
.arch-thumbs>span{display:flex;flex-direction:column;gap:5px}
.arch-thumbs i{display:flex;align-items:center;justify-content:center;aspect-ratio:10/7;border-radius:2px;background:#f6ede1;color:var(--e-amber)}
.arch-thumbs svg{width:72%;height:auto}
.arch-thumbs .th-depth{background:linear-gradient(135deg,#c0782e 0%,#ebc9a3 48%,#9fd6d1 100%)}
.arch-act{grid-area:act;background:#effaf8;border:1.5px solid var(--e-teal)}
.arch-act .arch-k,.arch-out{color:var(--e-teal)}
.arch-out{margin-top:auto;padding-top:6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:650}
.arch-link{position:relative;display:flex;align-items:center}
.arch-link--in{grid-area:lin}.arch-link--geo{grid-area:lgeo}.arch-link--act{grid-area:lact}
.arch-link i{position:relative;flex:1;height:2px;margin:0 8px 0 6px;color:#9bb0a4;background:currentColor}
.arch-link i::after{content:"";position:absolute;right:0;top:50%;width:8px;height:8px;border:solid currentColor;border-width:2px 2px 0 0;transform:translateY(-50%) rotate(45deg)}
.arch-link--geo i{color:var(--e-amber);background:repeating-linear-gradient(90deg,currentColor 0 6px,transparent 6px 11px)}
.arch-link--act i{color:var(--e-teal);height:3px}
.arch-link em{position:absolute;left:0;right:0;top:calc(50% - 24px);text-align:center;font-style:normal;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--p-muted)}
.train-strip{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--p-line)}
.train-strip li{padding:18px 24px 0 0;font-size:14px;line-height:1.6;color:var(--p-ink2)}
.train-strip li+li{padding-left:24px;border-left:1px solid var(--p-line)}
.train-strip .idx{display:block;margin-bottom:6px}
.train-strip b{color:var(--p-ink);font-weight:600}
.fine a{color:var(--e-teal);text-decoration:underline;text-underline-offset:2px}
@media(max-width:1000px){
  .arch{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"in in" "lin lin" "core core" "lgeo lact" "geo act";gap:0 12px}
  .arch-in{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .arch-link{height:56px;justify-content:center}
  .arch-link i{flex:none;width:2px;height:auto;align-self:stretch;margin:6px 0 8px}
  .arch-link i::after{right:auto;top:auto;left:50%;bottom:0;transform:translateX(-50%) rotate(135deg)}
  .arch-link--geo i{background:repeating-linear-gradient(180deg,currentColor 0 6px,transparent 6px 11px)}
  .arch-link--act i{width:3px;height:auto}
  .arch-link em{left:calc(50% + 12px);right:auto;top:50%;transform:translateY(-50%);text-align:left}
  .train-strip{grid-template-columns:1fr}
  .train-strip li,.train-strip li+li{padding:14px 0;border-left:0;border-bottom:1px solid var(--p-line)}
}
@media(max-width:520px){
  .arch-in{grid-template-columns:1fr}
  .arch-node,.arch-core{padding:16px}
  .arch-node b{font-size:17px}
  .arch-node small,.arch-core small{font-size:12px}
  .arch-thumbs{gap:5px;font-size:10px}
}

/* segmented controls */
.seg{display:inline-flex;flex-wrap:wrap;gap:0;border:1px solid #7cb5a44a;border-radius:2px;padding:3px;background:#122721a0}
.seg button{appearance:none;border:0;background:transparent;color:#a9c7ba;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:9px 14px;border-radius:1px;transition:background .2s,color .2s}
.seg button:hover{color:#effff6}
.seg button[aria-selected="true"]{background:#d8f3e6;color:#183029}
.seg--light{border-color:var(--p-line);background:#fff}
.seg--light button{color:var(--p-ink2)}
.seg--light button:hover{color:var(--p-ink);background:#eef2ec}
.seg--light button[aria-selected="true"]{background:var(--p-ink);color:#f3f5ef}
.seg button:focus-visible{outline:2px solid var(--e-teal);outline-offset:1px}

/* future-geometry gallery */
.geo{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start;max-width:1300px}
.geo-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.geo-nav{display:flex;align-items:center;gap:10px;color:var(--p-muted);font-size:12px;letter-spacing:.08em}
.icon-btn{appearance:none;width:38px;height:38px;border:1px solid var(--p-line);background:#fff;color:var(--p-ink2);border-radius:2px;font-size:15px;transition:background .2s,color .2s}
.icon-btn:hover{background:#eef2ec;color:var(--p-ink)}
.icon-btn:focus-visible{outline:2px solid var(--e-teal);outline-offset:1px}
.geo-now{display:inline-flex;align-items:baseline;gap:10px;min-width:0;padding:0 4px}
.geo-now b{color:var(--p-ink);font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.geo-count{color:var(--p-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.geo-stage{position:relative;background:var(--d-panel);border:1px solid var(--p-line2);aspect-ratio:1472/954;display:flex;align-items:center;justify-content:center;overflow:hidden}
.geo-stage video{width:100%;height:100%;object-fit:contain;display:block;background:var(--d-panel)}
.geo-legend{font-size:12px;color:var(--p-muted);line-height:1.6;margin:12px 0 0;min-height:1.6em}
/* the list takes the height of the player column (height:0 + min-height:100% keeps it from sizing the row) */
.geo-side{border:1px solid var(--p-line2);background:#fff;display:flex;flex-direction:column;align-self:stretch;height:0;min-height:100%}
.geo-list{min-height:0}
.geo-search{display:block;padding:10px;border-bottom:1px solid var(--p-line2)}
.geo-search input{width:100%;background:var(--p-bg);border:1px solid var(--p-line);color:var(--p-ink);font:inherit;font-size:13px;padding:9px 11px;border-radius:2px;outline:none}
.geo-search input:focus{border-color:var(--e-teal)}
.geo-search input{-webkit-appearance:none;appearance:none}
.geo-search input::-webkit-search-cancel-button,.geo-search input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
.geo-search input::placeholder{color:var(--p-muted)}
.geo-list{list-style:none;margin:0;padding:6px;overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--p-line) transparent}
.geo-list button{appearance:none;width:100%;display:flex;justify-content:space-between;gap:10px;align-items:center;text-align:left;background:transparent;border:0;color:var(--p-ink2);padding:8px 10px;font-size:12px;border-radius:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.geo-list button:hover{background:#1726200d;color:var(--p-ink)}
.geo-list button[aria-current="true"]{background:var(--p-ink);color:#f3f5ef}

/* charts */
.chart-card{background:#fff;border:1px solid var(--p-line2);padding:clamp(18px,2.4vw,32px);margin-top:22px;border-radius:2px;position:relative}
.chart-head{display:flex;justify-content:space-between;align-items:center;gap:14px 20px;flex-wrap:wrap;margin-bottom:22px}
.chart-head h3{margin:0;font-size:19px;letter-spacing:-.03em;font-weight:600}
.chart-controls{display:flex;gap:10px;flex-wrap:wrap}
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.two-col .chart-card{margin-top:22px}
.two-col--lead{align-items:start}
.legend{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:12px;color:var(--p-ink2);margin:-6px 0 18px;align-items:center}
.legend>span{display:inline-flex;align-items:center;gap:0;white-space:nowrap}
.legend .key{margin-right:8px}
.legend-hint{margin-left:auto;color:var(--p-muted);font-size:11px}
.key{display:inline-block;width:12px;height:12px;border-radius:2px}
.key--clean{background:var(--e-teal);border-radius:50%}
.key--random{background:#fff;border:2.5px solid var(--e-graph);border-radius:50%}
.key--pi-np{background:var(--e-amber-soft)}.key--pi-pt{background:var(--e-amber)}
.key--e-np{background:var(--e-teal-soft)}.key--e-pt{background:var(--e-teal)}

/* leaderboard */
.board{display:flex;flex-direction:column}
.brow{display:grid;grid-template-columns:28px minmax(120px,170px) minmax(0,1fr) 58px 64px 74px;gap:12px;align-items:center;min-height:30px;font-size:13px;border-radius:2px;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.brow--head{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--p-muted);min-height:24px;border-bottom:1px solid var(--p-line2);margin-bottom:6px}
.brow .rk{color:#9aa79f;font-variant-numeric:tabular-nums;font-size:11px}
.brow .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--p-ink2)}
.brow .track{height:12px;position:relative}
.brow .fill{position:absolute;left:0;top:0;bottom:0;background:#c6cec9;border-radius:0 4px 4px 0;transition:width .6s cubic-bezier(.2,.7,.2,1)}
.brow .val{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--p-ink)}
.brow .mt{text-align:right;font-variant-numeric:tabular-nums;color:var(--p-muted);font-size:12px}
.brow.is-ours{background:#e7f4f2}
.brow.is-ours .nm{color:var(--p-ink);font-weight:650}
.brow.is-ours .fill{background:var(--e-teal)}
.brow:not(.brow--head):hover{background:#f1f4f0}.brow.is-ours:hover{background:#dcefec}

/* scatter */
.scatter{position:relative;width:100%}
.scatter svg{display:block;width:100%;height:auto;overflow:visible}
.scatter .ax{stroke:#e2e7e1;stroke-width:1}
.scatter .ax-l{fill:#8a988f;font-size:11px;font-family:var(--font)}
.scatter .ax-t{fill:#6b7a71;font-size:11px;font-family:var(--font);letter-spacing:.04em}
.scatter .pt{fill:#a3aca7;stroke:#fff;stroke-width:2;cursor:pointer}
.scatter .pt.is-ours{fill:var(--e-teal)}
.scatter .pt:hover{fill:#5f6864}.scatter .pt.is-ours:hover{fill:#0f7c78}
.scatter .lbl{fill:#5f6d65;font-size:11px;font-family:var(--font)}
.scatter .lbl.is-ours{fill:var(--p-ink);font-weight:650;font-size:12px}

/* ablation bars */
.abl{display:flex;flex-direction:column;gap:16px}
.abl-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center}
.abl-row .nm{font-size:13px;color:var(--p-ink2);line-height:1.3}
.abl-row.is-best .nm{color:var(--p-ink);font-weight:640}
.abl-bars{display:flex;flex-direction:column;gap:4px}
.abl-bar{display:flex;align-items:center;gap:8px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--p-ink2)}
.abl-bar i{display:block;height:10px;border-radius:0 4px 4px 0;background:var(--e-teal);transition:width .5s cubic-bezier(.2,.7,.2,1);min-width:2px}
.abl-bar.r i{background:var(--e-graph)}
.abl-row:not(.is-best) .abl-bar i{opacity:.42}
.abl-bar em{font-style:normal;color:var(--p-muted);font-size:11px}

/* per-task dumbbell */

/* real world */
.rw{margin-top:8px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start;max-width:1200px}
.rw-side{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.rw-side .idx{margin-top:4px}
.rw-tasklist{align-self:stretch;display:flex;flex-direction:column;border-top:1px solid var(--p-line)}
.rw-tasklist button{appearance:none;display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:12px 4px 12px 14px;border:0;border-bottom:1px solid var(--p-line2);background:none;text-align:left;font-size:15px;letter-spacing:-.01em;color:var(--p-ink2);cursor:pointer;transition:background .2s,color .2s}
.rw-tasklist button:hover{background:#1726200d;color:var(--p-ink)}
.rw-tasklist button[aria-selected="true"]{color:var(--p-ink);font-weight:600;box-shadow:inset 3px 0 0 var(--e-teal)}
.rw-tasklist em{font-style:normal;font-weight:500;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--p-muted)}
.rw-stage{background:#0b1010;aspect-ratio:16/9;border:1px solid var(--p-line2)}
.rw-stage video{width:100%;height:100%;display:block;object-fit:contain;background:#0b1010}
.rw-caption{display:flex;flex-direction:column;gap:6px;padding:8px 0 0;font-size:14px;line-height:1.6;color:var(--p-ink2)}
.rw-caption b{font-size:16px;color:var(--p-ink);letter-spacing:-.02em}
.rw-caption span{font-style:italic}
.rw-caption em{font-style:normal;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--p-muted)}

/* grouped bars */
.bars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;height:300px;position:relative;padding-left:34px;margin-top:10px}
.bars::before{content:"";position:absolute;left:34px;right:0;top:0;bottom:44px;background:linear-gradient(#e7ebe6 1px,transparent 1px) 0 0/100% 25%;border-bottom:1px solid #b9c4bc;pointer-events:none}
.bars .yax{position:absolute;left:0;top:0;bottom:44px;width:28px;display:flex;flex-direction:column;justify-content:space-between;font-size:10px;color:#8a988f;text-align:right;font-variant-numeric:tabular-nums}
.bars .yax span{transform:translateY(-50%)}.bars .yax span:last-child{transform:translateY(50%)}
.bgroup{display:flex;flex-direction:column;position:relative;z-index:1}
.bgroup .cols{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px;padding-bottom:0;margin-bottom:44px}
.bgroup .col{width:min(24px,22%);border-radius:4px 4px 0 0;position:relative;transition:height .55s cubic-bezier(.2,.7,.2,1);cursor:default;min-height:1px}
.bgroup .col::after{content:attr(data-v);position:absolute;left:50%;transform:translateX(-50%);bottom:calc(100% + 4px);font-size:10px;color:var(--p-ink2);font-variant-numeric:tabular-nums;white-space:nowrap}
.bgroup .col.c0{background:var(--e-amber-soft)}.bgroup .col.c1{background:var(--e-teal-soft)}.bgroup .col.c2{background:var(--e-amber)}.bgroup .col.c3{background:var(--e-teal)}
.bgroup .gl{position:absolute;left:0;right:0;bottom:0;height:40px;text-align:center;font-size:12px;color:var(--p-ink2);line-height:1.3}
.bgroup.is-mean .gl{font-weight:650;color:var(--p-ink)}
.gain{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}
.gain>div{border-top:1px solid var(--p-line);padding-top:20px}
.gain b{display:block;font-size:clamp(34px,3.6vw,54px);letter-spacing:-.06em;font-weight:520;margin:12px 0 8px}
.gain b small{font-size:.45em;color:var(--e-teal);letter-spacing:0}
.gain b i{font-style:normal;color:#9bb0a4;font-weight:300;margin:0 .15em}
.gain span:last-child{font-size:12px;color:var(--p-muted)}

/* citation */
.cite{position:relative;margin-top:34px}
.cite pre{margin:0;background:#101b18;color:#cfe6da;padding:28px clamp(18px,3vw,36px);font-size:13px;line-height:1.65;overflow:auto;border-radius:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.copy-btn{position:absolute;top:14px;right:14px}

/* tooltip */
.tip{position:fixed;z-index:60;pointer-events:none;background:#101b18;color:#e5f6ed;font-size:12px;line-height:1.55;padding:9px 12px;border-radius:2px;box-shadow:0 8px 24px #0b101040;max-width:260px}
.tip b{color:#fff}.tip .m{color:#9cb3a5}

/* responsive */
@media(max-width:1100px){
  .geo{grid-template-columns:minmax(0,1fr)}
  .rw{grid-template-columns:minmax(0,1fr);gap:18px}
  .geo>*{min-width:0}
  .geo-side{height:auto;min-height:0}
  .geo-list{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:8px}
  .geo-list li{flex:0 0 auto}
  .geo-list button{width:auto}
  .two-col{grid-template-columns:1fr}
}
@media(max-width:780px){
  html{scroll-padding-top:64px}
  .nav.is-solid{height:60px}
  .sec{padding:84px 24px 76px}
  .display{margin:42px 0 26px}
  .abstract-grid{grid-template-columns:1fr;gap:14px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat{padding:22px 14px 18px 0!important;border-right:0;border-bottom:1px solid var(--p-line)}
  .stat:nth-child(even){padding-left:16px!important;border-left:1px solid var(--p-line)}
  .brow{grid-template-columns:22px minmax(92px,120px) minmax(0,1fr) 50px;gap:8px;font-size:12px}
  .brow .mt{display:none}
  .bars{height:260px;gap:8px;padding-left:28px}.bars::before{left:28px}
  .bgroup .col::after{display:none}
  .bgroup .gl{font-size:11px}
  .gain{grid-template-columns:1fr}
  .abl-row{grid-template-columns:1fr;gap:6px}
  .scatter .ax-l,.scatter .ax-t,.scatter .lbl{font-size:17px}
  .scatter .lbl.is-ours{font-size:18px}
  .scatter .pt{r:8}.scatter .pt.is-ours{r:10}
  .legend-hint{display:none}
  .end-section h2{font-size:clamp(44px,12vw,70px)}
}
@media(max-width:430px){.hero-links a:nth-child(n+3){display:none}}
@media(prefers-reduced-motion:reduce){.arch-layers i{animation:none;opacity:.5}.brow,.brow .fill,.bgroup .col,.abl-bar i{transition:none}}

/* rollout panes inside the explorer stage */
[hidden]{display:none!important}
.geo-roll{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#26332f}
.geo-pane{position:relative;margin:0;background:var(--d-panel);display:flex;align-items:center;justify-content:center;overflow:hidden}
/* rollout clips stack the head camera (top 640x480) over two small wrist views; show the head camera only */
.geo-pane video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0}
.geo-pane figcaption{position:absolute;top:0;left:0;padding:7px 12px;background:#0b1010d9;color:#d8f3e6;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.geo-empty{margin:0;padding:0 24px;text-align:center;color:#6f9184;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;line-height:1.7}
.geo-stage>video{position:absolute;inset:0}
.lede b{color:#e5f6ed;font-weight:600}.lede.dark-ink b{color:var(--p-ink)}
.fine b{color:#a9c7ba;font-weight:600}.fine.dark-ink b{color:var(--p-ink2)}

@media(min-width:781px){.story{padding-left:max(var(--gut),calc((100% - 1440px) / 2));padding-right:max(var(--gut),calc((100% - 1440px) / 2))}}

/* benchmark: full comparison is opt-in */
.more{margin-top:30px;border-top:1px solid var(--p-line)}
.more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;padding:18px 0 4px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:650;color:var(--p-ink2)}
.more>summary::-webkit-details-marker{display:none}
.more>summary::before{content:"+";display:inline-grid;place-items:center;width:20px;height:20px;border:1px solid var(--p-line);border-radius:2px;font-size:14px;line-height:1;color:var(--e-teal)}
.more[open]>summary::before{content:"–"}
.more>summary:hover{color:var(--p-ink)}

/* overview: existing WAMs vs. E0.5 */
.contrast{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);margin-top:72px;border-top:1px solid var(--p-line)}
.cx{padding:30px 44px 0 0}
.cx--new{padding:30px 0 0 44px;border-left:1px solid var(--p-line)}
.cx-line{margin:14px 0 26px;font-size:clamp(22px,2vw,30px);letter-spacing:-.05em;line-height:1.18;font-weight:500;color:#8a998f}
.cx-line b{font-weight:600;color:var(--p-ink2)}
.cx--new .cx-line{color:var(--p-ink2)}.cx--new .cx-line b{color:var(--e-teal)}
.cx-flow{display:flex;flex-direction:column;align-items:flex-start}
.cx-chip{padding:9px 14px;border:1px solid var(--p-line);border-radius:2px;background:#fff;font-size:13px;color:var(--p-ink2)}
.cx-chip--muted{border-style:dashed;background:transparent;color:var(--p-muted)}
.cx-arr{display:block;width:1px;height:18px;margin-left:22px;background:var(--p-line)}
.cx-note{margin:24px 0 0;max-width:620px;font-size:14px;line-height:1.7;color:var(--p-ink2)}
.cx-note i{font-style:normal;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.cx-strip{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr) minmax(0,1fr);gap:12px 20px}
.cx-strip figure{margin:0}
.cx-strip img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:2px;background:#e4e9e4}
.cx-strip .is-pred img{outline:1.5px dashed var(--e-amber);outline-offset:3px}
.cx-strip figcaption{margin-top:10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--p-muted)}
.cx-strip .is-pred figcaption{color:var(--e-amber)}
.cx-step{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding-bottom:26px;font-size:10px;letter-spacing:.08em;color:var(--e-amber);white-space:nowrap}
.cx-step i{position:relative;display:block;width:100%;height:0;border-top:1.5px dashed var(--e-amber)}
.cx-step i::after{content:"";position:absolute;right:0;top:-5px;width:7px;height:7px;border:solid var(--e-amber);border-width:1.5px 1.5px 0 0;transform:rotate(45deg)}
@media(max-width:1000px){
  .contrast{grid-template-columns:1fr}
  .cx{padding:26px 0 30px}
  .cx--new{padding:26px 0 0;border-left:0;border-top:1px solid var(--p-line)}
}
@media(max-width:600px){
  .cx-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;padding:0 3px}
  .cx-strip .is-pred img{outline-offset:2px}
  .cx-step{display:none}
  .cx-strip figcaption{font-size:9.5px;letter-spacing:.04em}
}


/* explorer stage: match each mode's video so nothing is letterboxed */
.geo-stage[data-mode="rollout"]{aspect-ratio:1282/480}
.geo-stage[data-mode="depth"]{aspect-ratio:1184/928;width:min(100%,calc((100svh - 230px) * 1184 / 928));margin-inline:auto}
.geo-stage[data-mode="pointcloud"]{aspect-ratio:1472/954;width:min(100%,calc((100svh - 230px) * 1472 / 954));margin-inline:auto}
@media(max-width:600px){
  .geo-stage[data-mode="rollout"]{aspect-ratio:640/962}
  .geo-roll{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
}

/* themed video controls (both stages sit on a dark panel) */
.vp-host{position:relative}
.vp-host video{cursor:pointer}
.vp{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;align-items:center;gap:10px;padding:26px 12px 10px;background:linear-gradient(180deg,#0b101000,#0b1010d9 72%);color:#e5f6ed;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .25s,transform .25s}
.vp-host.is-awake .vp,.vp-host.is-paused .vp,.vp-host.is-scrubbing .vp,.vp-host:focus-within .vp{opacity:1;transform:none;pointer-events:auto}
.vp-host.is-empty .vp,.vp-host.is-empty .vp-big,.vp-host.is-empty .vp-spin{display:none}
.vp-btn{appearance:none;flex:none;display:grid;place-items:center;min-width:30px;height:30px;padding:0 7px;border:1px solid #7cb5a44a;border-radius:2px;background:#122721bd;color:#cde8dc;font-size:10px;letter-spacing:.06em;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.vp-btn:hover{background:#224538;border-color:#6acbb2;color:#effff6}
.vp-btn svg{display:block;width:13px;height:13px}
.vp-rate{min-width:38px}
.vp-btn:focus-visible,.vp-track:focus-visible,.vp-big:focus-visible{outline:2px solid #64dbcb;outline-offset:2px}
.vp-track{position:relative;flex:1;min-width:40px;height:20px;cursor:pointer;touch-action:none}
.vp-track::before,.vp-buf,.vp-fill{content:"";position:absolute;left:0;right:0;top:9px;height:2px;border-radius:1px;transform-origin:0 50%;transition:top .15s,height .15s}
.vp-track::before{background:#ffffff26}
.vp-buf{background:#ffffff40;transform:scaleX(0)}
.vp-fill{background:#64dbcb;transform:scaleX(0)}
.vp-track:hover::before,.vp-track:hover .vp-buf,.vp-track:hover .vp-fill,.is-scrubbing .vp-track::before,.is-scrubbing .vp-buf,.is-scrubbing .vp-fill{top:8px;height:4px}
.vp-knob{position:absolute;top:10px;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:#effff6;box-shadow:0 0 0 3px #64dbcb47;opacity:0;transition:opacity .15s}
.vp-track:hover .vp-knob,.vp-track:focus-visible .vp-knob,.is-scrubbing .vp-knob{opacity:1}
.vp-time{flex:none;font-size:11px;letter-spacing:.04em;color:#a9c7ba;font-variant-numeric:tabular-nums;white-space:nowrap}
.vp-big{position:absolute;left:50%;top:50%;z-index:2;width:58px;height:58px;margin:-29px 0 0 -29px;display:grid;place-items:center;padding:0;border:1px solid #7cb5a466;border-radius:50%;background:#0b1010b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#effff6;opacity:0;pointer-events:none;transform:scale(.9);cursor:pointer;transition:opacity .25s,transform .25s,background .2s,border-color .2s}
.vp-big svg{width:20px;height:20px;margin-left:3px}
.vp-big:hover{background:#224538e6;border-color:#6acbb2}
.vp-host.is-paused .vp-big{opacity:1;pointer-events:auto;transform:none}
.vp-spin{position:absolute;left:50%;top:50%;z-index:2;width:28px;height:28px;margin:-14px 0 0 -14px;border:2px solid #64dbcb33;border-top-color:#64dbcb;border-radius:50%;opacity:0;pointer-events:none;transition:opacity .2s}
.vp-host.is-loading .vp-spin{opacity:1;animation:vp-spin .8s linear infinite}
@keyframes vp-spin{to{transform:rotate(360deg)}}
.vp-host.is-fs{width:100%!important;height:100%!important;max-width:none!important;aspect-ratio:auto!important;margin:0!important;border:0;background:#000}
.geo-stage.is-fs .geo-roll{inset:auto 0;top:50%;transform:translateY(-50%);aspect-ratio:1282/480}
@media(max-width:600px){.geo-stage.is-fs .geo-roll{aspect-ratio:640/962;height:100%;width:auto;left:50%;right:auto;transform:translate(-50%,-50%)}}
@media(max-width:480px){.vp{gap:7px;padding:22px 8px 8px}.vp-time{font-size:10px}.vp-big{width:50px;height:50px;margin:-25px 0 0 -25px}}
@media(prefers-reduced-motion:reduce){.vp,.vp-big,.vp-spin{transition:none}.vp-host.is-loading .vp-spin{animation:none}}

/* closing section: copy on the left, a quiet E0.5 particle signature on the right */
.end-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:center;gap:48px}
.end-copy{min-width:0}
.end-section .end-copy h2{font-size:clamp(52px,6.4vw,104px)}
.end-mark{position:relative;width:300px;height:132px;justify-self:end;touch-action:pan-y}
.end-mark canvas{display:block;width:100%;height:100%}
.end-mark:not(.is-rendered) canvas{display:none}
.end-mark-fallback{display:flex;align-items:center;justify-content:center;height:100%;font-size:92px;font-weight:600;letter-spacing:-.06em;color:#b7cbbf}
.end-mark-fallback>span{color:#64dbcb}
.end-mark.is-rendered .end-mark-fallback{display:none}
@media(max-width:1100px) and (min-width:781px){.end-grid{grid-template-columns:minmax(0,1fr) 210px;gap:28px}.end-mark{width:210px;height:94px}}
@media(max-width:780px){.end-grid{display:block}.end-mark{display:none}}

/* geometry + simulation: a claim beside the chart that backs it */
.proof{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center;margin-top:64px;padding-top:40px;border-top:1px solid var(--p-line)}
.proof .chart-card{margin-top:0}
.proof-copy h3{margin:14px 0 16px;font-size:clamp(26px,2.4vw,36px);letter-spacing:-.05em;line-height:1.12;font-weight:560;color:var(--p-ink)}
.proof-copy p{margin:0;max-width:480px;font-size:15px;line-height:1.75;color:var(--p-ink2)}
.stats--3{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 48px}
.geo-tag{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--p-muted)}
@media(max-width:1100px){.proof{grid-template-columns:1fr;gap:28px}}
@media(max-width:780px){
  .stats--3{grid-template-columns:1fr}
  .stats--3 .stat:nth-child(even){border-left:0;padding-left:0!important}
  .geo-tag{display:none}
}
