:root{--night: oklch(.16 .022 250);--night-2: oklch(.21 .022 250);--paper: oklch(.985 .006 85);--paper-2: oklch(.955 .01 80);--ink-1: oklch(.19 .018 250);--ink-2: oklch(.42 .014 250);--ink-3: oklch(.58 .01 250);--line: oklch(.92 .006 250);--line-night: oklch(.28 .02 250);--moon: oklch(.94 .012 230);--dim: oklch(.68 .012 230);--amber: oklch(.78 .135 75);--amber-soft: oklch(.92 .06 78);--amber-deep: oklch(.62 .14 65);--emerald: oklch(.74 .13 168);--emerald-soft: oklch(.92 .06 168);--emerald-deep: oklch(.55 .14 168);--crimson: oklch(.58 .18 25);--accent: var(--amber);--accent-soft: var(--amber-soft);--accent-deep: var(--amber-deep);--display: "Instrument Serif", "Iowan Old Style", Georgia, serif;--body: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--col: min(720px, 92vw);--gap-xl: clamp(96px, 16vh, 180px);--menu-h: 56px;--model-h: clamp(200px, 36vh, 320px);--ease: cubic-bezier(.16, 1, .3, 1)}[data-path=usb]{--accent: var(--emerald);--accent-soft: var(--emerald-soft);--accent-deep: var(--emerald-deep)}@media(max-width:879px)and (orientation:landscape)and (max-height:520px){:root{--model-h: clamp(140px, 48vh, 220px)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--night);color:var(--moon);overflow-x:clip}html{scroll-snap-type:y mandatory;scroll-padding-top:calc(var(--menu-h) + 24px)}body{font-family:var(--body);font-weight:300;font-size:clamp(15px,.45vw + 13px,17px);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit}button{font-family:inherit}img,canvas{display:block;max-width:100%}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.steps{position:fixed;inset-inline:0;top:0;z-index:50;display:flex;align-items:baseline;justify-content:center;gap:clamp(20px,4vw,56px);padding:18px clamp(20px,4vw,48px) 16px;backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);background:color-mix(in oklch,var(--night) 60%,transparent);border-bottom:1px solid transparent;transition:background .7s var(--ease),border-color .7s var(--ease),color .7s var(--ease);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}[data-bg=paper] .steps{background:color-mix(in oklch,var(--paper) 78%,transparent);border-bottom-color:color-mix(in oklch,var(--ink-1) 8%,transparent);color:var(--ink-3)}.step-chip{display:inline-flex;align-items:baseline;gap:9px;font-weight:500;opacity:.45;transition:opacity .6s var(--ease),color .6s var(--ease);font-variant-numeric:tabular-nums}.step-chip[data-state=active]{opacity:1;color:var(--accent)}.step-chip[data-state=done]{opacity:.78}.step-chip .num{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid currentColor;font-family:var(--mono);font-size:9px;letter-spacing:0;transition:background .6s var(--ease),border-color .6s var(--ease),color .6s var(--ease)}.step-chip[data-state=active] .num{background:var(--accent);border-color:var(--accent);color:var(--night);box-shadow:0 0 18px color-mix(in oklch,var(--accent) 60%,transparent)}.step-chip[data-state=done] .num{background:transparent;border-color:var(--accent);color:var(--accent)}.step-chip[data-state=done] .num:before{content:"✓";font-family:var(--body);font-size:11px}.step-chip[data-state=done] .num span{display:none}@media(max-width:560px){.step-chip .label{display:none}.steps{gap:18px}}.path-switch{display:inline-flex;padding:2px;border-radius:999px;background:color-mix(in oklch,var(--moon) 8%,transparent);border:1px solid color-mix(in oklch,var(--moon) 14%,transparent);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;transition:background .7s var(--ease),border-color .7s var(--ease);margin-right:clamp(12px,2vw,22px)}[data-bg=paper] .path-switch{background:color-mix(in oklch,var(--ink-1) 5%,transparent);border-color:color-mix(in oklch,var(--ink-1) 12%,transparent)}.ps-opt{display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 10px;border-radius:999px;text-decoration:none;color:var(--dim);transition:color .25s var(--ease),background .25s var(--ease);font-variant-numeric:tabular-nums}.ps-opt:hover:not([data-active=true]){color:var(--moon)}[data-bg=paper] .ps-opt{color:var(--ink-3)}[data-bg=paper] .ps-opt:hover:not([data-active=true]){color:var(--ink-1)}.ps-opt:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.4;transition:background .25s,box-shadow .25s,opacity .25s}.ps-opt[data-active=true]{color:var(--moon);background:color-mix(in oklch,var(--moon) 13%,transparent)}[data-bg=paper] .ps-opt[data-active=true]{color:var(--ink-1);background:var(--paper);box-shadow:0 1px 3px color-mix(in oklch,var(--ink-1) 8%,transparent)}.ps-opt[data-active=true][data-path=ble]:before{background:var(--amber);opacity:1;box-shadow:0 0 6px color-mix(in oklch,var(--amber) 60%,transparent)}.ps-opt[data-active=true][data-path=usb]:before{background:var(--emerald);opacity:1;box-shadow:0 0 6px color-mix(in oklch,var(--emerald) 60%,transparent)}@media(max-width:430px){.ps-opt{padding:6px 10px;gap:5px}}.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 28px;border-radius:999px;font:inherit;font-size:15px;font-weight:500;letter-spacing:-.005em;cursor:pointer;transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease),opacity .22s,border-color .22s;border:1px solid transparent;white-space:nowrap}.btn.primary{background:var(--ink-1);color:var(--paper)}.btn.primary:hover:not(:disabled){background:var(--night-2);transform:translateY(-1px)}.btn.primary:active:not(:disabled){transform:translateY(0)}.btn.ghost{background:transparent;color:var(--ink-1);border-color:color-mix(in oklch,var(--ink-1) 18%,transparent)}.btn.ghost:hover:not(:disabled){background:color-mix(in oklch,var(--ink-1) 5%,transparent)}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.btn.accent{background:var(--accent);color:var(--night)}.btn.accent:hover:not(:disabled){background:var(--accent-deep);color:var(--moon)}.btn.small{padding:10px 18px;font-size:13px}.text-link{color:var(--ink-2);text-decoration:none;border-bottom:1px solid color-mix(in oklch,var(--ink-2) 35%,transparent);padding-bottom:1px;transition:color .2s,border-color .2s;background:none;border-top:none;border-left:none;border-right:none;cursor:pointer;font:inherit;padding-left:0;padding-right:0}.text-link:hover{color:var(--ink-1);border-bottom-color:var(--ink-1)}.q{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--paper-2);color:var(--ink-3);font-family:var(--display);font-style:italic;font-size:13px;font-weight:400;vertical-align:1px;margin-inline-start:6px;border:none;cursor:help;transition:background .18s,color .18s,transform .18s var(--ease)}.q:hover{background:color-mix(in oklch,var(--accent) 22%,var(--paper-2));color:var(--ink-1);transform:scale(1.08)}.q:before{content:"?";line-height:1}[popover]{inset:0;margin:auto;width:min(440px,calc(100vw - 40px));max-height:min(80vh,540px);overflow:auto;padding:28px 30px 26px;border:1px solid color-mix(in oklch,var(--ink-1) 8%,transparent);border-radius:18px;background:var(--paper);color:var(--ink-1);box-shadow:0 1px #ffffff80 inset,0 32px 80px -22px #0000004d,0 8px 24px -8px #00000024;font-size:15px;line-height:1.6}[popover]::backdrop{background:color-mix(in oklch,var(--night) 28%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fade-in .22s var(--ease) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[popover] h3{font-family:var(--display);font-style:italic;font-weight:400;font-size:24px;line-height:1.1;letter-spacing:-.01em;margin-bottom:12px;color:var(--ink-1)}[popover] p+p{margin-top:10px}[popover] code,[popover] .mono{font-family:var(--mono);font-size:12.5px;padding:1px 6px;border-radius:4px;background:var(--paper-2)}[popover]:popover-open{animation:pop-in .24s var(--ease) both}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}.popover-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.popover-title-row h3{margin-bottom:0}.popover-close{appearance:none;background:none;border:none;cursor:pointer;font-family:var(--body);font-size:22px;line-height:1;color:var(--ink-3);padding:2px 6px;border-radius:6px;transition:color .15s,background .15s}.popover-close:hover{color:var(--ink-1);background:var(--paper-2)}.wizard{position:relative;z-index:3;background:var(--paper);color:var(--ink-1);padding:clamp(80px,12vh,160px) 0 60px;margin-top:-120px;border-top-left-radius:32px;border-top-right-radius:32px;box-shadow:0 -40px 80px -20px #00000059}@media(max-width:879px){.wizard{padding-top:calc(var(--menu-h) + clamp(40px,6vh,72px))}body{padding-bottom:calc(var(--model-h) + 32px)}}.step-section{width:var(--col);max-width:720px;margin:0 auto var(--gap-xl);opacity:1;transition:opacity .7s var(--ease),filter .7s var(--ease);scroll-snap-align:start}.step-section[data-state=locked]{opacity:.32;filter:saturate(.4)}.step-section .num-label{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:22px}.step-section .num-label .num{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--paper-2);color:var(--ink-2);font-family:var(--mono);font-size:11px;transition:background .4s,color .4s}.step-section[data-state=active] .num-label .num{background:var(--accent);color:var(--night)}.step-section[data-state=done] .num-label .num{background:color-mix(in oklch,var(--accent) 16%,var(--paper));color:var(--accent-deep)}.step-section[data-state=done] .num-label .num:before{content:"✓";font-family:var(--body);font-size:12px}.step-section[data-state=done] .num-label .num span{display:none}.step-section h2{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(40px,5.5vw,68px);line-height:.98;letter-spacing:-.022em;color:var(--ink-1);margin-bottom:18px}.lede{font-size:clamp(17px,.7vw + 14px,21px);font-weight:300;color:var(--ink-2);line-height:1.45;max-width:580px;margin-bottom:28px}.lede+.lede{margin-top:-10px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px}.ios-link{margin-top:24px;font-size:14px;color:var(--ink-3)}.hero{position:relative;height:100vh;height:100dvh;width:100%;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always}.hero-overlay{position:absolute;inset:0;z-index:2;display:grid;place-items:center;pointer-events:none;padding:var(--menu-h) 24px var(--model-h);text-align:center}.hero-overlay>div{max-width:min(720px,92vw)}.hero-display{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(46px,7.5vw,108px);line-height:.94;letter-spacing:-.025em;color:var(--moon);text-shadow:0 1px 60px color-mix(in oklch,var(--night) 50%,transparent);animation:hero-rise 1.5s .22s var(--ease) both;text-wrap:balance}.hero-subhead{margin-top:18px;font-size:clamp(15px,1.3vw + 4px,19px);font-weight:300;color:color-mix(in oklch,var(--moon) 80%,transparent);letter-spacing:.005em;animation:hero-rise 1.5s .7s var(--ease) both}.scroll-hint{position:absolute;inset-inline:0;bottom:calc(var(--model-h) + max(16px,env(safe-area-inset-bottom,0)));z-index:2;text-align:center;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:color-mix(in oklch,var(--moon) 55%,transparent);animation:hero-rise 1.5s 1.2s var(--ease) both,hero-drift 3.2s 2.4s ease-in-out infinite;pointer-events:none}.scroll-hint:after{content:"";display:block;width:1px;height:22px;margin:12px auto 0;background:linear-gradient(to bottom,transparent,currentColor)}@keyframes hero-rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes hero-drift{0%,to{transform:translateY(0);opacity:.55}50%{transform:translateY(6px);opacity:1}}@media(min-width:880px){.hero-overlay{inset:0 auto 0 0;width:50vw;place-items:center start;text-align:left;padding:0 0 0 max(6vw,48px)}.hero-display,.hero-subhead{text-align:left}.scroll-hint{text-align:left;padding-left:max(6vw,48px);bottom:max(28px,env(safe-area-inset-bottom,0))}.step-section,details.log,footer{width:min(520px,calc(50vw - max(6vw,48px) - 24px));margin-left:max(6vw,48px);margin-right:auto}footer{justify-content:flex-start}}details.log{width:var(--col);max-width:720px;margin:60px auto 0}details.log summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-top:1px solid var(--line);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:500}details.log summary::-webkit-details-marker{display:none}details.log summary:after{content:"＋";font-weight:300;transition:transform .24s var(--ease)}details.log[open] summary:after{transform:rotate(45deg)}.log-list{font-family:var(--mono);font-size:12px;color:var(--ink-3);padding:14px 0 24px;max-height:280px;overflow-y:auto;line-height:1.75}.log-list div{display:flex;gap:12px}.log-list .ts{color:color-mix(in oklch,var(--ink-3) 60%,transparent);flex-shrink:0}.log-list .ok{color:oklch(.62 .13 168)}.log-list .err{color:var(--crimson)}.log-list .info{color:var(--ink-2)}.finale{margin-top:18px;font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(22px,2.2vw,28px);color:var(--ink-1);line-height:1.35}.finale a{background:linear-gradient(transparent 60%,var(--accent-soft) 60%);text-decoration:none;padding:0 4px;font-family:var(--mono);font-size:.7em;font-style:normal;letter-spacing:.01em;vertical-align:2px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%) translateY(20px);background:var(--ink-1);color:var(--paper);padding:10px 18px;border-radius:999px;opacity:0;transition:all .25s var(--ease);font-size:13px;pointer-events:none;z-index:60}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}footer{width:var(--col);max-width:720px;margin:80px auto 0;padding:28px 0 56px;font-size:12px;letter-spacing:.08em;color:var(--ink-3);display:flex;gap:22px;justify-content:center;align-items:center;border-top:1px solid var(--line)}footer a{text-decoration:none;color:var(--ink-3);transition:color .2s}footer a:hover{color:var(--ink-1)}.model-frame[data-astro-cid-v2kpwqfs]{position:fixed;bottom:0;inset-inline:0;height:var(--model-h);z-index:5;pointer-events:none;background:var(--night);transition:background .7s var(--ease)}[data-bg=paper] .model-frame[data-astro-cid-v2kpwqfs]{background:var(--paper)}.model-frame[data-astro-cid-v2kpwqfs]:after{content:"";position:absolute;inset:auto 0 100%;height:28px;background:linear-gradient(to top,var(--night),transparent);pointer-events:none;transition:background .7s var(--ease)}[data-bg=paper] .model-frame[data-astro-cid-v2kpwqfs]:after{background:linear-gradient(to top,var(--paper),transparent)}#three-canvas[data-astro-cid-v2kpwqfs]{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.desk-bg[data-astro-cid-v2kpwqfs]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;opacity:0;transform:translateY(30%);pointer-events:none;z-index:0;will-change:opacity,transform}@media(min-width:880px){.model-frame[data-astro-cid-v2kpwqfs]{top:var(--menu-h);bottom:auto;inset-inline:auto 0;width:50vw;height:calc(100vh - var(--menu-h));background:transparent}[data-bg=paper] .model-frame[data-astro-cid-v2kpwqfs]{background:transparent}.model-frame[data-astro-cid-v2kpwqfs]:after{display:none}}
