*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#17142e;color:#fff;font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:0;touch-action:manipulation}button:active{translate:0 2px}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #fff1a9;outline-offset:5px}svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#app{width:100%;height:100%;height:100dvh;position:relative;isolation:isolate}.scene{position:absolute;inset:0;z-index:-2;background:#1c2142 url('assets/background.webp') center/cover no-repeat}.scene:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#19112b30,#15122bbf)}.hud{position:absolute;z-index:2;top:max(16px,env(safe-area-inset-top));left:50%;translate:-50% 0;width:min(680px,calc(100% - 28px));display:flex;align-items:center;gap:13px}.icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;flex-shrink:0;border:2px solid #c3a4e877;background:linear-gradient(#67518f,#36274e);box-shadow:0 4px 0 #100c24;color:#f0e0ff}.score-counter{flex:1;text-shadow:0 2px #392653}.score-counter small,.round-counter small{display:block;font-size:9px;font-weight:900;letter-spacing:2px;color:#d4c0e4}.score-counter strong{font-size:34px;font-weight:1000;line-height:1}.round-counter{text-align:center;min-width:38px}.round-counter strong{font-size:30px;color:#ffe095;line-height:1}.play-area{position:absolute;inset:98px 20px max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:23px}.board{position:relative;width:min(480px,calc(100vw - 40px),calc(100dvh - 300px));aspect-ratio:1;flex-shrink:0;border-radius:50%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:11px;padding:15px;background:linear-gradient(140deg,#5b5f7e,#1b1e36 48%,#47405c);border:3px solid #8d7fa96b;box-shadow:0 13px 0 #0d1123,0 18px 0 #332c50,0 25px 40px #050815a6,inset 0 3px 2px #ccc7e655}.pad{position:relative;padding:0;overflow:hidden;box-shadow:inset 0 4px 8px #fff8,inset 0 -12px 19px #0005,0 3px 0 #080b1f;transition:filter .06s,scale .06s;user-select:none}.pad:before{content:'';position:absolute;inset:8% 8% 52%;border-radius:50%;background:linear-gradient(#ffffff55,transparent);pointer-events:none}.pad[data-color="0"]{background:linear-gradient(140deg,#fa6479,#ca264c);border-radius:100% 15% 15% 15%;--glow:#ff789a}.pad[data-color="1"]{background:linear-gradient(220deg,#56b9ff,#1f53bd);border-radius:15% 100% 15% 15%;--glow:#69bcff}.pad[data-color="2"]{background:linear-gradient(30deg,#ffd67b,#cf8b1c);border-radius:15% 15% 15% 100%;--glow:#ffe09c;color:#6b470c}.pad[data-color="3"]{background:linear-gradient(310deg,#63e5b3,#159f73);border-radius:15% 15% 100% 15%;--glow:#7bffd4}.pad span{position:absolute;font-weight:1000;font-size:clamp(13px,2vw,20px);text-shadow:0 2px 3px #0004;opacity:.85;pointer-events:none}.pad[data-color="0"] span{top:23%;left:28%}.pad[data-color="1"] span{top:23%;right:28%}.pad[data-color="2"] span{bottom:20%;left:29%}.pad[data-color="3"] span{bottom:20%;right:29%}.pad.active{filter:brightness(1.65) saturate(1.08);scale:.978;box-shadow:inset 0 0 40px #fff8,0 0 35px var(--glow)}.pad.active span{opacity:1}.pad:disabled{cursor:default}.pad:focus-visible{outline-offset:-7px}.center{position:absolute;inset:34%;border-radius:50%;border:7px solid #24223b;background:radial-gradient(circle at 30% 20%,#655e7e,#27253b 80%);z-index:2;box-shadow:0 8px 15px #07071899;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:none}.center img{width:39%;height:35%;object-fit:contain}.center strong{font-size:clamp(15px,3vw,26px);font-weight:1000;color:#ffe099;line-height:1}.center small{font-size:clamp(6px,.9vw,9px);letter-spacing:1px;color:#d5c1e6;font-weight:1000;margin-top:3px}.turn-panel{width:min(400px,100%);text-align:center}.caption{font-size:clamp(19px,3vw,24px);font-weight:1000;margin:0;color:#ffe6a3;text-shadow:0 3px #3b2854;min-height:28px}.subtitle{font-size:11px;color:#d3bde9;margin:7px 0 16px;min-height:14px}.progress-label{display:flex;justify-content:space-between;font-size:9px;font-weight:900;color:#c5b1db;margin-bottom:7px;letter-spacing:.5px}.progress{height:7px;border-radius:10px;background:#100d2688;box-shadow:0 0 0 1px #b599d333;overflow:hidden}#progressFill{height:100%;width:0;background:linear-gradient(90deg,#ff8a9e,#7bc8ff,#ffe28a,#7eebbc);border-radius:10px}.assist-row{display:flex;gap:13px;justify-content:center;margin-top:17px}.assist-row button{min-width:135px;display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 14px;border-radius:20px;border:1px solid #cbb3e94f;background:linear-gradient(#5f4a88,#3e2e62);box-shadow:0 4px 0 #211535;color:#ead8ff}.assist-row button:disabled{opacity:.38;cursor:default}.assist-row span{font-size:9px;font-weight:1000;letter-spacing:.7px;text-align:left}.assist-row small{display:block;font-size:12px;color:#ffe2a0;margin-top:3px}.keyboard-hint{font-size:9px;color:#a891c3;margin:14px 0 0;line-height:1.7}.overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 30%,#55328285,transparent 70%),linear-gradient(#19132dd9,#151025f5);backdrop-filter:blur(5px);overflow:auto;overscroll-behavior:contain}.launch{width:min(870px,100%);text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;padding-top:40px}.launch-top{position:absolute;top:0;width:100%;display:flex;justify-content:space-between;align-items:center}.brand{font-size:12px;font-weight:900;color:#eadcf4}.brand span{color:#f78ed6}.small-icon{width:34px;height:34px;border-width:1px}.small-icon svg{width:20px;height:20px}.logo{width:min(350px,80vw);height:clamp(190px,31dvh,280px);object-fit:contain;filter:drop-shadow(0 10px 15px #06061966);display:block;margin:auto}.kicker{font-size:9px;font-weight:1000;letter-spacing:3px;color:#ffe0a0;margin:12px 0 14px}.launch-controls{width:min(350px,100%);display:flex;flex-direction:column;align-items:center}.difficulty{display:flex;gap:4px;border-radius:28px;background:#100b27b3;box-shadow:inset 0 2px 4px #05030b88;padding:5px}.difficulty button{min-width:82px;padding:10px 13px;background:transparent;color:#bca5d3;border-radius:22px;font-size:11px;letter-spacing:.8px;font-weight:1000}.difficulty button[aria-pressed=true]{background:linear-gradient(#cfb8f8,#9d78d8);color:#30144e;box-shadow:0 2px 0 #6f479e}.mode-note{font-size:10px;color:#ceb6e5;margin:13px 0 9px}.tempo{font-size:9px;font-weight:900;letter-spacing:.9px;border:1px solid #ccb2e644;background:#b78be712;border-radius:20px;padding:8px 15px;color:#d5bdea;margin-bottom:23px}.tempo[aria-pressed=true]{color:#ffe1a0;border-color:#ffe1a077;background:#d69c4022}.play-orb{width:115px;height:115px;border-radius:50%;background:radial-gradient(ellipse at 30% 15%,#ebffc8,transparent 60%),linear-gradient(#a7ed79,#4dbd63);border:4px solid #d4ffb7;color:#234b36;box-shadow:0 7px 0 #307747,0 10px 0 #101a28,0 0 0 12px #c8d09213,0 0 60px #c3ed861d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;flex-shrink:0}.triangle{width:0;height:0;border-top:17px solid transparent;border-bottom:17px solid transparent;border-left:27px solid #2e5639;margin-left:7px;filter:drop-shadow(0 2px #efffd680)}.play-orb>span:last-child{font-size:11px;font-weight:1000;letter-spacing:1.3px}.gold-button{display:flex;align-items:center;justify-content:center;gap:9px;width:270px;max-width:100%;min-height:54px;border:3px solid #ffefbc;border-radius:29px;background:linear-gradient(#ffe4a4,#f1bb61);color:#63432b;box-shadow:0 5px 0 #9b663b;font-size:14px;font-weight:1000;letter-spacing:.8px}.gold-button.compact{min-height:38px;font-size:11px;letter-spacing:0;margin-top:24px}.record{font-size:10px;color:#e5bc81;font-weight:800;margin:24px 0 0}.launch-controls>.keyboard-hint{margin-top:13px}.pause-layout{display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center;width:min(750px,100%)}.avatar-ring{display:inline-flex;border:2px solid #cda7ff;border-radius:50%;padding:7px;background:#704e98;box-shadow:0 0 0 8px #c08eff14}.avatar{border-radius:50%;object-fit:cover;width:120px;height:120px}h2{font-size:clamp(25px,4vw,38px);font-weight:1000;letter-spacing:-1px;margin:9px 0 12px;line-height:1.13;text-shadow:0 3px #2d1c43}.pause-art>p:last-child{font-size:12px;color:#ceb7df;max-width:320px;line-height:1.6;margin:0 auto}.pause-actions{display:flex;flex-direction:column;align-items:center;gap:30px}.utility-row{display:flex;gap:38px;align-items:center;justify-content:center}.round-action{background:transparent;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0;color:#dcc2f3;min-width:55px}.round-action svg{box-sizing:content-box;width:25px;height:25px;border:2px solid #c5a5e14a;border-radius:50%;padding:10px}.round-action small{font-size:10px;font-weight:700;color:#c4a9dc}.result-layout{width:min(850px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.reward{width:clamp(130px,22dvh,190px);height:clamp(130px,22dvh,190px);object-fit:contain;filter:drop-shadow(0 12px 20px #07041366)}.result-art>.kicker{margin:18px 0 8px}.answer-review{display:flex;justify-content:center;gap:20px;margin-top:20px}.answer-review>div{display:flex;align-items:center;gap:6px;font-size:10px;color:#c4add9}.answer-review i{width:17px;height:17px;display:inline-block;border:1px solid #fff6;border-radius:50%;background:var(--color);box-shadow:0 2px 5px #0004}.answer-review strong{font-size:11px;color:#e1cdef}.result-actions{display:flex;flex-direction:column;align-items:center;width:min(360px,100%)}.hero-score{display:flex;flex-direction:column;align-items:center;margin:5px 0 18px}.hero-score small{font-size:9px;font-weight:900;letter-spacing:3px;color:#baa2ce}.hero-score strong{font-size:clamp(53px,9dvh,79px);line-height:1.1;color:#ffe39e;font-weight:1000;letter-spacing:-3px;text-shadow:0 4px #a36749}.result-stats{display:flex;align-items:center;justify-content:center;gap:24px}.result-stats>div{display:flex;flex-direction:column;gap:6px;min-width:98px}.result-stats strong{font-size:25px;color:#e7d4ff}.result-stats small{font-size:8px;color:#bda1d4;letter-spacing:1px}.result-stats>span{width:1px;height:32px;background:linear-gradient(transparent,#cbb1e355,transparent)}.result-actions>.record{margin:18px 0 20px}.text-button{padding:8px 6px;background:transparent;color:#d5bfeb;font:inherit;font-size:11px;margin-top:18px}.other-games{font-size:10px;color:#a58cba;margin-top:11px}body:not([data-screen=playing]) .hud,body:not([data-screen=playing]) .play-area{visibility:hidden}
@media(max-height:740px){.logo{height:190px}.launch{padding-top:35px;gap:5px}.kicker{font-size:8px;margin:9px 0 12px}.play-orb{width:100px;height:100px;gap:7px}.triangle{border-top-width:14px;border-bottom-width:14px;border-left-width:23px}.mode-note{margin:10px 0 8px}.tempo{margin-bottom:19px}.record{margin-top:19px}.gold-button.compact{margin-top:21px;min-height:35px}.reward{width:130px;height:130px}.result-layout{gap:5px}.hero-score{margin:4px 0 13px}.hero-score strong{font-size:57px}.result-art h2{font-size:28px}.result-art>.kicker{margin:13px 0 8px}.answer-review{margin-top:14px}.avatar{width:105px;height:105px}.play-area{inset:85px 18px 19px;gap:20px}.board{width:min(420px,calc(100vw - 36px),calc(100dvh - 290px));gap:9px;padding:12px}.subtitle{margin-bottom:13px}.assist-row{margin-top:14px}}
@media(max-height:600px) and (orientation:portrait){.overlay{padding:16px}.launch{padding-top:30px;gap:3px}.logo{height:155px}.launch-art>.kicker{font-size:7px;margin:8px 0 10px}.difficulty button{padding:8px 11px;min-width:77px}.mode-note{margin:9px 0 7px}.tempo{padding:7px 12px;margin-bottom:17px}.play-orb{width:88px;height:88px}.gold-button.compact{margin-top:19px;min-height:33px}.record{font-size:9px;margin-top:16px}.launch-controls>.keyboard-hint{font-size:8px;margin-top:10px}.play-area{inset:78px 17px 17px;gap:20px}.board{width:min(calc(100vw - 34px),calc(100dvh - 290px));padding:11px;gap:8px}.caption{font-size:18px;min-height:23px}.subtitle{font-size:10px;margin:5px 0 11px}.assist-row{gap:10px;margin-top:13px}.assist-row button{min-width:126px;padding:9px 12px;gap:8px}.assist-row span{font-size:8px}.assist-row small{font-size:11px}.turn-panel>.keyboard-hint{font-size:8px;margin-top:11px}.hud{gap:9px;top:13px}.icon{width:39px;height:39px}.small-icon{width:30px;height:30px}.score-counter strong{font-size:29px}.round-counter strong{font-size:27px}.reward{width:108px;height:108px}.result-art h2{font-size:25px}.hero-score strong{font-size:49px}.result-stats strong{font-size:21px}.gold-button{min-height:48px;font-size:13px}.result-actions>.record{margin:15px 0 17px}.text-button{margin-top:15px}.avatar{width:96px;height:96px}.pause-layout{gap:25px}.round-action svg{width:23px;height:23px;padding:9px}}
@media(max-height:560px) and (orientation:landscape){.overlay{padding:15px 30px}.launch{height:100%;display:grid;grid-template-columns:1fr 1fr;align-content:center;align-items:center;gap:35px;max-width:820px;padding-top:28px}.launch-top{top:0}.logo{height:min(230px,61dvh);width:100%}.launch-art>.kicker{margin-top:4px;font-size:8px}.launch-controls{width:100%}.difficulty button{min-width:75px;padding:8px 11px}.mode-note{margin:8px 0 7px;font-size:9px}.tempo{padding:6px 12px;font-size:8px;margin-bottom:17px}.play-orb{width:86px;height:86px;gap:6px}.triangle{border-top-width:13px;border-bottom-width:13px;border-left-width:21px}.play-orb>span:last-child{font-size:10px}.gold-button.compact{min-height:29px;margin-top:17px;font-size:10px}.record{font-size:9px;margin-top:15px}.launch-controls>.keyboard-hint{font-size:8px;margin-top:7px}.brand{font-size:10px}.small-icon{width:29px;height:29px}.small-icon svg{width:17px;height:17px}.play-area{inset:70px 30px 22px;max-width:800px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;justify-items:center;gap:38px}.board{width:min(300px,calc(100dvh - 109px));padding:11px;gap:8px}.turn-panel{width:100%}.caption{font-size:22px}.subtitle{font-size:11px;margin:8px 0 17px}.assist-row{gap:10px;margin-top:20px}.assist-row button{min-width:120px;padding:10px}.assist-row span{font-size:8px}.turn-panel>.keyboard-hint{font-size:8px;line-height:1.7}.hud{top:11px;max-width:700px}.icon{width:37px;height:37px}.small-icon{width:29px;height:29px}.score-counter strong{font-size:28px}.round-counter strong{font-size:26px}.center strong{font-size:21px}.pause-layout,.result-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;max-width:780px}.avatar{width:105px;height:105px}.pause-art h2,.result-art h2{font-size:28px}.pause-art>.kicker{font-size:8px}.pause-art>p:last-child{font-size:11px}.pause-actions{gap:26px}.round-action svg{width:23px;height:23px;padding:9px}.reward{width:128px;height:128px}.result-art>.kicker{font-size:8px;margin:12px 0 8px}.answer-review{margin-top:17px;gap:13px}.answer-review>div{font-size:9px}.answer-review strong{font-size:10px}.hero-score{margin:0 0 13px}.hero-score strong{font-size:54px}.result-stats strong{font-size:22px}.result-stats{gap:18px}.result-stats>div{min-width:93px}.result-actions>.record{margin:16px 0 18px}.gold-button{min-height:47px;font-size:13px}.text-button{margin-top:15px}.other-games{margin-top:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.center{pointer-events:auto}

.option-row{display:flex;justify-content:center;gap:8px}.option-row .tempo{margin-bottom:23px}.option-row #practiceMenu[aria-pressed=true]{color:#a8ffdc;border-color:#a8ffdc88;background:#4ea98b33}.result-tools{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:17px}.result-tools .text-button{margin-top:0;min-height:39px;padding:9px 12px;font-size:10px}.practice-action{border:1px solid #c8eec166;border-radius:22px;background:#8fcb9722;color:#d5ffcc}.pad.mistake{box-shadow:inset 0 0 0 4px #fff9,inset 0 0 35px #561633;filter:saturate(.5) brightness(.75)}body[data-practice=true] .score-counter strong{color:#9ce9cc}.board.milestone{box-shadow:0 13px 0 #0d1123,0 18px 0 #332c50,0 25px 40px #050815a6,0 0 45px #f8cd7855,inset 0 3px 2px #ccc7e655}@media(max-height:740px){.option-row .tempo{margin-bottom:19px}}@media(max-height:600px) and (orientation:portrait){.option-row .tempo{margin-bottom:17px;font-size:8px;padding:7px 10px}.result-tools{margin-top:13px;gap:8px}.result-tools .text-button{min-height:35px;padding:8px 10px;font-size:9px}}@media(max-height:560px) and (orientation:landscape){.option-row .tempo{margin-bottom:17px;font-size:8px;padding:6px 10px}.result-tools{margin-top:13px;gap:7px}.result-tools .text-button{font-size:9px;min-height:35px;padding:8px 9px}}
