:root{--navy: #1b1f4b;--orange: #ff8a1f;--mint: #2ee6a8;--violet: #7c5cff;--violet-deep: #5b3fe0;--cream: #fff7e8;--font: ui-rounded, "SF Pro Rounded", "Nunito", system-ui, sans-serif;--bg: #fff7e8;--surface: #ffffff;--surface-2: #ffeacb;--surface-3: #f1dcb6;--text: #1b1f4b;--text-soft: #4a4f7a;--ink: #1b1f4b;--edge: #1b1f4b;--board-bg: #1b1f4b;--board-text: #fff7e8;--focus: #5b3fe0;--kp-op-ink: #5b3fe0;--notice-bg: #ffe7cc;--av-shell: #ffffff;--av-plate: #1b1f4b;--av-stem: #1b1f4b;--sheet-bg: #fff7e8;--accent: var(--orange);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1b1f4b;--surface: #272c66;--surface-2: #20255a;--surface-3: #363c82;--text: #fff7e8;--text-soft: #c9ccf0;--ink: #0c0e2e;--edge: #8c92d9;--board-bg: #0f1236;--board-text: #fff7e8;--focus: #2ee6a8;--kp-op-ink: #2ee6a8;--notice-bg: #33295a;--av-shell: #f4f0ff;--av-plate: #0f1236;--av-stem: #c9ccf0;--sheet-bg: #2a2f6e;color-scheme:dark}}:root[data-theme=dark]{--bg: #1b1f4b;--surface: #272c66;--surface-2: #20255a;--surface-3: #363c82;--text: #fff7e8;--text-soft: #c9ccf0;--ink: #0c0e2e;--edge: #8c92d9;--board-bg: #0f1236;--board-text: #fff7e8;--focus: #2ee6a8;--kp-op-ink: #2ee6a8;--notice-bg: #33295a;--av-shell: #f4f0ff;--av-plate: #0f1236;--av-stem: #c9ccf0;--sheet-bg: #2a2f6e;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:17px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden}.rss-root{min-height:100vh;min-height:100dvh;font-family:var(--font);color:var(--text)}.rss-app{max-width:480px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 10px) max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 28px) max(16px,env(safe-area-inset-left,0px))}:where(button){font:inherit;color:inherit;cursor:pointer}h2,h3,p{margin:0}:where(.rss-root) :focus-visible{outline:4px solid var(--focus);outline-offset:3px}:where(.rss-root) [tabindex="-1"]:focus:not(:focus-visible){outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ic{display:block;flex:none;width:1.2em;height:1.2em}.ic .cut{fill:var(--cut, #fff)}.ic .cut-s{stroke:var(--cut, #fff)}:where(.btn,.act,.choice,.ctl,.kp-key,.buddy,.chip,.icon-btn,.voice-chip,.profile-chip,.toggle,.resume-big,.ladder-dot,.ob-num,.ob-topic,.ob-same,.plan-chip){--press: 5px;appearance:none;margin:0;border:3px solid var(--edge, var(--ink));background:var(--btn-bg, var(--surface));color:var(--btn-fg, var(--text));--cut: var(--btn-bg, var(--surface));box-shadow:0 var(--press) 0 var(--ink);transition:transform 80ms ease,box-shadow 80ms ease;touch-action:manipulation;user-select:none;-webkit-user-select:none}:where(.btn,.act,.choice,.ctl,.kp-key,.buddy,.chip,.icon-btn,.voice-chip,.profile-chip,.toggle,.resume-big,.ladder-dot,.ob-num,.ob-topic,.ob-same,.plan-chip):active:not(:disabled){transform:translateY(calc(var(--press) - 1px));box-shadow:0 1px 0 var(--ink)}:where(.btn,.act,.choice,.ctl,.kp-key,.chip,.icon-btn,.voice-chip,.profile-chip,.ladder-dot):disabled{opacity:.38;cursor:default;box-shadow:0 2px 0 var(--ink)}.tone-orange{--btn-bg: var(--orange);--btn-fg: var(--navy)}.tone-violet{--btn-bg: var(--violet-deep);--btn-fg: #ffffff}.tone-mint{--btn-bg: var(--mint);--btn-fg: var(--navy)}.tone-plain{--btn-bg: var(--surface);--btn-fg: var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:10px 20px;border-radius:20px;font-size:19px;font-weight:900}.btn .ic{width:26px;height:26px}.btn.big{width:100%;min-height:64px;font-size:22px}.icon-btn{display:grid;place-items:center;flex:none;width:52px;height:52px;padding:0;border-radius:16px;--press: 4px}.icon-btn .ic{width:26px;height:26px}.chip{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:4px 16px 4px 6px;border-radius:999px;font-size:17px;font-weight:850;--press: 3px}.chip .ic{width:32px;height:32px;padding:5px;border-radius:50%;background:var(--violet-deep);color:#fff}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;margin-bottom:8px}.pill{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:48%;min-height:40px;padding:0 14px 0 12px;border:2.5px solid var(--ink);border-radius:999px;background:var(--surface);font-size:15px;font-weight:850}.pill-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pill-dot{--dot: #9aa0c8;flex:none;width:12px;height:12px;border-radius:50%;background:var(--dot);box-shadow:0 0 0 2px var(--ink)}.pill[data-status=ready] .pill-dot,.pill[data-status=listening] .pill-dot{--dot: var(--mint)}.pill[data-status=speaking] .pill-dot,.pill[data-status=cooldown] .pill-dot{--dot: var(--orange)}.pill[data-status=connecting] .pill-dot{--dot: var(--violet)}.pill[data-status=listening] .pill-dot,.pill[data-status=speaking] .pill-dot,.pill[data-status=connecting] .pill-dot{animation:pulse 1.2s ease-out infinite}.quiz-track{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:900}.quiz-dots{display:flex;gap:5px}.quiz-dots i{width:12px;height:12px;border:2.5px solid var(--ink);border-radius:50%;background:var(--surface)}.quiz-dots i.is-done{background:var(--mint)}.quiz-dots i.is-now{background:var(--orange)}.banner{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:10px 14px;border:3px solid var(--ink);border-radius:18px;background:var(--orange);color:var(--navy);font-size:16px;font-weight:850;--cut: var(--orange)}.banner .ic{width:28px;height:28px}.stage{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:14px;margin:4px 0 16px}.rss-app[data-screen=home] .stage{grid-template-columns:112px 1fr}.bubble{position:relative;min-height:64px;padding:12px 16px;border:3px solid var(--ink);border-radius:24px;background:var(--surface);box-shadow:0 4px 0 var(--ink)}.bubble:before{content:"";position:absolute;top:50%;left:-11px;width:18px;height:18px;margin-top:-9px;border-left:3px solid var(--ink);border-bottom:3px solid var(--ink);background:var(--surface);transform:rotate(45deg)}.bubble-text{font-size:19px;font-weight:750;line-height:1.38;overflow-wrap:anywhere}.talk-dots{display:none;gap:6px;padding:8px 0}.talk-dots i,.waiting-dots i{width:10px;height:10px;border-radius:50%;background:var(--orange);animation:dot-bounce 1s ease-in-out infinite}.talk-dots i:nth-child(2),.waiting-dots i:nth-child(2){animation-delay:.15s;background:var(--mint)}.talk-dots i:nth-child(3),.waiting-dots i:nth-child(3){animation-delay:.3s;background:var(--violet)}.no-captions:not([data-voice=text]) .bubble-text{display:none}.no-captions:not([data-voice=text]) .talk-dots,.is-speaking .bubble.is-empty .talk-dots{display:inline-flex}.heard{margin-top:8px;color:var(--text-soft);font-size:15px;font-weight:750;overflow-wrap:anywhere}.avatar{--lvl: 0;width:100%;aspect-ratio:200 / 180}.av-svg{display:block;width:100%;height:100%;overflow:visible}.av-float{animation:av-float 3.2s ease-in-out infinite}.av-bob,.av-ant,.av-tip,.av-mouth,.av-eyes-open,.av-eye{transform-box:fill-box}.av-bob{transform-origin:50% 100%}.av-shell{fill:var(--av-shell);stroke:var(--ink);stroke-width:5}.av-plate{fill:var(--av-plate);stroke:var(--ink);stroke-width:3}.av-body{fill:var(--violet);stroke:var(--ink);stroke-width:4}.av-ant-stem{fill:none;stroke:var(--av-stem);stroke-width:5;stroke-linecap:round}.av-ant-l{transform-origin:100% 100%}.av-ant-r{transform-origin:0% 100%}.av-tip{stroke:var(--ink);stroke-width:4;transform-origin:center;transform:scale(calc(1 + var(--lvl) * .4));transition:transform 60ms linear}.av-tip-l{fill:var(--orange)}.av-tip-r{fill:var(--mint)}.av-eyes-open{transform-origin:center;animation:av-blink 5s infinite}.av-eye{transform-origin:center;transition:transform .16s ease}.av-iris{fill:var(--mint)}.av-pupil{fill:var(--navy);transition:transform .2s ease}.av-glint{fill:#fff;transition:transform .2s ease}.av-eyes-happy{display:none}.av-happy{fill:none;stroke:var(--mint);stroke-width:7;stroke-linecap:round}.av-mouth{fill:var(--orange);transform-origin:center;transform:scaleY(calc(.7 + var(--lvl) * 2.2));transition:transform 60ms linear}.av-cheek{fill:var(--violet);opacity:.55}.is-listening .av-eye,.avatar[data-expr=listen] .av-eye,.avatar[data-expr=curious] .av-eye{transform:scale(1.12)}.is-listening .av-tip{animation:av-glow 1.2s ease-in-out infinite}.avatar[data-expr=greet] .av-eyes-open,.avatar[data-expr=celebrate] .av-eyes-open,.avatar[data-expr=proud] .av-eyes-open,.avatar[data-expr=laugh] .av-eyes-open,.avatar[data-expr=goodbye] .av-eyes-open,.avatar[data-expr=encourage] .av-eyes-open{display:none}.avatar[data-expr=greet] .av-eyes-happy,.avatar[data-expr=celebrate] .av-eyes-happy,.avatar[data-expr=proud] .av-eyes-happy,.avatar[data-expr=laugh] .av-eyes-happy,.avatar[data-expr=goodbye] .av-eyes-happy,.avatar[data-expr=encourage] .av-eyes-happy{display:inline}.avatar[data-expr=think] .av-pupil,.avatar[data-expr=think] .av-glint{transform:translate(4px,-5px)}.avatar[data-expr=oops] .av-eye{transform:scaleY(.55)}.avatar[data-expr=greet] .av-ant-l,.avatar[data-expr=goodbye] .av-ant-l,.avatar[data-expr=celebrate] .av-ant-l{animation:av-wave-l .5s ease-in-out 4}.avatar[data-expr=greet] .av-ant-r,.avatar[data-expr=goodbye] .av-ant-r,.avatar[data-expr=celebrate] .av-ant-r{animation:av-wave-r .5s ease-in-out 4}.avatar[data-expr=yes] .av-bob,.avatar[data-expr=encourage] .av-bob{animation:av-nod .45s ease-in-out 3}.avatar[data-expr=think] .av-bob{animation:av-tilt-l .5s ease-out forwards}.avatar[data-expr=curious] .av-bob{animation:av-tilt-r .5s ease-out forwards}.avatar[data-expr=celebrate] .av-bob{animation:av-jump .55s ease-out 3}.avatar[data-expr=proud] .av-bob{animation:av-proud .6s ease-out forwards}.avatar[data-expr=oops] .av-bob{animation:av-shake .4s ease-in-out 2}.avatar[data-expr=laugh] .av-bob{animation:av-bounce .25s ease-in-out 6}.avatar[data-expr=listen] .av-bob{animation:av-lean .4s ease-out forwards}.home-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.chip-name{max-width:9em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.stats{display:flex;align-items:center;gap:14px;min-height:48px;padding:4px 14px;border:3px solid var(--ink);border-radius:999px;background:var(--surface);--cut: var(--surface)}.stat{display:inline-flex;align-items:center;gap:5px;font-size:19px;font-weight:900}.stat .ic{width:24px;height:24px;color:var(--orange)}.stat-stars .ic path{stroke:var(--ink);stroke-width:1.6}.stat-unit{color:var(--text-soft);font-size:14px;font-weight:750}.continue-btn{justify-content:flex-start;width:100%;margin-top:14px;text-align:left}.continue-text{display:flex;flex-direction:column}.continue-label{color:var(--text-soft);font-size:14px;font-weight:750}.h2{margin:22px 0 10px;font-size:22px;font-weight:900;letter-spacing:-.01em}.h3{margin:6px 0 10px;font-size:18px;font-weight:900}.buddies{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.buddy{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;min-height:156px;padding:12px 6px;border-radius:24px;text-align:center}.buddy-art{display:grid;place-items:center;width:64px;height:64px;border:3px solid var(--ink);border-radius:50%;background:var(--card-accent, var(--orange))}.buddy-emoji{font-size:36px;line-height:1}.buddy-name{font-size:15px;font-weight:900;line-height:1.15}.buddy-tag{display:-webkit-box;overflow:hidden;color:var(--text-soft);font-size:13px;font-weight:700;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.buddy[aria-checked=true]{box-shadow:0 0 0 4px var(--card-accent, var(--orange)),0 calc(var(--press) + 4px) 0 var(--ink)}.buddy[aria-checked=true] .buddy-art{animation:buddy-pop .35s cubic-bezier(.3,1.6,.5,1)}.buddy-check{position:absolute;top:-10px;right:-8px;display:none;place-items:center;width:30px;height:30px;border:3px solid var(--ink);border-radius:50%;background:var(--mint);color:var(--navy)}.buddy-check .ic{width:16px;height:16px}.buddy[aria-checked=true] .buddy-check{display:grid}.activities{display:grid;gap:12px}.act{display:flex;align-items:center;gap:14px;min-height:88px;padding:14px 16px;border-radius:26px;text-align:left}.act-badge{display:grid;place-items:center;flex:none;width:56px;height:56px;border:3px solid var(--ink);border-radius:18px;background:var(--cream);font-size:30px;transform:rotate(-4deg)}.act-title{display:block;font-size:22px;font-weight:900;line-height:1.15}.act-sub{display:block;margin-top:3px;font-size:15px;font-weight:750}.lesson-prompt{margin:0 0 12px;font-size:24px;font-weight:900;text-align:center}.board{position:relative;display:grid;place-items:center;min-height:150px;padding:26px 16px;overflow:hidden;border:3px solid var(--ink);border-radius:30px;background:var(--board-bg);color:var(--board-text);box-shadow:0 6px 0 var(--ink);--fx-op: var(--mint)}.board:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:radial-gradient(circle at 8% 22%,var(--cream) 1.4px,transparent 2.4px),radial-gradient(circle at 22% 84%,var(--cream) 1px,transparent 2px),radial-gradient(circle at 46% 10%,var(--mint) 1.4px,transparent 2.4px),radial-gradient(circle at 71% 88%,var(--cream) 1.6px,transparent 2.6px),radial-gradient(circle at 90% 30%,var(--orange) 1.6px,transparent 2.6px),radial-gradient(circle at 95% 72%,var(--cream) 1px,transparent 2px)}.board.is-confirm{box-shadow:0 0 0 4px var(--orange),0 10px 0 var(--ink)}.board-inner{position:relative;display:flex;justify-content:center;width:100%}.board .fx-expr{--fx-base: clamp(52px, 16vw, 76px)}.waiting{display:flex;flex-direction:column;align-items:center;gap:14px;padding:36px 0;font-size:19px;font-weight:850}.waiting-dots{display:inline-flex;gap:8px}.waiting-dots i{width:16px;height:16px}.notice{margin-top:12px;padding:12px 14px;border:3px solid var(--orange);border-radius:18px;background:var(--notice-bg);font-size:17px;font-weight:800;overflow-wrap:anywhere}.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:16px}.choice{display:flex;align-items:center;justify-content:center;gap:10px;min-height:76px;padding:8px 14px;border-radius:24px;font-size:24px;font-weight:900}.choice .ic{width:30px;height:30px}.hints{margin-top:16px}.ladder-row{display:flex;align-items:center;gap:12px}.ladder-label{color:var(--text-soft);font-size:16px;font-weight:850}.ladder{display:flex;gap:8px}.ladder-dot{display:grid;place-items:center;width:48px;height:48px;padding:0;border-radius:50%;font-size:18px;font-weight:900;--press: 3px}.ladder-dot .ic{width:22px;height:22px}.ladder-dot.is-reached{--btn-bg: var(--orange);--btn-fg: var(--navy)}.ladder-dot.is-current{outline:3px solid var(--focus);outline-offset:3px}.hint-card{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:12px 14px;border:3px solid var(--ink);border-radius:20px;background:var(--surface-2);font-size:18px;font-weight:700;line-height:1.4;--cut: var(--surface-2)}.hint-card>.ic{width:28px;height:28px;color:var(--orange)}.hint-card>.ic path:first-child{stroke:var(--ink);stroke-width:1.2}.hint-text{overflow-wrap:anywhere}.type-box{display:grid;justify-items:start;gap:10px;margin-top:14px}.type-toggle .ic{background:var(--mint);color:var(--navy);--cut: var(--mint)}.type-form{display:flex;gap:10px;width:100%}.type-input{flex:1;min-width:0;min-height:52px;padding:0 14px;border:3px solid var(--ink);border-radius:16px;background:var(--surface);color:var(--text);font:inherit;font-size:18px;font-weight:700}.type-input::placeholder{color:var(--text-soft);opacity:1}.controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:10px;margin-top:16px}.ctl{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:66px;padding:6px;border-radius:20px;font-size:15px;font-weight:850}.ctl .ic{width:26px;height:26px}.keypad{display:grid;gap:10px;margin-top:16px;padding:12px;border:3px solid var(--ink);border-radius:28px;background:var(--surface-2);--fx-op: var(--kp-op-ink)}.kp-display{position:relative;display:grid;place-items:center;min-height:92px;padding:10px 12px;overflow:hidden;border:3px solid var(--ink);border-radius:20px;background:var(--surface);color:var(--text)}.keypad[data-kind=problem] .kp-display{min-height:132px}.kp-display .fx-expr{--fx-base: 46px}.keypad[data-kind=problem] .kp-display .fx-expr{--fx-base: 54px}.kp-display.is-shake{animation:shake .35s ease-in-out}.kp-display .fx-expr.kp-ghost{display:none;opacity:.25}.keypad.is-empty[data-kind=problem] .kp-display .fx-expr.kp-ghost{display:inline-flex}.keypad.is-empty[data-kind=problem] .kp-display>.fx-expr:not(.kp-ghost){display:none}.kp-ops{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.kp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.kp-key{display:grid;place-items:center;min-width:0;min-height:60px;padding:0;border-radius:18px;font-size:30px;font-weight:900;line-height:1}.kp-op{min-height:52px;font-size:28px;--btn-bg: var(--violet-deep);--btn-fg: #ffffff;--press: 4px}.kp-op.kp-op-word{font-size:20px}.kp-op.is-on{--btn-bg: var(--orange);--btn-fg: var(--navy)}.kp-fn{--btn-bg: var(--surface-3)}.kp-back .ic{width:32px;height:32px}.kp-bar{--btn-bg: var(--orange);--btn-fg: var(--navy)}.kp-mix{--btn-bg: var(--mint);--btn-fg: var(--navy)}.kp-clear{font-size:18px}.kp-go{grid-column:span 2;font-size:26px;--btn-bg: var(--surface-3)}.kp-go.is-ready{--btn-bg: var(--mint);--btn-fg: var(--navy)}.kp-go-inner{display:inline-flex;align-items:center;gap:8px}.kp-go .ic{width:28px;height:28px}.kp-glyph{display:inline-flex;align-items:center;gap:5px}.kp-glyph-frac{display:inline-flex;flex-direction:column;align-items:center;gap:3px}.kp-glyph-frac i{display:block;width:14px;height:12px;border:2.5px solid currentColor;border-radius:4px}.kp-glyph-frac b{display:block;width:24px;height:4px;border-radius:2px;background:currentColor}.kp-glyph-whole{font-size:24px;font-weight:900}.kp-cmp{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.kp-cmp-key{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:104px;--btn-bg: var(--orange);--btn-fg: var(--navy)}.kp-cmp-key:nth-child(2){--btn-bg: var(--mint)}.kp-cmp-sym{font-size:48px;font-weight:900;line-height:1}.kp-cmp-sub{font-size:15px;font-weight:850}.kp-cmp-key .kp-cmp-sub{max-width:100%;padding:0 4px;font-size:14px;line-height:1.1;text-align:center;overflow-wrap:anywhere}.kp-cmp-frac{--fx-bar: var(--navy);display:inline-flex;font-size:34px;font-weight:900;line-height:1;white-space:nowrap}.fx-expr{--fx-base: 56px;display:inline-flex;align-items:center;gap:.24em;font-size:calc(var(--fx-base) * var(--fx-scale, 1));font-weight:900;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em}.fx-num{display:inline-flex;align-items:center;gap:.08em}.fx-frac{display:inline-flex;flex-direction:column;align-items:center;font-size:.72em}.fx-n,.fx-d{display:block;min-width:.8em;padding:0 .1em;text-align:center}.fx-bar{display:block;align-self:stretch;height:.13em;min-height:4px;margin:.1em 0;border-radius:99px;background:var(--fx-bar, var(--orange))}.fx-sign{font-size:.8em}.fx-op{color:var(--fx-op, var(--violet-deep));font-size:.8em}.fx-eq{font-size:.8em;opacity:.85}.fx-of{padding:.2em .55em;border-radius:99px;background:var(--violet-deep);color:#fff;font-size:.42em}.fx-cmp{display:inline-grid;place-items:center;width:1.35em;height:1.35em;border-radius:50%;background:var(--orange);color:var(--navy);font-size:.62em}.fx-ask{display:inline-grid;place-items:center;min-width:1.3em;height:1.3em;border:.08em dashed var(--orange);border-radius:.25em;color:var(--orange);font-size:.7em}.fx-slot{display:inline-block;width:.75em;height:.9em;border:.06em dashed currentColor;border-radius:.16em;opacity:.55}.fx-frac .fx-slot{align-self:center}.kp-display,.bubble,.hint-card,.recap-lines{--fx-bar: var(--text)}.fx-slot.is-active{border-style:solid;border-color:var(--fx-bar, var(--orange));opacity:1;animation:caret 1s step-end infinite}.fx-int.is-active,.fx-n.is-active,.fx-d.is-active{box-shadow:inset 0 -.09em 0 var(--fx-bar, var(--orange))}.fx-inline{display:inline-flex;align-items:center;gap:.12em;margin:0 .1em;font-weight:900;vertical-align:middle}.fx-inline .fx-frac{font-size:.8em;line-height:1}.fx-inline .fx-bar{height:3px;min-height:3px;margin:1px 0}.screen-recap{padding-top:4px;text-align:center}.recap-choices,.recap-controls{margin:12px 0;justify-content:center}.stars-row{display:flex;justify-content:center;align-items:flex-end;gap:8px;margin:4px 0 12px}.big-star .ic{width:84px;height:84px;color:var(--surface-3)}.big-star:nth-child(2) .ic{width:104px;height:104px}.big-star .ic path{stroke:var(--ink);stroke-width:1.3}.big-star.is-on .ic{color:var(--orange);animation:star-pop .6s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i, 0) * .22s + .1s)}.recap-title{margin:6px 0 14px;font-size:30px;font-weight:900}.recap-lines{display:grid;gap:10px;margin:0 0 18px;padding:0;list-style:none;text-align:left}.recap-lines li{padding:12px 14px;border:3px solid var(--ink);border-radius:18px;background:var(--surface);font-size:17px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}.confetti{position:fixed;inset:0;z-index:50;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-24px;left:var(--x);width:10px;height:16px;border-radius:var(--br);background:var(--c);transform:rotate(var(--r));animation:confetti-fall var(--t) cubic-bezier(.25,.6,.45,1) var(--d) forwards}.paused{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;background:#1b1f4bf0;color:var(--cream);text-align:center}.paused-title{font-size:34px;font-weight:900}.paused-sub{font-size:19px;font-weight:800}.resume-big{display:grid;place-items:center;width:132px;height:132px;padding:0;border-radius:50%;--btn-bg: var(--mint);--btn-fg: var(--navy);--press: 7px}.resume-big .ic{width:64px;height:64px;margin-left:6px}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);z-index:60;max-width:min(420px,calc(100vw - 32px));padding:12px 18px;border:3px solid var(--cream);border-radius:18px;background:var(--navy);color:var(--cream);font-size:17px;font-weight:800;box-shadow:0 4px #0c0e2e99;transform:translate(-50%);animation:toast-in .2s ease-out;overflow-wrap:anywhere}.overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;background:#0c0e2e9e}.overlay-card{align-items:center;padding:16px}.sheet{width:100%;max-width:480px;max-height:90vh;max-height:90dvh;overflow:auto;overscroll-behavior:contain;padding:18px max(16px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 20px) max(16px,env(safe-area-inset-left,0px));border:3px solid var(--ink);border-bottom:0;border-radius:30px 30px 0 0;background:var(--sheet-bg);color:var(--text);outline:none;animation:sheet-up .22s ease-out}.sheet-card{max-height:calc(100dvh - 32px);padding:22px 18px;border-bottom:3px solid var(--ink);border-radius:30px;box-shadow:0 8px 0 var(--ink)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.sheet-title{font-size:26px;font-weight:900}.voice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.voice-chip{min-height:48px;padding:6px 10px;border-radius:14px;font-size:16px;font-weight:850;--press: 3px}.voice-chip:first-child{grid-column:1 / -1}.voice-chip[aria-checked=true]{--btn-bg: var(--mint);--btn-fg: var(--navy)}.toggles{display:grid;gap:10px;margin:18px 0}.toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:8px 14px 8px 16px;border-radius:18px;font-size:17px;font-weight:850;text-align:left;--press: 3px}.toggle-track{position:relative;flex:none;width:58px;height:34px;border:3px solid var(--ink);border-radius:99px;background:var(--surface-3)}.toggle-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border:2.5px solid var(--ink);border-radius:50%;background:#fff;transition:transform .15s ease}.toggle[aria-checked=true] .toggle-track{background:var(--mint)}.toggle[aria-checked=true] .toggle-knob{transform:translate(24px)}.privacy{margin:12px 0;color:var(--text-soft);font-size:15px;font-weight:700;line-height:1.45}.sheet-actions{display:grid;gap:10px;margin-top:12px}.danger.is-armed{--btn-bg: #ffd6d0;--btn-fg: #7a1408}.profile-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.profile-chip{display:inline-flex;align-items:center;gap:8px;min-height:52px;padding:0 18px 0 12px;border-radius:999px;font-size:18px;font-weight:850;--press: 3px}.profile-chip .ic{width:22px;height:22px}.profile-chip.is-on{--btn-bg: var(--mint);--btn-fg: var(--navy)}.lead{margin-bottom:12px;font-size:19px;font-weight:800;line-height:1.4}.facts{display:grid;gap:8px;margin:0 0 20px;padding-left:22px;font-size:16.5px;font-weight:700;line-height:1.45}.facts li::marker{color:var(--orange)}.plan-chip{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;margin-top:14px;padding:8px 12px 8px 8px;border-radius:24px;text-align:left;--press: 4px}.plan-badge{display:grid;place-items:center;flex:none;width:48px;height:48px;border:3px solid var(--ink);border-radius:16px;background:var(--accent);font-size:26px;line-height:1;transform:rotate(-4deg)}.plan-text{display:flex;flex:1;flex-direction:column;min-width:0}.plan-title{font-size:18px;font-weight:900;line-height:1.2;overflow-wrap:anywhere}.plan-sub{color:var(--text-soft);font-size:14px;font-weight:750}.plan-go{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--violet-deep);color:#fff}.plan-go .ic{width:20px;height:20px}.details-btn{width:100%;margin-bottom:10px}.rss-app[data-screen=onboarding] .stage{grid-template-columns:112px 1fr}.screen-onboarding{display:grid;gap:14px}.ob-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px}.ob-dots{display:flex;align-items:center;gap:8px}.ob-dots i{display:block;width:16px;height:16px;border:3px solid var(--edge);border-radius:99px;background:var(--surface);transition:width .2s ease}.ob-dots i.is-done{border-color:var(--ink);background:var(--mint)}.ob-dots i.is-now{width:40px;border-color:var(--ink);background:var(--orange)}.ob-hear{margin-left:auto}.ob-title{font-size:28px;font-weight:900;line-height:1.15;letter-spacing:-.01em;text-align:center}.ob-notice{margin-top:0;text-align:center}.ob-body{min-height:0}.ob-step{display:grid;gap:14px;animation:ob-in .32s cubic-bezier(.3,1.4,.5,1)}.ob-name-form{display:grid;gap:12px}.ob-input{min-height:68px;border-radius:22px;font-size:26px;font-weight:900;text-align:center;box-shadow:inset 0 4px 0 var(--surface-2)}.ob-input::placeholder{font-weight:750}.ob-help{margin:0;text-align:center}.ob-help.is-warn{color:var(--text);font-weight:850}.ob-hello{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 12px 18px;border:3px solid var(--ink);border-radius:24px;background:var(--board-bg);color:var(--board-text);box-shadow:0 4px 0 var(--ink)}.ob-hello-hi{min-width:0;font-size:26px;font-weight:900;line-height:1.15;overflow-wrap:anywhere}.ob-hello-name{color:var(--orange)}.ob-fix{min-height:48px;padding:6px 14px;border-radius:16px;font-size:16px;--press: 3px}.ob-fix .ic{width:20px;height:20px}.ob-grid{display:grid;gap:12px}.ob-grid-age{grid-template-columns:repeat(3,1fr)}.ob-grid-grade{grid-template-columns:repeat(4,1fr)}.ob-num{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:80px;padding:6px 4px;border-radius:24px}.ob-num-big{font-size:34px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums lining-nums}.ob-num-sub{color:var(--text-soft);font-size:13px;font-weight:800;line-height:1.1}.ob-num[aria-pressed=true]{--btn-bg: var(--mint);--btn-fg: var(--navy)}.ob-num[aria-pressed=true] .ob-num-sub{color:var(--navy)}.ob-num.is-suggested{--btn-bg: var(--orange);--btn-fg: var(--navy);box-shadow:0 0 0 4px var(--accent),0 calc(var(--press) + 4px) 0 var(--ink);animation:buddy-pop .45s cubic-bezier(.3,1.6,.5,1) .2s backwards}.ob-num.is-suggested .ob-num-sub{color:var(--navy)}.ob-num-star{position:absolute;top:-11px;right:-9px;display:grid;place-items:center;width:30px;height:30px;border:3px solid var(--ink);border-radius:50%;background:var(--cream);color:var(--orange)}.ob-num-star .ic{width:18px;height:18px}.ob-hint{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:3px dashed var(--orange);border-radius:18px;background:var(--notice-bg);font-size:17px;font-weight:850;text-align:center}.ob-hint-star .ic{width:22px;height:22px;color:var(--orange)}.ob-topics{display:grid;gap:12px}.ob-topic,.ob-same{display:flex;align-items:center;gap:14px;width:100%;min-height:92px;padding:12px 14px;border-radius:26px;text-align:left}.ob-topic[aria-pressed=true]{box-shadow:0 0 0 4px var(--accent),0 calc(var(--press) + 4px) 0 var(--ink)}.ob-topic-badge{display:grid;place-items:center;flex:none;width:56px;height:56px;border:3px solid var(--ink);border-radius:18px;background:var(--badge, var(--cream));font-size:30px;line-height:1;transform:rotate(-4deg)}.ob-topic:nth-child(2n) .ob-topic-badge{transform:rotate(4deg)}.badge-orange{--badge: var(--orange)}.badge-violet{--badge: #b9a8ff}.badge-mint{--badge: var(--mint)}.ob-topic-text{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.ob-topic-title{font-size:20px;font-weight:900;line-height:1.15}.ob-example{display:inline-flex;align-items:center;gap:.3em;padding:4px 12px;border-radius:12px;background:var(--board-bg);color:var(--board-text);font-size:22px;font-weight:900;line-height:1.2;white-space:nowrap;word-spacing:.15em}.ob-example .fx-inline{margin:0 .12em}.ob-tag{display:inline-block;padding:2px 10px;border:2px solid var(--ink);border-radius:999px;background:var(--mint);color:var(--navy);font-size:13px;font-weight:900;line-height:1.3}.ob-same{min-height:104px}.ob-same>.ic{flex:none;width:30px;height:30px}.ob-same .ob-topic-badge{background:var(--cream)}.ob-same-title{font-size:24px;font-weight:900;line-height:1.1}.ob-same-sub{font-size:16px;font-weight:800}.ob-or{margin:8px 0 0;text-align:center}.ob-done{justify-items:center;padding:10px 0;text-align:center}.ob-done-check{display:grid;place-items:center;width:84px;height:84px;border:3px solid var(--ink);border-radius:50%;background:var(--mint);color:var(--navy);box-shadow:0 5px 0 var(--ink);animation:buddy-pop .45s cubic-bezier(.3,1.6,.5,1)}.ob-done-check .ic{width:46px;height:46px}.ob-done-name{font-size:30px;font-weight:900;overflow-wrap:anywhere}.ob-done-sub{color:var(--text-soft);font-size:18px;font-weight:800}.ob-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.ob-back{padding-right:18px}.ob-skip{margin-left:auto;min-height:52px;padding:8px 18px;font-size:18px}.ob-skip .ic{width:20px;height:20px}.ob-link{display:inline-flex;align-items:center;justify-self:center;gap:8px;min-height:48px;padding:6px 14px;border:0;border-radius:14px;background:none;color:var(--text-soft);font-size:17px;font-weight:850;text-decoration:underline;text-underline-offset:3px}.ob-link .ic{width:22px;height:22px}@media (max-width: 360px){.rss-app[data-screen=onboarding] .stage{grid-template-columns:84px 1fr}.ob-title{font-size:24px}.ob-grid{gap:10px}.ob-num{min-height:72px}.ob-num-big{font-size:30px}.ob-topic,.ob-same{gap:12px;padding:10px 12px}.ob-topic-badge{width:48px;height:48px;font-size:26px}.ob-topic-title{font-size:18px}.ob-same-title{font-size:21px}.ob-hello-hi{font-size:23px}}@keyframes ob-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media (max-width: 360px){.stage{grid-template-columns:72px 1fr;gap:12px}.rss-app[data-screen=home] .stage{grid-template-columns:92px 1fr}.bubble-text{font-size:17px}.buddy-tag{display:none}.buddy{min-height:128px}.kp-key{min-height:56px;font-size:26px}.kp-ops{gap:6px}.act-title{font-size:20px}}@media (max-width: 389px){.kp-ops{grid-template-columns:repeat(3,1fr)}}@media (max-width: 399px){.topbar{flex-wrap:wrap;row-gap:8px}.pill{flex:1 1 auto;max-width:none}.pill-text{overflow:visible;white-space:normal;text-overflow:clip}}@keyframes pulse{0%{box-shadow:0 0 0 2px var(--ink),0 0 0 2px var(--dot)}to{box-shadow:0 0 0 2px var(--ink),0 0 0 10px transparent}}@keyframes dot-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}@keyframes caret{50%{opacity:.35}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes buddy-pop{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes star-pop{0%{transform:scale(0) rotate(-30deg)}70%{transform:scale(1.2) rotate(6deg)}to{transform:scale(1) rotate(0)}}@keyframes confetti-fall{0%{transform:translate(0) rotate(var(--r))}to{transform:translate(var(--dx),110vh) rotate(calc(var(--r) + 540deg))}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@keyframes toast-in{0%{transform:translate(-50%,12px);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes av-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes av-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes av-glow{0%,to{opacity:1}50%{opacity:.55}}@keyframes av-wave-l{0%,to{transform:rotate(0)}50%{transform:rotate(-16deg)}}@keyframes av-wave-r{0%,to{transform:rotate(0)}50%{transform:rotate(16deg)}}@keyframes av-nod{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes av-tilt-l{to{transform:rotate(-9deg)}}@keyframes av-tilt-r{to{transform:rotate(10deg)}}@keyframes av-jump{0%,to{transform:translateY(0)}40%{transform:translateY(-20px) scale(1.04)}}@keyframes av-proud{to{transform:translateY(-6px) scale(1.04)}}@keyframes av-shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}75%{transform:translate(7px)}}@keyframes av-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes av-lean{to{transform:translateY(3px) scale(1.04)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.confetti{display:none}}
