:root{--paper: #f3e6cc;--sheet: #fbf6ea;--ink: #1b2836;--ink-soft: #44566a;--cinnabar: #c3362b;--deep: #8e241c;--line: rgba(27, 40, 54, .14);--serif: "Songti SC", "STSong", "Noto Serif SC", serif;--sans: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", sans-serif;color:var(--ink);font-family:var(--sans);background:var(--paper);line-height:1.65}*{box-sizing:border-box}html{overflow-x:clip}body{margin:0;min-height:100vh;overflow-x:clip;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}button,input,a{font:inherit}input,textarea,select{font-size:16px}h1,h2,.brand strong,.stamp,.node strong{font-family:var(--serif);font-weight:600;letter-spacing:.02em}h1{font-size:clamp(2.1rem,4vw,3.4rem);line-height:1.15;margin:.2rem 0 .8rem}.home-question-only h1{font-size:1.5rem;line-height:1.25;margin:0 0 .45rem}a{color:inherit}:focus-visible{outline:2px solid var(--cinnabar);outline-offset:3px}.topbar{container:topbar / inline-size;display:flex;flex-wrap:nowrap;align-items:center;column-gap:.6rem;row-gap:0;max-width:100%;padding:.35rem .7rem;margin-bottom:.55rem;border-bottom:1px solid var(--line);background:#fbf6ea8c}.topbar-primary,.topbar-secondary{display:flex;flex-wrap:nowrap;align-items:center;max-width:100%}.topbar-primary{flex:0 0 auto;gap:.5rem;min-width:max-content}.topbar-secondary{flex:1 1 auto;justify-content:flex-start;gap:.25rem;margin-left:auto;min-width:0}.topbar-primary>*,.topbar-secondary>*{flex-shrink:0}.brand{display:flex;align-items:center;min-height:44px;text-decoration:none;white-space:nowrap}.brand strong{font-size:1.35rem;letter-spacing:.05em;line-height:1}.brand strong:after{content:"";display:block;width:1.6rem;height:2px;margin-top:.28rem;background:var(--cinnabar)}.brand small,.eyebrow,.quiet,.anchor,.timer,.node em,.module-mark small{color:var(--ink-soft)}.brand small,.brand strong{display:block}.stamp{display:grid;place-items:center;width:52px;height:52px;border:3px solid var(--cinnabar);color:var(--cinnabar);border-radius:4px;transform:rotate(-8deg);box-shadow:inset 0 0 0 1px var(--cinnabar);font-family:var(--serif)}.nav{display:flex;align-items:center;max-width:100%;min-width:0;flex-wrap:nowrap}.nav-subjects,.nav-tools{display:flex;align-items:center;max-width:100%;flex-wrap:nowrap}.nav-subjects{flex:0 0 auto;gap:0}.nav-tools{flex:0 0 auto;gap:.1rem;padding-left:.65rem;border-left:1px solid var(--line)}.nav a{text-decoration:none}.nav-subjects a{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;margin-left:-1px;border:1px solid var(--ink);background:var(--sheet);line-height:1}.nav-subjects a:first-child{margin-left:0}.nav-subjects a[aria-current=page]{background:var(--cinnabar);color:#fff8f2;border-color:var(--deep);box-shadow:none}.nav-tools a{display:inline-flex;align-items:center;flex:0 0 auto;min-height:44px;padding:0 .32rem;letter-spacing:.04em;white-space:nowrap}.nav-tools a[aria-current=page]{color:var(--cinnabar);box-shadow:inset 0 -2px 0 var(--cinnabar)}.topbar-manage{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:44px;min-height:44px;margin-left:.15rem;padding:0 .32rem;letter-spacing:.04em;white-space:nowrap;writing-mode:horizontal-tb;text-decoration:none}.topbar-manage[aria-current=page]{color:var(--cinnabar);box-shadow:inset 0 -2px 0 var(--cinnabar)}.ink-meta{margin:0 0 0 auto;display:flex;flex-wrap:nowrap;align-items:center;gap:.45rem;min-width:max-content;max-width:none;min-height:44px;font-size:.92rem;line-height:1;white-space:nowrap}.mastery-line{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:.15rem;max-width:none;white-space:nowrap}.mastery-line b{font-family:var(--serif);font-size:1.35rem;font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.ink-meta small{color:var(--ink-soft);font-size:.75rem}.account{display:flex;flex:0 0 auto;flex-wrap:nowrap;gap:.35rem .45rem;align-items:center;max-width:none;margin:0;min-height:44px}.account>span{white-space:nowrap}.account a{display:inline-flex;align-items:center;min-height:44px;padding:0 .4rem;color:var(--cinnabar);letter-spacing:.12em;text-decoration:none}.account a.account-login{color:#1d4e89;font-size:.92rem}.account input{width:9.2rem;min-width:0;min-height:44px;background:var(--sheet);border:1px solid var(--ink);color:var(--ink);padding:.32rem .5rem .26rem;letter-spacing:.04em}.account input::placeholder{color:var(--ink-soft);letter-spacing:.16em;font-size:.84rem}.account button{min-height:44px;background:transparent;border:0;color:var(--cinnabar);cursor:pointer;padding:0 .4rem;letter-spacing:.12em}.account-note{margin:0 0 .8rem;color:var(--ink-soft)}.sheet{width:min(1080px,calc(100% - 2.6rem));margin:0 auto 4rem;padding-left:.4rem}.home-play{display:grid;gap:1.75rem;padding-top:.4rem}.home-tools{display:flex;justify-content:flex-start}.home-question-only{max-width:720px}.mission,.score-slip,.lesson,.detail,.stack{background:var(--sheet);border:1px solid var(--line);box-shadow:0 18px 40px #5030140f;padding:1.4rem 1.5rem 1.6rem}.eyebrow{margin:0;letter-spacing:.18em;font-size:.78rem}.lead,.story{font-size:1.08rem}.story{margin:.4rem 0 1rem;padding:.9rem 1rem .9rem 1.1rem;background:#c3362b0d;border-left:3px solid var(--cinnabar)}.story-label{margin:0;color:var(--cinnabar);letter-spacing:.16em;font-size:.78rem}.idea{font-size:1.25rem}.anchor{font-size:.92rem}.actions{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:0;padding:.75rem 1.3rem;text-decoration:none;border:1px solid transparent;cursor:pointer}.btn.primary{background:var(--cinnabar);color:#fff8f2;border-color:var(--deep)}.btn.ghost{background:transparent;border-color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.budget{font-family:var(--serif);font-size:4rem;line-height:.9;margin:.4rem 0}.budget small{font-size:1.1rem;margin-left:.3rem}.targets{list-style:none;padding:0;margin:1rem 0 0}.targets li{margin:.85rem 0}.target-line,.lesson-top{display:flex;justify-content:space-between;gap:1rem;align-items:end}.target-line a{text-decoration:none}.target-line em{margin-left:.35rem;color:var(--cinnabar);font-style:normal}.target-line input{width:4.2rem;border:none;border-bottom:1px solid var(--ink);background:transparent;text-align:right}.meter{height:5px;background:#1b283614;margin:.3rem 0}.meter span{display:block;height:100%;background:var(--ink)}.trail{list-style:none;padding:0;margin:.35rem 0 0}.module{display:grid;min-width:0;grid-template-columns:minmax(196px,228px) minmax(0,1fr);gap:1rem 1.5rem;align-items:center;margin:0;padding:1.15rem 0;border-bottom:1px solid var(--line)}.module-mark{display:grid;align-content:center;min-height:44px;padding:.85rem .95rem;background:var(--sheet);border:1px solid var(--ink);box-shadow:inset 4px 0 0 var(--cinnabar)}.module-score{display:flex;align-items:baseline;gap:.5rem;margin:0}.module-mark b{font-family:var(--serif);font-size:2.35rem;font-variant-numeric:tabular-nums;color:var(--cinnabar);line-height:.85}.module-mark span{font-family:var(--serif);font-size:1.2rem;letter-spacing:.06em;line-height:1.25}.module-mark small{display:block;font-size:.82rem;line-height:1.55;text-wrap:pretty}.nodes{display:flex;flex-flow:row wrap;align-items:flex-start;gap:1.15rem 1.05rem;position:relative;width:100%;min-width:0;padding:.15rem 0 .15rem 1.35rem}.nodes:before{content:"";position:absolute;left:.15rem;top:.4rem;bottom:.4rem;border-left:1px solid rgba(27,40,54,.28)}.node-unit{display:grid;justify-items:center;align-content:start;gap:.4rem;flex:none;width:calc(var(--w) * 1px);max-width:min(100%,calc(var(--w) / var(--max) * 100%));text-decoration:none;color:inherit;background:transparent;border:0;padding:0;cursor:pointer}.node,.node.hollow{container-type:inline-size;display:grid;place-items:center;aspect-ratio:1;width:100%;text-align:center;border-radius:50%;border:1.5px solid var(--ink);background:var(--sheet);margin:0;padding:0;overflow:hidden;line-height:1;box-shadow:inset 0 0 0 1px #1b283629}.node-unit:hover .node{border-color:var(--cinnabar);box-shadow:inset 0 0 0 1px #c3362b8c}.node-face{display:grid;place-items:center;width:80%}.node em{display:flex;align-items:baseline;justify-content:center;gap:.2em;max-width:100%;font-family:var(--serif);font-style:normal;font-size:34cqi;line-height:1;letter-spacing:0;white-space:nowrap;color:var(--ink)}.node-star{font-size:.55em}.node-name{font-family:var(--sans);font-size:1rem;line-height:1.3;text-align:center;text-wrap:balance}.node.sealed{background:var(--cinnabar);color:#fff8f2;border-color:var(--deep);box-shadow:inset 0 0 0 1px #fff8f266}.node.sealed em{color:#fff8f2}.node.hollow{background:transparent;color:var(--ink-soft);border-style:dashed;box-shadow:none;cursor:pointer}.detail{margin-top:1rem}.phases{display:flex;flex-flow:row nowrap;align-items:center;gap:1.15rem;list-style:none;margin:.15rem 0 .85rem;padding:0}.phases>li{display:flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:max-content;min-height:44px;white-space:nowrap;writing-mode:horizontal-tb}.phases .now{color:var(--cinnabar);box-shadow:inset 0 -2px 0 var(--cinnabar)}.steps{padding-left:1.2rem}.example{white-space:pre-wrap;background:#1b28360a;padding:.8rem 1rem}.question{border:0;margin:0 0 1rem;padding:0;min-inline-size:0;width:100%;max-width:100%}.practice-stack .question{margin:0}.stem{font-size:1.35rem;line-height:1.45;margin:.35rem 0 .9rem}.home-question{margin:.8rem 0 1rem;padding:.9rem 1rem .2rem;background:#fff;border:1px solid var(--ink)}.preview-choices{padding-left:1.2rem}.question-pane{display:flex;flex-direction:column;align-items:stretch;gap:.85rem;min-width:0}.practice-stack{display:flex;flex-direction:column;align-items:stretch;gap:1.15rem;min-width:0}.write-box{display:flex;flex-direction:column;align-items:stretch;gap:.45rem;margin:0;min-width:0}.write-box textarea{width:100%;min-height:4.5rem;border:1px solid var(--ink);background:#fff;padding:.6rem .7rem;resize:vertical}.diff-row{display:flex;gap:.45rem;margin:.2rem 0 .35rem}.diff{min-height:44px;border-radius:0;border:1px solid var(--ink);background:#fff;padding:.4rem .9rem;cursor:pointer}.diff.is-on{background:var(--cinnabar);color:#fff8f2;border-color:var(--deep)}.lesson-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,22rem);gap:1.25rem;align-items:start}.teach-panel{border:1px dashed var(--line);padding:.8rem;background:#ffffff59;min-width:0}.teach-body{margin-top:.8rem}.phase-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:transparent;border:0;padding:0 .2rem;cursor:pointer;color:inherit;white-space:nowrap;writing-mode:horizontal-tb;line-height:1}.diagram{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}.diagram li{border-left:3px solid var(--cinnabar);padding:.2rem .55rem;background:#c3362b0f}.choices{display:grid;gap:.55rem}.choice{display:flex;gap:.8rem;align-items:center;min-height:44px;text-align:left;padding:.75rem .9rem;background:transparent;border:1px solid var(--line);cursor:pointer}.choice em{margin-left:auto;font-style:normal;font-size:1.15rem}.choice span{color:var(--cinnabar)}.choice.is-picked{background:var(--ink);color:#fff8f2;border-color:var(--ink)}.choice.is-picked span,.choice.is-picked em{color:#fff8f2}.choice.is-right{background:#1f6b4a;color:#f4fff8;border:2px solid #14573b}.choice.is-right span,.choice.is-right em{color:#f4fff8}.choice.is-wrong{background:var(--cinnabar);color:#fff8f2;border:2px solid var(--deep)}.choice.is-wrong span,.choice.is-wrong em{color:#fff8f2}.after-answer{display:grid;gap:.65rem;margin-top:.85rem}.after-answer:empty{display:none}.next-step{margin:0;color:var(--ink);font-size:1.08rem;line-height:1.5}.verdict{margin:0;font-family:var(--serif);font-size:2rem;line-height:1}.verdict.is-right{color:#1f6b4a}.verdict.is-wrong{color:var(--cinnabar)}.fx-layer{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:30}.fx-bit{position:absolute;top:-8%;animation-name:fx-fall;animation-timing-function:linear;animation-fill-mode:forwards}.fx-confetti{width:8px;height:14px;background:var(--cinnabar)}.fx-confetti:nth-child(3n){background:#d4a017}.fx-confetti:nth-child(3n+1){background:#1f6b4a}.fx-petals{width:12px;height:16px;border-radius:70% 10%;background:#e25b73}.fx-petals:nth-child(2n){background:#f0c36a}.fx-sparks{width:6px;height:6px;border-radius:50%;background:#f4d35e;box-shadow:0 0 8px #f4d35e}.fx-snow{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #1b283626}.fx-leaves{width:10px;height:14px;border-radius:0 80%;background:#8d9a62}.fx-drizzle{width:2px;height:16px;background:#44566a8c}@keyframes fx-fall{to{transform:translateY(110vh) rotate(var(--spin, 180deg));opacity:.2}}@media(prefers-reduced-motion:reduce){.fx-layer{display:none}}.explain{margin:0;background:#fff;padding:.7rem .8rem}.flip{width:min(420px,100%);height:230px;border:0;background:transparent;padding:0;perspective:800px;cursor:pointer}.flip-inner{position:relative;display:block;width:100%;height:100%;transition:transform .55s;transform-style:preserve-3d}.flip.is-back .flip-inner{transform:rotateY(180deg)}.face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;gap:.5rem;padding:1.2rem;backface-visibility:hidden;background:var(--sheet);border:1px solid var(--ink)}.face.back{transform:rotateY(180deg);white-space:pre-wrap}.face strong{font-family:var(--serif);font-size:1.5rem}.result{text-align:left}.stamp{width:92px;height:92px;font-size:1.6rem;animation:stamp .45s ease-out}.card-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}.memory{background:var(--sheet);border:1px solid var(--line)}.memory.due{border-color:var(--cinnabar)}.memory button{width:100%;text-align:left;background:transparent;border:0;padding:.9rem;cursor:pointer}.memory strong,.memory small,.memory em{display:block}.text-btn{display:inline-flex;align-items:center;min-height:44px;background:transparent;border:0;color:var(--cinnabar);cursor:pointer;padding:0 .9rem}.manage-toggles{display:flex;flex-wrap:wrap;gap:.55rem;margin:.2rem 0 1rem}.manage-toggles .btn[aria-expanded=true]{border-color:var(--cinnabar);color:var(--cinnabar)}.user-scroll{overflow-x:auto;max-width:100%}.user-table{width:max-content;min-width:100%;border-collapse:collapse;margin-top:1rem}.user-table th,.user-table td{padding:.55rem .4rem;border-bottom:1px solid var(--line);text-align:left;font-variant-numeric:tabular-nums}.user-table th.num,.user-table td.num{text-align:right;white-space:nowrap}.user-table th.ops,.user-table td.user-ops{white-space:nowrap;text-align:left}.user-table input{min-height:44px;border:1px solid var(--ink);background:#fff;padding:0 .5rem;width:min(100%,12rem)}.user-identity{display:flex;align-items:center;gap:.55rem;min-height:44px}.user-identity b{font-family:var(--sans);font-weight:600}.row-actions{display:flex;flex-wrap:wrap;gap:.35rem}.actions input{min-height:44px;border:1px solid var(--ink);background:#fff;padding:0 .5rem}.sheet-form{display:grid;gap:.85rem;width:min(100%,28rem);margin:.4rem 0 1.4rem}.field{display:grid;gap:.35rem}.field span,.avatar-pick legend{letter-spacing:.08em}.sheet-form input{width:100%;min-height:44px;border:1px solid var(--ink);background:#fff;padding:.4rem .65rem}.form-error{margin:0;color:var(--cinnabar)}.avatar-mark{width:44px;height:44px;flex:none;display:block}.account .avatar-mark{width:48px;height:48px}.avatar-pick{display:flex;flex-wrap:wrap;gap:.55rem;margin:0;padding:0;border:0;list-style:none}.avatar-pick legend{padding:0;margin-bottom:.35rem;width:100%}.avatar-pick button{display:grid;justify-items:center;gap:.15rem;min-width:44px;min-height:44px;padding:.35rem .45rem;border:1px solid var(--line);background:transparent;cursor:pointer}.avatar-pick button span{font-size:.78rem;letter-spacing:.06em}.avatar-pick button.is-on{border-color:var(--cinnabar);box-shadow:inset 0 0 0 1px var(--cinnabar)}.timer.overtime{color:var(--cinnabar)}.map-head{display:grid;gap:.55rem;margin:.15rem 0;padding-bottom:.95rem;border-bottom:1px solid var(--ink)}.map-head h1{margin:0;font-size:clamp(2.35rem,4vw,3.25rem);letter-spacing:.18em;line-height:1}.map-head h1:after{content:"";display:block;width:2.1rem;height:2px;margin-top:.55rem;background:var(--cinnabar)}.map-head .lead{max-width:46rem;margin:0;font-size:.96rem;line-height:1.75;color:var(--ink-soft);word-break:keep-all;line-break:strict;text-wrap:pretty}.sheet:has(.map-layout){width:min(1180px,calc(100% - 2.6rem));margin-inline:auto}.takeaway{font-weight:600}@keyframes stamp{0%{transform:scale(1.4) rotate(-18deg);opacity:0}to{transform:scale(1) rotate(-8deg);opacity:1}}@media(max-width:1179px){.topbar{flex-wrap:wrap;row-gap:0}.topbar-primary,.topbar-secondary{flex:1 0 100%;align-items:center;width:100%;min-width:0;margin-left:0;overflow-x:auto;scrollbar-width:none}.topbar-primary::-webkit-scrollbar,.topbar-secondary::-webkit-scrollbar{display:none}.nav-tools{padding-left:0;border-left:0}.ink-meta{margin-left:0}.topbar-manage{margin-left:auto}}@container topbar (max-width: 430px){.topbar-primary{gap:.2rem .35rem}.brand strong{font-size:1rem;letter-spacing:.02em}}@media(max-width:800px){.home-grid,.module,.lesson-split{grid-template-columns:1fr}.topbar{position:sticky;top:0;z-index:20;row-gap:0;padding:.2rem max(.4rem,env(safe-area-inset-right)) .2rem max(.4rem,env(safe-area-inset-left));padding-top:max(.35rem,env(safe-area-inset-top));margin-bottom:.4rem;background:var(--paper)}.topbar-primary,.topbar-secondary{flex-basis:100%;justify-content:flex-start;margin-left:0}.phases,.target-line,.lesson-top{flex-wrap:wrap}.nav-tools{padding-left:0;border-left:0}.ink-meta{margin-left:0}.topbar-manage{margin-left:auto}.actions,.diff-row,.home-tools{flex-direction:column;align-items:stretch}.question,.choices{width:100%}.choice{align-items:flex-start}.btn.primary,.diff{width:100%}.sheet,.sheet:has(.map-layout){width:min(100%,calc(100% - 1.4rem))}.budget{font-size:3rem}.user-scroll{overflow-x:visible}.user-table,.user-table tbody{display:block;width:100%;min-width:0}.user-table thead{display:none}.user-table tr{display:grid;gap:.35rem;margin:0 0 .75rem;padding:.85rem;border:1px solid var(--line);background:#fff}.user-table td{display:flex;justify-content:space-between;align-items:center;gap:.75rem;width:auto;border:0;padding:.15rem 0}.user-table td:before{content:attr(data-label);color:var(--ink-soft)}.user-table td:first-child{display:block}.user-table td:first-child:before{content:none}.user-table th.num,.user-table td.num{text-align:left}.user-table td.user-ops{margin-top:.45rem;padding-top:.55rem;border-top:1px solid var(--line)}.user-table input,.row-actions{width:100%}.row-actions .btn{min-height:44px}}.lesson .phases{flex-flow:row nowrap}@media(prefers-reduced-motion:reduce){.stamp,.flip-inner{animation:none;transition:none}}
