:root,[data-theme=calm]{--bg: #eef3f3;--bg-tint: radial-gradient(120% 80% at 50% -10%, #ffffff 0%, #eef3f3 60%);--surface: #ffffff;--surface-2: #f6f9f9;--line: #dde6e6;--text: #17302f;--muted: #5f7a79;--accent: #2f7d75;--accent-soft: #dcece9;--accent-ink: #ffffff;--good: #3f8f5f;--warn: #b0632c;--ring: rgba(47, 125, 117, .35);--accent-2: #d98b39;--shadow: 0 1px 2px rgba(16, 44, 43, .05), 0 8px 24px rgba(16, 44, 43, .06);--radius: 16px;--bw: 1px;--font-head: inherit;--lift: none;color-scheme:light}[data-theme=playful]{--bg: #f0f2ff;--bg-tint: radial-gradient(130% 90% at 50% -20%, #fffdf5 0%, #eaf0ff 45%, #f0f2ff 100%);--surface: #ffffff;--surface-2: #f3f5ff;--line: #d9defc;--text: #241f4d;--muted: #6a6a99;--accent: #6a4dff;--accent-soft: #e9e6ff;--accent-ink: #ffffff;--accent-2: #ff9a1f;--good: #16b56b;--warn: #f0722f;--ring: rgba(106, 77, 255, .4);--shadow: 0 3px 0 var(--line), 0 10px 22px rgba(60, 50, 140, .1);--radius: 22px;--bw: 2px;--font-head: "Baloo 2", ui-rounded, system-ui, sans-serif;--lift: 0 6px 0 rgba(106, 77, 255, .22);color-scheme:light}[data-theme=playful] h1,[data-theme=playful] h2,[data-theme=playful] h3{font-family:var(--font-head);letter-spacing:0;font-weight:700}[data-theme=playful] h1{font-size:1.95rem}[data-theme=playful] .card,[data-theme=playful] .ex,[data-theme=playful] .stat{border-width:2px}[data-theme=playful] .btn{border-width:2px;border-radius:14px;font-weight:700}[data-theme=playful] .btn-primary{box-shadow:var(--lift)}[data-theme=playful] .btn-primary:active{box-shadow:none;transform:translateY(3px)}[data-theme=playful] .ex .ico{font-size:1.5rem;border-radius:15px}[data-theme=playful] .ex:hover{transform:translateY(-3px) rotate(-.4deg)}[data-theme=playful] .nav button[aria-current=page]{font-weight:700}[data-theme=playful] .stat .n{font-family:var(--font-head);font-size:1.75rem}[data-theme=playful] .chart .bar{border-radius:8px}[data-theme=warm]{--bg: #fbf5ec;--bg-tint: radial-gradient(120% 80% at 50% -10%, #fffdf9 0%, #fbf5ec 60%);--surface: #fffdfa;--surface-2: #f7efe3;--line: #ebdfcd;--text: #33261c;--muted: #7d6a58;--accent: #c05f2c;--accent-soft: #f7e3d5;--accent-ink: #fffdfa;--good: #6b8f3f;--warn: #a8511f;--ring: rgba(192, 95, 44, .3);--accent-2: #7d8f3f;--shadow: 0 1px 2px rgba(60, 40, 25, .05), 0 8px 24px rgba(60, 40, 25, .07);--radius: 18px;--bw: 1px;--font-head: inherit;--lift: none;color-scheme:light}[data-theme=dark]{--bg: #14181b;--bg-tint: radial-gradient(120% 80% at 50% -10%, #1d2429 0%, #14181b 60%);--surface: #1b2126;--surface-2: #222a30;--line: #2d363d;--text: #e8eef1;--muted: #93a3ad;--accent: #5cc2b3;--accent-soft: #23383a;--accent-ink: #0e1416;--good: #6bcf8f;--warn: #e0a05e;--ring: rgba(92, 194, 179, .35);--accent-2: #e0a05e;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 32px rgba(0, 0, 0, .35);--radius: 16px;--bw: 1px;--font-head: inherit;--lift: none;color-scheme:dark}[data-theme=contrast]{--bg: #000000;--bg-tint: #000000;--surface: #0a0a0a;--surface-2: #141414;--line: #6a6a6a;--text: #ffffff;--muted: #d6d6d6;--accent: #ffd400;--accent-soft: #2a2400;--accent-ink: #000000;--good: #6bff9b;--warn: #ffab4a;--ring: rgba(255, 212, 0, .5);--accent-2: #ffab4a;--shadow: none;--radius: 8px;--bw: 2px;--font-head: inherit;--lift: none;color-scheme:dark}@media (prefers-color-scheme: dark){[data-theme=system]{--bg: #14181b;--bg-tint: radial-gradient(120% 80% at 50% -10%, #1d2429 0%, #14181b 60%);--surface: #1b2126;--surface-2: #222a30;--line: #2d363d;--text: #e8eef1;--muted: #93a3ad;--accent: #5cc2b3;--accent-soft: #23383a;--accent-ink: #0e1416;--good: #6bcf8f;--warn: #e0a05e;--ring: rgba(92, 194, 179, .35);--accent-2: #e0a05e;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 32px rgba(0, 0, 0, .35);color-scheme:dark}}:root{--scale: 1}[data-text=large]{--scale: 1.14}[data-text=xlarge]{--scale: 1.3}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);background-image:var(--bg-tint);background-attachment:fixed;color:var(--text);font:400 calc(16px * var(--scale)) / 1.55 "Nunito",ui-rounded,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0;line-height:1.2;letter-spacing:-.015em;font-weight:650}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0 0 .8em}a{color:var(--accent)}:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:6px}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.78rem}.center{text-align:center}.nowrap{white-space:nowrap}.stack{display:grid;gap:14px}.stack-sm{display:grid;gap:8px}.row{display:flex;align-items:center;gap:10px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.wrap{flex-wrap:wrap}.grow{flex:1}.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}.shell{min-height:100%;display:flex;flex-direction:column;max-width:720px;margin:0 auto;padding:0 16px calc(84px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 2px 16px}.topbar .who{font-size:.85rem;color:var(--muted)}.brand{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:-.02em;font-size:1.05rem}.brand .dot{width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}main{flex:1}.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:center;gap:4px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}.nav button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.74rem;display:grid;justify-items:center;gap:3px;padding:7px 16px;border-radius:12px;cursor:pointer;min-width:64px}.nav button .ico{font-size:1.15rem;line-height:1}.nav button[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.nav button:hover:not([aria-current=page]){color:var(--text)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card.flush{padding:0;overflow:hidden}.card-quiet{background:var(--surface-2);box-shadow:none}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-weight:600;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:11px 18px;cursor:pointer;transition:transform .12s ease,background .15s ease,border-color .15s ease}.btn:hover{border-color:var(--accent)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(1.06)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-ghost:hover{color:var(--text);border-color:var(--line)}.btn-danger{color:#d9534f;border-color:color-mix(in srgb,#d9534f 40%,var(--line));background:transparent}[data-theme=dark] .btn-danger,[data-theme=contrast] .btn-danger{color:#ff8b87}.btn-block{width:100%}.btn-lg{padding:15px 22px;font-size:1.05rem;border-radius:14px}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:grid;gap:6px}.field label{font-size:.85rem;font-weight:600;color:var(--muted)}input[type=text],input[type=email],input[type=password],select,textarea{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:11px 13px;width:100%}textarea{resize:vertical;min-height:88px}input[type=range]{width:100%;accent-color:var(--accent)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.error{background:color-mix(in srgb,var(--warn) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 45%,var(--line));color:var(--text);padding:10px 13px;border-radius:11px;font-size:.9rem}.notice{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:11px;padding:11px 13px;font-size:.87rem}.pill{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:.8rem;color:var(--muted)}.pill.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--text)}.auth-wrap{min-height:100%;display:grid;place-items:center;padding:32px 16px calc(32px + env(safe-area-inset-bottom))}.auth{width:100%;max-width:400px;display:grid;gap:18px}.auth-head{text-align:center;display:grid;gap:8px;justify-items:center}.auth-mark{width:54px;height:54px;border-radius:50%;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));display:grid;place-items:center}.auth-mark span{width:16px;height:16px;border-radius:50%;background:var(--accent)}.tabs{display:flex;gap:6px;background:var(--surface-2);padding:4px;border-radius:12px}.tabs button{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;font:inherit;font-weight:600;padding:9px;border-radius:9px;cursor:pointer;color:var(--muted)}.tabs button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.hero{display:grid;gap:4px;padding:4px 2px 8px}.hero h1{font-size:1.75rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;box-shadow:var(--shadow)}.stat .n{font-size:1.5rem;font-weight:700;letter-spacing:-.03em}.stat .l{font-size:.76rem;color:var(--muted)}.ex-list{display:grid;gap:10px}.ex{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:15px 16px;font:inherit;color:inherit;cursor:pointer;transition:transform .14s ease,border-color .14s ease}.ex:hover{border-color:var(--accent);transform:translateY(-1px)}.ex .ico{width:42px;height:42px;flex:none;border-radius:12px;background:var(--accent-soft);display:grid;place-items:center;font-size:1.25rem}.ex .name{font-weight:650}.ex .sub{font-size:.84rem;color:var(--muted)}.ex .chev{color:var(--muted);font-size:1.1rem}.ex .tick{color:var(--good);font-size:1.05rem}.back{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;font:inherit;color:var(--muted);cursor:pointer;padding:4px 0;display:inline-flex;gap:6px;align-items:center}.back:hover{color:var(--text)}.steps{margin:0;padding-left:1.25em;display:grid;gap:7px}.steps li{padding-left:2px}.cues{display:grid;gap:7px;margin:0;padding:0;list-style:none}.cues li{display:flex;gap:9px;font-size:.92rem}.cues li:before{content:"“";color:var(--accent);font-size:1.3rem;line-height:1}details.help>summary{cursor:pointer;font-weight:600;font-size:.92rem;color:var(--accent);list-style:none}details.help>summary::-webkit-details-marker{display:none}details.help>summary:before{content:"▸ "}details.help[open]>summary:before{content:"▾ "}details.help>div{padding-top:12px}.breath-stage{display:grid;place-items:center;padding:26px 0 10px}.ring-box{position:relative;width:250px;height:250px;display:grid;place-items:center}.ring-track,.ring-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%}.ring-track{border:2px solid var(--line)}.ring-fill{background:var(--accent-soft);border:2px solid var(--accent);will-change:transform,opacity}.ring-label{position:relative;text-align:center;z-index:1;display:grid;justify-items:center;align-items:end;gap:2px}.ring-label .buddy-slot{height:66px;display:grid;align-items:end}.ring-label .phase{font-size:1.3rem;font-weight:650}.ring-label .count{font-size:2.2rem;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.breath-stage .cycles{font-size:.82rem;color:var(--muted);padding-top:10px}.beat-row{display:flex;gap:8px;justify-content:center;padding:8px 0 2px}.beat{width:13px;height:13px;border-radius:50%;background:var(--line);transition:transform .1s ease,background .1s ease}.beat.on{background:var(--accent);transform:scale(1.5)}.pace-line{font-size:1.45rem;line-height:1.9;font-weight:600;letter-spacing:.01em;text-align:center}.syl{opacity:.34;transition:opacity .12s ease,color .12s ease}.syl.done{opacity:.55}.syl.now{opacity:1;color:var(--accent)}.word-stage{display:grid;place-items:center;gap:10px;min-height:178px;padding:22px 12px;background:var(--surface-2);border-radius:var(--radius);text-align:center}.word-stage .word{font-size:2rem;font-weight:700;letter-spacing:-.02em}.word-stage .word.phrase{font-size:1.5rem}.word-stage .hint{font-size:.87rem;color:var(--muted);max-width:34ch}.onset-guide{height:8px;border-radius:999px;background:var(--line);overflow:hidden}.onset-guide>i{display:block;height:100%;background:var(--accent);width:0}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:.84rem;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 13px}.chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--text);font-weight:600}.passage{font-size:1.22rem;line-height:2.05;padding:4px 2px}.passage .phrase-seg{cursor:pointer;border-radius:5px;padding:1px 2px}.passage .phrase-seg:hover{background:var(--surface-2)}.passage .phrase-seg.read{color:var(--muted)}.passage .phrase-seg.now{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.mark{display:inline-block;color:var(--accent);font-weight:700;padding:0 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.mark.hidden-mark{opacity:0}.timer{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:650;color:var(--muted)}.ease-row{display:flex;gap:7px}.ease-row button{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:11px;padding:11px 4px;font-size:.8rem;display:grid;gap:3px;justify-items:center}.ease-row button .f{font-size:1.2rem}.ease-row button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);font-weight:650}.chart{display:flex;align-items:stretch;gap:5px;height:132px;padding-top:6px}.chart .col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;gap:6px}.chart .barwrap{flex:1;width:100%;position:relative;display:flex;align-items:flex-end;justify-content:center}.chart .bar{width:100%;max-width:26px;min-height:4px;border-radius:6px 6px 3px 3px;background:var(--accent);opacity:.9}.chart .bar.empty{background:var(--line);opacity:1}.chart .day{font-size:.68rem;color:var(--muted)}.log{display:grid}.log-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}.log-row:last-child{border-bottom:0}.log-row .ico{font-size:1.1rem}.log-row .meta{font-size:.8rem;color:var(--muted)}.log-row .x{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem;padding:4px 6px;border-radius:8px}.log-row .x:hover{color:#d9534f;background:var(--surface-2)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}.theme-opt{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;cursor:pointer;text-align:left;border:2px solid var(--line);border-radius:14px;padding:11px;background:var(--surface);color:var(--text);display:grid;gap:9px}.theme-opt[aria-pressed=true]{border-color:var(--accent)}.theme-opt .swatch{display:flex;height:34px;border-radius:9px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.theme-opt .swatch i{flex:1}.theme-opt .nm{font-size:.87rem;font-weight:650}.theme-opt .ds{font-size:.74rem;color:var(--muted)}.set-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.set-row:last-child{border-bottom:0}.set-row .lab{font-weight:600;font-size:.93rem}.set-row .sub{font-size:.8rem;color:var(--muted)}.set-row .ctl{flex:none;min-width:120px}.seg{display:flex;background:var(--surface-2);border-radius:10px;padding:3px}.seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;font:inherit;font-size:.82rem;padding:7px 11px;border-radius:8px;cursor:pointer;color:var(--muted)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:650;box-shadow:var(--shadow)}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media (max-width: 420px){.stats{grid-template-columns:repeat(3,1fr);gap:7px}.stat{padding:11px}.stat .n{font-size:1.3rem}.ring-box{width:218px;height:218px}.nav button{min-width:0;flex:1;padding:7px 2px;font-size:.68rem}.nav{gap:0}}.avatar{display:block;overflow:visible}.avatar .av-fur{fill:var(--fur)}.avatar .av-belly{fill:var(--belly)}.avatar .av-extra{fill:var(--extra)}.avatar .av-eye{fill:#fff}.avatar .av-pupil{fill:#241f4d}.avatar .av-ink{stroke:#241f4d;fill:#241f4d}.avatar .av-blush{fill:var(--extra);opacity:.4}.avatar .av-shell{fill:color-mix(in srgb,var(--fur) 84%,#000000)}.avatar .av-motion,.avatar .av-shadow,.avatar .av-wing,.avatar .av-tail,.avatar .av-tail-tip,.avatar .av-ears,.avatar .av-head,.avatar .av-tuft,.avatar .av-whiskers,.avatar .av-leg-l,.avatar .av-leg-r,.avatar .av-lid{transform-box:fill-box}.avatar .av-motion{transform-origin:50% 92%;animation:av-idle 3.4s ease-in-out infinite}.avatar .av-shadow{fill:#14103c1a;transform-origin:50% 50%;animation:av-shadow 3.4s ease-in-out infinite}.avatar.av-mood-wow .av-motion{animation:av-hop .75s cubic-bezier(.3,.8,.4,1) infinite}.avatar.av-mood-wow .av-shadow{animation:av-shadow-hop .75s cubic-bezier(.3,.8,.4,1) infinite}.avatar.av-mood-listening .av-motion{animation:av-lean 2.4s ease-in-out infinite}.avatar.av-mood-closed .av-motion{animation:av-idle 5.2s ease-in-out infinite}.avatar .av-lid{transform-origin:50% 0%;transform:scaleY(0);animation:av-blink 5.4s ease-in-out infinite}.avatar .av-lid:nth-of-type(2){animation-delay:.08s}.avatar.av-cat .av-lid{animation-duration:6.6s}.avatar.av-turtle .av-lid{animation-duration:4.2s}.avatar.av-fox .av-lid{animation-duration:5.9s}.avatar.av-bear .av-lid{animation-duration:7.1s}.avatar.av-owl .av-lid{animation-duration:3.6s}.avatar .av-wing{transform-origin:10% 30%;animation:av-wing 1.9s ease-in-out infinite}.avatar .av-tail{transform-origin:8% 80%;animation:av-tail 2.3s ease-in-out infinite}.avatar .av-tail-tip{transform-origin:0% 80%;animation:av-tail 2.3s ease-in-out infinite}.avatar .av-ears{transform-origin:50% 90%;animation:av-ears 4.2s ease-in-out infinite}.avatar .av-head{transform-origin:50% 95%;animation:av-head 3.8s ease-in-out infinite}.avatar .av-tuft{transform-origin:50% 100%;animation:av-tuft 2.8s ease-in-out infinite}.avatar .av-whiskers{transform-origin:50% 50%;animation:av-whiskers 5.5s ease-in-out infinite}.avatar .av-leg-l{transform-origin:50% 50%;animation:av-waddle 2.6s ease-in-out infinite}.avatar .av-leg-r{transform-origin:50% 50%;animation:av-waddle 2.6s ease-in-out infinite reverse}.avatar.av-mood-wow .av-wing{animation-duration:.55s}.avatar.av-mood-wow .av-tail,.avatar.av-mood-wow .av-tail-tip{animation-duration:.7s}.avatar.av-turtle .av-head{transform-origin:50% 100%;animation:av-peek 4.6s ease-in-out infinite}.avatar.av-turtle.av-mood-wow .av-head{animation-duration:1.4s}@keyframes av-idle{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-3px) rotate(-1.6deg)}50%{transform:translateY(-5px) rotate(0)}75%{transform:translateY(-3px) rotate(1.6deg)}}@keyframes av-shadow{0%,to{transform:scale(1)}50%{transform:scale(.85)}}@keyframes av-hop{0%,to{transform:translateY(0) scale(1.04,.94)}20%{transform:translateY(0) scale(1.08,.9)}45%{transform:translateY(-12px) scale(.96,1.06)}70%{transform:translateY(0) scale(1.04,.95)}}@keyframes av-shadow-hop{0%,to{transform:scale(1);opacity:1}45%{transform:scale(.7);opacity:.55}}@keyframes av-lean{0%,to{transform:rotate(-5deg) translateY(-1px)}50%{transform:rotate(5deg) translateY(-1px)}}@keyframes av-whiskers{0%,82%,to{transform:rotate(0)}88%{transform:rotate(-3deg) translateY(-1px)}94%{transform:rotate(2deg)}}@keyframes av-waddle{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(-4deg)}}.avatar.av-still .av-motion,.avatar.av-still .av-shadow,.avatar.av-still .av-wing,.avatar.av-still .av-tail,.avatar.av-still .av-tail-tip,.avatar.av-still .av-ears,.avatar.av-still .av-head,.avatar.av-still .av-tuft,.avatar.av-still .av-whiskers,.avatar.av-still .av-leg-l,.avatar.av-still .av-leg-r{animation:none}@keyframes av-blink{0%,90%,to{transform:scaleY(0)}93%,95%{transform:scaleY(1)}}@keyframes av-wing{50%{transform:rotate(-20deg)}}@keyframes av-tail{0%,to{transform:rotate(-9deg)}50%{transform:rotate(11deg)}}@keyframes av-ears{0%,78%,to{transform:rotate(0)}86%{transform:rotate(-7deg)}92%{transform:rotate(5deg)}}@keyframes av-head{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes av-tuft{0%,to{transform:rotate(-7deg)}50%{transform:rotate(9deg)}}@keyframes av-peek{0%,to{transform:translateY(0)}45%,60%{transform:translateY(-4px)}}.mascot-row{display:flex;align-items:center;gap:14px;background:var(--surface-2);border:var(--bw) solid var(--line);border-radius:var(--radius);padding:13px 16px}.mascot-row .says{font-size:.94rem}.mascot-row .says strong{display:block;font-family:var(--font-head)}.buddy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.buddy{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;cursor:pointer;border:2px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);padding:10px 6px 8px;display:grid;justify-items:center;gap:4px}.buddy[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.buddy .nm{font-size:.84rem;font-weight:700}.buddy:hover .avatar .av-motion{animation:av-hop .8s cubic-bezier(.3,.8,.4,1) infinite}.sticker-shelf{display:flex;gap:9px;flex-wrap:wrap}.sticker{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.45rem;background:var(--accent-soft);border:var(--bw) solid color-mix(in srgb,var(--accent) 35%,var(--line));position:relative}.sticker.locked{background:var(--surface-2);border-style:dashed;opacity:.5;font-size:1.1rem}.sticker .cap{position:absolute;bottom:-19px;left:50%;transform:translate(-50%);font-size:.62rem;color:var(--muted);white-space:nowrap}.sticker-shelf.captioned{padding-bottom:22px}.cheer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:24px}.cheer-card{background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 24px;text-align:center;max-width:330px;display:grid;gap:12px;justify-items:center}.cheer-card h2{font-family:var(--font-head);font-size:1.5rem}@keyframes pop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.04)}to{transform:scale(1);opacity:1}}.cheer-card{animation:pop .34s cubic-bezier(.2,1.3,.4,1) both}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:61;overflow:hidden}.confetti i{position:absolute;top:-14px;width:9px;height:14px;border-radius:3px;animation:fall 1.9s linear forwards}@keyframes fall{to{transform:translateY(105vh) rotate(560deg)}}.mic-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-weight:700;width:108px;height:108px;border-radius:50%;border:3px solid var(--accent);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;gap:2px;font-size:.84rem;margin:0 auto;transition:transform .12s ease}.mic-btn .glyph{font-size:1.9rem;line-height:1}.mic-btn:active{transform:scale(.96)}.mic-btn.recording{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--ring)}50%{box-shadow:0 0 0 16px transparent}}.mic-btn.recording{animation:pulse 1.4s ease-out infinite}.level{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line)}.level>i{display:block;height:100%;background:var(--good);width:0;transition:width .08s linear}.wave-wrap{position:relative}.wave{display:block;width:100%;height:150px;touch-action:none}.wave .seg-smooth{fill:color-mix(in srgb,var(--good) 16%,transparent)}.wave .seg-bump{fill:color-mix(in srgb,var(--warn) 20%,transparent)}.wave .env{fill:var(--accent);opacity:.85}.wave .baseline{stroke:var(--line);stroke-width:1}.wave .playhead{stroke:var(--text);stroke-width:2}.wave .seg-tap{fill:transparent;cursor:pointer}.wave .seg-tap:hover{fill:color-mix(in srgb,var(--accent) 10%,transparent)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:4px;display:inline-block}.spots{display:grid;gap:8px}.spot{display:flex;align-items:center;gap:11px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--surface-2);border:var(--bw) solid var(--line);border-radius:13px;padding:10px 13px}.spot:hover{border-color:var(--accent)}.spot .kind{font-weight:700;font-size:.9rem}.spot .at{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.spot .badge{width:32px;height:32px;flex:none;border-radius:10px;display:grid;place-items:center;font-size:1rem;background:color-mix(in srgb,var(--warn) 18%,var(--surface))}.spot.good .badge{background:color-mix(in srgb,var(--good) 18%,var(--surface))}.big-num{font-family:var(--font-head);font-size:2.6rem;font-weight:700;line-height:1}.read-prompt{font-size:1.3rem;line-height:1.7;font-weight:600;padding:14px 16px;background:var(--surface-2);border:var(--bw) solid var(--line);border-radius:var(--radius)}.avatar-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding:3px;border:2px solid var(--line);border-radius:50%;background:var(--surface);display:grid;place-items:center;transition:transform .14s ease,border-color .14s ease}.avatar-chip:hover{border-color:var(--accent);transform:scale(1.06)}.avatar-chip:active{transform:scale(.96)}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;align-items:end;justify-items:center;background:color-mix(in srgb,var(--text) 32%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:16px}@media (min-width: 560px){.sheet{align-items:center}}.sheet-card{width:100%;max-width:430px;background:var(--surface);border:var(--bw) solid var(--line);border-radius:22px;box-shadow:var(--shadow);margin:auto 0 0;animation:sheet-up .26s cubic-bezier(.2,.9,.3,1) both;display:flex;flex-direction:column;max-height:calc(100dvh - 32px);overflow:hidden}.sheet-head{padding:16px 18px 12px;border-bottom:1px solid var(--line);flex:none}.sheet-body{padding:16px 18px;overflow-y:auto;flex:1 1 auto;-webkit-overflow-scrolling:touch}.sheet-foot{padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);flex:none}@media (min-width: 560px){.sheet-card{margin:0}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}}.pin-dots{display:flex;gap:12px;justify-content:center;padding:6px 0 2px}.pin-dot{width:15px;height:15px;border-radius:50%;border:2px solid var(--line);background:transparent;transition:background .12s ease,border-color .12s ease,transform .12s ease}.pin-dot.on{background:var(--accent);border-color:var(--accent);transform:scale(1.12)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pin-key{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-family:var(--font-head);font-size:1.5rem;font-weight:700;cursor:pointer;padding:14px 0;border:var(--bw) solid var(--line);border-radius:16px;background:var(--surface-2);color:var(--text);transition:transform .1s ease,background .12s ease}.pin-key:hover{background:var(--accent-soft)}.pin-key:active{transform:translateY(2px)}.pin-key.soft{font-size:1.1rem;color:var(--muted)}.points-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--accent-soft);border:var(--bw) solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:14px;padding:9px 13px}.points-bar .pts{font-family:var(--font-head);font-weight:700;font-size:1.15rem}.buddy.locked{position:relative;border-style:dashed;background:var(--surface-2);cursor:default;display:grid;justify-items:center;gap:4px;padding:10px 6px 8px}.buddy.locked .avatar{opacity:.38;filter:grayscale(.85)}.buddy.locked .nm{color:var(--muted)}.buddy.locked .lock{position:absolute;top:6px;right:8px;font-size:.8rem}.buddy.locked .need{display:grid;gap:1px}.buddy.locked .need span{font-size:.62rem;color:var(--muted);line-height:1.25}.buddy.locked .need span.done{color:var(--good);font-weight:700}.theme-row{display:flex;gap:8px;flex-wrap:wrap}.theme-pick{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;cursor:pointer;border:2px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);padding:6px 7px 4px;display:grid;gap:3px;justify-items:center;min-width:58px}.theme-pick[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:700}.theme-pick .swatch{display:flex;width:100%;height:20px;border-radius:6px;overflow:hidden;border:1px solid rgba(0,0,0,.1)}.theme-pick .swatch i{flex:1}
