@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-vietnamese-wght-normal-RvljkFvg.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-ext-wght-normal-B6JQhE1e.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-wght-normal-ci0D1wrL.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #f7fafc;--sheet: #ffffff;--grid: #e3ebf2;--grid-strong: #cfdbe6;--ink: #1b2433;--ink-soft: #4a5668;--pencil: #7a8596;--rule: #d5dee8;--highlight: #ffe45c;--highlight-ink: #1b2433;--mark: #0f8a5f;--mark-soft: #e3f4ec;--wrong: #d4483f;--wrong-soft: #fbeae8;--coach: #eef2fb;--coach-ink: #24336b;--focus: #3a63d8;--shadow: 0 1px 0 rgba(27, 36, 51, .04), 0 8px 24px -12px rgba(27, 36, 51, .18);--display: "Bricolage Grotesque Variable", "Avenir Next", system-ui, sans-serif;--body: "Lexend Variable", "Verdana", system-ui, sans-serif;--r: 10px;--gutter: clamp(16px, 3vw, 32px);color-scheme:light}@media (prefers-color-scheme: dark){:root{--paper: #10151d;--sheet: #161c26;--grid: #1b2330;--grid-strong: #253041;--ink: #e7edf5;--ink-soft: #b3bfcf;--pencil: #8793a5;--rule: #2a3444;--highlight: #e9c93b;--highlight-ink: #10151d;--mark: #3cc48f;--mark-soft: #13301f;--wrong: #f07167;--wrong-soft: #3a1a18;--coach: #1b2338;--coach-ink: #c9d5ff;--focus: #8aa8ff;--shadow: 0 1px 0 rgba(0, 0, 0, .3), 0 8px 24px -12px rgba(0, 0, 0, .6);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background-color:var(--paper);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root{min-height:100dvh}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0}h1{font-size:clamp(34px,5vw,52px);font-variation-settings:"wdth" 90}h2{font-size:26px}h3{font-size:20px}.eyebrow{font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--pencil)}.muted{color:var(--ink-soft)}.small{font-size:15px}.tabnum{font-variant-numeric:tabular-nums}.page{max-width:1100px;margin:0 auto;padding:28px var(--gutter) 64px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}.topbar a{text-decoration:none}.brand{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.03em}.brand mark{background:var(--highlight);color:var(--highlight-ink);padding:0 4px;border-radius:3px}.stack>*+*{margin-top:16px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow);padding:clamp(18px,3vw,32px)}.sheet+.sheet{margin-top:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 20px;border-radius:999px;border:1.5px solid var(--ink);background:var(--sheet);color:var(--ink);font-family:var(--display);font-weight:650;font-size:17px;cursor:pointer;text-decoration:none;transition:transform .08s ease,background .15s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--ink);color:var(--paper)}.btn.big{min-height:60px;font-size:21px;padding:12px 30px}.btn.quiet{border-color:var(--rule);color:var(--ink-soft)}.btn.sure{background:var(--ink);color:var(--paper)}.btn.unsure{border-style:dashed}.linkbtn{background:none;border:none;padding:4px 0;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:16px}.field{width:100%;min-height:52px;padding:10px 14px;border-radius:8px;border:1.5px solid var(--grid-strong);background:var(--sheet);font-size:22px}.field:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 30%,transparent)}textarea.field{font-size:17px;line-height:1.5;min-height:160px}.session{max-width:1280px;margin:0 auto;padding:16px var(--gutter) 40px}.session-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}.progress{flex:1;display:flex;gap:4px;align-items:center}.progress .tick{flex:1;height:8px;border-radius:4px;background:var(--grid-strong)}.progress .tick.done{background:var(--ink)}.progress .tick.right{background:var(--mark)}.progress .tick.fixed{background:repeating-linear-gradient(90deg,var(--mark) 0 6px,var(--highlight) 6px 12px)}.progress .tick.wrong{background:var(--wrong)}.progress .tick.now{background:var(--highlight);outline:2px solid var(--ink);outline-offset:1px}.timer{font-family:var(--display);font-weight:700;font-size:22px;font-variant-numeric:tabular-nums}.timer.low{color:var(--wrong)}.workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:stretch}.workspace:not(.solo){min-height:min(74vh,720px)}.workspace>div:not(.pad){display:flex;flex-direction:column}.workspace>div:not(.pad)>.sheet{flex:1}@media (max-width: 900px){.workspace{grid-template-columns:minmax(0,1fr)}.workspace:not(.solo){min-height:0}.workspace>div:not(.pad)>.sheet{flex:none}}.q-meta{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:14px}.q-number{font-family:var(--display);font-weight:800;font-size:20px}.q-stage{font-size:14px;color:var(--pencil)}.q-stem{color:var(--ink-soft);margin-bottom:14px;white-space:pre-line}.q-prompt{font-size:clamp(21px,2.4vw,25px);line-height:1.55;white-space:pre-line}.q-prompt .w{border-radius:3px;cursor:pointer;padding:0 1px;transition:background .12s ease}.q-prompt.can-mark .w:hover{background:color-mix(in srgb,var(--highlight) 35%,transparent)}.q-prompt .w.hl{background:var(--highlight);color:var(--highlight-ink);box-shadow:0 0 0 2px var(--highlight)}.hl-tip{font-size:15px;color:var(--pencil);margin-top:10px;display:flex;align-items:center;gap:8px}.hl-tip .swatch{display:inline-block;width:22px;height:12px;border-radius:2px;background:var(--highlight)}.frac{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;font-size:.82em;line-height:1.05;margin:0 2px}.frac .n{border-bottom:1.5px solid currentColor;padding:0 3px}.frac .d{padding:0 3px}.mixed{display:inline-flex;align-items:center;gap:1px}.blank-box{display:inline-block;width:1.3em;height:1.2em;border:1.5px solid currentColor;vertical-align:-.2em;border-radius:2px}.diagram{margin:18px 0;color:var(--ink)}.diagram svg{display:block;height:auto}.diagram-row{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.diagram-row svg{width:auto;max-width:220px}.qtable{border-collapse:collapse;margin:16px 0;font-variant-numeric:tabular-nums}.qtable-wrap{overflow-x:auto}.qtable th,.qtable td{border:1px solid var(--rule);padding:6px 12px;text-align:left;font-size:17px}.qtable th{background:var(--paper);font-family:var(--display);font-weight:650}.column-sum{display:inline-grid;gap:0;margin:16px 0;font-size:28px;font-variant-numeric:tabular-nums;font-family:var(--body)}.column-sum .cell{width:1.2em;text-align:center}.column-sum .line{grid-column:1 / -1;border-top:2px solid var(--ink);margin:4px 0}.answer-line{margin-top:24px;padding-top:18px;border-top:1.5px dashed var(--rule)}.answer-label{font-family:var(--display);font-weight:650;margin-bottom:8px;display:block}.answer-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.answer-row .field{max-width:280px}.unit{font-size:22px}.fraction-input{display:inline-flex;align-items:center;gap:10px}.fraction-input .stackf{display:inline-flex;flex-direction:column;gap:4px;align-items:center}.fraction-input .stackf .bar{width:100%;height:2px;background:var(--ink)}.fraction-input .field{width:90px;text-align:center}.tuple-rows{display:grid;gap:8px}.tuple-row{display:flex;gap:8px;align-items:center}.tuple-row .field{width:72px;text-align:center;font-size:20px;min-height:46px}.choices{display:grid;gap:10px;margin-top:8px}.choice{display:flex;align-items:center;gap:14px;text-align:left;width:100%;min-height:56px;padding:10px 14px;border-radius:10px;cursor:pointer;border:1.5px solid var(--rule);background:var(--sheet);font-size:21px}.choice .letter{font-family:var(--display);font-weight:800;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--ink);flex:none;font-size:17px}.choice[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.choice[aria-pressed=true] .letter{background:var(--ink);color:var(--paper)}.choice.crossed{opacity:.45;text-decoration:line-through;cursor:not-allowed}.choice.is-right{border-color:var(--mark);background:var(--mark-soft)}.submit-row{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.submit-row .label{font-size:15px;color:var(--pencil);width:100%}.feedback{margin-top:18px;padding:14px 16px;border-radius:10px;display:flex;gap:14px;align-items:flex-start}.feedback.retry{background:color-mix(in srgb,var(--highlight) 28%,var(--sheet))}.feedback.right{background:var(--mark-soft)}.feedback.wrong{background:var(--paper);border:1px solid var(--rule);align-items:center}.feedback .markglyph{flex:none;width:44px;height:44px}.markglyph path{fill:none;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:120;stroke-dashoffset:120;animation:draw .45s ease-out forwards}.markglyph.tick path{stroke:var(--mark)}.markglyph.cross path{stroke:var(--wrong)}@keyframes draw{to{stroke-dashoffset:0}}.solution{margin-top:16px;border-left:3px solid var(--mark);padding:4px 0 4px 16px}.solution ol{margin:6px 0 0;padding-left:22px}.solution li{margin:3px 0}.pad{position:relative}.pad .coach{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0}.pad .coach-log{max-height:none;min-height:0}.pad-tools{display:flex;gap:8px;margin-top:10px;align-items:center;flex-wrap:wrap}.tool{min-height:40px;padding:6px 14px;border-radius:999px;border:1.5px solid var(--rule);background:var(--sheet);cursor:pointer;font-size:15px}.tool[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--paper)}@media (max-width: 900px){.pad .coach{position:static;min-height:min(62vh,560px)}.pad .coach-log{max-height:52vh}}.coach{background:var(--coach);border-radius:var(--r);border:1px solid color-mix(in srgb,var(--coach-ink) 18%,transparent);padding:16px;display:flex;flex-direction:column;gap:12px;min-height:320px}.coach-head{display:flex;align-items:center;gap:10px;color:var(--coach-ink);font-family:var(--display);font-weight:700}.coach-dot{width:28px;height:28px;border-radius:50%;background:var(--coach-ink);color:var(--coach);display:grid;place-items:center;font-size:15px;font-weight:800}.rudy-face{flex:none;color:var(--coach-ink)}.rudy-face-bg{fill:var(--coach);stroke:var(--coach-ink);stroke-width:1.5}.rudy-hair{fill:var(--coach-ink)}.rudy-face.pleased .rudy-face-bg{fill:var(--mark-soft)}.rudy-row{display:flex;gap:16px;align-items:flex-start}.rudy-says{flex:1;min-width:0}.rudy-text{margin:4px 0 0;font-size:19px;line-height:1.55;max-width:720px;white-space:pre-line}.rudy-text.big{font-size:22px}.coach-log{display:flex;flex-direction:column;gap:10px;max-height:52vh;overflow-y:auto;padding-right:4px;flex:1}.bubble{max-width:92%;padding:10px 14px;border-radius:14px;font-size:18px;line-height:1.45;white-space:pre-wrap}.bubble.assistant{background:var(--sheet);color:var(--ink);border-top-left-radius:4px;align-self:flex-start}.bubble.user{background:var(--coach-ink);color:var(--coach);border-top-right-radius:4px;align-self:flex-end}.thinking{display:inline-flex;gap:4px}.thinking span{width:7px;height:7px;border-radius:50%;background:var(--pencil);animation:bob 1s infinite ease-in-out}.thinking span:nth-child(2){animation-delay:.15s}.thinking span:nth-child(3){animation-delay:.3s}@keyframes bob{0%,80%,to{transform:translateY(0);opacity:.5}40%{transform:translateY(-4px);opacity:1}}.coach-input{display:flex;gap:8px}.coach-input .field{font-size:18px;min-height:48px}.hero{margin-bottom:24px}.today{margin-bottom:20px}.today .stack{max-width:760px}.home-note{display:flex;flex-direction:column;gap:12px}.home-note .row.small{gap:18px}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}@media (max-width: 700px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.tile{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:var(--r);background:var(--sheet);border:1px solid var(--rule);text-decoration:none;min-height:88px;justify-content:center;transition:border-color .15s ease}.tile:hover{border-color:var(--ink)}.tile b{font-family:var(--display);font-size:30px;line-height:1;letter-spacing:-.03em}.tile b small{font-size:16px;color:var(--ink-soft);letter-spacing:0}.tile span{font-size:14px;color:var(--ink-soft)}.tile-badge{display:inline-flex;align-items:center;gap:8px;font-size:20px!important}.home .today-actions{margin-top:20px;padding-top:18px}.row.actions{justify-content:flex-end;gap:14px}.home-log{max-height:40vh}.home-log .bubble.assistant{background:var(--coach)}.home-note .coach-input{max-width:640px}.today-actions{margin-top:22px;padding-top:20px;border-top:1.5px dashed var(--rule);display:flex;flex-direction:column;gap:14px}.ring{flex:none}.ring-track{fill:none;stroke:var(--grid-strong);stroke-width:6}.ring-fill{fill:none;stroke:var(--mark);stroke-width:6;stroke-linecap:round;transition:stroke-dasharray .4s ease}.ring-text{font-family:var(--display);font-weight:800;font-size:18px;fill:var(--ink)}.path-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.path{margin-top:18px;display:flex;flex-direction:column;gap:14px}.stage{border-top:1px solid var(--rule);padding-top:12px}.stage-name{display:flex;justify-content:space-between;font-family:var(--display);font-weight:650;margin-bottom:8px}.nodes{display:flex;flex-wrap:wrap;gap:8px}.node{display:inline-flex;align-items:center;gap:8px;padding:8px 12px 8px 10px;border-radius:999px;border:1.5px solid var(--rule);background:var(--sheet);cursor:pointer;font-size:15px;text-align:left}.node:hover{border-color:var(--ink)}.node.untried{border-style:dashed;color:var(--ink-soft)}.node.exam-ready{border-color:color-mix(in srgb,var(--highlight) 70%,var(--ink))}.node.focus{background:color-mix(in srgb,var(--highlight) 25%,var(--sheet));border-color:color-mix(in srgb,var(--highlight) 70%,var(--ink));border-style:solid;color:var(--ink)}.node-tag{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:999px;border:1px solid currentColor;opacity:.7}.focus-tag{background:var(--highlight);color:var(--highlight-ink);border-color:transparent;opacity:1}.meter{display:inline-flex;gap:2px}.meter i{width:6px;height:14px;border-radius:2px;background:var(--grid-strong)}.meter i.on{background:var(--ink)}.meter.gold i.on{background:color-mix(in srgb,var(--highlight) 75%,var(--ink))}.levelup{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:20;display:flex;gap:12px;align-items:center;padding:12px 18px;border-radius:999px;background:var(--sheet);border:1.5px solid var(--mark);box-shadow:var(--shadow);animation:pop .35s ease-out}.levelup strong{display:block;font-family:var(--display)}.levelup span{font-size:15px;color:var(--ink-soft)}@keyframes pop{0%{transform:translate(-50%,-12px);opacity:0}to{transform:translate(-50%);opacity:1}}.countdown{font-family:var(--display);font-weight:800;font-size:clamp(64px,11vw,120px);line-height:.9;letter-spacing:-.04em;font-variation-settings:"wdth" 80}.countdown small{display:block;font-size:18px;font-weight:600;letter-spacing:0;color:var(--ink-soft);margin-top:8px;font-variation-settings:normal}.days{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px;margin-top:12px}.day{aspect-ratio:1;border-radius:4px;border:1.5px solid var(--grid-strong);display:grid;place-items:center;background:var(--sheet)}.day.done{border-color:var(--mark)}.day.done svg path{stroke:var(--mark);stroke-width:5;fill:none;stroke-linecap:round;stroke-linejoin:round}.day.today{outline:2px solid var(--ink);outline-offset:1px}.report{width:100%;border-collapse:collapse}.report td{padding:9px 0;border-bottom:1px solid var(--rule);vertical-align:middle}.report td:last-child{width:45%}.bar{height:10px;border-radius:5px;background:var(--grid);overflow:hidden}.bar>i{display:block;height:100%;background:var(--ink);border-radius:5px}.bar.weak>i{background:var(--wrong)}.bar.ok>i{background:var(--ink-soft)}.bar.strong>i{background:var(--mark)}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:14px;border:1px solid var(--rule);background:var(--sheet);white-space:nowrap}.chip.knowledge{border-color:var(--wrong);color:var(--wrong)}.chip.careless,.chip.rushed,.chip.misread{border-color:color-mix(in srgb,var(--highlight) 70%,var(--ink));background:color-mix(in srgb,var(--highlight) 25%,var(--sheet))}.chip.right{border-color:var(--mark);color:var(--mark)}.topic-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.topic{text-align:left;padding:14px;border-radius:10px;border:1.5px solid var(--rule);background:var(--sheet);cursor:pointer}.topic:hover{border-color:var(--ink)}.mock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px}.mock-cell{min-height:48px;border-radius:8px;border:1.5px solid var(--rule);background:var(--sheet);font-family:var(--display);font-weight:700;cursor:pointer}.mock-cell.answered{background:var(--ink);color:var(--paper);border-color:var(--ink)}.mock-cell.current{outline:3px solid var(--highlight);outline-offset:1px}.mock-cell.right{background:var(--mark);border-color:var(--mark);color:#fff}.mock-cell.wrong{background:var(--wrong);border-color:var(--wrong);color:#fff}.stat-row{display:flex;flex-wrap:wrap;gap:28px}.stat b{display:block;font-family:var(--display);font-size:40px;line-height:1;letter-spacing:-.03em}.stat span{font-size:15px;color:var(--ink-soft)}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:15px}table.data th{text-align:left;font-family:var(--display);font-weight:650;color:var(--pencil);font-size:13px;letter-spacing:.04em;text-transform:uppercase;padding:8px 10px;border-bottom:1.5px solid var(--rule);white-space:nowrap}table.data td{padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:top}table.data tr.link{cursor:pointer}table.data tr.link:hover td{background:color-mix(in srgb,var(--grid) 60%,transparent)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.tab{padding:8px 16px;border-radius:999px;border:1.5px solid var(--rule);background:var(--sheet);cursor:pointer;font-family:var(--display);font-weight:600;font-size:15px}.tab[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.error-banner{background:var(--wrong-soft);color:var(--ink);padding:12px 16px;border-radius:10px;margin-bottom:16px}.center-screen{min-height:100dvh;display:grid;place-items:center;padding:var(--gutter)}.login{width:min(420px,100%)}.grid-2>.sheet,.workspace>.sheet{margin-top:0}.tuple-cell{display:inline-flex;flex-direction:column;gap:2px;align-items:center}.workspace.solo{grid-template-columns:minmax(0,1fr);max-width:820px}.coach-idle{color:var(--coach-ink);font-size:17px}.coach-idle p{margin:0 0 12px}.coach-idle .tool{background:var(--sheet);color:var(--ink);text-align:left}.greeting{font-size:clamp(44px,7vw,76px);letter-spacing:-.035em;font-variation-settings:"wdth" 85;margin-top:6px}.rosette{flex:none;color:var(--mark)}.rosette-bg{fill:var(--mark-soft);stroke:var(--mark);stroke-width:1.2}.rosette.muted{color:var(--pencil)}.rosette.muted .rosette-bg{fill:var(--paper);stroke:var(--grid-strong)}.badge-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.badge{display:flex;gap:12px;align-items:flex-start}.badge strong{display:block;font-family:var(--display)}.badge span{display:block}.badge.next strong{color:var(--ink-soft)}.climb{width:100%;height:auto;margin-top:12px;overflow:visible}.climb-goal{stroke:color-mix(in srgb,var(--highlight) 75%,var(--ink));stroke-width:1;stroke-dasharray:3 3}.climb-line{fill:none;stroke:var(--ink);stroke-width:1.5}.climb-dot{fill:var(--mark)}.climb-dot.first{fill:var(--pencil)}.climb-label{font-size:9px;font-family:var(--display);font-weight:700;fill:var(--ink)}.climb-axis{font-size:7px;fill:var(--pencil)}.trail{list-style:none;margin:20px 0 0;padding:0 0 0 4px;position:relative}.trail:before{content:"";position:absolute;left:18px;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--grid-strong)}.milestone{list-style:none;margin:0;padding:0 0 18px}.milestone-head{display:flex;align-items:center;gap:12px;margin-bottom:8px;position:relative}.milestone-head h3{font-size:18px}.milestone-dot{width:15px;height:15px;border-radius:50%;background:var(--ink);border:3px solid var(--paper);margin-left:8px;flex:none;box-shadow:0 0 0 2px var(--ink)}.stops{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.stop{display:flex;align-items:center;gap:12px;position:relative;padding:2px 0}.stop.right{padding-left:34px}.stop.right:before{content:"";position:absolute;left:19px;top:50%;width:22px;height:3px;background:var(--grid-strong);border-radius:2px}.stop-ring{flex:none;position:relative;z-index:1;background:var(--sheet);border-radius:50%;margin-left:2px}.stop.right .stop-ring{margin-left:0}.stop-track{fill:var(--sheet);stroke:var(--grid-strong);stroke-width:3}.stop-track.dashed{stroke-dasharray:3 3}.stop-fill{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round}.stop-ring.gold .stop-track{fill:color-mix(in srgb,var(--highlight) 45%,var(--sheet))}.stop-ring.gold .stop-fill{stroke:color-mix(in srgb,var(--highlight) 75%,var(--ink))}.stop-tick{fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.stop-name{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 12px;border-radius:10px;border:1.5px solid transparent;background:none;cursor:pointer;text-align:left;font-size:16px}.stop-name:hover{border-color:var(--ink);background:var(--sheet)}.stop.untried .stop-name>span:first-child{color:var(--ink-soft)}.stop-band{font-size:13px}.stop.focus .stop-name{background:color-mix(in srgb,var(--highlight) 25%,var(--sheet));border-color:color-mix(in srgb,var(--highlight) 70%,var(--ink))}.here{display:inline-flex;align-items:center;margin-left:4px;animation:bob-here 2.4s ease-in-out infinite}@keyframes bob-here{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (max-width: 600px){.stop.right{padding-left:0}.stop.right:before{display:none}}.page-foot{display:flex;justify-content:flex-end;margin:32px 0 0;font-size:15px}.page-foot a{color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px}
