:root{--bg:#0f1b24;--panel:#0e1a23e6;--panel-solid:#12212c;--ink:#e9eef2;--ink-muted:#a7b6c2;--line:#2f4250;--chapter:#ffb347;--interest:#5fd4c4;--link:#7fe6ff;--neon:#36e0ff;--focus:#ffd43b;--arm-a:#ff7a1a;--arm-b:#3d9bff;--board-ghost:#c7ccd1;--scrollbar-thumb:#7f93a3;--scrollbar-track:transparent;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--radius:16px;--gutter:16px;--header-h:64px;--sheet-h:42dvh;--target:40px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (pointer:coarse){:root{--target:44px}}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}body{background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--font-body);font-size-adjust:from-font;-webkit-font-smoothing:antialiased;margin:0}[hidden]{display:none!important}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;overflow-wrap:break-word;min-width:0;margin:0 0 .6rem;font-weight:700;line-height:1.15}h1,h2{font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}h3{margin-top:1.2rem;font-size:1.1rem}p,ul{text-wrap:pretty;margin:0 0 .9rem}ul{padding-left:1.2rem}a{color:var(--link);text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--link) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--link) 35%, transparent);text-underline-offset:4px;transition:color .15s,text-decoration-color .15s,text-shadow .15s}a:hover{color:var(--ink);-webkit-text-decoration-color:var(--neon);text-decoration-color:var(--neon);text-shadow:0 0 12px color-mix(in srgb, var(--neon) 60%, transparent)}.icon{flex:none;width:1.1em;height:1.1em}.repos{flex-wrap:wrap;gap:.5rem;display:flex}.repo{min-height:var(--target);border:1px solid var(--line);background:var(--panel-solid);color:var(--ink);font:600 .9rem/1 var(--font-body);border-radius:999px;align-items:center;gap:.5rem;padding:0 .95rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,color .15s;display:inline-flex}.repo:hover{border-color:var(--neon);color:var(--ink);text-shadow:none;box-shadow:0 0 16px color-mix(in srgb, var(--neon) 35%, transparent)}.repo:active{transform:scale(.97)}a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:2px;transition:none}.visually-hidden:where(:not(:focus-within,:active)){clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:20;background:var(--panel-solid);color:var(--ink);border-radius:8px;padding:.5rem .9rem;position:fixed;top:8px;left:8px}.year,.tags{color:var(--ink-muted);font-size:.95rem}.year{margin-bottom:.25rem}.social{gap:.75rem;padding:0;list-style:none;display:flex}.social a{border:1px solid var(--line);background:var(--panel-solid);width:52px;height:52px;color:var(--ink);border-radius:14px;place-items:center;transition:border-color .15s,box-shadow .15s,color .15s,transform .15s;display:grid}.social .icon{width:24px;height:24px}.social a:hover{border-color:var(--neon);color:var(--neon);text-shadow:none;box-shadow:0 0 18px color-mix(in srgb, var(--neon) 40%, transparent);transform:translateY(-2px)}.social a:active{transform:translateY(0)scale(.96)}@media (prefers-reduced-motion:reduce){.social a:hover{transform:none}}.btn{font:600 .9rem/1 var(--font-body);color:var(--ink);background:var(--panel);border:1px solid var(--line);min-height:var(--target);cursor:pointer;white-space:nowrap;border-radius:999px;padding:0 1rem;transition:background-color .15s,border-color .15s,transform .1s}.btn:hover{border-color:var(--ink-muted);background:var(--panel-solid)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}#mode-toggle{min-width:7.2rem}#text-toggle{min-width:8.2rem}.hud-top{padding:max(12px, env(safe-area-inset-top)) max(var(--gutter), env(safe-area-inset-right)) 12px max(var(--gutter), env(safe-area-inset-left));grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;max-width:1600px;margin:0 auto;display:grid}.brand p{margin:0;line-height:1.2}.brand-name{font:700 1.05rem/1.2 var(--font-display)}.brand-role{color:var(--ink-muted);font-size:.85rem}.hud-actions{grid-area:1/3;justify-self:end;gap:8px;display:flex}.timeline{justify-content:center;min-width:0;display:flex;position:relative}.timeline:before{content:"";background:var(--line);height:2px;position:absolute;inset:50% 12px auto}.dot{cursor:pointer;background:0 0;border:0;flex:1 1 0;place-items:center;min-width:20px;max-width:34px;height:34px;padding:0;display:grid;position:relative}.dot:before{content:"";background:var(--chapter);width:10px;height:10px;box-shadow:0 0 0 3px var(--bg);border-radius:50%;transition:transform .15s}.dot.interest:before{background:var(--interest);border-radius:2px;rotate:45deg}.dot:hover:before{transform:scale(1.35)}.dot[aria-current]:before{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px var(--ink);transform:scale(1.6)}.dot:focus-visible{outline-offset:-2px;border-radius:8px}#stations{max-width:46rem;padding:24px var(--gutter) 64px;margin:0 auto}#stations>article{border-top:1px solid var(--line);padding:28px 0}#stations>article:first-child{border-top:0}html:not(.is-3d) .tour-only,html:not(.is-3d) .drive-only,.text-mode .tour-only,.text-mode .drive-only,html.is-3d:not(.text-mode) .demo[hidden]{display:none}.text-mode #mode-toggle,.text-mode #world,.text-mode #scroll-track,.text-mode .hud-bottom,.text-mode #joystick,.text-mode .loading,.text-mode .demo{display:none!important}.text-mode .timeline{visibility:hidden}.is-3d .hud-top{z-index:10;pointer-events:none;max-width:none;position:fixed;inset:0 0 auto}.is-3d .hud-top>*{pointer-events:auto}.is-3d .brand{background:var(--panel);border-radius:12px;padding:8px 12px}.is-3d .timeline{background:var(--panel);border-radius:999px;justify-self:center;width:min(100%,560px);padding:0 12px}.is-3d .timeline:before{inset:50% 22px auto}#world{display:none}.is-3d.text-mode #stations{inset:calc(var(--header-h) + 8px) 0 0;max-width:none;padding-inline:max(var(--gutter), calc((100% - 46rem) / 2));position:fixed;overflow-y:auto}.is-3d:not(.text-mode) #world{display:block;position:fixed;inset:0}#world canvas{width:100%;height:100%;display:block}.is-3d.drive:not(.text-mode) body{overflow:hidden}#scroll-track{display:none}.is-3d.tour:not(.text-mode){scroll-snap-type:y proximity;scrollbar-width:none}@supports not (scrollbar-color:auto){.is-3d.tour:not(.text-mode)::-webkit-scrollbar{display:none}}#stations{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}@supports not (scrollbar-color:auto){#stations::-webkit-scrollbar{width:10px}#stations::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}#stations::-webkit-scrollbar-track{background:var(--scrollbar-track)}}.is-3d.tour:not(.text-mode) #scroll-track{height:1600lvh;display:block;position:relative}#scroll-track .snap{scroll-snap-align:start;width:1px;height:1px;position:absolute;left:0}.is-3d.tour:not(.text-mode) .drive-only,.is-3d.drive:not(.text-mode) .tour-only{display:none}.is-3d:not(.text-mode) #stations{z-index:5;background:var(--panel);border:1px solid var(--line);overscroll-behavior:contain;opacity:0;pointer-events:none;margin:0;padding:24px;position:fixed;overflow-y:auto}.is-3d:not(.text-mode) #stations[data-open]{opacity:1;pointer-events:auto}.is-3d:not(.text-mode) #stations>article{border:0;padding:0}@media (width>=900px){.is-3d:not(.text-mode) #stations{top:calc(var(--header-h) + 12px);right:max(var(--gutter), env(safe-area-inset-right));width:min(420px,36vw);max-height:calc(100dvh - var(--header-h) - 28px);border-radius:var(--radius);translate:12px}.is-3d:not(.text-mode) #stations[data-open]{translate:0}}@media (width<=899px){:root{--header-h:104px}.hud-top{grid-template-columns:minmax(0,1fr) auto;row-gap:8px}.timeline{grid-area:2/1/auto/-1}.hud-actions{grid-column:2}.is-3d .timeline{width:100%}.brand-role{display:none}.brand-name{font-size:.95rem}.btn{padding:0 .8rem;font-size:.85rem}#mode-toggle{min-width:6.6rem}#text-toggle{min-width:6.9rem}.is-3d:not(.text-mode) #stations{height:var(--sheet-h);border-radius:var(--radius) var(--radius) 0 0;padding-bottom:max(24px, env(safe-area-inset-bottom));padding-left:max(20px, env(safe-area-inset-left));padding-right:max(20px, env(safe-area-inset-right));border-bottom:0;inset:auto 0 0;translate:0 16px}.is-3d:not(.text-mode) #stations[data-open]{translate:0}.hud-bottom{display:none!important}}@media (prefers-reduced-motion:no-preference){.is-3d:not(.text-mode) #stations{transition:opacity .25s,translate .25s}}.hud-bottom{left:max(var(--gutter), env(safe-area-inset-left));bottom:max(var(--gutter), env(safe-area-inset-bottom));z-index:5;pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:fixed}#minimap{border:3px solid var(--panel-solid);background:var(--panel-solid);border-radius:50%;width:160px;height:160px}.hint{background:var(--panel);color:var(--ink-muted);border-radius:10px;margin:0;padding:8px 12px;font-size:.9rem}#joystick{z-index:6;left:max(24px, env(safe-area-inset-left));bottom:calc(var(--sheet-h) + 24px);background:var(--panel);border:1px solid var(--line);touch-action:none;border-radius:50%;place-items:center;width:120px;height:120px;display:grid;position:fixed}#joystick span{background:var(--ink);opacity:.85;border-radius:50%;width:52px;height:52px}.loading{z-index:30;background:var(--bg);font:700 1.2rem var(--font-display);place-items:center;margin:0;display:grid;position:fixed;inset:0}.demo{margin:0 0 1rem}.gantt{border:1px solid var(--line);border-radius:10px;width:100%;height:auto;display:block}.demo-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.is-3d:not(.text-mode) #world{cursor:grab}.is-3d:not(.text-mode) #world.dragging{cursor:grabbing}.jobs{gap:.6rem;display:grid}
