.odyssey{--journey-progress:0;--stage-background:var(--bg-canvas);--stage-chrome:var(--bg-canvas);--stage-ink:var(--text-1);--stage-muted:var(--text-3);--stage-accent:var(--accent);--stage-accent-carrier:var(--accent-ink);--stage-screen:#0a0b0c;--stage-screen-ink:#f6f7f8;--paper-mix:0;--wash-mix:0;--scroll-hint-opacity:1;--frame-cursor-x:0px;--frame-cursor-y:0px}html:has(.odyssey){background:var(--stage-background);scroll-behavior:auto}body:has(.odyssey){text-rendering:geometricprecision;overflow-x:hidden}.odyssey button,.afterword button{cursor:pointer}.odyssey :focus-visible,.afterword :focus-visible,.skip-link:focus-visible{box-shadow:none;outline:2px solid var(--stage-accent);outline-offset:3px;border-radius:2px}.skip-link{z-index:20;background:var(--accent);color:var(--accent-ink);font:500 12px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:10px 14px;position:absolute;top:-100px;left:16px}.skip-link:focus-visible{top:16px}.odyssey{height:3000vh;position:relative}.odyssey-stage{background:var(--stage-background);height:100svh;min-height:620px;color:var(--stage-ink);position:sticky;top:0;overflow:hidden}.odyssey-stage canvas.world{width:100%;height:100%;display:block;position:absolute;inset:0}.halftone-field{pointer-events:none;mix-blend-mode:soft-light;opacity:.18;background-image:radial-gradient(circle at 1px 1px,#ffffffb3 .6px,#0000 1.1px);background-size:4px 4px;position:absolute;inset:0}.nav-shell{z-index:6;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);align-items:center;gap:24px;width:min(100% - 56px,1740px);height:88px;display:grid;position:absolute;top:0;left:50%;translate:-50%}.brand{font:500 13px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;justify-self:start;align-items:center;gap:12px;display:inline-flex}.brand .brand-mark{--mark:color-mix(in srgb, var(--accent-ink) calc(var(--wash-mix) * 100%), var(--accent));--mark-ink:color-mix(in srgb, var(--accent) calc(var(--wash-mix) * 100%), var(--accent-ink));width:26px;height:22px}.brand small{letter-spacing:.12em;color:var(--stage-muted);font-size:10px}.chapter-nav{justify-self:center;align-items:flex-start;gap:8px;display:flex}.start-button{align-items:center;gap:8px;display:inline-flex}.start-button i,.start-return i{border:1px solid;width:6px;height:6px;transition:background-color .16s linear;rotate:45deg}.start-button[aria-current=step] i{background:currentColor}.start-return{font:500 10px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--stage-muted);justify-self:end;align-items:center;gap:8px;transition:color .16s linear;display:none}.start-return:hover{color:var(--stage-ink)}.act-group{border:1px solid #0000;border-radius:10px;flex-direction:column;align-items:flex-start;padding:0 4px 2px;transition:border-color .22s linear,background-color .22s linear;display:flex;position:relative}.act-group[data-current]{border-color:color-mix(in srgb, var(--stage-muted) 28%, transparent);background:color-mix(in srgb, var(--stage-ink) 4%, transparent)}.act-fill{--act-fill:clamp(0, calc((var(--journey-progress,0) - var(--act-start)) / (var(--act-end) - var(--act-start))), 1);background:var(--stage-accent);height:1px;transform:scaleX(var(--act-fill));transform-origin:0;opacity:0;transition:opacity .22s linear;position:absolute;bottom:-1px;left:12px;right:12px}.act-group[data-current] .act-fill{opacity:1}.chapter-nav button{font:500 10px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--stage-muted);padding:10px 10px 12px;transition:color .16s linear;position:relative}.chapter-nav button:after{content:"";transform-origin:0;background:currentColor;height:1px;transition:transform .22s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:6px;left:10px;right:10px;transform:scaleX(0)}.chapter-nav button[aria-current=step]{color:var(--stage-ink)}.chapter-nav button[aria-current=step]:after{transform:scaleX(1)}.act-button:after{display:none}.act-chapters{opacity:0;visibility:hidden;grid-template-columns:0fr;margin-top:-6px;transition:grid-template-columns .36s cubic-bezier(.2,.7,.2,1),opacity .2s linear,visibility 0s linear .36s;display:grid}.act-group[data-current] .act-chapters,.act-group:hover .act-chapters,.act-group:focus-within .act-chapters{opacity:1;visibility:visible;grid-template-columns:1fr;transition:grid-template-columns .36s cubic-bezier(.2,.7,.2,1),opacity .2s linear .12s,visibility linear}.act-chapters-row{white-space:nowrap;gap:2px;min-width:0;display:flex;overflow:hidden}.act-chapters button{letter-spacing:.12em;color:color-mix(in srgb, var(--stage-muted) 72%, transparent);padding:6px 5px 8px;font-size:9px}.act-chapters button:after{bottom:3px}.act-chapters button[aria-current=step]{color:var(--stage-ink)}.act-group[data-current] .act-chapters button{color:var(--stage-muted)}.act-group[data-current] .act-chapters button[aria-current=step]{color:var(--stage-ink)}.run-link{background:var(--stage-ink);color:var(--stage-chrome);font:600 10.5px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-self:end;align-items:center;gap:10px;padding:11px 16px;text-decoration:none;transition:background-color .12s linear,color .12s linear;display:inline-flex}.journey-status{z-index:6;width:min(100% - 56px,1740px);font:500 10.5px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;grid-template-columns:minmax(380px,max-content) 1fr max-content;align-items:center;gap:28px;display:grid;position:absolute;bottom:30px;left:50%;translate:-50%}.status-location{white-space:nowrap;gap:12px;display:flex}.status-location b{color:var(--stage-ink);font-weight:600}.status-location span{color:var(--stage-muted)}.progress-track{height:28px;margin-top:10px;position:relative}.progress-track:before{content:"";background:color-mix(in srgb, var(--stage-ink) 26%, transparent);height:1px;position:absolute;top:50%;left:0;right:0}.progress-track .played{height:1px;width:calc(var(--journey-progress) * 100%);background:var(--stage-accent);position:absolute;top:50%;left:0}.progress-track button{place-items:center;width:28px;height:28px;display:grid;position:absolute;top:0;translate:-50%}.progress-track button:before{content:"";background:var(--stage-muted);border-radius:50%;width:5px;height:5px;transition:background-color .12s linear,transform .2s}.progress-track button[aria-current=step]:before{background:var(--stage-ink);transform:scale(1.4)}.progress-track .playhead{top:50%;left:calc(var(--journey-progress) * 100%);background:var(--stage-accent);width:9px;height:9px;box-shadow:0 0 0 3px var(--stage-chrome);cursor:grab;touch-action:none;position:absolute;translate:-50% -50%;rotate:45deg}.progress-track .playhead:before,.stage-frame i:before{content:"";position:absolute;inset:-9px}.progress-track .playhead:focus-visible{outline-offset:5px}.odyssey-stage.is-scrubbing{-webkit-user-select:none;user-select:none}.odyssey-stage.is-scrubbing,.odyssey-stage.is-scrubbing .playhead,.odyssey-stage.is-scrubbing .stage-frame i{cursor:grabbing}.telemetry{white-space:nowrap;color:var(--stage-muted);justify-content:flex-end;gap:18px;display:flex}.telemetry b{color:var(--stage-accent);background:var(--stage-accent-carrier);font-variant-numeric:tabular-nums;border-radius:4px;margin:-1px;padding:1px 5px;font-weight:600}.scroll-prompt{z-index:5;font:500 10px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--stage-muted);opacity:var(--scroll-hint-opacity);pointer-events:none;align-items:center;gap:12px;display:flex;position:absolute;bottom:86px;left:50%;translate:-50%}.scroll-prompt i{background:var(--stage-accent);transform-origin:top;width:1px;height:34px;animation:1.8s cubic-bezier(.6,0,.4,1) infinite scroll-pulse}@keyframes scroll-pulse{0%{opacity:0;transform:scaleY(0)}35%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)translateY(24px)}}.stage-frame{z-index:4;border:1px solid color-mix(in srgb, var(--stage-ink) 12%, transparent);pointer-events:none;position:absolute;inset:100px 14px 22px}.stage-frame i{background:var(--stage-accent);width:9px;height:9px;box-shadow:0 0 0 3px var(--stage-background);transform:translate(var(--frame-cursor-x), var(--frame-cursor-y)) rotate(45deg);pointer-events:auto;cursor:grab;touch-action:none;position:absolute;top:-5px;left:-5px}.beats{pointer-events:none;position:absolute;inset:0}.beat{opacity:0;will-change:opacity, transform;pointer-events:none;width:min(580px,41vw);position:absolute;top:22%}.beat-left{left:max(36px,50vw - 842px)}.beat-right{right:max(36px,50vw - 842px)}.beat .beat-eyebrow{font:500 10.5px/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--stage-accent);background:var(--stage-accent-carrier);border-radius:5px;margin:0 0 22px -7px;padding:4px 7px;display:inline-block}.beat h1,.beat h2{letter-spacing:-.055em;text-wrap:balance;margin:0;font-size:clamp(40px,4.6vw,82px);font-weight:390;line-height:.98}.beat p{max-width:440px;color:color-mix(in srgb, var(--stage-ink) 78%, var(--stage-background));margin:22px 0 0;font-size:clamp(15px,1.15vw,18px);line-height:1.5}.beat .proof{border-top:1px solid color-mix(in srgb, var(--stage-ink) 18%, transparent);font:500 10.5px/1.6 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--stage-muted);margin:26px 0 0;padding:12px 0 0;display:block}.beat-final{top:18%}.snippet{border:1px solid color-mix(in srgb, var(--stage-screen-ink) 16%, transparent);background:color-mix(in srgb, var(--stage-screen-ink) 5%, var(--stage-screen));font:400 12px/1.62 var(--font-mono);letter-spacing:0;color:color-mix(in srgb, var(--stage-screen-ink) 88%, var(--stage-screen));white-space:pre;scrollbar-width:none;tab-size:2;border-radius:10px;margin:24px 0 0;padding:30px 18px 14px;position:relative;overflow:auto hidden}.snippet-file{font:500 9.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--stage-screen-ink) 55%, var(--stage-screen));position:absolute;top:9px;left:18px}.snippet code{font:inherit;display:block}.snippet .snippet-compact{display:none}@media (max-width:1279px){.snippet .snippet-wide{display:none}.snippet .snippet-compact{display:block}}.snippet .line{opacity:0;transition:opacity .36s cubic-bezier(.2,.7,.2,1),transform .46s cubic-bezier(.2,.7,.2,1);display:block;transform:translateY(6px)}.beat.is-live .snippet .line{opacity:1;transition-delay:calc(.14s + var(--i) * 55ms);transform:none}.snippet i{font-style:normal}.snippet .tk-keyword{color:var(--accent)}.snippet .tk-string{color:color-mix(in srgb, var(--accent) 62%, var(--stage-screen-ink))}.snippet .tk-comment,.snippet .tk-prompt{color:color-mix(in srgb, var(--stage-screen-ink) 55%, var(--stage-screen))}.snippet .tk-env{color:color-mix(in srgb, var(--stage-screen-ink) 92%, var(--accent))}.snippet .tk-ellipsis{color:color-mix(in srgb, var(--stage-screen-ink) 55%, var(--stage-screen));padding:0 1px}.progress-track .rail-act{letter-spacing:.16em;color:var(--stage-muted);white-space:nowrap;text-overflow:clip;pointer-events:none;padding-left:14px;font-size:9px;position:absolute;top:-12px;overflow:hidden}.final-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.final-actions a{font:600 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid color-mix(in srgb, var(--stage-ink) 35%, transparent);border-radius:999px;align-items:center;gap:10px;padding:14px 20px;text-decoration:none;display:inline-flex}.final-actions a.primary{background:var(--stage-ink);color:var(--stage-chrome);border-color:var(--stage-ink)}.beat.is-live{pointer-events:auto}.still{display:none}.afterword{background:var(--accent);min-height:34svh;color:var(--accent-ink);align-content:end;gap:28px;padding:64px max(36px,50vw - 842px) 40px;display:grid;position:relative}.afterword-row{font:500 11px/1.6 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:16px 32px;display:flex}.afterword-row nav{gap:24px;display:flex}.afterword-row a{border-bottom:1px solid color-mix(in srgb, var(--accent-ink) 40%, transparent);text-decoration:none}.afterword-row a:hover{border-bottom-color:var(--accent-ink)}.afterword-row .fine{color:color-mix(in srgb, var(--accent-ink) 78%, var(--accent));text-transform:none;letter-spacing:0;max-width:640px;font-size:12px}@media (max-width:1100px){.nav-shell{grid-template-columns:1fr auto auto;width:calc(100% - 48px);height:76px}.start-return{display:inline-flex}.chapter-nav,.progress-track .rail-act{display:none}.progress-track{margin-top:0}.journey-status{grid-template-columns:1fr;gap:10px;width:calc(100% - 48px);bottom:22px}.status-location{order:2;justify-content:space-between;min-width:0;overflow:hidden}.telemetry{display:none}.status-location .state{color:var(--stage-accent);background:var(--stage-accent-carrier);text-overflow:ellipsis;border-radius:4px;flex:0 auto;min-width:0;margin:-1px;padding:1px 5px;overflow:hidden}.stage-frame{top:82px;bottom:18px}.beat{width:min(560px,44vw);top:18%}.snippet{margin-top:18px;padding:26px 14px 12px;font-size:11px;line-height:1.55}.beat-left{left:32px}.beat-right{right:32px}.beat h1,.beat h2{font-size:clamp(36px,4.9vw,52px)}.beat p{font-size:15px}.scroll-prompt{bottom:96px}}@media (max-width:760px){.odyssey{height:2180vh}.odyssey-stage{min-height:560px}.nav-shell{width:calc(100% - 32px);height:64px}.run-link{padding:9px 12px;font-size:9.5px}.brand small{display:none}.beat,.beat-final{width:auto;max-height:50%;top:11%;left:18px;right:18px}.snippet{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px;padding:24px 12px 10px;font-size:10.5px;line-height:1.5}.snippet-file{font-size:8.5px;top:8px;left:12px}.beat .beat-eyebrow{margin-bottom:14px}.beat h1,.beat h2{font-size:clamp(30px,8.6vw,40px)}.beat p{margin-top:14px;font-size:14px;line-height:1.45}.beat .proof{margin-top:12px;padding-top:10px;font-size:9px;line-height:1.5}.final-actions{gap:8px;margin-top:16px}.final-actions a{padding:11px 14px;font-size:10px}.stage-frame{inset:70px 10px 16px}.stage-frame i{display:none}.journey-status{width:calc(100% - 32px);font-size:9.5px;bottom:18px}.scroll-prompt{display:none}.afterword{padding:48px 18px 28px}}@media (min-width:760px) and (max-height:880px){.beat{top:15%}.beat h1,.beat h2{font-size:clamp(36px,4vw,64px)}.beat p{margin-top:16px}.snippet{margin-top:18px;padding:26px 16px 12px;line-height:1.5}.beat .proof{margin-top:18px}}@media (prefers-reduced-motion:reduce),(max-height:620px),(max-width:759px) and (max-height:779px){.odyssey{height:auto}.odyssey-stage{background:var(--stage-background);height:auto;min-height:0;position:relative;overflow:visible}.odyssey-stage canvas.world,.halftone-field,.journey-status,.scroll-prompt,.stage-frame{display:none}.nav-shell{background:color-mix(in srgb, var(--stage-background) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%;color:var(--stage-ink);padding:0 28px;position:sticky;top:0;left:0;translate:0}.chapter-nav{display:flex}.start-return,.chapter-nav button:after,.act-chapters{display:none}.beats{pointer-events:auto;position:static}.beat,.beat-final{pointer-events:auto;border-top:1px solid color-mix(in srgb, var(--beat-ink,var(--stage-ink)) 12%, transparent);background:var(--beat-background,var(--stage-background));width:100%;max-height:none;color:var(--beat-ink,var(--stage-ink));will-change:auto;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:40px;padding:64px 28px;display:grid;position:relative;inset:auto;opacity:1!important;filter:none!important;transform:none!important}.beat>*{grid-column:1}.beat p{color:color-mix(in srgb, var(--beat-ink,var(--stage-ink)) 80%, var(--beat-background,var(--stage-background)))}.beat .proof{border-top-color:color-mix(in srgb, var(--beat-ink,var(--stage-ink)) 20%, transparent);color:color-mix(in srgb, var(--beat-ink,var(--stage-ink)) 62%, var(--beat-background,var(--stage-background)))}.beat .beat-eyebrow{color:var(--beat-accent,var(--stage-accent));background:var(--beat-accent-carrier,var(--stage-accent-carrier))}.snippet .line{opacity:1;transition:none;transform:none}.final-actions a.primary{background:var(--beat-ink,var(--stage-ink));color:var(--beat-background,var(--stage-background));border-color:var(--beat-ink,var(--stage-ink))}.final-actions a{border-color:color-mix(in srgb, var(--beat-ink,var(--stage-ink)) 35%, transparent)}.still{width:100%;aspect-ratio:var(--still-aspect,16 / 10);border:1px solid color-mix(in srgb, var(--beat-ink,var(--stage-ink)) 14%, transparent);border-radius:12px;grid-area:1/2/span 6;display:block}@media (max-width:900px){.beat,.beat-final{grid-template-columns:1fr;padding:48px 20px}.still{order:-1;grid-area:auto/1}.chapter-nav{display:none}.start-return{display:inline-flex}}}
