:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html,body{height:100%;margin:0}[hidden]{display:none!important}:root{--bg:#f3f3fa;--surface:#fff;--surface-2:#ecedf8;--surface-3:#dfe0f2;--ink:#191b2e;--ink-dim:#4a4d74;--muted:#7a7ea8;--line:#d8d9ee;--line-strong:#b9bbe0;--green:#1fe07a;--green-dk:#0fa857;--blue:#2979ff;--blue-dk:#1450c4;--gold:#fc0;--gold-dk:#d89b00;--red:#ff1e3c;--red-dk:#c4001f;--violet:#9b30ff;--violet-dk:#6a15c4;--wrong:#8e2db0;--wrong-dk:#651f80;--sun1:#ff4d1c;--sun2:#ffb020;--sun3:#ff0855;--sky1:#00e0ff;--sky2:#2979ff;--ink-line:#15162b;--wood1:#3e4c74;--wood2:#232c49;--wood-line:#141a2e;--hanko:#e8102a;--font-num:Cambria,"Cambria Math",Caladea,Georgia,"Times New Roman",serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--bg:#0a0a16;--surface:#151327;--surface-2:#1e1b38;--surface-3:#282348;--ink:#f4f2ff;--ink-dim:#c7c5ee;--muted:#8a87c0;--line:#332e5c;--line-strong:#453f78;--ink-line:#000}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0a16;--surface:#151327;--surface-2:#1e1b38;--surface-3:#282348;--ink:#f4f2ff;--ink-dim:#c7c5ee;--muted:#8a87c0;--line:#332e5c;--line-strong:#453f78;--ink-line:#000}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{overflow-x:hidden}body{background:var(--bg);color:var(--ink);justify-content:center;min-height:100%;margin:0;font-family:Nunito,system-ui,-apple-system,sans-serif;display:flex;overflow-x:hidden}#app{background:repeating-linear-gradient(115deg, color-mix(in srgb, var(--sun1) 4%, transparent) 0 2px, transparent 2px 42px), var(--bg);flex-direction:column;width:100%;max-width:480px;min-height:100%;display:flex;position:relative}@media (min-width:520px){body{background:radial-gradient(60% 50% at 15% 10%, color-mix(in srgb, var(--sun1) 20%, transparent), transparent 60%), radial-gradient(55% 45% at 85% 85%, color-mix(in srgb, var(--sky1) 18%, transparent), transparent 60%), var(--bg);padding-block:24px}#app{min-height:calc(100vh - 48px);box-shadow:0 20px 50px -20px #14143280, 0 0 0 3px var(--ink-line);border-radius:28px;overflow:hidden}}@media (min-width:720px){#app{max-width:600px}}@media (min-width:1024px){body{background:var(--bg);padding-block:0}#app{width:100%;max-width:none;min-height:100vh;box-shadow:none;border:none;border-radius:0}header,.footerbar{padding-inline:max(28px,50% - 522px)}main{padding-inline:0}main>.view{max-width:1100px;margin-inline:auto;padding-inline:28px}.unit-banner h1{font-size:30px}.unit-banner .eyebrow{font-size:12.5px}.question{font-size:42px}.tf-equation{font-size:34px}.blitz-hud{--hud-bleed:28px}.choice-tile{min-height:72px;font-size:30px}.tile-grid{grid-template-columns:repeat(3,1fr)}.tile-grid.cols-3,.balloon-grid,.diamond-tile-grid{grid-template-columns:repeat(4,1fr)}.path-row.pos-l{padding-left:16%}.path-row.pos-r{padding-right:16%}.stage-row.pos-l{padding-left:20%}.stage-row.pos-r{padding-right:20%}.header-title h1{font-size:16px}}h1,h2,h3{text-wrap:balance;margin:0;font-family:"Baloo 2",system-ui,sans-serif}h1{letter-spacing:.01em;text-transform:uppercase;font-family:Rubik Mono One,"Baloo 2",system-ui,sans-serif}.mono{font-family:var(--font-num);font-variant-numeric:lining-nums tabular-nums}::selection{background:var(--gold);color:#3a2400}header{z-index:6;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:3px solid var(--ink-line);align-items:center;gap:12px;display:flex;position:sticky;top:0}.back-btn{background:var(--surface-2);width:36px;height:36px;color:var(--ink);cursor:pointer;border:none;border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex}.back-btn:active{transform:scale(.9)}.header-title{flex:1;min-width:0}.header-title h1{color:var(--ink);letter-spacing:.02em;font-family:"Baloo 2",system-ui,sans-serif;font-size:13.5px;line-height:1.15}.stat{white-space:nowrap;color:inherit;cursor:pointer;appearance:none;background:0 0;border:none;border-radius:10px;align-items:center;gap:4px;margin:-4px -2px;padding:4px 6px;font-family:inherit;font-size:14px;font-weight:800;transition:transform .2s;display:flex}.stat:active{transform:scale(.92)}.stat:focus-visible{outline:3px solid var(--blue);outline-offset:1px}@media (hover:hover){.stat:hover{background:var(--surface-2)}}.stat-flame{color:var(--sun1)}.stat-gem{color:var(--blue)}.stat-heart{color:var(--red)}.stat-gem.pop{animation:.32s statPop}@keyframes statPop{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.stats-row{flex:none;gap:12px;display:flex}main{padding:14px 14px calc(96px + env(safe-area-inset-bottom,0px));z-index:1;flex:1;position:relative;overflow:clip auto}.view{display:none}.view.active{animation:.3s cubic-bezier(.2,.8,.2,1) both viewIn;display:block}@keyframes viewIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.view.active,.topic-card,.node,.sparkle-field span,.stage-node.current{animation:none!important}}.footerbar{z-index:6;background:var(--surface);border-top:3px solid var(--ink-line);padding:10px 8px calc(10px + env(safe-area-inset-bottom,0px));gap:6px;display:none;position:sticky;bottom:0}.footerbar.active{display:flex}.back-footer-btn{flex:none;padding:15px 16px}.bottomnav-item{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 4px;font-size:10.5px;font-weight:800;display:flex}.bottomnav-item:active{transform:scale(.92)}.bottomnav-item.active{color:var(--sun1)}.bottomnav-icon{font-size:22px;line-height:1}.bottomnav-avatar{background:linear-gradient(135deg,var(--sun1),var(--sky1));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:flex}.sheet-panel{left:50%;bottom:calc(78px + env(safe-area-inset-bottom,0px));z-index:30;background:var(--surface);border:3px solid var(--ink-line);width:calc(100% - 28px);max-width:452px;box-shadow:5px 5px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:18px;flex-direction:column;max-height:60vh;padding:12px;animation:.2s cubic-bezier(.2,.9,.3,1) both sheetPanelIn;display:flex;position:fixed;transform:translate(-50%)}@keyframes sheetPanelIn{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.sheet-panel-title{color:var(--ink);border-bottom:2px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:8px;padding:2px 6px 10px;font-size:14px;font-weight:800;display:flex}.sheet-panel-count{color:var(--muted);font-size:12px;font-weight:800}button{font-family:inherit}.btn{border:3px solid var(--ink-line);cursor:pointer;letter-spacing:.03em;text-transform:uppercase;border-radius:14px;flex:1;padding:15px 18px;font-size:14.5px;font-weight:800;transition:transform 80ms,box-shadow 80ms;position:relative;top:0}.btn:active{transform:translateY(4px);box-shadow:none!important}.btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.btn-primary{background:linear-gradient(135deg,var(--sun1),var(--sun3));color:#fff;box-shadow:4px 4px 0 var(--ink-line)}.btn-primary:disabled{background:var(--surface-3);color:var(--muted);box-shadow:4px 4px 0 var(--line-strong);border-color:var(--line-strong);cursor:not-allowed}.btn-green{background:var(--green);color:#fff;box-shadow:4px 4px 0 var(--ink-line)}.btn-ghost{background:var(--surface);color:var(--ink-dim);box-shadow:4px 4px 0 var(--ink-line);border:3px solid var(--ink-line);flex:none}.btn-ghost:disabled{opacity:.45}.sparkle-field{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.sparkle-field span{opacity:.28;color:var(--gold);font-size:14px;animation:7s ease-in-out infinite float;position:absolute}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-14px)rotate(12deg)}}.sakura-field{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.sakura-field span{opacity:.42;filter:drop-shadow(0 2px 2px #00000014);animation-name:sakuraFall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-40px}@keyframes sakuraFall{0%{transform:translate(0)rotate(0)}50%{transform:translate(var(--sway), 55vh) rotate(180deg)}to{transform:translateY(112vh)rotate(360deg)}}@media (prefers-reduced-motion:reduce){.sakura-field{display:none}}.unit-banner{color:#fff;background:radial-gradient(circle at 0 0, #ffffff59 1.5px, transparent 1.6px) 0 0/16px 16px, radial-gradient(120% 160% at 100% -20%, #ffffff4d, transparent 55%), linear-gradient(135deg, var(--violet), var(--sun3) 55%, var(--sun1));box-shadow:4px 4px 0 var(--ink-line);border:3px solid var(--ink-line);border-radius:22px;padding:18px;position:relative;overflow:hidden}.unit-banner .mandala{opacity:.2;width:150px;height:150px;position:absolute;top:-26px;right:-26px}.unit-banner .mascot{filter:drop-shadow(0 4px 6px #00000040);z-index:1;width:52px;height:52px;position:absolute;bottom:6px;right:8px}.unit-banner .eyebrow{letter-spacing:.12em;text-transform:uppercase;opacity:.85;padding-right:60px;font-size:11px;font-weight:800}.unit-banner h1{margin-top:4px;padding-right:60px;font-size:22px}.levelrow{opacity:.92;z-index:2;justify-content:space-between;margin:12px 0 5px;padding-right:60px;font-size:12px;font-weight:800;display:flex;position:relative}.bar-track{background:#ffffff47;border-radius:999px;height:9px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,#ffe28a,#fff7da);border-radius:999px;height:100%;transition:width .6s cubic-bezier(.2,.8,.2,1)}.path-wrap{margin-top:22px;padding:6px 0 10px;position:relative}.path-svg-glow{stroke:var(--sun1);stroke-width:14px;stroke-linecap:round;opacity:.18;filter:blur(2px)}.path-svg-line{stroke:var(--line-strong);stroke-width:6px;stroke-linecap:round;stroke-dasharray:2 16;animation:1.6s linear infinite pathFlow}@keyframes pathFlow{to{stroke-dashoffset:-18px}}@media (prefers-reduced-motion:reduce){.path-svg-line{animation:none}}.path-row{z-index:1;margin-bottom:34px;display:flex;position:relative}.path-row.pos-c{justify-content:center}.path-row.pos-l{justify-content:flex-start;padding-left:8%}.path-row.pos-r{justify-content:flex-end;padding-right:8%}.node-wrap{z-index:1;flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.node{border:4px solid var(--ink-line);color:#fff;cursor:pointer;width:74px;height:74px;box-shadow:5px 5px 0 var(--ink-line);border-radius:50%;justify-content:center;align-items:center;font-size:30px;transition:transform .12s;display:flex;position:relative}.node:active{box-shadow:none;transform:translateY(5px)}.node.current{animation:1.8s ease-in-out infinite nodeBounce}@keyframes nodeBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.node-level{z-index:2;background:var(--ink);color:#fff;border:2px solid var(--ink-line);width:24px;height:24px;box-shadow:2px 2px 0 var(--ink-line);border-radius:50%;justify-content:center;align-items:center;font-family:Rubik Mono One,sans-serif;font-size:11px;display:flex;position:absolute;top:-8px;left:-8px}.node-platform{z-index:0;background:radial-gradient(#00000029,#0000 70%);border-radius:50%;width:56px;height:14px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.stage-pips{background:var(--surface);box-shadow:0 2px 0 var(--line-strong);z-index:2;border-radius:999px;gap:2px;padding:3px 7px;font-size:9px;display:flex;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.stage-pips i{background:var(--line-strong);border-radius:50%;width:6px;height:6px;display:block}.stage-pips i.on{background:var(--gold)}.node-label{color:var(--ink-dim);text-align:center;max-width:100px;font-size:12px;font-weight:800;line-height:1.2}.node-bubble{background:var(--ink);color:var(--surface);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;border-radius:10px;padding:6px 12px;font-size:11px;font-weight:800;position:absolute;top:-38px}.node-bubble:after{content:"";border:6px solid #0000;border-top-color:var(--ink);position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.boss-row{z-index:1;justify-content:center;margin:6px 0 30px;display:flex;position:relative}.boss-row:before{content:"";background:conic-gradient(from 0deg, transparent 0 10deg, color-mix(in srgb, var(--sun1) 30%, transparent) 12deg 14deg, transparent 16deg 30deg) repeat;z-index:-1;opacity:.6;pointer-events:none;width:220px;height:220px;animation:10s linear infinite raySpin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes raySpin{to{transform:translate(-50%,-50%)rotate(360deg)}}.boss-node{border:4px solid var(--ink-line);color:#fff;cursor:pointer;width:94px;height:94px;box-shadow:5px 5px 0 var(--ink-line);background:radial-gradient(120% 160% at 30% 0%, #ffffff59, transparent 55%), linear-gradient(135deg,var(--violet),var(--sun2));border-radius:26px;justify-content:center;align-items:center;font-size:38px;transition:transform .12s;animation:2.4s ease-in-out infinite bossGlow;display:flex;position:relative;transform:rotate(3deg)}.boss-node:active{box-shadow:none;transform:rotate(3deg)translateY(6px)}@keyframes bossGlow{0%,to{filter:drop-shadow(0 0 #9b30ff00)}50%{filter:drop-shadow(0 0 16px #9b30ffbf)}}@media (prefers-reduced-motion:reduce){.boss-row:before{animation:none}}.boss-chip{background:var(--surface);box-shadow:0 3px 0 var(--line-strong);color:var(--ink);border-radius:999px;padding:4px 9px;font-size:10.5px;font-weight:800;position:absolute;top:-10px;right:-10px}.sutra-tag{color:#fff;border:2px solid var(--ink-line);box-shadow:2px 2px 0 var(--ink-line);border-radius:999px;align-items:center;gap:6px;margin-bottom:12px;padding:6px 13px;font-size:12.5px;font-weight:800;display:inline-flex}.topic-head h1{font-size:23px}.icon-badge{color:#fff;width:58px;height:58px;box-shadow:4px 4px 0 var(--ink-line);border:3px solid var(--ink-line);border-radius:20px;justify-content:center;align-items:center;margin-bottom:12px;font-size:28px;display:flex}.topic-illus{border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:18px;margin:0 0 16px;overflow:hidden}.bookmethod-wrap{flex-direction:column;gap:12px;margin:0 0 16px;display:flex}.bookmethod-card{border:2px solid;border-radius:18px;align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.bookmethod-badge{color:#fff;border:2px solid var(--ink-line);border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:17px;font-weight:800;display:flex}.bookmethod-title{color:var(--ink);margin-bottom:4px;font-size:15px;font-weight:800}.bookmethod-desc{color:var(--ink-dim);font-size:14.5px;font-weight:600;line-height:1.55}.bookexample-card{border:2px solid var(--ink-line);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);background:var(--surface);border-radius:14px;width:100%;max-width:320px;margin:0 auto;overflow:hidden}.bookexample-header{color:#fff;padding:11px 14px;font-size:16px;font-weight:800}.bookexample-list{flex-direction:column;gap:6px;padding:10px 12px;display:flex}.bookexample-list-row{border-bottom:2px dashed var(--line);justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:6px;font-size:11px;display:flex}.bookexample-list-row:last-child{border-bottom:none;padding-bottom:0;font-size:16px}.bookexample-list-row span{color:var(--ink-dim);font-weight:700}.bookexample-list-row b{color:var(--ink);text-align:right;font-weight:800}.bookexample-body{grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px;display:grid}.bookexample-col{text-align:center}.bookexample-col-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:5px;font-size:9px;font-weight:800}.bookexample-arrow{margin-bottom:2px;font-size:12px}.bookexample-arrow.up{color:var(--green-dk);animation:1.4s ease-in-out infinite digitArrowUp}.bookexample-arrow.down{color:var(--blue-dk);animation:1.4s ease-in-out infinite digitArrowDown}@keyframes digitArrowUp{0%,to{opacity:.7;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}@keyframes digitArrowDown{0%,to{opacity:.7;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}.bookexample-expr{color:var(--ink-dim);font-size:11px;font-weight:700}.bookexample-val{color:var(--ink);margin-top:2px;font-size:13px;font-weight:800}.bookexample-answer{text-align:center;border:2px solid;border-radius:10px;margin:0 12px 10px;padding:6px;font-size:18px;font-weight:800}.bookexample-flow-title{text-align:center;color:var(--ink);max-width:320px;margin:2px auto 6px;font-size:16px;font-weight:900;line-height:1.35}.bookexample-flow-title span{color:var(--sun1);margin:0 4px}@media (prefers-reduced-motion:reduce){.bookexample-arrow.up,.bookexample-arrow.down{animation:none}}.digitarrow-svg{width:100%;max-width:300px;height:auto;margin:0 auto;padding:10px 0 12px;display:block}.digitarrow-line{fill:var(--ink);font-family:Nunito,sans-serif;font-size:15px;font-weight:700}.digitarrow-digit{font-family:var(--font-num);fill:var(--ink);font-size:24px;font-weight:800}.digitarrow-newdigit{font-family:var(--font-num);fill:var(--ink);font-size:21px;font-weight:800}.digitarrow-elbow{stroke:var(--blue-dk);fill:none;stroke-width:2px}marker .digitarrow-elbow{fill:var(--blue-dk);stroke:none}.digitarrow-ansbox{fill:color-mix(in srgb, var(--green) 20%, var(--surface));stroke:var(--green-dk);stroke-width:2px}.digitarrow-ansnum{font-family:var(--font-num);fill:var(--green-dk);font-size:26px;font-weight:800}.bd-svg{width:100%;max-width:300px;height:auto;margin:0 auto;padding:10px 0 12px;display:block}.bd-digit{font-family:var(--font-num);fill:var(--ink);font-size:22px;font-weight:800}.bd-digit-lg{font-family:var(--font-num);fill:var(--ink);font-size:26px;font-weight:800}.bd-mid{fill:var(--blue)}.bd-fan{stroke:var(--ink);stroke-width:1.6px;fill:none}.bd-fanHead{fill:var(--ink);stroke:none}.bd-arc{stroke:var(--blue);stroke-width:1.6px}.bd-arcTip{fill:var(--blue)}.bd-plus{fill:var(--blue);font-family:Nunito,sans-serif;font-size:13px;font-weight:800}.bd-step-a path{fill:var(--ink-dim)}.bd-step-b path{fill:var(--blue)}.bd-step-label{fill:#fff;font-family:Nunito,sans-serif;font-size:11px;font-weight:800}.bd-ansbox{fill:color-mix(in srgb, var(--blue) 14%, var(--surface));stroke:var(--blue);stroke-width:2px}.bd-ansnum{font-family:var(--font-num);fill:var(--blue-dk);font-size:26px;font-weight:800}.bd-ansnum-sm{font-size:19px}.bd-svg-wide{max-width:340px}.bd-note{fill:var(--ink-dim);font-family:Nunito,sans-serif;font-size:12.5px;font-weight:700}.bd-steplabel{fill:var(--muted);font-family:Nunito,sans-serif;font-size:12px;font-style:italic;font-weight:800}.bd-num{font-family:var(--font-num);fill:var(--ink);font-size:19px;font-weight:800}.bd-carry{font-family:var(--font-num);fill:var(--sun1);font-size:16px;font-weight:800}.bd-op{font-family:var(--font-num);fill:var(--blue);font-size:14px;font-weight:800}.bd-curve{stroke:var(--ink);stroke-width:1.4px}.bd-curveHead{fill:var(--ink)}.bd-rule{stroke:var(--ink);stroke-width:1.6px}.bd-part{font-family:var(--font-num);fill:var(--ink);font-size:19px;font-weight:800}.bd-part-hi{fill:var(--blue)}.bd-caption{fill:var(--blue);font-family:Nunito,sans-serif;font-size:11.5px;font-style:italic;font-weight:700}.bd-dev{font-family:var(--font-num);fill:var(--sun1);font-size:16px;font-weight:800}.bd-dev-part{fill:var(--sun1)}.bd-basemult{font-family:var(--font-num);fill:var(--blue);font-size:13px;font-weight:700}.bd-vdev{stroke:var(--sun1);stroke-width:1.6px}.bd-devHead{fill:var(--sun1)}.bd-flag{stroke:var(--ink);stroke-width:2px}.bd-qdigit{fill:var(--blue-dk)}.bd-rdigit{fill:var(--sun1)}.bd-hop{stroke:var(--blue);stroke-width:1.6px;fill:none}.bd-hopHead{fill:var(--blue);stroke:none}.bd-hoplabel{fill:var(--blue);font-family:Nunito,sans-serif;font-size:13px;font-weight:800}.bd-tag{fill:var(--muted);font-family:Nunito,sans-serif;font-size:12px;font-weight:800}.bd-sandwich{fill:var(--muted)}.bd-sweep{stroke:var(--sun1);stroke-width:1.6px;fill:none}.bd-sweepHead{fill:var(--sun1);stroke:none}.bd-stagewrite{fill:var(--blue-dk);font-family:Nunito,sans-serif;font-size:12px;font-weight:800}.bd-window{fill:none;stroke:var(--blue);stroke-width:2px;stroke-dasharray:5 4}.bd-seg{stroke:var(--line-strong);stroke-width:2px}.bd-vert{stroke:var(--blue);stroke-width:2px;fill:none}.bd-cross{stroke:var(--sun1);stroke-width:2px;fill:none}.bd-nine{font-family:var(--font-num);fill:var(--blue);font-size:14px;font-weight:800}.bd-pair{stroke:var(--green-dk);stroke-width:2px;fill:none;stroke-dasharray:5 4}.bd-partbox{fill:var(--surface-2);stroke:var(--line-strong);stroke-width:2px}.bd-partbox-hi{fill:color-mix(in srgb, var(--blue) 10%, var(--surface));stroke:var(--blue)}.bd-partline{font-family:var(--font-num);fill:var(--ink);font-size:14px;font-weight:800}.daily-cta{background:linear-gradient(135deg,var(--violet-dk),var(--sky2))!important}.daily-cta.played{background:linear-gradient(135deg,#475569,#94a3b8)!important}.daily-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.daily-chip{text-transform:uppercase;letter-spacing:.06em;color:#0f766e;background:color-mix(in srgb, #14b8a6 16%, var(--surface));border:2px solid #0f766e;border-radius:999px;padding:4px 12px;font-size:11.5px;font-weight:800}.daily-count{color:var(--muted);font-size:13px;font-weight:800}.daily-progress{gap:5px;margin-bottom:14px;display:flex}.daily-progress i{background:var(--line);border-radius:999px;flex:1;height:7px}.daily-progress i.done{background:#14b8a6}.daily-progress i.now{background:var(--gold)}.daily-done{text-align:center;padding:26px 8px}.daily-done-icon{font-size:58px}.daily-done h1{margin-top:8px;font-size:22px}.daily-done-score{color:#0f766e;margin:12px 0 4px;font-size:46px;font-weight:800}.daily-done-points{color:var(--gold-dk);font-size:15px;font-weight:800}.daily-done-note{color:var(--muted);margin:14px 0 20px;font-size:13px;font-weight:600;line-height:1.5}.league-note{color:var(--muted);padding:0 6px 10px;font-size:11.5px;font-weight:600;line-height:1.45}.choice-tile.daily-right{border-color:var(--green-dk);background:color-mix(in srgb, var(--green) 30%, var(--surface-2));box-shadow:3px 3px 0 var(--green-dk);color:var(--green-dk)}.choice-tile.daily-wrong{border-color:var(--wrong-dk);background:color-mix(in srgb, var(--wrong) 26%, var(--surface-2));box-shadow:3px 3px 0 var(--wrong-dk);color:var(--wrong-dk);animation:.4s shake}.trick-cta{background:linear-gradient(135deg,var(--violet),var(--sun3))!important}.trick-intro{color:var(--muted);margin-top:8px;font-size:13px;font-weight:600;line-height:1.5}.trick-list{flex-direction:column;gap:12px;margin-top:16px;display:flex}.trick-card{text-align:left;cursor:pointer;background:var(--surface);border:3px solid var(--ink-line);width:100%;box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:18px;align-items:center;gap:12px;padding:14px;transition:transform 80ms;display:flex}.trick-card:active{box-shadow:none;transform:translateY(3px)}.trick-card-icon{border:2px solid var(--ink-line);border-radius:14px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-size:23px;display:flex}.trick-card-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.trick-card-title{color:var(--ink);font-size:15px;font-weight:800}.trick-card-hook{color:var(--muted);font-size:12px;font-weight:600;line-height:1.4}.trick-card-go{color:var(--muted);flex:none;font-size:22px;font-weight:800}.trick-back{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px 0 10px;font-size:13px;font-weight:800}.trick-hero{border:3px solid var(--ink-line);box-shadow:5px 5px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:20px;align-items:center;gap:14px;padding:18px;display:flex}.trick-hero-icon{font-size:34px}.trick-hero-title{color:#fff;text-shadow:0 2px #00000040;font-size:20px;font-weight:800}.trick-rehearse{background:var(--surface-2);border:2px solid var(--line);color:var(--ink-dim);border-radius:14px;align-items:center;gap:10px;margin-top:14px;padding:10px 14px;font-size:12.5px;font-weight:700;display:flex}.trick-rehearse b{color:var(--ink);font-size:19px}.trick-rehearse button{background:var(--surface);border:2px solid var(--line-strong);color:var(--ink-dim);cursor:pointer;border-radius:999px;margin-left:auto;padding:6px 12px;font-family:inherit;font-size:11.5px;font-weight:800}.trick-progress{gap:6px;margin:16px 0 10px;display:flex}.trick-progress i{background:var(--line);border-radius:999px;flex:1;height:6px}.trick-progress i.on{background:linear-gradient(90deg,#7c3aed,#c026d3)}.trick-say{background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:18px;padding:16px}.trick-say-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:10.5px;font-weight:800}.trick-say p{color:var(--ink);font-size:17px;font-weight:800;line-height:1.45}.trick-secret{background:color-mix(in srgb, #7c3aed 12%, var(--surface));border:2px dashed #7c3aed;border-radius:16px;margin-top:12px;padding:13px 15px}.trick-secret-label{text-transform:uppercase;letter-spacing:.06em;color:#7c3aed;margin-bottom:6px;font-size:10.5px;font-weight:800}.trick-secret p{color:var(--ink);font-size:14.5px;font-weight:800;line-height:1.4}.trick-nav{gap:10px;margin-top:18px;display:flex}.trick-finale{text-align:center;margin-top:16px}.trick-finale-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px;font-weight:800}.trick-finale-value{color:#7c3aed;letter-spacing:.02em;margin:6px 0 16px;font-size:52px;font-weight:800}.trick-why{text-align:left;background:var(--surface-2);border:2px solid var(--line);border-radius:16px;margin-bottom:16px;padding:14px}.trick-why b{text-transform:uppercase;letter-spacing:.05em;color:var(--ink);font-size:12px;font-weight:800}.trick-why p{color:var(--ink-dim);margin-top:6px;font-size:13px;font-weight:600;line-height:1.5}.bd-colbox{fill:none;stroke:var(--blue);stroke-width:1.6px}.bd-vdouble{stroke:var(--blue);stroke-width:1.6px}.bd-vdoubleHead{fill:var(--blue)}.bookmethod-badges{gap:8px;margin-top:8px;display:flex}.bookmethod-pill{border:2px solid;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}.bookmethod-pill.plus{color:var(--green-dk);border-color:var(--green-dk);background:color-mix(in srgb, var(--green) 14%, var(--surface))}.bookmethod-pill.minus{color:var(--wrong-dk);border-color:var(--wrong-dk);background:color-mix(in srgb, var(--wrong) 12%, var(--surface))}.illus-dot{transform-origin:50%;transform-box:fill-box;animation:2.4s ease-in-out infinite illusDotPulse}@keyframes illusDotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}.illus-runner{animation:2.4s cubic-bezier(.3,.7,.3,1) infinite illusRunnerSlide}@keyframes illusRunnerSlide{0%,8%{cx:20;opacity:1}45%,55%{cx:150;opacity:1}92%,to{cx:280;opacity:1}}.illus-cell{transform-origin:50%;transform-box:fill-box;animation:2.6s ease-in-out infinite illusCellWave}@keyframes illusCellWave{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.illus-rung{animation:2.2s ease-in-out infinite illusRungGlow}@keyframes illusRungGlow{0%,to{opacity:.35}50%{opacity:1}}.illus-runner-v{animation:2.2s ease-in-out infinite illusRunnerBob}@keyframes illusRunnerBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.illus-loop-runner{filter:drop-shadow(0 0 4px #fff9)}@media (prefers-reduced-motion:reduce){.illus-dot,.illus-runner,.illus-cell,.illus-rung,.illus-runner-v{animation:none}.illus-loop-runner{display:none}}.card{background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 20%, transparent);border-radius:20px;margin-top:16px;padding:18px}.card h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:12px;font-size:12.5px;font-weight:800}.steps{flex-direction:column;gap:12px;margin:0;padding-left:0;list-style:none;display:flex}.steps li{gap:12px;font-size:14.5px;font-weight:600;line-height:1.5;display:flex}.steps li .n{color:#fff;border-radius:9px;flex:0 0 26px;justify-content:center;align-items:center;height:26px;margin-top:1px;font-size:12.5px;font-weight:800;display:flex}.worked-caption{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:16px;font-size:11.5px;font-weight:800}.worked{background:var(--surface-2);border:2px solid var(--line);border-radius:14px;margin-top:8px;padding:14px 16px;font-size:14px}.worked .ex-line{border-bottom:2px dashed var(--line);justify-content:space-between;gap:10px;padding:6px 0;display:flex}.worked .ex-line:last-child{border-bottom:none;font-weight:800}.worked .ex-line b{font-family:var(--font-num);text-align:right}.stagemap-head{text-align:center;margin-bottom:8px}.stagemap-head .sutra-tag{margin:0 auto 10px}.stage-track{margin-top:24px;padding:10px 0 20px;position:relative}.stage-line{border-left:5px dashed var(--line-strong);z-index:0;width:0;position:absolute;top:10px;bottom:10px;left:50%}.stage-row{z-index:1;margin-bottom:30px;display:flex;position:relative}.stage-row.pos-c{justify-content:center}.stage-row.pos-l{justify-content:flex-start;padding-left:14%}.stage-row.pos-r{justify-content:flex-end;padding-right:14%}.stage-node{color:#fff;border:4px solid var(--ink-line);cursor:pointer;width:66px;height:66px;box-shadow:5px 5px 0 var(--ink-line);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-family:"Baloo 2";font-size:22px;font-weight:800;transition:transform .12s;display:flex;position:relative}.stage-node:active{box-shadow:none;transform:translateY(5px)}.stage-node.locked{color:var(--muted);cursor:not-allowed;box-shadow:5px 5px 0 var(--line);border-color:var(--line-strong);background:var(--line-strong)!important}.stage-node.current{animation:1.8s ease-in-out infinite nodeBounce}.stage-blocked-note{text-align:center;max-width:180px;color:var(--muted);background:var(--surface-2);border:2px solid var(--line);border-radius:10px;margin-top:6px;padding:5px 8px;font-size:11px;font-weight:800;line-height:1.35}.node.node-locked{color:var(--muted);cursor:not-allowed;box-shadow:5px 5px 0 var(--line);border-color:var(--line-strong);background:var(--line-strong)!important}.stage-node .stars-mini{letter-spacing:1px;font-size:11px;position:absolute;bottom:-22px}.stage-node .stars-mini .on{color:var(--gold)}.stage-node .stars-mini .off{color:var(--line-strong)}.eyebrow-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:11px;font-weight:800}.practice-hud{z-index:5;background:var(--bg);border-bottom:2px solid color-mix(in srgb, var(--ink-line) 14%, transparent);margin:0 0 4px;padding:8px 0;position:sticky;top:0;box-shadow:0 10px 12px -12px #14143280}.practice-hud .progress-top{margin-bottom:8px}.practice-hud .timer-count,.practice-hud .timer-bar-wrap{margin-bottom:0}.practice-hud+.topic-head{margin-top:10px!important}main{scroll-padding-top:104px}.progress-top{background:var(--surface-2);border:2px solid var(--line);border-radius:999px;height:16px;margin-bottom:18px;padding:2px;overflow:hidden}.progress-top-fill{background:linear-gradient(90deg,var(--green),#7be23a);border-radius:999px;height:100%;transition:width .4s}.timer-bar-wrap{background:var(--surface-3);border:2px solid var(--ink-line);border-radius:999px;height:12px;margin-bottom:14px;overflow:hidden}.timer-bar-fill{background:linear-gradient(90deg,var(--green),var(--gold),var(--red));transform-origin:0;border-radius:999px;width:100%;height:100%;animation-name:timerShrink;animation-timing-function:linear;animation-fill-mode:forwards}.timer-bar-fill.paused{animation-play-state:paused}@keyframes timerShrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.timer-bar-fill{animation:none}}.timer-count{background:var(--surface-2);border:2px solid var(--line);border-radius:999px;justify-content:center;align-items:center;gap:7px;width:fit-content;margin-bottom:14px;margin-left:auto;margin-right:auto;padding:7px 14px;transition:color .2s,border-color .2s,background .2s;display:flex}.timer-count-icon{font-size:16px;line-height:1}.timer-count-num{color:var(--ink);font-variant-numeric:lining-nums tabular-nums;font-size:21px;font-weight:700}.timer-count.mid{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 16%, var(--surface-2))}.timer-count.mid .timer-count-num{color:var(--gold-dk)}.timer-count.low{border-color:var(--wrong);background:color-mix(in srgb, var(--wrong) 16%, var(--surface-2));animation:.9s ease-in-out infinite timerPulse}.timer-count.low .timer-count-num{color:var(--wrong-dk)}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}@media (prefers-reduced-motion:reduce){.timer-count.low{animation:none}}.fifty-btn{background:linear-gradient(135deg,var(--violet),var(--violet-dk));color:#fff;box-shadow:0 6px 0 var(--violet-dk);border:none}.choice-tile.eliminated,.target-tile.eliminated,.balloon-tile.eliminated,.numberline-dot.eliminated{opacity:.15;pointer-events:none}.practice-card{text-align:center;background:var(--surface);border:3px solid var(--ink-line);box-shadow:5px 5px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:22px;padding:26px 20px;animation:.32s cubic-bezier(.2,.9,.3,1) both cardDeal;position:relative;overflow:hidden}@keyframes cardDeal{0%{opacity:0;transform:translate(26px)rotate(2deg)scale(.96)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.practice-card{animation:none}}.stage-intro-flash{z-index:65;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#08081299;flex-direction:column;justify-content:center;align-items:center;gap:6px;animation:.9s forwards introFade;display:flex;position:fixed;inset:0}@keyframes introFade{0%{opacity:0}12%{opacity:1}78%{opacity:1}to{opacity:0}}.stage-intro-text{color:#fff;letter-spacing:.06em;text-transform:uppercase;text-shadow:3px 3px 0 var(--ink-line);font-family:Rubik Mono One,sans-serif;font-size:20px;animation:.45s cubic-bezier(.2,1.6,.4,1) both introPop}.stage-intro-go{color:var(--gold);letter-spacing:.04em;text-shadow:4px 4px 0 var(--ink-line);font-family:Rubik Mono One,sans-serif;font-size:44px;animation:.45s cubic-bezier(.2,1.6,.4,1) .12s both introPop}@keyframes introPop{0%{opacity:0;transform:scale(.4)rotate(-8deg)}60%{opacity:1;transform:scale(1.15)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.stage-intro-flash{animation:none}.stage-intro-text,.stage-intro-go{opacity:1;animation:none}}.practice-card.correct-glow{animation:.5s correctGlow}@keyframes correctGlow{0%{box-shadow:0 0 #16c1728c}to{box-shadow:0 0 0 20px #16c17200}}.practice-card.wrong-glow{animation:.4s wrongGlow}@keyframes wrongGlow{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--wrong) 55%, transparent)}to{box-shadow:0 0 0 16px color-mix(in srgb, var(--wrong) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.practice-card.correct-glow,.practice-card.wrong-glow{animation:none}}.streak-flame{color:var(--sun1);font-weight:800;transition:transform .2s,color .2s;display:inline-block}.streak-flame.pop{transform:scale(1.4)}.streak-flame.combo3{color:#ff5d3a}.practice-meta{color:var(--muted);justify-content:space-between;margin-bottom:14px;font-size:12.5px;font-weight:800;display:flex}.question{letter-spacing:.02em;color:var(--ink);text-wrap:balance;overflow-wrap:break-word;margin:4px 0 22px;font-size:clamp(24px,7.2vw,36px);font-weight:700;line-height:1.25;transition:transform .25s}.question.shake{animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.answer-input{text-align:center;border:3px solid var(--ink-line);background:var(--surface-2);width:100%;color:var(--ink);font-size:31px;font-family:var(--font-num);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 20%, transparent);font-variant-numeric:lining-nums tabular-nums;border-radius:16px;padding:14px;font-weight:700}.answer-input:focus{border-color:var(--blue);outline:none}.answer-input.wrong-flash{border-color:var(--wrong);animation:.4s shake}.mode-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--blue);margin-bottom:8px;font-size:11px;font-weight:800}.tile-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tile-grid.cols-3{grid-template-columns:1fr 1fr 1fr}.choice-tile{border:3px solid var(--ink-line);background:var(--surface-2);font-size:27px;font-weight:700;font-family:var(--font-num);color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 20%, transparent);font-variant-numeric:lining-nums tabular-nums;border-radius:16px;justify-content:center;align-items:center;min-height:64px;padding:16px 8px;transition:transform .1s,border-color .1s,background .1s;display:flex}.choice-tile:active{transform:scale(.94)}.choice-tile:focus-visible{outline:3px solid var(--blue);outline-offset:3px}@media (hover:hover){.choice-tile:hover{border-color:var(--blue);background:color-mix(in srgb, var(--blue) 10%, var(--surface-2))}}.choice-tile.picked{border-color:var(--blue);background:color-mix(in srgb, var(--blue) 20%, var(--surface-2));box-shadow:3px 3px 0 var(--blue-dk)}.target-tile{border:3px solid var(--ink-line);background:var(--surface-2);aspect-ratio:1;font-size:19px;font-weight:800;font-family:var(--font-num);color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 20%, transparent);border-radius:50%;justify-content:center;align-items:center;transition:transform .1s,border-color .1s,background .1s;display:flex}.target-tile:active{transform:scale(.9)}.target-tile.picked{border-color:var(--violet);background:color-mix(in srgb, var(--violet) 22%, var(--surface-2));box-shadow:3px 3px 0 var(--violet-dk)}.tf-row{gap:12px;display:flex}.tf-btn{border:3px solid var(--ink-line);background:var(--surface-2);cursor:pointer;box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 20%, transparent);border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:20px 10px;font-size:17px;font-weight:800;transition:transform .1s,border-color .1s,background .1s;display:flex}.tf-btn:active{transform:scale(.94)}.tf-btn.picked.true{border-color:var(--green);background:color-mix(in srgb, var(--green) 16%, var(--surface-2))}.tf-btn.picked.false{border-color:var(--wrong);background:color-mix(in srgb, var(--wrong) 16%, var(--surface-2))}.tf-btn .ic{font-size:28px}.tf-equation{font-variant-numeric:lining-nums tabular-nums;margin-bottom:16px;font-size:28px;font-weight:700}.shake-tile{animation:.4s shake}.balloon-grid{grid-template-columns:repeat(3,1fr);gap:10px;max-width:420px;margin-inline:auto;padding-top:4px;display:grid}.balloon-tile{cursor:pointer;aspect-ratio:1/1.12;background:0 0;border:none;padding:0;transition:transform .15s;position:relative}.balloon-tile:active{transform:scale(.92)}.balloon-body{color:#fff;width:100%;height:76%;font-size:17px;font-weight:800;font-family:var(--font-num);overflow-wrap:anywhere;text-shadow:0 1px 2px #0000006b;background:linear-gradient(160deg,#ff8a2b,#e23c0c);border:3px solid #0000;border-radius:50% 50% 46% 46%/58% 58% 42% 42%;justify-content:center;align-items:center;padding:0 8px;line-height:1.1;animation:3.2s ease-in-out infinite balloonFloat;display:flex;box-shadow:0 6px 14px -6px #00000059,inset -6px -6px 10px #0000001f,inset 6px 6px 10px #ffffff38}.balloon-tile:nth-child(3n+2) .balloon-body{background:linear-gradient(160deg,#35c2a8,#0e7fa0);animation-delay:.5s}.balloon-tile:nth-child(3n) .balloon-body{background:linear-gradient(160deg,#b189f5,#6d34e0);animation-delay:1s}.balloon-string{background:var(--muted);width:2px;height:16%;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes balloonFloat{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-7px)rotate(2deg)}}.balloon-tile.picked .balloon-body{box-shadow:0 0 0 3px var(--gold), 0 6px 14px -6px #00000059;border-color:#fff;animation-play-state:paused}.balloon-tile.picked.shake-tile .balloon-body{border-color:var(--wrong);animation:.4s shake}@media (prefers-reduced-motion:reduce){.balloon-body{animation:none}}.numberline-wrap{padding:38px 4px 6px;position:relative}.numberline-track{background:var(--line-strong);border-radius:2px;height:4px;position:absolute;top:44px;left:8px;right:8px}.numberline-dots{justify-content:space-between;align-items:center;display:flex;position:relative}.numberline-dot{background:var(--blue);width:20px;height:20px;box-shadow:0 3px 0 var(--blue-dk);cursor:pointer;border:none;border-radius:50%;flex:none;transition:transform .12s;position:relative}.numberline-dot:active{transform:scale(.85)}.numberline-dot-label{color:var(--ink-dim);font-size:11.5px;font-weight:800;font-family:var(--font-num);white-space:nowrap;position:absolute;top:-26px;left:50%;transform:translate(-50%)}.numberline-dot.picked{background:var(--gold);box-shadow:0 3px 0 var(--gold-dk);transform:scale(1.3)}.numberline-dot.picked.shake-tile{background:var(--wrong);box-shadow:0 3px 0 var(--wrong-dk);animation:.4s shake}.feedback-banner{z-index:20;justify-content:center;transition:transform .28s cubic-bezier(.2,.9,.3,1);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(110%)}.feedback-sfx-stamp{z-index:21;color:#fff;text-shadow:-2px -2px 0 var(--ink-line), 0 -2px 0 var(--ink-line), 2px -2px 0 var(--ink-line), -2px 0 0 var(--ink-line), 2px 0 0 var(--ink-line), -2px 2px 0 var(--ink-line), 0 2px 0 var(--ink-line), 2px 2px 0 var(--ink-line);pointer-events:none;font-family:Rubik Mono One,sans-serif;font-size:19px;animation:.4s cubic-bezier(.3,1.6,.4,1) both sfxStampPop;position:absolute;top:-30px;left:max(16px,50% - 220px);transform:rotate(-8deg)}.feedback-banner.good .feedback-sfx-stamp{color:var(--green)}.feedback-banner.bad .feedback-sfx-stamp{color:var(--wrong)}@keyframes sfxStampPop{0%{opacity:0;transform:rotate(-8deg)scale(0)}60%{opacity:1;transform:rotate(-8deg)scale(1.2)}to{opacity:1;transform:rotate(-8deg)scale(1)}}@media (prefers-reduced-motion:reduce){.feedback-sfx-stamp{animation:none}}.feedback-banner.show{transform:translateY(0)}.feedback-inner{width:100%;max-width:480px;padding:16px 18px calc(16px + env(safe-area-inset-bottom,0px));align-items:center;gap:14px;display:flex}.feedback-banner.good .feedback-inner{background:#d7ffb8}.feedback-banner.bad .feedback-inner{background:#f0d9fa}:root[data-theme=dark] .feedback-banner.good .feedback-inner{background:#1e3d0f}:root[data-theme=dark] .feedback-banner.bad .feedback-inner{background:#2e1a3d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .feedback-banner.good .feedback-inner{background:#1e3d0f}:root:not([data-theme=light]) .feedback-banner.bad .feedback-inner{background:#2e1a3d}}.feedback-icon{color:#fff;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:19px;animation:.4s cubic-bezier(.34,1.56,.64,1) feedbackPop;display:flex}@keyframes feedbackPop{0%{transform:scale(0)rotate(-20deg)}60%{transform:scale(1.2)rotate(6deg)}to{transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.feedback-icon{animation:none}}.feedback-banner.good .feedback-icon{background:var(--green)}.feedback-banner.bad .feedback-icon{background:var(--wrong)}.feedback-text{flex:1;min-width:0}.feedback-text .t1{font-size:15px;font-weight:800}.feedback-banner.good .t1{color:var(--green-dk)}.feedback-banner.bad .t1{color:var(--wrong-dk)}.feedback-text .t2{color:var(--ink-dim);margin-top:2px;font-size:12.5px}.feedback-banner .btn{flex:none;padding:14px 22px}.feedback-banner.good .btn{background:var(--green);box-shadow:0 6px 0 var(--green-dk);color:#fff}.feedback-banner.bad .btn{background:var(--wrong);box-shadow:0 6px 0 var(--wrong-dk);color:#fff}#stageResult{z-index:55;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;background:#0f0f1e99;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}#stageResult.show{opacity:1;pointer-events:auto}.result-card{background:var(--surface);text-align:center;border:4px solid var(--ink-line);width:88%;max-width:320px;box-shadow:6px 6px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:26px;padding:30px 26px;transition:transform .35s cubic-bezier(.2,1.5,.4,1);position:relative;overflow:hidden;transform:scale(.8)rotate(-2deg)}#stageResult.show .result-card{transform:scale(1)rotate(0)}.hanko{border:5px solid var(--hanko);width:110px;height:110px;color:var(--hanko);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;margin:0 auto 6px;font-family:"Baloo 2";font-weight:800;display:flex;transform:rotate(-8deg);box-shadow:inset 0 0 0 3px #d6392e26}.hanko.fail{border-color:var(--muted);color:var(--muted)}.hanko .jp{letter-spacing:1px;font-size:20px}.hanko .en{letter-spacing:.14em;text-transform:uppercase;margin-top:1px;font-size:10.5px}.result-stars{justify-content:center;gap:8px;margin:16px 0 4px;font-size:30px;display:flex}.result-stars span{color:var(--line-strong);transition:transform .35s cubic-bezier(.3,1.6,.4,1);display:inline-block;transform:scale(0)}.result-stars span.on{color:var(--gold)}.result-stars span.pop{transform:scale(1)}.result-sub{color:var(--ink-dim);margin:6px 0 4px;font-size:13.5px;font-weight:700}.result-gems{color:var(--blue);margin-bottom:16px;font-size:15px;font-weight:800}.result-actions{gap:10px;display:flex}#celebrate{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;background:#1414288c;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}#celebrate.show{opacity:1;pointer-events:auto}.celebrate-card{background:var(--surface);text-align:center;border:4px solid var(--ink-line);max-width:320px;box-shadow:6px 6px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:24px;padding:28px;transition:transform .3s cubic-bezier(.2,1.4,.4,1);transform:scale(.85)}#celebrate.show .celebrate-card{transform:scale(1)}.celebrate-card .mascot-big{width:96px;height:96px;margin:0 auto}.celebrate-card h3{margin-top:8px;font-size:21px}.celebrate-card p{color:var(--muted);margin:8px 0 18px;font-size:13.5px;font-weight:600}#blitzOver{z-index:51;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14142899;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.continue-card{color:#fff;cursor:pointer;border:3px solid var(--ink-line);box-shadow:4px 4px 0 var(--ink-line);border-radius:16px;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;animation:2s ease-in-out infinite continueCardPulse;display:flex}.continue-card:active{box-shadow:none;transform:translateY(3px)}@keyframes continueCardPulse{0%,to{filter:brightness()}50%{filter:brightness(1.12)}}@media (prefers-reduced-motion:reduce){.continue-card{animation:none}}.continue-card-label{text-transform:uppercase;letter-spacing:.08em;opacity:.85;flex:none;font-size:10px;font-weight:800}.continue-card-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13.5px;font-weight:800;overflow:hidden}.continue-card-arrow{flex:none;font-size:16px}.blitz-cta{background:linear-gradient(135deg,var(--sky1),var(--sky2));border:3px solid var(--ink-line);cursor:pointer;color:#fff;box-shadow:4px 4px 0 var(--ink-line);border-radius:16px;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;animation:2.4s ease-in-out infinite blitzCtaGlow;display:flex}.blitz-cta:active{box-shadow:none;transform:translateY(3px)}@keyframes blitzCtaGlow{0%,to{filter:drop-shadow(0 0 #00c2ff00)}50%{filter:drop-shadow(0 0 10px #00c2ff99)}}@media (prefers-reduced-motion:reduce){.blitz-cta{animation:none}}.blitz-cta-icon{background:#fff3;border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:flex}.blitz-cta-info{flex:1;min-width:0}.blitz-cta-title{font-size:14px;font-weight:800}.blitz-cta-sub{opacity:.9;font-size:11px;font-weight:700}.blitz-cta-arrow{opacity:.9;flex:none;font-size:20px;font-weight:800}.blitz-hud{--hud-bleed:14px;z-index:5;margin:-14px calc(var(--hud-bleed) * -1) 16px;padding:12px var(--hud-bleed) 12px;background:color-mix(in srgb, var(--surface) 95%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:3px solid var(--ink-line);position:sticky;top:-14px}.blitz-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.blitz-stat{color:var(--ink-dim);white-space:nowrap;align-items:center;gap:6px;font-size:14px;font-weight:800;display:flex}.blitz-stat-ico{font-size:15px;line-height:1}.blitz-stat b{color:var(--ink);font-family:var(--font-num);font-variant-numeric:lining-nums tabular-nums;font-size:19px;font-weight:700}.blitz-hearts{gap:5px;font-size:20px;line-height:1;display:flex}.blitz-hearts span.off{opacity:.22;filter:grayscale()}.blitz-timer-row{align-items:center;gap:10px;display:flex}.blitz-timer-row .timer-count{flex:none;margin:0;padding:5px 12px}.blitz-timer-row .timer-bar-wrap{flex:1;margin-bottom:0}.blitz-card{text-align:center}#dailyChest{z-index:52;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14142899;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.chest-card{background:var(--surface);text-align:center;border:4px solid var(--ink-line);max-width:300px;box-shadow:6px 6px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:24px;padding:32px 28px;animation:.3s cubic-bezier(.2,1.4,.4,1) both chestCardIn}@keyframes chestCardIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.chest-box{cursor:pointer;filter:drop-shadow(0 6px 10px #00000040);font-size:64px;animation:1.2s ease-in-out infinite chestBounce;display:inline-block}.chest-box.opened{cursor:default;animation:.5s cubic-bezier(.3,1.6,.4,1) both chestPop}@keyframes chestBounce{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-8px)rotate(3deg)}}@keyframes chestPop{0%{opacity:0;transform:scale(.3)rotate(-15deg)}60%{opacity:1;transform:scale(1.25)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.chest-card h3{color:var(--gold-dk);margin-top:14px;font-family:Rubik Mono One,sans-serif;font-size:22px}.chest-card p{color:var(--muted);margin:6px 0 16px;font-size:13px;font-weight:600}@media (prefers-reduced-motion:reduce){.chest-box,.chest-box.opened,.chest-card{animation:none}}#confettiCanvas{z-index:60;pointer-events:none;position:fixed;inset:0}.puzzle-nav{color:var(--ink-dim);justify-content:space-between;align-items:center;margin-top:14px;font-size:13px;font-weight:800;display:flex}.dot-row{gap:6px;display:flex}.dot{background:var(--line-strong);border-radius:50%;width:8px;height:8px;transition:all .2s}.dot.on{background:linear-gradient(135deg,var(--sun2),var(--sun1));border-radius:5px;width:22px}.dot.solved{background:var(--green)}.par-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.par-chip{color:#b4560f;background:#ffe3c2;border:2px solid #ffc98a;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:800;display:inline-flex}:root[data-theme=dark] .par-chip{color:#ffdca8;background:#ff9a2e29;border-color:#ff9a2e59}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .par-chip{color:#ffdca8;background:#ff9a2e29;border-color:#ff9a2e59}}.stopwatch-chip{color:var(--blue-dk);background:color-mix(in srgb, var(--blue) 14%, var(--surface));border:2px solid color-mix(in srgb, var(--blue) 35%, var(--line));font-size:11.5px;font-weight:800;font-family:var(--font-num);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.stopwatch-chip.slow{color:var(--red-dk);background:color-mix(in srgb, var(--red) 12%, var(--surface));border-color:color-mix(in srgb, var(--red) 35%, var(--line))}.puzzle-board{background:repeating-linear-gradient(90deg, #0000000d 0 2px, transparent 2px 34px), linear-gradient(180deg, var(--wood1), var(--wood2));box-shadow:inset 0 2px 10px #0000001f, 0 6px 0 var(--wood-line);border:2px solid var(--wood-line);border-radius:22px;margin-top:16px;padding:34px 16px 22px;position:relative;overflow:hidden}.puzzle-board .mandala-watermark{opacity:.1;width:260px;height:260px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.board-svg-wrap{z-index:1;justify-content:center;display:flex;position:relative;overflow-x:auto}.board-svg-wrap svg{width:100%;max-width:460px;height:auto}.stick-active{stroke:#f4a63a;filter:drop-shadow(0 0 4px #e0472b59)}.stick-inactive{stroke:#ffffffbf;stroke-dasharray:3 6}.stick{stroke-width:10px;stroke-linecap:round;cursor:pointer;touch-action:none;transition:stroke .15s,opacity .15s,filter .15s}.stick-hit{cursor:pointer;touch-action:none}.drag-ghost{z-index:70;pointer-events:none;background:#2b6fea;border-radius:50%;width:22px;height:22px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 10px #2b6feacc,0 4px 8px #0000004d}.stick:hover{opacity:.85}.stick-tip{fill:#e0472b}.stick-tip-off{fill:none;stroke:#ffffffbf;stroke-width:2px}.stick-selected{filter:drop-shadow(0 0 8px #2b6feab3);animation:1s ease-in-out infinite stickPulse;stroke:#2b6fea!important}circle.stick-tip.sel-tip{fill:#2b6fea}@keyframes stickPulse{0%,to{stroke-width:10px}50%{stroke-width:13px}}.stick-hint{animation:1s ease-in-out infinite hintPulse}@keyframes hintPulse{0%,to{opacity:1}50%{opacity:.3}}.tray-wrap{background:var(--surface);border:2px solid var(--line);border-radius:16px;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;display:flex}.tray-label{color:var(--muted);flex:none;font-size:12px;font-weight:800}.tray-slots{gap:10px;display:flex}.tray-slot{border:3px dashed var(--line-strong);cursor:pointer;background:var(--surface-2);touch-action:none;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;transition:transform .12s;display:flex}.tray-slot:active{transform:scale(.9)}.tray-slot.filled{background:#3a2a12;border-style:solid;border-color:#f4a63a}.tray-slot .stick-mini{background:linear-gradient(#ffcb66,#f4a63a);border-radius:4px;width:8px;height:24px;position:relative}.tray-slot .stick-mini:after{content:"";background:#e0472b;border-radius:50%;width:12px;height:9px;position:absolute;top:-4px;left:-2px}.tray-slot.sel{border-color:#2b6fea;animation:1s ease-in-out infinite stickPulse2}@keyframes stickPulse2{0%,to{box-shadow:0 0 #2b6fea80}50%{box-shadow:0 0 0 6px #2b6fea26}}.puzzle-status{text-align:center;min-height:24px;margin-top:14px;font-size:14.5px;font-weight:800}.moves-row{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:18px;margin-top:8px;font-size:12.5px;font-weight:700;display:flex}.moves-row b{color:var(--ink);font-family:var(--font-num)}.story-chip{background:var(--surface-2);border:2px solid var(--line);color:var(--ink-dim);border-radius:14px;margin-top:12px;padding:12px 14px;font-size:13px;font-weight:600;line-height:1.45}.auth-shell{background:radial-gradient(600px 400px at 8% -6%, color-mix(in srgb, var(--sun1) 22%, transparent), transparent 70%), radial-gradient(500px 380px at 105% 8%, color-mix(in srgb, var(--sky2) 22%, transparent), transparent 70%), var(--bg);justify-content:center;align-items:flex-start;min-height:100%;padding:24px 16px;display:flex}.auth-card{background:var(--surface);border:4px solid var(--ink-line);width:100%;max-width:400px;box-shadow:6px 6px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:24px;padding:30px 26px}.auth-mascot{width:64px;height:64px;margin:0 auto 12px}.auth-card h1{text-align:center;font-size:24px}.auth-card .sub{text-align:center;color:var(--muted);margin-top:6px;font-size:13.5px;font-weight:600}.field{margin-top:16px}.field label{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.05em;font-size:12.5px;font-weight:800}.field input{border:2px solid var(--line);background:var(--surface-2);width:100%;color:var(--ink);border-radius:14px;margin-top:6px;padding:13px 14px;font-family:Nunito;font-size:15px;font-weight:700}.field input:focus{border-color:var(--blue);outline:none}.auth-card-wide{max-width:480px}.auth-kicker{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:var(--green-dk);background:color-mix(in srgb, var(--green) 16%, var(--surface));border:2px solid var(--green-dk);border-radius:999px;width:fit-content;margin:0 auto 10px;padding:4px 12px;font-size:11.5px;font-weight:800}.auth-perks{background:var(--surface-2);border:2px solid var(--line);border-radius:16px;flex-direction:column;gap:7px;margin:16px 0 4px;padding:12px 14px;list-style:none;display:flex}.auth-perks li{color:var(--ink-dim);padding-left:24px;font-size:12.5px;font-weight:700;line-height:1.4;position:relative}.auth-perks li:before{content:"★";color:var(--sun1);font-size:13px;position:absolute;top:0;left:4px}.field-row{gap:10px;display:flex}.field-row .field{flex:1;min-width:0}.field-hint{color:var(--muted);margin-top:6px;font-size:11.5px;font-weight:600;line-height:1.4}.field-optional{color:var(--muted);background:var(--surface-2);border:1.5px solid var(--line);text-transform:none;letter-spacing:0;border-radius:999px;margin-left:6px;padding:2px 7px;font-size:10.5px;font-weight:800}.field select{border:2px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:14px;margin-top:6px;padding:13px 14px;font-family:inherit;font-size:15px;font-weight:700}.field select:focus{border-color:var(--blue);outline:none}.phone-row{gap:8px;margin-top:6px;display:flex}.phone-row select{border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;flex:0 0 118px;margin-top:0;padding:13px 8px;font-family:inherit;font-size:14px;font-weight:700}.phone-row input{flex:1;min-width:0;margin-top:0}.pw-meter{gap:5px;margin-top:8px;display:flex}.pw-meter span{background:var(--line);border-radius:999px;flex:1;height:6px;transition:background .2s}.pw-meter span.on{background:var(--gold)}.pw-meter span.on.s1{background:var(--wrong)}.pw-meter span.on.s2{background:var(--gold)}.pw-meter span.on.s3,.pw-meter span.on.s4{background:var(--green)}.lang-toggle{gap:8px;margin-top:6px;display:flex}.lang-toggle button{border:2px solid var(--ink-line);background:var(--surface-2);color:var(--ink-dim);cursor:pointer;box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 20%, transparent);border-radius:12px;flex:1;padding:11px;font-size:13.5px;font-weight:800}.lang-toggle button.active{background:linear-gradient(135deg,var(--sun1),var(--sun3));color:#fff;border-color:var(--ink-line)}.auth-error{color:var(--red-dk);background:#ffdcdc;border-radius:12px;margin-top:14px;padding:10px 12px;font-size:13.5px;font-weight:700}:root[data-theme=dark] .auth-error{color:#ff9a9a;background:#3d1414}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .auth-error{color:#ff9a9a;background:#3d1414}}.auth-submit{width:100%;margin-top:20px}.auth-switch{text-align:center;color:var(--muted);margin-top:18px;font-size:13.5px;font-weight:600}.auth-switch a{color:var(--blue);font-weight:800;text-decoration:none}.reward-toast{z-index:70;pointer-events:none;color:var(--blue);font-size:15px;font-weight:800;animation:.9s ease-out forwards rewardFloat;position:fixed;transform:translate(-50%,-10px)}@keyframes rewardFloat{0%{opacity:0;transform:translate(-50%,-10px)scale(.8)}15%{opacity:1;transform:translate(-50%,-24px)scale(1.05)}to{opacity:0;transform:translate(-50%,-70px)scale(1)}}@media (prefers-reduced-motion:reduce){.reward-toast{opacity:0;animation:none}}.streak-calendar{background:var(--surface);border:2px solid var(--line);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;display:flex}.streak-calendar-label{color:var(--ink);white-space:nowrap;font-size:13px;font-weight:800}.streak-days{gap:5px;display:flex}.streak-day{opacity:.25;filter:grayscale();font-size:15px}.streak-day.lit{opacity:1;filter:none}.streak-urgent{width:100%;color:var(--red-dk);background:color-mix(in srgb, var(--red) 12%, var(--surface-2));border:2px solid var(--red);border-radius:10px;margin-top:8px;padding:6px 10px;font-size:11.5px;font-weight:800;animation:1.6s ease-in-out infinite streakUrgentPulse}@keyframes streakUrgentPulse{0%,to{opacity:1}50%{opacity:.6}}@media (prefers-reduced-motion:reduce){.streak-urgent{animation:none}}.mascot-bob{transform-origin:50% 85%;animation:2.4s ease-in-out infinite mascotBob}@keyframes mascotBob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4px)rotate(-2deg)}}.mascot-shadow{animation:2.4s ease-in-out infinite mascotShadow}@keyframes mascotShadow{0%,to{opacity:.1;transform:scale(1)}50%{opacity:.06;transform:scale(.85)}}.mascot-blink{transform-origin:50%;transform-box:fill-box;animation:4.5s ease-in-out infinite mascotBlink}@keyframes mascotBlink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.12)}}@media (prefers-reduced-motion:reduce){.mascot-bob,.mascot-shadow,.mascot-blink{animation:none}}.stage-row{animation:.35s cubic-bezier(.2,.9,.3,1) both cardIn}.brand-lockup{justify-content:center;align-items:center;gap:10px;margin-bottom:14px;display:flex}.brand-lockup img{width:auto;height:28px}.brand-lockup span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:800}.header-mark{object-fit:contain;border-radius:12px;flex:none;width:52px;height:52px}.auth-logo{width:auto;height:40px;margin:0 auto 14px;display:block}.auth-logo-full{width:100%;max-width:300px;height:auto;margin:0 auto 14px}.home-byline{opacity:.9;align-items:center;gap:8px;margin-top:8px;display:flex}.home-byline img{background:#ffffffd9;border-radius:8px;width:auto;height:46px;padding:3px 5px}.home-byline span{color:#fff;letter-spacing:.04em;font-size:13px;font-weight:700}.avatar-btn{background:linear-gradient(135deg,var(--sun1),var(--sky1));color:#fff;font-size:15px;font-weight:800}.menu-overlay{z-index:29;background:0 0;position:fixed;inset:0}.account-menu{top:calc(56px + env(safe-area-inset-top,0px));z-index:30;background:var(--surface);border:2px solid var(--line);width:250px;max-width:calc(100% - 28px);box-shadow:var(--shadow-lg,0 20px 45px -18px #0006);border-radius:18px;padding:10px;animation:.18s both menuIn;position:absolute;left:14px}@keyframes menuIn{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}.account-menu-head{border-bottom:2px solid var(--line);align-items:center;gap:10px;margin-bottom:6px;padding:8px 8px 12px;display:flex}.avatar-lg{border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.account-name{color:var(--ink);font-size:14px;font-weight:800}.account-email{color:var(--muted);word-break:break-all;font-size:11.5px}.menu-row{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:11px 8px;font-size:13.5px;font-weight:700;display:flex}.menu-row:hover{background:var(--surface-2)}.menu-row-val{color:var(--muted);font-size:12px;font-weight:800}.menu-row-danger{color:var(--red)}.menu-row-link{box-sizing:border-box;text-decoration:none}.menu-row-link:focus-visible{outline:3px solid var(--blue);outline-offset:-2px}.menu-divider{background:var(--line);border-radius:2px;height:2px;margin:6px 4px}.arcade-board{background:radial-gradient(120% 100% at 50% 0,#1b3a2e 0%,#0e2019 70%),repeating-linear-gradient(90deg,#ffffff08 0 40px,#0000 40px 80px);border-radius:18px;margin-top:6px;padding:14px;position:relative;overflow:hidden}.scoreboard{background:#0a1512;border:2px solid #2e4a3c;border-radius:12px;align-items:center;gap:10px;margin-bottom:14px;padding:8px 12px;display:flex;box-shadow:inset 0 0 0 1px #ffffff08}.scoreboard-label{letter-spacing:.14em;color:#7fd9a8;text-transform:uppercase;font-size:11px;font-weight:800}.scoreboard-runs{color:#ffd34d;text-align:center;background:#132620;border-radius:6px;min-width:34px;padding:2px 10px;font-size:22px;font-weight:800}.scoreboard-bat{filter:drop-shadow(0 0 4px #ffffff40);margin-left:auto;font-size:18px}.diamond-tile-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.ball-tile{aspect-ratio:1;color:#1b1e29;cursor:pointer;background:radial-gradient(circle at 35% 30%,#fff,#e7e9ec 60%,#c7cbd2);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:15px;font-weight:800;transition:transform 80ms;display:flex;box-shadow:0 5px #9aa0ac,inset 0 0 0 2px #d3212c22}.ball-tile:active{box-shadow:none;transform:translateY(4px)}.ball-tile.picked{background:radial-gradient(circle at 35% 30%, #ffe9a8, var(--gold) 60%, var(--gold-dk));box-shadow:0 5px 0 var(--gold-dk)}.ball-tile.picked.shake-tile{background:radial-gradient(circle at 35% 30%, #e2b8f0, var(--wrong) 60%, var(--wrong-dk));box-shadow:0 5px 0 var(--wrong-dk);animation:.4s shake}.arcade-board.swing-hit .scoreboard{animation:.7s scoreboardFlash}.arcade-board.swing-hit .ball-tile.picked{animation:.7s forwards ballFly}@keyframes ballFly{0%{transform:scale(1)}40%{transform:scale(1.25)}to{opacity:0;transform:translateY(-140px)scale(.4)}}@keyframes scoreboardFlash{0%,to{box-shadow:inset 0 0 0 1px #ffffff08}40%{box-shadow:0 0 0 3px var(--gold)}}.homerun-fx{color:var(--gold);text-shadow:0 2px #7a5300,0 0 18px #ffcb4db3;letter-spacing:.04em;pointer-events:none;font-family:"Baloo 2",system-ui,sans-serif;font-size:26px;font-weight:800;animation:.9s both homerunPop;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}@keyframes homerunPop{0%{opacity:0;transform:translate(-50%,-40%)scale(.4)rotate(-6deg)}30%{opacity:1;transform:translate(-50%,-55%)scale(1.15)rotate(2deg)}70%{opacity:1;transform:translate(-50%,-55%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%,-70%)scale(1)rotate(0)}}.strike-fx{color:var(--wrong);text-shadow:0 2px #3a0f4d;letter-spacing:.05em;pointer-events:none;font-family:"Baloo 2",system-ui,sans-serif;font-size:24px;font-weight:800;animation:.7s both strikePop;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}@keyframes strikePop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}30%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.scoreboard-addrun{background:linear-gradient(135deg,var(--gold),var(--gold-dk));color:#3a2400;cursor:pointer;border:none;border-radius:999px;margin-left:auto;padding:6px 12px;font-size:12.5px;font-weight:800;animation:1s ease-in-out infinite addRunPulse}@keyframes addRunPulse{0%,to{transform:scale(1);box-shadow:0 0 #ffcb4d80}50%{transform:scale(1.07);box-shadow:0 0 0 6px #ffcb4d2e}}.ballfield{justify-content:center;align-items:flex-end;height:64px;margin-bottom:10px;display:flex;position:relative}.batter{transform-origin:70% 85%;align-items:center;font-size:30px;display:flex;position:relative}.batter-fig{display:block}.batter-bat{transform-origin:80% 80%;font-size:20px;position:absolute;top:2px;left:-14px;transform:rotate(60deg)}.batter.swing-hit .batter-bat{animation:.5s batSwing}.batter.swing-hit .batter-fig{animation:.5s batterLean}.batter.swing-miss .batter-bat{animation:.45s batSwingMiss}@keyframes batSwing{0%{transform:rotate(60deg)}40%{transform:rotate(-70deg)}to{transform:rotate(60deg)}}@keyframes batSwingMiss{0%{transform:rotate(60deg)}50%{transform:rotate(-40deg)}to{transform:rotate(60deg)}}@keyframes batterLean{0%,to{transform:none}40%{transform:rotate(-8deg)translate(-3px)}}.hit-ball{font-size:16px;animation:.7s ease-out forwards ballArc;position:absolute;bottom:30px;left:52%}@keyframes ballArc{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(120px,-90px)scale(.5)}}.catch-field{border:3px solid var(--ink-line);height:210px;box-shadow:4px 4px 0 var(--ink-line);background:linear-gradient(#bfe8ff 0%,#e8f6ff 60%,#fff 100%);border-radius:18px;margin-top:6px;position:relative;overflow:hidden}:root[data-theme=dark] .catch-field{background:linear-gradient(#1b2340 0%,#101425 60%,#0a0a16 100%)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .catch-field{background:linear-gradient(#1b2340 0%,#101425 60%,#0a0a16 100%)}}.catch-tile{top:-56px;left:calc(var(--col) * 33.333% + 3.5%);aspect-ratio:1;border:3px solid var(--ink-line);background:linear-gradient(160deg,var(--sky1),var(--sky2));color:#fff;width:27%;font-weight:800;font-family:var(--font-num);cursor:pointer;box-shadow:3px 3px 0 var(--ink-line);animation-name:catchFall;animation-duration:var(--dur);animation-delay:var(--delay);border-radius:50%;justify-content:center;align-items:center;font-size:15px;animation-timing-function:linear;animation-iteration-count:infinite;display:flex;position:absolute}@keyframes catchFall{0%{transform:translateY(-60px)rotate(-8deg)}to{transform:translateY(230px)rotate(8deg)}}.catch-tile.picked{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold), 3px 3px 0 var(--ink-line);background:linear-gradient(160deg,#ffe18a,var(--gold));animation-play-state:paused}.catch-tile.picked.shake-tile{border-color:var(--wrong);background:linear-gradient(160deg,#e2b8f0,var(--wrong));animation-play-state:paused}.catch-tile.eliminated{opacity:.15;pointer-events:none}@media (prefers-reduced-motion:reduce){.catch-tile{animation:none;top:38%}}.combo-badge{background:linear-gradient(135deg,var(--gold),var(--gold-dk));color:#3a2400;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:800;animation:.25s both comboBadgeIn}@keyframes comboBadgeIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.eyebrow-tag.boss-tag{background:linear-gradient(135deg,var(--violet),var(--gold));color:#fff}.practice-card.boss-card{box-shadow:0 0 0 2px var(--gold), 0 10px 30px -12px #e0a93a80}.result-card.boss-clear{box-shadow:0 0 0 3px var(--gold), 0 20px 50px -18px #e0a93a99}.boss-badge{text-align:center;letter-spacing:.05em;color:var(--gold-dk);margin-bottom:6px;font-size:13px;font-weight:800}.skins-panel{flex-direction:column;gap:7px;padding:6px 8px 10px;display:flex}.skin-row{text-align:left;cursor:pointer;border:2px solid var(--line);background:var(--surface-2);width:100%;color:var(--ink);border-radius:14px;align-items:center;gap:10px;padding:9px 11px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.skin-row:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media (hover:hover){.skin-row:not(.locked):hover{border-color:var(--blue)}}.skin-row.active{border-color:var(--gold-dk);background:color-mix(in srgb, var(--gold) 18%, var(--surface-2))}.skin-row.locked{opacity:.6;cursor:not-allowed}.skin-row-dot{border:2px solid var(--ink-line);border-radius:9px;flex:none;width:26px;height:26px}.skin-row-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.skin-row-name{font-size:13px;font-weight:800}.skin-row-note{color:var(--muted);font-size:11px;font-weight:700;line-height:1.35}.skin-row-lock{font-size:11px}.skin-row-check{color:var(--gold-dk);flex:none;font-size:14px;font-weight:800}.achievements-panel{flex-direction:column;gap:8px;max-height:280px;padding:6px 8px 10px;display:flex;overflow-y:auto}.badge-card{border:2px solid var(--line);background:var(--surface-2);border-radius:12px;align-items:center;gap:10px;padding:8px 10px;transition:transform .15s;display:flex}.badge-card.unlocked{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 14%, var(--surface-2));animation:.3s badgePop}.badge-card.locked{opacity:.5}.badge-icon{text-align:center;flex:none;width:30px;font-size:22px}.badge-text{min-width:0}.badge-title{color:var(--ink);font-size:13px;font-weight:800}.badge-desc{color:var(--muted);margin-top:1px;font-size:11px;font-weight:600}@keyframes badgePop{0%{opacity:.4;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.badge-card.unlocked{animation:none}}.leaderboard-panel{flex-direction:column;gap:6px;max-height:320px;padding:6px 8px 10px;display:flex;overflow-y:auto}.leaderboard-loading{text-align:center;color:var(--muted);padding:16px 0;font-size:12.5px;font-weight:700}.leaderboard-row{border:2px solid var(--line);background:var(--surface-2);border-radius:10px;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;font-weight:700;display:flex}.leaderboard-row.me{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 14%, var(--surface-2))}.leaderboard-row-me-sep{margin-top:4px}.leaderboard-rank{text-align:center;color:var(--muted);flex:0 0 20px;font-size:13px;font-weight:800}.leaderboard-rank.top1{font-size:16px}.leaderboard-rank.top2,.leaderboard-rank.top3{font-size:15px}.leaderboard-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);flex:1;overflow:hidden}.leaderboard-level{color:var(--muted);flex:none;font-size:11px}.leaderboard-gems{color:var(--blue);flex:none}.arcade-board.skin-inferno .scoreboard-runs{color:#ff7a3d;background:#2a1208}.arcade-board.skin-inferno .batter-bat{filter:hue-rotate(-40deg)saturate(1.6)}.arcade-board.skin-inferno .ball-tile.picked{background:radial-gradient(circle at 35% 30%,#ffd3b8,#ff7a3d 60%,#b8380f);box-shadow:0 5px #b8380f}.arcade-board.skin-electric .scoreboard-runs{color:#00c2ff;background:#062430}.arcade-board.skin-electric .batter-bat{filter:hue-rotate(150deg)saturate(1.6)}.arcade-board.skin-electric .ball-tile.picked{background:radial-gradient(circle at 35% 30%,#c7eeff,#00c2ff 60%,#0e7bae);box-shadow:0 5px #0e7bae}.arcade-board.skin-cosmic .scoreboard-runs{color:#c79bff;background:#1e1030}.arcade-board.skin-cosmic .batter-bat{filter:hue-rotate(60deg)saturate(1.6)}.arcade-board.skin-cosmic .ball-tile.picked{background:radial-gradient(circle at 35% 30%,#e9d4ff,#8b5cf6 60%,#5a2fc7);box-shadow:0 5px #5a2fc7}.catch-field.skin-inferno{background:linear-gradient(#3a1408 0%,#1a0904 60%,#0a0a16 100%)}.catch-field.skin-inferno .catch-tile{background:linear-gradient(160deg,#ff7a3d,#d81b5b)}.catch-field.skin-electric{background:linear-gradient(#062430 0%,#031620 60%,#0a0a16 100%)}.catch-field.skin-electric .catch-tile{background:linear-gradient(160deg,#00c2ff,#4d6bff)}.catch-field.skin-cosmic{background:linear-gradient(#1e1030 0%,#140a22 60%,#0a0a16 100%)}.catch-field.skin-cosmic .catch-tile{background:linear-gradient(160deg,#8b5cf6,#ff3da6)}.arcade-board.skin-verdant .scoreboard-runs{color:#1fe07a;background:#07241a}.arcade-board.skin-verdant .batter-bat{filter:hue-rotate(80deg)saturate(1.5)}.arcade-board.skin-verdant .ball-tile.picked{background:radial-gradient(circle at 35% 30%,#c8f7dc,#1fe07a 60%,#0b7c44);box-shadow:0 5px #0b7c44}.catch-field.skin-verdant{background:linear-gradient(#07241a 0%,#04160f 60%,#0a0a16 100%)}.catch-field.skin-verdant .catch-tile{background:linear-gradient(160deg,#1fe07a,#0fa857)}.arcade-board.skin-gold .scoreboard-runs{color:#fc0;background:#2a1d02}.arcade-board.skin-gold .batter-bat{filter:hue-rotate(-15deg)saturate(1.5)brightness(1.1)}.arcade-board.skin-gold .ball-tile.picked{background:radial-gradient(circle at 35% 30%,#fff0b8,#fc0 60%,#a87700);box-shadow:0 5px #a87700}.catch-field.skin-gold{background:linear-gradient(#2a1d02 0%,#1a1201 60%,#0a0a16 100%)}.catch-field.skin-gold .catch-tile{background:linear-gradient(160deg,#fc0,#d89b00)}.share-overlay{z-index:70}.share-sheet{z-index:71;background:var(--surface);border:3px solid var(--ink-line);width:100%;max-width:460px;max-height:92vh;padding:16px 16px calc(20px + env(safe-area-inset-bottom,0px));border-bottom:none;border-radius:24px 24px 0 0;animation:.26s cubic-bezier(.2,.9,.25,1) both shareIn;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 -12px 40px -12px #14143273}@keyframes shareIn{0%{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.share-sheet{animation:none}}@media (min-width:520px){.share-sheet{border-bottom:3px solid var(--ink-line);border-radius:24px;bottom:50%;transform:translate(-50%,50%)}@keyframes shareIn{0%{opacity:0;transform:translate(-50%,calc(50% + 18px))}to{opacity:1;transform:translate(-50%,50%)}}}.share-sheet-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.share-sheet-title{color:var(--ink);font-family:"Baloo 2",system-ui,sans-serif;font-size:18px;font-weight:800}.share-sheet-sub{color:var(--muted);font-size:12.5px;font-weight:700}.share-close{border:2px solid var(--line);background:var(--surface-2);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:12px;flex:none;font-family:inherit;font-size:15px;font-weight:800}.share-close:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.share-poster{text-align:center;color:#fff;border:3px solid var(--ink-line);box-shadow:4px 4px 0 var(--ink-line);background:radial-gradient(circle at 0 0, #ffffff4d 1.5px, transparent 1.6px) 0 0/16px 16px, linear-gradient(135deg, var(--violet), var(--sun3) 55%, var(--sun1));border-radius:20px;padding:18px 16px;position:relative;overflow:hidden}.share-poster-brand{justify-content:center;align-items:center;gap:7px;margin-bottom:6px;display:flex}.share-poster-brand img{background:#ffffffd9;border-radius:6px;width:auto;height:26px;padding:2px 4px}.share-poster-brand span{letter-spacing:.04em;font-size:12px;font-weight:800}.share-poster-big{justify-content:center;align-items:center;gap:10px;display:flex}.share-poster-icon{font-size:30px;line-height:1}.share-poster-num{font-variant-numeric:lining-nums tabular-nums;text-shadow:0 3px #0000002e;font-size:56px;font-weight:700;line-height:1.05}.share-poster-label{text-transform:uppercase;letter-spacing:.1em;opacity:.95;font-size:13.5px;font-weight:800}.share-poster-rank{opacity:.9;margin-top:8px;font-size:12.5px;font-weight:800}.share-tiles{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;display:grid}.share-tile{cursor:pointer;border:2px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 4px;font-family:inherit;transition:border-color .15s,background .15s,transform .1s;display:flex}.share-tile:active{transform:scale(.94)}.share-tile:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media (hover:hover){.share-tile:hover{border-color:var(--blue)}}.share-tile.active{border-color:var(--gold-dk);background:color-mix(in srgb, var(--gold) 20%, var(--surface-2))}.share-tile-ico{font-size:15px;line-height:1}.share-tile-num{font-variant-numeric:lining-nums tabular-nums;font-size:19px;font-weight:700}.share-tile-lab{color:var(--ink-dim);text-align:center;font-size:10.5px;font-weight:800;line-height:1.25}.share-blurb{color:var(--ink-dim);background:var(--surface-2);border:2px dashed var(--line-strong);-webkit-user-select:all;user-select:all;border-radius:14px;margin:14px 0 0;padding:10px 12px;font-size:13.5px;font-weight:700;line-height:1.5}.share-actions{gap:10px;margin-top:12px;display:flex}.share-actions .btn{flex:1}.share-networks{justify-content:center;gap:10px;margin-top:12px;display:flex}.share-net{border:3px solid var(--ink-line);width:44px;height:44px;box-shadow:3px 3px 0 var(--ink-line);background:var(--surface-2);color:var(--ink);border-radius:14px;justify-content:center;align-items:center;font-size:19px;text-decoration:none;transition:transform .1s;display:flex}.share-net:active{box-shadow:none;transform:translateY(3px)}.share-net:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.share-net-x{color:#fff;background:#111}.share-net-line{color:#fff;background:#06c755}.share-net-whatsapp{color:#fff;background:#25d366}.share-net-facebook{color:#fff;background:#1877f2}.levelrow-share{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;margin:12px -5px 5px;padding:3px 60px 3px 5px;font-family:inherit}.levelrow-share:focus-visible{outline-offset:2px;outline:3px solid #fff}@media (hover:hover){.levelrow-share:hover{background:#ffffff24}}.levelrow-right{align-items:center;gap:6px;display:inline-flex}.levelrow-share-ico{opacity:.85;font-size:12px}.score-share-btn{cursor:pointer;color:var(--blue-dk);background:color-mix(in srgb, var(--blue) 12%, var(--surface));border:2px solid color-mix(in srgb, var(--blue) 40%, var(--line));border-radius:999px;align-items:center;gap:6px;margin:2px auto 0;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:800;display:inline-flex}.score-share-btn:active{transform:scale(.95)}.score-share-btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}:root[data-skin=inferno]{--violet:#d81b5b;--violet-dk:#a3003c;--sun1:#ff7a3d;--sun2:#ffb020;--sun3:#ff1e3c;--sky1:#ff8a2b;--sky2:#e0431b;--blue:#ff6a2c;--blue-dk:#c43a00;--gold:#ffb020;--gold-dk:#c97400;--green:#ffc24d;--green-dk:#c98a00}:root[data-skin=verdant]{--violet:#0fa857;--violet-dk:#0a7a3f;--sun1:#1fe07a;--sun2:#7be23a;--sun3:#12b981;--sky1:#2fbe6b;--sky2:#0a7a3f;--blue:#12b981;--blue-dk:#0a7a52;--gold:#a8e063;--gold-dk:#6a9e1b}:root[data-skin=electric]{--violet:#4d6bff;--violet-dk:#2438c4;--sun1:#00c2ff;--sun2:#7dd9ff;--sun3:#2979ff;--sky1:#00e0ff;--sky2:#4d6bff;--blue:#00a6e0;--blue-dk:#0068a8;--gold:#5be0ff;--gold-dk:#0090c4}:root[data-skin=cosmic]{--violet:#8b5cf6;--violet-dk:#5a2fc7;--sun1:#ff3da6;--sun2:#e9a8ff;--sun3:#c026d3;--sky1:#a855f7;--sky2:#6b21a8;--blue:#a855f7;--blue-dk:#6b21a8;--gold:#f0abfc;--gold-dk:#a21caf}:root[data-skin=gold]{--violet:#d89b00;--violet-dk:#a87700;--sun1:#fc0;--sun2:#ffe480;--sun3:#ff8a00;--sky1:#e8a200;--sky2:#a86a00;--blue:#e0a500;--blue-dk:#a87700;--gold:#ffd84d;--gold-dk:#b98a00}:root[data-skin=inferno] body{background-color:#fff5f0}:root[data-skin=verdant] body{background-color:#f1faf3}:root[data-skin=electric] body{background-color:#f0f8ff}:root[data-skin=cosmic] body{background-color:#faf3ff}:root[data-skin=gold] body{background-color:#fffbef}:root[data-theme=dark] body{background-color:var(--bg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body{background-color:var(--bg)}}#app.admin-app{width:100%;max-width:none;box-shadow:none;background:var(--bg);border:none;border-radius:0}.admin-header{z-index:6;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;background:color-mix(in srgb, var(--surface) 96%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:3px solid var(--ink-line);align-items:center;gap:12px;display:flex;position:sticky;top:0}.admin-header h1{font-size:15px}.admin-whoami{color:var(--muted);font-size:11.5px;font-weight:700}.admin-back{color:var(--ink);background:var(--surface-2);border:2px solid var(--line);border-radius:999px;flex:none;padding:7px 14px;font-size:12.5px;font-weight:800;text-decoration:none}.admin-back:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.admin-main{flex:1;padding:16px 16px 40px;overflow:auto}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;display:grid}.admin-stat{background:var(--surface);border:3px solid var(--ink-line);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 18%, transparent);border-radius:16px;padding:12px 14px}.admin-stat b{color:var(--ink);font-variant-numeric:lining-nums tabular-nums;font-size:28px;font-weight:700;line-height:1.1;display:block}.admin-stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:800}.admin-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.admin-search{border:3px solid var(--ink-line);background:var(--surface);min-width:220px;color:var(--ink);border-radius:14px;flex:1;padding:11px 14px;font-family:inherit;font-size:14px;font-weight:600}.admin-search:focus{border-color:var(--blue);outline:none}.admin-export{flex:none;padding:10px 16px;font-size:13px}.admin-table-wrap{background:var(--surface);border:3px solid var(--ink-line);min-height:160px;max-height:calc(100vh - 250px);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 18%, transparent);border-radius:16px;overflow:auto}.admin-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;border-bottom:2px solid var(--line);padding:10px 12px}.admin-table th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim);z-index:1;font-size:11px;font-weight:800;position:sticky;top:0}.admin-table th.sortable button{font-family:inherit;font:inherit;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit;background:0 0;border:none;padding:0}.admin-table th.sortable button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.admin-table th.num,.admin-table td.num{text-align:right}.admin-table tbody tr:last-child td{border-bottom:none}@media (hover:hover){.admin-table tbody tr:hover{background:color-mix(in srgb, var(--blue) 7%, var(--surface))}}.admin-table .mono{font-variant-numeric:lining-nums tabular-nums}.admin-name{color:var(--ink);font-weight:800}.admin-email{color:var(--ink-dim);font-weight:600}.admin-pill{background:var(--surface-3);color:var(--ink-dim);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:800;display:inline-block}.admin-pill-locked{background:color-mix(in srgb, var(--red) 18%, var(--surface));color:var(--red-dk);border:1px solid color-mix(in srgb, var(--red) 40%, transparent);margin-left:7px}.admin-empty{text-align:center;color:var(--muted);white-space:normal;padding:34px 12px;font-weight:700}.quest-list{flex-direction:column;gap:8px;padding:6px 8px 10px;display:flex}.quest-row{background:var(--surface-2);border:2px solid var(--line);border-radius:14px;align-items:center;gap:10px;padding:10px 11px;display:flex}.quest-row.ready{border-color:var(--gold-dk);background:color-mix(in srgb, var(--gold) 18%, var(--surface-2))}.quest-row.claimed{opacity:.65}.quest-icon{flex:none;font-size:18px}.quest-body{flex:1;min-width:0}.quest-title{color:var(--ink);font-size:12.5px;font-weight:800}.quest-track{background:var(--surface-3);border:1px solid var(--line-strong);border-radius:999px;height:7px;margin:5px 0 3px;overflow:hidden}.quest-fill{background:linear-gradient(90deg,var(--green),#7be23a);border-radius:999px;height:100%;transition:width .4s}.quest-sub{color:var(--muted);font-variant-numeric:lining-nums tabular-nums;font-size:10.5px;font-weight:800}.quest-reward{color:var(--muted);flex:none;font-size:11.5px;font-weight:800}.quest-done{color:var(--green-dk);flex:none;font-size:11px;font-weight:800}.quest-claim{cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--sun1),var(--sun3));border:2px solid var(--ink-line);box-shadow:2px 2px 0 var(--ink-line);border-radius:999px;flex:none;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:800;animation:1.4s ease-in-out infinite questClaim}.quest-claim:active{box-shadow:none;transform:translateY(2px)}.quest-claim:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@keyframes questClaim{0%,to{filter:brightness()}50%{filter:brightness(1.18)}}@media (prefers-reduced-motion:reduce){.quest-claim{animation:none}}.quest-empty{text-align:center;color:var(--muted);padding:18px;font-size:12.5px;font-weight:700}.quest-review-cta{cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--violet),var(--violet-dk));border:none;border-top:2px solid var(--line);width:100%;padding:12px;font-family:inherit;font-size:12.5px;font-weight:800}.quest-review-cta:active{filter:brightness(1.1)}.nav-dot{background:var(--red);border:2px solid var(--surface);border-radius:50%;width:9px;height:9px;position:absolute;top:-2px;right:-4px}.bottomnav-icon{position:relative}.shop-list{flex-direction:column;gap:8px;padding:6px 8px 10px;display:flex}.shop-row{background:var(--surface-2);border:2px solid var(--line);border-radius:14px;align-items:center;gap:10px;padding:10px 11px;display:flex}.shop-icon{flex:none;font-size:20px}.shop-body{flex:1;min-width:0}.shop-title{color:var(--ink);align-items:center;gap:6px;font-size:12.5px;font-weight:800;display:flex}.shop-held{color:var(--green-dk);font-size:11px;font-weight:800}.shop-blurb{color:var(--muted);font-size:11px;font-weight:700;line-height:1.35}.shop-buy{cursor:pointer;color:var(--ink);background:var(--surface);border:2px solid var(--ink-line);box-shadow:2px 2px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);font-variant-numeric:lining-nums tabular-nums;border-radius:999px;flex:none;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:800}.shop-buy:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.shop-buy:disabled{opacity:.4;cursor:not-allowed}.shop-buy:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.shop-note{color:var(--wrong-dk);background:color-mix(in srgb, var(--wrong) 14%, var(--surface));border-radius:12px;margin:0 8px 6px;padding:8px 11px;font-size:12px;font-weight:800}.token-count{opacity:.85;font-size:11px}.hint-btn{background:linear-gradient(135deg,var(--gold),var(--gold-dk));color:#3a2400;box-shadow:0 6px 0 var(--gold-dk);border:none}.hint-sheet{z-index:71;background:var(--surface);border:3px solid var(--ink-line);width:100%;max-width:460px;max-height:88vh;padding:16px 16px calc(20px + env(safe-area-inset-bottom,0px));border-bottom:none;border-radius:24px 24px 0 0;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}@media (min-width:520px){.hint-sheet{border-bottom:3px solid var(--ink-line);border-radius:24px;bottom:50%;transform:translate(-50%,50%)}}.hint-sheet-head{color:var(--ink);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:14px;font-weight:800;display:flex}.hint-sutra{color:var(--violet-dk);margin-bottom:10px;font-family:"Baloo 2",system-ui,sans-serif;font-size:13px;font-style:italic;font-weight:700}.hint-steps{flex-direction:column;gap:7px;margin:0 0 14px;padding-left:22px;display:flex}.hint-steps li{color:var(--ink-dim);font-size:13px;font-weight:700;line-height:1.45}.hint-close-btn{width:100%}.review-cta{cursor:pointer;text-align:left;color:#fff;background:linear-gradient(135deg,var(--violet),#d81b5b);border:3px solid var(--ink-line);width:100%;box-shadow:4px 4px 0 var(--ink-line);border-radius:16px;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;font-family:inherit;display:flex}.review-cta:active{box-shadow:none;transform:translateY(3px)}.review-cta:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.review-cta-icon{background:#fff3;border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:21px;display:flex}.review-cta-info{flex:1;min-width:0}.review-cta-title{font-size:14px;font-weight:800}.review-cta-sub{opacity:.9;font-size:11px;font-weight:700}.review-cta-count{font-variant-numeric:lining-nums tabular-nums;flex:none;font-size:24px;font-weight:700}.review-meta{color:var(--ink-dim);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12.5px;font-weight:800;display:flex}.review-meta b{color:var(--ink);font-family:var(--font-num);font-weight:700}.review-progress{margin-bottom:14px}.review-progress-fill{background:linear-gradient(90deg,var(--violet),#d81b5b);border-radius:999px;height:100%;transition:width .4s}.review-answer{font-family:var(--font-num);color:var(--green-dk);font-variant-numeric:lining-nums tabular-nums;margin-top:14px;font-size:19px;font-weight:700}.friend-code-box{background:var(--surface-2);border:2px dashed var(--line-strong);border-radius:14px;margin:0 8px 10px;padding:11px 12px}.friend-code-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10.5px;font-weight:800}.friend-code{cursor:pointer;width:100%;font-family:var(--font-num);letter-spacing:.06em;color:var(--ink);font-variant-numeric:lining-nums tabular-nums;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:22px;font-weight:700;display:flex}.friend-code:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.friend-code-copy{font-size:15px}.friend-code-hint{color:var(--muted);font-size:11px;font-weight:700;line-height:1.35}.friend-add{gap:8px;margin:0 8px 8px;display:flex}.friend-add-input{min-width:0;font-family:var(--font-num);border:3px solid var(--ink-line);background:var(--surface-2);color:var(--ink);letter-spacing:.05em;text-transform:uppercase;border-radius:12px;flex:1;padding:10px 12px;font-size:15px;font-weight:700}.friend-add-input:focus{border-color:var(--blue);outline:none}.friend-add-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--sun1),var(--sun3));border:3px solid var(--ink-line);box-shadow:2px 2px 0 var(--ink-line);border-radius:12px;flex:none;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:800}.friend-add-btn:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.friend-add-btn:disabled{opacity:.45;cursor:not-allowed}.friend-note{color:var(--blue-dk);background:color-mix(in srgb, var(--blue) 12%, var(--surface));border-radius:12px;margin:0 8px 8px;padding:8px 11px;font-size:12px;font-weight:800}.friend-list{flex-direction:column;gap:7px;padding:0 8px 10px;display:flex}.friend-row{background:var(--surface-2);border:2px solid var(--line);border-radius:14px;align-items:center;gap:10px;padding:9px 11px;display:flex}.friend-avatar{color:#fff;background:linear-gradient(135deg,var(--violet),var(--sun1));border:2px solid var(--ink-line);border-radius:10px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:800;display:flex}.friend-body{flex:1;min-width:0}.friend-name{color:var(--ink);font-size:13px;font-weight:800}.friend-sub{color:var(--muted);font-variant-numeric:lining-nums tabular-nums;font-size:11px;font-weight:700}.friend-remove{cursor:pointer;width:26px;height:26px;color:var(--muted);background:var(--surface);border:2px solid var(--line);border-radius:8px;flex:none;font-family:inherit;font-size:11px;font-weight:800}.friend-remove:hover{color:var(--red);border-color:var(--red)}.friend-empty{text-align:center;color:var(--muted);padding:16px;font-size:12.5px;font-weight:700}.duel-send{background:color-mix(in srgb, var(--sun1) 12%, var(--surface));border:2px solid color-mix(in srgb, var(--sun1) 35%, var(--line));border-radius:14px;margin:0 8px 10px;padding:10px 11px}.duel-send-label{color:var(--ink);margin-bottom:7px;font-size:12px;font-weight:800}.duel-send-row{cursor:pointer;background:var(--surface);border:2px solid var(--line);width:100%;color:var(--ink);border-radius:11px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 11px;font-family:inherit;display:flex}.duel-send-row:last-child{margin-bottom:0}.duel-send-row:active{transform:scale(.98)}.duel-send-name{font-size:12.5px;font-weight:800}.duel-send-go{color:var(--sun1);font-size:11.5px;font-weight:800}.duel-history{padding:0 8px 10px}.duel-history-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;font-size:10.5px;font-weight:800}.duel-row{border-bottom:2px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:7px 2px;font-size:12px;display:flex}.duel-row:last-child{border-bottom:none}.duel-vs{color:var(--ink-dim);font-weight:800}.duel-accept{cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--violet),var(--violet-dk));border:2px solid var(--ink-line);box-shadow:2px 2px 0 var(--ink-line);border-radius:999px;padding:5px 11px;font-family:inherit;font-size:11.5px;font-weight:800}.duel-accept:active{box-shadow:none;transform:translateY(2px)}.duel-waiting{color:var(--muted);font-size:11px;font-weight:800}.duel-result{color:var(--muted);font-size:11.5px;font-weight:800}.duel-result.won{color:var(--green-dk)}.duel-result.lost{color:var(--wrong-dk)}.duel-card{background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 var(--ink-line);border-radius:18px;margin-top:14px;overflow:hidden}.duel-card-head{color:#fff;background:linear-gradient(135deg,var(--violet),#d81b5b);padding:10px 13px;font-size:12.5px;font-weight:800}.duel-card-row{cursor:pointer;text-align:left;background:var(--surface);border:none;border-bottom:2px solid var(--line);width:100%;color:var(--ink);align-items:center;gap:10px;padding:10px 13px;font-family:inherit;display:flex}.duel-card-row:last-child{border-bottom:none}@media (hover:hover){.duel-card-row:hover{background:var(--surface-2)}}.duel-card-avatar{color:#fff;background:linear-gradient(135deg,var(--violet),var(--sun1));border:2px solid var(--ink-line);border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;font-weight:800;display:flex}.duel-card-info{flex-direction:column;flex:1;min-width:0;display:flex}.duel-card-name{font-size:13px;font-weight:800}.duel-card-sub{color:var(--muted);font-size:11px;font-weight:700}.duel-card-go{color:var(--violet-dk);flex:none;font-size:12px;font-weight:800}.duel-result-card{z-index:72;text-align:center;background:var(--surface);border:4px solid var(--ink-line);width:calc(100% - 48px);max-width:300px;box-shadow:6px 6px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:24px;padding:26px 22px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.duel-result-icon{font-size:52px;line-height:1}.duel-result-card h3{color:var(--ink);margin-top:10px;font-family:Rubik Mono One,sans-serif;font-size:20px}.duel-result-card p{color:var(--muted);margin:6px 0 16px;font-size:12.5px;font-weight:700}.blitz-over-actions{flex-direction:column;align-items:center;gap:8px;margin-top:4px;display:flex}.score-duel-btn{cursor:pointer;color:var(--violet-dk);background:color-mix(in srgb, var(--violet) 12%, var(--surface));border:2px solid color-mix(in srgb, var(--violet) 40%, var(--line));border-radius:999px;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:800;display:inline-flex}.score-duel-btn:active{transform:scale(.95)}.header-home{cursor:pointer;background:0 0;border:none;border-radius:12px;flex:none;padding:0;line-height:0}.header-home:active{transform:scale(.92)}.header-home:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media (hover:hover){.header-home:hover{filter:brightness(1.06)}}.buddy-figure{aspect-ratio:1;width:100%;height:100%;position:relative}.buddy-body{position:absolute;inset:0}.buddy-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.buddy-cape{z-index:0}.buddy-attire{z-index:2}.buddy-sparks{z-index:3}.buddy-body{z-index:1}.buddy-spark{animation:2.6s ease-in-out infinite buddySpark}.buddy-spark.s2{animation-delay:.7s}.buddy-spark.s3{animation-delay:1.4s}@keyframes buddySpark{0%,to{opacity:0;transform:translateY(0)}40%{opacity:.95}70%{opacity:0;transform:translateY(-7px)}}.buddy-flicker{transform-origin:34px 10px;animation:1.1s ease-in-out infinite buddyFlicker}@keyframes buddyFlicker{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.14)}}@media (prefers-reduced-motion:reduce){.buddy-spark,.buddy-flicker{animation:none}.buddy-spark{opacity:.8}}.buddy-dock{z-index:40;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));pointer-events:none;align-items:flex-end;gap:8px;width:100%;max-width:480px;padding:0 12px;display:flex;position:fixed;transform:translate(-50%)}@media (min-width:1024px){.buddy-dock{max-width:1100px;padding:0 28px}}.buddy-tap{pointer-events:auto;cursor:pointer;filter:drop-shadow(0 6px 8px #14143247);background:0 0;border:none;flex:none;width:58px;height:58px;padding:0;animation:4.5s ease-in-out infinite buddyFloat}.buddy-tap:active{transform:scale(.9)}.buddy-tap:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:50%}@keyframes buddyFloat{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-9px)rotate(2deg)}}@media (prefers-reduced-motion:reduce){.buddy-tap{animation:none}}.buddy-dock.talking .buddy-tap{animation-duration:2.2s}.buddy-bubble{pointer-events:auto;text-align:left;cursor:pointer;min-width:0;color:var(--ink);background:var(--surface);border:3px solid var(--ink-line);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:16px 16px 4px;flex:auto;padding:9px 12px;font-family:inherit;font-size:12.5px;font-weight:800;line-height:1.4;animation:.24s cubic-bezier(.2,1.4,.4,1) both buddyBubbleIn}@keyframes buddyBubbleIn{0%{opacity:0;transform:translateY(6px)scale(.95)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.buddy-bubble{animation:none}}.buddy-bubble:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.skin-row-preview{border:2px solid var(--ink-line);border-radius:12px;flex:none;width:44px;height:44px;padding:2px;position:relative;overflow:hidden}.skin-row-preview .buddy-figure{width:100%;height:100%}.blitz-cta,.daily-cta,.trick-cta,.review-cta,.duel-card-head,.quest-review-cta{text-shadow:0 1px 2px #00000057}.unit-banner h1,.unit-banner .eyebrow,.home-byline span,.levelrow{text-shadow:0 1px 2px #00000047}.review-rest{background:var(--surface);border:3px dashed var(--line-strong);border-radius:16px;align-items:center;gap:10px;margin-top:14px;padding:11px 13px;display:flex}.review-rest-icon{flex:none;font-size:18px}.review-rest-text{min-width:0;color:var(--muted);flex:1;font-size:12px;font-weight:700;line-height:1.4}.review-rest-badge{color:var(--green-dk);background:color-mix(in srgb, var(--green) 16%, var(--surface));font-variant-numeric:lining-nums tabular-nums;border-radius:999px;flex:none;padding:3px 9px;font-size:11px;font-weight:800}.cls-note{margin:0 0 12px}.cls-create{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.cls-create .admin-search{min-width:240px}.cls-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.cls-card{text-align:left;cursor:pointer;color:var(--ink);background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 18%, transparent);border-radius:16px;padding:14px;font-family:inherit}.cls-card:active{box-shadow:none;transform:translateY(3px)}.cls-card:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.cls-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.cls-card-name{font-size:14.5px;font-weight:800}.cls-card-code{letter-spacing:.14em;color:var(--blue-dk);font-variant-numeric:lining-nums tabular-nums;margin:6px 0 2px;font-size:26px;font-weight:700}.cls-card-meta{color:var(--muted);font-size:11.5px;font-weight:700}.cls-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cls-head-main{flex:1;min-width:0}.cls-head-name{color:var(--ink);font-size:17px;font-weight:800}.cls-head-sub{color:var(--muted);font-size:12px;font-weight:700}.cls-head-sub b{color:var(--blue-dk);letter-spacing:.1em}.cls-toggle{flex:none;padding:9px 14px;font-size:12.5px}.cls-assign{background:var(--surface);border:3px solid var(--ink-line);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 16%, transparent);border-radius:16px;margin-bottom:14px;padding:13px}.cls-assign-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:7px;font-size:10.5px;font-weight:800}.cls-assign-row{flex-wrap:wrap;gap:10px;display:flex}.cls-select,.cls-assign-note{border:3px solid var(--ink-line);background:var(--surface-2);color:var(--ink);border-radius:12px;padding:10px 12px;font-family:inherit;font-size:13.5px;font-weight:700}.cls-select{cursor:pointer;flex:none;min-width:200px}.cls-assign-note{flex:1;min-width:220px}.cls-select:focus,.cls-assign-note:focus{border-color:var(--blue);outline:none}.cls-assign-hint{color:var(--muted);margin-top:8px;font-size:11.5px;font-weight:700}.cls-due{background:color-mix(in srgb, var(--wrong) 16%, var(--surface));min-width:22px;color:var(--wrong-dk);border-radius:999px;padding:2px 7px;font-weight:800;display:inline-block}.cls-weak{white-space:normal;max-width:260px}.cls-weak-chip{background:var(--surface-3);color:var(--ink-dim);font-variant-numeric:lining-nums tabular-nums;border-radius:8px;margin:1px 3px 1px 0;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.cls-teach-link{text-align:center;text-decoration:none;display:block}.assign-card{cursor:pointer;text-align:left;color:#fff;background:linear-gradient(135deg,var(--violet-dk),var(--sky2));border:3px solid var(--ink-line);width:100%;box-shadow:4px 4px 0 var(--ink-line);text-shadow:0 1px 2px #00000057;border-radius:16px;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;font-family:inherit;display:flex}.assign-card:active{box-shadow:none;transform:translateY(3px)}.assign-card:focus-visible{outline-offset:2px;outline:3px solid #fff}.assign-card-icon{background:#fff3;border-radius:12px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex}.assign-card-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.assign-card-label{text-transform:uppercase;letter-spacing:.06em;opacity:.92;font-size:10.5px;font-weight:800}.assign-card-title{font-size:14.5px;font-weight:800}.assign-card-note{opacity:.92;font-size:11.5px;font-weight:700}.assign-card-go{opacity:.9;flex:none;font-size:20px;font-weight:800}.lvl-list{flex-direction:column;gap:8px;padding:6px 8px 4px;display:flex}.lvl-row{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:var(--surface-2);border:2px solid var(--line);border-radius:14px;align-items:center;gap:11px;padding:11px 12px;font-family:inherit;transition:border-color .15s,background .15s,transform .1s;display:flex}.lvl-row:active{transform:scale(.98)}.lvl-row:focus-visible{outline:3px solid var(--blue);outline-offset:2px}@media (hover:hover){.lvl-row:hover{border-color:var(--blue);background:color-mix(in srgb, var(--blue) 8%, var(--surface-2))}}.lvl-icon{background:var(--surface);border:2px solid var(--ink-line);border-radius:11px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:19px;display:flex}.lvl-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.lvl-name{align-items:center;gap:7px;font-size:13.5px;font-weight:800;display:flex}.lvl-clock{color:var(--muted);background:var(--surface);border:1px solid var(--line);font-variant-numeric:lining-nums tabular-nums;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.lvl-blurb{color:var(--muted);font-size:11px;font-weight:700;line-height:1.35}.lvl-best{flex-direction:column;flex:none;align-items:flex-end;display:flex}.lvl-best-num{color:var(--gold-dk);font-variant-numeric:lining-nums tabular-nums;font-size:19px;font-weight:700}.lvl-best-lab{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:9.5px;font-weight:800}.lvl-best-new{color:var(--muted);font-size:10.5px;font-weight:800}.lvl-foot{color:var(--muted);text-align:center;padding:4px 12px 10px;font-size:11px;font-weight:700}.blitz-level-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);justify-content:center;align-items:center;gap:6px;margin-bottom:9px;font-size:10.5px;font-weight:800;display:flex}.comp-block .cls-assign-row{align-items:center}.comp-mins{color:var(--ink-dim);align-items:center;gap:6px;font-size:12.5px;font-weight:800;display:inline-flex}.comp-mins input{width:64px;font-family:var(--font-num);border:3px solid var(--ink-line);background:var(--surface-2);color:var(--ink);font-variant-numeric:lining-nums tabular-nums;border-radius:12px;padding:9px 10px;font-size:14px;font-weight:700}.comp-mins input:focus{border-color:var(--blue);outline:none}.comp-start{flex:none;padding:10px 16px;font-size:13px}.comp-list{flex-direction:column;gap:7px;margin-top:12px;display:flex}.comp-row{background:var(--surface-2);border:2px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:9px 11px;display:flex}.comp-row.ended{opacity:.65}.comp-row-name{min-width:140px;color:var(--ink);flex-direction:column;flex:1;font-size:13px;font-weight:800;display:flex}.comp-row-meta{color:var(--muted);font-size:11px;font-weight:700}.comp-row-count{color:var(--ink-dim);font-variant-numeric:lining-nums tabular-nums;flex:none;font-size:12px;font-weight:800}.comp-row-btn{cursor:pointer;color:var(--ink);background:var(--surface);border:2px solid var(--ink-line);border-radius:999px;flex:none;padding:5px 12px;font-family:inherit;font-size:11.5px;font-weight:800}.comp-row-btn:active{transform:scale(.95)}.comp-row-btn.danger{color:var(--red-dk);border-color:color-mix(in srgb, var(--red) 45%, var(--line))}.comp-board{z-index:72;background:var(--surface);border:4px solid var(--ink-line);width:calc(100% - 32px);max-width:420px;max-height:82vh;box-shadow:6px 6px 0 color-mix(in srgb, var(--ink-line) 25%, transparent);border-radius:22px;padding:16px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.comp-board-head{color:var(--ink);justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:15px;font-weight:800;display:flex}.comp-board-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.comp-board-row{background:var(--surface-2);border:2px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:9px 11px;display:flex}.comp-board-row.rank-1{border-color:var(--gold-dk);background:color-mix(in srgb, var(--gold) 20%, var(--surface-2))}.comp-board-row.rank-2{border-color:var(--line-strong)}.comp-board-row.rank-3{border-color:color-mix(in srgb, var(--sun1) 45%, var(--line))}.comp-board-row.me{box-shadow:0 0 0 3px var(--blue) inset}.comp-rank{text-align:center;width:26px;color:var(--ink-dim);font-variant-numeric:lining-nums tabular-nums;flex:none;font-size:16px;font-weight:700}.comp-who{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:800;overflow:hidden}.comp-detail{color:var(--muted);flex:none;font-size:11px;font-weight:700}.comp-score{text-align:right;min-width:44px;color:var(--gold-dk);font-variant-numeric:lining-nums tabular-nums;flex:none;font-size:15px;font-weight:700}.comp-hud{justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;display:flex}.comp-hud-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800;overflow:hidden}.comp-hud-clock{color:var(--ink);background:var(--surface-2);border:2px solid var(--line);font-variant-numeric:lining-nums tabular-nums;border-radius:999px;flex:none;padding:4px 12px;font-size:16px;font-weight:700}.comp-hud-clock.low{color:var(--wrong-dk);border-color:var(--wrong);background:color-mix(in srgb, var(--wrong) 14%, var(--surface-2));animation:.9s ease-in-out infinite timerPulse}@media (prefers-reduced-motion:reduce){.comp-hud-clock.low{animation:none}}.comp-progress{margin-bottom:14px}.comp-skip{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:10px;margin-top:14px;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:800}.comp-skip:hover{color:var(--ink);background:var(--surface-2)}.comp-done{text-align:center}.comp-done-medal{font-size:60px;line-height:1}.comp-done-title{color:var(--ink-dim);margin-top:8px;font-family:"Baloo 2",system-ui,sans-serif;font-size:17px}.comp-done-rank{color:var(--gold-dk);margin:4px 0 10px;font-family:Rubik Mono One,sans-serif;font-size:34px}.comp-done-stats{justify-content:center;gap:22px;margin-bottom:16px;display:flex}.comp-done-stats span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);flex-direction:column;font-size:11px;font-weight:800;display:flex}.comp-done-stats b{font-family:var(--font-num);color:var(--ink);font-variant-numeric:lining-nums tabular-nums;font-size:26px;font-weight:700}.comp-card .duel-card-head{background:linear-gradient(135deg,var(--gold-dk),var(--sun1))}@media (min-width:1024px){.view.active.home-view{grid-template-columns:minmax(0,1.3fr) minmax(320px,.85fr);grid-auto-flow:dense;align-items:start;gap:0 22px;display:grid}.home-view.active>.unit-banner{grid-column:1/-1;margin-bottom:16px}.home-view.active>.continue-card,.home-view.active>.assign-card,.home-view.active>.path-wrap{grid-column:1}.home-view.active>.streak-calendar,.home-view.active>.home-quick,.home-view.active>.review-cta,.home-view.active>.review-rest,.home-view.active>.duel-card,.home-view.active>.blitz-cta{grid-column:2}.home-view.active>*{margin-top:0;margin-bottom:12px}.home-view.active>.path-wrap{grid-row:span 10;align-self:start;margin-bottom:0}}@media (min-width:1500px){header,.footerbar{padding-inline:max(28px,50% - 632px)}main>.view,.buddy-dock{max-width:1320px}}.buddy-bubble.quoting{max-width:none;font-size:12px;font-weight:700}.buddy-cite{color:var(--muted);margin-top:5px;font-size:10.5px;font-style:italic;font-weight:800;display:block}.buddy-tap{position:relative}.buddy-hint{background:var(--surface);border:2px solid var(--ink-line);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;line-height:1;animation:2.2s ease-in-out infinite buddyHint;display:flex;position:absolute;top:-2px;right:-4px}@keyframes buddyHint{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--blue) 55%, transparent);transform:scale(1)}50%{transform:scale(1.12);box-shadow:0 0 0 7px #0000}}@media (prefers-reduced-motion:reduce){.buddy-hint{animation:none}}.buddy-tap{width:66px;height:66px}.chest-open-btn{cursor:pointer;width:100%;color:inherit;background:0 0;border:none;padding:0;font-family:inherit;display:block}.chest-open-btn .chest-box{display:inline-block}.chest-open-btn:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:16px}.chest-open-btn:active{transform:scale(.97)}.buddy-dock.free{flex-direction:row-reverse;align-items:flex-start;width:auto;max-width:min(78vw,420px);padding:0;top:0;left:0;transform:none}.buddy-dock.free .buddy-bubble{margin-right:8px}.buddy-dock.dragging .buddy-tap{cursor:grabbing;animation:none;transform:scale(1.08)}.buddy-dock.dragging .buddy-bubble{opacity:.35}.buddy-tap{cursor:grab;touch-action:none}@media (min-width:1024px){.buddy-dock.free{max-width:420px;padding:0}}.auth-lockup{justify-content:center;align-items:center;gap:12px;margin:0 auto 14px;display:flex}.auth-lockup-tree{object-fit:contain;flex:none;width:64px;height:64px}.auth-lockup-words{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.auth-lockup-name{color:var(--ink);letter-spacing:.01em;font-family:"Baloo 2",system-ui,sans-serif;font-size:20px;font-weight:800;line-height:1.1}.auth-lockup-tag{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:2px;font-size:10.5px;font-weight:800}@media (max-width:380px){.auth-lockup{gap:9px}.auth-lockup-tree{width:52px;height:52px}.auth-lockup-name{font-size:17px}.auth-lockup-tag{font-size:9.5px}}.share-poster-img{aspect-ratio:1200/630;border:3px solid var(--ink-line);width:100%;height:auto;box-shadow:4px 4px 0 var(--ink-line);background:var(--surface-2);border-radius:16px;display:block}.share-poster-compact{margin-top:10px;padding:12px 14px}.share-poster-compact .share-poster-num{font-size:34px}.share-poster-compact .share-poster-icon{font-size:20px}.share-poster-compact .share-poster-brand{display:none}.share-save{cursor:pointer;width:100%;color:var(--ink-dim);background:var(--surface-2);border:2px solid var(--line);border-radius:12px;margin-top:8px;padding:9px;font-family:inherit;font-size:12.5px;font-weight:800}.share-save:active{transform:scale(.98)}.share-save:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.share-landing{text-align:center;max-width:520px}.share-landing-card{aspect-ratio:1200/630;border:3px solid var(--ink-line);width:100%;height:auto;box-shadow:5px 5px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:16px;margin:4px 0 16px;display:block}.share-landing-title{margin-bottom:6px;font-family:"Baloo 2",system-ui,sans-serif;font-size:22px}.share-landing-cta{width:100%;margin-top:14px}.share-landing-alt{color:var(--muted);margin-top:12px;font-size:12.5px;font-weight:700}.share-landing-alt a{color:var(--blue-dk);font-weight:800}.home-quick{gap:10px;margin-top:14px;display:flex}.home-quick-btn{cursor:pointer;min-width:0;color:var(--blue-dk);background:color-mix(in srgb, var(--blue) 12%, var(--surface));border:2px solid color-mix(in srgb, var(--blue) 35%, var(--line));font-variant-numeric:lining-nums tabular-nums;border-radius:14px;flex:1;padding:12px 10px;font-family:inherit;font-size:13px;font-weight:800}.home-quick-btn:active{transform:scale(.97)}.home-quick-btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.home-quick-friends{color:var(--violet-dk);background:color-mix(in srgb, var(--violet) 12%, var(--surface));border-color:color-mix(in srgb, var(--violet) 35%, var(--line))}.bd-flaggrid{flex-direction:column;align-items:center;gap:6px;display:flex}.bd-flagcap{color:var(--blue);align-self:flex-start;font-family:Nunito,sans-serif;font-size:11.5px;font-style:italic;font-weight:800}.bd-flagrow{grid-template-columns:repeat(2,1fr);gap:10px 8px;width:100%;display:grid}@media (min-width:560px){.bd-flagrow{grid-template-columns:repeat(4,1fr);gap:6px}}.bd-flagpanel{width:100%;height:auto}.bd-flaganswer{font-family:var(--font-num);color:var(--blue-dk);background:color-mix(in srgb, var(--blue) 12%, var(--surface));border:2px solid color-mix(in srgb, var(--blue) 40%, var(--line));font-variant-numeric:lining-nums tabular-nums;border-radius:10px;margin-top:4px;padding:5px 18px;font-size:22px;font-weight:700}.lesson-tip{align-items:flex-end;gap:8px;margin-top:14px;display:flex}.lesson-tip-bubble{background:var(--surface);border:3px solid var(--ink-line);min-width:0;box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 20%, transparent);border-radius:16px 16px 4px;flex-direction:column;flex:1;gap:3px;padding:11px 13px;display:flex}.lesson-tip-ja{color:var(--ink);font-size:13px;font-weight:800}.lesson-tip-en{color:var(--blue-dk);font-size:12.5px;font-weight:700}.lesson-tip-mascot{flex:none;width:58px;height:58px}.bookexample-second{margin-top:10px}.bd-flagcarry{font-family:var(--font-num);fill:var(--ink-dim);font-size:11px;font-weight:700}.bd-tick{stroke:var(--sun1);stroke-width:1.4px;fill:none}.bd-flagrow-3{grid-template-columns:repeat(3,1fr)}@media (min-width:560px){.bd-flagrow-3{grid-template-columns:repeat(3,1fr)}}.bd-window{fill:color-mix(in srgb, var(--sun2) 30%, transparent);stroke:var(--sun1);stroke-width:1.2px}.bd-flagrow-2{grid-template-columns:repeat(2,1fr)}.auth-hero{text-align:center;background:color-mix(in srgb, var(--sun2) 10%, var(--surface-2));border:2px solid color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:18px;margin:2px 0 18px;padding:16px 14px 18px}.auth-kicker{letter-spacing:.18em;color:var(--sun1);font-size:11px;font-weight:800}.auth-hero-title{color:var(--ink);text-wrap:balance;margin-top:8px;font-family:"Baloo 2",system-ui,sans-serif;font-size:26px;font-weight:800;line-height:1.2}.auth-hero-pitch{color:var(--muted);text-wrap:pretty;margin:10px 0 0;font-size:13px;font-weight:600;line-height:1.65}.auth-lang{margin:0 0 16px}.race-box{background:var(--surface-2);border:2px solid color-mix(in srgb, var(--ink-line) 20%, transparent);border-radius:16px;margin-top:14px;padding:12px}.race-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.race-title{color:var(--ink);font-size:14px;font-weight:900}.race-host-btn{border:2px solid var(--ink-line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800}.race-host-btn:active{transform:scale(.96)}.race-hint{color:var(--muted);margin-top:5px;font-size:11.5px;line-height:1.5}.race-empty{margin-top:10px}.race-form{flex-direction:column;gap:8px;margin-top:10px;display:flex}.race-row{gap:8px;display:flex}.race-field{color:var(--muted);flex-direction:column;flex:1;gap:4px;font-size:11px;font-weight:800;display:flex}.race-field select{font:inherit;color:var(--ink);border:2px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 10px;font-size:13px;font-weight:700}.race-go{width:100%;padding:10px;font-size:14px}.race-row-item{background:var(--surface);border:2px solid var(--line);border-radius:12px;align-items:center;gap:9px;margin-top:9px;padding:9px 10px;display:flex}.race-row-body{text-align:left;flex:1;min-width:0}.race-row-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800;overflow:hidden}.race-row-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;overflow:hidden}.duel-accept.ghost{background:var(--surface-2);color:var(--ink);border:2px solid var(--line)}.standings{margin-top:14px}.standings-row{background:var(--surface);border:2px solid var(--line);border-radius:11px;align-items:center;gap:10px;margin-top:6px;padding:7px 10px;display:flex}.standings-row.me{border-color:var(--sun1);background:color-mix(in srgb, var(--sun2) 14%, var(--surface))}.standings-rank{width:22px;height:22px;color:var(--ink);background:var(--surface-3);border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:900;display:grid}.standings-rank.rank-1{background:var(--gold);color:#3a2400}.standings-rank.rank-2{color:#2b2b33;background:#c9ceda}.standings-rank.rank-3{color:#3a2400;background:#e0a97b}.standings-name{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:800;overflow:hidden}.standings-stat{color:var(--muted);flex:none;font-size:11px}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tile-key{display:none}@media (min-width:760px) and (pointer:fine){.choice-tile,.target-tile,.balloon-tile{position:relative}.tile-key{width:17px;height:17px;font-family:var(--font-num);color:var(--muted);background:color-mix(in srgb, var(--ink-line) 9%, transparent);border:1px solid color-mix(in srgb, var(--ink-line) 16%, transparent);border-radius:6px;place-items:center;font-size:10px;font-weight:800;line-height:1;display:grid;position:absolute;top:5px;left:6px}.balloon-tile .tile-key{color:#fff;background:#00000038;border-color:#ffffff4d;top:2px;left:2px}.choice-tile.eliminated .tile-key,.target-tile.eliminated .tile-key{opacity:0}}.choice-tile:focus-visible,.target-tile:focus-visible,.balloon-tile:focus-visible,.numberline-dot:focus-visible,.btn:focus-visible,.menu-row:focus-visible,.bottomnav-item:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.menu-row-install{color:var(--ink)}.menu-row-install .menu-row-val{color:var(--sun1);font-weight:800}.race-share{cursor:pointer;border:2px solid var(--line);background:var(--surface-2);border-radius:10px;flex:none;width:30px;height:30px;font-size:14px;line-height:1}.race-share:active{transform:scale(.92)}.duel-rematch{border:2px solid var(--violet);cursor:pointer;background:color-mix(in srgb, var(--violet) 12%, var(--surface));color:var(--violet-dk);white-space:nowrap;border-radius:999px;flex:none;margin-left:8px;padding:5px 10px;font-size:11.5px;font-weight:800}.duel-rematch:active{transform:scale(.95)}.invite-card{text-align:center;background:var(--surface-2);border:2px solid var(--ink-line);border-radius:16px;margin:4px 0 14px;padding:14px}.invite-name{color:var(--ink);font-size:19px;font-weight:900}.invite-meta{color:var(--muted);margin-top:5px;font-size:12.5px}.invite-note{color:var(--muted);text-align:center;margin:0 0 16px;font-size:12.5px;line-height:1.7}.invite-note-en{color:var(--faint);font-size:11.5px}.guest-banner{background:color-mix(in srgb, var(--gold) 16%, var(--surface));border:2px solid color-mix(in srgb, var(--gold-dk) 45%, transparent);border-radius:14px;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;display:flex}.guest-banner-dot{color:var(--gold-dk);font-size:9px;line-height:1;animation:2s ease-in-out infinite guestPulse}@keyframes guestPulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.guest-banner-dot{animation:none}}.guest-banner-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.guest-banner-body strong{color:var(--ink);font-size:12.5px}.guest-banner-body span{color:var(--muted);font-size:11px;line-height:1.45}.guest-banner-cta{color:#fff;background:var(--gold-dk);border:2px solid var(--ink-line);border-radius:999px;flex:none;padding:8px 14px;font-size:12.5px;font-weight:800;text-decoration:none}.guest-save-btn{flex:1;place-items:center;padding:14px 16px;font-size:14px;text-decoration:none;display:grid}.auth-try{text-align:center;color:var(--sun1);border:2px dashed color-mix(in srgb, var(--sun1) 45%, transparent);border-radius:12px;margin-top:14px;padding:11px 10px;font-size:13px;font-weight:800;text-decoration:none;display:block}.auth-try:active{transform:scale(.98)}.guest-boot{min-height:60vh}.offline-strip{z-index:40;text-align:center;letter-spacing:.02em;color:#3a2400;background:var(--gold);padding:5px 10px calc(5px + env(safe-area-inset-top,0px));font-size:11.5px;font-weight:800;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 8px -3px #14143273}.q-pips{gap:6px;margin-bottom:9px;display:flex}.q-pip{background:var(--surface-3);border:2px solid var(--line);border-radius:999px;flex:1;height:9px;transition:background .25s,border-color .25s,transform .25s}.q-pip.hit{background:linear-gradient(90deg,var(--green),#7be23a);border-color:var(--green-dk)}.q-pip.miss{background:var(--wrong);border-color:var(--wrong-dk)}.q-pip.now{background:var(--gold);border-color:var(--gold-dk);animation:1.4s ease-in-out infinite pipNow;transform:scaleY(1.5)}@keyframes pipNow{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.q-pip.now{animation:none}}.rollup{font-variant-numeric:lining-nums tabular-nums}.path-more{z-index:2;cursor:pointer;border:3px dashed var(--line-strong);background:var(--surface);color:var(--ink-dim);border-radius:18px;flex-direction:column;align-items:center;gap:2px;margin:6px auto 4px;padding:12px 22px;font-family:inherit;font-size:13.5px;font-weight:800;display:flex;position:relative}.path-more:active{transform:scale(.97)}.path-more-sub{color:var(--faint);font-size:10.5px;font-weight:700}.result-perfect{justify-content:center;margin:2px 0 6px;display:flex}.result-perfect span{letter-spacing:.14em;color:#3a2400;border:2px solid var(--ink-line);background:linear-gradient(100deg,var(--gold),#ffe68a,var(--gold));box-shadow:2px 2px 0 var(--ink-line);background-size:200% 100%;border-radius:999px;padding:5px 16px;font-size:13px;font-weight:900;animation:2.2s linear infinite perfectSheen}@keyframes perfectSheen{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.result-perfect span{animation:none}}.run-recap{text-align:left;border:2px solid var(--line);background:var(--surface-2);border-radius:14px;margin-top:16px;overflow:hidden}.run-recap-head{letter-spacing:.06em;color:var(--muted);border-bottom:2px solid var(--line);padding:8px 12px;font-size:11px;font-weight:800}.run-row{border-top:1px solid color-mix(in srgb, var(--line) 55%, transparent);align-items:center;gap:9px;padding:8px 12px;font-size:13px;display:flex}.run-row:first-of-type{border-top:none}.run-mark{color:#fff;background:var(--wrong);border-radius:50%;flex:none;place-items:center;width:18px;height:18px;font-size:11px;font-weight:900;display:grid}.run-row.ok .run-mark{background:var(--green-dk)}.run-q{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.run-a{color:var(--muted);flex:none;font-weight:700}.run-a s{opacity:.6;margin-right:4px}.run-a strong{color:var(--green-dk)}.run-row.ok .run-a{color:var(--green-dk);font-weight:800}.match-head{gap:10px;margin-bottom:10px;display:flex}.match-stat{background:var(--surface-2);border:2px solid var(--line);border-radius:13px;flex:1;justify-content:space-between;align-items:baseline;padding:9px 13px;display:flex}.match-stat-k{letter-spacing:.05em;color:var(--muted);font-size:10.5px;font-weight:800}.match-stat-v{color:var(--ink);font-size:17px;font-weight:900}.match-hint{text-align:center;color:var(--muted);margin:0 0 12px;font-size:12.5px;font-weight:700}.match-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}@media (min-width:560px){.match-grid{grid-template-columns:repeat(4,1fr)}}.match-tile{aspect-ratio:1/.86;cursor:pointer;font-family:var(--font-num);color:var(--ink);background:var(--surface);border:3px solid var(--ink-line);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);overflow-wrap:anywhere;border-radius:15px;place-items:center;padding:6px 4px;font-size:15px;font-weight:800;line-height:1.15;transition:transform .12s,background .18s,border-color .18s,opacity .3s;display:grid}.match-tile.ans{background:color-mix(in srgb, var(--sky1) 13%, var(--surface))}.match-tile:active{transform:scale(.94)}.match-tile.picked{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 22%, var(--surface));transform:translateY(-2px)}.match-tile.wrong{border-color:var(--wrong);background:color-mix(in srgb, var(--wrong) 18%, var(--surface));animation:.4s shake}.match-tile.cleared{opacity:.18;pointer-events:none;box-shadow:none;border-style:dashed}.match-done{text-align:center;background:var(--surface-2);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:18px;margin-top:18px;padding:18px 14px}.match-done-title{color:var(--ink);font-family:"Baloo 2",system-ui,sans-serif;font-size:21px;font-weight:800}.match-done-line{color:var(--muted);margin-top:5px;font-size:13px;font-weight:700}.match-again{width:100%;margin-top:14px;padding:13px}.games-lede{color:var(--muted);text-align:center;margin:0 0 14px;font-size:12.5px;font-weight:700;line-height:1.6}.games-grid{flex-direction:column;gap:11px;display:flex}.game-card{cursor:pointer;text-align:left;background:var(--surface);border:3px solid var(--ink-line);width:100%;box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:18px;align-items:center;gap:13px;padding:14px;font-family:inherit;transition:transform .12s;display:flex}.game-card:active{box-shadow:2px 2px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);transform:translate(2px,2px)}.game-card-icon{background:color-mix(in srgb, var(--g) 18%, var(--surface-2));border:2px solid color-mix(in srgb, var(--g) 45%, transparent);border-radius:14px;flex:none;place-items:center;width:46px;height:46px;font-size:23px;display:grid}.game-card-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.game-card-name{color:var(--ink);font-size:15px;font-weight:900}.game-card-blurb{color:var(--muted);font-size:11.5px;font-weight:600;line-height:1.4}.game-card-best{color:var(--g);background:color-mix(in srgb, var(--g) 12%, transparent);border-radius:999px;flex:none;padding:4px 9px;font-size:11px;font-weight:800}.game-card-go{color:var(--faint);flex:none;font-size:22px}.games-more{text-align:center;color:var(--faint);border:2px dashed var(--line);border-radius:14px;margin-top:16px;padding:13px;font-size:11.5px;font-weight:700}.big-pair{grid-template-columns:1fr 1fr;gap:12px;display:grid;position:relative}.big-card{aspect-ratio:1/1.15;cursor:pointer;background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:10px;font-family:inherit;transition:transform .12s,background .2s,border-color .2s;display:flex}.big-card:active{transform:scale(.96)}.big-card-q{color:var(--ink);text-align:center;overflow-wrap:anywhere;font-size:24px;font-weight:900}.big-card-a{color:var(--muted);font-size:14px;font-weight:800}.big-card.right{border-color:var(--green-dk);background:color-mix(in srgb, var(--green) 18%, var(--surface))}.big-card.wrong{border-color:var(--wrong);background:color-mix(in srgb, var(--wrong) 15%, var(--surface));animation:.4s shake}.big-vs{z-index:2;font-family:var(--font-num);color:var(--ink);background:var(--gold);border:2px solid var(--ink-line);border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.odd-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.odd-tile{aspect-ratio:1/.8;cursor:pointer;background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px;font-family:inherit;transition:transform .12s,background .2s,border-color .2s;display:flex}.odd-tile:active{transform:scale(.96)}.odd-n{color:var(--ink);font-size:27px;font-weight:900}.odd-ds{color:var(--muted);font-size:12px;font-weight:800}.odd-tile.right{border-color:var(--green-dk);background:color-mix(in srgb, var(--green) 20%, var(--surface))}.odd-tile.wrong{border-color:var(--wrong);background:color-mix(in srgb, var(--wrong) 16%, var(--surface));animation:.4s shake}.odd-tile.reveal{border-color:var(--green-dk)}.sort-list{flex-direction:column;gap:10px;display:flex}.sort-card{cursor:pointer;text-align:left;background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:16px;align-items:center;gap:12px;padding:14px;font-family:inherit;transition:transform .12s,opacity .2s,background .2s;display:flex}.sort-card:active{transform:scale(.98)}.sort-order{width:28px;height:28px;color:var(--muted);background:var(--surface-3);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:900;display:grid}.sort-card.taken .sort-order{background:var(--green-dk);color:#fff}.sort-card.taken{opacity:.55}.sort-q{color:var(--ink);flex:1;font-size:18px;font-weight:800}.sort-v{color:var(--muted);flex:none;font-size:13px;font-weight:800}.sort-card.wrong{border-color:var(--wrong);background:color-mix(in srgb, var(--wrong) 16%, var(--surface));animation:.4s shake}.mem-tile{background:linear-gradient(140deg,var(--violet),var(--violet-dk));color:#fff;border-color:var(--ink-line);font-size:22px}.mem-tile.up{background:var(--surface);color:var(--ink);font-size:15px}.mem-tile.up.ans{background:color-mix(in srgb, var(--sky1) 13%, var(--surface))}.daily-game{cursor:pointer;text-align:left;color:#fff;border:3px solid var(--ink-line);background:linear-gradient(130deg,var(--violet),var(--sun3) 60%,var(--sun1));width:100%;box-shadow:4px 4px 0 var(--ink-line);border-radius:18px;flex-direction:column;align-items:flex-start;gap:3px;margin-bottom:14px;padding:15px 16px;font-family:inherit;display:flex;position:relative;overflow:hidden}.daily-game:after{content:"";pointer-events:none;background:repeating-linear-gradient(115deg,#ffffff1f 0 2px,#0000 2px 22px);position:absolute;inset:0}.daily-game:active{box-shadow:2px 2px 0 var(--ink-line);transform:translate(2px,2px)}.daily-game-tag{letter-spacing:.18em;opacity:.9;font-size:10px;font-weight:900}.daily-game-name{font-size:19px;font-weight:900}.daily-game-sub{opacity:.92;font-size:11.5px;font-weight:700;line-height:1.45}.quick-prompt{text-align:center;color:var(--ink);background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);overflow-wrap:anywhere;border-radius:20px;margin-bottom:12px;padding:22px 12px;font-size:34px;font-weight:900}.quick-options{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.quick-options.n3{grid-template-columns:repeat(3,1fr)}.quick-options.n4{grid-template-columns:repeat(2,1fr)}.quick-opt{cursor:pointer;min-height:64px;color:var(--ink);background:var(--surface);border:3px solid var(--ink-line);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:16px;place-items:center;padding:10px;font-family:inherit;font-size:19px;font-weight:800;transition:transform .12s,background .2s,border-color .2s,opacity .2s;display:grid}.quick-opt:active{transform:scale(.96)}.quick-opt.right{border-color:var(--green-dk);background:color-mix(in srgb, var(--green) 20%, var(--surface))}.quick-opt.wrong{border-color:var(--wrong);background:color-mix(in srgb, var(--wrong) 16%, var(--surface));animation:.4s shake}.quick-opt.reveal{border-color:var(--green-dk)}.quick-opt.dim{opacity:.45}.quick-note{text-align:center;min-height:22px;color:var(--green-dk);opacity:0;margin-top:12px;font-size:13.5px;font-weight:800;transition:opacity .25s}.quick-note.show{opacity:1}.sprint-bar{background:color-mix(in srgb, var(--sun1) 12%, var(--surface));border:2px solid var(--sun1);border-radius:13px;align-items:center;gap:10px;margin-bottom:10px;padding:9px 12px;display:flex}.sprint-tag{letter-spacing:.12em;color:var(--sun1);font-size:11px;font-weight:900}.sprint-progress{color:var(--ink);font-size:15px;font-weight:900}.sprint-best{color:var(--muted);margin-left:auto;font-size:11px;font-weight:800}.sprint-done{width:100%}.run-row.tap{cursor:pointer}.run-row.tap:hover,.run-row.tap:focus-visible{background:color-mix(in srgb, var(--wrong) 8%, var(--surface-2));outline:none}.run-recap-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.run-recap-cta{letter-spacing:0;color:var(--sun1);text-transform:none;font-size:10px;font-weight:800}.lesson-editor{margin-top:14px}.lesson-editor-toggle{cursor:pointer;color:var(--ink);background:var(--surface-2);border:2px dashed var(--line-strong);border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-family:inherit;font-size:12.5px;font-weight:800;display:inline-flex}.lesson-editor-dot{background:var(--sun1);border-radius:50%;width:8px;height:8px}.lesson-editor-form{background:var(--surface);border:2px solid var(--line-strong);border-radius:16px;flex-direction:column;gap:10px;margin-top:10px;padding:14px;display:flex}.lesson-editor-form label{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;font-weight:800;display:flex}.lesson-editor-form textarea{font:inherit;color:var(--ink);border:2px solid var(--line);background:var(--surface-2);resize:vertical;border-radius:10px;padding:9px 10px;font-size:13px;font-weight:600}.lesson-editor-actions{justify-content:flex-end;gap:8px;display:flex}.lesson-editor-actions .btn{padding:10px 16px;font-size:13px}.target-tile,.balloon-tile,.choice-tile,.catch-tile{container-type:inline-size}.target-tile{font-size:clamp(19px,15cqi,52px)}.balloon-body{font-size:clamp(17px,15cqi,46px)}.choice-tile{font-size:clamp(24px,12cqi,40px)}.catch-tile{font-size:clamp(15px,16cqi,34px)}.game-card.locked{opacity:.72}.game-card.locked .game-card-icon{filter:grayscale(.6)}.game-card-lock{flex:none;font-size:16px}.lock-sheet{text-align:center}.lock-sheet-icon{margin-bottom:6px;font-size:40px}.lock-sheet h3{margin-bottom:8px;font-size:18px}.lock-sheet p{color:var(--muted);margin:0 0 16px;font-size:13px;line-height:1.7}.lock-sheet .auth-submit{text-align:center;text-decoration:none;display:block}.lock-sheet-signin{margin-top:8px}.lock-sheet-later{width:100%;color:var(--muted);box-shadow:none;border-color:#0000;margin-top:8px;font-weight:700}.ttt-card{cursor:pointer;text-align:left;color:#fff;border:3px solid var(--ink-line);width:100%;box-shadow:4px 4px 0 var(--ink-line);background:linear-gradient(130deg,#1c5fa8,#3a1d7a 60%,#8a5e6e);border-radius:18px;align-items:center;gap:14px;margin-bottom:12px;padding:14px 16px;font-family:inherit;display:flex}.ttt-card:active{box-shadow:2px 2px 0 var(--ink-line);transform:translate(2px,2px)}.ttt-card-board{flex:none;grid-template-columns:repeat(3,1fr);gap:3px;width:54px;height:54px;display:grid}.ttt-card-board i{color:#fff;background:#ffffff29;border-radius:4px;place-items:center;font-size:11px;font-style:normal;font-weight:900;display:grid}.ttt-card-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.ttt-card-name{font-size:18px;font-weight:900}.ttt-card-sub{opacity:.9;font-size:11.5px;font-weight:700;line-height:1.4}.ttt-card .game-card-go{color:#ffffffb3}.ttt-setup{flex-direction:column;gap:12px;display:flex}.ttt-levels{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ttt-level{cursor:pointer;background:var(--surface);border:3px solid var(--line-strong);color:var(--ink);border-radius:14px;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;font-family:inherit;display:flex}.ttt-level.on{border-color:var(--ink-line);background:color-mix(in srgb, var(--gold) 22%, var(--surface));box-shadow:3px 3px 0 var(--ink-line)}.ttt-level-n{letter-spacing:.04em;color:var(--muted);font-size:12px;font-weight:900}.ttt-level.on .ttt-level-n{color:var(--gold-dk)}.ttt-level-t{text-align:center;font-size:12px;font-weight:800;line-height:1.25}.ttt-modes{flex-direction:column;gap:9px;display:flex}.ttt-mode{cursor:pointer;text-align:left;color:var(--ink);background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:16px;align-items:center;gap:12px;padding:14px;font-family:inherit;font-size:15px;font-weight:800;display:flex}.ttt-mode:active{transform:translate(2px,2px)}.ttt-mode.locked{opacity:.7}.ttt-mode-i{text-align:center;width:32px;font-size:24px}.ttt-mode .game-card-lock{margin-left:auto}.ttt-join{gap:8px;display:flex}.ttt-join input{text-transform:uppercase;letter-spacing:.2em;text-align:center;flex:1;font-size:18px}.ttt-top{align-items:center;gap:8px;margin-bottom:12px;display:flex}.ttt-player{background:var(--surface-2);border:3px solid var(--line);color:var(--ink);border-radius:14px;flex:1;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:800;transition:border-color .2s,background .2s;display:flex;position:relative;overflow:hidden}.ttt-player span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ttt-player.turn{border-color:var(--ink-line);box-shadow:3px 3px 0 var(--ink-line)}.ttt-player.x.turn{background:color-mix(in srgb, var(--sun1) 14%, var(--surface))}.ttt-player.o.turn{background:color-mix(in srgb, var(--sky2) 14%, var(--surface))}.ttt-glyph{font-size:20px;font-weight:900}.ttt-player.x .ttt-glyph{color:var(--sun1)}.ttt-player.o .ttt-glyph{color:var(--sky2)}.ttt-score{font-size:15px;font-weight:900}.ttt-vs{color:var(--muted);letter-spacing:.06em;flex:none;font-size:11px;font-weight:900}.ttt-room{text-align:center;background:var(--surface-2);border:2px dashed var(--line-strong);border-radius:16px;margin-bottom:12px;padding:14px}.ttt-room-label{letter-spacing:.1em;color:var(--muted);font-size:11px;font-weight:800}.ttt-room-code{letter-spacing:.28em;color:var(--ink);margin:4px 0 10px;font-size:34px;font-weight:900}.ttt-room-hint{color:var(--muted);margin-top:8px;font-size:11.5px;font-weight:700}.ttt-board{grid-template-columns:repeat(3,1fr);gap:10px;max-width:420px;margin:0 auto;display:grid}.ttt-board.wait{opacity:.85}.ttt-cell{aspect-ratio:1;cursor:pointer;background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:18px;place-items:center;padding:6px;font-family:inherit;transition:transform .12s,background .2s,border-color .2s;display:grid;container-type:inline-size}.ttt-cell:not(:disabled):active{transform:scale(.95)}.ttt-cell:disabled{cursor:default}.ttt-cell.sel{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 22%, var(--surface))}.ttt-cell.x{background:color-mix(in srgb, var(--sun1) 14%, var(--surface))}.ttt-cell.o{background:color-mix(in srgb, var(--sky2) 14%, var(--surface))}.ttt-cell.win{border-color:var(--gold-dk);background:color-mix(in srgb, var(--gold) 32%, var(--surface));animation:.9s ease-in-out infinite alternate tttWin}@keyframes tttWin{0%{transform:scale(1)}to{transform:scale(1.04)}}@media (prefers-reduced-motion:reduce){.ttt-cell.win{animation:none}}.ttt-mark{font-size:clamp(34px,46cqi,84px);font-weight:900;line-height:1;animation:.28s cubic-bezier(.2,1.6,.4,1) both tttPop}.ttt-cell.x .ttt-mark{color:var(--sun1)}.ttt-cell.o .ttt-mark{color:var(--sky2)}@keyframes tttPop{0%{opacity:0;transform:scale(.3)rotate(-12deg)}to{opacity:1;transform:scale(1)rotate(0)}}.ttt-sum{color:var(--ink);overflow-wrap:anywhere;text-align:center;font-size:clamp(13px,14cqi,26px);font-weight:800}.ttt-status{text-align:center;min-height:22px;color:var(--ink);margin-top:14px;font-size:16px;font-weight:900}.ttt-actions{justify-content:center;gap:8px;margin-top:12px;display:flex}.ttt-actions .btn{padding:11px 18px;font-size:13.5px}.ttt-sheet{text-align:center}.ttt-sheet .quick-prompt{margin-bottom:12px}.friend-ttt{cursor:pointer;border:2px solid var(--sky2);color:var(--sky2);background:color-mix(in srgb, var(--sky2) 10%, var(--surface));border-radius:999px;flex:none;margin-right:6px;padding:5px 9px;font-size:11px;font-weight:900}.friend-ttt:active{transform:scale(.95)}.ttt-clock-bar{background:var(--gold);height:5px;transition:width .1s linear;position:absolute;bottom:0;left:0}.ttt-clock-bar.low{background:var(--sun1)}.ttt-clock{text-align:center;background:var(--ink-line);color:#fff;border-radius:999px;flex:none;min-width:26px;padding:2px 6px;font-size:12px;font-weight:900}.ttt-clock.low{background:var(--sun1);animation:.5s steps(2,end) infinite tttTick}@keyframes tttTick{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.ttt-clock.low{animation:none}}.ttt-level-s{color:var(--muted);font-size:10.5px;font-weight:800}.pop-prompt{text-align:center;color:var(--ink);background:var(--surface);border:3px solid var(--ink-line);box-shadow:4px 4px 0 var(--ink-line);border-radius:16px;margin:2px 0 14px;padding:10px 14px;font-size:30px;font-weight:900}.pop-grid{grid-template-columns:repeat(3,1fr);gap:10px 12px;max-width:420px;margin:0 auto;display:grid}.pop-hole{aspect-ratio:1/.95;cursor:pointer;background:linear-gradient(180deg, color-mix(in srgb, var(--sky2) 14%, var(--surface)), color-mix(in srgb, var(--sky2) 34%, var(--surface)));border:3px solid var(--ink-line);box-shadow:3px 3px 0 color-mix(in srgb, var(--ink-line) 22%, transparent);border-radius:18px;padding:0;font-family:inherit;position:relative;overflow:hidden}.pop-hole:active{transform:scale(.96)}.pop-balloon{z-index:2;flex-direction:column;align-items:center;gap:2px;width:72%;transition:transform .18s cubic-bezier(.2,1.4,.4,1);display:flex;position:absolute;bottom:14%;left:50%;transform:translate(-50%,115%)}.pop-balloon.up{transform:translate(-50%)}.pop-face{filter:drop-shadow(0 2px #00000040);font-size:clamp(26px,9vw,40px);line-height:1}.pop-num{color:var(--ink);background:var(--surface);border:2px solid var(--ink-line);border-radius:999px;padding:2px 8px;font-size:clamp(14px,4.6vw,20px);font-weight:900}.pop-balloon.hit{transform:translate(-50%)scale(1.12)}.pop-balloon.hit .pop-face{animation:.35s both popBonk}.pop-balloon.hit .pop-num{background:var(--green);color:#fff;border-color:var(--green-dk)}.pop-balloon.wrong .pop-num{background:var(--wrong);color:#fff;border-color:var(--wrong);animation:.4s shake}.pop-balloon.reveal .pop-num{background:var(--gold);border-color:var(--gold-dk)}.pop-grid.miss .pop-balloon.up:not(.wrong):not(.reveal){transform:translate(-50%,115%)}@keyframes popBonk{0%{transform:scale(1)}45%{opacity:.6;transform:scale(1.5)}to{opacity:0;transform:scale(0)}}@media (prefers-reduced-motion:reduce){.pop-balloon{transition:none}.pop-balloon.hit .pop-face{animation:none}}
