:root{--bg:#07111f;--text:#edf5fa;--muted:#a6b8cb;--cyan:#76e7e8;--part:#7adfe4;--tool:#b39bf7;--ready:#d6ee91;--line:#294258}*{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{margin:0;background:var(--bg);font:16px/1.6 Inter,"Segoe UI",sans-serif;color:var(--text)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:hover{color:var(--ready)}a{color:var(--cyan)}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--ready);outline-offset:4px}.skip{position:fixed;top:-60px;left:15px;z-index:30;background:var(--ready);color:var(--bg);padding:8px}.skip:focus{top:10px}.site-header{position:sticky;top:0;z-index:20;height:76px;background:#07111ff2;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:38px;padding:0 32px;backdrop-filter:blur(14px)}.brand{font-size:25px;text-decoration:none;color:var(--cyan);display:flex;align-items:center;gap:12px}.brand>span{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--text);white-space:nowrap}.brand small{font-size:10px;letter-spacing:.6px;color:var(--muted);font-weight:400}.ancestry{display:flex;gap:11px;align-items:center;overflow-x:auto;white-space:nowrap;font-size:14px;scrollbar-width:thin}.ancestry button{padding:5px 0;color:var(--muted)}.ancestry button[aria-current]{color:var(--text)}.ancestry>span{font-size:11px;color:#678097}.ancestry .tool-relation{color:var(--tool);font-size:10px}.item-role{margin-left:auto;color:var(--part);font-size:12px;border:1px solid currentColor;padding:2px 9px;border-radius:20px}.item-role.tool{color:var(--tool)}.story{height:440vh}.stage{position:sticky;top:76px;height:calc(100svh - 76px);overflow:hidden;background:radial-gradient(ellipse at 61% 40%,#163b53,#0b1e2e 45%,#07111f 78%)}.stage:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#7499b916 .7px,transparent .7px);background-size:24px 24px;z-index:0}.stage-head{position:absolute;z-index:3;left:34px;top:27px;pointer-events:none;max-width:370px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted);margin:0 0 13px}.stage-head h1{font-size:clamp(40px,4.5vw,62px);font-weight:450;letter-spacing:-2.7px;line-height:1.03;margin:0 0 16px}.intro{font-size:14px;color:var(--muted);margin:0;line-height:1.6}.stand-in{font-size:11px;color:var(--ready);margin:10px 0 0}.route-return{position:absolute;right:34px;top:28px;z-index:5;color:var(--ready);font-size:12px;border:1px solid #6e8259;border-radius:22px;padding:7px 12px}.route-return[hidden]{display:none}.viewport{position:absolute;inset:0;z-index:1;cursor:grab;touch-action:pan-y}#scene{display:block;width:100%;height:100%}.leaders{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}.leaders path{fill:none;stroke:#8aa8bd;stroke-width:1;opacity:.65}.leaders circle{fill:var(--cyan);stroke:var(--bg);stroke-width:2}.object-label{position:absolute;z-index:4;font-size:12px;border:1px solid #53768977;border-radius:5px;background:#0b1e2cd9;backdrop-filter:blur(8px);padding:5px 8px;white-space:nowrap}.object-label small{font-size:9px;opacity:.75;margin-left:8px;color:var(--part)}.object-label.tool small{color:var(--tool)}.object-label.ready{border-color:#bddb84;box-shadow:0 0 20px #c6e68c10}.object-label.ready:after{content:' ↗';color:var(--ready)}.step-card{position:absolute;z-index:5;left:34px;top:280px;width:340px;padding:20px 22px;background:#0b2232ed;border:1px solid #41677e;border-radius:10px;backdrop-filter:blur(12px);box-shadow:0 15px 55px #0003}.step-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--cyan);letter-spacing:1.5px}.step-top button{width:23px;height:23px;border:1px solid #6b859b;border-radius:50%;font-family:Georgia,serif;font-size:14px;line-height:1;color:var(--muted)}.step-card h2{font-size:25px;font-weight:450;letter-spacing:-.6px;line-height:1.2;margin:13px 0 14px}.step-card>p{font-size:16px;line-height:1.7;color:#bfd0df;margin:0}.step-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}.step-links button{font-size:12px;padding:5px 8px;border:1px solid #bddb8490;border-radius:5px;color:var(--ready);line-height:1.3}.step-links button small{font-size:9px;color:var(--part);margin-left:5px}.step-links button.tool small{color:var(--tool)}.step-links button:after{content:' ↗';font-size:10px}.step-detail{position:absolute;z-index:8;left:395px;bottom:135px;max-width:470px;background:#112b3ff5;border:1px solid #4d728c;padding:23px;border-radius:10px;box-shadow:0 20px 100px #0008}.step-detail[hidden]{display:none}.step-detail>button{position:absolute;right:10px;top:7px;font-size:24px}.step-detail h3{font-size:23px;font-weight:500;line-height:1.25;margin:0 0 13px}.step-detail>p{font-size:14px;color:var(--muted)}.step-detail svg{width:100%;display:block;background:#0b1d2c;border-radius:8px;margin-top:18px}.step-detail .diagram-note{font-size:10px;margin:9px 0 0}.action-caption{position:absolute;z-index:3;bottom:138px;left:50%;transform:translateX(-25%);font-size:14px;color:#c5e5ee;text-align:center;max-width:480px;pointer-events:none}.view-controls{position:absolute;z-index:5;right:34px;bottom:92px;display:flex;align-items:center;gap:7px;padding:5px 8px;background:#0b2030dd;border:1px solid var(--line);border-radius:24px;backdrop-filter:blur(10px)}.view-controls button{font-size:19px;min-width:30px}.view-controls span{font-size:10px;color:var(--muted)}.view-controls #reset-view{font-size:11px;padding:0 8px}.scroll-console{position:absolute;z-index:6;bottom:0;left:0;right:0;height:76px;display:flex;align-items:center;gap:25px;padding:0 34px;background:#091927f2;border-top:1px solid var(--line);backdrop-filter:blur(12px)}.scroll-console>div:first-child{font-size:10px;letter-spacing:1.5px;color:var(--muted);white-space:nowrap;display:flex;gap:12px;align-items:center}.scroll-icon{font-size:24px;color:var(--cyan)}.progress-track{height:3px;background:var(--line);flex:1;border-radius:3px}.progress-track span{display:block;height:100%;background:var(--cyan);width:0;border-radius:3px}.scroll-console>span{font-size:11px;color:var(--cyan);white-space:nowrap}.scroll-console button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%}.return-transition{position:absolute;z-index:7;left:50%;bottom:130px;transform:translateX(-30%);background:#092331ef;border:1px solid var(--ready);border-radius:10px;padding:15px 22px;color:var(--ready)}.return-transition[hidden]{display:none}.return-transition>span{margin-right:8px}.return-transition strong{font-size:16px}.return-transition p{font-size:12px;color:var(--muted);margin:5px 0 0}footer{border-top:1px solid var(--line);padding:14px 32px;color:var(--muted);font-size:11px}footer p{max-width:900px}summary{cursor:pointer}#model-fallback{position:absolute;left:45%;top:40%;max-width:330px;background:#0b2232;padding:25px;border-radius:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1050px){.brand small{display:none}.stage-head{left:24px;max-width:300px}.stage-head h1{font-size:42px}.step-card{left:24px;width:300px;top:245px;padding:17px}.step-card h2{font-size:23px}.step-card>p{font-size:15px}.step-detail{left:345px;width:calc(100% - 369px)}.action-caption{max-width:330px;font-size:12px}.site-header{gap:24px;padding:0 24px}}
@media(max-width:700px){.site-header{height:74px;display:block;padding:7px 18px}.brand{font-size:18px;height:22px;gap:8px}.brand>span{font-size:9px;letter-spacing:1.5px}.brand small{display:inline;font-size:8px}.ancestry{height:34px;font-size:12px;gap:8px}.ancestry button{padding:3px 0}.ancestry .tool-relation{font-size:8px}.item-role{position:absolute;right:18px;top:9px;font-size:9px;padding:1px 7px}.stage{top:74px;height:calc(100svh - 74px)}.story{height:420vh}.stage-head{top:20px;left:18px;max-width:245px}.eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:9px}.stage-head h1{font-size:35px;letter-spacing:-1.6px;margin:0 0 10px;line-height:1.04}.intro{font-size:11px;line-height:1.5;max-width:220px}.stand-in{font-size:10px;margin-top:8px}.route-return{right:18px;top:20px;font-size:9px;padding:5px 8px;max-width:118px;line-height:1.5;text-align:center}.viewport{pointer-events:none;cursor:default;touch-action:pan-y}.view-controls{display:none}.step-card{left:18px;right:18px;top:auto;bottom:92px;width:auto;padding:15px 17px;box-shadow:0 10px 50px #0003}.step-top{font-size:8px}.step-card h2{font-size:22px;margin:8px 0 9px;line-height:1.2}.step-card>p{font-size:16px;line-height:1.55}.step-links{margin-top:12px;gap:6px}.step-links button{font-size:11px;padding:5px 7px}.step-links button small{font-size:8px}.object-label{font-size:11px;padding:4px 7px}.object-label small{font-size:8px;margin-left:4px}.action-caption{display:none}.scroll-console{height:72px;padding:0 18px;gap:16px}.scroll-console>div:first-child{font-size:8px;letter-spacing:1px;gap:7px}.scroll-console button{height:30px;width:30px}.scroll-icon{font-size:21px}.scroll-console>span{font-size:10px}.step-detail{left:18px;right:18px;bottom:92px;width:auto;max-width:none;padding:20px;max-height:calc(100% - 100px);overflow:auto}.step-detail>p{font-size:15px}.step-detail h3{font-size:22px}.step-detail svg{max-height:180px}.return-transition{left:18px;right:18px;bottom:102px;transform:none;text-align:center;padding:14px}.return-transition strong{font-size:16px}.return-transition p{font-size:12px}.returning .step-card{opacity:0}.returning #object-labels{opacity:0}.returning .stage-head{opacity:.55}footer{padding:14px 18px}#model-fallback{left:18px;right:18px;top:30%;max-width:none;font-size:14px}}
@media(max-width:700px) and (max-height:740px){.stage-head h1{font-size:28px}.intro{display:none}.stand-in{font-size:9px}.step-card{padding:12px 14px;bottom:84px}.step-card h2{font-size:19px}.step-card>p{font-size:15px;line-height:1.5}.step-links{margin-top:9px}.step-links button{font-size:10px}.scroll-console{height:64px}.step-detail{bottom:84px}.object-label{font-size:10px}.return-transition{bottom:93px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(min-width:701px){.step-card{top:235px;width:350px}.step-card h2{font-size:23px;margin:10px 0 12px}.step-card>p{line-height:1.55}.step-links{margin-top:12px}}
.site-header .stand-in{margin:0 0 0 auto;white-space:nowrap;font-size:10px;letter-spacing:.2px}.site-header .stand-in[hidden]{display:none}
@media(max-width:700px){.site-header .stand-in{position:absolute;right:18px;top:24px;font-size:8px;line-height:1.3;margin:0}}
