:root{--accent: #58cc02;--accent-deep: #46a302;--accent-soft: rgba(88, 204, 2, .14);--blue: #1cb0f6;--blue-deep: #1899d6;--blue-soft: rgba(28, 176, 246, .14);--purple: #ce82ff;--purple-deep: #a568cc;--purple-soft: rgba(206, 130, 255, .16);--success: #58cc02;--success-deep: #46a302;--success-soft: rgba(88, 204, 2, .15);--warning: #ffc800;--danger: #ff4b4b;--danger-deep: #d33131;--danger-soft: rgba(255, 75, 75, .13);--flame: #ff9600;--flame-soft: rgba(255, 150, 0, .15);--xp: #ffc800;--xp-deep: #e6ac00;--xp-soft: rgba(255, 200, 0, .18);--dillo-shell: #d99a5b;--dillo-shell-dark: #b5773a;--dillo-shell-line: rgba(97, 56, 19, .3);--dillo-skin: #f6d7ac;--dillo-skin-dark: #e3b988;--dillo-belly: #fdf0da;--dillo-belly-dark: #f4ddbd;--dillo-belly-line: rgba(140, 92, 40, .18);--dillo-cheek: #ff9eb5;--dillo-eye: #4b3621;--spring: cubic-bezier(.34, 1.56, .64, 1);--spring-soft: cubic-bezier(.22, 1, .36, 1);font-family:Nunito,ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}:root,[data-theme=light]{--bg: #f7f7ee;--surface: #ffffff;--surface-2: #f1f1e7;--border: #e2e2d4;--border-strong: #d8d8c8;--track: #e8e8da;--text: #3c3c3c;--heading: #2b2b2b;--muted: #8f8f82;--shadow: 0 2px 0 rgba(60, 60, 40, .06);--sheet-shadow: 0 -12px 40px rgba(40, 40, 20, .12)}[data-theme=dark]{--bg: #131f24;--surface: #1b2b33;--surface-2: #24363f;--border: #33474f;--border-strong: #3d545e;--track: #2c404a;--text: #e8f0f2;--heading: #f4fafb;--muted: #7f9aa5;--shadow: 0 2px 0 rgba(0, 0, 0, .25);--sheet-shadow: 0 -12px 40px rgba(0, 0, 0, .5);--accent-soft: rgba(88, 204, 2, .16)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{font-family:inherit;transition:background .25s ease,color .25s ease;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4{color:var(--heading);font-weight:900}button{font-family:inherit;-webkit-tap-highlight-color:transparent}button,.option,.chip,.path-node,.topic-card,.pressable,.bottom-nav a,.onboarding-dot{-webkit-user-select:none;user-select:none}a{color:inherit;text-decoration:none}.app-shell{max-width:640px;margin:0 auto;padding:calc(12px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 118px calc(16px + env(safe-area-inset-left));min-height:100vh}.app-shell.no-nav{padding-bottom:32px}.page{animation:page-in .4s var(--spring-soft) both}@keyframes page-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.rise{animation:rise-in .45s var(--spring-soft) both;animation-delay:calc(var(--i, 0) * 55ms)}@keyframes rise-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 2px 18px}.topbar-actions{display:flex;align-items:center;gap:8px}.logo{display:flex;align-items:center;gap:10px}.logo-mark{display:grid;place-items:center;border-radius:14px;background:var(--accent-soft);color:var(--accent)}.logo-word{font-size:24px;font-weight:1000;letter-spacing:-.02em;color:var(--accent)}.icon-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;border:2px solid var(--border);border-bottom-width:4px;background:var(--surface);color:var(--muted);cursor:pointer;transition:background .15s,transform .08s,border-color .15s}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:active{transform:translateY(2px);border-bottom-width:2px;margin-bottom:2px}.card{background:var(--surface);border:2px solid var(--border);border-radius:20px;padding:18px;margin-bottom:14px;box-shadow:var(--shadow)}.card.flat{box-shadow:none}.pressable{cursor:pointer;border-bottom-width:4px;transition:transform .08s ease,border-color .15s ease,background .15s ease}.pressable:hover{border-color:var(--border-strong);background:color-mix(in srgb,var(--surface) 94%,var(--accent))}.pressable:active{transform:translateY(2px);border-bottom-width:2px;margin-bottom:16px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:24px 2px 12px}.section-title h2{font-size:15px;margin:0;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:900}.hero{display:flex;align-items:center;gap:18px;justify-content:space-between;overflow:hidden;position:relative}.hero h1{font-size:27px;margin:2px 0 12px;letter-spacing:-.02em}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;font-weight:800;font-size:14px;background:var(--surface-2);color:var(--text)}.chip-value{font-weight:1000}.chip-label{color:var(--muted);font-weight:700;font-size:13px}.chip-flame{background:var(--flame-soft);color:var(--flame)}.chip-xp{background:var(--xp-soft);color:#d69300}[data-theme=dark] .chip-xp{color:var(--xp)}.chip-accent{background:var(--accent-soft);color:var(--accent)}[data-theme=light] .chip-accent{color:var(--accent-deep)}.chip-danger{background:var(--danger-soft);color:var(--danger)}.chip-success{background:var(--success-soft);color:var(--success-deep)}[data-theme=dark] .chip-success{color:var(--success)}.chip-muted{background:var(--surface-2);color:var(--muted)}.chip-blue{background:var(--blue-soft);color:var(--blue)}.chip-flame svg,.tile-icon.flame{animation:flame-flicker 1.6s ease-in-out infinite;transform-origin:center bottom}@keyframes flame-flicker{0%,to{transform:scale(1) rotate(0)}30%{transform:scale(1.08) rotate(-3deg)}60%{transform:scale(.96) rotate(3deg)}}.radial{position:relative;display:grid;place-items:center;flex-shrink:0}.radial-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;line-height:1.1}.radial-center strong{font-size:18px;font-weight:1000;color:var(--heading)}.radial-center small{display:block;font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.bar{width:100%;background:var(--track);border-radius:999px;overflow:hidden}.bar-fill{position:relative;height:100%;border-radius:999px;transition:width .6s var(--spring-soft)}.bar-fill:after{content:"";position:absolute;top:22%;left:8px;right:8px;height:26%;border-radius:999px;background:#ffffff59}.goal-card{display:flex;align-items:center;gap:16px}.goal-card h3{margin:0 0 2px;font-size:16px}.goal-card p{margin:0;font-size:13px;color:var(--muted);font-weight:700}.goal-done-badge{display:inline-flex;align-items:center;gap:5px;margin-top:6px;color:var(--success-deep);font-weight:900;font-size:13px}[data-theme=dark] .goal-done-badge{color:var(--success)}.topic-card{display:flex;align-items:center;gap:16px}.topic-card h3{margin:0 0 3px;font-size:17px}.topic-card p{margin:0 0 8px;color:var(--muted);font-size:13px;font-weight:700}.topic-emoji{display:grid;place-items:center;width:58px;height:58px;flex-shrink:0;font-size:28px;border-radius:18px;border:2px solid var(--border);background:var(--surface-2)}.path{display:flex;flex-direction:column;align-items:center;padding:26px 0 10px}.path-step{position:relative;display:flex;flex-direction:column;align-items:center;margin-bottom:58px;translate:calc(var(--x, 0) * 1px) 0}.path-node{position:relative;display:grid;place-items:center;width:74px;height:66px;border:none;border-radius:50%;background:var(--node, var(--surface-2));box-shadow:0 7px 0 var(--node-deep, var(--track));color:#fff;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,filter .15s}.path-node:hover{filter:brightness(1.05)}.path-node:active{transform:translateY(5px);box-shadow:0 2px 0 var(--node-deep, var(--track))}.path-node.locked{--node: var(--surface-2);--node-deep: var(--track);color:var(--muted)}[data-theme=light] .path-node.locked{--node: #e5e5d8;--node-deep: #cfcfbe}.path-node.done{--node: var(--xp);--node-deep: var(--xp-deep);color:#7a5b00}.path-node.current{--node: var(--topic, var(--accent));--node-deep: var(--topic-deep, var(--accent-deep))}.path-node.current:before{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px;border-radius:50%;border:4px solid var(--node);opacity:.4;animation:halo-pulse 1.6s ease-in-out infinite}@keyframes halo-pulse{0%,to{transform:scale(1);opacity:.38}50%{transform:scale(1.1);opacity:.12}}.path-start-bubble{position:absolute;bottom:calc(100% + 15px);left:50%;transform:translate(-50%);background:var(--surface);border:2px solid var(--border);color:var(--topic, var(--accent));font-weight:1000;font-size:13px;letter-spacing:.1em;padding:7px 14px;border-radius:12px;white-space:nowrap;animation:bubble-bounce 1.4s ease-in-out infinite;z-index:2}.path-start-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:7px solid transparent;border-top-color:var(--border)}@keyframes bubble-bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-5px)}}.path-label{margin-top:9px;max-width:130px;text-align:center;font-size:13px;font-weight:800;color:var(--muted);line-height:1.25}.path-score{display:block;font-size:11px;font-weight:900;color:var(--xp-deep)}[data-theme=dark] .path-score{color:var(--xp)}.btn{--btn: var(--accent);--btn-deep: var(--accent-deep);display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;border-radius:16px;padding:15px 20px;font-weight:1000;font-size:15px;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--btn);box-shadow:0 4px 0 var(--btn-deep);cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,filter .15s,opacity .15s}.btn:hover{filter:brightness(1.05)}.btn:active{transform:translateY(4px);box-shadow:0 0 0 var(--btn-deep)}.btn:disabled{background:var(--surface-2);color:var(--muted);box-shadow:0 4px 0 var(--track);cursor:default;filter:none}.btn:disabled:active{transform:none;box-shadow:0 4px 0 var(--track)}.btn.ghost{--btn: var(--surface);--btn-deep: var(--border-strong);color:var(--text);border:2px solid var(--border);box-shadow:0 3px 0 var(--btn-deep)}.btn.ghost:hover{background:var(--surface-2);filter:none}.btn.ghost:active{transform:translateY(3px);box-shadow:0 0 0 var(--btn-deep)}.btn.blue{--btn: var(--blue);--btn-deep: var(--blue-deep)}.btn.danger{--btn: var(--danger);--btn-deep: var(--danger-deep)}.btn.small{width:auto;padding:10px 16px;font-size:13px;border-radius:13px}.field{margin-bottom:14px}.field label{display:block;font-weight:800;font-size:13px;margin-bottom:7px;color:var(--muted)}.field input{width:100%;padding:14px 16px;border:2px solid var(--border);border-radius:14px;font-size:16px;font-weight:700;font-family:inherit;background:var(--surface);color:var(--text);transition:border-color .15s,background .15s}.field input:focus{outline:none;border-color:var(--blue)}.field input::placeholder{color:var(--muted);font-weight:600}.auth-screen{max-width:400px;margin:0 auto;padding:calc(24px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(60px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));min-height:100vh;display:flex;flex-direction:column;justify-content:center}.auth-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.auth-hero{text-align:center;margin-bottom:26px}.auth-hero .dillo{margin:0 auto 4px}.auth-hero h1{font-size:27px;margin:0 0 6px;letter-spacing:-.02em}.muted{color:var(--muted)}.error{color:var(--danger);font-weight:800;font-size:14px;margin-bottom:12px;background:var(--danger-soft);padding:10px 14px;border-radius:12px;animation:shake .4s ease}.link{color:var(--blue);font-weight:900}.center-note{text-align:center;margin-top:22px;font-weight:700}.quiz-progress{display:flex;align-items:center;gap:12px;margin-bottom:10px}.quiz-combo{display:flex;align-items:center;gap:5px;min-height:24px;margin-bottom:8px;color:var(--flame);font-weight:900;font-size:14px}.quiz-combo.pop{animation:combo-pop .45s var(--spring)}@keyframes combo-pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}to{transform:scale(1)}}.quiz-prompt{font-size:22px;font-weight:900;color:var(--heading);line-height:1.35;margin:4px 0 22px;letter-spacing:-.01em}.quiz-image{display:block;width:100%;max-width:420px;margin:0 auto 18px;border-radius:16px;border:2px solid var(--border);background:var(--surface)}.quiz-question{animation:question-in .4s var(--spring-soft) both}@keyframes question-in{0%{opacity:0;transform:translate(48px)}to{opacity:1;transform:translate(0)}}.option{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:15px 18px;border:2px solid var(--border);border-radius:16px;box-shadow:0 3px 0 var(--border);background:var(--surface);color:var(--text);font-size:16px;font-weight:800;margin-bottom:11px;cursor:pointer;transition:border-color .12s,background .12s,transform .08s,box-shadow .08s,color .12s}.option:hover{background:var(--surface-2)}.option:active{transform:translateY(3px);box-shadow:0 0 0 var(--border)}.option.selected{border-color:var(--blue);box-shadow:0 3px 0 var(--blue-deep);background:var(--blue-soft);color:var(--blue)}.option:disabled{cursor:default}.option.correct{border-color:var(--success);box-shadow:0 3px 0 var(--success-deep);background:var(--success-soft);color:var(--success-deep);animation:option-pop .4s var(--spring)}[data-theme=dark] .option.correct{color:var(--success)}.option.wrong{border-color:var(--danger);box-shadow:0 3px 0 var(--danger-deep);background:var(--danger-soft);color:var(--danger);animation:shake .4s ease}.option.faded{opacity:.5}@keyframes option-pop{0%{transform:scale(1)}45%{transform:scale(1.035)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(7px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.quiz-footer{position:fixed;bottom:0;left:0;right:0;padding:14px 16px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 75%,transparent);z-index:10}.quiz-footer-inner{max-width:640px;margin:0 auto}.feedback-sheet{position:fixed;bottom:0;left:0;right:0;z-index:11;background:var(--surface);border-top:2px solid var(--border);box-shadow:var(--sheet-shadow);padding:18px 16px calc(16px + env(safe-area-inset-bottom));animation:sheet-up .35s var(--spring) both}.feedback-sheet.good{background:color-mix(in srgb,var(--surface) 72%,var(--success));border-top-color:transparent}.feedback-sheet.bad{background:color-mix(in srgb,var(--surface) 76%,var(--danger));border-top-color:transparent}[data-theme=light] .feedback-sheet.good{background:#d7ffb8}[data-theme=light] .feedback-sheet.bad{background:#ffdfe0}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.feedback-inner{max-width:640px;margin:0 auto}.feedback-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.feedback-mascot{flex-shrink:0;margin:-26px 0 -8px -4px}.feedback-title{font-size:20px;font-weight:1000;letter-spacing:-.01em}.feedback-sheet.good .feedback-title{color:#3f9c00}.feedback-sheet.bad .feedback-title{color:var(--danger-deep)}[data-theme=dark] .feedback-sheet.good .feedback-title{color:#aef27c}[data-theme=dark] .feedback-sheet.bad .feedback-title{color:#ffb3b3}.feedback-body{font-size:14.5px;font-weight:700;line-height:1.45;margin:-6px 0 14px}.feedback-sheet.good .feedback-body{color:#47762a}.feedback-sheet.bad .feedback-body{color:#9c3131}[data-theme=dark] .feedback-sheet.good .feedback-body{color:#d3f0be}[data-theme=dark] .feedback-sheet.bad .feedback-body{color:#ffd6d6}.feedback-sheet .btn.good-btn{--btn: var(--success);--btn-deep: var(--success-deep)}.feedback-sheet .btn.bad-btn{--btn: var(--danger);--btn-deep: var(--danger-deep)}.review-item{display:flex;gap:12px}.review-mark{flex-shrink:0;width:28px;height:28px;border-radius:10px;display:grid;place-items:center;color:#fff}.review-mark.ok{background:var(--success)}.review-mark.no{background:var(--danger)}.result-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 0 8px}.result-hero .dillo{margin-bottom:-4px}.result-hero h1{font-size:28px;animation:rise-in .5s var(--spring) .15s both}.result-stats{display:flex;gap:12px;justify-content:center;margin-top:6px}.result-stat{min-width:108px;border-radius:18px;padding:4px;background:var(--stat, var(--xp));animation:rise-in .5s var(--spring) both}.result-stat .result-stat-label{display:block;font-size:11px;font-weight:1000;letter-spacing:.1em;text-transform:uppercase;color:#fff;padding:3px 0 5px}.result-stat-inner{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--surface);border-radius:14px;padding:9px 10px;font-size:19px;font-weight:1000;color:var(--stat, var(--xp))}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:40}.confetti i{position:absolute;top:-4vh;left:calc(var(--cx) * 1%);width:calc(var(--cs) * 1px);height:calc(var(--cs) * .45px);border-radius:2px;background:var(--cc);opacity:0;animation:confetti-fall calc(var(--cd) * 1s) linear calc(var(--cw) * 1s) both}.confetti i:nth-child(3n){border-radius:50%;height:calc(var(--cs) * 1px)}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:1;transform:translateY(112vh) rotate(calc(var(--cr) * 1deg))}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:10px;padding:8px 0 max(10px,env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:2px solid var(--border);z-index:20}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:108px;height:56px;border-radius:16px;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;transition:color .15s,background .15s}.bottom-nav a.active{color:var(--accent);background:var(--accent-soft)}[data-theme=light] .bottom-nav a.active{color:var(--accent-deep)}.bottom-nav a.active svg{animation:nav-bounce .45s var(--spring)}@keyframes nav-bounce{0%{transform:scale(.8)}55%{transform:scale(1.2)}to{transform:scale(1)}}.markdown{line-height:1.65;font-size:15px;font-weight:600}.markdown>*:first-child{margin-top:0}.markdown>*:last-child{margin-bottom:0}.markdown h1{font-size:20px;letter-spacing:-.01em;margin:18px 0 8px}.markdown h2{font-size:17px;margin:16px 0 8px;text-transform:none;letter-spacing:-.01em;color:var(--heading)}.markdown h3{font-size:15px;margin:14px 0 6px}.markdown p{margin:8px 0}.markdown ul{margin:8px 0;padding-left:20px}.markdown li{margin:4px 0}.markdown li::marker{color:var(--accent)}.markdown code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px}.markdown strong{font-weight:900}.markdown-img{display:block;width:100%;max-width:460px;margin:14px auto;border-radius:16px;border:2px solid var(--border);background:var(--surface)}.stack-sm>*+*{margin-top:4px}.row-between{display:flex;align-items:center;justify-content:space-between}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.tile{background:var(--surface);border:2px solid var(--border);border-radius:18px;padding:16px 10px;text-align:center;box-shadow:var(--shadow)}.tile-value{font-size:23px;font-weight:1000;color:var(--heading);margin-top:6px}.tile-label{font-size:12px;color:var(--muted);font-weight:700;margin-top:2px}.tile-icon.flame{color:var(--flame)}.tile-icon.trophy{color:var(--xp)}.tile-icon.star{color:var(--blue)}.icon-btn.sm{width:36px;height:36px;border-radius:12px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-title{font-weight:900;font-size:16px;color:var(--heading);text-transform:capitalize}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-dow{text-align:center;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-bottom:2px}.calendar-day{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:12px;font-weight:800;font-size:13px;background:var(--surface-2);animation:rise-in .35s var(--spring-soft) both;animation-delay:calc(var(--i, 0) * 9ms)}.calendar-day.future{background:transparent;color:var(--muted);opacity:.55}.calendar-day.protected{background:var(--blue-soft);color:var(--blue)}.calendar-day.done{background:var(--flame);color:#fff;box-shadow:0 2px color-mix(in srgb,var(--flame) 70%,#000)}.calendar-day.today{outline:2.5px solid var(--accent);outline-offset:1.5px}.calendar-day.exam:after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:999px;background:var(--danger)}.calendar-day.done.exam:after{background:#fff}.calendar-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;font-size:12px;font-weight:700;color:var(--muted)}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:4px;margin-right:5px;vertical-align:-1px}.switch{position:relative;flex-shrink:0;width:56px;height:32px;border:none;border-radius:999px;background:var(--track);box-shadow:inset 0 2px #00000014;cursor:pointer;transition:background .2s ease}.switch.on{background:var(--accent)}.switch-knob{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:999px;background:#fff;box-shadow:0 2px 4px #00000040;transition:transform .22s var(--spring)}.switch.on .switch-knob{transform:translate(24px)}.dillo{display:block;overflow:visible}.dillo-body{transform-origin:80px 142px;animation:dillo-bob 3.2s ease-in-out infinite}.dillo-shadow{transform-origin:80px 149px;animation:dillo-shadow 3.2s ease-in-out infinite}.dillo-eyes{transform-box:fill-box;transform-origin:center;animation:dillo-blink 4.2s infinite}.dillo-ear-l,.dillo-ear-r{transform-box:fill-box;transform-origin:center bottom}.dillo-ear-l{animation:dillo-ear 5.2s ease-in-out infinite}.dillo-ear-r{animation:dillo-ear 5.2s ease-in-out .25s infinite}.dillo-tail{transform-origin:128px 122px;animation:dillo-tail 3.2s ease-in-out infinite}.dillo-arm-r{transform-box:fill-box}.dillo-eyes-closed,.dillo-mouth-frown,.dillo-mouth-open,.dillo-brows,.dillo-sparkles,.dillo-zzz{display:none}.dillo--wave .dillo-arm-r{transform-origin:122px 96px;animation:dillo-wave 1.4s ease-in-out infinite}.dillo--celebrate .dillo-body{animation:dillo-jump .9s var(--spring) infinite}.dillo--celebrate .dillo-shadow{animation:dillo-jump-shadow .9s var(--spring) infinite}.dillo--celebrate .dillo-mouth-smile{display:none}.dillo--celebrate .dillo-mouth-open,.dillo--celebrate .dillo-sparkles{display:block}.dillo--celebrate .dillo-arm-l{transform-box:fill-box;transform-origin:center bottom;animation:dillo-cheer .9s ease-in-out infinite}.dillo--celebrate .dillo-arm-r{transform-box:fill-box;transform-origin:center bottom;animation:dillo-cheer .9s ease-in-out infinite reverse}.dillo-spark{transform-box:fill-box;transform-origin:center}.dillo--celebrate .s1{animation:dillo-sparkle 1.1s ease-in-out infinite}.dillo--celebrate .s2{animation:dillo-sparkle 1.1s ease-in-out .28s infinite}.dillo--celebrate .s3{animation:dillo-sparkle 1.1s ease-in-out .55s infinite}.dillo--celebrate .s4{animation:dillo-sparkle 1.1s ease-in-out .8s infinite}.dillo--sad .dillo-body{animation:dillo-bob 4.6s ease-in-out infinite}.dillo--sad .dillo-mouth-smile{display:none}.dillo--sad .dillo-mouth-frown,.dillo--sad .dillo-brows{display:block}.dillo--sad .dillo-eyes{animation:none}.dillo--sad .dillo-ear-l,.dillo--sad .dillo-ear-r{animation:none;transform:rotate(-8deg)}.dillo--sad .dillo-ear-r{transform:rotate(8deg)}.dillo--sleep .dillo-body{animation:dillo-breathe 3.6s ease-in-out infinite}.dillo--sleep .dillo-eyes{display:none}.dillo--sleep .dillo-eyes-closed,.dillo--sleep .dillo-zzz{display:block}.dillo--sleep .dillo-ear-l,.dillo--sleep .dillo-ear-r{animation:none}.dillo--sleep .z1{animation:dillo-float 2.6s ease-in-out infinite}.dillo--sleep .z2{animation:dillo-float 2.6s ease-in-out .5s infinite}.dillo--sleep .z3{animation:dillo-float 2.6s ease-in-out 1s infinite}@keyframes dillo-bob{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(.99,1.015)}}@keyframes dillo-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02,.97)}}@keyframes dillo-shadow{0%,to{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.9);opacity:.08}}@keyframes dillo-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.08)}}@keyframes dillo-ear{0%,88%,to{transform:rotate(0)}92%{transform:rotate(-7deg)}96%{transform:rotate(4deg)}}@keyframes dillo-tail{0%,to{transform:rotate(0)}50%{transform:rotate(5deg)}}@keyframes dillo-wave{0%,to{transform:rotate(5deg)}25%{transform:rotate(-11deg)}50%{transform:rotate(6deg)}75%{transform:rotate(-7deg)}}@keyframes dillo-jump{0%,to{transform:translateY(0) scale(1)}18%{transform:translateY(2px) scale(1.06,.93)}50%{transform:translateY(-16px) scale(.97,1.04)}82%{transform:translateY(0) scale(1.04,.96)}}@keyframes dillo-jump-shadow{0%,to{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.72);opacity:.06}}@keyframes dillo-cheer{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(-18deg)}}@keyframes dillo-sparkle{0%,to{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:1;transform:scale(1) rotate(18deg)}}@keyframes dillo-float{0%{opacity:0;transform:translate(0)}40%{opacity:1}to{opacity:0;transform:translate(7px,-16px)}}.hero-dillo{flex-shrink:0;margin:-6px -4px -16px 0}.dillo-inline{flex-shrink:0}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:color-mix(in srgb,var(--bg) 55%,rgba(0,0,0,.55));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:onboarding-fade .25s ease}.onboarding-card{position:relative;width:100%;max-width:400px;background:var(--surface);border:2px solid var(--border);border-radius:28px;padding:20px 22px 22px;box-shadow:var(--shadow);text-align:center;animation:onboarding-pop .35s var(--spring)}.onboarding-skip{position:absolute;top:14px;right:16px;z-index:2;border:none;background:none;color:var(--muted);font-weight:800;font-size:13px;cursor:pointer;padding:4px}.onboarding-skip:hover{color:var(--text)}.onboarding-stage{display:grid;place-items:center;height:168px;background:radial-gradient(circle at 50% 42%,var(--accent-soft),transparent 68%);border-radius:22px;margin-bottom:6px}.onboarding-body{min-height:132px}.onboarding-badge{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--accent-soft);color:var(--accent);margin-bottom:6px}[data-theme=light] .onboarding-badge{color:var(--accent-deep)}.onboarding-body h2{font-size:20px;margin:6px 0 8px;letter-spacing:-.02em}.onboarding-body p{color:var(--muted);font-size:15px;font-weight:600;line-height:1.5;margin:0 auto;max-width:320px}.onboarding-dots{display:flex;justify-content:center;gap:7px;margin:18px 0 16px}.onboarding-dot{width:7px;height:7px;border-radius:999px;background:var(--track);transition:width .25s var(--spring-soft),background .25s ease}.onboarding-dot.active{width:22px;background:var(--accent)}.onboarding-actions{display:flex;gap:10px}.onboarding-actions .btn.small{flex-shrink:0}.onboarding-actions .btn:not(.small){flex:1}@keyframes onboarding-fade{0%{opacity:0}to{opacity:1}}@keyframes onboarding-pop{0%{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
