@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/baloo-2-latin-600-normal-tIfxVoAe.woff2)format("woff2"),url(/assets/baloo-2-latin-600-normal-B4tNaogw.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/baloo-2-vietnamese-600-normal-C5EqHgu0.woff2)format("woff2"),url(/assets/baloo-2-vietnamese-600-normal-CGkk4Wtx.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2)format("woff2"),url(/assets/baloo-2-latin-800-normal-B8BXfZF7.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(/assets/baloo-2-vietnamese-800-normal-ConLnEgt.woff2)format("woff2"),url(/assets/baloo-2-vietnamese-800-normal-GQACmpuv.woff)format("woff")}:root{--board:#1f2a24;--chalk:#f4f1e8;--chalk-dim:#9aa79c;--accent:#ffe066;--hot:#ff6b4a;--ok:#7ddc8a;--card:#2c3b33;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--chalk);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;background:#111814;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#app{background:var(--board);max-width:min(100vw,62dvh);height:100dvh;margin:0 auto;position:relative;overflow:hidden}#top{height:10%;padding:env(safe-area-inset-top) 16px 0;z-index:3;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0 0 auto}.score{flex-direction:column;font-size:28px;font-weight:800;line-height:1;display:flex}.score small{color:var(--accent);min-height:1em;margin-top:4px;font-size:13px;font-weight:600}#pause-btn{border:2px solid var(--chalk-dim);width:44px;height:44px;color:var(--chalk);background:0 0;border-radius:50%;font-size:14px}#stage{width:100%;height:60%;display:block;position:absolute;top:0;left:0}#hud{flex-direction:column;justify-content:space-between;height:15%;padding:0 12px;display:flex;position:absolute;top:60%;left:0;right:0}#hud .row{justify-content:space-between;align-items:center;display:flex}#state{letter-spacing:.08em;color:var(--chalk-dim);font-size:12px;font-weight:700}#timing{background:#0d130f;border-radius:11px;flex:1;height:22px;margin-left:12px;position:relative;overflow:hidden}#timing .zone{position:absolute;top:0;bottom:0}#timing .tick{background:#3b4a40;width:2px;position:absolute;top:6px;bottom:6px}#cursor{background:var(--chalk);width:4px;box-shadow:0 0 6px var(--chalk);border-radius:2px;margin-left:-2px;position:absolute;top:2px;bottom:2px}#timing.done #cursor{background:var(--chalk-dim);box-shadow:none}#cards{gap:6px;display:flex}.card{background:var(--card);text-align:center;border:2px solid #0000;border-radius:10px;flex:1;padding:4px 6px;transition:opacity 80ms}.card .name{white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:700;overflow:hidden}.card .seq{letter-spacing:2px;color:var(--chalk-dim);font-size:20px;font-weight:900}.card .seq .typed{color:var(--accent)}.card .why{color:var(--chalk-dim);font-size:9px}.card.off{opacity:.3}.card.chosen{border-color:var(--accent)}.card.ready{background:#4a4420}#spin-gauge{z-index:1;pointer-events:none;width:26px;height:32%;position:absolute;top:16%;left:14px}#spin-gauge .value{text-align:center;text-shadow:0 1px #000;width:38px;font-size:18px;font-weight:900;position:absolute;top:-26px;left:-6px}#spin-gauge .track{background:#0d130fd9;border:2px solid #3b4a40;border-radius:13px;position:absolute;inset:0;overflow:hidden}#spin-gauge .fill{background:var(--ok);height:0;transition:height .12s;position:absolute;bottom:0;left:0;right:0}#spin-gauge .fill.low{background:var(--hot);animation:.25s steps(2,end) infinite blink}#spin-gauge .ghost{background:repeating-linear-gradient(-45deg,#ffffff8c 0 4px,#ffffff26 4px 8px);height:0;position:absolute;left:0;right:0}#spin-gauge.danger .ghost{background:repeating-linear-gradient(-45deg,#ff6b4af2 0 4px,#ff6b4a59 4px 8px)}#spin-gauge .cost{white-space:nowrap;color:var(--chalk);text-shadow:0 1px #000;font-size:14px;font-weight:800;position:absolute;left:32px;transform:translateY(50%)}#spin-gauge.danger .cost{color:var(--hot)}#spin-gauge .warn{white-space:nowrap;color:var(--hot);text-shadow:0 1px #000;font-size:15px;font-weight:900;animation:.4s steps(2,end) infinite blink;position:absolute;top:calc(100% + 6px);left:-6px}body.layout-landscape #spin-gauge{left:calc(28% + 12px)}@keyframes blink{50%{opacity:.4}}#result{text-align:center;opacity:0;pointer-events:none;text-shadow:0 2px #000;font-size:30px;font-weight:900;transition:opacity .12s,transform .12s;position:absolute;top:-48px;left:0;right:0;transform:scale(.8)}#result small{color:var(--chalk);min-height:1em;font-size:13px;font-weight:700;display:block}#prompt{text-align:center;letter-spacing:.1em;color:var(--accent);opacity:0;pointer-events:none;font-size:22px;font-weight:900;position:absolute;top:-92px;left:0;right:0}#prompt.show{opacity:.55}#prompt.rest{color:var(--chalk-dim);font-size:18px}#rest-hint{color:var(--chalk-dim);pointer-events:none;font-size:11px;font-weight:700;position:absolute;top:-22px;right:12px}#timing.rest{opacity:.25}#prompt.beat4{opacity:1;text-shadow:0 0 14px var(--accent);transform:scale(1.25)}#result.show{opacity:1;transform:scale(1)}#result.perfect{color:var(--accent)}#result.cash{color:var(--accent)}#thumb{padding-bottom:env(safe-area-inset-bottom);justify-content:center;align-items:center;display:flex;position:absolute;inset:75% 0 0}#thumb-hint{color:#4d5c52;font-size:12px}#pad{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));grid-template-rows:1fr 1fr;grid-template-columns:1fr 1.2fr 1fr;gap:8px;height:calc(50% - 16px);display:grid;position:absolute}#pad button{color:var(--chalk);touch-action:none;background:#26332b;border:2px solid #3b4a40;border-radius:18px;font-size:34px;font-weight:900;transition:background 60ms,opacity 80ms}#pad .pad-left{grid-area:1/1/3}#pad .pad-up{grid-area:1/2}#pad .pad-down{grid-area:2/2}#pad .pad-right{grid-area:1/3/3}#pad button.hit{background:var(--accent);color:#1f2a24}#touch{z-index:2;touch-action:none;position:absolute;inset:50% 0 0}.overlay{z-index:10;text-align:center;background:#111814f0;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:absolute;inset:0}.overlay.hidden,.hidden{display:none!important}.overlay h1{color:var(--accent);margin:0;font-size:48px;font-weight:900}.overlay h2{margin:0}.sub{color:var(--chalk-dim);margin:0 0 12px}.small{color:var(--chalk-dim);font-size:12px}.big-hint{font-size:20px}.overlay button{border:2px solid var(--chalk-dim);min-width:220px;min-height:48px;color:var(--chalk);background:0 0;border-radius:24px;font-size:16px;font-weight:700}.overlay button.big{background:var(--accent);color:#1f2a24;border-color:var(--accent);min-height:60px;font-size:20px}.buttons{flex-direction:column;gap:10px;display:flex}#calib-pad{aspect-ratio:1;border:3px dashed var(--accent);touch-action:none;border-radius:50%;justify-content:center;align-items:center;width:min(70vw,260px);font-size:24px;font-weight:800;display:flex}#bung-btn{width:var(--bung);height:var(--bung);border:3px solid var(--accent);color:var(--accent);font-size:calc(var(--bung) * .19);letter-spacing:.06em;touch-action:none;background:#3a3418;border-radius:50%;font-weight:900;transition:background 60ms,box-shadow 80ms,transform 60ms;position:absolute}#bung-btn.hit{transform:scale(.95)}body.layout-split #pad,body.layout-landscape #pad{width:calc(var(--cell) * 3 + 12px);height:calc(var(--cell) * 3 + 12px);grid-template-columns:repeat(3, var(--cell));grid-template-rows:repeat(3, var(--cell));grid-template-areas:".up.""left.right"".down.";gap:6px;right:auto}body.layout-split #pad button,body.layout-landscape #pad button{font-size:calc(var(--cell) * .45);border-radius:16px}body.layout-split #pad .pad-up,body.layout-landscape #pad .pad-up{grid-area:up}body.layout-split #pad .pad-down,body.layout-landscape #pad .pad-down{grid-area:down}body.layout-split #pad .pad-left,body.layout-landscape #pad .pad-left{grid-area:left}body.layout-split #pad .pad-right,body.layout-landscape #pad .pad-right{grid-area:right}body.layout-split{--cell:min(clamp(58px, calc((30dvh - 36px) / 3), 78px), calc((56vw - 12px) / 3));--bung:clamp(104px, 32vw, 150px)}body.layout-split #hud,body.layout-split #touch{top:55%}body.layout-split #pad{left:max(12px, env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom))}body.layout-split #bung-btn{right:max(16px, env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom) + (var(--cell) * 3 + 12px - var(--bung)) / 2)}body.layout-landscape{--cell:min(84px, calc((78dvh - 12px) / 3), calc((28vw - 36px) / 3));--bung:min(180px, 60dvh, calc(28vw - 40px))}body.layout-landscape #app{width:100vw;max-width:none}body.layout-landscape #top,body.layout-landscape #stage,body.layout-landscape #hud{left:28%;right:28%}body.layout-landscape #stage{width:44%;height:66%}body.layout-landscape #hud{height:32%;top:66%}body.layout-landscape #thumb{display:none}body.layout-landscape #touch{pointer-events:none;top:0}body.layout-landscape #pad,body.layout-landscape #bung-btn{pointer-events:auto}body.layout-landscape #pad{left:max(16px, env(safe-area-inset-left));bottom:20px}body.layout-landscape #bung-btn{right:max(20px, env(safe-area-inset-right));bottom:calc(20px + (var(--cell) * 3 + 12px - var(--bung)) / 2)}@media (orientation:portrait){body.layout-landscape #rotate.overlay{display:flex!important}}#rotate{z-index:20}:root{--paper:#fffaf0;--ink:#35254f;--sun:#ffd84d;--sun-deep:#ffb238;--flame:#f2552c;--display:"Baloo 2", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans Thai", "Leelawadee UI", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif}#start.start-live{font-family:var(--display);background:linear-gradient(#11181447,#11181400 20%),linear-gradient(#11181400 52%,#11181459 100%);justify-content:space-between;gap:0;padding:0}.hero-pick{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));background:var(--paper);z-index:1;border-radius:999px;gap:4px;padding:4px;display:flex;position:absolute;box-shadow:0 4px #35254f38}#start .hero-pick button{min-width:0;height:38px;min-height:0;color:var(--ink);font-family:var(--display);background:0 0;border:0;border-radius:999px;padding:0 16px;font-size:16px;font-weight:800}#start .hero-pick button.on{background:linear-gradient(180deg, var(--sun), var(--sun-deep));box-shadow:0 2px #b86e12}.start-icons{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:1;gap:10px;display:flex;position:absolute}#start .icon-btn{background:var(--paper);width:46px;min-width:0;height:46px;min-height:0;color:var(--ink);font-family:var(--display);border:0;border-radius:50%;padding:0;font-size:22px;font-weight:800;line-height:1;box-shadow:0 4px #35254f40,0 6px 14px #00000026}.start-logo{margin-top:max(64px, calc(env(safe-area-inset-top) + 52px));pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:relative}#start .start-logo h1{font-family:var(--display);letter-spacing:-1px;-webkit-text-stroke:10px #fff;paint-order:stroke fill;filter:drop-shadow(0 5px 0 var(--ink));font-size:clamp(60px,19vw,92px);font-weight:800;line-height:.9;transform:rotate(-4deg)}.logo-a{color:var(--sun-deep)}.logo-b{color:var(--flame)}.logo-yoyo{vertical-align:top;transform-origin:50% 0;width:.36em;margin-left:.04em;animation:2.4s ease-in-out infinite logo-swing;display:inline-block}@media (prefers-reduced-motion:reduce){.logo-yoyo{animation:none}}@keyframes logo-swing{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}.tagline{background:var(--paper);color:var(--ink);border-radius:999px;margin:0;padding:6px 16px;font-size:16px;font-weight:600;box-shadow:0 4px #35254f33}.start-menu{width:100%;max-width:520px;padding:0 16px calc(14px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;display:flex}#start .pill{background:var(--paper);width:100%;min-width:0;min-height:54px;color:var(--ink);font-family:var(--display);border:0;border-radius:999px;font-size:18px;font-weight:800;position:relative;box-shadow:0 4px #35254f38,0 8px 18px #0000001f}#start .pill:active{transform:translateY(3px);box-shadow:0 1px #35254f38}#start .pill.primary{background:linear-gradient(180deg, var(--sun), var(--sun-deep));min-height:64px;font-size:24px;box-shadow:0 5px #b86e12,0 10px 22px #0000002e}#start .pill.wide{grid-column:1/-1}#start .pill.soon{opacity:.75}#start .badge{background:var(--flame);color:#fff;letter-spacing:.5px;text-transform:uppercase;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:800;position:absolute;top:-9px;right:14px}.start-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}#start .start-grid .pill{min-height:50px;font-size:17px}#start .field{border:2.5px solid var(--ink);background:var(--paper);color:var(--ink);text-align:left;border-radius:22px;flex-direction:column;margin-top:8px;padding:14px 44px 8px 18px;display:flex;position:relative;box-shadow:0 4px #35254f38}#start .field-label{background:var(--ink);color:var(--paper);letter-spacing:.5px;text-transform:uppercase;border-radius:999px;padding:0 10px;font-size:13px;font-weight:800;position:absolute;top:-12px;left:16px}#start .field select{appearance:none;width:100%;color:var(--ink);font-family:var(--display);background:0 0;border:0;outline:none;font-size:20px;font-weight:800}#start .field-line{color:#6b5d80;font-size:14px;font-weight:600}#start .chev{pointer-events:none;font-size:20px;position:absolute;top:50%;right:18px;transform:translateY(-50%)}#start #summary{color:var(--paper);text-shadow:0 1px 2px #0009;margin:0}body.screen-start #stage{height:100%!important}body.screen-start #top,body.screen-start #hud,body.screen-start #touch{visibility:hidden}.overlay{overflow-y:auto}@media (height<=480px){.overlay{justify-content:flex-start;gap:8px;padding:12px}.overlay h1{font-size:32px}.overlay button{min-height:40px}.overlay button.big{min-height:48px}}#round-info{color:var(--chalk-dim);white-space:nowrap;font-size:12px;font-weight:800;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}#bot-box{flex-direction:column;align-items:flex-end;margin-left:auto;margin-right:12px;line-height:1;display:flex}#bot-box small{color:#9fb0c4;font-size:10px;font-weight:700}#banner{z-index:2;text-align:center;letter-spacing:.06em;opacity:0;pointer-events:none;text-shadow:0 2px #000;font-size:26px;font-weight:900;position:absolute;top:12%;left:0;right:0}#banner.show{opacity:1}#banner.info{color:var(--chalk);font-size:20px}#banner.warn{color:var(--hot);font-size:34px;animation:.35s steps(2,end) infinite blink}body.layout-landscape #banner{left:28%;right:28%}.bot-pick{align-items:center;gap:10px;font-weight:700;display:flex}.bot-pick select{background:var(--card);color:var(--chalk);border:1px solid var(--chalk-dim);border-radius:6px;padding:6px 8px;font-size:15px}#end-table{border-collapse:collapse;min-width:240px;font-size:15px}#end-table th,#end-table td{text-align:right;padding:4px 10px}#end-table th:first-child,#end-table td:first-child{text-align:left;color:var(--chalk-dim)}#end-table tr.total td{border-top:1px solid var(--chalk-dim);font-weight:900}#end-title.win{color:var(--accent)}#end-title.lose{color:var(--hot)}#spin-gauge .mark{background:var(--accent);height:2px;box-shadow:0 0 4px var(--accent);position:absolute;left:-3px;right:-3px}#spin-gauge.caution .ghost{background:repeating-linear-gradient(-45deg,#ffe066f2 0 4px,#ffe06659 4px 8px)}#spin-gauge.caution .warn{color:var(--accent);animation:none}#spin-gauge.caution .cost{color:var(--accent)}#lesson{z-index:4;border:2px solid var(--accent);background:#111814eb;border-radius:14px;padding:10px 12px;position:absolute;top:11%;left:10px;right:10px}body.layout-landscape #lesson{left:28%;right:28%}#lesson .lesson-head{color:var(--chalk-dim);justify-content:space-between;align-items:center;font-size:11px;font-weight:800;display:flex}#lesson-skip{color:var(--chalk-dim);background:0 0;border:none;padding:4px;font-size:12px;text-decoration:underline}#lesson h3{color:var(--accent);margin:2px 0 4px;font-size:17px}#lesson p{margin:0;font-size:13px;line-height:1.35}#lesson-actions{gap:8px;margin-top:10px;display:flex}#lesson-actions button{border:2px solid var(--chalk-dim);min-height:42px;color:var(--chalk);background:0 0;border-radius:21px;flex:1;font-weight:800}#lesson-actions button.big{background:var(--accent);border-color:var(--accent);color:#1f2a24}body.in-lesson #spin-gauge{height:16%;top:36%}#help-body{text-align:left;width:min(100%,420px);font-size:13px}#help-body h4{color:var(--accent);letter-spacing:.06em;margin:10px 0 4px;font-size:13px}#help-body table{border-collapse:collapse;width:100%}#help-body td,#help-body th{border-bottom:1px solid #2c3b33;padding:3px 4px}#help-body th{color:var(--chalk-dim);text-align:left;font-size:11px}#help-body td.keys{letter-spacing:1px;white-space:nowrap;font-weight:900}#help-body ul{margin:8px 0 0;padding-left:18px}#help-body li{margin:3px 0}#help.overlay{justify-content:flex-start}#result.hint small{color:var(--chalk-dim);font-size:15px}#end-offset button{min-width:0;min-height:32px;padding:0 12px;font-size:13px}.card .cost{color:var(--chalk-dim);font-weight:700}.card .why{font-size:10px;font-weight:800}.card.risk-last{border-color:var(--accent)}.card.risk-bad{border-color:var(--hot);opacity:.75}.card.suggest{border-color:var(--ok);background:#24412d;box-shadow:0 0 10px #7ddc8a80}.card.suggest .why{color:var(--ok)}#spin-gauge .label{text-align:center;width:46px;color:var(--chalk-dim);font-size:9px;font-weight:700;position:absolute;top:-38px;left:-10px}body:not(.dev) .dev-only{display:none!important}#share-text{background:var(--card);width:min(100%,420px);height:50vh;color:var(--chalk);border:1px solid var(--chalk-dim);border-radius:8px;padding:8px;font-family:ui-monospace,monospace;font-size:11px}body:not(.pad-buttons) #pad,body:not(.two-thumb) #bung-btn,body.pad-buttons #thumb{display:none}#root{height:100%}#loading .progress{background:var(--card);border-radius:6px;width:min(70%,280px);height:12px;overflow:hidden}#loading .progress div{background:var(--accent);height:100%;transition:width .12s}#app{font-family:var(--display)}#app:before{content:"";z-index:1;background:linear-gradient(90deg, transparent 30px, #f2552c52 30px 32px, transparent 32px), repeating-linear-gradient(transparent 0 27px, #35254f14 27px 28px), var(--paper);pointer-events:none;border-radius:26px 26px 0 0;position:absolute;inset:calc(60% - 14px) 0 0;box-shadow:0 -5px #35254f29}body.layout-landscape #app:before,body.screen-start #app:before{display:none}#hud{z-index:2;color:var(--ink);padding:2px 12px 0}#top{padding:max(8px, env(safe-area-inset-top)) 12px 0;gap:8px}.score{background:var(--paper);color:var(--ink);border-radius:18px;min-width:0;max-width:46%;padding:6px 14px 4px;font-size:24px;box-shadow:0 4px #35254f38}.score small{color:var(--flame);white-space:nowrap;text-overflow:ellipsis;margin-top:0;font-size:11px;font-weight:800;overflow:hidden}.score small:empty{display:none}#round-info{left:50%;top:calc(max(8px, env(safe-area-inset-top)) + 54px);background:var(--ink);color:var(--paper);white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:800;position:absolute;transform:translate(-50%)}#bot-box{text-align:right;background:#fffaf0db;border-radius:18px;min-width:0;max-width:34%;padding:4px 12px;box-shadow:0 4px #35254f2e}#bot-box small{color:#6b5d80;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:800;display:block;overflow:hidden}#bot-box span{color:var(--ink);font-size:20px;font-weight:800}#pause-btn{background:var(--paper);color:var(--ink);border:0;flex:none;font-size:14px;font-weight:800;box-shadow:0 4px #35254f38}#pause-btn:active{transform:translateY(3px);box-shadow:0 1px #35254f38}#state{background:var(--ink);color:var(--paper);letter-spacing:.06em;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}#timing{border:2.5px solid var(--ink);background:#fff;border-radius:12px;height:24px}#timing .zone.good{background:#ffb23838}#timing .zone.great{background:#ffb23873}#timing .zone.perfect{background:var(--sun)}#timing.armed .zone.perfect{background:var(--flame);box-shadow:0 0 10px #f2552cb3}#timing .tick{background:#35254f40}#cursor{background:var(--ink);box-shadow:none;width:5px}#timing.done #cursor{background:#35254f59}.card{border:2.5px solid var(--ink);min-width:0;color:var(--ink);background:#fff;border-radius:16px;padding:5px 4px 4px;position:relative;box-shadow:0 4px #35254f38}.card .name{white-space:normal;text-wrap:balance;justify-content:center;align-items:center;min-height:2.3em;font-size:12.5px;font-weight:800;line-height:1.15;display:flex}.card .cost{color:var(--flame);margin-left:4px}.card .seq{letter-spacing:0;color:var(--ink);justify-content:center;gap:3px;margin-top:3px;display:flex}.card .seq .key{border:2px solid var(--ink);background:var(--paper);border-radius:7px;width:22px;height:22px;font-size:14px;font-weight:800;line-height:18px}.card .seq .key.typed{background:var(--sun);color:var(--ink)}.card .why{color:#6b5d80;margin-top:2px;font-size:10px;font-weight:700}.card.dim{opacity:.45}.card.chosen{border-color:var(--ink);background:linear-gradient(180deg, #fff3c4, var(--sun))}.card.ready{background:linear-gradient(180deg, var(--sun), var(--sun-deep));box-shadow:0 4px #b86e12,0 0 0 3px #f2552c73}.card.queued{border-style:dashed}.card.suggest{border-color:#2e9e5b;box-shadow:0 4px #2e9e5b73}.card.risk-bad .why{color:var(--flame)}.card.risk-last .why{color:#b86e12}.card.boost{border-color:var(--flame);box-shadow:0 4px #b8401f,0 0 14px #f2552c73}.card .mult{border:2px solid var(--ink);background:linear-gradient(180deg, #ff8a4c, var(--flame));color:#fff;border-radius:999px;padding:0 8px;font-size:15px;font-weight:800;line-height:20px;position:absolute;top:-12px;right:-6px;transform:rotate(8deg)}.card.boost.hope .mult{font-size:17px;animation:.6s ease-in-out infinite alternate pulse}@keyframes pulse{to{transform:rotate(8deg)scale(1.15)}}#cooldowns{pointer-events:none;gap:6px;display:flex;position:absolute;top:-26px;left:12px}#cooldowns .cd{color:var(--paper);white-space:nowrap;background:#35254fd1;border-radius:999px;padding:1px 9px;font-size:11px;font-weight:700}#rest-hint{color:var(--paper);text-shadow:0 1px 2px #00000080}#result,#prompt,#banner{font-family:var(--display)}#result{-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;text-shadow:0 3px #00000040;color:#fff;font-size:34px;font-weight:800}#result small{-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;color:#fff;font-size:14px}#result.perfect,#result.cash{color:var(--sun)}#result.great{color:#8ef0a0}#result.miss,#result.death{color:#ff8a6a}#prompt{color:var(--sun);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:none;font-weight:800}#prompt.beat4{text-shadow:none}#banner{width:fit-content;max-width:calc(100% - 24px);text-shadow:none;border-radius:999px;margin:0 auto;padding:6px 18px;font-weight:800}#banner.info{background:var(--ink);color:var(--paper)}#banner.warn{background:var(--flame);color:#fff;border:3px solid var(--ink)}#banner.mutation{border:3px solid var(--ink);background:linear-gradient(180deg, var(--sun), var(--sun-deep));color:var(--ink);border-radius:22px;flex-direction:column;align-items:center;padding:6px 22px 8px;animation:.35s cubic-bezier(.2,1.6,.4,1) pop-in;display:flex;box-shadow:0 5px #35254f59}#banner.mutation b{letter-spacing:.02em;font-size:22px;line-height:1.1}#banner.mutation small{font-size:14px;font-weight:800}#banner.mutation.hope{background:linear-gradient(180deg, #ff9a5c, var(--flame));color:#fff}#banner.mutation.seal{background:linear-gradient(180deg, #8f7bd6, var(--ink));color:var(--paper)}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}}#spin-gauge .track{border:2.5px solid var(--ink);background:#fffaf0e6}#spin-gauge .fill{background:#2e9e5b}#spin-gauge .fill.low{background:var(--flame)}#spin-gauge .value,#spin-gauge .cost,#spin-gauge .warn{font-family:var(--display);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:none}#spin-gauge .value{color:#fff}#pad button{border:3px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--display);border-radius:20px;font-weight:800;transition:transform 50ms,box-shadow 50ms,background 60ms,opacity 80ms;box-shadow:0 5px #35254f47}#pad button.hit{background:linear-gradient(180deg, var(--sun), var(--sun-deep));color:var(--ink);transform:translateY(4px);box-shadow:0 1px #35254f47}#pad.armed button{opacity:.4}#bung-btn{border:3.5px solid var(--ink);background:linear-gradient(180deg, var(--sun), var(--sun-deep));color:var(--ink);font-family:var(--display);font-weight:800;box-shadow:0 7px #b86e12}#bung-btn.armed{background:linear-gradient(180deg, #ffe88a, var(--sun));box-shadow:0 7px #b86e12,0 0 0 6px #f2552c59,0 0 22px #f2552c8c}#bung-btn.beat4{background:linear-gradient(180deg, #ff8a4c, var(--flame));color:#fff}#bung-btn.hit{transform:translateY(5px);box-shadow:0 2px #b86e12}#thumb-hint{color:#8a7d9c;font-weight:700}:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--timing-h:22px;--card-h:70px;--hud-h:calc(var(--sp-3) + var(--timing-h) + var(--sp-2) + var(--card-h))}.arw{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:100%;height:100%;display:block}#pad button{justify-content:center;align-items:center;padding:0;display:flex}#pad button .arw{width:46%;height:46%}.card .seq .key{justify-content:center;align-items:center;padding:3px;display:flex}#top{gap:var(--sp-2);padding:max(var(--sp-3), env(safe-area-inset-top)) var(--sp-4) 0;align-items:flex-start;height:auto}.score,#bot-box{padding:var(--sp-1) var(--sp-3)}#round-info{top:calc(max(var(--sp-3), env(safe-area-inset-top)) + 52px)}#state{display:none}#hud{height:var(--hud-h);padding:var(--sp-3) var(--sp-4) 0;justify-content:flex-start;gap:var(--sp-2)}#timing{height:var(--timing-h);margin-left:0}#cards{gap:var(--sp-2);padding-bottom:0}.card{justify-content:center;gap:var(--sp-1);height:var(--card-h);padding:var(--sp-1);flex-direction:column;display:flex}.card .name{min-height:0}.card .seq{margin-top:0}.card .why{display:none}.card.risk-bad:after,.card.risk-last:after{content:"";top:var(--sp-2);left:var(--sp-2);background:var(--flame);border-radius:50%;width:8px;height:8px;position:absolute}.card.risk-last:after{background:var(--sun-deep)}.card.frozen{background:linear-gradient(#dceeffeb,#badcf8eb),#fff;border-color:#6aa6d8;box-shadow:0 4px #4a80b059}.card.frozen .name,.card.frozen .seq{opacity:.35}.card .ice{color:#2f6fa8;-webkit-text-stroke:4px #fff;paint-order:stroke fill;letter-spacing:.02em;justify-content:center;align-items:center;font-size:26px;font-weight:800;display:flex;position:absolute;inset:0}#spin-gauge .label{display:none}#countdown{z-index:3;align-items:center;gap:var(--sp-1);pointer-events:none;font-family:var(--display);flex-direction:column;display:none;position:absolute;top:18%;left:0;right:0}#countdown.show{display:flex}#countdown small{padding:var(--sp-1) var(--sp-3);background:var(--ink);color:var(--paper);letter-spacing:.06em;border-radius:999px;font-size:15px;font-weight:800}#countdown b{color:var(--sun);-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;text-shadow:0 6px #00000040;font-size:96px;font-weight:800;line-height:1;animation:.45s cubic-bezier(.2,1.6,.4,1) count-pop}#countdown.go b{color:var(--flame);font-size:64px}@keyframes count-pop{0%{opacity:0;transform:scale(1.8)}}body.layout-split{--stage-h:55dvh;--ctrl-h:calc(100dvh - var(--stage-h) - var(--hud-h) - var(--sp-4) - var(--sp-4) - env(safe-area-inset-bottom));--cell:max(44px, min(76px, calc((var(--ctrl-h) - 2 * var(--sp-2)) / 3), calc((52vw - 2 * var(--sp-2)) / 3)));--pad-h:calc(var(--cell) * 3 + 2 * var(--sp-2));--bung:max(88px, min(150px, 34vw, var(--ctrl-h)))}body.layout-split #stage{height:var(--stage-h)}body.layout-split #hud{top:var(--stage-h)}body.layout-split #app:before{top:calc(var(--stage-h) - 14px)}body.layout-split #touch{top:var(--stage-h)}body.layout-split #pad{left:max(var(--sp-4), env(safe-area-inset-left));bottom:calc(var(--sp-4) + env(safe-area-inset-bottom) + (var(--ctrl-h) - var(--pad-h)) / 2);width:calc(var(--cell) * 3 + 2 * var(--sp-2));height:var(--pad-h);gap:var(--sp-2)}body.layout-split #bung-btn{right:max(var(--sp-4), env(safe-area-inset-right));bottom:calc(var(--sp-4) + env(safe-area-inset-bottom) + (var(--ctrl-h) - var(--bung)) / 2);font-size:calc(var(--bung) * .2)}.overlay.sheet-screen{font-family:var(--display);padding:var(--sp-4);background:#35254f73}.sheet{gap:var(--sp-4);width:min(100%,420px);max-height:100%;padding:var(--sp-5) var(--sp-4) var(--sp-4);border:3px solid var(--ink);background:var(--paper);color:var(--ink);text-align:left;border-radius:28px;flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 6px #35254f4d}.sheet-title{text-align:center;margin:0;font-size:26px;font-weight:800}.sheet .box{gap:var(--sp-3);margin:var(--sp-2) 0 0;padding:var(--sp-5) var(--sp-4) var(--sp-4);border:2.5px solid var(--ink);background:#fff;border-radius:22px;flex-direction:column;min-width:0;display:flex;position:relative}.sheet .box-label{top:-12px;left:var(--sp-4);padding:0 var(--sp-3);background:var(--ink);color:var(--paper);letter-spacing:.5px;text-transform:uppercase;border-radius:999px;font-size:13px;font-weight:800;position:absolute}.sheet .row-label{margin-bottom:calc(-1 * var(--sp-2));color:#6b5d80;font-size:14px;font-weight:800}.sheet .seg{gap:var(--sp-1);padding:var(--sp-1);background:#35254f14;border-radius:999px;grid-template-columns:1fr 1fr;display:grid}.sheet .seg.three{grid-template-columns:1fr 1fr 1fr}.sheet .seg button{min-width:0;min-height:40px;color:var(--ink);font-family:var(--display);background:0 0;border:0;border-radius:999px;font-size:16px;font-weight:800}.sheet .seg button.on{background:linear-gradient(180deg, var(--sun), var(--sun-deep));box-shadow:inset 0 -3px #c97d16}.sheet .slider{align-items:center;gap:var(--sp-3);grid-template-columns:80px 1fr 36px;font-size:16px;font-weight:800;display:grid}.sheet .slider b{text-align:right;font-variant-numeric:tabular-nums}.sheet input[type=range]{appearance:none;border:2.5px solid var(--ink);background:var(--paper);border-radius:999px;width:100%;height:14px;margin:0}.sheet input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2.5px solid var(--ink);background:linear-gradient(180deg, var(--sun), var(--sun-deep));border-radius:50%;width:28px;height:28px;box-shadow:inset 0 -3px #c97d16}.sheet input[type=range]::-moz-range-thumb{border:2.5px solid var(--ink);background:var(--sun);border-radius:50%;width:24px;height:24px}.sheet .switch{justify-content:space-between;align-items:center;gap:var(--sp-3);font-size:16px;font-weight:800;display:flex}.sheet .switch input{opacity:0;pointer-events:none;position:absolute}.sheet .switch i{border:2.5px solid var(--ink);background:#35254f1f;border-radius:999px;flex:none;width:52px;height:30px;transition:background .12s;position:relative}.sheet .switch i:after{content:"";box-sizing:border-box;border:2px solid var(--ink);background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .12s;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.sheet .switch input:checked+i{background:var(--sun)}.sheet .switch input:checked+i:after{transform:translate(21px,-50%)}.sheet .switch input:focus-visible+i{outline:3px solid var(--flame);outline-offset:2px}.sheet .dev-row{justify-content:space-between;align-items:center;font-size:14px;font-weight:700;display:flex}.sheet .dev-row input{border:2px solid var(--ink);width:80px;padding:var(--sp-1) var(--sp-2);font:inherit;color:var(--ink);background:#fff;border-radius:10px}.sheet .pill{min-height:56px;font-family:var(--display);color:var(--ink);border:0;border-radius:999px;font-size:20px;font-weight:800}.sheet .pill.primary{background:linear-gradient(180deg, var(--sun), var(--sun-deep));box-shadow:0 5px #b86e12}.sheet .pill.primary:active{transform:translateY(3px);box-shadow:0 2px #b86e12}.sheet .pill.ghost{border:2.5px solid var(--ink);background:#fff;box-shadow:0 4px #35254f38}#lesson{top:max(var(--sp-3), env(safe-area-inset-top));left:var(--sp-4);right:calc(var(--sp-4) + 44px + var(--sp-2));padding:var(--sp-2) var(--sp-3) var(--sp-3);border:2.5px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--display);border-radius:20px;box-shadow:0 4px #35254f40}#lesson .lesson-head{gap:var(--sp-2);color:var(--ink);justify-content:flex-start}#lesson-step{padding:0 var(--sp-2);background:var(--ink);color:var(--paper);border-radius:999px;flex:none;font-size:12px;font-weight:800}#lesson h3{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:17px;font-weight:800;overflow:hidden}#lesson.done h3{color:#2e9e5b}#lesson-skip{min-width:0;min-height:0;padding:2px var(--sp-2);border:2px solid var(--ink);color:var(--ink);font-family:var(--display);background:#fff;border-radius:999px;flex:none;font-size:12px;font-weight:800;text-decoration:none}#lesson p{margin:var(--sp-1) 0 0;font-size:14px;font-weight:600;line-height:1.5}#lesson p .key{vertical-align:-5px;border:2px solid var(--ink);background:#fff;border-radius:6px;width:20px;height:20px;margin:0 1px;padding:2px;display:inline-flex}#lesson-actions{gap:var(--sp-2);margin-top:var(--sp-3)}#lesson-actions button{border:2.5px solid var(--ink);min-height:44px;color:var(--ink);font-family:var(--display);background:#fff;border-radius:999px;font-size:15px;box-shadow:0 3px #35254f38}#lesson-actions button.big{border-color:var(--ink);background:linear-gradient(180deg, var(--sun), var(--sun-deep));color:var(--ink);box-shadow:0 3px #b86e12}#app:has(#lesson) .score{display:none}#app:has(#lesson) #round-info{display:none}#pause-btn{margin-left:auto}.card .seq.long{gap:2px}.card .seq.long .key{border-radius:5px;width:17px;height:17px;padding:2px}#quip{z-index:3;max-width:62%;padding:var(--sp-2) var(--sp-3);border:2.5px solid var(--ink);color:var(--ink);font-family:var(--display);opacity:0;pointer-events:none;background:#fff;border-radius:18px;font-size:16px;font-weight:800;line-height:1.2;transition:opacity .12s,transform .16s cubic-bezier(.2,1.6,.4,1);position:absolute;top:26%;transform:scale(.7);box-shadow:0 4px #35254f40}#quip.show{opacity:1;transform:scale(1)}#quip.crowd{left:var(--sp-4);border-bottom-left-radius:4px}#quip.bot{right:var(--sp-4);background:var(--ink);color:var(--paper);border-bottom-right-radius:4px}.sheet .seg.two-rows{border-radius:22px;grid-template-columns:1fr 1fr}.sheet.narrow{width:min(100%,340px)}.sheet.center{text-align:center;align-items:center}.sheet .sub,.sheet .small{color:#6b5d80;margin:0;font-weight:600}.sheet .small{font-size:13px}.sheet .buttons{gap:var(--sp-2);flex-direction:column;width:100%;display:flex}.sheet .pill{width:100%;min-width:0}.sheet .pill.small-pill{width:auto;min-height:36px;padding:0 var(--sp-3);font-size:14px}.sheet .pill:disabled{opacity:.6}#end .sheet h1{text-align:center;font-family:var(--display);color:var(--ink);margin:0;font-size:40px;font-weight:800}#end .sheet h1.win{color:#2e9e5b}#end .sheet h1.lose{color:var(--flame)}#end-sub{text-align:center}.sheet table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.sheet th,.sheet td{padding:var(--sp-1) var(--sp-2);text-align:left;border-bottom:1.5px solid #35254f1f;font-size:14px}.sheet th{color:#6b5d80;font-weight:800}.sheet tr.total td{border-bottom:0;font-weight:800}#end-offset{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}#help-body{gap:var(--sp-2);flex-direction:column;font-size:14px;font-weight:600;display:flex}#help-body p,#help-body ul{margin:0}#help-body ul{padding-left:var(--sp-4);color:#4a3d63}#help-body h4{margin:var(--sp-2) 0 0;padding:2px var(--sp-3);background:var(--ink);width:fit-content;color:var(--paper);letter-spacing:.04em;border-radius:999px;font-size:12px}#help-body td.keys{white-space:nowrap;font-weight:800}.sheet #calib-pad{border:3px dashed var(--ink);color:var(--ink);font-family:var(--display);background:#fff}.sheet #share-text{width:100%;min-height:160px;padding:var(--sp-2);border:2.5px solid var(--ink);color:var(--ink);background:#fff;border-radius:14px;font:13px/1.4 ui-monospace,monospace}#help-body td.keys .key{border:2px solid var(--ink);vertical-align:middle;background:#fff;border-radius:5px;width:18px;height:18px;margin-right:2px;padding:2px;display:inline-flex}.sheet .seg.five{grid-template-columns:repeat(5,1fr)}.board-head{align-items:center;gap:var(--sp-2);flex-wrap:wrap;font-size:15px;font-weight:800;display:flex}.board-head .chip{padding:1px var(--sp-2);background:#35254f1a;border-radius:999px;font-size:12px}.board-head .chip.trial{background:var(--sun)}.board-rows{gap:var(--sp-1);flex-direction:column;max-height:42dvh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.board-rows li{align-items:center;gap:var(--sp-2);min-height:40px;padding:0 var(--sp-3);background:#fff;border:2px solid #35254f26;border-radius:14px;grid-template-columns:36px 1fr auto;font-size:15px;font-weight:700;display:grid}.board-rows li.me{border-color:var(--ink);background:linear-gradient(180deg, #fff3c4, var(--sun))}.board-rows li.muted{padding:var(--sp-3);color:#6b5d80;text-align:center;display:block}.board-rows .rank{text-align:center;font-weight:800}.board-rows .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-rows b{font-variant-numeric:tabular-nums}.board-me{justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:15px;font-weight:800;display:flex}.sheet .pick{gap:var(--sp-1);flex-wrap:wrap;max-height:120px;display:flex;overflow-y:auto}.sheet .pick button{min-width:0;min-height:32px;padding:0 var(--sp-2);color:var(--ink);font-family:var(--display);background:#fff;border:2px solid #35254f40;border-radius:999px;font-size:14px;font-weight:700}.sheet .pick button.on{border-color:var(--ink);background:var(--sun)}.sheet .preview{text-align:center;font-size:20px;font-weight:800}.board-note{padding:var(--sp-2) var(--sp-3);text-align:center;background:#ffd84d59;border-radius:14px;margin:0;font-size:14px;font-weight:700}
