.app{--side-w:0px}.sidebar{z-index:70;visibility:hidden;width:min(300px,86vw);transition:transform .28s var(--ease-out), visibility 0s linear .28s;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%)}.sidebar:focus{outline:none}.app.menu-open .sidebar{visibility:visible;transition:transform .28s var(--ease-out);transform:none;box-shadow:24px 0 60px -24px #0000004d}.side-backdrop{z-index:69;cursor:pointer;background:#00000059;border:none;padding:0;animation:.2s side-fade;position:fixed;inset:0}@keyframes side-fade{0%{opacity:0}}@media (width<=899.98px){body.menu-open{overflow:hidden}}.menu-btn{border:2px solid var(--line);background:var(--glass);width:44px;height:44px;color:var(--ink-muted);box-shadow:0 3px 0 var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:14px;flex:none;place-items:center;padding:0;transition:background .15s,transform .1s,box-shadow .1s;display:inline-grid}.menu-btn:hover{background:var(--glass-hover)}.menu-btn:active{box-shadow:0 1px 0 var(--line);transform:translateY(2px)}.menu-btn svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;width:22px;height:22px}.wordmark{letter-spacing:-.01em;white-space:nowrap;font-size:30px;font-weight:900;line-height:1.1;display:inline-flex}.wordmark span{color:var(--c);text-shadow:0 2px 0 color-mix(in srgb, var(--c) 55%, #000)}.wordmark span:nth-child(5){margin-left:.04em}.side{height:100%;padding:calc(22px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain;border-right:2px solid var(--line);background:var(--bg);flex-direction:column;display:flex;overflow-y:auto}.side-head{justify-content:space-between;align-items:center;gap:6px;padding:0 8px 22px;display:flex}.side-brand{border-radius:12px;min-width:0;text-decoration:none;display:flex}.side-brand .wordmark{transition:transform .2s var(--ease-out)}.side-brand:hover .wordmark{transform:rotate(-2deg)scale(1.03)}.side-close{border:2px solid var(--line);background:var(--glass);width:40px;height:40px;color:var(--ink-faint);cursor:pointer;border-radius:12px;flex:none;font-size:15px;font-weight:900}.side-close:hover{background:var(--glass-hover);color:var(--ink)}.side-nav{flex-direction:column;gap:6px;display:flex}.side-link{--nav:#1cb0f6;min-height:52px;color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;border:2px solid #0000;border-radius:14px;align-items:center;gap:14px;padding:6px 12px;font-size:14.5px;font-weight:800;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:flex;position:relative}.side-link:hover{background:var(--glass-hover)}.side-link.active{border-color:color-mix(in srgb, var(--nav) 55%, #fff);background:color-mix(in srgb, var(--nav) 14%, #fff);color:color-mix(in srgb, var(--nav) 82%, #000)}.side-ico{flex:none;place-items:center;width:32px;font-size:25px;line-height:1;display:grid}.side-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.side-lock{opacity:.7;flex:none;font-size:13px}.side-badge{background:color-mix(in srgb, var(--nav) 16%, #fff);color:color-mix(in srgb, var(--nav) 75%, #000);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;flex:none;padding:2px 6px;font-size:10px;font-weight:900}.side-games{border-left:2px solid var(--line);flex-direction:column;margin:0 0 6px 20px;padding-left:8px;display:flex}.side-group{flex-direction:column;gap:2px;display:flex}.side-grade{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;margin:10px 0 3px 10px;font-size:11px;font-weight:900}.side-link.sub{--nav:var(--accent);letter-spacing:0;text-transform:none;border-radius:12px;gap:8px;min-height:42px;padding:4px 6px;font-size:14.5px}.side-link.sub .side-ico{width:26px;font-size:19px}.side-kid{border:2px solid var(--line);box-shadow:0 3px 0 var(--line);border-radius:16px;flex-direction:column;margin:0 0 12px;padding:12px 14px;display:flex}.side-kid-hi{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900}.side-kid b{overflow-wrap:anywhere;font-size:20px;font-weight:900;line-height:1.25}.side-foot{margin-top:auto;padding-top:18px}.side-staff{border-top:2px solid var(--line);flex-direction:column;gap:4px;padding-top:12px;display:flex}.side-staff-title{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;margin:0 0 2px 14px;font-size:11px;font-weight:900}.side-staff .side-label{white-space:normal;line-height:1.25}.side-staff+.side-status{margin-top:10px}.side-status{border:2px solid color-mix(in srgb, var(--ok) 35%, #fff);background:color-mix(in srgb, var(--ok) 9%, #fff);color:var(--ok-ink);border-radius:16px;align-items:center;gap:10px;padding:10px 10px 10px 12px;display:flex}.side-status-text{flex:1;font-size:12.5px;font-weight:800;line-height:1.3}.side-status button{border:2px solid var(--line);cursor:pointer;background:var(--glass);color:var(--ink);box-shadow:0 2px 0 var(--line);border-radius:12px;flex:none;padding:8px 12px;font-size:13px;font-weight:900}.side-status button:hover{background:var(--glass-hover)}.side-cookies{cursor:pointer;color:var(--ink-faint);background:0 0;border:none;margin:12px 0 0 14px;padding:2px 0;font-size:12.5px;font-weight:800}.side-cookies:hover{color:var(--link)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.sidebar,.app.menu-open .sidebar{transition:none}}@media (width>=900px){.app{--side-w:280px}.app-main{margin-left:var(--side-w)}.sidebar{z-index:auto;width:var(--side-w);visibility:visible;transition:none;transform:none}.app.menu-open .sidebar{box-shadow:none}.side-backdrop,.menu-btn,.side-close,.app .kid-bar{display:none}}.fig-written{width:var(--fig-w,300px);max-width:100%;height:auto;font-family:var(--font);font-variant-numeric:tabular-nums;display:block;overflow:visible}.fig-written.places{filter:drop-shadow(0 3px #1b1f3a14)}.fig-written.column .paper-grid line{stroke:#cfe6d6;stroke-width:1px}.fig-written .fresh{animation:figPop .45s var(--ease-out) both;transform-box:fill-box;transform-origin:50%}.fig-written .lit{animation:figGlow .5s var(--ease-out) both}@keyframes figPop{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.25)}to{transform:scale(1)}}@keyframes figGlow{0%{opacity:0}}.fig-blocks-group.k .blk-k{background-image:linear-gradient(#ffffff80 2px,#0000 2px),linear-gradient(#ffffff38 1px,#0000 1px),linear-gradient(90deg,#ffffff38 1px,#0000 1px);background-size:100% 10%,10% 1%,10% 10%;border-radius:5px;width:46px;height:110px}.fig-terms{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:4px 5px;padding:10px 2px 4px;display:flex}.term{flex-direction:column;align-items:center;min-width:22px;display:flex;position:relative}.term-s{font-variant-numeric:tabular-nums;color:var(--surface-ink);font-size:32px;font-weight:900;line-height:1.2}.term.named .term-s{color:var(--term)}.term-name{background:color-mix(in srgb, var(--term) 14%, #fff);color:var(--term);white-space:nowrap;animation:pop .35s var(--ease-out) both;border-radius:999px;margin-top:6px;padding:3px 7px;font-size:12px;font-weight:900}.term.named:after{content:"";background:var(--term);opacity:.6;width:2px;height:8px;position:absolute;top:42px;left:50%}.term-step{color:#fff;width:22px;height:22px;animation:bounceIn .5s var(--ease-out) both;background:#e5484d;border-radius:50%;place-items:center;font-size:13px;font-weight:900;display:grid;position:absolute;top:-22px;left:50%;translate:-50%;box-shadow:0 2px #a8262b}.fig-terms:has(.term-step){flex-wrap:nowrap;gap:4px 3px;padding-top:28px}.fig-terms:has(.term-step) .term-s{white-space:nowrap;font-size:clamp(19px,6.4vw,27px)}.fig-table{border-collapse:separate;border-spacing:3px;font-variant-numeric:tabular-nums}.fig-table th,.fig-table td{text-align:center;border-radius:8px;padding:7px 10px;font-size:17px;line-height:1.25}.fig-table th{color:#3b3f63;background:#e8e6f5;font-weight:900}.fig-table td{background:var(--surface-2);color:var(--surface-ink);font-weight:800}.fig-table .lit{background:#ffe066;box-shadow:inset 0 0 0 2px #f5b400}.fig-chain{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 4px;display:flex}.chain-pill{box-shadow:inset 0 0 0 2px var(--surface-3), 0 3px 0 var(--surface-3);color:var(--surface-ink);white-space:nowrap;background:#fff;border-radius:14px;padding:7px 10px;font-size:18px;font-weight:900}.chain-link{min-width:34px;color:var(--accent-deep);flex-direction:column;align-items:center;display:flex}.chain-label{white-space:nowrap;font-size:12px;font-weight:900}.chain-arrow{font-size:24px;font-weight:900;line-height:.9}.fig-groups{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:10px;display:flex}.group{animation:pop .35s var(--ease-out) both;flex-direction:column;align-items:center;gap:4px;margin:0;display:flex}.group:nth-child(2){animation-delay:80ms}.group:nth-child(3){animation-delay:.16s}.group:nth-child(4){animation-delay:.24s}.group-box{letter-spacing:.04em;text-align:center;white-space:pre-line;word-break:break-all;background:#fff8e6;border-radius:14px;max-width:300px;padding:8px 10px;font-size:24px;line-height:1.25;display:block;box-shadow:inset 0 0 0 2px #f2d48a}.group figcaption{color:var(--surface-muted);font-size:13px;font-weight:900}.group.rest .group-box{box-shadow:none;background:#fff0f0;border:2px dashed #e5484d}.group.rest figcaption{color:#e5484d}.fig-fracparts{justify-content:center;align-items:center;gap:14px;display:flex}.fp-frac{flex-direction:column;align-items:center;font-size:54px;font-weight:900;line-height:1.05;display:inline-flex}.fp-n{border-bottom:5px solid var(--surface-ink);color:#e5484d;padding:0 10px 4px}.fp-d{color:#1c7fd0;padding:4px 10px 0}.fp-notes{flex-direction:column;gap:26px;max-width:200px;display:flex}.fp-note{color:var(--surface-muted);font-size:15px;font-weight:700;line-height:1.3}.fp-note.n b:first-child{color:#e5484d}.fp-note.d b:first-child{color:#1c7fd0}.ink-h{color:#9c4fc4;font-weight:900}.ink-t{color:#1c7fd0;font-weight:900}.ink-u{color:#e8590c;font-weight:900}.ink-r{color:#e5484d;font-weight:900}.ink-g{color:#2f9e44;font-weight:900}s{opacity:.75;text-decoration-color:#e5484d;text-decoration-thickness:.12em}.tc{--tc-bubble-max:270px;--tc-font:16px;font-family:var(--font);flex-direction:column;align-items:center;gap:14px;display:inline-flex;position:relative}.tc-sm{--tc-bubble-max:210px;--tc-font:14px;gap:12px}.tc-lg{--tc-bubble-max:330px;--tc-font:18px}.tc-stage{width:var(--tc-w);height:var(--tc-h);flex:none;position:relative}.tc-layer{will-change:transform;position:absolute;inset:0}.tc-art{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;display:block;position:absolute;inset:0}.tc-lids{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tc-shadow{background:radial-gradient(closest-side,#00000073,#0000002e 60%,#0000);border-radius:50%;height:9%;position:absolute;bottom:0;translate:-50% 45%}.tc-bubble{z-index:1;max-width:var(--tc-bubble-max);border:2px solid var(--line,#e5e5e5);min-width:64px;color:var(--surface-ink,#3c3c3c);font-size:var(--tc-font);text-align:center;text-wrap:balance;transform-origin:var(--tail-x) calc(100% + 10px);background:#fff;border-radius:18px;padding:.6em .95em;font-weight:700;line-height:1.4;position:relative}.tc-bubble:after{content:"";top:100%;left:var(--tail-x);border:solid var(--line,#e5e5e5);background:#fff;border-width:0 2px 2px 0;width:14px;height:14px;margin:-6px 0 0 -7px;position:absolute;rotate:45deg}.tc-text{margin:0}.tc-text b{color:#e8590c;font-weight:900}.tc-waves{background:var(--accent,#2fd6c6);border-radius:999px;align-items:center;gap:2px;height:22px;padding:0 7px;display:flex;position:absolute;top:-9px;right:-9px;box-shadow:0 3px 8px -2px #00000059}.tc-waves i{background:#fff;border-radius:2px;width:3px;height:12px}.tc-fx{pointer-events:none;position:absolute;translate:-50% -50%}.tc-fx svg{width:100%;height:100%;display:block;overflow:visible}.tc-sparkle{width:calc(20px * var(--tc-k));height:calc(20px * var(--tc-k));filter:drop-shadow(0 0 4px #ffd84db3)}.tc-heart{width:calc(18px * var(--tc-k));height:calc(16px * var(--tc-k))}.tc-drop{width:calc(14px * var(--tc-k));height:calc(20px * var(--tc-k))}.tc-ask{font-size:calc(30px * var(--tc-k));color:#b7a8ff;text-shadow:0 2px #5b4bc4,0 0 12px #7c6ce899;font-weight:900;line-height:1}.tc-ask.small{font-size:calc(21px * var(--tc-k))}.tc-confetti{width:calc(8px * var(--tc-k));height:calc(12px * var(--tc-k));border-radius:2px}.tc-confetti.round{width:calc(9px * var(--tc-k));height:calc(9px * var(--tc-k));border-radius:50%}.tc-sr{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lesson-ask{background:var(--surface);cursor:pointer;height:40px;color:var(--surface-muted);letter-spacing:.05em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:2px solid #e5e5e5;border-radius:12px;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:900;transition:background .15s,color .15s,transform .1s,box-shadow .1s;display:inline-flex;box-shadow:0 3px #e5e5e5}.lesson-ask:hover{background:var(--surface-2);color:var(--surface-ink)}.lesson-ask:active{transform:translateY(2px);box-shadow:0 1px #e5e5e5}.lesson-ask>span[aria-hidden]{letter-spacing:0;font-size:17px}.lesson-ask.sent{border-color:color-mix(in srgb, var(--unit) 45%, #fff);color:color-mix(in srgb, var(--unit) 72%, #000)}@media (width<=380px){.lesson-top{gap:10px}.lesson-ask{padding:0 9px}.lesson-ask-word{display:none}}.verdict-ask{cursor:pointer;color:inherit;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;margin-top:6px;padding:4px 0;font-size:14px;font-weight:900;text-decoration:underline}.verdict-ask:hover{opacity:.8}.skip-inner{width:100%;max-width:600px;animation:fadeUp .25s var(--ease-out);align-items:center;gap:14px;display:flex}.skip-note{min-width:0;color:color-mix(in srgb, var(--unit) 72%, #000);flex:1;font-size:14px;font-weight:800;line-height:1.35}.skip-btn{background:var(--surface);cursor:pointer;color:var(--surface-muted);letter-spacing:.05em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:2px solid #e5e5e5;border-radius:14px;flex:none;padding:12px 18px;font-size:14px;font-weight:900;transition:background .15s,color .15s,transform .1s,box-shadow .1s;box-shadow:0 3px #e5e5e5}.skip-btn:hover{background:var(--surface-2);color:var(--surface-ink)}.skip-btn:active{transform:translateY(2px);box-shadow:0 1px #e5e5e5}.ask-back{z-index:85;overscroll-behavior:contain;background:#00000073;flex-direction:column;align-items:center;padding:16px;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.ask-card{max-width:420px;margin:auto 0;padding-bottom:14px}.ask-card:focus{outline:none}.ask-form{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.ask-where{background:color-mix(in srgb, var(--unit) 12%, #fff);color:color-mix(in srgb, var(--unit) 72%, #000);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:900}.ask-reasons{flex-direction:column;gap:8px;width:100%;margin-top:6px;display:flex}.ask-reason{background:var(--surface);cursor:pointer;width:100%;color:var(--surface-ink);text-align:left;-webkit-tap-highlight-color:transparent;border:2px solid #e5e5e5;border-radius:14px;padding:12px 14px;font-size:15px;font-weight:800;transition:background .15s,border-color .15s,transform .1s,box-shadow .1s;box-shadow:0 3px #e5e5e5}.ask-reason:hover{background:var(--surface-2)}.ask-reason:active{transform:translateY(2px);box-shadow:0 1px #e5e5e5}.ask-reason.on{border-color:var(--unit);background:color-mix(in srgb, var(--unit) 10%, #fff);color:color-mix(in srgb, var(--unit) 72%, #000);box-shadow:0 3px 0 color-mix(in srgb, var(--unit) 45%, #fff)}.ask-reason.on:before{content:"✓ "}.ask-text{text-align:left;flex-direction:column;gap:6px;width:100%;margin:6px 0 4px;display:flex}.ask-text span{color:var(--surface-muted);font-size:13px;font-weight:800}.ask-text small{color:var(--ink-faint);font-weight:700}.ask-text textarea{resize:vertical;background:var(--surface-2);width:100%;min-height:84px;color:var(--surface-ink);font:inherit;border:2px solid #e5e5e5;border-radius:14px;padding:12px 14px;font-size:16px;font-weight:700;line-height:1.4}.ask-text textarea:focus{border-color:var(--unit);background:var(--surface);outline:none}.ask-card .big-btn:disabled{opacity:.45;cursor:default;filter:none;transform:none}.course{--top-h:60px}.course-layout{width:100%;max-width:540px}.course-main{min-width:0}.course-top{z-index:20;height:var(--top-h);background:var(--bg);align-items:center;gap:10px;margin:-20px -16px 0;padding:0 16px;display:flex;position:sticky;top:0}.course-chips{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;gap:8px;margin-left:auto;padding:0;display:flex}.course-chips .chip{box-shadow:0 3px 0 var(--line);transition:transform .1s,box-shadow .1s}.course-chips:active .chip{box-shadow:0 1px 0 var(--line);transform:translateY(2px)}.chip{border:2px solid var(--line);background:var(--glass);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:4px;padding:7px 12px;font-size:14px;font-weight:900;display:inline-flex}.chip.xp{color:#e59a00}.chip.done{color:#58a700}.course-bar{justify-content:flex-end;margin-top:8px;display:flex}.course-hero{flex-direction:column;margin:16px 0 6px;display:flex}.course-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-deep);font-size:12px;font-weight:900}.course-hero h1{background:linear-gradient(100deg,#f08400 0%,#46a302 48%,#1590d0 100%);color:#0000;-webkit-background-clip:text;background-clip:text;width:fit-content;margin-top:4px;padding-bottom:2px;font-size:clamp(32px,9vw,42px)}.course-tagline{max-width:40ch;color:var(--ink-muted);margin-top:4px;font-size:15px;font-weight:600;line-height:1.45}.greet{align-items:flex-start;gap:12px;display:flex}.course-hero .greet{margin-top:12px}.greet .tc{flex:none}.greet-bubble{border:2px solid var(--line);min-width:0;color:var(--surface-ink);animation:pop .3s var(--ease-out) .2s backwards;background:#fff;border-radius:18px;flex:1;margin-top:18px;padding:10px 14px;font-size:15px;font-weight:700;line-height:1.4;position:relative}.greet-bubble:before{content:"";border:solid var(--line);background:#fff;border-width:2px 0 0 2px;width:14px;height:14px;margin:-7px 0 0 -8px;position:absolute;top:30px;left:0;rotate:-45deg}.greet-bubble b{color:var(--accent-deep);font-weight:900}.facts{grid-template-columns:repeat(var(--n,4), minmax(0, 1fr));gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.facts li{border:2px solid var(--line);background:var(--glass);box-shadow:0 3px 0 var(--line);border-radius:16px;flex-direction:column;align-items:center;gap:1px;padding:10px 2px 8px;display:flex}.facts b{font-variant-numeric:tabular-nums;font-size:22px;font-weight:900;line-height:1.1}.facts span{color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.unit{scroll-margin-top:var(--top-h);margin-top:16px}.unit-head{top:var(--top-h);z-index:15;background:var(--bg);padding-top:10px;position:sticky}.unit-bar{background:var(--unit);color:#fff;box-shadow:0 5px 0 color-mix(in srgb, var(--unit) 60%, #000);border-radius:20px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0 12px;padding:12px 12px 14px;transition:background .3s;display:grid;position:relative}.unit-bar-icon{background:#ffffff38;border-radius:14px;place-items:center;width:46px;height:46px;font-size:25px;display:grid}.unit-bar-text{min-width:0}.unit-bar-kicker{letter-spacing:.08em;text-transform:uppercase;opacity:.88;font-size:12px;font-weight:900;display:block}.unit-bar h2{overflow-wrap:anywhere;margin-top:1px;font-size:19px;line-height:1.2}.unit-bar-btn{color:#fff;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#ffffff24;border:2px solid #fff6;border-radius:14px;align-items:center;gap:6px;padding:9px 12px;font-size:13px;font-weight:900;transition:background .15s,transform .1s;display:inline-flex}.unit-bar-btn:hover{background:#ffffff42}.unit-bar-btn:active{transform:translateY(2px)}.unit-bar-btn svg{fill:none;stroke:currentColor;stroke-width:2.6px;stroke-linecap:round;width:20px;height:20px}.unit-bar-btn svg circle{fill:currentColor;stroke:none}.unit-bar-meter{background:#0003;border-radius:999px;grid-column:1/-1;height:6px;margin-top:10px;overflow:hidden}.unit-bar-meter span{border-radius:inherit;height:100%;transition:width .5s var(--ease-out);background:#fff;display:block}.unit.locked .unit-bar{color:var(--ink-muted);box-shadow:0 5px 0 var(--line);background:#f0f0f0}.unit.locked .unit-bar-icon{background:#fff}.unit.locked .unit-bar-btn{border-color:var(--line);color:var(--ink-muted);background:#fff}.unit.locked .unit-bar-meter{background:var(--line)}.unit.locked .unit-bar-meter span{background:var(--unit)}.unit-jump{border:2px solid var(--line);background:var(--surface);color:color-mix(in srgb, var(--unit) 72%, #000);box-shadow:0 4px 0 var(--line);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border-radius:14px;align-items:center;gap:6px;margin:24px auto 0;padding:10px 16px;font-size:14px;font-weight:900;display:flex}.unit-jump:hover{background:var(--glass-hover)}.unit-jump:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.unit.locked .unit-path{padding-top:30px}.unit-path{flex-direction:column;align-items:center;gap:20px;margin:0;padding:72px 0 6px;list-style:none;display:flex}.node-slot{translate:var(--sway) 0;flex-direction:column;align-items:center;display:flex;position:relative}.node-slot.open{z-index:30}.node-slot.current:not(:first-child){margin-top:34px}.node{background:var(--unit);width:78px;height:70px;box-shadow:0 8px 0 color-mix(in srgb, var(--unit) 58%, #000), inset 0 -4px 0 #00000014;cursor:pointer;border:none;border-radius:50%;place-items:center;padding:0;transition:transform .1s,box-shadow .1s;display:grid;position:relative}.node:active{box-shadow:0 2px 0 color-mix(in srgb, var(--unit) 58%, #000);transform:translateY(6px)}.node-face{filter:drop-shadow(0 2px 2px #0000002e);font-size:32px;line-height:1}.node.chest{border-radius:24px;width:90px;height:76px}.node.chest .node-face{font-size:38px}.node.locked{background:#e5e5e5;box-shadow:0 8px #b7b7b7}.node.locked .node-face{filter:grayscale();opacity:.55;font-size:26px}.node.current:before{content:"";border-radius:inherit;border:6px solid color-mix(in srgb, var(--unit) 55%, transparent);animation:1.8s ease-in-out infinite ring;position:absolute;inset:-11px}.node.chest.current:before{border-radius:32px}.node.fresh{animation:unlock .8s var(--ease-out)}.node-check{color:#5a3a00;background:#ffc800;border-radius:50%;place-items:center;width:26px;height:26px;font-size:15px;font-weight:900;display:grid;position:absolute;top:-5px;right:-3px;box-shadow:0 2px #c98a00}.node-start{z-index:2;color:color-mix(in srgb, var(--unit) 72%, #000);letter-spacing:.08em;white-space:nowrap;border:2px solid var(--line);box-shadow:0 3px 0 var(--line);background:#fff;border-radius:12px;padding:8px 14px;font-size:14px;font-weight:900;animation:1.3s ease-in-out infinite bob;position:absolute;bottom:calc(100% + 18px)}.node-start:before,.node-start:after{content:"";border:10px solid #0000;border-top-color:var(--line);border-bottom:0;position:absolute;top:100%;left:50%;translate:-50%}.node-start:before{margin-top:1px}.node-start:after{border-width:8px 8px 0;border-top-color:#fff}.node-stars{gap:2px;margin-top:12px;display:flex}.node-stars svg{color:#e5e5e5;width:16px;height:16px}.node-stars svg.on{color:#ffc800;filter:drop-shadow(0 0 4px #ffc80080)}.pop{z-index:31;width:min(280px,100vw - 32px);translate:calc(-50% - var(--sway)) 0;background:var(--unit);color:#fff;text-align:left;box-shadow:0 6px 0 color-mix(in srgb, var(--unit) 58%, #000), 0 20px 40px -16px #00000040;animation:pop .18s var(--ease-out);border-radius:20px;flex-direction:column;gap:6px;padding:16px;display:flex;position:absolute;top:calc(100% + 16px);left:50%}.pop:before{content:"";bottom:100%;left:calc(50% + var(--sway));border:10px solid #0000;border-bottom-color:var(--unit);position:absolute;translate:-50%}.pop.locked{color:var(--ink-muted);box-shadow:inset 0 0 0 2px var(--line), 0 6px 0 var(--line), 0 20px 40px -16px #0003;background:#fff}.pop.locked:before{border-bottom-color:var(--line)}.pop-kicker{letter-spacing:.06em;text-transform:uppercase;opacity:.85;font-size:12px;font-weight:900}.pop-title{font-size:18px;font-weight:900;line-height:1.25}.pop-note{opacity:.9;font-size:14px;font-weight:700}.pop .big-btn{color:color-mix(in srgb, var(--unit) 72%, #000);background:#fff;margin-top:8px;box-shadow:0 5px #0000002e}.pop-backdrop{z-index:25;cursor:default;background:0 0;border:none;position:fixed;inset:0}.path-end{text-align:center;flex-direction:column;align-items:center;gap:6px;margin:44px 0 10px;display:flex}.path-trophy{filter:grayscale()opacity(.45);font-size:64px}.path-end.won .path-trophy{filter:drop-shadow(0 0 22px #ffc800b3);animation:1.6s ease-in-out infinite bob}.path-end strong{font-size:18px}.path-end span{color:var(--ink-muted);font-size:14px;font-weight:600}.part-note{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:18px;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;display:flex}.part-note-icon{flex:none;font-size:26px;line-height:1}.part-note-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.part-note-text b{font-size:15px;font-weight:900;line-height:1.35}.part-whole{border:1px solid var(--line);background:var(--glass);color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;padding:8px 12px;font-size:13px;font-weight:900}.part-whole:hover{background:var(--glass-hover)}.practice-slot{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;margin:8px 0 4px;display:flex}.practice-slot+.node-slot.current{margin-top:52px}.practice-tile{text-align:center;border:2px solid color-mix(in srgb, var(--accent) 50%, #fff);background:linear-gradient(165deg, color-mix(in srgb, var(--accent) 16%, #fff), #fff 72%);width:158px;color:var(--ink);cursor:pointer;box-shadow:0 6px 0 color-mix(in srgb, var(--accent) 50%, #fff);border-radius:20px;flex-direction:column;align-items:center;gap:3px;padding:20px 12px 12px;transition:transform .1s,box-shadow .1s,filter .15s;display:flex;position:relative}.practice-tile:hover{filter:brightness(1.03)}.practice-tile:active{box-shadow:0 2px 0 color-mix(in srgb, var(--accent) 50%, #fff);transform:translateY(4px)}.practice-ribbon{background:var(--accent);color:#fff;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:900;position:absolute;top:-11px;left:50%;translate:-50%}.practice-tile-icon{background:linear-gradient(135deg, var(--accent), var(--accent-2));width:52px;height:52px;box-shadow:0 4px 14px -4px color-mix(in srgb, var(--accent) 75%, transparent);border-radius:50%;place-items:center;font-size:27px;display:grid}.practice-tile-title{margin-top:5px;font-size:15px;font-weight:900;line-height:1.2}.practice-tile-meta{color:var(--ink-muted);font-size:12px;font-weight:800}.practice-tile-meter{background:var(--line);border-radius:999px;width:100%;height:6px;margin-top:6px;overflow:hidden}.practice-tile-meter span{border-radius:inherit;background:var(--accent);height:100%;transition:width .5s var(--ease-out);display:block}.practice-tile.won{border-color:#ffc800;box-shadow:0 6px #e0a800,0 0 26px -8px #ffc80099}.practice-tile.won .practice-tile-meter span{background:#ffc800}.practice-tile.locked{border-color:var(--line);box-shadow:0 6px 0 var(--line);background:#f7f7f7}.practice-tile.locked .practice-ribbon{background:var(--line);color:var(--ink-muted)}.practice-tile.locked .practice-tile-icon{background:var(--line);box-shadow:none;filter:grayscale();font-size:22px}.practice-tile.locked .practice-tile-title{color:var(--ink-muted)}.practice-sheet{background:var(--surface);width:100%;max-width:420px;max-height:calc(100dvh - 32px);color:var(--surface-ink);animation:pop .25s var(--ease-out);border-radius:24px;padding:22px 18px 18px;position:relative;overflow-y:auto}.practice-x{color:#afafaf;cursor:pointer;background:0 0;border:none;border-radius:12px;width:36px;height:36px;font-size:20px;font-weight:900;position:absolute;top:12px;right:12px}.practice-x:hover{background:var(--surface-2);color:var(--surface-ink)}.practice-head{align-items:center;gap:14px;padding-right:36px;display:flex}.practice-badge{background:linear-gradient(135deg, var(--accent), var(--accent-2));width:60px;height:60px;box-shadow:0 5px 0 var(--accent-deep);border-radius:18px;flex:none;place-items:center;font-size:32px;display:grid}.practice-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);font-size:11px;font-weight:900;display:block}.practice-head h3{margin-top:2px;font-size:23px}.practice-blurb{color:var(--surface-muted);margin-top:12px;font-size:14px;font-weight:600;line-height:1.45}.practice-count,.practice-lock{border-radius:12px;margin-top:10px;padding:9px 12px;font-size:13px;font-weight:800;line-height:1.4}.practice-count{background:color-mix(in srgb, var(--accent) 14%, var(--surface));color:var(--accent-deep)}.practice-lock{background:var(--surface-2);color:var(--surface-muted)}.practice-rooms{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.room{border:2px solid var(--surface-3);background:var(--surface);width:100%;color:var(--surface-ink);text-align:left;cursor:pointer;box-shadow:0 3px 0 var(--surface-3);border-radius:16px;align-items:center;gap:12px;padding:10px 12px 10px 10px;transition:transform .1s,box-shadow .1s,border-color .15s;display:flex}.room:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 60%, var(--surface-3))}.room:active:not(:disabled){box-shadow:0 1px 0 var(--surface-3);transform:translateY(2px)}.room:disabled{cursor:default;opacity:.55}.room.won{border-color:color-mix(in srgb, #ffc800 55%, var(--surface-3))}.room-icon{background:color-mix(in srgb, var(--accent) 18%, var(--surface-2));border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-size:22px;display:grid}.room-text{flex-direction:column;flex:1;min-width:0;display:flex}.room-text strong{font-size:15px;font-weight:900;line-height:1.25}.room-text small{color:var(--surface-muted);font-size:12px;font-weight:800}.room-go{background:var(--unit);color:#fff;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 3px 0 color-mix(in srgb, var(--unit) 60%, #000);border-radius:999px;flex:none;padding:7px 12px;font-size:12px;font-weight:900}.room:disabled .room-go{background:var(--surface-3);color:var(--surface-muted);box-shadow:none}.room .node-stars{flex:none;margin-top:0}.room .node-stars svg{color:var(--surface-3)}.room .node-stars svg.on{color:#ffc800;filter:none}.back-dock{bottom:calc(20px + env(safe-area-inset-bottom));z-index:18;height:0;position:sticky}.back-to{border:2px solid var(--line);background:var(--surface);width:58px;height:58px;color:var(--unit);box-shadow:0 4px 0 var(--line), 0 14px 28px -14px #0000004d;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;animation:pop .22s var(--ease-out);border-radius:18px;place-items:center;padding:0;transition:transform .1s,box-shadow .1s,background .15s;display:grid;position:absolute;bottom:0;right:0}.back-to:hover{background:var(--glass-hover)}.back-to:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.back-to svg{fill:none;stroke:currentColor;stroke-width:3.2px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px;transition:rotate .25s var(--ease-out)}.back-to svg.down{rotate:180deg}.course-rail{scrollbar-width:none;flex-direction:column;gap:16px;max-height:calc(100dvh - 20px);padding:0 2px 24px;display:flex;position:sticky;top:20px;overflow-y:auto}.course-rail::-webkit-scrollbar{display:none}.rail-card{border:2px solid var(--line);background:var(--surface);border-radius:20px;padding:18px}.rail-h{margin-bottom:12px;font-size:18px}.rail-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.rail-head h2{font-size:18px}.rail-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:900}.rail-card .greet-bubble{margin-top:14px;font-size:14.5px}.rail-card .facts{margin-top:0}.rail-card .facts b{font-size:20px}.rail-card .facts span{font-size:10px}.next{background:var(--unit);color:#fff;box-shadow:0 5px 0 color-mix(in srgb, var(--unit) 60%, #000);border-radius:18px;margin-top:14px;padding:14px}.next-label{letter-spacing:.08em;text-transform:uppercase;opacity:.9;font-size:11px;font-weight:900;display:block}.next-lesson{align-items:center;gap:14px;margin-top:12px;display:flex}.next-node{background:#ffffff38;border-radius:50%;flex:none;place-items:center;width:54px;height:48px;font-size:24px;display:grid;position:relative;box-shadow:0 4px #0000002e}.next-node.chest{border-radius:16px}.next-node:before{content:"";border-radius:inherit;border:3px solid #ffffff73;animation:1.8s ease-in-out infinite ring;position:absolute;inset:-7px}.next-kicker{letter-spacing:.06em;text-transform:uppercase;opacity:.88;font-size:11px;font-weight:900;display:block}.next-lesson strong{font-size:17px;font-weight:900;line-height:1.25;display:block}.next .big-btn{color:color-mix(in srgb, var(--unit) 72%, #000);background:#fff;margin-top:14px;padding:12px 16px;font-size:15px;box-shadow:0 4px #0003}.next-won{color:var(--ink-muted);background:#ffc80014;border:2px solid #ffc80073;border-radius:16px;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;font-size:14px;font-weight:700;line-height:1.4;display:flex}.next-won span{filter:drop-shadow(0 0 14px #ffc80099);flex:none;font-size:34px;line-height:1}.last{border-top:2px solid var(--line);align-items:center;gap:10px;margin-top:14px;padding-top:12px;display:flex}.last-text{flex-direction:column;flex:1;min-width:0;display:flex}.last-text strong{font-size:14px;font-weight:900;line-height:1.3}.last .node-stars{flex:none;margin-top:0}.chap-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.chap{width:100%;color:var(--ink);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:2px solid #0000;border-radius:16px;align-items:center;gap:12px;padding:7px 10px 7px 7px;transition:background .15s,border-color .15s;display:flex}.chap:hover{background:var(--glass-hover)}.chap.on{border-color:color-mix(in srgb, var(--unit) 55%, #fff);background:color-mix(in srgb, var(--unit) 10%, #fff)}.chap:active .chap-icon{box-shadow:0 1px 0 color-mix(in srgb, var(--unit) 60%, #000);transform:translateY(2px)}.chap-icon{background:var(--unit);width:42px;height:42px;box-shadow:0 3px 0 color-mix(in srgb, var(--unit) 60%, #000);border-radius:13px;flex:none;place-items:center;font-size:22px;transition:transform .1s,box-shadow .1s;display:grid}.chap.locked .chap-icon{box-shadow:0 3px 0 var(--line);background:#efefef}.chap-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.chap-kicker{color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:900;display:flex}.chap-here{background:var(--unit);color:#fff;letter-spacing:.05em;border-radius:999px;padding:1px 7px;font-size:10px}.chap-text b{font-size:14.5px;font-weight:900;line-height:1.25}.chap.locked .chap-text b{color:var(--ink-muted)}.chap-meter{background:var(--line);border-radius:999px;height:5px;margin-top:5px;overflow:hidden}.chap-meter span{border-radius:inherit;background:var(--unit);height:100%;transition:width .5s var(--ease-out);display:block}.chap-count{text-align:right;min-width:34px;color:var(--ink-muted);font-variant-numeric:tabular-nums;flex:none;font-size:13px;font-weight:900}.chap-done{color:#5a3a00;background:#ffc800;border-radius:50%;place-items:center;width:26px;height:26px;font-size:14px;display:inline-grid;box-shadow:0 2px #c98a00}.progress{align-items:center;gap:18px;display:flex}.ring{flex:none;width:88px;height:88px;position:relative}.ring svg{width:100%;height:100%;display:block}.ring circle{fill:none;stroke-width:7px}.ring-track{stroke:var(--line)}.ring-fill{stroke:var(--accent);stroke-linecap:round;animation:ring-fill 1.1s var(--ease-out) .3s backwards}@keyframes ring-fill{0%{stroke-dashoffset:var(--full)}}.ring span{color:var(--ink-muted);letter-spacing:.03em;text-transform:uppercase;flex-direction:column;justify-content:center;align-items:center;font-size:9px;font-weight:800;line-height:1.2;display:flex;position:absolute;inset:0}.ring b{color:var(--ink);letter-spacing:0;font-variant-numeric:tabular-nums;font-size:20px}.stats{flex-direction:column;flex:1;min-width:0;margin:0;display:flex}.stats div{border-bottom:2px dashed var(--line);justify-content:space-between;align-items:baseline;gap:8px;padding:5px 0;display:flex}.stats div:last-child{border-bottom:none}.stats dt{color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:800}.stats dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:18px;font-weight:900}.stats dd small{color:var(--ink-faint);font-size:14px}.stats dd.gold{color:#e59a00}.how{margin-top:14px}.how-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.how-steps li{color:var(--ink-muted);align-items:center;gap:12px;font-size:14px;font-weight:600;line-height:1.4;display:flex}.how-steps b{color:var(--ink);font-weight:900}.how-icon{background:color-mix(in srgb, var(--c) 14%, #fff);width:40px;height:40px;box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--c) 45%, #fff);border-radius:12px;flex:none;place-items:center;font-size:20px;display:grid}.how-note{color:var(--ink-faint);margin-top:12px;font-size:13px;font-weight:700;line-height:1.45}.sheet-back{z-index:80;padding-left:var(--side-w,0px);background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:min(86dvh,780px);color:var(--surface-ink);border-radius:24px 24px 0 0;outline:none;flex-direction:column;display:flex;box-shadow:0 -12px 40px -16px #0000004d}.sheet-head{touch-action:none;cursor:grab;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:20px 12px 10px 20px;display:flex;position:relative}.sheet-head:active{cursor:grabbing}.sheet-grip{background:var(--line-deep);border-radius:999px;width:44px;height:5px;position:absolute;top:8px;left:50%;translate:-50%}.sheet-head h2{font-size:21px}.sheet-x{color:#afafaf;cursor:pointer;background:0 0;border:none;border-radius:12px;flex:none;width:40px;height:40px;font-size:19px;font-weight:900}.sheet-x:hover{background:var(--surface-2);color:var(--surface-ink)}.sheet-body{min-height:0;padding:4px 14px calc(20px + env(safe-area-inset-bottom));overscroll-behavior:contain;flex-direction:column;flex:1;gap:14px;display:flex;overflow-y:auto}.sheet-body .progress{border:2px solid var(--line);border-radius:18px;padding:12px 14px}.sheet-body .facts{margin-top:0}.sheet-body .how{border:2px solid var(--line);border-radius:18px;margin-top:0;padding:14px}@media (width>=1100px){.course{--top-h:0px}.course-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:40px;max-width:1000px;display:grid}}.text-btn{cursor:pointer;color:var(--surface-muted);letter-spacing:.05em;text-transform:uppercase;background:0 0;border:none;margin-top:6px;padding:12px;font-size:15px;font-weight:900}.text-btn.light{color:var(--ink-faint);font-size:12px}.text-btn:hover{color:var(--surface-ink)}.text-btn.light:hover{color:var(--ink)}.lesson{--accent:var(--unit);--accent-ink:#fff;--accent-deep:color-mix(in srgb, var(--unit) 72%, #000);--highlight:color-mix(in srgb, var(--unit) 68%, #000);z-index:60;background:var(--surface);color:var(--surface-ink);flex-direction:column;display:flex;position:fixed;inset:0}.lesson-top{align-items:center;gap:14px;width:100%;max-width:640px;margin:0 auto;padding:14px 16px 6px;display:flex}.lesson-x{color:#afafaf;cursor:pointer;background:0 0;border:none;border-radius:12px;flex:none;width:40px;height:40px;font-size:22px;font-weight:900}.lesson-x:hover{background:var(--surface-2);color:var(--surface-ink)}.lesson-bar{background:#e5e5e5;border-radius:999px;flex:1;height:16px;overflow:hidden}.lesson-bar span{background:var(--unit);min-width:16px;height:100%;transition:width .45s var(--ease-out);border-radius:999px;display:block;position:relative}.lesson-bar span:after{content:"";background:#ffffff59;border-radius:999px;height:4px;position:absolute;top:4px;left:8px;right:8px}.lesson-streak{color:#ff9600;animation:pop .25s var(--ease-out);flex:none;font-size:16px;font-weight:900}.lesson-body{width:100%;max-width:640px;animation:slideIn .28s var(--ease-out);flex:1;margin:0 auto;padding:10px 16px 200px;overflow-y:auto}.lesson-prompt{margin:8px 0 18px;font-size:21px;font-weight:800;line-height:1.4}.lesson-prompt b{color:var(--highlight)}.lesson-task{margin-bottom:8px}.retry-chip{color:#a15c00;background:#fff1d6;border-radius:999px;margin-top:6px;padding:5px 12px;font-size:13px;font-weight:900;display:inline-block}.lesson .btn-primary{box-shadow:0 5px 0 var(--accent-deep)}.lesson .btn-primary:active{box-shadow:0 2px 0 var(--accent-deep);transform:translateY(3px)}.lesson-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);font-size:13px;font-weight:900}.bubble{animation:pop .3s var(--ease-out);border:2px solid #e5e5e5;border-radius:18px;flex:1;padding:14px 16px;font-size:17px;font-weight:600;line-height:1.5;position:relative}.bubble:before{content:"";border:9px solid #0000;border-right-color:#e5e5e5;position:absolute;top:26px;right:100%}.bubble b{color:var(--highlight)}.bubble-title{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:6px;font-size:13px;font-weight:900;display:block}.lesson-foot{z-index:5;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:var(--surface);border-top:2px solid #e5e5e5;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.explain-dots{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.explain-dot{cursor:pointer;max-width:40px;height:12px;transition:background .25s, flex-grow .3s var(--ease-out), max-width .3s var(--ease-out);background:#e5e5e5;border:none;border-radius:999px;flex:1;padding:0}.explain-dot.seen{background:color-mix(in srgb, var(--unit) 45%, #fff)}.explain-dot.now{background:var(--unit);flex-grow:2.6;max-width:96px}.explain-skip{cursor:pointer;color:#afafaf;letter-spacing:.05em;text-transform:uppercase;background:0 0;border:none;flex:none;padding:8px 4px;font-size:13px;font-weight:900}.explain-skip:hover{color:var(--surface-ink)}.explain{flex-direction:column;gap:14px;padding-top:4px;display:flex}.explain-title{margin-top:2px;font-size:26px}.explain-mini{text-transform:none;letter-spacing:0;font-size:14px;display:block}.say-row{align-items:flex-start;gap:10px;display:flex}.say-row .tc{flex:none}.say-row .bubble:before{top:44px}.bubble.say{font-size:18px;line-height:1.5}.bubble.say.fwd{animation:sayIn .35s var(--ease-out)}.bubble.say.back{animation:sayBack .35s var(--ease-out)}.show-row{background:color-mix(in srgb, var(--unit) 7%, #fbfaf6);animation:fadeUp .35s var(--ease-out);border-radius:22px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:16px 10px;display:flex}.show-fig{min-width:0;max-width:100%;display:block}.show-fig>.fig-written,.show-fig>.fig-geo,.show-fig>.fig-frac,.show-fig>.fig-ruler{margin:0 auto}.show-clock .fig-clock{width:150px;height:150px}.show-fraction .fig-frac{width:132px;height:132px}.show-fraction .fig-frac.wide{width:100%;height:auto}.show-fraction .fig-frac.square{max-width:132px}.show-sign{color:var(--accent-deep);font-size:36px;font-weight:900;line-height:1}.show-pair{align-items:center;gap:12px;max-width:100%;display:inline-flex}.math-lines{flex-direction:column;align-items:center;gap:4px;display:flex}.math-line{text-align:center;font-variant-numeric:tabular-nums;animation:fadeUp .4s var(--ease-out) both;font-size:23px;font-weight:900;line-height:1.4}.math-line b{color:var(--highlight)}.rule-box{white-space:pre-line;border:2.5px solid var(--unit);background:color-mix(in srgb, var(--unit) 10%, #fff);animation:bounceIn .5s var(--ease-out);border-radius:18px;padding:14px 16px;font-size:17px;font-weight:700;line-height:1.5}.rule-title{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:4px;font-size:13px;font-weight:900;display:block}.rule-box b{color:var(--highlight)}.explain-nav{gap:12px;width:100%;max-width:600px;display:flex}.back-btn{background:var(--surface);cursor:pointer;width:58px;color:var(--surface-ink);border:2px solid #e5e5e5;border-radius:16px;flex:none;font-size:22px;font-weight:900;transition:transform .1s,box-shadow .1s;box-shadow:0 4px #e5e5e5}.back-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #e5e5e5}.back-btn:disabled{opacity:.35;cursor:default}.verdict{z-index:5;padding:16px 16px calc(18px + env(safe-area-inset-bottom));animation:sheetUp .28s var(--ease-out);flex-direction:column;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}.verdict.ok{color:#2f6b00;background:#d7ffb8}.verdict.bad{color:#9b1c1c;background:#ffdfe0}.verdict-inner{align-items:center;gap:12px;width:100%;max-width:600px;display:flex}.verdict-inner .tc{flex:none}.verdict-text{flex-direction:column;gap:2px;font-size:15px;font-weight:700;line-height:1.4;display:flex}.verdict-text strong{font-size:22px;font-weight:900}.verdict.ok strong{color:#58a700}.verdict.bad strong{color:#ea2b2b}.verdict-later{opacity:.8;margin-top:4px;font-style:normal;font-weight:900;display:block}.verdict.ok .big-btn{--unit:#58cc02}.verdict.bad .big-btn{--unit:#ff4b4b}.lesson-quit{z-index:80;background:#00000073;place-items:center;padding:16px;animation:.2s fadeIn;display:grid;position:fixed;inset:0}.quit-card{background:var(--surface);width:100%;max-width:360px;color:var(--surface-ink);text-align:center;animation:pop .25s var(--ease-out);border-radius:24px;flex-direction:column;align-items:center;gap:8px;padding:22px 20px 12px;display:flex}.quit-card h3{font-size:21px}.quit-card p{color:var(--surface-muted);margin-bottom:8px;font-weight:600}.done-screen{overflow:hidden}.done-body{text-align:center;flex-direction:column;flex:1;align-items:center;padding:36px 20px 130px;display:flex;overflow-y:auto}.done-hero{animation:bounceIn .7s var(--ease-out)}.done-trophy{filter:drop-shadow(0 10px 18px #ffaa0073);font-size:96px;line-height:1}.done-trophy.wide{letter-spacing:4px;font-size:64px}.done-body h2{color:var(--accent-deep);margin-top:10px;font-size:28px}.done-sub{max-width:34ch;color:var(--surface-muted);margin-top:6px;font-weight:700}.done-stars{gap:10px;margin:18px 0 4px;display:flex}.dstar{color:#e5e5e5;width:58px;height:58px}.dstar.lit{color:#ffc800;filter:drop-shadow(0 4px #d99a00);animation:starPop .5s var(--ease-out) both}.done-words{max-width:32ch;color:var(--surface-muted);font-weight:700}.done-tiles{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:420px;margin-top:22px;display:grid}.tile-stat{border:2px solid var(--c);background:var(--c);border-radius:16px;overflow:hidden}.tile-stat span{color:#fff;letter-spacing:.06em;text-transform:uppercase;padding:6px 4px;font-size:12px;font-weight:900;display:block}.tile-stat b{background:var(--surface);color:var(--c);border-radius:13px;padding:12px 4px;font-size:18px;font-weight:900;display:block}.tile-stat.gold{--c:#f5b400}.tile-stat.green{--c:#58cc02}.tile-stat.blue{--c:#1cb0f6}@keyframes ring{0%,to{opacity:.9;scale:1}50%{opacity:.35;scale:1.08}}@keyframes bob{50%{translate:0 -6px}}@keyframes unlock{0%{filter:brightness(2);scale:.6}60%{scale:1.15}to{scale:1}}@keyframes slideIn{0%{opacity:0;transform:translate(24px)}}@keyframes starPop{0%{opacity:0;rotate:-40deg;scale:.2}70%{scale:1.2}to{opacity:1;rotate:0deg;scale:1}}@keyframes sayIn{0%{opacity:0;transform:translate(18px)scale(.97)}}@keyframes sayBack{0%{opacity:0;transform:translate(-18px)scale(.97)}}@media (width<=380px){.node{width:70px;height:64px}.node-face{font-size:28px}.lesson-prompt{font-size:19px}.bubble.say{font-size:16.5px}.math-line{font-size:20px}.done-tiles{gap:6px}.tile-stat b{font-size:15px}.progress{gap:12px}.ring{width:78px;height:78px}.ring b{font-size:18px}.facts{gap:6px}.facts b{font-size:19px}.facts span{letter-spacing:.02em;font-size:10px}.greet-bubble{font-size:14px}.unit-bar{gap:0 10px;padding:10px 10px 12px}.unit-bar-icon{width:40px;height:40px;font-size:22px}.unit-bar h2{font-size:17px}}@media (width<=439.98px){.unit-bar-btn{padding:9px}.unit-bar-btn span{display:none}}.show-blocks .fig-blocks-group.h .blk-h{width:38px;height:38px}.show-blocks .fig-blocks-group.h{max-width:172px}.hero{text-align:center;margin:10px 0 24px}.hero-icon{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 35%, transparent), color-mix(in srgb, var(--accent-2) 35%, transparent));border:1px solid var(--line);width:72px;height:72px;box-shadow:0 16px 40px -16px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:24px;place-items:center;margin:0 auto;font-size:36px;display:grid}.hero h1{margin:16px 0 6px;font-size:30px}.hero p{max-width:34ch;color:var(--ink-muted);margin:0 auto;font-size:15px;font-weight:600}.stars{justify-content:center;gap:6px;margin-top:16px;display:flex}.star{color:#e5e5e5;width:28px;height:28px;transition:color .35s, transform .35s var(--ease-out), filter .35s}.star.lit{color:var(--accent);filter:drop-shadow(0 0 8px color-mix(in srgb, var(--accent) 80%, transparent));transform:scale(1.12)}.progress-chip{background:var(--glass);border:2px solid var(--line);color:var(--ink-muted);letter-spacing:.02em;border-radius:999px;margin-top:12px;padding:5px 12px;font-size:12px;font-weight:800;display:inline-block}.vault{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.door{border:2px solid var(--line);background:var(--glass);min-height:160px;color:var(--ink);box-shadow:0 4px 0 var(--line);text-align:left;cursor:pointer;transition:transform .12s var(--ease-out), border-color .18s, background .18s, box-shadow .12s;border-radius:22px;flex-direction:column;gap:10px;padding:16px;display:flex;position:relative}.door:hover{background:var(--glass-hover);border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.door:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.door:last-child:nth-child(odd){grid-column:1/-1}.door.solved{border-color:color-mix(in srgb, var(--accent) 55%, #fff);box-shadow:0 4px 0 color-mix(in srgb, var(--accent) 55%, #fff)}.door-badge{background:var(--surface-2);color:var(--ink-muted);border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;position:absolute;top:12px;right:12px}.door.solved .door-badge{background:var(--accent);color:var(--accent-ink)}.door-icon{background:var(--surface-2);border-radius:15px;place-items:center;width:46px;height:46px;font-size:24px;display:grid}.door.solved .door-icon{background:color-mix(in srgb, var(--accent) 16%, #fff)}.door-name{margin-top:auto;font-size:15px;font-weight:800;line-height:1.2}.door-cta{color:var(--ink-faint);font-size:12px;font-weight:800}.door.solved .door-cta{color:var(--accent-deep)}.overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.panel{width:100%;max-width:480px;max-height:92dvh;padding:20px 20px calc(24px + env(safe-area-inset-bottom));background:var(--surface);color:var(--surface-ink);animation:sheetUp .32s var(--ease-out);border-radius:28px 28px 0 0;overflow-y:auto;box-shadow:0 -20px 60px -20px #00000059}@media (width>=560px){.overlay{align-items:center;padding:24px}.panel{max-height:calc(100vh - 48px);animation:pop .25s var(--ease-out);border-radius:28px;padding-bottom:26px;box-shadow:0 30px 80px -30px #0006}}.panel-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-icon{background:color-mix(in srgb, var(--accent) 16%, var(--surface-2));border-radius:13px;place-items:center;width:40px;height:40px;font-size:22px;display:grid}.panel-title{flex:1;font-size:17px}.close-btn{background:var(--surface-2);width:36px;height:36px;color:var(--surface-muted);cursor:pointer;border:none;border-radius:50%;font-size:16px;font-weight:800;transition:background .15s,color .15s}.close-btn:hover{background:var(--surface-3);color:var(--surface-ink)}.steps{gap:6px;display:flex}.step{background:var(--surface-3);border-radius:999px;flex:1;height:6px;transition:background .3s}.step.done{background:var(--accent)}.step.current{background:color-mix(in srgb, var(--accent) 45%, var(--surface-3));animation:1.4s ease-in-out infinite pulse}.step-caption{letter-spacing:.04em;text-transform:uppercase;color:var(--surface-muted);margin:8px 0 14px;font-size:12px;font-weight:800}.prompt{margin-bottom:16px;font-size:18px;font-weight:700;line-height:1.45}.prompt b{color:var(--highlight)}.note{background:var(--surface-2);width:fit-content;color:var(--surface-muted);border-radius:999px;margin-top:8px;padding:4px 10px;font-size:13px;font-weight:800;display:block}.compare{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-bottom:12px;display:grid}.tile{background:var(--surface-2);text-align:center;letter-spacing:-.02em;border-radius:16px;padding:18px 8px;font-size:26px;font-weight:900}.tile-mid{width:50px;height:50px;color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 12%, var(--surface));border:2px dashed color-mix(in srgb, var(--accent) 55%, transparent);border-radius:14px;place-items:center;font-size:24px;font-weight:900;transition:background .25s,color .25s,border-color .25s;display:grid}.tile-mid.revealed{border-style:solid;border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.tile.long{letter-spacing:0;overflow-wrap:anywhere;font-size:19px}.legend{text-align:center;color:var(--surface-muted);margin:-4px 0 16px;font-size:12px;font-weight:700}.money{justify-content:center;align-items:flex-end;gap:20px;margin:4px 0 18px;display:flex}.pile{flex-direction:column;align-items:center;gap:6px;display:flex}.notes{flex-direction:column;display:flex}.bill{color:#fff;border:1px solid #ffffff73;border-radius:7px;justify-content:space-between;align-items:center;width:78px;height:30px;padding:0 8px;font-size:12px;font-weight:900;display:flex;position:relative;box-shadow:0 2px 5px #00000047}.bill small{letter-spacing:.08em;opacity:.85;font-size:8px}.bill+.bill{margin-top:-20px}.bill.green{background:linear-gradient(135deg,#3fc98a,#1f8f5f)}.bill.blue{background:linear-gradient(135deg,#5a9be0,#2b62a6)}.bill.purple{background:linear-gradient(135deg,#a57ae6,#6e48b4)}.pile-amount{font-size:14px;font-weight:900}.pile-name{color:var(--surface-muted);font-size:12px;font-weight:700}.clues{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.clue{background:var(--surface-2);animation:clueIn .45s var(--ease-out) both;border-radius:14px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.clue-n{background:var(--accent);width:22px;height:22px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:900;display:grid}.clue b{color:var(--highlight)}.options{gap:10px;display:grid}.opt{border:2px solid var(--surface-3);background:var(--surface);color:var(--surface-ink);text-align:left;cursor:pointer;border-radius:16px;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-size:16px;font-weight:800;transition:transform .12s,border-color .15s,background .2s,color .2s;display:flex}.options.row .opt{justify-content:center;padding:16px 0;font-size:24px}.options.row .opt-mark{display:none}.opt:not(:disabled):hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--surface-3));background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.opt:not(:disabled):active{transform:scale(.98)}.opt:disabled{cursor:default}.opt.correct{background:var(--ok-bg);border-color:var(--ok);color:var(--ok-ink)}.opt.wrong{background:var(--bad-bg);border-color:var(--bad);color:var(--bad-ink);animation:.35s shake}.opt-mark{font-size:15px;font-weight:900}.feedback{animation:fadeUp .25s var(--ease-out);border-radius:14px;align-items:flex-start;gap:8px;margin-top:14px;padding:12px 14px;font-size:14px;font-weight:700;display:flex}.feedback.ok{background:var(--ok-bg);color:var(--ok-ink)}.feedback.bad{background:var(--bad-bg);color:var(--bad-ink)}.btn-primary{background:var(--accent);width:100%;color:var(--accent-ink);cursor:pointer;box-shadow:0 12px 28px -12px color-mix(in srgb, var(--accent) 80%, transparent);animation:fadeUp .25s var(--ease-out);border:none;border-radius:16px;margin-top:14px;padding:15px;font-size:16px;font-weight:900;transition:transform .12s,filter .15s}.btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.4;cursor:default;filter:none;box-shadow:none;transform:none}.btn-soft{background:var(--surface-2);color:var(--surface-ink);cursor:pointer;border:none;border-radius:16px;padding:15px 10px;font-size:16px;font-weight:900;transition:background .15s,transform .12s}.btn-soft:not(:disabled):hover{background:var(--surface-3)}.btn-soft:not(:disabled):active{transform:scale(.98)}.btn-soft:disabled{opacity:.4;cursor:default}.task-actions{grid-template-columns:1fr 2fr;gap:10px;margin-top:14px;display:grid}.task-actions .btn-primary{margin-top:0}.builder{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.place{background:color-mix(in srgb, var(--place) 8%, var(--surface-2));border-radius:16px;flex-direction:column;align-items:center;gap:10px;min-width:0;padding:10px 4px 12px;display:flex}.place-name{letter-spacing:.03em;text-transform:uppercase;color:var(--place);font-size:11px;font-weight:900}.place-name b{background:var(--place);color:#fff;border-radius:6px;place-items:center;width:18px;height:18px;margin-left:2px;font-size:11px;display:inline-grid}.blocks{justify-content:center;align-items:flex-end;gap:3px;height:92px;display:flex}.blocks.h{grid-template-columns:repeat(3,26px);align-content:end;gap:4px;display:grid}.blocks.u{grid-template-columns:repeat(3,13px);align-content:end;gap:4px;display:grid}.blk{background-color:var(--place);animation:pop .2s var(--ease-out);display:block;box-shadow:inset 0 -2px #0000002e}.blk-h{background-image:linear-gradient(#ffffff61 1px,#0000 1px),linear-gradient(90deg,#ffffff61 1px,#0000 1px);background-size:10% 10%;border-radius:4px;width:26px;height:26px}.blk-t{background-image:linear-gradient(#ffffff73 1px,#0000 1px);background-size:100% 10%;border-radius:3px;width:8px;height:70px}.blk-u{border-radius:3px;width:13px;height:13px}.stepper{align-items:center;gap:6px;display:flex}.stp{background:var(--surface);width:36px;height:36px;color:var(--surface-ink);box-shadow:inset 0 0 0 2px var(--surface-3);cursor:pointer;border:none;border-radius:50%;font-size:22px;font-weight:900;line-height:1;transition:transform .1s,box-shadow .15s}.stp:not(:disabled):hover{box-shadow:inset 0 0 0 2px var(--place)}.stp:not(:disabled):active{transform:scale(.92)}.stp:disabled{opacity:.35;cursor:default}.stp-n{text-align:center;min-width:20px;color:var(--place);font-variant-numeric:tabular-nums;font-size:22px;font-weight:900}.readout{text-align:center;letter-spacing:.06em;font-variant-numeric:tabular-nums;border-radius:16px;width:fit-content;min-width:120px;margin:14px auto 0;padding:4px 18px;font-size:44px;font-weight:900;line-height:1.2;transition:background .2s,color .2s}.readout.ok{background:var(--ok-bg);color:var(--ok-ink);animation:pop .25s var(--ease-out)}.readout.bad{background:var(--bad-bg);color:var(--bad-ink);animation:.35s shake}.stickers{flex-wrap:wrap;justify-content:center;gap:12px 10px;padding:6px 0 4px;display:flex}.sticker{background:var(--paper,#ffe58f);min-width:74px;color:var(--surface-ink);font-variant-numeric:tabular-nums;cursor:pointer;rotate:var(--tilt,0deg);transition:rotate .15s var(--ease-out), scale .15s var(--ease-out), box-shadow .15s, border-color .15s, opacity .2s, background .2s;border:2px solid #0000;border-radius:12px;padding:12px 10px;font-size:22px;font-weight:900;position:relative;box-shadow:0 3px #1b1f3a1a,0 10px 16px -12px #1b1f3a8c}.sticker.small{min-width:0;padding:10px 12px;font-size:18px}.sticker:not(:disabled):hover{rotate:0deg;scale:1.04}.sticker:disabled{cursor:default}.sticker.on{border-color:var(--accent-deep);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 40%, transparent), 0 10px 16px -12px #1b1f3a8c;rotate:0deg;scale:1.08}.sticker.hit{border-color:var(--ok);background:var(--ok-bg);color:var(--ok-ink)}.sticker.missed{border:2px dashed var(--ok);background:var(--surface);color:var(--ok-ink)}.sticker.wrong{border-color:var(--bad);background:var(--bad-bg);color:var(--bad-ink)}.sticker.off{opacity:.4}.sticker.placed{border-color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 22%, var(--surface));rotate:0deg}.tray .sticker.placed{opacity:.25;scale:.9}.sticker-badge{background:var(--accent-deep);color:#fff;width:24px;height:24px;animation:pop .2s var(--ease-out);border-radius:50%;place-items:center;font-size:12px;font-weight:900;display:grid;position:absolute;top:-9px;right:-9px}.bump{animation:.35s shake;border-color:var(--bad)!important}.nudge{animation:1.1s ease-in-out infinite nudge}.trail{background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;min-height:46px;margin-bottom:14px;padding:8px 10px;font-weight:900;display:flex}.trail-num{background:var(--surface);color:var(--accent-deep);animation:pop .2s var(--ease-out);border-radius:8px;padding:2px 8px}.trail-sign{color:var(--surface-muted)}.trail-empty{color:var(--surface-muted);font-size:13px;font-weight:700}.keys{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.key{border:2px solid var(--surface-3);background:var(--surface);color:var(--surface-ink);font-variant-numeric:tabular-nums;cursor:pointer;box-shadow:0 3px 0 var(--surface-3);border-radius:14px;padding:12px 0;font-size:22px;font-weight:900;transition:transform .1s,border-color .15s,background .15s,box-shadow .1s}.key:not(:disabled):hover{border-color:color-mix(in srgb, var(--accent) 60%, var(--surface-3))}.key:not(:disabled):active{box-shadow:0 1px 0 var(--surface-3);transform:translateY(2px)}.key:disabled{cursor:default}.key.on{border-color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 20%, var(--surface))}.key.hit{border-color:var(--ok);background:var(--ok-bg);color:var(--ok-ink)}.key.missed{border:2px dashed var(--ok);color:var(--ok-ink)}.key.wrong{border-color:var(--bad);background:var(--bad-bg);color:var(--bad-ink)}.key.off{opacity:.4}.keys.roman{grid-template-columns:repeat(7,1fr);gap:6px}.keys.roman .key{padding:8px 0 6px}.key-value{color:var(--surface-muted);margin-top:1px;font-size:10px;font-weight:800;display:block}.formula{background:var(--surface-2);text-align:center;letter-spacing:.03em;font-variant-numeric:tabular-nums;border-radius:16px;margin-bottom:16px;padding:14px;font-size:34px;font-weight:900}.formula-star{color:var(--accent-deep);animation:1.8s ease-in-out infinite twinkle;display:inline-block}.slots{justify-content:center;gap:8px;margin:2px 0 16px;display:flex}.slot{border:2px dashed var(--surface-3);background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:14px;place-items:center;width:56px;height:66px;font-size:36px;font-weight:900;display:grid}.slot.next{border-color:var(--accent-deep);animation:1.4s ease-in-out infinite pulse}.slot.filled{border-style:solid;border-color:var(--accent-deep);background:var(--surface);animation:pop .15s var(--ease-out)}.slot.ok{border-color:var(--ok);background:var(--ok-bg);color:var(--ok-ink)}.slot.bad{border-color:var(--bad);background:var(--bad-bg);color:var(--bad-ink);animation:.35s shake}.cards{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.card{border:2px solid var(--surface-3);background:linear-gradient(180deg, var(--surface), var(--surface-2));width:58px;height:72px;color:var(--surface-ink);cursor:pointer;box-shadow:0 4px 0 var(--surface-3);border-radius:12px;font-size:32px;font-weight:900;transition:transform .1s,opacity .2s,box-shadow .1s}.card:not(:disabled):hover{transform:translateY(-2px)}.card:not(:disabled):active{box-shadow:0 1px 0 var(--surface-3);transform:translateY(2px)}.card:disabled{cursor:default}.card.used{opacity:.25;transform:scale(.92)}.fill{border:2px solid var(--surface-2);text-align:center;font-variant-numeric:tabular-nums;border-radius:16px;margin:2px 0 16px;padding:12px 10px;font-size:19px;font-weight:800;line-height:1.5}.fill-word{white-space:nowrap}.fill .slot{vertical-align:middle;border-radius:10px;width:36px;height:46px;margin:4px 2px;font-size:24px;display:inline-grid}.strip{border:2px dashed var(--accent-deep);background:color-mix(in srgb, var(--accent) 8%, var(--surface));letter-spacing:.06em;overflow-wrap:anywhere;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;min-height:70px;margin:2px 0 16px;padding:8px 14px;font-size:34px;font-weight:900;line-height:1.2;display:flex}.strip.ok{border-style:solid;border-color:var(--ok);background:var(--ok-bg);color:var(--ok-ink);animation:pop .25s var(--ease-out)}.strip.bad{border-style:solid;border-color:var(--bad);background:var(--bad-bg);color:var(--bad-ink);animation:.35s shake}.strip-empty{letter-spacing:0;color:var(--surface-muted);font-size:15px;font-weight:700}.caret{background:var(--accent-deep);border-radius:2px;width:3px;height:36px;margin-left:3px;animation:1.1s step-end infinite blink}div.numline:not(.figure){grid-auto-columns:1fr;grid-auto-flow:column;margin:4px 0 18px;padding-top:16px;display:grid;position:relative}div.numline:not(.figure):before{content:"";background:var(--surface-ink);border-radius:3px;height:3px;position:absolute;top:16px;left:0;right:8px}div.numline:not(.figure):after{content:"";border-left:12px solid var(--surface-ink);border-top:6.5px solid #0000;border-bottom:6.5px solid #0000;position:absolute;top:11px;right:0}.nl-cell{flex-direction:column;align-items:center;gap:8px;min-width:0;display:flex;position:relative}.nl-cell:before{content:"";background:var(--surface-ink);border-radius:2px;width:3px;height:14px;margin-top:-6px}.nl-num{text-align:center;font-variant-numeric:tabular-nums;border:2px solid #0000;border-radius:10px;min-width:42px;padding:4px 3px;font-size:16px;font-weight:900}.nl-num.blank{border:2px dashed var(--surface-3);color:var(--surface-muted)}.nl-num.active{border:2px dashed var(--accent-deep);color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.nl-num.filled{background:color-mix(in srgb, var(--accent) 22%, var(--surface));color:var(--accent-deep);animation:pop .2s var(--ease-out)}.nl-num.ok{border-color:var(--ok);background:var(--ok-bg);color:var(--ok-ink)}.nl-num.bad{border-color:var(--bad);background:var(--bad-bg);color:var(--bad-ink);animation:.35s shake}.numline.dense .nl-num{letter-spacing:-.02em;border-radius:8px;min-width:22px;padding:3px 1px;font-size:13px}.board{background:radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--accent-2) 16%, var(--surface-2)), var(--surface-2) 70%);border-radius:18px;height:300px;margin-bottom:4px;position:relative;overflow:hidden}.board-lines{width:100%;height:100%;position:absolute;inset:0}.board-lines line{stroke:var(--accent-deep);stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke;animation:.25s fadeIn}.dot{border:2px solid var(--surface-3);background:var(--surface);min-width:46px;color:var(--surface-ink);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:999px;padding:3px 8px;font-size:14px;font-weight:900;transition:background .15s,border-color .15s,opacity .3s;position:absolute;translate:-50% -50%;box-shadow:0 4px 10px -6px #1b1f3a80}.dot:not(:disabled):hover{border-color:var(--accent-deep)}.dot:disabled{cursor:default}.dot.placed{background:var(--accent);border-color:var(--accent-deep);color:var(--accent-ink)}.board.done .dot{opacity:.55}.board-picture{pointer-events:none;filter:drop-shadow(0 10px 16px #1b1f3a4d);animation:bounceIn .7s var(--ease-out);font-size:88px;line-height:1;position:absolute;top:52%;left:50%;translate:-50% -50%}.final{text-align:center;padding-top:6px;position:relative;overflow:hidden}.final-emoji{animation:bounceIn .6s var(--ease-out);margin:6px 0 12px;font-size:60px;line-height:1}.final h2{margin-bottom:4px;font-size:24px}.final-score{letter-spacing:-.03em;color:var(--accent-deep);font-variant-numeric:tabular-nums;font-size:42px;font-weight:900}.final p{max-width:32ch;color:var(--surface-muted);margin:8px auto 6px;font-weight:600}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti span{border-radius:2px;animation:linear forwards confettiFall;position:absolute;top:-14px}@keyframes fadeIn{0%{opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}}@keyframes pop{0%{opacity:0;transform:scale(.92)}}@keyframes sheetUp{0%{opacity:0;transform:translateY(40px)}}@keyframes clueIn{0%{opacity:0;transform:translateY(8px)}}@keyframes pulse{50%{opacity:.55}}@keyframes shake{20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.5)}60%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}@keyframes confettiFall{to{opacity:0;transform:translateY(460px)rotate(720deg)}}@keyframes nudge{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent-deep) 55%, transparent);scale:1.12}}@keyframes twinkle{50%{transform:scale(1.18)rotate(12deg)}}@keyframes blink{50%{opacity:0}}.frac{vertical-align:middle;flex-direction:column;align-items:center;margin:0 .12em;font-size:.9em;line-height:1.05;display:inline-flex}.frac-n{border-bottom:.12em solid;padding:0 .2em .1em}.frac-d{padding:.1em .2em 0}.fill .frac-n,.fill .frac-d{justify-content:center;display:flex}.fill .frac .slot{margin:2px}.sqrt{white-space:nowrap;align-items:flex-end;display:inline-flex}.sqrt-r{border-top:.09em solid;align-items:center;margin-left:.04em;padding:.08em .12em 0 .08em;line-height:1.15;display:inline-flex}.fill .slot.sign{width:26px;font-size:22px}.fill .slot.sign.blank{color:var(--surface-muted)}.fill .slot.sup{vertical-align:top;border-radius:7px;width:24px;height:30px;margin:0 1px;font-size:17px}.keys.signed{grid-template-columns:repeat(6,1fr)}.key.sign-key{color:var(--accent-deep)}.figure{justify-content:center;margin:0 0 16px;display:flex}.fig-geo{width:100%;max-width:var(--fig-w,360px);border:2px solid var(--surface-2);background:#fbfcff;border-radius:16px;height:auto;display:block}.fig-grid line{stroke:#cfe3f5;stroke-width:1.5px}.fig-dots circle{fill:#a9cdb4}.fig-clock{width:170px;height:170px}.fig-frac{width:168px;height:168px}.fig-frac.wide,.fig-ruler{width:100%;max-width:var(--fig-w);height:auto}.fig-blocks{background:var(--surface-2);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:14px;padding:14px;display:flex}.fig-blocks-group{flex-wrap:wrap;align-items:flex-end;gap:4px;display:flex}.fig-blocks-group.h{max-width:200px}.fig-blocks-group.h .blk-h{width:46px;height:46px}.fig-blocks-group.t .blk-t{height:64px}.fig-blocks-group.u{grid-template-columns:repeat(3,14px);display:grid}.fig-emoji{text-align:center;font-size:28px;line-height:1.3}.options.pictures{gap:8px}.options.pictures .opt{flex-direction:column;justify-content:flex-start;gap:4px;padding:8px 6px 10px;font-size:18px;position:relative}.options.pictures .opt svg,.options.pictures .opt .fig-blocks{background:0 0;border:none;width:100%;max-width:none;height:auto}.options.pictures .opt-mark{position:absolute;top:6px;right:8px}.options.pictures.stacked .opt{flex-direction:row-reverse;align-items:center;gap:12px;padding:6px 14px 6px 8px;font-size:22px}.options.pictures.stacked .opt svg{flex:1;min-width:0;max-width:300px}.fig-geo :is(line,polygon,path,circle){vector-effect:non-scaling-stroke}.column{--col-cell:40px;font-variant-numeric:tabular-nums;justify-content:center;gap:2px 4px;margin:4px 0 16px;font-size:30px;font-weight:900;display:grid}.column-cell{place-items:center;height:42px;display:grid}.column-rule{background:var(--surface-ink);border-radius:2px;height:3px;margin:3px 0 6px}.column .slot{width:var(--col-cell);border-radius:10px;height:52px;font-size:30px}.home-hero{text-align:center;padding:28px 0 24px}.kicker{background:var(--glass);border:2px solid var(--line);color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;display:inline-block}.home-hero h1{margin:16px 0 8px;font-size:34px}.home-hero p{color:var(--ink-muted);font-size:15px;font-weight:600}.grades{gap:30px;display:grid}.grade-title{margin:0 4px 12px;font-size:20px}.games{gap:14px;display:grid}.game-card{border:2px solid var(--line);background:var(--glass);box-shadow:0 4px 0 var(--line);color:var(--ink);transition:transform .12s var(--ease-out), border-color .18s, background .18s, box-shadow .12s;border-radius:22px;grid-template-columns:72px 1fr auto;align-items:center;gap:16px;padding:18px;text-decoration:none;display:grid}.game-card:hover{background:var(--glass-hover);border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.game-card:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.game-icon{background:linear-gradient(135deg, var(--accent), var(--accent-2));width:72px;height:72px;box-shadow:0 4px 0 color-mix(in srgb, var(--accent) 55%, #000);border-radius:22px;place-items:center;font-size:36px;display:grid}.game-body{flex-direction:column;gap:4px;min-width:0;display:flex}.game-topic{background:color-mix(in srgb, var(--accent) 14%, #fff);width:fit-content;color:var(--accent-deep);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800}.game-title{letter-spacing:-.02em;font-size:19px;font-weight:900;line-height:1.2}.game-blurb{color:var(--ink-muted);font-size:13.5px;font-weight:600;line-height:1.4}.game-meta{color:var(--ink-faint);margin-top:2px;font-size:12px;font-weight:700}.game-cta{color:var(--accent-deep);font-size:22px;font-weight:900}.page.page-home{padding-top:calc(14px + env(safe-area-inset-top));flex-direction:column;align-items:center;container-type:inline-size}.home-top{align-items:center;gap:12px;width:100%;display:flex}.home-top .wordmark{margin:0 auto;padding-right:56px;font-size:28px}.landing{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:34px;width:100%;max-width:980px;padding:16px 0 24px;display:flex}.landing-text{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:480px;display:flex}.landing-text h1{color:#4b4b4b;letter-spacing:-.01em;text-wrap:balance;font-size:clamp(26px,6.5vw,32px);font-weight:800;line-height:1.35}.landing-sub{color:var(--ink-muted);text-wrap:balance;margin-top:10px;font-size:16px;font-weight:700;line-height:1.45}.landing-actions{flex-direction:column;gap:14px;width:100%;max-width:340px;margin-top:26px;display:flex}.landing-actions .big-btn{letter-spacing:.08em;padding:14px 20px;font-size:15px}.landing-text>*{animation:landing-up .6s var(--ease-out) backwards}.landing-text>:nth-child(2){animation-delay:80ms}.landing-text>:nth-child(3){animation-delay:.16s}.landing-text>:nth-child(4){animation-delay:.24s}.landing-text>:nth-child(5){animation-delay:.32s}.landing-text .contact{width:100%;max-width:340px;margin-top:26px}@keyframes landing-up{0%{opacity:0;transform:translateY(12px)}}.gift{text-align:left;background:#eefae6;border:2px solid #b4e88d;border-radius:20px;align-items:center;gap:14px;width:100%;max-width:400px;margin-top:22px;padding:14px 16px;display:flex;box-shadow:0 4px #b4e88d}.gift-badge{background:#58cc02;border-radius:16px;flex:none;place-items:center;width:54px;height:54px;font-size:28px;display:grid;rotate:-6deg;box-shadow:0 4px #58a700}.gift-text{flex-direction:column;gap:3px;min-width:0;line-height:1.35;display:flex}.gift-text strong{color:#3e8000;font-size:17px;font-weight:900}.gift-text>span{color:var(--ink-muted);font-size:14px;font-weight:700}.home-how{width:100%;max-width:980px;padding:12px 0 8px}.home-how h2{color:#4b4b4b;text-align:center;text-wrap:balance;font-size:clamp(22px,5.5vw,28px);font-weight:800}.home-how-sub{max-width:48ch;color:var(--ink-muted);text-align:center;text-wrap:balance;margin:8px auto 0;font-size:15px;font-weight:700;line-height:1.5}.how-steps{gap:12px;margin:22px 0 0;padding:0;list-style:none;display:grid}.how-step{border:2px solid var(--line);background:var(--glass);box-shadow:0 4px 0 var(--line);border-radius:20px;align-items:flex-start;gap:14px;padding:16px;display:flex}.how-step-ico{background:color-mix(in srgb, var(--c) 14%, #fff);width:46px;height:46px;box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--c) 45%, #fff);border-radius:14px;flex:none;place-items:center;font-size:22px;display:grid}.how-step strong{margin-bottom:2px;font-size:16px;font-weight:900;display:block}.how-step span span{color:var(--ink-muted);font-size:14px;font-weight:600;line-height:1.45}.crew{flex:none;width:460px;height:440px;position:relative}.crew-guide{left:var(--x);top:var(--y);rotate:var(--turn);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;animation:.7s cubic-bezier(.34,1.4,.64,1) backwards crew-in;position:absolute}.crew-guide:nth-of-type(2){animation-delay:.12s}.crew-guide:nth-of-type(3){animation-delay:.24s}.crew-guide:nth-of-type(4){animation-delay:.36s}.crew-guide:nth-of-type(5){animation-delay:.48s}@keyframes crew-in{0%{opacity:0;transform:translateY(30px)scale(.8)}}.crew-thing{left:var(--x);top:var(--y);rotate:var(--turn);width:56px;height:56px;animation:crew-float 5.5s ease-in-out var(--delay) infinite;place-items:center;display:grid;position:absolute}@keyframes crew-float{50%{translate:0 -9px;rotate:calc(var(--turn) + 5deg)}}.crew-thing.tile{background:var(--c);color:#fff;box-shadow:0 5px 0 color-mix(in srgb, var(--c) 62%, #000);border-radius:16px;font-size:30px;font-weight:900;line-height:1}.crew-thing.tile sup{font-size:.55em}.crew-thing.tile .frac{margin:0;font-size:19px;line-height:1}.crew-thing.tile svg{width:34px;height:34px}.crew-thing.free{width:62px;height:62px}.crew-thing.free svg{width:100%;height:100%;overflow:visible}.crew-thing.coin{background:#ffc800;border-radius:50%;width:46px;height:46px;box-shadow:inset 0 0 0 4px #ffd84d,0 4px #e0a800}.crew-thing.coin svg{width:26px;height:26px}.contact{text-align:left;background:#fff8e8;border:2px solid #ffe29e;border-radius:20px;align-items:center;gap:14px;padding:14px 16px;display:flex;box-shadow:0 4px #ffe29e}.contact-coin{color:#7a4d00;letter-spacing:-.02em;background:#ffc800;border-radius:50%;flex:none;place-items:center;width:58px;height:58px;font-size:15px;font-weight:900;display:grid;rotate:-8deg;box-shadow:inset 0 0 0 4px #ffd84d,0 4px #e0a800}.contact-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.contact-text strong{color:#a86a00;font-size:17px;font-weight:900}.contact-text>span{color:var(--ink-muted);margin-top:4px;font-size:13px;font-weight:700}.contact-phone{width:fit-content;color:var(--link);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:19px;font-weight:900;text-decoration:none}.contact-phone:hover{text-decoration:underline}@container (width>=760px){.how-steps{grid-template-columns:repeat(3,1fr)}.how-step{flex-direction:column}}@container (width>=900px){.landing{flex-direction:row;justify-content:center;gap:64px}.landing-text{max-width:440px}}@container (width<=520px){.crew{zoom:.74}.landing{gap:22px}}@container (width<=370px){.crew{zoom:.64}}@media (width>=900px){.home-top{display:none}.page.page-home{padding-top:20px}}.trials .shell{max-width:900px}.trials-head{text-align:center;padding:18px 0 26px}.trials-head h1{font-size:clamp(28px,7vw,36px)}.trials-head p{max-width:44ch;color:var(--ink-muted);margin:10px auto 0;font-size:16px;font-weight:600;line-height:1.5}.trial-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.trial-card{border:2px solid var(--line);background:var(--glass);box-shadow:0 5px 0 var(--line);color:var(--ink);text-align:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .12s var(--ease-out), box-shadow .12s, border-color .15s, background .15s;border-radius:24px;flex-direction:column;align-items:center;gap:4px;padding:12px 12px 18px;text-decoration:none;display:flex}a.trial-card:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));background:color-mix(in srgb, var(--accent) 4%, #fff)}a.trial-card:active{box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.trial-card-art{background:radial-gradient(150px 60px at 50% 92%, color-mix(in srgb, var(--accent) 24%, #fff), transparent 70%), color-mix(in srgb, var(--accent) 9%, #fff);border-radius:18px;place-items:end center;width:100%;height:206px;margin-bottom:10px;padding-bottom:8px;display:grid}.trial-card-grade{background:color-mix(in srgb, var(--accent) 14%, #fff);color:var(--accent-deep);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:900}.trial-card-title{letter-spacing:-.02em;margin-top:4px;font-size:22px;font-weight:900;line-height:1.2}.trial-card-who{color:var(--ink-muted);font-size:14px;font-weight:700}.trial-card-meta{color:var(--ink-faint);font-size:13px;font-weight:700}.trial-card .big-btn{margin-top:14px;padding:12px 16px;font-size:15px}.trial-card.soon{--accent:#a560e8;--accent-deep:#7b3fc4;box-shadow:none;border-style:dashed}.trial-card.soon .trial-card-who{max-width:26ch}.trial-card-later{background:var(--surface-2);color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;border-radius:14px;margin-top:14px;padding:10px 16px;font-size:14px;font-weight:900}.trials-full{max-width:46ch;color:var(--ink-muted);text-align:center;margin:30px auto 0;font-size:15px;font-weight:600;line-height:1.55}.trials-full a{color:var(--link);font-weight:900;text-decoration:none}.trials-full a:hover{text-decoration:underline}.about .shell{max-width:780px}.about-hero{text-align:center;align-items:center;gap:30px;margin:6px 0 12px;display:grid}.about-photo{width:min(100%,280px);margin:0 auto;position:relative}.about-photo:before{content:"";z-index:-1;background:radial-gradient(closest-side, color-mix(in srgb, var(--accent-2) 22%, transparent), transparent);filter:blur(8px);border-radius:48px;position:absolute;inset:-22px}.about-photo img{aspect-ratio:4/5;object-fit:cover;border:2px solid var(--line);width:100%;height:auto;box-shadow:0 6px 0 var(--line), 0 34px 60px -30px #0000004d;border-radius:30px;display:block}.about-badge{white-space:nowrap;border:2px solid var(--line);color:var(--surface-ink);box-shadow:0 3px 0 var(--line);background:#fff;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:900;position:absolute;bottom:-15px;left:50%;translate:-50%}.about-intro h1{background:linear-gradient(100deg,#f08400 0%,#46a302 48%,#1590d0 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:14px 0 12px;padding-bottom:2px;font-size:clamp(30px,7.5vw,42px)}.about-tagline{color:var(--ink);margin:-4px 0 14px;font-size:19px;font-weight:800}.about-lead{color:var(--ink-muted);font-size:16px;font-weight:600;line-height:1.6}.about-lead b{color:var(--ink);font-weight:900}.about-chips{flex-wrap:wrap;justify-content:center;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.about-chips li{border:2px solid var(--line);background:var(--glass);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:800}.about-intro .contact{width:fit-content;max-width:100%;margin:20px auto 0}@media (width>=720px){.about-hero{text-align:left;grid-template-columns:280px 1fr;gap:40px}.about-chips{justify-content:flex-start}.about-intro .contact{margin-left:0}}.about-section{margin-top:42px}.about-section h2{margin:0 2px 4px;font-size:24px}.about-sub{color:var(--ink-muted);margin:0 2px 14px;font-size:14px;font-weight:600}.about-section h2+.about-features{margin-top:14px}.about-features{gap:12px;margin:0;padding:0;list-style:none;display:grid}.about-feature{border:2px solid var(--line);background:var(--glass);box-shadow:0 4px 0 var(--line);border-radius:20px;align-items:flex-start;gap:14px;padding:16px;display:flex}.about-feature-ico{background:color-mix(in srgb, var(--c) 14%, #fff);width:46px;height:46px;box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--c) 45%, #fff);border-radius:14px;flex:none;place-items:center;font-size:22px;display:grid}.about-feature strong{margin-bottom:2px;font-size:16px;font-weight:900;display:block}.about-feature span span{color:var(--ink-muted);font-size:14px;font-weight:600;line-height:1.45}.price-grid{gap:14px;display:grid}.price-card{border:2px solid var(--line);background:var(--glass);box-shadow:0 4px 0 var(--line);border-radius:22px;padding:20px 18px 8px;position:relative;overflow:hidden}.price-card:before{content:"";background:var(--c);height:5px;position:absolute;top:0;left:0;right:0}.price-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.price-head strong{font-size:18px;font-weight:900}.price-grades{letter-spacing:.04em;background:color-mix(in srgb, var(--c) 14%, #fff);color:color-mix(in srgb, var(--c) 70%, #000);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:900}.price-rows{margin:0;padding:0;list-style:none}.price-row{border-top:2px dashed var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.price-row:first-child{border-top:none}.price-what{flex-direction:column;font-size:15px;font-weight:800;line-height:1.3;display:flex}.price-what small{color:var(--ink-faint);font-size:12.5px;font-weight:700}.price-amount{color:color-mix(in srgb, var(--c) 80%, #000);font-variant-numeric:tabular-nums;white-space:nowrap;flex-direction:column;flex:none;align-items:flex-end;font-size:22px;font-weight:900;line-height:1.1;display:flex}.price-amount small{color:var(--ink-muted);font-size:11.5px;font-weight:800}.about-note{border:2px dashed var(--line);background:var(--surface-2);color:var(--ink-muted);border-radius:16px;margin-top:14px;padding:14px 16px;font-size:14px;font-weight:600;line-height:1.55}.about-callouts{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.about-callouts li{background:#fff9ec;border:2px solid #ffe5a8;border-radius:18px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:15px;font-weight:700;line-height:1.45;display:flex}.about-callouts li>span:first-child{font-size:20px;line-height:1.2}.about-callouts b{color:#a86a00}.foot-phone{color:var(--link);white-space:nowrap;font-weight:900;text-decoration:none}.foot-phone:hover{text-decoration:underline}@media (width>=560px){.about-features,.price-grid{grid-template-columns:1fr 1fr}}.shell.wide{max-width:720px}.muted-line{text-align:center;color:var(--ink-muted);margin:18px 0;font-size:14px;font-weight:700}.center-card{text-align:center;border:2px solid var(--line);background:var(--glass);box-shadow:0 4px 0 var(--line);border-radius:24px;margin-top:18vh;padding:28px 22px}.res-list .center-card,.center-card:not(:first-child){margin-top:0}.center-card h1{margin-bottom:8px;font-size:24px}.center-card p{color:var(--ink-muted);font-weight:600}.topbar-actions{gap:8px;margin-left:auto;display:flex}.kid-bar{align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.kid-chip{text-overflow:ellipsis;white-space:nowrap;background:color-mix(in srgb, var(--accent) 14%, #fff);color:var(--ink);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:800;overflow:hidden}.notice{background:#fff8e8;border:2px solid #ffe5a8;border-radius:16px;margin:0 0 16px;padding:12px 14px;font-size:14px;font-weight:700}.my-asks{border:2px solid var(--line);box-shadow:0 4px 0 var(--line);border-radius:22px;margin-bottom:22px;padding:16px}.my-asks-title{align-items:center;gap:10px;margin-bottom:10px;font-size:18px;display:flex}.my-asks-title small{color:#8a5600;letter-spacing:0;background:#fff2d4;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:900}.my-asks ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.my-ask{background:var(--surface-2);border-radius:16px;gap:4px;padding:12px 14px;display:grid}.my-ask-where{color:var(--ink-muted);font-size:12px;font-weight:800}.my-ask-context{font-size:15px;font-weight:700;line-height:1.4}.my-ask-said{color:var(--ink-muted);font-size:14px;font-style:italic;font-weight:700}.my-ask-state{color:#8a5600;background:#fff3d8;border-radius:999px;justify-self:start;margin-top:2px;padding:2px 9px;font-size:12px;font-weight:900}.my-ask.done .my-ask-state{background:var(--ok-bg);color:var(--ok-ink)}.res-list{gap:12px;display:grid}.attempt{border:2px solid var(--line);background:var(--glass);box-shadow:0 4px 0 var(--line);border-radius:22px;overflow:hidden}.attempt summary{cursor:pointer;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:14px;list-style:none;display:grid}.attempt summary::-webkit-details-marker{display:none}.attempt summary:hover{background:var(--glass-hover)}.attempt-icon{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:16px;place-items:center;width:48px;height:48px;font-size:24px;display:grid}.attempt-main{flex-direction:column;gap:3px;min-width:0;display:flex}.attempt-title{font-size:15px;font-weight:900;line-height:1.25}.attempt-when{color:var(--ink-muted);font-size:12.5px;font-weight:700}.chips{flex-wrap:wrap;gap:5px;display:flex}.chips:empty{display:none}.chip{background:var(--surface-2);color:var(--ink-muted);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800}.chip.warn{color:#a86a00;background:#fff3d8}.chip.good{background:var(--ok-bg);color:var(--ok-ink)}.score{background:var(--surface-2);border-radius:14px;flex-direction:column;align-items:center;min-width:58px;padding:6px 8px;display:flex}.score b{font-variant-numeric:tabular-nums;font-size:20px;font-weight:900;line-height:1.1}.score small{color:var(--ink-muted);font-size:10.5px;font-weight:800}.score.full{background:color-mix(in srgb, var(--ok) 18%, #fff);color:var(--ok-ink)}.score.open{background:#fff5dc}.attempt-body{padding:0 10px 12px}.answers{border:2px solid var(--line);background:var(--surface);color:var(--surface-ink);border-radius:18px;margin:0;padding:4px 14px;list-style:none}.ans{padding:12px 0}.ans+.ans{border-top:1px solid var(--surface-3)}.ans-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.ans-n{letter-spacing:.04em;text-transform:uppercase;color:var(--surface-muted);font-size:11px;font-weight:900}.ans-mark{color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:900;display:grid}.ans.ok .ans-mark{background:var(--ok)}.ans.bad .ans-mark{background:var(--bad)}.ans-time{color:var(--surface-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px;font-weight:800}.ans-prompt{font-size:15px;font-weight:700;line-height:1.4}.ans-prompt b{color:var(--highlight)}.ans-context{color:var(--surface-muted);margin-top:3px;font-size:13px;font-weight:700}.ans-row{align-items:baseline;gap:8px;margin-top:6px;display:flex}.ans-label{width:92px;color:var(--surface-muted);flex:none;font-size:12px;font-weight:800}.pill{overflow-wrap:anywhere;border-radius:10px;padding:3px 10px;font-size:14px;font-weight:800}.pill.ok{background:var(--ok-bg);color:var(--ok-ink)}.pill.bad{background:var(--bad-bg);color:var(--bad-ink)}.ans-note{color:var(--bad-ink);margin-top:5px;font-size:12px;font-weight:700}.answers-empty,.answers-missing{color:var(--ink-muted);margin-top:8px;padding:0 6px;font-size:13px;font-weight:700}.answers-empty{background:var(--surface-2);text-align:center;border-radius:16px;margin-top:0;padding:12px}.res-card{border:2px solid var(--line);background:var(--glass);box-shadow:0 4px 0 var(--line);border-radius:24px;margin-bottom:22px;padding:18px}.res-card-title{margin-bottom:12px;font-size:18px}.form{gap:12px;display:grid}.form .btn-primary{margin-top:4px}.field{gap:6px;display:grid}.field>span{letter-spacing:.03em;color:var(--ink-muted);font-size:12px;font-weight:800}.field input,.field select,.link-url{width:100%;font:inherit;border:2px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:14px;padding:12px 14px;font-size:15px;font-weight:700}.field select option{color:var(--ink)}.field input:focus,.field select:focus,.link-url:focus{border-color:var(--accent-2);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-2) 20%, transparent);outline:none}.form-error{color:#d62828;font-size:14px;font-weight:800}.made{background:color-mix(in srgb, var(--ok) 12%, #fff);border-radius:18px;margin-top:4px;padding:14px}.made p{margin-bottom:10px;font-weight:700}.link-actions{align-items:center;gap:8px;min-width:0;display:flex}.link-url{flex:1;min-width:0;padding:9px 12px;font-size:13px}.small-btn{border:2px solid var(--line);cursor:pointer;background:var(--glass);color:var(--ink);box-shadow:0 2px 0 var(--line);border-radius:12px;flex:none;padding:9px 13px;font-size:13px;font-weight:800}.small-btn:hover{background:var(--glass-hover)}.small-btn.danger{color:#d62828}.toggle{cursor:pointer;align-items:center;gap:10px;margin:0 4px 18px;font-size:14px;font-weight:800;display:flex}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.child{margin-bottom:30px}.child-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 4px 10px;display:flex}.child-head h2{font-size:22px}.child-meta{color:var(--ink-muted);font-size:13px;font-weight:700}.links{border:2px dashed var(--line);border-radius:18px;margin-bottom:12px}.links summary{cursor:pointer;color:var(--ink-muted);padding:10px 14px;font-size:13px;font-weight:800}.links ul{gap:10px;margin:0;padding:0 12px 12px;list-style:none;display:grid}.link-row{background:var(--surface-2);border-radius:14px;gap:8px;padding:12px;display:grid}.link-row.revoked{opacity:.55}.link-info{gap:2px;font-size:14px;display:grid}.link-info span{color:var(--ink-muted);font-size:12px;font-weight:700}.link-info .link-part{color:var(--ink);font-size:13px}.link-row .danger{justify-self:start}.seg{border:2px solid var(--line);background:var(--surface-2);border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.seg button{cursor:pointer;color:var(--ink-muted);background:0 0;border:none;border-radius:10px;padding:10px 8px;font-size:14px;font-weight:800;transition:background .15s,color .15s}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--surface);color:var(--link);box-shadow:0 2px 0 var(--line)}.part-picker{gap:10px;display:grid}.part-sum{background:color-mix(in srgb, var(--accent) 12%, #fff);border-radius:14px;gap:2px;padding:10px 12px;font-size:14px;font-weight:700;display:grid}.part-sum.empty{background:var(--surface-2);color:var(--ink-muted);font-size:13px;line-height:1.45;display:block}.part-sum-what{color:var(--ink-muted);font-size:12.5px;line-height:1.4}.part-units{gap:8px;margin:0;padding:0;list-style:none;display:grid}.part-unit{border:2px solid var(--line);background:var(--glass);border-radius:16px}.part-unit.some{border-color:color-mix(in srgb, var(--c) 55%, #fff);background:color-mix(in srgb, var(--c) 7%, #fff)}.part-unit-row{align-items:center;gap:6px;padding:6px 6px 6px 10px;display:flex}.part-unit-label{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;padding:2px 0;display:flex}.part-unit input,.part-item input{width:20px;height:20px;accent-color:var(--c,var(--accent));cursor:pointer;flex:none;margin:0}.part-unit-icon{background:var(--c);border-radius:11px;flex:none;place-items:center;width:36px;height:36px;font-size:19px;display:grid}.part-unit-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.part-unit-text small{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:900}.part-unit-text b{font-size:14.5px;font-weight:900}.part-more{background:var(--surface-2);color:var(--ink-muted);cursor:pointer;font-variant-numeric:tabular-nums;border:none;border-radius:10px;flex:none;align-items:center;gap:6px;padding:8px 10px;font-size:13px;font-weight:900;display:inline-flex}.part-more:hover{background:var(--line);color:var(--ink)}.part-more>span[aria-hidden]{transition:rotate .2s;display:inline-block}.part-more.open>span[aria-hidden]{rotate:180deg}.part-items{border-top:2px solid var(--line);gap:2px;margin:0;padding:6px 8px 8px;list-style:none;display:grid}.part-item{cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:7px 6px;font-size:14px;font-weight:700;line-height:1.3;display:flex}.part-item:hover{background:var(--glass-hover)}.part-n{text-align:right;min-width:26px;color:var(--ink-muted);font-variant-numeric:tabular-nums;flex:none;font-weight:900}.part-item small{background:color-mix(in srgb, var(--c) 20%, #fff);letter-spacing:.05em;text-transform:uppercase;border-radius:999px;margin-left:4px;padding:1px 7px;font-size:10.5px;font-weight:900}.filters{gap:12px;display:grid}.filters .res-card-title{margin-bottom:0}.filters .toggle{margin:0 2px}.topic-chips{flex-wrap:wrap;gap:8px;display:flex}.topic-chip{cursor:pointer;border:2px solid var(--line);background:var(--glass);color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:800;transition:background .15s,border-color .15s;display:inline-flex}.topic-chip:hover{background:var(--glass-hover);border-color:color-mix(in srgb, var(--c,var(--ink)) 45%, var(--line))}.topic-chip small{background:var(--surface-2);color:var(--ink-muted);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:900}.topic-chip.on{background:var(--c,var(--ink));color:var(--c-ink,#fff);text-shadow:0 1px 1px #0003;border-color:#0000}.topic-chip.on:not([style]){--c:var(--ink);--c-ink:#fff;text-shadow:none}.topic-chip.on small{color:inherit;background:#0003}.topic-groups{gap:12px;display:grid}.topic-group{border:2px solid var(--line);background:var(--glass);box-shadow:0 4px 0 var(--line);border-radius:22px}.topic-group[open]{border-color:color-mix(in srgb, var(--c) 45%, var(--line));background:color-mix(in srgb, var(--c) 4%, #fff)}.topic-group>summary{cursor:pointer;border-radius:21px;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:14px;list-style:none;display:grid}.topic-group>summary::-webkit-details-marker{display:none}.topic-group>summary:hover{background:var(--glass-hover)}.topic-icon{background:var(--c);width:48px;height:48px;box-shadow:0 4px 0 color-mix(in srgb, var(--c) 55%, #000);border-radius:15px;place-items:center;font-size:24px;display:grid}.topic-main{flex-direction:column;gap:2px;min-width:0;display:flex}.topic-kicker{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:900}.topic-title{font-size:16px;font-weight:900;line-height:1.25}.topic-meta{color:var(--ink-muted);font-size:12.5px;font-weight:700}.topic-score{background:var(--surface-2);text-align:center;border-radius:14px;flex-direction:column;align-items:center;min-width:66px;padding:6px 8px;display:flex}.topic-score b{font-variant-numeric:tabular-nums;font-size:20px;font-weight:900;line-height:1.1}.topic-score small{color:var(--ink-muted);font-size:10px;font-weight:800;line-height:1.2}.topic-score.good{background:color-mix(in srgb, var(--ok) 18%, #fff);color:var(--ok-ink)}.topic-score.fair{background:#fff3d8}.topic-score.weak{background:color-mix(in srgb, var(--bad) 16%, #fff);color:var(--bad-ink)}.topic-group>.res-list{padding:0 12px 12px}@media (width<=420px){.attempt summary{grid-template-columns:40px 1fr auto;gap:10px;padding:12px}.attempt-icon{border-radius:13px;width:40px;height:40px;font-size:20px}.ans-label{width:78px}.topic-group>summary{grid-template-columns:40px 1fr auto;gap:10px;padding:12px}.topic-icon{border-radius:13px;width:40px;height:40px;font-size:20px}.topic-score{min-width:58px}}main.locked{text-align:center;flex-direction:column;align-items:center;padding-top:5vh;display:flex}main.locked>*{animation:locked-up .6s var(--ease-out) backwards}main.locked>:nth-child(2){animation-delay:60ms}main.locked>:nth-child(3){animation-delay:.12s}main.locked>:nth-child(4){animation-delay:.18s}main.locked>:nth-child(n+5){animation-delay:.24s}@keyframes locked-up{0%{opacity:0;transform:translateY(12px)}}.locked-hero{margin-bottom:14px;position:relative}.locked-badge{border:2px solid var(--line);width:42px;height:42px;box-shadow:0 3px 0 var(--line);background:#fff;border-radius:50%;place-items:center;font-size:20px;display:grid;position:absolute;bottom:4px;right:-14px}main.locked h1{margin:14px 0 10px;font-size:clamp(28px,8vw,34px)}main.locked>p{max-width:34ch;color:var(--ink-muted);font-size:16px;font-weight:600;line-height:1.5}main.locked>p b{color:var(--ink);font-weight:900}main.locked .res-card{text-align:left;width:100%;margin:28px 0 0}@media (prefers-reduced-motion:reduce){main.locked>*{animation:none}}.locked-trial{flex-direction:column;align-items:center;gap:10px;margin-top:26px;display:flex}.locked-trial .big-btn{max-width:340px}.locked-trial-note{max-width:32ch;color:var(--ink-faint);font-size:13px;font-weight:700;line-height:1.45}.locked-trials{text-align:left;gap:12px;width:100%;margin-top:30px;display:grid}.locked-trials h2{margin:0 4px;font-size:21px}.locked-trials-note{color:var(--ink-muted);margin:-4px 4px 4px;font-size:14px;font-weight:600;line-height:1.45}.shell.center-shell{max-width:1100px;container-type:inline-size}.center-head{padding:6px 2px 14px}.center-head h1{margin-top:10px;font-size:30px}.center-head p{color:var(--ink-muted);margin-top:4px;font-size:14px;font-weight:700}.center-head .stale{color:#a86a00}.ghost-btn:disabled{opacity:.6;cursor:default}.spin{animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{rotate:360deg}}.center-tabs{z-index:20;scrollbar-width:none;background:var(--bg);border-bottom:2px solid var(--line);gap:6px;margin:0 -16px;padding:10px 16px;display:flex;position:sticky;top:0;overflow-x:auto}.center-tabs::-webkit-scrollbar{display:none}.center-tab{min-height:44px;color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;border:2px solid #0000;border-radius:14px;flex:none;align-items:center;gap:8px;padding:6px 14px;font-size:13.5px;font-weight:900;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.center-tab:hover{background:var(--glass-hover);color:var(--ink)}.center-tab.on{color:var(--link);background:#ddf4ff;border-color:#84d8ff}.center-tab>span[aria-hidden]{letter-spacing:0;font-size:18px}.center-tab-count{background:var(--surface-2);min-width:22px;color:var(--ink-muted);letter-spacing:0;text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 7px;font-size:11.5px}.center-tab-count.hot{color:#fff;background:#ff4b4b}@container (width<=559.98px){.center-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px 10px;display:grid}.center-tab{letter-spacing:.02em;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:58px;padding:6px 2px;font-size:10.5px;position:relative}.center-tab-label{text-overflow:ellipsis;max-width:100%;overflow:hidden}.center-tab>span[aria-hidden]{font-size:20px}.center-tab-count{min-width:18px;padding:0 5px;font-size:10px;line-height:16px;position:absolute;top:3px;left:calc(50% + 6px)}}.center-filters{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 4px;display:flex}.center-body{padding-top:12px;transition:opacity .2s}.center-body.busy{opacity:.6}.cc-stack{grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;min-width:0;display:grid}.cc-cols{grid-template-columns:minmax(0,1fr);gap:16px;min-width:0;display:grid}@container (width>=820px){.cc-cols{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}.links-tab.cc-cols{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}@container (width<=819.98px){.ordered>.cc-stack{display:contents}.ordered .first{order:1}.ordered .second{order:2}.ordered .third{order:3}.ordered .fourth{order:4}.ordered .fifth{order:5}}.cc-card{border:2px solid var(--line);background:var(--surface);min-width:0;box-shadow:0 4px 0 var(--line);border-radius:22px;padding:18px}.cc-card.form{gap:12px;display:grid}.cc-card-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.cc-card.form .cc-card-head{margin-bottom:2px}.cc-card-head h2{font-size:18px}.cc-card-sub{color:var(--ink-muted);margin-top:3px;font-size:12.5px;font-weight:700;line-height:1.4;display:block}.cc-empty{background:var(--surface-2);color:var(--ink-muted);text-align:center;border-radius:16px;padding:18px 14px;font-size:14px;font-weight:700}.cc-hint{color:var(--ink-muted);font-size:13px;font-weight:600;line-height:1.45}.cc-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.cc-stack>.cc-toolbar{margin-bottom:0}.cc-toolbar .cc-hint{flex:260px}.cc-search,.cc-select{border:2px solid var(--line);background:var(--surface-2);min-height:44px;color:var(--ink);font:inherit;border-radius:14px;padding:9px 14px;font-size:14.5px;font-weight:700}.cc-search{flex:200px;min-width:0}.cc-select{cursor:pointer;flex:180px;min-width:0;max-width:100%}.cc-search:focus,.cc-select:focus{border-color:var(--accent-2);background:var(--surface);outline:none}.center-page .seg{grid-template-columns:none;grid-auto-columns:1fr;grid-auto-flow:column}.seg.period{min-width:270px}.text-link{cursor:pointer;color:var(--link);background:0 0;border:none;padding:0;font-size:13px;font-weight:900;text-decoration:none}.text-link:hover{text-decoration:underline}.small-btn.go{border-color:color-mix(in srgb, var(--ok) 55%, #fff);background:var(--ok-bg);color:var(--ok-ink);box-shadow:0 2px 0 color-mix(in srgb, var(--ok) 55%, #fff);text-decoration:none}.small-btn.go:hover{background:color-mix(in srgb, var(--ok) 22%, #fff)}.small-btn:disabled{opacity:.5;cursor:default}a.small-btn{align-items:center;display:inline-flex}.back-link{color:var(--link);justify-self:start;font-size:14px;font-weight:900;text-decoration:none}.back-link:hover{text-decoration:underline}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@container (width>=640px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.tiles.six{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (width>=960px){.tiles.six{grid-template-columns:repeat(6,minmax(0,1fr))}}.stat{border:2px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;gap:2px;min-width:0;padding:14px 16px;display:flex}.stat-label{color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;font-size:11.5px;font-weight:900;line-height:1.3}.stat-value{letter-spacing:-.01em;margin-top:2px;font-size:28px;font-weight:900;line-height:1.15}.stat-sub{color:var(--ink-muted);font-size:12px;font-weight:700;line-height:1.35}.score-badge{background:var(--surface-2);min-width:66px;color:var(--ink);text-align:center;border-radius:14px;flex-direction:column;flex:none;align-items:center;padding:6px 8px;display:inline-flex}.score-badge b{font-variant-numeric:tabular-nums;font-size:19px;font-weight:900;line-height:1.1}.score-badge small{color:inherit;opacity:.75;font-size:10px;font-weight:800;line-height:1.2}.score-badge.small{border-radius:11px;min-width:54px;padding:4px 8px}.score-badge.small b{font-size:15px}.score-badge.good{background:var(--ok-bg);color:var(--ok-ink)}.score-badge.fair{color:#7a4f00;background:#fff2d4}.score-badge.weak{background:var(--bad-bg);color:var(--bad-ink)}.score-badge.none{color:var(--ink-faint)}.avatar{width:var(--s);height:var(--s);background:var(--c);color:#fff;font-size:calc(var(--s) * .44);text-shadow:0 1px 1px #00000040;box-shadow:0 2px 0 color-mix(in srgb, var(--c) 60%, #000);border-radius:50%;flex:none;place-items:center;font-weight:900;line-height:1;display:inline-grid}.cols{--plot:150px;padding-top:18px}.cols-plot{grid-template-columns:repeat(var(--n), minmax(0, 1fr));height:var(--plot);border-bottom:1px solid var(--line-deep);align-items:end;margin:0;padding:0;list-style:none;display:grid;position:relative}.col{cursor:default;outline:none;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.col:before{content:"";border-radius:6px 6px 0 0;transition:background .15s;position:absolute;inset:0 1px}.col:hover:before,.col:focus-visible:before{background:var(--surface-2)}.col-bar{width:min(24px,100% - 4px);min-height:0;transition:height .45s var(--ease-out), filter .15s;background:#1cb0f6;border-radius:4px 4px 0 0;display:block;position:relative}.col:hover .col-bar,.col:focus-visible .col-bar{filter:brightness(.92)}.col-top{color:var(--ink);font-variant-numeric:tabular-nums;pointer-events:none;font-size:12px;font-weight:900;position:absolute;left:50%;translate:-50% -4px}.col-tip{z-index:3;color:#fff;pointer-events:none;background:#3c3c3c;border-radius:12px;flex-direction:column;gap:1px;width:max-content;max-width:220px;padding:8px 11px;font-size:12px;font-weight:700;line-height:1.35;display:none;position:absolute;bottom:calc(100% + 8px);left:50%;translate:-50%;box-shadow:0 8px 20px -8px #0006}.col-tip b{font-size:14px;font-weight:900}.col-tip span{color:#dadada}.col-tip.start{left:0;translate:0}.col-tip.end{left:auto;right:0;translate:0}.col:hover .col-tip,.col:focus-visible .col-tip{display:flex}.cols-axis{grid-template-columns:repeat(var(--n), minmax(0, 1fr));color:var(--ink-faint);text-align:center;font-variant-numeric:tabular-nums;padding-top:6px;font-size:11px;font-weight:800;display:grid}.cols-axis span{white-space:nowrap;justify-content:center;min-width:0;display:flex}.cols-axis span:first-child{justify-content:flex-start}.cols-axis span:last-child{justify-content:flex-end}.daygrid{gap:10px;display:grid}.daygrid-cells{grid-template-columns:repeat(7,minmax(0,34px));gap:6px;display:grid}.daygrid-head{color:var(--ink-faint);text-align:center;font-size:11px;font-weight:900}.day{aspect-ratio:1;background:#efefef;border-radius:7px;outline:none}.day.future{background:0 0;box-shadow:inset 0 0 0 2px #f2f2f2}.day.l1{background:#cdf0b3}.day.l2{background:#97df62}.day.l3{background:#4caf00}.day[tabindex]:hover,.day[tabindex]:focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink-faint)}.daygrid-key{color:var(--ink-faint);align-items:center;gap:4px;font-size:11.5px;font-weight:800;display:flex}.daygrid-key .day{border-radius:4px;width:14px}.day-strip{gap:2px;display:inline-flex}.day-strip span{background:#e8e8e8;border-radius:2px;width:5px;height:14px}@container (width>=720px){.day-strip{gap:3px}.day-strip span{width:6px}}.day-strip span.on{background:#58cc02}.hbars{gap:12px;margin:0;padding:0;list-style:none;display:grid}.hbar{grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.hbar-ico{background:var(--c);width:40px;height:40px;box-shadow:0 3px 0 color-mix(in srgb, var(--c) 60%, #000);border-radius:12px;place-items:center;font-size:20px;display:grid}.hbar-text{flex-direction:column;min-width:0;display:flex}.hbar-text small{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;font-weight:900}.hbar-text b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:900;line-height:1.3;overflow:hidden}.hbar-track{background:var(--surface-2);border-radius:999px;height:8px;margin-top:5px;display:block;overflow:hidden}.hbar-track span{background:#1cb0f6;border-radius:4px;height:100%;display:block}.hbar-val{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.hbar-val b{font-variant-numeric:tabular-nums;font-size:18px;font-weight:900;line-height:1.1}.hbar-val small{color:var(--ink-muted);font-size:11px;font-weight:700}.hbar-text .hbar-detail{color:var(--ink-muted);letter-spacing:0;text-transform:none;margin-top:4px;font-size:11.5px;font-weight:700}.att-block+.att-block{border-top:2px dashed var(--line);margin-top:16px;padding-top:16px}.att-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;margin-bottom:10px;font-size:14.5px;display:flex}.att-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.att-list,.feed,.kid-list,.link-list,.hard-list,.twice-list{grid-template-columns:minmax(0,1fr)}.att-list>li,.feed>li,.kid-list>li,.link-list>li{min-width:0}.att-row,.feed-row{color:var(--ink);border-radius:14px;align-items:center;gap:12px;padding:8px;text-decoration:none;transition:background .15s;display:flex}.att-row:hover,.feed-row:hover{background:var(--glass-hover)}.att-text,.feed-text{flex-direction:column;flex:1;min-width:0;display:flex}.att-text b,.feed-text b{font-size:14.5px;font-weight:900;line-height:1.25}.att-text small,.feed-text small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:700;overflow:hidden}.topic-dot{background:var(--c);vertical-align:1px;border-radius:50%;width:9px;height:9px;display:inline-block}.feed{gap:2px;margin:0;padding:0;list-style:none;display:grid}.feed-side{text-align:right;flex-direction:column;flex:none;align-items:flex-end;gap:3px;display:flex}.feed-side small{color:var(--ink-faint);white-space:nowrap;font-size:11.5px;font-weight:700}.feed-score{background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 8px;font-size:13px;font-weight:900}.feed-score.open{color:#8a5600;background:#fff3d8;font-size:11px}.hard-list,.twice-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.hard,.twice{background:var(--surface-2);border-radius:16px;gap:6px;padding:12px 14px;display:grid}.hard-place{color:var(--ink-muted);font-size:12px;font-weight:800;line-height:1.35}.hard-prompt{font-size:15px;font-weight:700;line-height:1.4}.hard-prompt b{color:var(--highlight)}.hard-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;display:flex}.hard-count{color:var(--bad-ink);font-size:13px;font-weight:700}.hard-kids{flex-wrap:wrap;gap:6px;display:flex}.kid-chip{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 2px var(--line);border-radius:999px;align-items:center;gap:6px;padding:2px 9px 2px 2px;font-size:12.5px;font-weight:800;text-decoration:none;display:inline-flex}.kid-chip:hover{box-shadow:inset 0 0 0 2px var(--line-deep)}.ask-list{gap:10px;display:grid}.ask-item{background:#fffcf3;border:2px solid #ffdf94;border-radius:18px;gap:8px;padding:14px;display:grid}.ask-item.done{border-color:var(--line);background:var(--surface)}.ask-item-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.ask-who{min-width:0;color:var(--ink);align-items:center;gap:8px;text-decoration:none;display:inline-flex}a.ask-who:hover b{text-decoration:underline}.ask-who b{font-size:15px;font-weight:900}.ask-when{color:var(--ink-faint);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:800}.ask-when.inline{margin-left:0}.ask-place{color:var(--ink-muted);font-size:12.5px;font-weight:700;line-height:1.4}.ask-place b{color:var(--ink)}.ask-tags{flex-wrap:wrap;gap:6px;display:flex}.ask-tag{color:#8a5600;background:#fff1d6;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:900}.ask-said{overflow-wrap:anywhere;border-left:4px solid #ffc53d;margin:0;padding:4px 0 4px 12px;font-size:16px;font-weight:800;line-height:1.45}.ask-shown{background:var(--surface-2);border-radius:14px;gap:4px;padding:10px 12px;display:grid}.ask-shown-text{font-size:14.5px;font-weight:700;line-height:1.45}.ask-shown-text b{color:var(--highlight)}.ask-shown-more{color:var(--ink-muted);font-size:13px;font-weight:700;line-height:1.4}.ask-answer{color:var(--ink-muted);flex-wrap:wrap;gap:6px 14px;margin-top:4px;font-size:12px;font-weight:800;display:flex}.ask-answer .pill{margin-left:4px;font-size:13px}.ask-item-foot{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.ask-done{color:var(--ok-ink);font-size:13px;font-weight:800}.ask-group{gap:10px;display:grid}.ask-group-head{align-items:center;gap:12px;font-size:18px;display:flex}.ask-group-head small{color:var(--ink-muted);letter-spacing:0;font-size:13px;font-weight:700}.kids{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.kid-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.kid-head{display:none}.kid-row{border:2px solid var(--line);background:var(--surface);box-shadow:0 3px 0 var(--line);color:var(--ink);border-radius:18px;grid-template-columns:auto auto auto minmax(0,1fr);grid-template-areas:"who who who score""strip lessons time.";align-items:center;gap:10px 14px;padding:12px 14px;text-decoration:none;transition:background .15s,border-color .15s;display:grid}.kid-row:hover{background:var(--glass-hover);border-color:var(--line-deep)}.kid-who{grid-area:who;align-items:center;gap:12px;min-width:0;display:flex}.kid-name{flex-direction:column;min-width:0;display:flex}.kid-name b{align-items:center;gap:8px;font-size:16px;font-weight:900;line-height:1.25;display:flex}.kid-name small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:700;overflow:hidden}.kid-asks{color:#8a5600;background:#fff1d6;border-radius:999px;padding:1px 7px;font-size:11.5px;font-weight:900}.kid-strip{grid-area:strip}.kid-lessons{grid-area:lessons}.kid-time{grid-area:time}.kid-score{grid-area:score;justify-self:end}.kid-num{flex-direction:column;line-height:1.2;display:flex}.kid-num b{white-space:nowrap;font-size:15px;font-weight:900}.kid-num small{color:var(--ink-muted);white-space:nowrap;font-size:11.5px;font-weight:700}.kid-go{display:none}@container (width>=720px){.kid-head,.kid-row{grid-template-columns:minmax(0,1fr) 130px 104px 96px 116px 14px;grid-template-areas:"who strip lessons score time go"}.kid-head{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;gap:16px;padding:0 16px;font-size:11px;font-weight:900;display:grid}.kid-head span:first-child{grid-area:who}.kid-score{justify-self:start}.kid-go{color:var(--ink-faint);grid-area:go;font-size:22px;font-weight:900;display:block}}.profile-head{flex-wrap:wrap;align-items:center;gap:14px 16px;display:flex}.profile-title{flex:200px;min-width:0}.profile-title h2{font-size:26px}.profile-title span{color:var(--ink-muted);font-size:13.5px;font-weight:700}.next-class{border-color:color-mix(in srgb, #ffc53d 50%, var(--line));box-shadow:0 4px 0 color-mix(in srgb, #ffc53d 50%, var(--line))}.weak-topics{flex-wrap:wrap;gap:8px;display:flex}.weak-topic{background:color-mix(in srgb, var(--c) 10%, #fff);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--c) 40%, #fff);border-radius:14px;align-items:center;gap:8px;padding:4px 4px 4px 12px;font-size:14px;font-weight:800;display:inline-flex}.profile .toggle{margin:0 2px 12px}.note-box{resize:vertical;border:2px solid var(--line);background:var(--surface-2);width:100%;min-height:96px;color:var(--ink);font:inherit;border-radius:14px;padding:12px 14px;font-size:15px;font-weight:600;line-height:1.45}.note-box:focus{border-color:var(--accent-2);background:var(--surface);outline:none}.note-foot{justify-content:space-between;align-items:center;gap:10px;margin-top:10px;display:flex}.link-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.link-list .link-row{gap:10px}.link-main{flex-wrap:wrap;align-items:flex-start;gap:8px 14px;display:flex}.link-main .link-info{flex:200px;min-width:0}.link-use{color:var(--ink-muted);flex-direction:column;align-items:flex-start;gap:4px;font-size:12px;font-weight:800;display:flex}.link-progress{color:var(--ink);white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.meter{background:var(--line);border-radius:999px;width:70px;height:8px;display:inline-block;overflow:hidden}.meter span{background:#58cc02;border-radius:4px;height:100%;display:block}.link-used.never{color:#a86a00}.link-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.link-tools .link-actions{flex:260px}@container (width<=420px){.stat-value{font-size:24px}.center-head h1{font-size:26px}.cc-card{padding:14px}.seg.period{width:100%;min-width:0}}.chip.trial{color:var(--accent-deep)}.pop .big-btn.pop-full{color:#5a3a00;background:#ffc800;box-shadow:0 5px #d99a00}.pop .big-btn.pop-full:active{box-shadow:0 1px #d99a00}.trial-end{margin-top:36px}.trial-full{text-align:center;background:linear-gradient(170deg,#ffc8001f,#fff 70%);border:2px solid #ffc80073;border-radius:22px;width:100%;padding:22px 18px 16px}.trial-full-badge{filter:drop-shadow(0 6px 14px #ffc80073);font-size:40px;line-height:1;display:block}.trial-full h2{margin-top:8px;font-size:22px}.trial-full p{max-width:34ch;color:var(--ink-muted);margin:8px auto 0;font-size:15px;font-weight:600;line-height:1.5}.trial-full p b{color:var(--ink);font-weight:900}.trial-full .big-btn{text-align:center;margin-top:18px;text-decoration:none;display:block}.trial-pass{color:var(--ink-muted);margin-top:10px;padding:8px 12px;font-size:14px;font-weight:800;text-decoration:none;display:inline-block}.trial-pass:hover{color:var(--link);text-decoration:underline}.course-rail .trial-full{border-radius:20px;padding:20px 16px 14px}.course-rail .trial-full .big-btn{padding:12px 16px;font-size:15px}.done-tiles.two{grid-template-columns:repeat(2,1fr);max-width:290px}.trial-owl{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:24;align-items:flex-end;gap:4px;max-width:calc(100vw - 24px);display:flex;position:fixed}.trial-owl-card{border:2px solid var(--line);background:var(--surface);min-width:0;box-shadow:0 5px 0 var(--line), 0 24px 48px -20px #0000004d;transform-origin:100% 70%;border-radius:20px;flex:0 262px;margin-bottom:26px;padding:14px 14px 16px 16px;position:relative}.trial-owl-card:after{content:"";border:solid var(--line);background:var(--surface);border-width:2px 2px 0 0;width:14px;height:14px;position:absolute;bottom:58px;right:-9px;rotate:45deg}.trial-owl-say{color:var(--ink);padding-right:22px;font-size:15px;font-weight:700;line-height:1.4}.trial-owl-say b{color:#e8590c;font-weight:900}.trial-owl-call{color:#5a3a00;font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#ffc800;border-radius:14px;margin-top:12px;padding:11px 10px;font-size:16px;font-weight:900;text-decoration:none;transition:transform .1s,box-shadow .1s,filter .15s;display:block;box-shadow:0 4px #d99a00}.trial-owl-call:hover{filter:brightness(1.05)}.trial-owl-call:active{transform:translateY(3px);box-shadow:0 1px #d99a00}.trial-owl-x{width:32px;height:32px;color:var(--ink-faint);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;place-items:center;padding:0;font-size:15px;font-weight:900;display:grid;position:absolute;top:6px;right:6px}.trial-owl-x:hover{background:var(--glass-hover);color:var(--ink)}.trial-owl-bird{flex:none}@media (width<=360px){.trial-owl-say{font-size:14px}.trial-owl-call{font-size:15px}}.consent{z-index:100;left:calc(var(--side-w,0px) + 16px);right:16px;bottom:calc(16px + env(safe-area-inset-bottom));border:2px solid var(--line);background:var(--surface);max-width:560px;box-shadow:0 5px 0 var(--line), 0 24px 48px -20px #0000004d;animation:consent-in .35s var(--ease-out);border-radius:20px;margin:0 auto;padding:18px 18px 20px;position:fixed}.consent:focus{outline:none}.consent h2{color:var(--ink);font-size:19px}.consent p{color:var(--ink-muted);margin-top:6px;font-size:14.5px;font-weight:600;line-height:1.45}.consent a{color:var(--link);white-space:nowrap;font-weight:800;text-decoration:none}.consent a:hover{text-decoration:underline}.consent-actions{gap:12px;margin-top:16px;display:flex}.consent-actions .big-btn{flex:1;padding:12px 10px;font-size:15px}@keyframes consent-in{0%{opacity:0;transform:translateY(24px)}}:root{--bg:#fff;--ink:#3c3c3c;--ink-muted:#6b6b6b;--ink-faint:#8a8a8a;--line:#e5e5e5;--line-deep:#cecece;--glass:#fff;--glass-hover:#f7f7f7;--surface:#fff;--surface-2:#f7f7f7;--surface-3:#e5e5e5;--surface-ink:#3c3c3c;--surface-muted:#777;--link:#1899d6;--ok:#22a06b;--ok-bg:#ddf7ea;--ok-ink:#0e5a3b;--bad:#e5484d;--bad-bg:#ffe1e1;--bad-ink:#8a1f23;--accent:#58cc02;--accent-ink:#fff;--accent-deep:#58a700;--accent-2:#1cb0f6;--highlight:#1899d6;--font:"Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ease-out:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}body.no-scroll{overflow:hidden}button{font:inherit}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:900;line-height:1.15}p{margin:0}.page{isolation:isolate;min-height:100dvh;padding:20px 16px calc(40px + env(safe-area-inset-bottom));justify-content:center;display:flex;position:relative}.shell{width:100%;max-width:480px}.topbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.ghost-btn{border:2px solid var(--line);background:var(--glass);box-shadow:0 3px 0 var(--line);color:var(--ink-muted);cursor:pointer;border-radius:12px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:800;text-decoration:none;transition:background .15s,color .15s,transform .1s,box-shadow .1s;display:inline-flex}.ghost-btn:hover{background:var(--glass-hover);color:var(--ink)}.ghost-btn:active{box-shadow:0 1px 0 var(--line);transform:translateY(2px)}:where(a,button):focus-visible{outline:3px solid color-mix(in srgb, var(--accent-2) 70%, transparent);outline-offset:2px}.foot{text-align:center;color:var(--ink-faint);margin-top:28px;font-size:13px;font-weight:600}.big-btn{background:var(--unit,var(--accent));color:#fff;letter-spacing:.05em;text-align:center;text-transform:uppercase;cursor:pointer;width:100%;max-width:600px;box-shadow:0 5px 0 color-mix(in srgb, var(--unit,var(--accent)) 60%, #000);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;border-radius:16px;padding:15px 20px;font-size:17px;font-weight:900;text-decoration:none;transition:transform .1s,box-shadow .1s,filter .15s,background .15s;display:block}.big-btn:hover{filter:brightness(1.05)}.big-btn:active{box-shadow:0 1px 0 color-mix(in srgb, var(--unit,var(--accent)) 60%, #000);transform:translateY(4px)}.big-btn.danger{--unit:#ff4b4b}.big-btn.plain{background:var(--surface);color:var(--link);box-shadow:inset 0 0 0 2px var(--line), 0 5px 0 var(--line)}.big-btn.plain:hover{filter:none;background:var(--glass-hover)}.big-btn.plain:active{box-shadow:inset 0 0 0 2px var(--line), 0 1px 0 var(--line)}@media (width>=900px){::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background-clip:padding-box;background-image:linear-gradient(color-mix(in srgb, var(--accent) 55%, transparent), color-mix(in srgb, var(--accent-2) 55%, transparent));border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-image:linear-gradient(var(--accent), var(--accent-2))}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 55%, transparent) transparent}}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
