:root{--bg:#1c1f24;--panel:#262a31;--cell:#2e333b;--line:#343a43;--line-soft:#2a2e35;--line-strong:#4a515b;--nav:#16181c;--ink:#eceff3;--body:#c9cfd6;--muted:#8c95a1;--done:#a35bf0;--done-ink:#b98bff;--close:#2bd46a;--started:#f2c230;--started-ink:#f2c230;--on-started:#1c1f24;--none:#3a3f47;--bad:#f06a6a;--bad-soft:#3a2326;--ok-soft:#1c3527;--mark:#a35bf059;--shadow:#00000073;--font:"Orbit", "RIDIBatang", serif;--column:640px;--scenario-column:1200px;--nav-h:64px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f5f6f8;--panel:#fff;--cell:#eceef2;--line:#d5dae1;--line-soft:#e4e7ec;--line-strong:#b4bbc5;--nav:#fff;--ink:#16191d;--body:#3b424c;--muted:#646d79;--done:#8b45e6;--done-ink:#7330d0;--close:#13843f;--started:#e3a600;--started-ink:#8a5d00;--on-started:#1c1f24;--none:#cfd4db;--bad:#c53030;--bad-soft:#fdecec;--ok-soft:#e3f4e9;--mark:#8b45e633;--shadow:#00000024;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@font-face{font-family:RIDIBatang;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/RIDIBatang-Cy46-wZ-.woff2)format("woff2")}@font-face{font-family:Orbit;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/orbit-latin-400-normal-ZX1xDiMu.woff2)format("woff2");unicode-range:U+24-25,U+2B,U+2D-3A}*{box-sizing:border-box;font-synthesis:none}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);word-break:keep-all;overflow-wrap:anywhere;-webkit-text-size-adjust:100%;font-size:16px;line-height:1.65}a{color:var(--ink)}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--started);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:14px}.label{color:var(--muted);font-size:13px}h1{letter-spacing:-.01em;margin:4px 0 6px;font-size:28px;font-weight:400;line-height:1.3}h2{color:var(--muted);margin:28px 0 8px;font-size:15px;font-weight:400;line-height:1.4}h3{margin:20px 0 6px;font-size:18px;font-weight:400}p{margin:0 0 12px}.page{max-width:var(--column);padding:20px 20px calc(var(--nav-h) + 40px + env(safe-area-inset-bottom));margin:0 auto}.nav{height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--nav);border-top:1px solid var(--line);z-index:10;justify-content:center;display:flex;position:fixed;inset:auto 0 0}.nav-inner{width:100%;max-width:var(--column);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.nav a{color:var(--muted);place-items:center;font-size:15px;text-decoration:none;display:grid}.nav a.active{color:var(--ink);box-shadow:inset 0 3px 0 var(--done)}.btn{border:1px solid var(--line-strong);min-height:46px;color:var(--ink);cursor:pointer;background:0 0;border-radius:0;justify-content:center;align-items:center;padding:0 16px;font-size:15px;text-decoration:none;display:inline-flex}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn:disabled{opacity:.45;cursor:progress}.btn-row{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.btn-row.fill>*{flex:1}.field{border:1px solid var(--line);background:var(--panel);width:100%;color:var(--ink);border-radius:0;padding:12px 14px}textarea.field{resize:vertical;min-height:160px;line-height:1.6}.notice{margin:12px 0;padding:12px 14px;font-size:15px}.notice.error{background:var(--bad-soft);color:var(--bad)}.notice.info{background:var(--panel);color:var(--body)}.top-row{justify-content:space-between;align-items:flex-end;display:flex}.lap{align-items:baseline;gap:8px;display:flex}.lap .tag{color:var(--muted);font-size:15px}.lap .big{font-size:44px;line-height:1}.lap .of{color:var(--muted);font-size:20px}.grad{text-align:right}.grad .big{color:var(--done-ink);font-size:22px}.pit{background:var(--started);color:var(--on-started);justify-content:space-between;align-items:center;gap:12px;margin:18px 0 0;padding:12px 14px;display:flex}.pit .tag{letter-spacing:.04em;font-size:20px}.pit .btn{border-color:var(--on-started);background:var(--on-started);color:var(--started);min-height:40px}.sectors{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:16px;display:grid}.sector{background:var(--cell);border-top:3px solid var(--none);padding:8px 10px}.sector .name{color:var(--muted);font-size:12px}.sector .value{font-size:22px}.sector .target{color:var(--muted);font-size:13px}.sector.done{border-top-color:var(--done)}.sector.close{border-top-color:var(--close)}.sector.started{border-top-color:var(--started)}.bars{flex:none;gap:3px;display:inline-flex}.bars span{background:var(--none);width:18px;height:10px}.bars .done{background:var(--done)}.bars .close{background:var(--close)}.bars .started{background:var(--started)}.legend{color:var(--body);flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.legend i{width:12px;height:8px;display:inline-block}.tower-head{color:var(--muted);border-bottom:1px solid var(--line);padding:18px 0 6px;font-size:12px;display:flex}.tower-head .pos{width:34px}.tower-head .title{flex:1}.tower{margin:0;padding:0;list-style:none}.tower li{border-bottom:1px solid var(--line-soft)}.tower a{color:var(--ink);align-items:center;gap:8px;padding:11px 0;text-decoration:none;display:flex}.tower .pos{width:26px;color:var(--muted);flex:none}.tower .name{flex:1;font-size:15px;line-height:1.4}.tower .flag{color:var(--started-ink);font-size:12px}.tower .resume{color:var(--muted);margin-left:6px;font-size:12px}.tower li.graduated .pos{color:var(--done-ink)}.tower li.not_started .name{color:var(--muted)}.tower li.next{background:var(--panel);box-shadow:inset 3px 0 0 var(--started);margin:0 -20px;padding:0 20px}.tower li.next .pos{color:var(--started-ink)}.crumb{color:var(--muted);font-size:14px}.crumb a{color:var(--muted)}.tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin:22px 0 16px;display:grid}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:12px 2px;font-size:15px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--done)}.objectives{color:var(--body);margin:8px 0 0;padding-left:20px}.objectives li{margin-bottom:4px}details summary{cursor:pointer;color:var(--muted);font-size:14px}.prose{color:var(--body);font-size:16.5px;line-height:1.8}.prose h1,.prose h2,.prose h3{color:var(--ink)}.prose h1{font-size:24px}.prose h2{color:var(--ink);margin-top:32px;font-size:20px}.prose strong{color:var(--ink);background:linear-gradient(transparent 62%, var(--mark) 62%)}.prose a{color:var(--done-ink)}.prose pre{background:var(--panel);border-left:2px solid var(--line);padding:14px;font-size:14px;line-height:1.55;overflow-x:auto}.prose code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.88em}.prose :not(pre)>code{background:var(--cell);color:var(--ink);padding:1px 5px}.prose table{border-collapse:collapse;margin:12px 0;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:6px 10px}.prose th{color:var(--ink);background:var(--panel)}.prose blockquote{border-left:3px solid var(--started);color:var(--body);margin:12px 0;padding:4px 14px}.quiz-count{color:var(--muted);font-size:13px}.quiz-q{white-space:pre-wrap;margin:6px 0 14px;font-size:19px;line-height:1.55}.options{gap:6px;display:grid}.option{text-align:left;border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:pre-wrap;border-radius:0;padding:13px 14px;line-height:1.5}.option:disabled{cursor:default}.option.correct{border-color:var(--close);background:var(--ok-soft)}.option.wrong{border-color:var(--bad);background:var(--bad-soft)}.verdict{background:var(--panel);color:var(--body);border-top:3px solid var(--none);margin-top:12px;padding:12px 14px}.verdict.ok{border-top-color:var(--close)}.verdict.no{border-top-color:var(--bad)}.verdict strong{color:var(--ink);margin-bottom:4px;font-size:17px;font-weight:400;display:block}.chat{flex-direction:column;gap:16px;margin:16px 0;display:flex}.msg-user{background:var(--cell);white-space:pre-wrap;border-right:3px solid var(--done);align-self:flex-end;max-width:85%;padding:10px 14px}.msg-assistant{align-self:stretch}.composer{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));background:var(--bg);align-items:flex-end;gap:8px;padding:10px 0;display:flex;position:sticky}.composer textarea{min-height:48px;max-height:160px}.composer-actions{flex-direction:column;flex:none;gap:4px;display:flex}.composer-actions .btn{white-space:nowrap;min-width:76px}.small-btn{border-color:var(--line);min-height:30px;color:var(--muted);padding:0 10px;font-size:13px}.chatbox.compact{flex-direction:column;flex:1;min-height:0;display:flex}.chatbox.compact .chat-scroll{overscroll-behavior:contain;flex:1;padding:0 16px;overflow-y:auto}.chatbox.compact .chat{margin:12px 0}.chatbox.compact .composer{border-top:1px solid var(--line);background:var(--panel);padding:10px 16px;position:static}.chatbox.compact .prose{font-size:15.5px}.tutor-fab{right:16px;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px);z-index:20;background:var(--done-ink);min-height:48px;color:var(--nav);cursor:pointer;box-shadow:0 6px 20px var(--shadow);border:none;align-items:center;gap:8px;padding:0 18px;font-size:15px;display:inline-flex;position:fixed}.tutor-panel{left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));z-index:30;background:var(--panel);border-top:3px solid var(--done);height:62dvh;box-shadow:0 -10px 30px var(--shadow);flex-direction:column;display:flex;position:fixed}.tutor-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.tutor-panel-head .btn{min-height:36px}.tutor-panel-title{font-size:16px}.shell.panel-open .page{padding-bottom:calc(62vh + var(--nav-h) + 24px)}@media (width>=1024px){.tutor-panel{border-top:none;border-left:3px solid var(--done);width:420px;height:auto;box-shadow:-10px 0 30px var(--shadow);top:0;left:auto}.shell.panel-open{padding-right:420px}.shell.panel-open .page{padding-bottom:calc(var(--nav-h) + 40px)}}.situation{background:var(--panel);white-space:pre-wrap;color:var(--body);padding:16px;line-height:1.7}.page:has(.scenario-wide){max-width:var(--scenario-column)}.scenario-wide{container-type:inline-size}@container (width>=900px){.scenario-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:32px;display:grid}.scenario-left{max-height:calc(100dvh - var(--nav-h) - 72px);position:sticky;top:16px;overflow-y:auto}.scenario-right>h2:first-child{margin-top:0}.scenario-right textarea.field{min-height:260px}}.score-list{margin:8px 0;padding:0;list-style:none}.score-list li{border-bottom:1px solid var(--line-soft);padding:10px 0}.score-list .score{float:right}.total{font-size:44px;line-height:1.1}.total .of{color:var(--muted);font-size:20px}.stat-line{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.stat-line .v{color:var(--ink)}.meter{background:var(--cell);height:4px;margin:6px 0 16px}.meter>span{background:var(--ink);height:100%;display:block}.meter.warn>span{background:var(--started)}.login{max-width:360px;margin:16vh auto 0;padding:0 20px}.login .lap{margin-bottom:6px}.login form{gap:12px;margin-top:24px;display:grid}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.tabs.three{grid-template-columns:repeat(3,minmax(0,1fr))}.group-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:20px 0 8px;display:flex}.group-head .title{color:var(--ink);flex:1;font-size:15px}.group-head .btn{min-height:36px}.note-list{margin:0;padding:0;list-style:none}.note-list>li{border-bottom:1px solid var(--line-soft)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);color:var(--body);white-space:nowrap;flex:none;padding:2px 8px;font-size:12px;line-height:1.6;display:inline-block}.chip.ok{border-color:var(--done);color:var(--done-ink)}.chip.bad{border-color:var(--started);color:var(--started-ink)}.chip.muted-chip{color:var(--muted)}.wrong-row{padding:14px 0}.wrong-q{color:var(--ink);margin:8px 0;line-height:1.6}.answer-lines{margin:10px 0;padding:0;list-style:none}.answer-lines li{background:var(--panel);color:var(--body);gap:10px;margin-bottom:4px;padding:8px 10px;display:flex}.answer-lines .mark{width:34px;color:var(--muted);flex:none;padding-top:2px;font-size:12px}.answer-lines li.is-answer{box-shadow:inset 3px 0 0 var(--close);color:var(--ink)}.answer-lines li.is-answer .mark{color:var(--close)}.answer-lines li.is-mine{box-shadow:inset 3px 0 0 var(--bad)}.answer-lines li.is-mine .mark{color:var(--bad)}.explain{color:var(--body);margin:8px 0;line-height:1.7}.retry-box{background:var(--panel);margin:14px 0;padding:14px 16px}.retry-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.retry-box .option{background:var(--cell)}.tower .name .sub{color:var(--muted);margin-top:2px;font-size:12px;display:block}.session-row{color:var(--ink);padding:12px 0;text-decoration:none;display:block}.session-row .q{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.session-row .meta{color:var(--muted);margin-top:4px;font-size:12px;display:block}.note-meta{color:var(--muted);margin:6px 0 4px;font-size:13px}textarea.field.note-editor{min-height:60dvh;font-size:15px}.versions{margin-top:24px}.version-row{width:100%;color:var(--body);text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;gap:12px;padding:10px 0;font-size:14px;display:flex}.version-row .num:last-child{margin-left:auto}.version-row.current{color:var(--ink);box-shadow:inset 3px 0 0 var(--done);padding-left:10px}.fold{border-bottom:1px solid var(--line)}.fold-head{background:var(--panel);width:100%;box-shadow:inset 3px 0 0 var(--done);color:var(--ink);text-align:left;cursor:pointer;font:inherit;border:none;align-items:center;gap:10px;margin-top:10px;padding:16px 12px 16px 14px;display:flex}.fold-head.free{box-shadow:inset 3px 0 0 var(--muted)}.fold-head .title{flex:1;font-size:17px;line-height:1.35}.fold-head .count{color:var(--done-ink);font-size:15px}.fold-head.free .count{color:var(--body)}.fold-head .last{color:var(--muted);white-space:nowrap;font-size:12px}.fold-head .chev{color:var(--muted);font-size:13px;transition:transform .15s}.fold-head[aria-expanded=true] .chev{color:var(--ink);transform:rotate(90deg)}.fold-body{padding-left:14px}.sources{background:var(--cell);margin-top:10px;padding:10px 12px;font-size:14px}.sources ul{margin:6px 0 0;padding:0;list-style:none}.sources li{gap:8px;padding:4px 0;line-height:1.5;display:flex}.sources .n{color:var(--done-ink);flex:none}.sources a{color:var(--ink)}.sources .where{color:var(--muted);font-size:12px;display:block}.offline{z-index:30;background:var(--bad-soft);color:var(--bad);justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;font-size:14px;line-height:1.5;display:flex;position:sticky;top:0}.offline .btn{flex:none;min-height:36px}.ops-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:16px;display:grid}.ops-cards .value{font-size:20px}.ops-bars{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-items:end;gap:3px;height:120px;display:grid}.ops-bar{text-align:center;flex-direction:column;justify-content:flex-end;height:100%;display:flex}.ops-bar span{background:var(--done);min-height:1px;display:block}.ops-bar small{color:var(--muted);margin-top:4px;font-size:10px}.ops-table{border-collapse:collapse;width:100%;font-size:13px}.ops-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 4px;font-weight:400}.ops-table td{border-bottom:1px solid var(--line-soft);color:var(--body);padding:7px 4px}.ops-table .warn{color:var(--started-ink)}.ops-link{margin-top:4px;font-size:13px;display:inline-block}.theme-pick{align-items:center;gap:12px;margin-top:20px;display:flex}.segmented{border:1px solid var(--line-strong);display:inline-flex}.segmented button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 12px;font-size:14px}.segmented button+button{border-left:1px solid var(--line-strong)}.segmented button[aria-checked=true]{background:var(--ink);color:var(--bg)}
