@font-face{font-family:Lilita One;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAVoAA8AAAAACegAAAUTAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbDBwYBmAAbBEIColciA0LHgABNgIkAzgEIAWDZAc+DAcb9QdRlE5OmOBngm2rYa0IiBSU4SB6GXpb1ovxAEMb3kc8/X6ve+4LIEoWKsKQjE0KaAS5si8LV935qoC6jkBWl99PeNa/acrMsmIWkJM7J2fiwyD6/rZ3nySQEEJPI2+8mQgCjl/7/xfCPjhmumgbjyJtDTLAgZRI5C2Lsyg9Ej+AogCfIgpT4Glg/xqJD/gP3cxixar09EqCLkAR0S2CjsmOByOgCZ096O8EMaNtszM3NFMavYQr9Cp5x9dfFA/5c6zg2Tty8yAadUVizTiA6qa3QCC/ewmYw2NFVjA0W0NfnG8fGGCFUMwlNjUZzmSW9PlG/R/AyDGpxk28hPlctcMi84z8m/D+t4A8BCJ1LJF6PM8poA/kPvkJWDJ1K8BaUZaAFU7lYnST2ctUYrFxdcncWZ+9iCBZ7QpGtRZjgknaiROuAw9zmuW0fBVJAuYMq2n1OtKMXVFHky8Q0hrFz5fHL9r+nEPMnjt7HmivMC8x91xDA/1M/oAFOmT59tOnXR4D/SyfffGCednGaXbT8vxlrLJwBWKuYq7gZdFz7CSU+gIt6kE7uc+Qo2v37Ql5HkHKQsxRQtvGGz2XFwMdv411vIFQ6YqXmDMUlNIsQgwHBXRRFWtcw+hMzOajmR59mMsOuWmOF4yqrMx9tIxFTBfJL+Ii0RlIK4ImubT7MpIsjraaeanajTm7MtJOmW4rxrqXFRkT0If2oT0spW5rQzzafpjguAN9hiRinFZih+0AJ4zTkDbS8Uh95LjURmGlmKaOU1gqqpGTVk+skg4HuviVSNOtxkAukjRmgehpuFJzeK1lTT5P1BR1/PNEQdrPnuV+BTaWg//+kPhs+NC04dbkEaOaIOzcWmf+0GCvjO57t/beypjctoHZoyi8WpYUkmvITj8o+TTCOX91Xp24bnVevsQkk/AmUsZTIOZotreXUWEZNO7bn9qWsbLZpFW6JvXu9NXJzKKH42p+jchuqW1L6vNy1e9301q7tfmbr/QZMkUOD899Yd14NHBLo/SjF5cCSkjT2NHk135OQk4wT8IJPl3A+KVAmsC6w9Yzeb5ippX3NAv4svYkQsqFgb5lm1UzJZ7DRrsvW6fPCvnquOaJ3AZkUSKvIgyXf96PrZJ0kgSzaEuXOoX1hffmtOr/WYZ+xra+RIUo1WFKdehUQIrG3y5m3i9eznH2AwnYJE9dQSY4kM2VOdnutWqt4pcfeb+k1NlrCD2P3ZO5XLekNz+2uPpKb/XJ2t0NUfOkPccR0vHefWSNS4H/BGiupbdcml/BnXeommkZlIk13/I8D/sOQlw8z33xfpVl+C/GxBeA17vkDn3BYWv7dXrdRJsCQnVz7EH1QwnxcArxoPR47glkG2iQNwSZIChqhlyhaVP9a/045AZNdsyOfJGctxwg9NgmBAURbAFAm+MIaZIADY94zBhygFn0uMesbKlubVJlNpuQyGwxwB96jhQ4qR9Qu4XyKu1Tp1cLH/p5ZE990E5DFwpNaqksidKBtoMWVahBSjs1KNRwaI2gi380ig9P3rz5SjWgRqcMBWu/Q2sDMrNLKOq0U7MWT/ny5gPGn6tBkwHtavQaVcbp0m0kfWtTWctTnNVxceak0ulKzTpDe6uiNRqHjom7XY06zVt5qtVilAt3lKFEEM26JK19bwCDFNQf9sQgYUrmZO1Qm5ZiW0CGLZ6Hyvq4TZke5H+6xGcf+8Snzvruczt8Mu1G9R7wrwIAAA==)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Lilita One;font-style:normal;font-display:swap;font-weight:400;src:url(./lilita-one-latin-400-normal-87r-Z-Re.woff2)format("woff2"),url(./lilita-one-latin-400-normal-DXkechA3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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+460-52F,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+301,U+400-45F,U+490-491,U+4B0-4B1,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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.ui-root{--cream:#fff6e8;--paper:#fffdf8;--paper-edge:#d9ccb4;--ink:#2b2140;--ink-soft:#2b21409e;--red:#f0503c;--red-deep:#c23a2a;--yellow:#ffc83a;--yellow-deep:#d9a01c;--mint:#7fd8b4;--mint-deep:#4fb28b;--blue:#3c8df0;--blue-deep:#2468c2;--plum:#3a2b47;--spring:cubic-bezier(.34, 1.56, .64, 1);--ease:cubic-bezier(.22, .8, .3, 1);--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);z-index:10;pointer-events:none;--font-display:"Lilita One", "Nunito Variable", "Arial Rounded MT Bold", system-ui, sans-serif;--font-text:"Nunito Variable", "Nunito", system-ui, sans-serif;font-family:var(--font-text);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;font-size:15px;font-weight:700;line-height:1.25;position:fixed;inset:0}.ui-root *,.ui-root :before,.ui-root :after{box-sizing:border-box}.ui-root .num{font-variant-numeric:tabular-nums}.ui-root .ico{flex:none;display:block}.ui-root [hidden]{display:none!important}.screen{opacity:0;visibility:hidden;transition:opacity .2s var(--ease), visibility 0s linear .2s;position:absolute;inset:0}.screen.active{opacity:1;visibility:visible;transition:opacity .22s var(--ease)}.col{width:min(100%,520px);padding:calc(var(--safe-t) + 10px) calc(var(--safe-r) + 16px) calc(var(--safe-b) + 14px) calc(var(--safe-l) + 16px);pointer-events:none;flex-direction:column;margin:0 auto;display:flex;position:absolute;inset:0}.btn{--edge:var(--paper-edge);--lift:5px;appearance:none;cursor:pointer;pointer-events:auto;font:inherit;color:var(--ink);background:var(--paper);white-space:nowrap;touch-action:manipulation;min-width:48px;min-height:48px;box-shadow:0 var(--lift) 0 var(--edge), 0 calc(var(--lift) + 5px) 14px -2px #2b214047;transition:transform .12s var(--ease), box-shadow .12s var(--ease), filter .16s;margin:0;margin-bottom:var(--lift);border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:17px;font-weight:700;display:inline-flex}.btn:active:not(:disabled){transform:translateY(calc(var(--lift) - 1px));box-shadow:0 1px 0 var(--edge), 0 3px 6px -2px #2b21404d}.btn:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.btn:disabled{cursor:default;filter:grayscale(.7)brightness(1.05);opacity:.6}.btn.round{width:48px;height:48px;padding:0}.btn.primary{--edge:var(--red-deep);--lift:6px;background:var(--red);color:var(--cream);box-shadow:0 var(--lift) 0 var(--edge), 0 calc(var(--lift) + 5px) 14px -2px #c23a2a80, inset 0 2px 0 #ffffff4d}.btn.primary:active:not(:disabled){box-shadow:0 1px 0 var(--edge), 0 3px 6px -2px #c23a2a80, inset 0 2px 0 #ffffff4d}.btn.big{min-height:60px;padding:0 34px;font-size:22px}.btn.grow{flex:1}.btn.flat{--lift:3px;box-shadow:none;background:0 0;min-height:48px;margin:0}.btn.flat:active:not(:disabled){box-shadow:none;transform:scale(.9)}.btn.danger{color:var(--red-deep)}.btn.is-off{color:var(--ink-soft)}.pill{pointer-events:none;background:#fffdf8f2;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:6px 12px;font-weight:600;display:inline-flex;box-shadow:0 3px #d9ccb4e6,0 8px 14px -4px #2b214040}.tag{background:var(--yellow);color:var(--ink);letter-spacing:.02em;border-radius:999px;padding:4px 8px;font-size:13px;font-weight:700;line-height:1}.tag:empty{display:none}.s-title .col{align-items:center}.title-gear{top:calc(var(--safe-t) + 10px);right:calc(var(--safe-r) + 16px);position:absolute}.wordmark{letter-spacing:.01em;pointer-events:none;flex-direction:column;align-items:center;margin:clamp(36px,8vh,84px) 0 0;font-size:clamp(56px,min(21vw,9.5vh),92px);font-weight:700;line-height:.86;display:flex}.wordmark .w{color:var(--c);-webkit-text-stroke:.13em var(--ink);paint-order:stroke fill;text-shadow:0 .06em 0 var(--ink), 0 .1em 0 var(--ink), 0 .14em 0 var(--ink), 0 .2em .12em #2b214059;transform:rotate(var(--r)) translateX(var(--x,0));animation:wm-in .52s var(--spring) backwards;animation-delay:var(--d);display:block;position:relative}.w1{--c:var(--red);--r:-4deg;--x:-.2em;--d:60ms}.w2{--c:var(--yellow);--r:2.5deg;--x:.18em;--d:.16s;margin-top:.06em}.w3{--c:var(--blue);--r:-2deg;--x:-.05em;--d:.26s;margin-top:.06em}.wk{-webkit-text-stroke:0;width:.72em;height:1.08em;position:absolute;top:-.2em;right:-.62em;overflow:visible;transform:rotate(14deg)}.wk path{fill:var(--yellow);stroke:var(--ink);stroke-width:4px;stroke-linejoin:round;stroke-linecap:round}.wk .wk-stem{fill:none;stroke-width:6px}.wk-spin{transform-origin:24px 40px;animation:4.2s ease-in-out infinite wk-wind}@keyframes wk-wind{0%,12%{transform:rotate(0)}46%,58%{transform:rotate(18deg)}to{transform:rotate(0)}}@keyframes wm-in{0%{opacity:0;transform:translateY(-24px) rotate(calc(var(--r) * 3)) scale(.8)}}.menu{flex-direction:column;gap:12px;width:min(100%,340px);margin-top:auto;padding-bottom:6px;display:flex}.menu .big{width:100%}.menu-row{gap:8px;display:flex}.menu-row .btn{flex-direction:column;flex:1;gap:0;padding:0 8px;font-size:15px;line-height:1.05}.menu-sub{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;font-weight:600;display:block;overflow:hidden}.bar{flex:none;align-items:center;gap:12px;display:flex}.bar-title{color:var(--ink);background:#fffdf8f2;border-radius:999px;margin:0;padding:4px 18px;font-size:28px;font-weight:700;box-shadow:0 3px #d9ccb4e6,0 8px 14px -4px #2b214040}.levels{margin-top:auto;margin-inline:calc(var(--safe-l) * -1 - 16px) calc(var(--safe-r) * -1 - 16px);pointer-events:none;flex-direction:column;display:flex}.pager{scroll-snap-type:x mandatory;scrollbar-width:none;pointer-events:auto;overscroll-behavior-x:contain;padding:4px 0 8px;display:flex;overflow-x:auto}.pager::-webkit-scrollbar{display:none}.page{scroll-snap-align:center;scroll-snap-stop:always;padding:0 calc(var(--safe-l) + 16px);flex:0 0 100%}.pager-dots{justify-content:center;gap:8px;padding:6px 0 4px;display:flex}.pdot{width:10px;height:10px;transition:transform .2s var(--spring), background .16s;background:#fffdf8b3;border-radius:50%;box-shadow:0 0 0 2px #2b214059}.pdot.on{background:var(--red);box-shadow:0 0 0 2px var(--ink);transform:scale(1.35)}.chapter{background:var(--paper);border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink), 0 14px 22px -6px #2b214066;border-radius:28px;margin-bottom:6px;padding:14px 14px 12px;position:relative;overflow:hidden}.chapter:before{content:"";background:var(--accent);opacity:.9;height:10px;position:absolute;inset:0 0 auto}.chapter-head{justify-content:space-between;align-items:center;gap:8px;margin:8px 2px 12px;display:flex}.chapter-head h3{align-items:center;gap:10px;min-width:0;margin:0;font-size:22px;font-weight:700;display:flex}.chapter-n{background:var(--accent);border:2.5px solid var(--ink);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:17px;display:grid}.stars-pill{pointer-events:none;box-shadow:none;background:var(--cream);color:var(--ink);font-size:15px}.stars-pill .ico{color:var(--yellow);filter:drop-shadow(0 0 0 var(--ink));stroke:var(--ink);stroke-width:1.6px}.studs{grid-template-columns:repeat(5,1fr);justify-items:center;gap:6px;display:grid}.stud-cell{flex-direction:column;align-items:center;gap:3px;width:100%;display:flex}.stud{--edge:var(--paper-edge);appearance:none;border:2.5px solid var(--ink);font:inherit;color:var(--ink);background:var(--cream);aspect-ratio:1;cursor:pointer;width:min(100%,56px);min-width:48px;box-shadow:0 4px 0 var(--ink);transition:transform .12s var(--ease), box-shadow .12s var(--ease);touch-action:manipulation;border-radius:50%;place-items:center;margin-bottom:4px;font-size:17px;font-weight:700;display:grid;position:relative}.stud:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.stud:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.stud.done{background:var(--accent)}.stud.next{background:var(--red);color:var(--cream);animation:1.4s ease-in-out infinite pulse}.stud.lock{color:var(--ink-soft);background:#e4dccd;border-color:#2b214073;box-shadow:0 4px #2b21404d}@keyframes pulse{0%,to{box-shadow:0 4px 0 var(--ink), 0 0 0 0 #f0503c8c}50%{box-shadow:0 4px 0 var(--ink), 0 0 0 9px #f0503c00}}.mini-stars{gap:1px;height:14px;display:flex}.mini-stars span{color:#2b214029}.mini-stars span.on{color:var(--yellow)}.mini-stars .ico{stroke-width:2.4px}.mini-stars span.on .ico{stroke:var(--ink);stroke-width:2px}.chapter.locked .studs{opacity:.35;filter:grayscale(.6)}.chapter.locked .stud{pointer-events:none}.lock-badge{background:var(--ink);color:var(--cream);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:10px 20px 10px 14px;font-size:17px;display:flex;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);box-shadow:0 5px #00000059}.s-game .col{padding-bottom:calc(var(--safe-b) + 12px)}.hud{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.hud-top{flex:none;align-items:flex-start;gap:10px;display:flex}.hud-title{border-radius:24px;flex-direction:column;flex:1;align-items:stretch;gap:4px;min-width:0;min-height:48px;margin-top:0;padding:7px 14px 8px}.hud-line{justify-content:center;align-items:center;gap:8px;min-width:0;display:flex}.hud-name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.hud-meter{align-items:center;gap:8px;display:flex}.meter{background:#2b214024;border-radius:99px;flex:1;height:8px;overflow:hidden}.meter i{background:var(--red);transform-origin:0;height:100%;transition:transform .22s var(--ease);border-radius:99px;display:block;transform:scaleX(0)}.hud-beat{color:var(--ink-soft);text-align:right;min-width:3.2ch;font-size:13px;font-weight:600}.hud-stats{flex-wrap:wrap;flex:none;justify-content:center;gap:6px;display:none}.hud[data-variant=gauntlet] .hud-stats,.hud[data-variant=daily] .hud-stats{display:flex}.hud-stats .stat{flex-direction:row;align-items:baseline;gap:5px;padding:6px 12px}.hud-stats small{color:var(--ink-soft);font-size:13px;font-weight:600}.hud-stats b{font-size:15px;font-weight:700}.hud[data-variant=daily] .hearts,.hud[data-variant=daily] .stat:not(:last-child),.hud[data-variant=gauntlet] .stat:last-child{display:none}.hearts{gap:2px;padding:6px 10px}.heart{color:var(--red);transition:transform .2s var(--spring), color .16s;display:block}.heart.lost{color:#2b214038;transform:scale(.85)}.hud-chips{flex-wrap:wrap;flex:none;justify-content:center;gap:8px;display:flex}.chip{gap:5px;padding:5px 12px 5px 8px;font-size:13px}.chip .ico{color:#2b214047}.chip.earned{background:#fff3cc}.chip.earned .ico{color:var(--yellow);stroke:var(--ink);stroke-width:1.8px;animation:star-pop .36s var(--spring)}.banner{left:50%;top:calc(var(--safe-t) + 128px);opacity:0;background:var(--ink);color:var(--cream);text-align:center;width:max-content;max-width:calc(100% - 32px);transition:opacity .2s var(--ease), transform .26s var(--spring);pointer-events:none;border-radius:999px;padding:8px 18px;font-size:15px;font-weight:600;position:absolute;transform:translate(-50%,-8px)scale(.92);box-shadow:0 4px #0000004d}.banner.show{opacity:1;transform:translate(-50%)scale(1)}.hud[data-variant=gauntlet]~.banner,.hud[data-variant=daily]~.banner{top:calc(var(--safe-t) + 164px)}.dock{flex:none;align-items:flex-end;gap:10px;margin-top:auto;display:flex}.tray{pointer-events:none;min-width:0;transition:transform .22s var(--ease), opacity .16s;background:#fffdf8f2;border-radius:34px;flex-wrap:nowrap;flex:1;justify-content:center;gap:6px;margin-bottom:4px;padding:8px 10px;display:flex;box-shadow:0 4px #d9ccb4e6,0 10px 16px -4px #2b214047}.tray.many{flex-wrap:wrap}.tray.empty{visibility:hidden}.hud[data-mode=run] .tray{display:none}.coaster{aspect-ratio:1;background:var(--cream);border:2.5px solid var(--ink);min-width:40px;box-shadow:0 3px 0 var(--ink);pointer-events:auto;touch-action:none;cursor:grab;transition:transform .14s var(--spring), box-shadow .14s;border-radius:50%;flex:0 60px;position:relative}.coaster:active,.coaster.selected{transform:translateY(-3px)scale(1.06)}.coaster.selected{border-color:var(--blue);box-shadow:0 3px 0 var(--blue-deep), 0 0 0 4px #3c8df047}.coaster-img{object-fit:contain;pointer-events:none;-webkit-user-drag:none;width:calc(100% - 4px);height:calc(100% - 4px);transition:opacity .16s,filter .16s;position:absolute;inset:2px}.coaster-order{background:var(--ink);min-width:22px;height:22px;color:var(--cream);font-variant-numeric:tabular-nums;pointer-events:none;border-radius:99px;place-items:center;font-size:13px;font-weight:700;display:grid;position:absolute;top:-6px;left:-6px}.coaster.placed{box-shadow:none;cursor:default;background:0 0;border:2.5px dashed #2b214066}.coaster.placed .coaster-img{opacity:.16;filter:grayscale()}.coaster.placed .coaster-order{background:#2b214066}.speed{--edge:var(--paper-edge);align-self:center;margin-bottom:7px;margin-left:auto;padding:0 16px 0 12px;display:none}.hud[data-mode=run] .speed{display:inline-flex}.go-wrap{flex:none;position:relative}.go{--edge:var(--red-deep);--lift:7px;background:radial-gradient(circle at 35% 25%, #ff7a62 0%, var(--red) 55%);width:84px;height:84px;color:var(--cream);letter-spacing:.04em;box-shadow:0 var(--lift) 0 var(--edge), 0 calc(var(--lift) + 6px) 18px -2px #c23a2a8c, inset 0 3px 0 #ffffff4d;border-radius:50%;flex-direction:column;gap:0;padding:0;font-size:17px;line-height:1}.go:active:not(:disabled){box-shadow:0 1px 0 var(--edge), 0 3px 6px -2px #c23a2a80, inset 0 3px 0 #ffffff4d}.go .ico{margin-bottom:1px}.go.stop{--edge:#14101f;background:radial-gradient(circle at 35% 25%, #54446e 0%, var(--ink) 60%);box-shadow:0 var(--lift) 0 var(--edge), 0 calc(var(--lift) + 6px) 18px -2px #14101f80, inset 0 3px 0 #ffffff2e}.go:not(.stop):not(:disabled) .ico{animation:2.6s ease-in-out infinite key-wiggle}@keyframes key-wiggle{0%,70%,to{transform:rotate(0)}78%{transform:rotate(-16deg)}88%{transform:rotate(14deg)}}.hint{color:var(--ink);background:var(--yellow);--edge:var(--yellow-deep);animation:pop-in .32s var(--spring);position:absolute;bottom:calc(100% + 8px);right:18px}.sheet{visibility:hidden;width:min(100%,520px);max-height:45%;transition:transform .26s var(--ease), visibility 0s linear .26s;pointer-events:auto;background:var(--paper);border:3px solid var(--ink);border-bottom:0;border-radius:30px 30px 0 0;flex-direction:column;margin:0 auto;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(105%);box-shadow:0 -8px 24px -6px #2b214059}.sheet:before{content:"";background:#2b214029;border-radius:9px;flex:none;width:44px;height:5px;margin:9px auto 0;display:block}.sheet[data-open]{visibility:visible;transition:transform .34s var(--spring), visibility 0s;transform:none}.sheet-body{min-height:0;padding:6px calc(var(--safe-r) + 18px) calc(var(--safe-b) + 22px) calc(var(--safe-l) + 18px);flex-direction:column;align-items:stretch;gap:10px;display:flex;overflow-y:auto}.sheet-title{text-align:center;margin:0;font-size:28px;font-weight:700;line-height:1.1}.sheet-actions{justify-content:center;align-items:center;gap:10px;display:flex}.sheet-actions .btn{padding:0 16px}.stars{justify-content:center;align-items:flex-end;gap:6px;height:72px;display:flex}.star{color:#2b214024;display:block}.star .ico{stroke-width:1.8px}.star.s1{transform:translateY(-8px)scale(1.2)}.star.on{color:var(--yellow);animation:star-in .52s var(--spring) backwards;animation-delay:calc(var(--i) * .26s + .3s)}.star.on .ico{stroke:var(--ink);stroke-width:1.6px;filter:drop-shadow(0 3px #2b21404d)}@keyframes star-in{0%{opacity:0;transform:scale(0)rotate(-40deg)}to{opacity:1}}.star.s1.on{animation-name:star-in-mid}@keyframes star-in-mid{0%{opacity:0;transform:translateY(-8px)scale(0)rotate(-40deg)}to{opacity:1;transform:translateY(-8px)scale(1.2)}}@keyframes star-pop{0%{transform:scale(.2)rotate(-40deg)}to{transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.4)}}.goal-lines{flex-direction:column;align-items:center;gap:4px;margin:0;padding:0;list-style:none;display:flex}.goal-lines li{color:var(--ink-soft);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.goal-lines li .ico{color:#2b214040}.goal-lines li.earned{color:var(--ink)}.goal-lines li.earned .ico{color:var(--yellow);stroke:var(--ink);stroke-width:1.8px}.daily-line{justify-content:center;gap:8px;display:flex}.daily-line .pill{background:var(--cream);box-shadow:none;font-size:15px}.big-score{text-align:center;padding:2px 0;font-size:40px;font-weight:700;line-height:1}.strip{background:var(--cream);border-radius:28px;align-items:center;gap:0;padding:0 4px;display:flex}.strip .btn.flat{width:44px;min-width:44px;height:48px;color:var(--ink)}.dots{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.dots::-webkit-scrollbar{display:none}.dot{appearance:none;cursor:pointer;touch-action:manipulation;background:0 0;border:0;flex:1 0 22px;place-items:center;height:48px;padding:0;display:grid}.dot i{width:12px;height:12px;transition:transform .18s var(--spring), background .12s;background:#2b214033;border-radius:50%}.dot.past i{background:var(--ink-soft)}.dot.on i{background:var(--red);box-shadow:0 0 0 2px var(--cream), 0 0 0 4px var(--red);transform:scale(1.5)}.charm-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.charm{appearance:none;font:inherit;color:var(--ink);text-align:center;background:var(--cream);border:2.5px solid var(--ink);cursor:pointer;box-shadow:0 5px 0 var(--ink);min-height:48px;transition:transform .12s var(--ease), box-shadow .12s var(--ease);animation:pop-in .36s var(--spring) backwards;animation-delay:calc(var(--i) * 70ms + .2s);border-radius:22px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 12px;display:flex}.charm:active{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.charm:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.charm b{font-size:15px;font-weight:700;line-height:1.1}.charm>span:last-child{color:var(--ink-soft);font-size:13px;font-weight:500;line-height:1.2}.charm-ico{background:var(--tint);border:2.5px solid var(--ink);width:44px;height:44px;color:var(--ink);border-radius:50%;place-items:center;display:grid}.card{z-index:3;background:var(--paper);border:2.5px solid var(--ink);width:224px;box-shadow:0 4px 0 var(--ink), 0 12px 20px -6px #2b214066;opacity:0;transform-origin:var(--tail) 100%;transition:opacity .16s var(--ease), transform .24s var(--spring);pointer-events:none;border-radius:18px;padding:10px 14px 12px;position:fixed;transform:translateY(6px)scale(.94)}.card.below{transform-origin:var(--tail) 0}.card.show{opacity:1;transform:none}.card:after{content:"";left:var(--tail);background:var(--paper);border-right:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);border-radius:0 0 4px;width:14px;height:14px;position:absolute;bottom:-9px;transform:translate(-50%)rotate(45deg)}.card.below:after{top:-9px;bottom:auto;transform:translate(-50%)rotate(225deg)}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.card-head b{font-size:17px;font-weight:700}.card p{color:var(--ink-soft);margin:0;font-size:13px;font-weight:500;line-height:1.3}.t-P{background:var(--blue);color:#fff}.t-E{background:var(--plum);color:var(--cream)}.t-N{background:var(--yellow);color:var(--ink)}.toy-list{pointer-events:auto;overscroll-behavior:contain;scrollbar-width:none;flex-direction:column;gap:8px;max-height:52%;margin-top:auto;padding:4px 2px 10px;display:flex;overflow-y:auto}.toy-row{background:#fffdf8f5;border-radius:24px;flex:none;align-items:center;gap:12px;padding:6px 16px 6px 6px;display:flex;box-shadow:0 4px #d9ccb4e6,0 10px 16px -6px #2b214040}.toy-row img{background:var(--cream);object-fit:contain;border-radius:50%;flex:none;width:52px;height:52px}.toy-row div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.toy-row b{font-size:17px;font-weight:700}.toy-row span{color:var(--ink-soft);font-size:13px;line-height:1.25}.toy-row.locked img{filter:brightness(0)opacity(.28)}.toy-row.locked b,.toy-row.locked>.ico{color:var(--ink-soft)}.panel{pointer-events:auto;background:var(--paper);border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink), 0 14px 22px -6px #2b214066;border-radius:28px;margin:auto 0;padding:8px 18px 16px}.set-row{border-bottom:2px dashed #2b214024;align-items:center;gap:12px;min-height:56px;display:flex}.set-row.col-row{border-bottom:0;flex-direction:column;align-items:stretch;gap:8px;padding:12px 0}.set-ico{color:var(--ink-soft)}.set-label{flex:1;font-size:17px;font-weight:600}.switch{appearance:none;cursor:pointer;touch-action:manipulation;background:#d9d2c6;border:0;border-radius:99px;width:60px;height:36px;padding:0;transition:background .18s;position:relative;box-shadow:inset 0 2px #2b21402e}.switch:focus-visible,.seg-b:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.switch i{background:var(--paper);width:28px;height:28px;transition:transform .22s var(--spring);border-radius:50%;position:absolute;top:4px;left:4px;box-shadow:0 2px #2b21404d}.switch[aria-checked=true]{background:var(--mint)}.switch[aria-checked=true] i{transform:translate(24px)}.switch:before{content:"";position:absolute;inset:-6px -2px}.seg{background:var(--cream);border-radius:99px;gap:2px;padding:4px;display:flex}.seg-b{appearance:none;font:inherit;text-transform:capitalize;min-width:48px;height:44px;color:var(--ink-soft);cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:99px;flex:1;font-size:15px;font-weight:600;transition:background .16s,color .16s}.seg-b.on{background:var(--ink);color:var(--cream)}.set-reset{flex-direction:column;align-items:stretch;gap:10px;padding-top:8px;display:flex}.confirm-text{text-align:center;margin:0;font-size:17px;font-weight:600}.toast{left:50%;bottom:calc(var(--safe-b) + 210px);z-index:5;opacity:0;background:var(--ink);color:var(--cream);text-align:center;max-width:calc(100vw - 32px);transition:opacity .2s var(--ease), transform .28s var(--spring);pointer-events:none;border-radius:999px;padding:10px 20px;font-size:15px;font-weight:600;position:fixed;transform:translate(-50%,10px)scale(.94);box-shadow:0 4px #0000004d}.toast.show{opacity:1;transform:translate(-50%)}@media (max-height:700px){.col{padding-top:calc(var(--safe-t) + 8px)}.sheet-title{font-size:22px}.stars{height:60px}.star .ico{width:48px;height:48px}.sheet-body{gap:8px}.banner{top:calc(var(--safe-t) + 116px)}.chapter-head{margin-bottom:8px}.toast{bottom:calc(var(--safe-b) + 190px)}}@media (prefers-reduced-motion:reduce){.ui-root *,.ui-root :before,.ui-root :after{transition-duration:1ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.stud.next{outline-offset:3px;outline:4px solid #f0503c73}}.btn,.wordmark,.bar-title,.chapter-head h3,.chapter-n,.stud,.hud-name,.hud-stats b,.go,.sheet-title,.big-score,.charm b,.card-head b,.toy-row b,.coaster-order,.lock-badge,.toast.show{font-family:var(--font-display);letter-spacing:.015em;font-weight:400}.btn{font-size:19px}.btn.big{letter-spacing:.02em;font-size:26px}.menu-row .btn{font-size:17px}.sheet-actions .btn.primary{font-size:20px}.bar-title{font-size:30px}.chapter-head h3{font-size:26px}.chapter-n{font-size:19px}.stud{font-size:21px}.hud-name{font-size:18px}.hud-stats b{font-size:17px}.go{letter-spacing:.05em;font-size:21px}.sheet-title{font-size:32px}.big-score{font-size:46px}.charm b{font-size:17px}.card-head b,.toy-row b{font-size:20px}.coaster-order{font-size:14px}.pill,.chip,.banner,.toast,.set-label,.seg-b,.hud-beat,.stars-pill{font-weight:800}.menu-sub{font-family:var(--font-text);letter-spacing:0;font-weight:800}.tag{font-weight:900}.hud-stats small{font-weight:800}.goal-lines li,.confirm-text{font-weight:700}.charm>span:last-child,.card p,.toy-row span{font-weight:600}.wordmark{letter-spacing:.02em;font-size:clamp(64px,min(25vw,11vh),108px);line-height:.9}.wordmark .w{-webkit-text-stroke:.12em var(--ink)}.coach{z-index:30;pointer-events:none;filter:drop-shadow(0 4px 3px #2b214059);will-change:transform, opacity;width:48px;height:56px;margin:-6px 0 0 -18px;position:absolute;top:0;left:0}.coach svg{width:100%;height:100%;fill:var(--paper);stroke:var(--ink);stroke-width:3px;stroke-linejoin:round}.coach-ring{border:3px solid var(--paper);opacity:.8;border-radius:50%;width:30px;height:30px;position:absolute;top:-8px;left:4px}.sheet.newtoy{z-index:25}.newtoy-tag{background:var(--yellow);border:2px solid var(--ink);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;align-self:center;padding:2px 12px;font-size:13px;font-weight:700}.newtoy-row{align-items:center;gap:14px;display:flex}.newtoy-row img{flex:none;width:96px;height:96px}.newtoy-row .sheet-title{text-align:left;font-size:24px}.newtoy-row .sheet-title small{color:var(--cream);background:var(--plum);vertical-align:middle;border-radius:999px;padding:2px 8px;font-size:13px;font-weight:700}.sheet.newtoy{max-height:70%}.newtoy-row p{margin:4px 0 0;font-size:17px;line-height:1.3}.card .card-order{color:var(--ink-soft);margin-top:4px;font-size:13px;font-weight:700;display:block}.dev-errors{z-index:1000;color:#fff;white-space:pre-wrap;background:#780a14eb;border-radius:10px;max-height:40vh;margin:0;padding:10px 12px;font:11px/1.35 ui-monospace,Menlo,monospace;position:fixed;bottom:8px;left:8px;right:8px;overflow:auto}.dock.ttb-hidden{visibility:hidden}.newtoy-row .sheet-title small{font-family:var(--font-text);letter-spacing:0;font-weight:800}.newtoy-tag{font-weight:900}.turn-handles{pointer-events:none;z-index:20;position:absolute;inset:0}.turn-handle{pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none;width:40px;height:40px;font-family:var(--font-text);background:0 0;border:0;place-items:center;margin:0;padding:0;display:grid;position:absolute;top:0;left:0}.turn-handle:before{content:"";background:var(--paper);border:2px solid var(--ink);border-radius:50%;transition:background .12s,transform .12s;position:absolute;inset:3px;box-shadow:0 3px #2b214059}.turn-handle svg{width:18px;height:18px;transform:rotate(var(--rot,0deg));fill:var(--ink);stroke:var(--ink);stroke-width:1.6px;stroke-linejoin:round;position:relative}.turn-handle.on:before{background:var(--yellow)}.turn-handle:active:before{transform:translateY(2px);box-shadow:0 1px #2b214059}.turn-handles:not([hidden]) .turn-handle{animation:turn-handle-in .22s var(--spring) backwards}@keyframes turn-handle-in{0%{opacity:0;scale:.5}to{opacity:1;scale:1}}
