:root{--bg: #f6f5f1;--surface: #ffffff;--surface-2: #f1f0eb;--ink: #1c2230;--muted: #5d6576;--line: #e2e1db;--accent: #4a47d6;--accent-soft: #ecebfd;--accent-ink: #ffffff;--good: #15803d;--good-soft: #e7f6ec;--bad: #c2352b;--bad-soft: #fcebea;--warn: #b45309;--warn-soft: #fdf3e3;--star: #e2a300;--navy: #12266b;--c-sky-top: #e8f0fa;--c-sky-bottom: #f7f9fc;--c-ground: #cfc6b4;--c-ground-edge: #a89d86;--c-grid: rgba(28, 34, 48, .07);--c-body: #3a4256;--c-body-fill: #dfe3ec;--c-water: #bcd9f2;--c-trace: rgba(74, 71, 214, .9);--c-ghost: rgba(28, 34, 48, .18);--f-weight: #2563eb;--f-normal: #16a34a;--f-tension: #9333ea;--f-friction: #ea580c;--f-spring: #0d9488;--f-applied: #dc2626;--f-pseudo: #6b7280;--radius: 14px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Inter, Roboto, sans-serif;--mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #14161c;--surface: #1c1f27;--surface-2: #232733;--ink: #e8eaf0;--muted: #9aa2b4;--line: #2e3340;--accent: #8b88ff;--accent-soft: #2a2950;--accent-ink: #14161c;--good: #4ade80;--good-soft: #16301f;--bad: #f87171;--bad-soft: #3a1c1c;--warn: #fbbf24;--warn-soft: #3a2c12;--navy: #9db4ff;--c-sky-top: #1a2130;--c-sky-bottom: #1f2431;--c-ground: #4a4538;--c-ground-edge: #6b6350;--c-grid: rgba(232, 234, 240, .07);--c-body: #c9cfdb;--c-body-fill: #394052;--c-water: #23415e;--c-trace: rgba(139, 136, 255, .95);--c-ghost: rgba(232, 234, 240, .2);--f-weight: #60a5fa;--f-normal: #4ade80;--f-tension: #c084fc;--f-friction: #fb923c;--f-spring: #2dd4bf;--f-applied: #f87171;--f-pseudo: #9ca3af;color-scheme:dark}}:root[data-theme=dark]{--bg: #14161c;--surface: #1c1f27;--surface-2: #232733;--ink: #e8eaf0;--muted: #9aa2b4;--line: #2e3340;--accent: #8b88ff;--accent-soft: #2a2950;--accent-ink: #14161c;--good: #4ade80;--good-soft: #16301f;--bad: #f87171;--bad-soft: #3a1c1c;--warn: #fbbf24;--warn-soft: #3a2c12;--navy: #9db4ff;--c-sky-top: #1a2130;--c-sky-bottom: #1f2431;--c-ground: #4a4538;--c-ground-edge: #6b6350;--c-grid: rgba(232, 234, 240, .07);--c-body: #c9cfdb;--c-body-fill: #394052;--c-water: #23415e;--c-trace: rgba(139, 136, 255, .95);--c-ghost: rgba(232, 234, 240, .2);--f-weight: #60a5fa;--f-normal: #4ade80;--f-tension: #c084fc;--f-friction: #fb923c;--f-spring: #2dd4bf;--f-applied: #f87171;--f-pseudo: #9ca3af;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;padding-inline:16px;padding-block:0 40px;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font)}a{color:var(--accent)}h1,h2,h3{line-height:1.2;margin:0}p{margin:0}:root{--brand-ai: #f59e0b}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--brand-ai: #fbbf24}}:root[data-theme=dark]{--brand-ai: #fbbf24}.brand{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink);font-weight:800;font-size:18px;letter-spacing:-.025em;line-height:1;white-space:nowrap}.brand img{display:block;width:24px;height:24px}.brand .ai{color:var(--brand-ai)}.brand.big{gap:10px;font-size:28px}.brand.big img{width:40px;height:40px}.topbar .brand{padding-right:12px;margin-right:2px;border-right:1px solid var(--line)}.org{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap;text-decoration:none}.org .brand{font-size:17px}.org .brand img{width:22px;height:22px}.topbar .org .brand{padding-right:0;margin-right:0;border-right:0}.topbar .org{margin-left:auto}.topbar{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-block:16px 14px}.topbar .back{text-decoration:none;color:var(--muted);font-size:14px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.topbar .back:hover{color:var(--ink)}.topbar h1{font-size:20px;letter-spacing:-.01em}.share-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer;white-space:nowrap}.share-btn:hover{border-color:var(--ludo-blue)}.si svg{width:15px;height:15px;display:block;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}@media(max-width:600px){.topbar .share-btn{padding:6px 9px}.topbar .share-btn:not([data-said])>span:last-child{display:none}}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:3px 10px;border-radius:999px;white-space:nowrap}.chip.muted,.chip.basis-concept{color:var(--muted);background:var(--surface-2)}.chip.basis-profile{color:var(--warn);background:var(--warn-soft)}.chip.basis-both{color:var(--accent);background:var(--accent-soft)}.pattern-tags{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pattern-tags .lbl{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-right:2px}.pattern-tags .chip{white-space:normal}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.filter{font:inherit;font-size:13px;font-weight:600;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer}.filter[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.game{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}@media(max-width:920px){.game{grid-template-columns:minmax(0,1fr)}}.stage{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:relative}.stage canvas{display:block;width:100%;touch-action:none;user-select:none;-webkit-user-select:none}.stage-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface);font-size:13px;color:var(--muted)}.stage-bar .spacer{flex:1}.readout{font-family:var(--mono);font-size:13px;color:var(--ink);background:var(--surface-2);padding:3px 8px;border-radius:6px;white-space:nowrap}.panel{display:flex;flex-direction:column;gap:12px;min-width:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.card h2{font-size:15px;margin-bottom:8px}.card h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.mission{font-size:15px}.mission b{font-weight:650}.givens{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.givens span{font-family:var(--mono);font-size:12.5px;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:2px 7px}.levels{display:flex;flex-wrap:wrap;gap:6px}.level-btn{font:inherit;font-size:13px;min-width:44px;padding:5px 9px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;line-height:1.15}.level-btn .st{font-size:10px;color:var(--star);letter-spacing:1px;min-height:12px}.level-btn[aria-current=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:650}.controls{display:flex;flex-direction:column;gap:14px}.field{display:grid;gap:6px}.field .row{display:flex;align-items:center;gap:10px}.field label{font-size:13.5px;font-weight:600}.field .hint{font-size:12px;color:var(--muted)}.field input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.field input[type=number]{width:92px;font:inherit;font-family:var(--mono);font-size:14px;padding:5px 8px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.field .unit{font-size:13px;color:var(--muted);min-width:32px}.field.locked{opacity:.55}.field.locked input{pointer-events:none}.btns{display:flex;gap:8px;flex-wrap:wrap}.btn{font:inherit;font-size:14px;font-weight:600;padding:9px 16px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06)}.btn.small{font-size:12.5px;padding:5px 10px;border-radius:8px}.result{border-radius:12px;padding:12px 14px;border:1px solid var(--line);background:var(--surface-2);font-size:14px}.result[hidden]{display:none}.result .title{font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:8px}.result .title .st{color:var(--star);letter-spacing:2px}.result.good{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 35%,transparent)}.result.good .title{color:var(--good)}.result.bad{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}.result.bad .title{color:var(--bad)}.result.info{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.result.info .title{color:var(--accent)}.result .body p+p{margin-top:6px}.result .actions{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}.pyq-reveal{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.pyq-reveal .lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.pyq-src{font-size:12px;color:var(--muted);margin-bottom:8px}.pyq-prompt{margin:0 0 8px;color:var(--ink);line-height:1.45}.pyq-opts{list-style:none;margin:0 0 4px;padding:0;display:grid;gap:6px;counter-reset:opt}.pyq-opts li{counter-increment:opt;position:relative;padding:7px 10px 7px 34px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:13.5px;color:var(--ink)}.pyq-opts li:before{content:counter(opt,upper-alpha);position:absolute;left:12px;top:7px;font-weight:700;color:var(--muted)}.pyq-reveal.revealed .pyq-opts li.correct{border-color:color-mix(in srgb,var(--good) 45%,transparent);background:var(--good-soft);color:var(--good)}.pyq-reveal.revealed .pyq-opts li.correct:before{color:var(--good)}.pyq-ans{margin-top:8px}.pyq-ans summary{cursor:pointer;font-size:13px;font-weight:650;color:var(--accent)}.pyq-ans p{margin:8px 0 0;line-height:1.5;font-size:13.5px;color:var(--ink)}.pyq-ans .pyq-why{color:var(--muted)}body.result-open{overflow:hidden}.result-pop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:#0c0e1680;animation:fade-in .15s ease-out}.result-pop[hidden]{display:none}.result-pop>.result{width:min(460px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:18px 20px;font-size:15px;border-radius:16px;border-width:1px;box-shadow:0 24px 64px #00000059;animation:pop-in .16s cubic-bezier(.2,.9,.3,1.2)}.result-pop>.result .title{font-size:20px}.result-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.result-close{flex:none;width:30px;height:30px;margin:-6px -6px 0 0;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}.result-close:hover{background:#7f7f7f26;color:var(--ink)}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.formula{font-family:var(--mono);font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 9px;margin-top:6px;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere}.concept-card{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 22%,transparent)}.concept-card{position:relative}.concept-card>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}.concept-card>summary::-webkit-details-marker{display:none}.concept-card .concept-name{font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--navy)}.concept-toggle{flex:none;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);color:var(--accent);font-size:12.5px;font-weight:700}.concept-card>summary:hover .concept-toggle{background:var(--accent);color:#fff;border-color:var(--accent)}.concept-toggle .chev{font-size:13px;line-height:1;transition:transform .15s}.concept-card[open] .concept-toggle .chev{transform:rotate(180deg)}.concept-card[open] .concept-toggle .word{display:none}.concept-card[open]>summary{margin-bottom:10px}.concept-card .learn{background:none;border:0;padding:0}.concept-card .concept-foot{display:flex;justify-content:flex-end;margin-top:12px}.concept-card .formula{overflow-x:auto}body[data-gate] #mission+.card{display:none!important}body[data-gate] .stage canvas{pointer-events:none}body[data-gate=review] .levels{opacity:.45}.game>section{display:flex;flex-direction:column;gap:16px;min-width:0}details.theory summary{font-size:15px}details.theory p{font-size:14.5px}body.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:#0c0e1694;animation:fade-in .15s ease-out}.modal{width:min(620px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 64px #00000059}.modal-head{padding:16px 20px 6px}.modal-head h2{font-size:21px;letter-spacing:-.01em;margin-top:3px}.modal-body{padding:6px 20px 16px;overflow-y:auto}.modal-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 20px 16px;border-top:1px solid var(--line);background:var(--surface)}.modal-foot .btn{text-decoration:none}.theory-inline{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.theory-inline summary{cursor:pointer;font-weight:650;font-size:14px}.theory-body p{font-size:14px;margin-top:8px}@keyframes fade-in{0%{opacity:0}}.ack{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:650;cursor:pointer;user-select:none}.ack input{width:19px;height:19px;margin:0;accent-color:var(--accent);cursor:pointer;flex:none}.result .ack{margin-top:12px;padding:9px 11px;border-radius:9px;background:var(--surface);border:1px solid color-mix(in srgb,var(--ink) 14%,transparent)}.stepper{display:flex;gap:3px;margin-bottom:12px;padding:3px;border-radius:10px;background:var(--surface-2)}.stepper .step{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:12.5px;font-weight:600;padding:6px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.stepper .step .n{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:var(--line);color:var(--ink)}.stepper .step[aria-current=step]{background:var(--surface);color:var(--accent);box-shadow:0 1px 2px #0000001a}.stepper .step[aria-current=step] .n{background:var(--accent);color:var(--accent-ink)}.stepper .step:disabled{opacity:.4;cursor:default}.kicker,.review-sec .lbl,.recap .lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.learn-intro{color:var(--muted);font-size:13.5px;margin-bottom:10px}.learn-task{margin-bottom:12px;padding:12px 13px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}.learn-task>.lbl{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.learn-task-body{font-size:14.5px}.learn-task-body p+p{margin-top:6px}.learn{border-radius:10px;padding:12px 13px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}.learn .kicker{color:var(--accent)}.learn-title{font-size:17px;margin:3px 0 8px;letter-spacing:-.01em}.learn-idea{font-size:14.5px}.learn-idea p+p{margin-top:8px}.learn .formula{background:var(--surface)}.learn-block{margin-top:14px}.learn-block:first-child{margin-top:0}.learn-block>.lbl{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:5px}.learn-block .terms{margin:0 0 8px;padding-left:18px;font-size:14px}.learn-block .terms li{margin:3px 0}.learn-block .where{list-style:none;margin:8px 0 0;padding:0;font-size:13.5px;color:var(--muted)}.learn-block .where li{margin:2px 0}.learn-block .where b{color:var(--ink);font-weight:700}.mistakes-sheet .sheet>li{margin-top:14px}.mistakes-sheet .mistake-list{list-style:none;margin:6px 0 0;padding:0}.mistakes-sheet .mistake-list li{font-size:14px;padding:7px 11px;margin-top:6px;border-radius:8px;background:var(--surface);border-left:3px solid var(--bad)}.learn-block.mistakes ul{margin:0;padding:0;list-style:none}.learn-block.mistakes li{font-size:14px;padding:7px 11px;margin-top:6px;border-radius:8px;background:var(--surface);border-left:3px solid var(--bad)}.learn-block.mistakes li:first-child{margin-top:0}.trap{margin-top:10px;padding:8px 10px;border-radius:8px;background:var(--warn-soft);border-left:3px solid var(--warn);font-size:13.5px}.learn-go{margin-top:12px}.mission-head{display:block}.mission-head h3{min-width:0}.mission-card .mission-head h3,.answer-lbl{font-size:17px;font-weight:800;letter-spacing:-.01em;text-transform:none;color:var(--navy);margin-bottom:6px}.answer-lbl{margin-bottom:10px}.mission-card .mission b{white-space:nowrap}.linklike{border:0;padding:0;background:none;color:var(--accent);font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;white-space:nowrap}.linklike:hover{text-decoration:underline}.result .kicker{margin-bottom:4px}.review-sec{margin-top:10px;padding-top:9px;border-top:1px dashed color-mix(in srgb,var(--ink) 16%,transparent)}.review-sec .lbl{margin-bottom:3px}.review-sec.wrong .lbl{color:var(--bad)}.review-sec.takeaway .lbl{color:var(--good)}.review-sec .formula{margin-top:6px}.recap{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}.recap ol{margin:6px 0 8px;padding-left:0;list-style:none;display:grid;gap:5px}.recap li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13.5px}.recap .st{color:var(--star);letter-spacing:1px;min-width:42px}.recap .rc-name{font-weight:650}.recap .rc-idea{color:var(--muted);font-size:12.5px;flex-basis:100%;padding-left:50px;margin-top:-2px}.recap .rc-sum{font-size:13.5px;color:var(--muted);margin-bottom:10px}.recap .btn{display:inline-block;text-decoration:none}details.concept summary{cursor:pointer;font-weight:650;font-size:14px}details.concept[open] summary{margin-bottom:8px}details.concept p{font-size:14px;color:var(--ink)}details.concept p+p{margin-top:8px}.formula-sheet .sheet{margin:0;padding-left:22px}.formula-sheet .sheet li{margin-top:12px}.formula-sheet .sheet li:first-child{margin-top:0}.formula-sheet .sheet li::marker{color:var(--muted);font-weight:700}.formula-sheet .sheet-name{font-weight:700;font-size:14px;margin-bottom:5px}.formula-sheet .formula{margin-top:5px}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:5px}.kbd{font-family:var(--mono);font-size:11.5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:0 5px;background:var(--surface)}.hub{max-width:1240px;margin:0 auto}.hub-hero{padding-block:28px 8px}.hub-hero h1{font-size:clamp(26px,4vw,36px);letter-spacing:-.02em}.hub-hero p{color:var(--muted);max-width:680px;margin-top:8px;font-size:16px}.hub-total{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}.chapter{margin-top:30px}.chapter-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}.chapter-head h2{font-size:19px}.chapter-head .sub{color:var(--muted);font-size:13.5px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.game-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;transition:border-color .15s,transform .15s}.game-card:hover{border-color:var(--accent);transform:translateY(-1px)}.game-card .top{display:flex;align-items:center;gap:10px}.game-card .ico{width:40px;height:40px;flex:none;border-radius:11px;background:var(--accent-soft);display:grid;place-items:center;font-size:21px}.game-card h3{font-size:16px}.game-card .subtopic{font-size:12.5px;color:var(--muted)}.game-card p{font-size:14px;color:var(--muted);flex:1}.game-card .foot{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--muted)}.game-card .foot .st{color:var(--star);letter-spacing:1px}:root{--ludo-red: #e5383b;--ludo-green: #1aa35a;--ludo-yellow: #f6b90b;--ludo-blue: #2f6fe4;--ludo-red-ink: #c62828;--ludo-green-ink: #15803d;--ludo-yellow-ink: #a16207;--ludo-blue-ink: #1d4ed8;--ludo-red-soft: #fdeceb;--ludo-green-soft: #e5f5ec;--ludo-yellow-soft: #fef5d8;--ludo-blue-soft: #e8effd}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ludo-red-ink: #f87171;--ludo-green-ink: #4ade80;--ludo-yellow-ink: #fbbf24;--ludo-blue-ink: #7aa7ff;--ludo-red-soft: #3a1c1c;--ludo-green-soft: #16301f;--ludo-yellow-soft: #3a2f12;--ludo-blue-soft: #1a2747}}:root[data-theme=dark]{--ludo-red-ink: #f87171;--ludo-green-ink: #4ade80;--ludo-yellow-ink: #fbbf24;--ludo-blue-ink: #7aa7ff;--ludo-red-soft: #3a1c1c;--ludo-green-soft: #16301f;--ludo-yellow-soft: #3a2f12;--ludo-blue-soft: #1a2747}.ludo-logo{display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);line-height:1;white-space:nowrap}.ludo-logo img{display:block;width:32px;height:32px}.ludo-logo .stack{display:flex;flex-direction:column;gap:3px}.ludo-word{font-weight:900;font-size:22px;letter-spacing:.06em}.ludo-tag{font-size:10.5px;font-weight:650;letter-spacing:.02em;color:var(--muted)}.topbar .ludo-logo{padding-right:12px;margin-right:2px;border-right:1px solid var(--line)}.topbar .ludo-logo img{width:26px;height:26px}.topbar .ludo-word{font-size:18px}.modes{align-self:flex-start;display:inline-flex;gap:3px;padding:3px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.modes button{font:inherit;font-size:13.5px;font-weight:650;padding:7px 16px;border-radius:9px;border:0;background:transparent;color:var(--muted);cursor:pointer}.modes button:hover{color:var(--ink)}.modes button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000024}.task-bar{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--accent-soft);font-size:14px;font-weight:600}.task-bar.done{background:var(--good-soft)}.task-bar .lbl{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}.task-bar.done .lbl{color:var(--good)}.task-bar .grow{flex:1;min-width:180px}.task-bar .shots{font-size:12.5px;font-weight:600;color:var(--muted)}.warmup-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--good-soft);font-size:14px}.draw-note{margin-top:8px;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.draw-note .linklike{font-size:12px}.fix-note{margin-top:10px;padding:8px 10px;border-radius:8px;background:var(--surface);border:1px dashed color-mix(in srgb,var(--ink) 25%,transparent);font-size:13.5px;font-weight:650}.lab-note{font-size:13.5px;color:var(--muted);margin-bottom:10px}.lab-scenes{display:flex;flex-wrap:wrap;gap:6px}.lab-find{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.lab-find label{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.lab-find .n{font-size:12.5px;color:var(--muted)}.lab-find select{grid-column:1 / -1;width:100%;font:inherit;font-size:14px;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}.modal-foot>.btn{margin-right:auto}
