:root{--cream: #f3ecd9;--paper: #faf6ea;--ink: #3a2f26;--ink-soft: #6b5c4c;--ink-faint: #9a8b77;--persimmon: #c9573a;--ochre: #c18a2e;--ochre-deep: #8a6d2c;--olive: #6f7b4f;--hairline: rgba(58, 47, 38, .16);--board-hi: #e9c47f;--board-lo: #d1a058;--board-line: #74562f;--r: 2px;--serif: "EB Garamond", "Georgia", serif;--display: "IM Fell English", "Cormorant Garamond", "Georgia", serif;--display-sc: "IM Fell English SC", "IM Fell English", "Georgia", serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--chunky: "Darumadrop One", "IM Fell English", sans-serif;--script: "Caveat", cursive;--sunset: #e8683a;--magenta: #c33f7a;--pink: #f0b3d2;--apricot: #f0924e;--lilac: #9d8ed6;--aubergine: #3d3660;--packet-paper: #faf3e3;--stamp-shadow: rgba(58, 47, 38, .2);--washi: var(--cream);--washi-card: var(--paper);--gold: var(--ochre);--vermillion: var(--persimmon);--pine: var(--olive);--murasaki: var(--ink-soft);--murasaki-deep: var(--ink)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}:root[data-theme=dark]{--cream: #211a12;--paper: #2b2318;--ink: #ede4d1;--ink-soft: #c4b59d;--ink-faint: #8d7f6a;--persimmon: #e07a58;--ochre: #d4a852;--ochre-deep: #cfa14e;--olive: #a3b07a;--hairline: rgba(237, 228, 209, .15);--sunset: #ec7450;--stamp-shadow: rgba(0, 0, 0, .42)}body{font-family:var(--serif);font-size:18px;color:var(--ink);background-color:var(--cream);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0 0.18 0 0 0 0.04 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");line-height:1.7;-webkit-font-smoothing:antialiased}#root{min-height:100%;display:flex;flex-direction:column}h1,h2,h3,.serif{font-family:var(--display);font-weight:400;letter-spacing:.01em}::selection{background:#c9573a2e}button{font-family:inherit;cursor:pointer;color:inherit}a{color:var(--persimmon);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .35s ease;padding-bottom:1px}a:hover{background-size:100% 1px}.smallcaps{font-size:11.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:16px 26px;gap:16px;border-bottom:1px solid var(--hairline);background:var(--cream);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:baseline;gap:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.brand{gap:11px;align-items:center}.brand .brand-text{display:flex;flex-direction:column;gap:1px}.brand .name{font-family:var(--display-sc);font-size:24px;font-weight:400;letter-spacing:.08em;color:var(--ink);line-height:1}.brand .tag{font-size:8.5px;font-weight:600;letter-spacing:.33em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap}.header-nav{display:flex;gap:26px;margin-left:38px;flex:1}.nav-link{background:none;border:none;font-family:var(--serif);font-size:13px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);padding:3px 0;background-image:linear-gradient(var(--persimmon),var(--persimmon));background-repeat:no-repeat;background-position:50% 100%;background-size:0% 1.5px;transition:background-size .3s ease,color .2s ease}.nav-link:hover{color:var(--ink)}.nav-link.active{color:var(--persimmon);background-size:100% 1.5px}.header-actions{display:flex;gap:10px}.icon-btn{border:1px solid var(--hairline);background:none;color:var(--ink-soft);border-radius:var(--r);padding:7px 13px;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;transition:border-color .2s ease,color .2s ease}.icon-btn:hover{border-color:var(--ink-soft);color:var(--ink)}.icon-btn.active{border-color:var(--persimmon);color:var(--persimmon)}@media(max-width:720px){.app-header{flex-wrap:wrap;padding:10px 16px 9px;row-gap:2px}.brand .tag{letter-spacing:.22em}.header-nav{order:3;flex-basis:100%;margin-left:0;justify-content:space-between;gap:8px;padding-top:7px}.nav-link{font-size:11.5px;letter-spacing:.1em;white-space:nowrap}.header-actions{margin-left:auto}.icon-btn{padding:6px 10px;font-size:10px}.lesson-top{flex-wrap:wrap;align-items:flex-start;row-gap:8px}.lesson-top>div:first-child{flex-basis:100%}.lesson-top .crumb{font-size:12px;letter-spacing:.12em}.lesson-top .title{font-size:24px}.hero h1{font-size:40px}.sai-portrait-wrap{width:88px}.sai-figure{gap:12px}}.btn,.icon-btn,.why-btn,.train-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}.ic{width:15px;height:14px;display:block;flex-shrink:0}.btn{background:none;border:1px solid var(--hairline);border-radius:var(--r);padding:10px 20px;font-family:var(--serif);font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);transition:background-color .25s ease,border-color .2s ease,color .2s ease,opacity .15s}.btn-primary{font-family:var(--chunky);font-size:16.5px;font-weight:400;letter-spacing:.045em;text-transform:none;background:var(--sunset);color:#fff;border:none;border-radius:999px;padding:12px 27px 9px;box-shadow:0 4px 0 var(--stamp-shadow);transition:transform .15s ease,box-shadow .15s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--stamp-shadow)}.btn-primary:active{transform:translateY(1px);box-shadow:0 2px 0 var(--stamp-shadow)}.btn-ghost:hover{border-color:var(--ink-soft);color:var(--ink);background:#3a2f260a}.btn-asking{color:var(--persimmon);border-color:var(--persimmon);font-style:italic}.btn-danger{border-color:#c9573a73;color:var(--persimmon)}.btn-danger:hover{background:#c9573a12}.btn[disabled]{opacity:.4;pointer-events:none}.home{max-width:780px;width:100%;margin:0 auto;padding:clamp(12px,5vh,56px) 24px 80px}.hero{text-align:center;padding:52px 16px 40px}.hero h1{font-size:52px;font-weight:400}.hero p{color:var(--ink-soft);max-width:540px;margin:14px auto 0;font-size:18px;line-height:1.75}.hero .hero-cta{margin-top:26px}.hero .hero-tip{display:inline-block;margin-top:22px;background:none;border:none;font-family:var(--script);font-weight:500;font-size:21px;color:var(--persimmon);padding:0 0 2px;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .35s ease}.hero .hero-tip:hover{background-size:100% 1px}.hero .last-note{margin-top:16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--ink-faint)}.divider{display:flex;align-items:center;gap:16px;margin-top:48px}.divider:before,.divider:after{content:"";flex:1;border-top:1px solid var(--hairline)}.divider .ic{width:15px;height:15px;color:#c9573a8c}:root[data-theme=dark] .divider .ic{color:#e07a588c}.section-label{font-size:13px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--persimmon);margin-top:14px}.section-label+.chapter-list{margin-top:28px}.section-label+.play-card{border-top:none;margin-top:6px}.rank-card{display:flex;justify-content:center;text-align:center;margin-top:6px;padding:10px 6px 0}.rank-card .rank-stones{justify-content:center}.read-kinds{margin-bottom:14px}.lesson-side{display:flex;flex-direction:column;gap:16px}.read-choices{display:flex;flex-wrap:wrap;gap:10px}.read-tally{font-size:12.5px;color:var(--ink-soft);letter-spacing:.05em}.lesson-top-actions{display:flex;gap:8px;flex:none}.trial-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.trial-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1.5px solid var(--hairline);border-radius:3px;background:var(--paper);cursor:pointer;text-align:left;font:inherit;color:inherit;transition:transform .15s ease,border-color .15s ease}.trial-row:hover{transform:translate(3px);border-color:var(--vermillion)}.trial-seal{flex:none;width:40px;height:40px;display:grid;place-items:center;font-size:19px;border:2px solid var(--hairline);border-radius:50%;color:var(--ink-soft);transform:rotate(-6deg)}.trial-seal.held{border-color:var(--vermillion);color:var(--vermillion);background:color-mix(in srgb,var(--vermillion) 8%,transparent)}.trial-seal-big{width:72px;height:72px;font-size:34px;margin:6px auto 0}.trial-row-wrap{display:flex;align-items:center;gap:8px}.trial-row-wrap .trial-row{flex:1}.trial-remove{flex:none;font-size:17px;line-height:1}.trial-name{font-family:var(--serif);font-size:17px;flex:1}.trial-meta{font-size:12.5px;color:var(--ink-soft);letter-spacing:.04em}.import-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:2px 0 14px}.import-btn{position:relative;overflow:hidden;cursor:pointer;flex:none}.import-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.import-note{font-size:12.5px;line-height:1.4;color:var(--ink-soft);flex:1 1 180px}.grad-open{margin-top:10px}.grad-doors{display:flex;flex-direction:column;gap:10px;width:100%;max-width:460px;margin:4px auto 0}.grad-door{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border:1.5px solid var(--hairline);border-radius:3px;background:var(--paper);text-decoration:none;color:inherit;transition:transform .15s ease,border-color .15s ease}.grad-door:hover{transform:translate(3px);border-color:var(--vermillion)}.grad-door-name{font-family:var(--chunky);font-size:15px;letter-spacing:.04em;color:var(--vermillion)}.grad-door-note{font-size:13px;line-height:1.45;color:var(--ink-soft)}.rank-badge{display:flex;align-items:baseline;gap:4px;color:var(--ink);flex-shrink:0}.rank-badge .rank-num{font-size:34px;font-weight:500;line-height:1}.rank-badge .rank-kyu{font-size:16px;color:var(--ochre-deep)}.kyu-chip{display:inline-block;font-family:var(--chunky);font-size:17px;background:var(--packet-paper);color:var(--magenta);border-radius:8px;padding:8px 14px 5px;transform:rotate(-4deg);box-shadow:0 3px 0 var(--stamp-shadow);margin-bottom:10px}.rank-card.milestone .kyu-chip{color:var(--sunset)}.rank-meta .kyu-note{font-size:13px;color:var(--ink-faint);font-style:italic;margin-top:2px}.rank-meta h3{font-size:22px}.rank-meta p{font-size:15.5px;color:var(--ink-soft);margin-top:4px;line-height:1.7;max-width:460px}.rank-stones{display:flex;gap:6px;margin:9px 0 7px}.rank-stones i{width:7px;height:7px;border-radius:50%;border:1px solid var(--ink-faint)}.rank-stones i.earned{background:var(--ink);border-color:var(--ink)}.rank-stones i.milestone-stone{background:var(--persimmon);border-color:var(--persimmon)}.rank-card.milestone .rank-badge{color:var(--persimmon)}.chapter-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:32px 24px;margin-top:34px;padding:0 4px}.packet{position:relative;border:none;border-radius:10px;padding:14px 14px 0;text-align:center;box-shadow:0 5px 0 var(--stamp-shadow);transition:transform .2s ease,box-shadow .2s ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}.packet:nth-child(odd){transform:rotate(-.7deg)}.packet:nth-child(2n){transform:rotate(.5deg)}.packet:not(.locked):hover{transform:translateY(-4px) rotate(0);box-shadow:0 9px 0 var(--stamp-shadow)}.packet .frame{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:168px;border:2px solid currentColor;border-radius:6px;padding:14px 10px 12px}.packet .num{position:absolute;top:-12px;right:-9px;font-family:var(--chunky);font-size:16px;background:var(--apricot);color:#fff;border-radius:999px;padding:6px 12px 4px;box-shadow:0 3px 0 var(--stamp-shadow);transform:rotate(6deg)}.packet:nth-child(2n) .num{transform:rotate(-5deg)}.packet .motif{font-family:var(--serif);font-size:38px;line-height:1.2}.packet h3{font-family:var(--chunky);font-weight:400;font-size:24px;line-height:1.12;margin:8px 0 3px}.packet .cap{font-family:var(--script);font-weight:500;font-size:18.5px;line-height:1.25}.packet .progress-dots{justify-content:center;margin-top:11px}.packet .progress-dots .dot{width:7px;height:7px;border-color:currentColor;opacity:.4}.packet .progress-dots .dot.done{background:currentColor;border-color:currentColor;opacity:1}.packet .p-state{display:block;margin:12px -14px 0;padding:7px 0 5px;border-radius:0 0 10px 10px;font-size:11px;font-weight:600;letter-spacing:.28em;text-indent:.28em;text-transform:uppercase}.packet.pw-a{background-color:var(--packet-paper);color:var(--aubergine)}.packet.pw-a h3{color:var(--lilac);text-shadow:0 2px 0 rgba(61,54,96,.16)}.packet.pw-a .p-state{background:var(--aubergine);color:var(--packet-paper)}.packet.pw-b{background-color:var(--aubergine);color:var(--pink)}.packet.pw-b h3{color:var(--pink)}.packet.pw-b .cap{color:#cfc4ec}.packet.pw-b .p-state{background:var(--magenta);color:#fff}.packet.pw-c{background-color:var(--pink);color:var(--magenta)}.packet.pw-c h3{color:#fff;text-shadow:0 2px 0 var(--magenta)}.packet.pw-c .p-state{background:var(--sunset);color:#fff}.packet .p-state.quiet{background:none;color:currentColor;opacity:.7;border-top:2px dashed currentColor}.packet.locked,.packet.locked.pw-a,.packet.locked.pw-b,.packet.locked.pw-c{cursor:default;background-color:var(--packet-paper);color:var(--ink-faint);opacity:.72}.packet.locked h3,.packet.locked.pw-a h3,.packet.locked.pw-b h3,.packet.locked.pw-c h3{color:var(--ink-soft);text-shadow:none}.packet.locked .cap,.packet.locked.pw-b .cap{color:var(--ink-faint)}.packet.locked .num{background:var(--ink-faint)}.packet.current{z-index:1;transform:rotate(0) scale(1.04);box-shadow:0 12px 26px #3a2f2629}.packet.current .num{background:var(--sunset)}.chapter-leader{flex:1;border-bottom:1px dotted var(--ink-faint);transform:translateY(-4px);min-width:30px}.progress-dots{display:flex;gap:6px;align-self:center}.progress-dots .dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--ink-faint);background:none}.progress-dots .dot.done{background:var(--ink);border-color:var(--ink)}.play-card{display:flex;align-items:baseline;gap:18px;background:none;border:none;padding:17px 6px;width:100%;text-align:left}.room-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 34px;margin-top:8px}@media(max-width:720px){.room-grid{grid-template-columns:1fr}}.room-grid .play-card{align-items:flex-start;border:1px solid var(--hairline);border-radius:var(--r);padding:20px 18px;transition:border-color .2s ease,transform .2s ease}.room-grid .play-card:hover{border-color:var(--persimmon);transform:translateY(-2px)}.card-state{display:block;margin-top:9px;font-family:var(--mono);font-size:12px;color:var(--ink-faint)}.card-state.hot{color:var(--persimmon)}.play-card .card-go{margin-left:auto;align-self:center;color:var(--ink-faint);opacity:0;transform:translate(-4px);transition:opacity .2s ease,transform .2s ease}.play-card:not(.locked):hover .card-go{opacity:1;transform:translate(0);color:var(--persimmon)}.chapter-list+.play-card{border-top:1px solid var(--hairline);margin-top:20px;padding-top:28px}.play-card .fan{font-family:var(--serif);font-size:19px;color:var(--ink-faint);min-width:36px;flex-shrink:0}.mode-sticker{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;font-family:var(--serif);font-size:22px;color:#fff;box-shadow:0 3px 0 var(--stamp-shadow);transform:rotate(-5deg);flex-shrink:0;transition:transform .2s ease}.play-card:not(.locked):hover .mode-sticker{transform:rotate(0)}.mode-sticker.st-sunset{background:var(--sunset)}.mode-sticker.st-aubergine{background:var(--aubergine)}.mode-sticker.st-magenta{background:var(--magenta)}.mode-sticker.st-lilac{background:var(--lilac)}.play-card.locked .mode-sticker{filter:saturate(.2) opacity(.55)}.play-card .fan-icon .ic{width:19px;height:19px;transform:translateY(3px)}.play-card h3{font-size:24px;transition:color .2s ease}.play-card p{font-size:16px;color:var(--ink-soft);margin-top:4px;line-height:1.7}.play-card:not(.locked):hover h3{color:var(--persimmon)}.play-card.locked{cursor:default}.play-card.locked h3{color:var(--ink-faint);font-style:italic}.play-card.locked p{color:var(--ink-faint)}.game-list{display:flex;flex-direction:column;margin-top:6px}.game-row-wrap{display:flex;align-items:center;gap:8px}.game-row-wrap .game-row{flex:1}.game-remove{flex:none;font-size:17px;line-height:1}.game-remove.asking{font-size:13px;font-style:italic;color:var(--persimmon);white-space:nowrap}.game-row{display:flex;align-items:baseline;gap:14px;background:none;border:none;padding:13px 6px;width:100%;text-align:left}.game-row .g-date{font-family:var(--display);font-size:21px;white-space:nowrap;transition:color .2s ease}.game-row:hover .g-date{color:var(--persimmon)}.game-row .g-result{font-family:var(--script);font-size:18px;font-weight:600;letter-spacing:.01em}.game-row .g-result.won{color:var(--olive)}.game-row .g-result.lost{color:var(--persimmon)}.game-row .g-moves{font-family:var(--mono);font-size:12px;color:var(--ink-faint)}.library-empty{font-style:italic;color:var(--ink-faint);padding:14px 6px;font-size:16.5px}.footer-note{text-align:center;color:var(--ink-faint);font-family:var(--script);font-weight:500;font-size:19px;padding:30px 18px 26px;letter-spacing:.01em}.lesson{flex:1;display:flex;flex-direction:column;max-width:1080px;width:100%;margin:0 auto;padding:clamp(0px,4vh,44px) 20px 40px}.lesson-top{display:flex;align-items:center;justify-content:space-between;padding:14px 2px 16px;gap:12px}.lesson-top .title{font-size:28px}.lesson-top .crumb{color:var(--ink-soft);font-family:var(--serif);font-size:13.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;margin-bottom:2px}.crumb-motif{margin-right:9px;font-size:14px;letter-spacing:0}.crumb-motif.pw-a{color:var(--lilac)}.crumb-motif.pw-b{color:var(--magenta)}.crumb-motif.pw-c{color:var(--sunset)}.lesson-top .btn,.lesson-top .icon-btn{border:none;padding:4px 2px;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .35s ease,color .2s ease}.lesson-top .btn:hover,.lesson-top .icon-btn:hover{background-color:transparent;background-size:100% 1px;color:var(--ink)}.lesson-body{display:grid;grid-template-columns:minmax(300px,560px) minmax(300px,1fr);gap:30px;align-items:start}@media(max-width:860px){.lesson-body{grid-template-columns:1fr}}.board-wrap{position:relative;align-self:center;width:100%}.board-wrap svg{display:block;width:100%;height:auto}.goban:focus{outline:none}.goban:focus-visible{outline:3px solid var(--vermillion);outline-offset:5px;border-radius:8px}.task-banner{margin-top:10px;padding:0 6px;font-size:17px;font-style:italic;text-align:center;color:var(--ink)}.sai-panel{display:flex;flex-direction:column;gap:16px;position:sticky;top:74px}.sai-figure{display:flex;align-items:flex-start;gap:16px}.sai-portrait-wrap{width:116px;flex-shrink:0;display:block}.sai-portrait{width:100%;height:auto;animation:sai-breathe 7s ease-in-out infinite}@keyframes sai-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.brand-mark{width:26px;height:26px;object-fit:contain;align-self:center}.dialogue{padding:4px 0 10px;min-height:96px;flex:1;position:relative}.dialogue .speaker{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}.dialogue .speaker:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink)}.dialogue.tone-praise .speaker:before{background:var(--olive)}.dialogue.tone-warning .speaker:before{background:var(--persimmon)}.dialogue.tone-caution .speaker:before{background:var(--ochre)}.dialogue .text{font-size:19px;line-height:1.72;color:var(--ink);white-space:pre-wrap}.dialogue .text em{color:var(--persimmon);font-style:normal;font-weight:500}.lesson-controls{display:flex;flex-wrap:wrap;gap:10px}.principle-card{background:var(--paper);border:1px solid var(--hairline);border-radius:var(--r);padding:20px 22px}.principle-card .seal{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--persimmon);border:1.5px solid rgba(201,87,58,.65);border-radius:4px;padding:3px 10px 2px;transform:rotate(-2deg);margin-bottom:10px}.principle-card h3{font-size:23px;margin-bottom:6px}.principle-card p{font-size:16.5px;color:var(--ink-soft);line-height:1.75}.principle-card .deeper{margin-top:14px;padding-top:14px;border-top:1px solid var(--hairline)}.grade-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--chunky);font-size:15.5px;letter-spacing:.06em;color:#fff;border:none;border-radius:999px;padding:6px 16px 4px;box-shadow:0 3px 0 var(--stamp-shadow);transform:rotate(-3deg);animation:stamp-in .4s cubic-bezier(.2,1.3,.4,1) both}@keyframes stamp-in{0%{transform:rotate(-10deg) scale(1.9);opacity:0}to{transform:rotate(-3deg) scale(1);opacity:1}}.grade-best{background:#6f7b4f}.grade-good{background:#8d7c68}.grade-slack{background:#c18a2e}.grade-wrong{background:#e8683a}.game-side{display:flex;flex-direction:column;gap:16px}.transport{display:flex;align-items:center;gap:12px;margin-top:12px;padding:0 2px}.transport .t-btn{background:none;border:none;color:var(--ink-soft);padding:4px;display:inline-flex;transition:color .2s ease}.transport .t-btn:hover{color:var(--persimmon)}.transport .t-count{font-family:var(--mono);font-size:12.5px;color:var(--ink);min-width:58px;text-align:center;font-variant-numeric:tabular-nums}.transport .t-sgf{margin-left:auto;background:none;border:none;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--persimmon);padding:2px 0;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .35s ease}.transport .t-sgf:hover{background-size:100% 1px}.game-status{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--hairline);padding:10px 2px 0;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink-soft)}.game-status .caps{color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.14em}.commentary-log{display:flex;flex-direction:column;max-height:340px;overflow-y:auto;padding-right:6px;scrollbar-width:thin;scrollbar-color:var(--ink-faint) transparent}.commentary-log::-webkit-scrollbar,.ask-box-log::-webkit-scrollbar,.modal::-webkit-scrollbar{width:5px}.commentary-log::-webkit-scrollbar-thumb,.ask-box-log::-webkit-scrollbar-thumb,.modal::-webkit-scrollbar-thumb{background:var(--ink-faint);border-radius:3px}.commentary-log::-webkit-scrollbar-track,.ask-box-log::-webkit-scrollbar-track,.modal::-webkit-scrollbar-track{background:transparent}.commentary-log .entry{background:none;border:none;padding:12px 2px 6px;font-size:17px;line-height:1.72;color:var(--ink)}.commentary-log .entry:not(:last-child):after{content:"◆";display:block;text-align:center;font-size:7px;line-height:1;color:#c9573a66;margin-top:14px}.commentary-log .entry .who{display:flex;align-items:center;gap:8px;font-size:10.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:3px}.commentary-log .entry .who .mv-num{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:0;font-variant-numeric:tabular-nums;margin-right:1px}.commentary-log .entry .who:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink);flex-shrink:0}.commentary-log .entry.rank-rise .who{font-family:var(--chunky);font-size:13px;letter-spacing:.12em;color:#fff;background:var(--magenta);border-radius:999px;padding:5px 13px 3px;width:fit-content;box-shadow:0 3px 0 var(--stamp-shadow);transform:rotate(-2deg);animation:stamp-in .4s cubic-bezier(.2,1.3,.4,1) both;margin-bottom:8px}.commentary-log .entry.rank-rise .who:before{background:#fff}.commentary-log .entry.tone-praise .who:before{background:var(--olive)}.commentary-log .entry.tone-warning .who:before{background:var(--persimmon)}.commentary-log .entry.tone-caution .who:before{background:var(--ochre)}.commentary-log .entry.stone-black .who:before{background:var(--ink)}.commentary-log .entry.stone-white .who:before{background:var(--paper);border:1px solid var(--ink-soft);width:6px;height:6px}.score-timeline{width:100%;max-width:320px;display:block;margin-top:8px;cursor:pointer}.score-timeline .tl-label{font-family:var(--mono);font-size:11px;fill:var(--ink-soft)}.daily-card{display:flex;align-items:center;gap:16px;background:none;border:1.5px dashed var(--hairline);border-radius:12px;padding:14px 20px;margin:26px auto 0;width:fit-content;min-width:330px;text-align:left;transition:transform .2s ease,border-color .2s ease}.daily-card:hover{transform:translateY(-2px);border-color:var(--sunset)}.daily-card .daily-text h3{font-family:var(--chunky);font-weight:400;font-size:18px;line-height:1.1}.daily-card .daily-text .cap{font-family:var(--script);font-weight:500;font-size:17px;color:var(--ink-soft)}.daily-card .daily-done{font-family:var(--chunky);font-size:12px;letter-spacing:.06em;background:var(--olive);color:#fff;border-radius:999px;padding:5px 12px 3px;box-shadow:0 2px 0 var(--stamp-shadow);transform:rotate(-3deg);margin-left:8px}.onboard-center{max-width:620px;margin:clamp(28px,12vh,120px) auto 0}.onboard-center .sai-figure{margin-bottom:6px}.onboard-dots{margin-left:auto;align-self:center}.game-options{display:flex;flex-wrap:wrap;gap:34px;padding:4px 6px 18px;margin-bottom:4px;border-bottom:1px solid var(--hairline)}.option-group{display:flex;flex-direction:column;gap:7px}.option-label{font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}.option-note{font-family:var(--script);font-weight:500;font-size:16.5px;color:var(--ink-soft);max-width:320px}.scoring-hint{margin-top:12px;font-family:var(--script);font-weight:500;font-size:18px;color:var(--persimmon)}.game-status .clock{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-soft);margin-right:12px}.game-status .clock.low{color:var(--persimmon)}.modal-narrow{max-width:420px}.account-row{border-bottom:1px solid var(--hairline);margin-bottom:4px}.account-blurb{color:var(--ink-soft);font-size:16px;line-height:1.65;margin:6px 0 20px}.account-form{display:flex;flex-direction:column;gap:14px}.account-form label{display:flex;flex-direction:column;gap:5px}.account-form .field-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.account-form input{font-family:var(--serif);font-size:17px;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--r);background:var(--paper);color:var(--ink)}.account-form input:focus{outline:none;border-color:var(--persimmon)}.account-form .btn-primary{margin-top:4px;align-self:flex-start}.account-error{color:var(--persimmon);font-size:15px;font-style:italic}.account-switch{margin-top:16px;font-size:15px}.lang-switch{display:inline-flex;flex-wrap:wrap;gap:6px}.lang-opt{font-family:var(--chunky);font-size:13px;letter-spacing:.08em;background:none;border:1.5px solid var(--hairline);border-radius:999px;color:var(--ink-faint);padding:7px 14px 5px;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.lang-opt .times{font-family:var(--mono);font-size:10px;margin:0 2px}.lang-opt.active{background:var(--sunset);border-color:var(--sunset);color:#fff;box-shadow:0 2px 0 var(--stamp-shadow)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#3a2f2659;display:flex;align-items:center;justify-content:center;z-index:40;padding:20px}.modal{background:var(--paper);border:1px solid var(--hairline);border-radius:3px;box-shadow:0 16px 50px #3a2f2638;padding:26px 32px;max-width:780px;width:100%;max-height:92vh;overflow-y:auto}.settings-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:46px}.settings-advanced{margin-top:14px;border-top:1px solid var(--hairline);padding-top:12px}.settings-advanced summary{cursor:pointer;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);padding:4px 0}.settings-advanced summary:hover{color:var(--ink)}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding:14px 16px;border:1px dashed color-mix(in srgb,var(--persimmon) 55%,transparent);border-radius:var(--r)}.danger-zone .desc{color:var(--ink-faint);font-size:14.5px}@media(max-width:700px){.settings-grid{grid-template-columns:1fr}.modal{max-width:460px}}.modal h2{font-size:27px;margin-bottom:16px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--hairline);font-size:17px}.setting-row .desc{color:var(--ink-faint);font-size:14.5px}.setting-row input[type=text],.setting-row input[type=password]{font-family:var(--mono);font-size:12px;padding:8px 10px;border:1px solid var(--hairline);border-radius:var(--r);background:var(--paper);color:var(--ink);width:170px}.setting-row input[type=text]:focus{outline:none;border-color:var(--persimmon)}.toggle{position:relative;width:44px;height:24px;border-radius:999px;border:1px solid var(--hairline);background:none;transition:background .2s,border-color .2s;flex-shrink:0}.toggle:after{content:"";position:absolute;top:3px;left:4px;width:16px;height:16px;border-radius:50%;background:var(--ink-soft);transition:transform .2s,background .2s}.toggle.on{border-color:var(--persimmon)}.toggle.on:after{transform:translate(19px);background:var(--persimmon)}.drill-summary{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);gap:30px;align-items:start}@media(max-width:860px){.drill-summary{grid-template-columns:1fr}}.view-in,.lesson{animation:settle .45s ease both}@keyframes settle{0%{opacity:0}to{opacity:1}}@media(max-width:700px){.chapter-list{gap:26px 18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0s!important;transition-duration:1ms!important}}.why-btn{border:none;background:none;color:var(--persimmon);font-family:var(--serif);font-size:13.5px;font-style:italic;padding:0;margin-left:8px;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .35s ease}.why-btn:hover,.why-btn.active{background-size:100% 1px}.coord-chip{font-family:var(--mono);font-size:13.5px;color:var(--ink);background:none;border-radius:0;padding:0;cursor:pointer;text-decoration:underline dotted 1px var(--ink-faint);text-underline-offset:4px;font-variant-numeric:tabular-nums;transition:color .2s ease}.coord-chip:hover{color:var(--persimmon);text-decoration-color:var(--persimmon)}.who-coord{cursor:pointer}.why-text{margin-top:6px;color:var(--ink-soft);font-style:italic}.ask-sai{display:flex;gap:14px;margin-top:14px;padding:4px}.ask-box{margin-top:4px}.ask-box-log{max-height:240px}.ask-sai input{flex:1;border:1px solid rgba(201,87,58,.55);outline:1px solid rgba(201,87,58,.28);outline-offset:3px;border-radius:var(--r);padding:10px 14px;font-family:var(--serif);font-size:16px;background:var(--paper);color:var(--ink)}.ask-sai input::placeholder{color:var(--ink-faint);font-style:italic}.ask-sai input:focus{border-color:var(--persimmon);outline-color:#c9573a80}.ask-sai .btn{padding:9px 18px}.ask-cost,.entry-stat{display:block;margin-top:5px;font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);letter-spacing:.04em;font-variant-numeric:tabular-nums}.ask-para{display:block;margin-bottom:10px}.ask-para:last-child{margin-bottom:0}.sai-aside{display:block;font-style:italic;color:var(--ink-faint);font-size:16px;margin-bottom:10px}.variation-line{display:block;padding-left:16px;margin:4px 0}.variation-line .v-arrow{color:var(--persimmon);margin-right:6px;margin-left:-16px}.pondering{display:inline-flex;gap:5px;padding:6px 0 2px}.pondering i{width:5px;height:5px;border-radius:50%;background:var(--ink-faint);animation:ponder 1.15s ease-in-out infinite}.pondering i:nth-child(2){animation-delay:.18s}.pondering i:nth-child(3){animation-delay:.36s}@keyframes ponder{0%,to{opacity:.25}50%{opacity:.85}}.moment-strip{display:flex;gap:12px;margin:6px 0 12px}.moment-card{background:none;border:none;padding:0;width:118px;text-align:center;transition:transform .2s ease}.moment-card:hover{transform:translateY(-2px)}.moment-card svg{display:block;width:100%;height:auto}.moment-card .cap{display:block;margin-top:4px;font-family:var(--mono);font-size:10px;color:var(--ink-soft);letter-spacing:.06em}.moment-card .cap b{color:var(--persimmon);font-weight:600}.coach-counsel{display:flex;flex-direction:column}.coach-intro{padding-bottom:10px}.counsel-card{background:none;border:none;padding:12px 2px}.counsel-card+.counsel-card:before{content:"◆";display:block;text-align:center;font-size:7px;line-height:1;color:#c9573a66;margin-bottom:14px}.counsel-label{font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ochre-deep);margin-bottom:4px}.train-btn{border:none;background:none;color:var(--persimmon);font-family:var(--serif);font-size:14px;font-style:italic;padding:0;margin-top:8px;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .35s ease}.train-btn:hover{background-size:100% 1px}.habit-line{margin-top:2px;padding:10px 2px 2px;color:var(--ink-soft);font-style:italic;font-size:16px}.habit-line span{color:var(--persimmon);margin-right:4px}
