@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-top: #FFF7EC;--bg-bottom: #FFE7D0;--glow: rgba(255, 190, 120, .5);--surface: #FFFFFF;--tray: #E6D3B8;--tray-edge: #CDB693;--cell: #F1E3CE;--ink: #43362A;--ink-soft: #9A8975;--on-dark: #FFFFFF;--primary: #FF7A45;--primary-edge: #D2542A;--neutral: #EADCC8;--neutral-edge: #C9B69C;--danger: #F0455A;--danger-edge: #C22A3E;--good: #43C97F;--good-edge: #2A9D5E;--r-sm: 12px;--r-md: 18px;--r-lg: 26px;--r-pill: 999px;--edge: 4px;--shadow-soft: 0 6px 18px rgba(120, 80, 40, .13);--shadow-pop: 0 16px 40px rgba(90, 55, 20, .28);--slide-ms: .11s;--pop-ms: .11s;--spawn-ms: .14s;--spring: cubic-bezier(.34, 1.56, .64, 1)}@media(prefers-color-scheme:dark){:root{--bg-top: #241C16;--bg-bottom: #16110D;--glow: rgba(255, 150, 70, .18);--surface: #33291F;--tray: #3B2F24;--tray-edge: #2A2119;--cell: #4A3B2C;--ink: #F6EADA;--ink-soft: #A2917C;--neutral: #4B3C2E;--neutral-edge: #33281E}}*{box-sizing:border-box}html,body{overscroll-behavior:none}body{margin:0;min-height:100dvh;color:var(--ink);font-family:Nunito Variable,Nunito,Segoe UI,system-ui,sans-serif;font-weight:700;background:radial-gradient(120% 70% at 50% -10%,var(--glow) 0%,transparent 60%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg-bottom) 100%);background-attachment:fixed;display:flex;justify-content:center;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}.app{width:100%;max-width:470px;height:100dvh;overflow:hidden;padding:max(12px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;user-select:none;-webkit-user-select:none}.stage{flex:1 1 auto;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;container-type:size}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{display:flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:900;letter-spacing:-.01em;margin:0;white-space:nowrap}.brand .brand-mark{width:30px;height:30px;flex:0 0 auto}.stats{display:flex;gap:8px}.stat{background:var(--surface);border-radius:var(--r-pill);padding:5px 14px;min-width:68px;text-align:center;box-shadow:var(--shadow-soft);line-height:1.1}.stat .label{display:block;font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft)}.stat .value{display:block;font-size:1.15rem;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat.accent .value{color:var(--primary)}.stat .value.bump{animation:value-bump .26s var(--spring)}@keyframes value-bump{0%{transform:scale(1)}40%{transform:scale(1.24)}to{transform:scale(1)}}.btn{--btn-face: var(--primary);--btn-edge: var(--primary-edge);position:relative;border:none;cursor:pointer;font:inherit;font-weight:900;font-size:.95rem;color:var(--on-dark);background:var(--btn-face);border-radius:var(--r-md);padding:14px 20px;min-height:48px;box-shadow:0 var(--edge) 0 var(--btn-edge),var(--shadow-soft);transform:translateY(0);transition:transform 90ms ease,box-shadow 90ms ease,filter .12s ease;touch-action:manipulation;white-space:nowrap}.btn:after{content:"";position:absolute;inset:3px 3px auto;height:38%;border-radius:calc(var(--r-md) - 4px) calc(var(--r-md) - 4px) 40% 40%;background:linear-gradient(180deg,rgba(255,255,255,.34),transparent);pointer-events:none}.btn:active{transform:translateY(var(--edge));box-shadow:0 0 0 var(--btn-edge),var(--shadow-soft)}.btn:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.btn:disabled{--btn-face: var(--neutral);--btn-edge: var(--neutral-edge);color:var(--ink-soft);cursor:default;filter:saturate(.5)}.btn:disabled:active{transform:translateY(0);box-shadow:0 var(--edge) 0 var(--btn-edge),var(--shadow-soft)}.btn.secondary{--btn-face: var(--neutral);--btn-edge: var(--neutral-edge);color:var(--ink)}.btn.danger{--btn-face: var(--danger);--btn-edge: var(--danger-edge)}.btn.good{--btn-face: var(--good);--btn-edge: var(--good-edge)}.btn.wide{flex:1}.controls{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:4px}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.78rem;font-weight:800;color:var(--ink-soft);touch-action:manipulation}.switch input{appearance:none;margin:0;width:42px;height:25px;flex:0 0 auto;border-radius:var(--r-pill);background:var(--neutral);box-shadow:inset 0 2px 4px #00000029;cursor:pointer;transition:background .16s ease;position:relative}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:var(--surface);box-shadow:0 2px 4px #00000047;transition:transform .18s var(--spring)}.switch input:checked{background:var(--good)}.switch input:checked:after{transform:translate(17px)}.switch input:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.ladder{display:flex;gap:5px;overflow-x:auto;padding:2px;scrollbar-width:none}.ladder::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:2px;overflow:hidden;background:var(--surface);opacity:.3;filter:grayscale(.85);transition:opacity .2s ease,filter .2s ease,transform .2s var(--spring)}.chip.reached{opacity:1;filter:none}.chip.current{transform:scale(1.22);box-shadow:0 0 0 3px var(--primary),var(--shadow-soft);z-index:1}.cat-svg{width:100%;height:100%;display:block}.cat-svg .eyes{transform-box:fill-box;transform-origin:center;animation:cat-blink 6.5s infinite;animation-delay:var(--bd, 0s)}.chip .cat-svg .eyes{animation:none}@keyframes cat-blink{0%,93.5%,to{transform:scaleY(1)}96%{transform:scaleY(.15)}}.fx-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}.overlay{position:absolute;inset:0;background:#26180c8c;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:10;animation:fade-in .16s ease}.overlay[hidden]{display:none}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.overlay-card{background:var(--surface);color:var(--ink);border-radius:var(--r-lg);padding:26px 24px 22px;text-align:center;width:100%;max-width:320px;box-shadow:var(--shadow-pop);animation:card-in .32s var(--spring)}@keyframes card-in{0%{opacity:0;transform:scale(.82) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}.overlay-card h2{margin:0 0 8px;font-size:1.5rem;font-weight:900;letter-spacing:-.02em}.overlay-card p{margin:0 0 18px;font-size:.92rem;font-weight:700;color:var(--ink-soft);line-height:1.45}.overlay-actions{display:flex;flex-direction:column;gap:9px}.hint{text-align:center;font-size:.74rem;font-weight:700;color:var(--ink-soft);margin:0;line-height:1.4;transition:opacity .7s ease}.hint.faded{opacity:0}@media(max-width:400px){.app{padding-left:10px;padding-right:10px;gap:10px}.brand{font-size:.95rem}.brand .brand-mark{width:26px;height:26px}.stat{min-width:58px;padding:4px 11px}.stat .value{font-size:1.02rem}.btn{padding:13px 15px;font-size:.88rem}.chip{width:27px;height:27px}}@media(prefers-reduced-motion:reduce){.cat-svg .eyes,.overlay-card,.stat .value.bump{animation:none}.switch input:after{transition:none}.hint{transition:none}}@media(orientation:landscape)and (max-height:620px){.app{display:grid;max-width:none;height:100dvh;min-height:0;overflow:hidden;grid-template-columns:minmax(0,1fr) clamp(170px,26vw,230px);grid-template-rows:auto auto 1fr auto;grid-template-areas:"stage topbar" "stage ladder" "stage hint" "stage controls";gap:8px 14px;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.stage{grid-area:stage;height:100%}.topbar{grid-area:topbar}.ladder{grid-area:ladder}.hint{grid-area:hint;align-self:end}.controls{grid-area:controls;margin-top:0}.topbar{flex-direction:column;align-items:stretch;gap:6px}.brand{justify-content:center;font-size:.95rem}.stats{justify-content:center}.stat{min-width:0;flex:1;padding:4px 8px}.stat .value{font-size:.95rem}.controls{flex-direction:column;align-items:stretch;gap:7px}.btn{width:100%}.switch{justify-content:center;margin-left:0}.hint{font-size:.68rem}}@media(orientation:landscape)and (max-height:420px){.hint,.ladder{display:none}}@media(min-width:900px)and (min-aspect-ratio:1/1){.app{max-width:620px}}:root{--table-top: #FFF9F0;--table-mid: #FFEBD5;--table-bot: #F3D9B8;--mat-top: #F3DCBB;--mat-bot: #E9CFA8;--tile-face-a: #FFFFFF;--tile-face-b: #F7EBD9;--tile-edge: #D9C3A0;--tray-face-a: #E6D3B8;--tray-face-b: #D6BF9D;--tray-edge2: #C4AA85;--shade-ink: #2A1B0E;--fly-ms: .26s;--slot-ms: .14s;--pop-ms: .38s;--shine-ms: .4s}@media(prefers-color-scheme:dark){:root{--table-top: #2B211A;--table-mid: #241C16;--table-bot: #191310;--mat-top: #3A2D22;--mat-bot: #2E241B;--tile-face-a: #F3E7D6;--tile-face-b: #DFCDB4;--tile-edge: #A98F6A;--tray-face-a: #3B2F24;--tray-face-b: #2E251C;--tray-edge2: #221A14}}.app{position:relative}.stat .label{color:#7a6a56}.stat.accent .value{color:#9c5405}.btn{color:#2a1b0e}.btn:disabled{color:#6b5c49}@media(prefers-color-scheme:dark){.stat .label{color:#c9b79e}.stat.accent .value{color:#ffb765}}.stage{position:relative}.table{position:relative;width:100%;height:100%;border-radius:var(--r-lg);overflow:hidden;background:radial-gradient(110% 60% at 50% 12%,var(--table-top),var(--table-mid) 55%,var(--table-bot))}.mat{position:absolute;inset:8px;border-radius:34px;transition:inset .18s ease;background:linear-gradient(180deg,var(--mat-top),var(--mat-bot));box-shadow:inset 0 0 0 6px #ffffff59}.pile{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;outline:none}.tile{position:absolute;width:58px;height:58px;border-radius:14px;background:linear-gradient(180deg,var(--tile-face-a),var(--tile-face-b));box-shadow:inset 0 -6px 0 var(--tile-edge),0 5px 10px #5a371438;overflow:hidden;touch-action:manipulation;transition:transform .12s var(--spring)}.tile>.cat-svg{position:absolute;left:4px;top:2px;width:50px;height:50px;pointer-events:none}.tile .shade{position:absolute;inset:0;border-radius:14px;background:var(--shade-ink);pointer-events:none;transition:opacity .2s ease}.tile.free{cursor:pointer;box-shadow:inset 0 -6px 0 var(--tile-edge),0 7px 14px #5a371447}.tile.free:active{transform:translateY(3px) scale(.97)}.tile.locked{cursor:default}.tile.cursor{z-index:900!important;box-shadow:0 0 0 4px var(--primary),0 8px 16px #5a37144d}.tile .shine{position:absolute;inset:-20% -60%;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.92) 50%,transparent 62%);pointer-events:none;opacity:0}.tile.opened .shine{animation:tile-shine var(--shine-ms) ease-out}@keyframes tile-shine{0%{transform:translate(-70%);opacity:.95}to{transform:translate(70%);opacity:0}}.bottombar{flex:0 0 auto;display:flex;flex-direction:column;gap:10px;min-width:0}.tray{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 10px;border-radius:20px;background:linear-gradient(180deg,var(--tray-face-a),var(--tray-face-b));box-shadow:inset 0 -6px 0 var(--tray-edge2),0 8px 20px #78502833;transition:box-shadow .2s ease}.slot{flex:0 1 44px;min-width:0;aspect-ratio:1;border-radius:11px;background:#0000001c;box-shadow:inset 0 2px 5px #0000002e;position:relative}.slot .cat-svg{position:absolute;inset:-6%;width:112%;height:112%;transition:transform var(--slot-ms) var(--spring)}.slot.landing .cat-svg{animation:slot-in var(--slot-ms) var(--spring)}@keyframes slot-in{0%{transform:scale(.5)}to{transform:scale(1)}}.slot.popping .cat-svg{animation:slot-pop var(--pop-ms) ease-in forwards}@keyframes slot-pop{0%{transform:scale(1) rotate(0)}35%{transform:scale(1.22) rotate(-8deg)}to{transform:scale(.1) rotate(24deg);opacity:0}}.tray.warn{animation:tray-warn .9s ease-in-out infinite}@keyframes tray-warn{0%,to{box-shadow:inset 0 -6px 0 var(--tray-edge2),0 0 0 3px #f0455a59,0 8px 22px #f0455a2e}50%{box-shadow:inset 0 -6px 0 var(--tray-edge2),0 0 0 4px #f0455af2,0 8px 26px #f0455a73}}.tray.warn .slot .cat-svg{animation:cat-worry 1.1s ease-in-out infinite}@keyframes cat-worry{0%,to{transform:rotate(-9deg) translateY(0)}25%{transform:rotate(6deg) translateY(-2px)}50%{transform:rotate(9deg) translateY(0)}75%{transform:rotate(-5deg) translateY(-2px)}}.controls{gap:8px;margin-top:0;padding-top:0}.btn.boost{flex:1 1 0;min-width:0;font-size:.82rem;padding:12px 8px}.topbar .stat{min-width:0;padding:4px 10px}.topbar .stat .label{letter-spacing:.05em}.stats{flex:0 1 auto;min-width:0}@media(max-width:430px){.brand{font-size:0;gap:0}.brand .brand-mark{font-size:1rem}}.table-tools{position:absolute;right:10px;top:10px;z-index:8;display:flex;gap:8px}.icon-btn{width:38px;height:38px;border:none;border-radius:50%;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-soft);font-size:1rem;line-height:1;cursor:pointer;touch-action:manipulation;opacity:.9}.icon-btn:active{transform:translateY(2px)}.icon-btn.off{filter:grayscale(1);opacity:.55}.fly-layer{position:absolute;inset:0;pointer-events:none;z-index:24}.fly{position:absolute;border-radius:14px;background:linear-gradient(180deg,var(--tile-face-a),var(--tile-face-b));box-shadow:inset 0 -6px 0 var(--tile-edge),0 10px 16px #5a371461;overflow:hidden;transition:transform var(--fly-ms) cubic-bezier(.32,.9,.36,1),box-shadow var(--fly-ms) ease-out}.fly .cat-svg{position:absolute;inset:4%;width:92%;height:92%}.app.slowmo{--fly-ms: .62s;--pop-ms: .9s;--slot-ms: .33s}.heart{position:absolute;pointer-events:none;z-index:25;transform:translate(-50%,-50%);animation:heart-up .9s ease-out forwards}.heart svg{width:100%;height:100%;display:block}@keyframes heart-up{0%{transform:translate(-50%,-50%) scale(.4) rotate(-12deg);opacity:1}to{transform:translate(-50%,-260%) scale(1.15) rotate(10deg);opacity:0}}.slot .cat-svg .eyes,.tile>.cat-svg .eyes{transform-box:fill-box;transform-origin:center;animation:cat-blink 6.5s infinite;animation-delay:var(--bd, 0s)}.vtag{position:absolute;right:12px;bottom:8px;font-size:9px;font-weight:800;letter-spacing:.04em;color:var(--ink-soft);opacity:.75;pointer-events:none;z-index:9}.overlay-actions{flex-direction:row;justify-content:center}.overlay-actions .btn{flex:1 1 0;min-width:0;font-size:.86rem;padding:13px 10px}.menu{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:18px 16px;overflow:auto;background:radial-gradient(120% 70% at 50% -10%,var(--glow) 0%,transparent 60%),linear-gradient(180deg,var(--bg-top) 0%,var(--bg-bottom) 100%)}.menu[hidden]{display:none}.menu-inner{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px;text-align:center}.menu-cats{display:flex;justify-content:center;align-items:flex-end;gap:10px}.menu-cats .tile{position:relative;flex:0 0 auto;width:62px;height:62px}.menu-cats .tile>.cat-svg{left:5px;top:3px;width:52px;height:52px}.menu-cats .tile:nth-child(2){transform:translateY(-8px) scale(1.08);z-index:1}.menu-title{margin:0;font-size:1.6rem;font-weight:900;letter-spacing:-.02em}.menu-sub{margin:0;font-size:.84rem;font-weight:700;color:var(--ink-soft);line-height:1.4}.menu-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:14px 16px;display:flex;flex-direction:column;gap:4px}.menu-stars{font-size:1.4rem;font-weight:900;color:#9c5405;letter-spacing:.02em}.menu-mastery{font-size:.8rem;font-weight:800;color:var(--ink)}.menu-next{font-size:.72rem;font-weight:700;color:#7a6a56}.lvl-pick{display:flex;align-items:stretch;gap:8px}.lvl-step{flex:0 0 auto;padding:12px 14px;min-height:52px;font-size:.9rem}.lvl-face{flex:1 1 auto;min-width:0;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;justify-content:center;gap:2px;padding:6px 8px}.lvl-num{font-size:.98rem;font-weight:900}.lvl-meta{font-size:.72rem;font-weight:800;color:#7a6a56}.menu-actions{display:flex}.menu-actions .btn{flex:1 1 auto;font-size:1.05rem}@media(prefers-color-scheme:dark){.menu-stars{color:#ffb765}.menu-next,.lvl-meta{color:#c9b79e}}@media(max-width:400px){.tray{gap:4px;padding:8px}.btn.boost{font-size:.78rem;padding:12px 5px;gap:4px}}@media(orientation:landscape)and (max-height:620px){.app{grid-template-columns:minmax(0,1fr) clamp(150px,22vw,210px);grid-template-rows:1fr auto;grid-template-areas:"stage  topbar" "bottom bottom"}.stage{grid-area:stage}.topbar{grid-area:topbar;align-self:start}.bottombar{grid-area:bottom;flex-direction:row;align-items:center;gap:12px}.tray{flex:1 1 auto;min-width:0}.controls{flex:0 0 auto;flex-direction:row;align-items:stretch}.btn.boost,.menu .btn{width:auto}.topbar .stats{flex-direction:column;gap:5px}.topbar .stat{flex:0 0 auto;width:100%;padding:3px 10px}.menu-sub{display:none}.menu-inner{gap:9px}.menu-title{font-size:1.3rem}.menu-cats .tile{width:48px;height:48px}.menu-cats .tile>.cat-svg{left:4px;top:2px;width:40px;height:40px}}@media(orientation:landscape)and (max-height:430px){.btn.boost{min-height:40px;padding:8px 6px;font-size:.76rem}.tray{padding:6px 8px}.menu-card{padding:10px 12px}.menu-stars{font-size:1.15rem}}.audio-menu{position:relative;display:inline-flex}.audio-pop{position:absolute;right:0;display:flex;gap:8px;padding:8px;border-radius:var(--r-md, 14px);background:var(--surface, #fff);box-shadow:var(--shadow-pop, 0 16px 40px rgba(0, 0, 0, .28));z-index:30}.audio-pop[hidden]{display:none}.audio-pop.above{bottom:calc(100% + 8px);transform-origin:bottom right;animation:audio-pop-up .13s ease-out}.audio-pop.below{top:calc(100% + 8px);transform-origin:top right;animation:audio-pop-down .13s ease-out}@keyframes audio-pop-up{0%{opacity:0;transform:scale(.7) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes audio-pop-down{0%{opacity:0;transform:scale(.7) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}.audio-pop button{min-width:0;aspect-ratio:1}.audio-pop button svg{display:block;width:1.25em;height:1.25em;fill:currentColor}.audio-pop button.is-off{opacity:.55}
