*{box-sizing:border-box}body{margin:0;padding:calc(var(--step) * 3) var(--step);background:var(--ground);color:var(--ink);font-family:var(--font-ui);line-height:var(--prose-leading);display:flex;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}input,textarea,.token-code{-webkit-user-select:text;-moz-user-select:text;user-select:text}.screen{width:100%;max-width:var(--measure);display:flex;flex-direction:column;gap:calc(var(--step) * 2)}.prose{font-family:var(--font-prose);font-size:var(--prose-size);margin:0}.outcome{color:var(--ink-soft);font-style:italic;padding-left:var(--step);border-left:2px solid var(--edge)}.event{font-size:var(--event-size)}.note{font-size:.9rem;color:var(--ink-faint);font-style:italic}.ending-heading{font-family:var(--font-prose);font-size:1.5rem;font-weight:var(--heading-weight);margin:0;letter-spacing:.01em}.reading-heading{font-family:var(--font-ui);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 .4rem}.reading,.choices{display:flex;flex-direction:column;gap:.5rem}button{font:inherit;cursor:pointer;border-radius:var(--radius);transition:background .14s ease,color .14s ease,border-color .14s ease}button:disabled{cursor:default;opacity:.45}.choice{text-align:left;padding:.7rem .9rem;background:var(--ground-raised);border:1px solid var(--edge);color:var(--ink);font-family:var(--font-prose);font-size:1rem}.choice:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:var(--ground)}.primary{padding:.6rem 1.2rem;background:var(--accent);border:1px solid var(--accent);color:var(--ground);align-self:flex-start}.ghost{padding:.3rem .7rem;background:transparent;border:1px solid var(--edge);color:var(--ink-soft);font-size:.8rem}.ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.offers{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:var(--step);border-top:1px dashed var(--edge)}.offer{padding:.35rem .7rem;background:transparent;border:1px dashed var(--accent-soft);color:var(--accent);font-size:.8rem}.offer:hover:not(:disabled){background:var(--accent-soft);color:var(--ground)}.actions{display:flex;gap:.5rem}.fields{display:flex;flex-direction:column;gap:calc(var(--step) * 1.5)}.field{display:flex;flex-direction:column;gap:.3rem}.field-label{font-size:.88rem;color:var(--ink-soft)}.input{font:inherit;padding:.5rem .6rem;background:var(--ground-raised);border:1px solid var(--edge);border-radius:var(--radius);color:var(--ink)}.input:focus{outline:2px solid var(--accent);outline-offset:-1px}.field-bad .input{border-color:var(--warn)}.field-problem{font-size:.8rem;color:var(--warn)}.token{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:var(--step);background:var(--ground-raised);border:1px solid var(--edge);border-radius:var(--radius)}.token-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.token-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem;letter-spacing:.06em;color:var(--accent);word-break:break-all}.token .note{flex-basis:100%;margin:0}.ad-slot{min-height:var(--slot-height);display:flex;align-items:center;justify-content:center;border:1px dashed var(--edge);border-radius:var(--radius);color:var(--ink-faint);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.ad-slot:empty{display:none}.tokens-summary{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding-top:var(--step);border-top:1px dashed var(--edge)}.token-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.token-row{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding:.4rem .6rem;background:var(--ground-raised);border:1px solid var(--edge);border-radius:var(--radius)}.token-box{width:100%;min-height:5rem;resize:vertical;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85rem}.notice{color:var(--accent);font-size:.9rem}.privacy{margin-top:calc(var(--step) * 1.5);padding-top:calc(var(--step) * 1.5);border-top:1px solid var(--edge)}.overlay{border:none;padding:0;background:transparent;color:var(--ink);width:min(30rem,calc(100vw - var(--step) * 4))}.overlay::backdrop{background:#00000073}.overlay-body{background:var(--ground);border:1px solid var(--edge);border-radius:var(--radius);padding:calc(var(--step) * 2);display:flex;flex-direction:column;gap:calc(var(--step) * 2)}.settings{display:flex;flex-direction:column;gap:calc(var(--step) * 2)}.settings-group{display:flex;flex-direction:column;gap:.4rem}.settings-group-label{font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.setting{display:flex;align-items:center;justify-content:space-between;gap:var(--step);padding:.35rem 0}.setting-label{font-family:var(--font-prose);font-size:.95rem}.settings-entry{position:fixed;top:var(--step);right:var(--step);z-index:5;padding:.3rem .5rem;background:transparent;border:1px solid transparent;color:var(--ink-faint);opacity:.45;font-size:.95rem;line-height:1;transition:opacity .14s ease,border-color .14s ease,color .14s ease}.settings-entry:hover,.settings-entry:focus-visible{opacity:1;color:var(--accent);border-color:var(--edge)}.setting-wide{flex-direction:column;align-items:stretch;gap:.35rem}.segments{display:flex;gap:.25rem;flex-wrap:wrap}.segment{flex:1 1 auto;padding:.3rem .5rem;background:transparent;border:1px solid var(--edge);color:var(--ink-faint);font-size:.78rem;white-space:nowrap}.segment:hover:not(.on){color:var(--ink);border-color:var(--ink-faint)}.segment.on{background:var(--accent);border-color:var(--accent);color:var(--ground)}.settings-sample{display:flex;flex-direction:column;gap:.5rem;padding:.6rem;border:1px dashed var(--edge);border-radius:var(--radius);min-height:5.5rem}.settings-sample .prose{font-size:.9rem;color:var(--ink-soft)}.settings-sample .choice{font-size:.85rem;padding:.4rem .6rem}:root{--reveal-rise: .45rem;--reveal-dur: .42s;--reveal-step: 90ms;--fill-dur: .42s;--swap-dur: .32s;--arc-dur: .9s}@property --arc{syntax: "<number>"; inherits: true; initial-value: 0;}html{transition:--arc var(--arc-dur) linear}html[data-pace=measured]{--reveal-dur: .62s;--reveal-step: .17s}html[data-pace=brisk]{--reveal-dur: .42s;--reveal-step: 90ms}html[data-pace=instant]{--reveal-dur: 0ms;--reveal-step: 0ms}@media(prefers-reduced-motion:reduce){:root{--reveal-rise: 0rem;--reveal-dur: .24s;--fill-dur: 0ms}.settings-entry{transition:none}}html[data-motion=full]{--reveal-rise: .45rem;--fill-dur: .42s}html[data-motion=reduced]{--reveal-rise: 0rem;--reveal-dur: .24s;--fill-dur: 0ms}html[data-motion=reduced] .settings-entry{transition:opacity .14s ease}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--swap-dur);animation-timing-function:ease}html[data-motion=reduced]{--swap-dur: .18s}html[data-motion=none] *{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{animation:reveal var(--reveal-dur) ease-out backwards;animation-delay:calc(var(--reveal-index, 0) * var(--reveal-step))}@keyframes reveal{0%{opacity:0;transform:translateY(var(--reveal-rise))}to{opacity:1;transform:none}}.fills{animation:fill var(--fill-dur) ease-out}@keyframes fill{0%{width:var(--fill-from)}}.delta-anchor{position:relative}.delta{position:absolute;right:100%;margin-right:.35rem;font-size:.72rem;font-variant-numeric:tabular-nums;pointer-events:none;animation:delta-rise 1.1s ease-out forwards}.delta.up{color:var(--accent)}.delta.down{color:var(--warn)}@keyframes delta-rise{0%{opacity:0;transform:translateY(.25rem)}20%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-.8rem)}}html[data-motion=reduced] .delta{animation-name:delta-hold}@keyframes delta-hold{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}.sound-offer{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}:root{--ink: #2c2a26;--ink-soft: #5c574d;--ink-faint: #8f887a;--ground: #f6f1e5;--ground-raised: #fcf8ee;--edge: #ddd2ba;--accent: #8c3f2b;--accent-soft: #c08a76;--warn: #a3402a;--zhupi: #b5442c;--zhupi-soft: #d99a86;--font-prose: ui-serif, Georgia, "Songti SC", "Noto Serif CJK SC", serif;--font-ui: ui-sans-serif, system-ui, -apple-system, "PingFang SC", "Segoe UI", sans-serif;--measure: 34rem;--step: .75rem;--radius: 2px;--prose-size: 1.02rem;--event-size: 1.35rem;--prose-leading: 1.7;--heading-weight: 500;--label-spacing: .12em;--slot-height: 90px}@media(prefers-color-scheme:dark){:root{--ink: #d9d2c2;--ink-soft: #a29a87;--ink-faint: #6f6857;--ground: #191712;--ground-raised: #221f18;--edge: #3b3627;--accent: #c76a4e;--accent-soft: #7a4737;--warn: #c76a4e;--zhupi: #cf6a4c;--zhupi-soft: #8a4a36}}.meters{display:flex;gap:calc(var(--step) * 1.5);flex-wrap:wrap;font-family:var(--font-ui);font-size:.85rem;color:var(--ink-soft);letter-spacing:var(--label-spacing)}.meter.streak{color:var(--accent)}.unit{margin-block:calc(var(--step) * 2)}.unit-title{font-family:var(--font-prose);font-size:1rem;font-weight:var(--heading-weight);color:var(--ink-soft);border-block-end:1px solid var(--edge);padding-block-end:calc(var(--step) * .5);margin-block-end:var(--step)}.lesson-row{display:flex;align-items:baseline;gap:var(--step);inline-size:100%;padding:calc(var(--step) * .9) var(--step);margin-block-end:calc(var(--step) * .5);background:var(--ground-raised);border:1px solid var(--edge);border-radius:var(--radius);font-family:var(--font-prose);font-size:var(--prose-size);color:var(--ink);text-align:start;cursor:pointer}.lesson-row.locked,.lesson-row.gated{opacity:.45;cursor:default}.lesson-row.done .lesson-title{color:var(--ink-soft)}.lesson-row[data-kind=test]{border-inline-start:3px solid var(--zhupi)}.lesson-kind{font-family:var(--font-ui);font-size:.72rem;letter-spacing:var(--label-spacing);color:var(--ink-faint);min-inline-size:3.2em}.lesson-title{flex:1}.lesson-status{font-family:var(--font-ui);font-size:.78rem;color:var(--zhupi)}.mend-note{color:var(--accent)}.lesson-header{display:flex;align-items:center;gap:var(--step);margin-block-end:var(--step)}.lesson-header .leave{margin-inline-end:auto}.lesson-progress{font-family:var(--font-ui);font-size:.85rem;color:var(--ink-soft)}.hearts{display:inline-flex;gap:.2em;color:var(--zhupi);font-size:.9rem}.heart.empty{color:var(--zhupi-soft)}.progress-track{block-size:3px;background:var(--edge);border-radius:var(--radius);margin-block-end:calc(var(--step) * 2);overflow:hidden}.progress-fill{block-size:100%;background:var(--accent)}.intro{color:var(--ink-soft);border-inline-start:2px solid var(--edge);padding-inline-start:var(--step)}.prompt{font-family:var(--font-prose);font-size:var(--event-size);line-height:var(--prose-leading);color:var(--ink);margin-block:calc(var(--step) * 2)}.options{display:grid;gap:calc(var(--step) * .75)}.option{padding:calc(var(--step) * 1.1) var(--step);background:var(--ground-raised);border:1px solid var(--edge);border-radius:var(--radius);font-family:var(--font-prose);font-size:1.1rem;color:var(--ink);cursor:pointer;text-align:center}.option:hover{border-color:var(--accent-soft)}.option.spent{opacity:.35;cursor:default;text-decoration:line-through}.option.picked{border-color:var(--zhupi);outline:1px solid var(--zhupi)}.match-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--step)}.match-col{display:grid;gap:calc(var(--step) * .75);align-content:start}.order-placed{display:flex;gap:calc(var(--step) * .5);flex-wrap:wrap;min-block-size:2.4em;margin-block-end:var(--step);padding:calc(var(--step) * .5);border-block-end:1px dashed var(--edge)}.placed{font-family:var(--font-prose);font-size:1.15rem;color:var(--accent)}.explain-heading{font-family:var(--font-ui);font-size:.8rem;letter-spacing:var(--label-spacing);color:var(--zhupi);text-transform:uppercase;margin-block:calc(var(--step) * 2) var(--step)}.explain{border-inline-start:3px solid var(--zhupi);padding-inline-start:var(--step)}.actions.stacked{flex-direction:column;align-items:stretch}.ghost.disabled{opacity:.4;cursor:default}.exhibit{margin-block:calc(var(--step) * 1.5);padding:var(--step);background:var(--ground-raised);border:1px solid var(--edge);border-radius:var(--radius)}.exhibit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(var(--step) * .5)}.exhibit-col{display:flex;flex-direction:column;align-items:center;gap:calc(var(--step) * .35)}.exhibit-head{font-family:var(--font-ui);font-size:.7rem;letter-spacing:var(--label-spacing);color:var(--ink-faint)}.exhibit-cell{font-family:var(--font-prose);font-size:1.5rem;line-height:1.25;color:var(--ink)}.exhibit-cell.marked{color:var(--zhupi);border:1px solid var(--zhupi);border-radius:50%;inline-size:2em;block-size:2em;display:grid;place-items:center}.exhibit-caption{margin-block-start:var(--step);font-family:var(--font-ui);font-size:.72rem;color:var(--ink-faint);text-align:center}.slots{display:flex;gap:var(--step);justify-content:center;margin-block-end:calc(var(--step) * 1.5)}.slot{display:flex;flex-direction:column;align-items:center;gap:calc(var(--step) * .35);min-inline-size:3.5em}.slot-label{font-family:var(--font-ui);font-size:.7rem;letter-spacing:var(--label-spacing);color:var(--ink-faint)}.slot-value{font-family:var(--font-prose);font-size:1.6rem;color:var(--ink);border-block-end:1px solid var(--edge);min-inline-size:2em;text-align:center}.slot.active .slot-value{border-block-end-color:var(--zhupi)}.slot.filled .slot-value{color:var(--accent)}.palette{display:grid;grid-template-columns:repeat(5,1fr);gap:calc(var(--step) * .5)}.palette-item{padding:calc(var(--step) * .8) calc(var(--step) * .4);font-size:1.2rem}.chain-step{display:flex;justify-content:space-between;gap:var(--step);padding:calc(var(--step) * .5) 0;border-block-end:1px dashed var(--edge);font-family:var(--font-prose)}.chain-q{color:var(--ink-soft);font-size:.9rem}.chain-a{color:var(--accent)}.chain-now{font-family:var(--font-ui);font-size:.72rem;letter-spacing:var(--label-spacing);color:var(--ink-faint);margin-block:var(--step)}.option.struck{opacity:.3;text-decoration:line-through;cursor:default}.hint-row{margin-block-start:calc(var(--step) * 1.5);display:flex;justify-content:center}.hint-spent{text-align:center;margin-block-start:var(--step)}.sheet-row{display:flex;align-items:center;gap:var(--step);padding:var(--step);margin-block-end:calc(var(--step) * .5);background:var(--ground-raised);border:1px solid var(--edge);border-radius:var(--radius)}.sheet-row.owned{border-inline-start:3px solid var(--zhupi)}.sheet-text{flex:1;display:flex;flex-direction:column}.sheet-title{font-family:var(--font-prose);font-size:var(--prose-size);color:var(--ink)}.sheet-blurb{font-family:var(--font-ui);font-size:.78rem;color:var(--ink-faint)}.sheet-table{font-family:var(--font-prose);overflow-x:auto}.sheet-line{display:flex;gap:calc(var(--step) * .35);padding-block:calc(var(--step) * .3);border-block-end:1px solid var(--edge)}.sheet-cell{min-inline-size:2.4em;text-align:center;color:var(--ink);font-size:.95rem}.sheet-cell.head{color:var(--zhupi);font-family:var(--font-ui);font-size:.8rem;align-self:center}.sheet-shishen .sheet-cell{min-inline-size:3.2em;font-size:.8rem}.glyph-char{display:block;font-family:var(--font-prose);line-height:1.15}.glyph-roman{display:block;font-family:var(--font-ui);font-size:.66rem;letter-spacing:.04em;color:var(--ink-faint);margin-block-start:.15em}.exhibit-cell .glyph-char{font-size:1.5rem}.exhibit-cell.marked .glyph-roman{color:var(--zhupi-soft)}.palette-item .glyph-char{font-size:1.2rem}.lang-toggle{position:absolute;inset-block-start:var(--step);inset-inline-end:var(--step);padding:calc(var(--step) * .4) calc(var(--step) * .8);background:transparent;border:1px solid var(--edge);border-radius:var(--radius);font-family:var(--font-ui);font-size:.75rem;color:var(--ink-soft);cursor:pointer}.lang-toggle:hover{border-color:var(--accent-soft);color:var(--ink)}.boot-subtitle{font-family:var(--font-ui);font-size:.82rem;letter-spacing:var(--label-spacing);color:var(--ink-faint);margin-block:calc(var(--step) * -.5) calc(var(--step) * 1.5)}
