:root,html[data-theme=light]{--paper: #f3eee4;--paper-2: #fffaf3;--ink: #1c1612;--ink-soft: #3a312a;--muted: #6f6458;--line: #e3d7c6;--line-strong: #c9b8a2;--pro: #c4491d;--pro-soft: #f6e2d6;--flash: #0f6e78;--flash-soft: #d7e8e7;--good: #1c6b45;--bad: #9c3418;--shadow: 0 18px 50px rgba(48, 28, 10, .06);--glow-pro: rgba(196, 73, 29, .07);--glow-flash: rgba(15, 110, 120, .07);--code-bg: rgba(28, 22, 18, .05);--code-block: #1c1612;--code-ink: #f6efe6;--rail-on: rgba(255, 250, 243, .8);--rail-hover: rgba(255, 250, 243, .65);--opt: #fffaf3;--opt-on: #f6ecdf;--roll: #fffaf3;--roll-pass: #eef6f1;--roll-fail: #fbf3f0;--roll-mid: #f8f4ea;--dot-filled: #b9a48c;--select: #f0d3c2;color-scheme:light}html[data-theme=dark]{--paper: #14110e;--paper-2: #1e1a16;--ink: #f4ece3;--ink-soft: #ddd3c7;--muted: #b3a496;--line: #3a332c;--line-strong: #524840;--pro: #e08a55;--pro-soft: #3a2820;--flash: #7ec8c6;--flash-soft: #1c3332;--good: #8fceab;--bad: #e7a090;--shadow: 0 18px 40px rgba(0, 0, 0, .28);--glow-pro: rgba(224, 138, 85, .08);--glow-flash: rgba(126, 200, 198, .07);--code-bg: rgba(244, 236, 227, .08);--code-block: #0e0c0a;--code-ink: #f4ece3;--rail-on: rgba(255, 250, 243, .06);--rail-hover: rgba(255, 250, 243, .04);--opt: #1e1a16;--opt-on: #2a241e;--roll: #1e1a16;--roll-pass: #1c2b24;--roll-fail: #2c201c;--roll-mid: #2a261e;--dot-filled: #8a7b6c;--select: #5a3d2e;color-scheme:dark}*{box-sizing:border-box}html{--top: 4.6rem;--sans: "Outfit", ui-sans-serif, system-ui, sans-serif;--serif: "Fraunces", "Iowan Old Style", Georgia, serif;--text: "Source Serif 4", "Iowan Old Style", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;font-size:16px}body{margin:0;min-height:100dvh;background:radial-gradient(1000px 480px at -10% -10%,var(--glow-pro),transparent 60%),radial-gradient(900px 420px at 110% -20%,var(--glow-flash),transparent 55%),var(--paper);color:var(--ink);font-family:var(--text);font-weight:460;line-height:1.65;text-rendering:optimizeLegibility}button,input{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{font-family:var(--serif);font-weight:560;letter-spacing:-.02em;line-height:1.12}p{margin:0}strong{font-weight:560}em{font-style:italic}code{font-family:var(--mono);font-size:.84em;background:var(--code-bg);padding:.05em .35em;border-radius:.3em;overflow-wrap:anywhere}::selection{background:var(--select)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.skip{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:var(--paper);padding:.6rem .9rem;border-radius:999px;z-index:20}.skip:focus{top:.6rem}.app{width:min(1440px,calc(100% - clamp(1.5rem,4vw,4rem)));margin:0 auto;padding-bottom:4rem}.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--top);background:var(--paper);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid transparent}.top-right{display:flex;align-items:center;gap:.85rem;flex:none}.theme-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);background:var(--paper-2);color:var(--ink);display:grid;place-items:center;padding:0;flex:none}.brand{display:flex;align-items:center;gap:.75rem;background:none;border:0;padding:.4rem 0;text-align:left;min-height:44px}.brand strong{display:block;font-family:var(--serif);font-weight:560;font-size:1.2rem;letter-spacing:-.03em}.brand em{display:block;font-family:var(--sans);font-style:normal;font-size:.78rem;letter-spacing:.04em;color:var(--muted)}.mark{width:.95rem;height:.95rem;border:1.5px solid var(--ink);border-radius:50%;box-shadow:inset .35rem 0 0 var(--pro),inset -.35rem 0 0 var(--flash)}.top-progress{font-family:var(--sans);font-size:.82rem;color:var(--muted);display:flex;align-items:baseline;gap:.4rem}.top-count{font-family:var(--mono);color:var(--ink);font-size:.95rem}.frame.solo{grid-template-columns:minmax(0,1fr)}.intro .lede{max-width:38rem}.path{list-style:none;margin:1.8rem 0 .4rem;padding:0;display:grid;grid-template-columns:1fr}.path button{width:100%;display:grid;grid-template-columns:2.2rem minmax(0,1fr);column-gap:.7rem;row-gap:.1rem;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:.8rem .2rem .85rem 0;color:inherit;min-height:44px}.path-n{grid-row:1 / span 2;font-family:var(--mono);font-size:.78rem;color:var(--muted);padding-top:.35rem}.path-title{font-family:var(--serif);font-size:1.2rem;letter-spacing:-.02em;line-height:1.25}.path-line{font-family:var(--sans);font-size:.88rem;color:var(--muted);line-height:1.4}.meters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:1.3rem 0 .7rem}.meter{text-align:left;background:var(--paper-2);color:inherit;border:1px solid var(--line);border-radius:1rem;padding:.8rem .85rem .75rem;min-height:5.2rem;box-shadow:var(--shadow)}.meter.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.meter b{display:block;font-family:var(--mono);font-weight:500;font-size:1.35rem;letter-spacing:-.04em}.meter span{display:block;margin-top:.25rem;font-family:var(--sans);font-size:.78rem;color:var(--muted)}.meter.on span{color:color-mix(in srgb,var(--paper) 72%,transparent)}.meter-read,.stamp-line,.scene-beat{animation:rise .38s ease}.meter-read{margin:0 0 1.2rem;max-width:40rem;font-family:var(--serif);font-size:1.28rem;line-height:1.35;color:var(--ink)}.scene{background:var(--paper-2);border:1px solid var(--line);border-radius:1.25rem;padding:1.15rem 1.15rem 1.05rem;box-shadow:var(--shadow);margin:1.3rem 0}.toy{background:none;border:0;box-shadow:none;padding:0;margin:3.25rem 0 .4rem}.toy h2,.scene h2,.door-h{font-size:clamp(1.7rem,2.8vw,2.35rem);margin:.2rem 0 .55rem}.toy>p,.scene-body{margin:0;max-width:42rem;color:var(--ink-soft);font-size:1.05rem}.toy .choice-row{margin-top:1.15rem}.toy-out{margin:1.15rem 0 0;max-width:36rem;font-family:var(--serif);font-size:1.35rem;line-height:1.35}.toy-out.good{color:var(--good)}.toy-out.bad{color:var(--bad)}.pips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.35rem}.pip{display:grid;place-items:center;width:2.45rem;height:2.45rem;flex:none;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--muted);font-family:var(--mono);font-size:.68rem;transition:transform .12s ease,background .15s ease,color .15s ease}.pip.pass{background:var(--pro);border-color:var(--pro);color:#1c1612}.pip.mid{background:var(--pro-soft);border-color:var(--pro);color:var(--ink)}.pip:active{transform:scale(.9)}.stamps{margin:2.75rem 0 0}.stamp-line{margin:1.05rem 0 0;max-width:40rem;font-family:var(--serif);font-size:1.35rem;line-height:1.4}.picture{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--line)}.picture span{font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pro)}.picture p{margin:.35rem 0 0;font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.35rem;line-height:1.3}.scene-nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:1rem}.scene-dots{display:flex;gap:.35rem}.sdot{width:.48rem;height:.48rem;border-radius:50%;border:0;padding:0;background:var(--line-strong)}.sdot.on{background:var(--pro)}.doors{display:grid;gap:.65rem;margin:.4rem 0}.door{display:grid;grid-template-columns:2.2rem minmax(0,1fr);column-gap:.65rem;row-gap:.12rem;text-align:left;background:var(--paper-2);color:inherit;border:1px solid var(--line);border-radius:1rem;padding:.85rem .95rem;box-shadow:var(--shadow)}.door .path-n{grid-row:1 / span 2;padding-top:.28rem}.door-h{margin-top:1.6rem}.figures{margin:.2rem 0 1.2rem;color:var(--muted);font-family:var(--sans);font-size:.92rem}.figures summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.figures ul{margin:.2rem 0 .6rem;padding-left:1.1rem;display:grid;gap:.45rem}.figures li{color:var(--ink-soft)}.chapter-nav{display:flex;justify-content:space-between;align-items:stretch;gap:.7rem;margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--line)}.chapter-nav .btn{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.12rem;min-height:52px;height:auto;border-radius:1rem;line-height:1.2;text-align:left}.chapter-nav .btn:last-child{margin-left:auto;align-items:flex-end;text-align:right}.chapter-nav .btn small{font-family:var(--sans);font-weight:460;font-size:.75rem;opacity:.72}.frame{display:grid;grid-template-columns:16.5rem minmax(0,1fr);gap:clamp(1.25rem,3vw,3rem);align-items:start;padding-top:1.5rem}.rail{position:sticky;top:calc(var(--top) + .75rem);display:flex;flex-direction:column;gap:.15rem;max-height:calc(100dvh - var(--top) - 1.5rem);overflow:auto;padding-right:.25rem}.rail-item{position:relative;display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.35rem .55rem;align-items:baseline;text-align:left;background:transparent;border:0;border-radius:.7rem;padding:.45rem .55rem;min-height:44px;color:var(--ink-soft);font-family:var(--sans);font-size:.92rem;line-height:1.3}.rail-item.on{background:var(--rail-on);color:var(--ink)}.rail-item:disabled{color:var(--muted);cursor:not-allowed}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rail-n{font-family:var(--mono);font-size:.72rem;color:var(--muted)}.rail-item.on .rail-n{color:var(--pro)}.lock{grid-column:2;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.sheet{min-width:0;max-width:68ch}.sheet.chapter{max-width:none}.read{display:grid;grid-template-columns:minmax(0,1fr);justify-content:start;gap:2rem;align-items:start;max-width:none}.giant{font-family:var(--serif);font-weight:560;font-size:clamp(4.4rem,12vw,8.2rem);line-height:.84;letter-spacing:-.05em;margin:.85rem 0 .2rem}.giant-k{margin:0 0 .35rem;font-family:var(--sans);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--pro)}.moment-nav{display:flex;flex-wrap:wrap;gap:.35rem .5rem;margin:1.1rem 0 .2rem}.moment-nav button{display:flex;align-items:baseline;gap:.4rem;min-height:44px;padding:.35rem .7rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-soft);font-family:var(--sans);font-size:.82rem}.moment-nav button span{font-family:var(--mono);font-size:.72rem;color:var(--pro)}.spreads{display:flex;flex-direction:column}.spread{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(16rem,26rem);gap:clamp(1.75rem,4vw,4.5rem);align-items:center;padding:2.75rem 0 3rem;border-top:1px solid var(--line)}.spread:first-child{border-top:0}.spread-art,.spread-copy{min-width:0}.pin-meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.35rem}.pin-meta .lab-kicker{margin:0}.pin-count{margin:0;font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;color:var(--ink)}.pin-count span{color:var(--muted)}.pin-art{position:relative;display:grid;place-items:center}.pin-art:before{content:"";position:absolute;width:min(78%,22rem);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--pro) 16%,transparent),transparent 70%);pointer-events:none}.pin-caption{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.55rem,2.5vw,2.15rem);line-height:1.2;letter-spacing:-.02em;max-width:16ch;margin:.85rem 0 0}.spread h2{font-size:clamp(2.15rem,3.4vw,3.35rem);margin:0 0 .75rem;max-width:14ch}.spread-copy p{margin:0;font-size:1.16rem;line-height:1.55;max-width:38ch;color:var(--ink-soft)}.kicker,.lab-kicker,.margin-label,.note-label,.mini-k{font-family:var(--sans);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pro);margin-bottom:.4rem}.sheet-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem 1.1rem;align-items:end;margin-bottom:.35rem}.chapter .sheet-head{display:block}.chapter .sheet-n{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;color:var(--pro);line-height:1;margin-right:.55rem}.chapter .sheet-head h1{font-size:clamp(1.85rem,3vw,2.6rem);margin-bottom:.35rem}.chapter .promise{font-size:1.05rem;max-width:58ch}.sheet-n{font-family:var(--serif);font-weight:500;font-size:clamp(3.2rem,8vw,5.2rem);line-height:.8;color:color-mix(in srgb,var(--ink) 16%,transparent);margin:0}h1{font-size:clamp(2.1rem,4vw,3.4rem);margin:0 0 .7rem}.cover h1 em{font-style:italic;font-weight:500}.lede,.promise{font-size:1.18rem;line-height:1.5;color:var(--ink-soft)}.meta,.fine,.lab-hint,.saved-score{margin-top:.8rem;font-family:var(--sans);font-size:.9rem;color:var(--muted)}.cover-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.2rem;margin:1.4rem 0 1.8rem}.cover-actions .meta{margin:0}.btn,.text-btn,.theme-btn,.chip,.opt,.rail-item,.stage,.term,.roll,.path button,.meter,.door,.sdot,.pip{-webkit-tap-highlight-color:transparent}.btn{font-family:var(--sans);font-weight:560;font-size:.98rem;background:var(--ink);color:var(--paper-2);border:1px solid var(--ink);border-radius:999px;min-height:44px;padding:.55rem 1.15rem}.btn.ghost{background:transparent;color:var(--ink)}.btn:disabled{opacity:.38;cursor:not-allowed}.text-btn{background:none;border:0;padding:0;min-height:44px;font-family:var(--sans);font-size:.85rem;color:var(--muted);text-decoration:underline;text-underline-offset:.2em}.prose{display:grid;gap:1rem}.prose h2{font-size:clamp(1.45rem,2vw,1.85rem);margin:1.2rem 0 0}.prose p{font-size:1.05rem}.pull{margin:.6rem 0;padding:.2rem 0 .2rem 1.1rem;border-left:2px solid var(--pro);font-family:var(--serif);font-size:1.35rem;font-weight:500;line-height:1.35;letter-spacing:-.02em}.note,.hold-inline,.margin{background:var(--paper-2);border:1px solid var(--line);border-radius:1.1rem;padding:1rem 1.1rem 1.05rem;box-shadow:var(--shadow)}.note p,.hold-inline p,.margin p{font-size:.98rem}.margin{display:none}.hold-inline{margin:0 0 1.4rem}.tickets,.duo,.split,.spark-row{display:grid;gap:.9rem}.tickets{grid-template-columns:1fr;margin-top:1.75rem;gap:1.15rem}.ticket,.lab,.exam{background:var(--paper-2);border:1px solid var(--line);border-radius:1.25rem;padding:1.35rem 1.4rem 1.15rem;box-shadow:var(--shadow)}.ticket{box-shadow:var(--shadow)}.ticket header,.q-top,.exam-actions,.q-nav{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.ticket header p,.ticket-sub,.ticket dl{font-family:var(--sans);font-size:.85rem;color:var(--muted)}.ticket-step{font-family:var(--mono);color:var(--ink)}.ticket-avg{font-family:var(--mono);font-size:clamp(2rem,4vw,2.6rem);letter-spacing:-.04em;margin:.35rem 0 .1rem}.ticket.pro .ticket-avg{color:var(--pro)}.ticket.flash .ticket-avg{color:var(--flash)}.spark{width:100%;height:auto;display:block;margin:.35rem 0 .2rem}.ticket dl,.story{display:grid;gap:0;margin:1.15rem 0 0}.ticket dl div{display:flex;justify-content:space-between;align-items:baseline;gap:1.25rem;border-top:1px solid var(--line);padding:.8rem 0}.ticket dt{color:var(--muted)}.ticket dd{margin:0;font-family:var(--mono);font-size:.82rem;color:var(--ink);text-align:right}.fine{max-width:62ch}.lab,.exam{margin-top:1.6rem}.lab-body{margin-top:.8rem;font-size:1.02rem}.lab-body.tight{margin-top:0}.lab-stat{margin-top:.9rem;font-family:var(--sans);font-size:.95rem}.choice-row,.stage-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.35rem;padding:0;list-style:none}.choice-row.wrap{flex-wrap:wrap}.chip,.stage{min-height:44px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;padding:.4rem .85rem;font-family:var(--sans);font-size:.92rem}.chip.on,.stage.on,.term.on{background:var(--ink);color:var(--paper-2);border-color:var(--ink)}.stage{display:flex;flex-direction:column;align-items:flex-start;border-radius:.9rem;min-width:7.5rem}.stage-n{font-family:var(--mono);font-size:.72rem;opacity:.7}.term-grid{display:grid;gap:.45rem;margin-top:.4rem}.term{text-align:left;border:1px solid var(--line);background:transparent;border-radius:.9rem;padding:.7rem .85rem;min-height:44px}.term-name{font-family:var(--sans);font-weight:560;display:block}.term-text{display:block;margin-top:.35rem;font-size:.98rem}.term.on .term-text{color:color-mix(in srgb,var(--paper-2) 88%,white)}.roll-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin-top:.8rem}.roll{min-height:4.6rem;border-radius:.85rem;border:1px solid var(--line);background:var(--roll);display:flex;flex-direction:column;align-items:flex-start;padding:.45rem .55rem}.roll-i{font-family:var(--mono);font-size:.68rem;color:var(--muted)}.roll-s{font-family:var(--mono);font-size:1.05rem}.roll-a{font-family:var(--mono);font-size:.75rem;color:var(--muted)}.roll-a.up{color:var(--good)}.roll-a.down{color:var(--bad)}.roll.pass{background:var(--roll-pass)}.roll.fail{background:var(--roll-fail)}.roll.mid{background:var(--roll-mid)}.code{font-family:var(--mono);font-size:.86rem;line-height:1.45;background:var(--code-block);color:var(--code-ink);border-radius:.9rem;padding:.9rem 1rem;overflow-x:auto;margin:.8rem 0 0}.split{grid-template-columns:1fr 1fr;margin-top:.8rem}.verdict{font-family:var(--serif);font-size:1.8rem;margin:0}.verdict.good{color:var(--good)}.verdict.bad{color:var(--bad)}.slider{display:grid;gap:.35rem;margin-top:.85rem;font-family:var(--sans);font-size:.92rem}.slider input{width:100%;accent-color:var(--ink);min-height:44px}.equation{font-family:var(--mono);font-size:clamp(.78rem,1.6vw,.95rem);line-height:1.5;margin-top:.9rem;overflow-wrap:anywhere}.spark-row{grid-template-columns:1fr 1fr;margin-top:.8rem}.spark-row figcaption,.story dt{font-family:var(--sans);font-size:.78rem;color:var(--muted)}.story{margin-top:.8rem}.story div{display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:.6rem}.story dt{padding-top:.2rem}.story dd{margin:0}.duo{grid-template-columns:1fr 1fr;margin-top:.8rem}.duo-card{border-radius:1rem;padding:.9rem 1rem 1rem;display:grid;gap:.35rem}.duo-card h3{margin:0 0 .2rem;font-size:1.4rem}.duo-card.pro{background:var(--pro-soft)}.duo-card.flash{background:var(--flash-soft)}.notice-q{margin:.85rem 0 0;font-family:var(--serif);font-size:1.2rem;line-height:1.35}.checks{margin:1rem 0 0;padding-left:1.1rem;display:grid;gap:.35rem}.checks li::marker{color:var(--pro)}.exam{padding-bottom:1.1rem}.exam-rule{height:1px;background:repeating-linear-gradient(90deg,var(--line-strong) 0 8px,transparent 8px 14px);margin-bottom:1rem}.exam-idle h2,.q-prompt{font-size:clamp(1.45rem,2.4vw,2rem);margin:.2rem 0 .7rem}.opts{display:grid;gap:.5rem}.opt{display:flex;gap:.75rem;align-items:flex-start;text-align:left;width:100%;min-height:52px;padding:.75rem .85rem;border-radius:.95rem;border:1px solid var(--line-strong);background:var(--opt);font-size:1.02rem;line-height:1.4}.opt.on{border-color:var(--ink);background:var(--opt-on)}.opt-key{font-family:var(--mono);font-size:.75rem;width:1.4rem;flex:none;color:var(--muted);padding-top:.2rem}.q-nav{margin-top:1rem}.q-dots{display:flex;gap:.28rem}.dot{width:.42rem;height:.42rem;border-radius:50%;background:var(--line-strong)}.dot.filled{background:var(--dot-filled)}.dot.on{background:var(--pro);transform:scale(1.25)}.q-card{animation:rise .42s cubic-bezier(.2,.7,.2,1)}.q-card[data-dir=back]{animation-name:rise-back}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes rise-back{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.score-num{font-family:var(--serif);font-size:clamp(4rem,10vw,6rem);line-height:.85;letter-spacing:-.04em;margin:.2rem 0 .6rem}.score-of{font-size:.4em;color:var(--muted);margin-left:.15em}.score-line{font-size:1.08rem;max-width:42ch;margin-bottom:1rem}.review{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.rev{border-top:1px solid var(--line);padding-top:.7rem}.rev-q{font-size:1rem}.rev-mark{display:inline-block;font-family:var(--sans);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;margin-right:.45rem;transform:translateY(-.08em)}.rev.ok .rev-mark{color:var(--good)}.rev.miss .rev-mark{color:var(--bad)}.rev-you,.rev-why{margin-top:.25rem;color:var(--ink-soft);font-size:.96rem}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin-top:3rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-family:var(--sans);font-size:.85rem;max-width:68ch}@media(min-width:760px){.tickets{grid-template-columns:1fr 1fr}.sheet.cover{max-width:68rem}.path{grid-template-columns:1fr 1fr;column-gap:2.75rem}.path-title{font-size:clamp(1.35rem,2vw,1.7rem)}.meters{grid-template-columns:repeat(5,minmax(0,1fr))}.doors{grid-template-columns:1fr 1fr}}@media(min-width:1100px){.app{width:min(1440px,calc(100% - 4rem))}}@media(max-width:980px){.spread{grid-template-columns:1fr;min-height:0;gap:1.1rem;padding:1.6rem 0 1.8rem;align-items:start}.pin-caption{max-width:24ch}.spread h2,.spread-copy p{max-width:none}}@media(max-width:860px){.frame{display:block;padding-top:.4rem}.rail{position:sticky;top:var(--top);z-index:8;flex-direction:row;max-height:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:.35rem;padding:.55rem 0 .7rem;margin:0 -.2rem;background:var(--paper);border-bottom:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none}.rail-item{scroll-snap-align:start;flex:0 0 auto;width:auto;max-width:15rem;grid-template-columns:auto minmax(0,1fr);background:var(--paper-2);border:1px solid var(--line)}.lock{display:none}.sheet,.read{max-width:none}.brand em{display:none}.q-nav{position:sticky;bottom:0;padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--paper-2) 65%,transparent);z-index:4}.split,.duo,.spark-row{grid-template-columns:1fr}.roll-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:420px){.sheet-head{grid-template-columns:1fr;gap:.2rem}.sheet-n{font-size:2.4rem}.roll-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-progress{font-size:0}.top-count{font-size:.95rem}}@media(min-width:2200px){.app{width:min(1500px,calc(100% - 8rem))}.read{grid-template-columns:minmax(0,1fr);max-width:none}.sheet{max-width:66ch}.sheet.chapter,.sheet.cover{max-width:none}.margin{display:block;position:sticky;top:calc(var(--top) + 1.5rem)}.hold-inline{display:none}.sheet.cover,.foot{max-width:none}}@media(min-width:3200px){.app{width:min(1680px,calc(100% - 12rem))}.lab,.ticket,.exam,.note{padding:1.4rem 1.5rem}}@media(hover:hover){.btn:hover:not(:disabled),.theme-btn:hover,.door:hover,.meter:hover{transform:translateY(-2px)}.pip:hover{transform:translateY(-2px)}.theme-btn:hover{border-color:var(--ink)}.path button:hover .path-title{color:var(--pro)}.rail-item:hover:not(:disabled),.chip:hover,.opt:hover,.term:hover,.roll:hover{border-color:var(--ink)}.rail-item:hover:not(:disabled){background:var(--rail-hover)}}.hands{margin-top:1.6rem}.fig{color:var(--ink);margin:0;width:min(100%,40rem);position:relative}.fig-svg{width:100%;height:auto;display:block;overflow:visible}.fig-svg text{fill:currentColor;font-family:var(--sans);font-size:12px}.fig-svg text.flash{fill:var(--flash);stroke:none}.box,.band,.node{fill:var(--paper);stroke:currentColor;stroke-width:1.4}.bad-box{stroke:var(--bad)}.ring,.mean{fill:none;stroke:var(--muted);stroke-width:1.4}.mean{stroke-dasharray:4 5}.ink{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.pro{stroke:var(--pro);fill:none;stroke-width:2.2;stroke-linecap:round}.flash{stroke:var(--flash);fill:none;stroke-width:2.2;stroke-linecap:round}.pro-fill,.rec,.coin{fill:var(--pro)}.cell{fill:var(--paper);stroke:var(--line-strong)}.wave{fill:none;stroke:var(--pro);stroke-width:2;animation:pulse 1.8s ease-in-out infinite}.rec,.pulse,.fade-note{animation:pulse 1.4s ease-in-out infinite}.hand{stroke:var(--pro);stroke-width:2.4}.incline{transform-box:view-box;transform-origin:180px 150px}.belt{stroke:var(--muted);stroke-width:1.5}.drop{animation:fall 2.4s ease-in infinite}.mote{animation:bloom 3s ease-in-out infinite alternate}.ghost{fill:none;stroke:currentColor;stroke-width:1.6}.ghost.a{animation:apart 3.4s ease-in-out infinite alternate}.ghost.b{animation:apart 3.4s ease-in-out infinite alternate-reverse}.slow,.fast,.draw{fill:none;stroke:currentColor;stroke-dashoffset:420;animation:drawline 2.2s ease forwards}.slow{stroke-dasharray:114;animation-duration:3.6s}.fast{stroke-dasharray:284;animation-duration:1.1s}.draw{stroke-dasharray:420}.sheet-in,.pop,.coin{animation:slip .7s ease both}.float{animation:drift 2.8s ease-in-out infinite alternate}@keyframes pulse{50%{opacity:.35}}@keyframes travel{to{offset-distance:100%}}@keyframes sweep{to{transform:rotate(360deg)}}@keyframes tilt{to{transform:rotate(-7deg)}}@keyframes fall{0%{transform:translateY(0);opacity:1}to{transform:translateY(96px);opacity:0}}@keyframes bloom{to{transform:translate(var(--dx),var(--dy))}}@keyframes apart{to{transform:translate(22px)}}@keyframes drawline{to{stroke-dashoffset:0}}@keyframes slip{0%{opacity:0;transform:translateY(8px)}}@keyframes drift{to{transform:translate(10px);opacity:.45}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.q-card,.scene-beat,.meter-read,.stamp-line,.fig-svg *{animation:none}.fig-svg animate,.fig-svg animateTransform,.fig-svg animateMotion{display:none}.btn:hover,.theme-btn:hover,.dot.on{transform:none}.pulse{animation:none}}.notebook{padding-top:1.4rem}.notebook h1{font-family:var(--serif);font-weight:560;font-size:clamp(3.4rem,7.2vw,6.2rem);letter-spacing:-.045em;line-height:.92;margin:.15rem 0 0}.notebook-lede{max-width:38rem;margin:1.35rem 0 0;font-family:var(--text);font-size:1.28rem;line-height:1.45;color:var(--ink-soft)}.begin{margin-top:1.35rem;padding:0;border:0;background:none;font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--pro);text-decoration:underline;text-underline-offset:.18em}.pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4rem);margin-top:3rem;padding-top:1.15rem;border-top:1px solid var(--line)}.pair-name{margin:0;font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.4rem);letter-spacing:-.03em}.pair-sum{margin:.15rem 0 0;font-family:var(--mono);font-size:clamp(1.15rem,2vw,1.45rem);letter-spacing:-.03em}.pair-sum.pro{color:var(--pro)}.pair-sum.flash{color:var(--flash)}.pair-meta{margin:.45rem 0 0;font-family:var(--sans);font-size:.95rem;color:var(--muted);line-height:1.45}.trace{margin:2.2rem 0 0}.trace svg{width:100%;height:auto;display:block}.trace text{fill:var(--muted);font-family:var(--mono);font-size:11px}.trace-pro,.trace-flash{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.trace-pro{stroke:var(--pro)}.trace-flash{stroke:var(--flash)}.trace figcaption{margin-top:.35rem;font-family:var(--text);font-style:italic;font-size:1.05rem;color:var(--ink-soft)}.trace figcaption .pro{color:var(--pro);font-style:normal;font-family:var(--sans);font-size:.85rem}.trace figcaption .flash{color:var(--flash);font-style:normal;font-family:var(--sans);font-size:.85rem}.toc{list-style:none;margin:3.2rem 0 0;padding:0}.toc button{display:grid;grid-template-columns:2.4rem minmax(0,1.1fr) minmax(0,1fr);gap:.4rem 1.25rem;align-items:baseline;width:100%;padding:.95rem 0;text-align:left;background:none;border:0;border-top:1px solid var(--line);border-radius:0}.toc li:last-child button{border-bottom:1px solid var(--line)}.toc-n{font-family:var(--mono);font-size:.78rem;color:var(--muted)}.toc-title{font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.55rem);letter-spacing:-.02em}.toc-line{font-family:var(--sans);font-size:.92rem;color:var(--muted)}.notebook .fine{margin-top:1.4rem}.toc button:hover .toc-title{color:var(--pro)}.read-col{max-width:44rem;padding-top:.4rem}.read-col h1{font-family:var(--serif);font-size:clamp(2.4rem,4.5vw,3.6rem);margin:.2rem 0 .6rem}.read-col h2{font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.1rem);margin:.25rem 0 .65rem}.read-col .promise{max-width:40rem}.moment{margin:2.4rem 0 0}.moment>p{margin:0;max-width:62ch;color:var(--ink-soft);font-size:1.08rem;line-height:1.65}.moment figure{margin:1rem 0 0}.moment figcaption{margin-top:.45rem;font-family:var(--serif);font-style:italic;font-size:1.2rem}.tryit{margin:2.6rem 0 .2rem;padding-top:.2rem}.tryit .lab{background:transparent;border:0;box-shadow:none;padding:.2rem 0 0;margin:0}.read-col .chapter-nav{border-top:0}.read-col .jump{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:12rem;padding:.2rem 0;background:none;color:var(--ink);border:0;border-radius:0}.read-col .jump.next{margin-left:auto;align-items:flex-end;text-align:right}.read-col .jump small{font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.read-col .jump span{font-family:var(--serif);font-size:1.25rem}@media(max-width:800px){.pair,.toc button{grid-template-columns:1fr}.toc-line{grid-column:1}.read-col .chapter-nav{display:grid}.read-col .jump.next{margin:0;align-items:flex-start;text-align:left}}
