:root{--fx-yellow:#ffc42e;--fx-yellow-edge:#d99a00;--fx-sky:#4fb3ff;--fx-sky-edge:#2a8ddb;--fx-green:#3dbe6b;--fx-green-edge:#25994f;--fx-berry:#ff6f91;--fx-berry-edge:#db4a6f;--fx-ink:#2b2a5e;--fx-ink-edge:#0b0b14;--fx-ink-soft:#5b5a8c;--fx-paper:#fff9ec;--fx-surface:#fff;--fx-dust:#e9e6ef;--fx-dust-edge:#cfcadb;--fx-focus:#2b2a5e;--fx-r-card:24px;--fx-r-btn:16px;--fx-r-chip:999px;--fx-r-sheet:32px;--fx-s1:8px;--fx-s2:16px;--fx-s3:24px;--fx-s4:32px;--fx-s5:40px;--fx-s6:48px;--fx-gutter:24px;--fx-shadow-1:0 2px 8px #1f2a4414;--fx-shadow-2:0 8px 24px #1f2a4424;--fx-font-display:"Fredoka", "Baloo 2", system-ui, sans-serif;--fx-font-body:"Nunito", system-ui, sans-serif;--fx-t-display:600 40px/1.1 var(--fx-font-display);--fx-t-title:600 24px/1.2 var(--fx-font-display);--fx-t-body:600 17px/1.45 var(--fx-font-body);--fx-t-small:700 14px/1.4 var(--fx-font-body)}.fx-root,.fx-scope,.fx-sheet,.fx-toast-wrap{color:var(--fx-ink);font:var(--fx-t-body)}.fx-root{background:var(--fx-paper)}.fx-display{font:var(--fx-t-display);letter-spacing:-.01em}.fx-title{font:var(--fx-t-title)}.fx-body{font:var(--fx-t-body)}.fx-small{font:var(--fx-t-small);color:var(--fx-ink-soft)}.fx-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.fx-scope :focus-visible,.fx-root :focus-visible{outline:3px solid var(--fx-focus);outline-offset:3px}.fx-btn{--b:var(--fx-yellow);--e:var(--fx-yellow-edge);--c:var(--fx-ink);border-radius:var(--fx-r-btn);background:var(--b);min-height:52px;color:var(--c);font:600 18px/1 var(--fx-font-display);box-shadow:0 4px 0 var(--e);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;justify-content:center;align-items:center;gap:8px;padding:0 24px;text-decoration:none;transition:transform 90ms ease-out,box-shadow 90ms ease-out;display:inline-flex}.fx-btn:active:not(:disabled){box-shadow:0 0 0 var(--e);transform:translateY(4px)}.fx-btn:disabled,.fx-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.fx-btn-lg{min-height:60px;padding:0 32px;font-size:20px}.fx-btn-block{width:100%;display:flex}.fx-btn-primary{--b:var(--fx-yellow);--e:var(--fx-yellow-edge);--c:var(--fx-ink)}.fx-btn-dark{--b:#000;--e:#2b2b2b;--c:#fff}.fx-btn-success{--b:var(--fx-green);--e:var(--fx-green-edge);--c:#fff}.fx-btn-ghost{--b:transparent;--e:var(--fx-dust-edge);--c:var(--fx-ink);box-shadow:inset 0 0 0 2px var(--fx-dust-edge), 0 4px 0 var(--fx-dust-edge)}.fx-btn-ghost:active:not(:disabled){box-shadow:inset 0 0 0 2px var(--fx-dust-edge), 0 0 0 var(--fx-dust-edge)}.fx-btn-link{--b:transparent;--c:var(--fx-ink);box-shadow:none;text-underline-offset:4px;min-height:44px;padding:0 8px;text-decoration:underline}.fx-btn-link:active:not(:disabled){opacity:.7;transform:none}.fx-card{background:var(--fx-surface);border-radius:var(--fx-r-card);padding:var(--fx-s3);box-shadow:var(--fx-shadow-1)}.fx-card-sky{background:var(--fx-sky);color:#fff}.fx-card-yellow{background:var(--fx-yellow)}.fx-card-berry{background:var(--fx-berry);color:#fff}.fx-card-flat{box-shadow:none}.fx-chip{border-radius:var(--fx-r-chip);border:2px solid var(--fx-dust-edge);background:var(--fx-surface);min-height:48px;color:var(--fx-ink);font:600 17px/1 var(--fx-font-display);cursor:pointer;padding:0 20px;transition:transform 90ms ease-out}.fx-chip:active{transform:scale(.96)}.fx-chip[aria-checked=true],.fx-chip[aria-pressed=true]{background:var(--fx-yellow);border-color:var(--fx-yellow-edge)}.fx-chipgroup{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.fx-field{gap:8px;display:grid}.fx-label{font:var(--fx-t-small);color:var(--fx-ink)}.fx-input{border-radius:var(--fx-r-btn);border:2px solid var(--fx-dust-edge);background:var(--fx-surface);min-height:56px;color:var(--fx-ink);font:600 18px/1.2 var(--fx-font-body);box-sizing:border-box;width:100%;padding:0 16px}.fx-input::placeholder{color:var(--fx-ink-soft);opacity:.7}.fx-input:focus{border-color:var(--fx-ink);outline:none}.fx-input[aria-invalid=true]{border-color:var(--fx-berry-edge)}.fx-error{font:var(--fx-t-small);color:#b3274d}.fx-steps{align-items:center;gap:8px;display:flex}.fx-dot{background:var(--fx-dust-edge);border-radius:99px;width:12px;height:12px;transition:transform .2s,background .2s}.fx-dot[data-done=true]{background:var(--fx-green)}.fx-dot[data-current=true]{background:var(--fx-yellow);width:32px}.fx-sheet-backdrop{z-index:1000;background:#1f2a4480;justify-content:center;align-items:flex-end;animation:.2s ease-out both fx-fade;display:flex;position:fixed;inset:0}.fx-sheet{box-sizing:border-box;background:var(--fx-surface);border-radius:var(--fx-r-sheet) var(--fx-r-sheet) 0 0;width:100%;max-width:560px;max-height:90dvh;padding:12px var(--fx-gutter) calc(var(--fx-s4) + env(safe-area-inset-bottom,0px));box-shadow:var(--fx-shadow-2);animation:.28s cubic-bezier(.2,.9,.3,1) both fx-rise;overflow:auto}.fx-sheet-grip{background:var(--fx-dust-edge);border-radius:99px;width:48px;height:6px;margin:0 auto 16px}@keyframes fx-fade{0%{opacity:0}to{opacity:1}}@keyframes fx-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}.fx-tabbar{background:var(--fx-surface);box-shadow:var(--fx-shadow-2);border-radius:28px;gap:8px;padding:8px;display:flex}.fx-tab{min-height:56px;color:var(--fx-ink-soft);font:600 13px/1 var(--fx-font-display);cursor:pointer;background:0 0;border:0;border-radius:20px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;transition:transform 90ms ease-out;display:flex}.fx-tab:active{transform:scale(.95)}.fx-tab[aria-current=page]{background:var(--fx-yellow);color:var(--fx-ink)}.fx-stat{background:var(--fx-surface);border-radius:var(--fx-r-card);box-shadow:var(--fx-shadow-1);gap:4px;padding:16px 24px;display:grid}.fx-stat-num{font:600 40px/1 var(--fx-font-display)}.fx-stat[data-tone=green] .fx-stat-num{color:var(--fx-green-edge)}.fx-stat[data-tone=sky] .fx-stat-num{color:var(--fx-sky-edge)}.fx-stat[data-tone=berry] .fx-stat-num{color:var(--fx-berry-edge)}.fx-progress{background:var(--fx-dust);border-radius:99px;height:16px;overflow:hidden}.fx-progress-bar{background:var(--fx-green);transform-origin:0;border-radius:99px;width:100%;height:100%;transition:transform .4s cubic-bezier(.2,.9,.3,1)}.fx-progress[data-tone=yellow] .fx-progress-bar{background:var(--fx-yellow)}.fx-progress[data-tone=sky] .fx-progress-bar{background:var(--fx-sky)}.fx-banner{border-radius:var(--fx-r-card);background:var(--fx-green);color:#fff;font:600 17px/1.3 var(--fx-font-display);align-items:center;gap:12px;padding:16px;display:flex}.fx-banner[data-tone=yellow]{background:var(--fx-yellow);color:var(--fx-ink)}.fx-banner[data-tone=berry]{background:var(--fx-berry)}.fx-banner[data-tone=sky]{background:var(--fx-sky)}.fx-banner-text{flex:1}.fx-toast-wrap{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:1100;max-width:560px;box-shadow:var(--fx-shadow-2);border-radius:var(--fx-r-card);margin:0 auto;animation:.24s cubic-bezier(.2,.9,.3,1) both fx-rise;position:fixed}.fx-banner-close{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;min-width:44px;min-height:44px;display:grid}.fx-swipe{background:var(--fx-dust);touch-action:pan-y;-webkit-user-select:none;user-select:none;outline-offset:3px;border-radius:32px;height:64px;position:relative;overflow:hidden}.fx-swipe-fill{background:var(--fx-green);transform-origin:0;position:absolute;inset:0;transform:scaleX(0)}.fx-swipe-label{font:600 17px/1 var(--fx-font-display);color:var(--fx-ink);pointer-events:none;place-items:center;padding:0 80px;display:grid;position:absolute;inset:0}.fx-swipe-knob{background:var(--fx-yellow);width:56px;height:56px;box-shadow:0 3px 0 var(--fx-yellow-edge);cursor:grab;touch-action:none;will-change:transform;border-radius:28px;place-items:center;display:grid;position:absolute;top:4px;left:4px}.fx-swipe[data-done=true] .fx-swipe-knob{box-shadow:none;color:var(--fx-green-edge);background:#fff}.fx-swipe[data-done=true] .fx-swipe-label{color:#fff}.fx-swipe-snap{transition:transform .22s cubic-bezier(.2,.9,.3,1)}.fx-icon{flex:none}@media (prefers-reduced-motion:reduce){.fx-btn,.fx-chip,.fx-tab,.fx-dot,.fx-progress-bar,.fx-swipe-snap{transition:none}.fx-sheet,.fx-sheet-backdrop,.fx-toast-wrap{animation:none}}.es{box-sizing:border-box;background:var(--fx-paper,#fff8e7);min-height:100%;color:var(--fx-ink,#2b2a5e);flex-direction:column;gap:16px;padding:24px;font-family:Nunito,system-ui,sans-serif;display:flex}.es h1,.es h2{margin:0;font-family:Fredoka,Nunito,sans-serif;line-height:1.15}.es h1{font-size:28px}.es h2{font-size:22px}.es p{margin:0;font-size:16px}.es-house{width:100%;max-width:250px;margin:0 auto}.es-col{flex-direction:column;gap:16px;display:flex}.es-center{text-align:center;align-items:center}.es-bell{background:var(--fx-yellow,#ffc42e);border-radius:24px;flex-direction:column;gap:8px;padding:16px;display:flex}.es-kid{background:#fff;border-radius:24px;flex-direction:column;gap:8px;padding:16px;display:flex}.es-kidrow{align-items:center;gap:8px;display:flex}.es-kidrow .fx-field{flex:1}.es-win{background:#e9e6f7;border-radius:12px 12px 4px 4px;flex:none;width:40px;height:40px;transition:background-color .3s}.es-win[data-lit=true]{background:var(--fx-yellow,#ffc42e)}.es-chips{flex-wrap:wrap;gap:8px;display:flex}.es-err{color:#b3173f;font-weight:700}.es-list{background:#fff;border-radius:24px;flex-direction:column;gap:8px;margin:0;padding:16px;list-style:none;display:flex}.es-list li{align-items:center;gap:8px;min-height:44px;font-weight:700;display:flex}.es-dot{background:var(--fx-sky,#4fb3ff);border-radius:50%;flex:none;width:12px;height:12px}.es-code{letter-spacing:0;text-align:center;min-height:72px;font-family:Fredoka,Nunito,sans-serif;font-size:32px}.es-code::placeholder{letter-spacing:0}.es-example{text-align:center;color:var(--fx-ink-soft,#5b5a8c)}.es-example strong{letter-spacing:.06em;color:var(--fx-ink,#2b2a5e);font-family:Fredoka,Nunito,sans-serif}.es-funkel{align-items:center;gap:16px;display:flex}.es-bubble{background:var(--fx-surface,#fff);border-radius:24px;flex:1;padding:16px;font-weight:700}.es .fx-btn.es-kidbtn{--b:var(--fx-sky,#4fb3ff);--e:var(--fx-sky-edge,#2a8ddb);--c:var(--fx-ink,#2b2a5e);box-shadow:0 4px 0 var(--e)}.es .fx-btn.es-kidbtn:active:not(:disabled){box-shadow:0 0 0 var(--e)}.es-wake{background:#1b1a4a;flex-direction:column;justify-content:flex-end;min-height:100%;display:flex;position:relative;overflow:hidden}.es-wake-sky{opacity:0;background:#4b3f8f;position:absolute;inset:0}.es-wake[data-phase="1"] .es-wake-sky,.es-wake[data-phase="2"] .es-wake-sky,.es-wake[data-phase="3"] .es-wake-sky{opacity:0}.es-wake-house{width:100%;max-width:360px;margin:0 auto;position:relative}.es-wake-funkel{opacity:0;width:96px;margin-left:-48px;position:absolute;top:12%;left:50%;transform:translate(160px,-120px)scale(.4)}.es-wake[data-phase="1"] .es-wake-funkel,.es-wake[data-phase="2"] .es-wake-funkel,.es-wake[data-phase="3"] .es-wake-funkel{opacity:1;transition:transform 1.1s cubic-bezier(.2,.9,.3,1.1),opacity .4s;transform:none}.es-wake-card{background:var(--fx-paper,#fff8e7);color:var(--fx-ink,#2b2a5e);text-align:center;opacity:0;border-radius:24px 24px 0 0;flex-direction:column;gap:8px;padding:24px;display:flex;position:relative;transform:translateY(24px)}.es-wake[data-phase="3"] .es-wake-card,.es-wake[data-reduced=true] .es-wake-card{opacity:1;transition:transform .5s,opacity .5s;transform:none}.es-wake[data-reduced=true] .es-wake-funkel{opacity:1;transition:none;transform:none}.es-wake[data-reduced=true] .es-wake-card{transition:none}.es-wake h1{margin:0;font-family:Fredoka,Nunito,sans-serif;font-size:28px}.es-wake p{margin:0}.es-wake-skip{z-index:2;position:absolute;top:16px;right:16px}.hh-svg{width:100%;height:auto;display:block;overflow:visible}.hh-svg *{transform-box:fill-box;transform-origin:50%}.hh-room{cursor:pointer;outline:none}.hh-room .hh-ring{opacity:0}.hh-room:focus-visible .hh-ring{opacity:1}.hh-room:active .hh-roomfill{opacity:.85}.hh-fly,.hh-pop{opacity:0}@keyframes hh-wobble{0%,to{transform:rotate(-4deg)translateY(0)}50%{transform:rotate(4deg)translateY(-1.5px)}}@keyframes hh-smoke{0%{opacity:0;transform:translate(0)scale(.5)}25%{opacity:.85}to{opacity:0;transform:translate(10px,-34px)scale(1.5)}}@keyframes hh-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes hh-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}}@keyframes hh-cloud{0%,to{transform:translate(0)}50%{transform:translate(8px)}}@keyframes hh-fall{0%{opacity:0;transform:translateY(-10px)rotate(0)}15%{opacity:1}to{opacity:0;transform:translate(14px,60px)rotate(200deg)}}.hh-anim .hh-sw--wobble{transform-origin:50% 100%;animation:1.6s ease-in-out infinite hh-wobble}.hh-anim .hh-smoke{opacity:0;animation:3.2s ease-out infinite hh-smoke}.hh-anim .hh-smoke:nth-of-type(2){animation-delay:1.05s}.hh-anim .hh-smoke:nth-of-type(3){animation-delay:2.1s}.hh-anim .hh-funkel{animation:2.6s ease-in-out infinite hh-float}.hh-anim .hh-twinkle{animation:2.2s ease-in-out infinite hh-twinkle}.hh-anim .hh-cloud{animation:9s ease-in-out infinite hh-cloud}.hh-anim .hh-leaf,.hh-anim .hh-flake{opacity:0;animation:4s linear infinite hh-fall}.hh-anim .hh-leaf:nth-of-type(2n),.hh-anim .hh-flake:nth-of-type(2n){animation-delay:1.3s}.hh-anim .hh-leaf:nth-of-type(3n),.hh-anim .hh-flake:nth-of-type(3n){animation-delay:2.6s}.hh-sw--gone{opacity:0;transform:translate(26px,-18px)scale(.2)rotate(40deg)}@keyframes hh-blow{0%{opacity:1;transform:none}}.hh-motion .hh-sw--gone{animation:.55s cubic-bezier(.4,0,1,1) both hh-blow}@keyframes hh-glowin{0%{opacity:0}to{opacity:1}}@keyframes hh-winlit{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.25)}to{opacity:1;transform:scale(1)}}@keyframes hh-flystar{0%{opacity:0;transform:translate(0)scale(.4)}15%{opacity:1;transform:translate(0)scale(1.1)}to{opacity:1;transform:translate(var(--dx), var(--dy)) scale(.6)}}@keyframes hh-landing{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}.hh-motion .hh-glow-now{animation:.4s ease-out both hh-glowin}.hh-motion .hh-win-now{animation:.4s ease-out .3s both hh-winlit}.hh-motion .hh-fly{animation:.8s cubic-bezier(.45,0,.2,1) .3s both hh-flystar}.hh-motion .hh-pop{animation:.3s ease-out .95s both hh-landing}.hh-pop--done{opacity:1}@media (prefers-reduced-motion:reduce){.hh-svg *,.hh-svg :before{transition:none!important;animation:none!important}}
