@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}body{margin:0;background:#110c23;color:#f6f2ff;font-family:'Space Grotesk',Arial,sans-serif;min-height:100svh;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d5ff79;outline-offset:5px}canvas{position:fixed;inset:0;width:100%;height:100%;touch-action:none}.vignette{position:fixed;inset:0;background:linear-gradient(90deg,#100b20b8,transparent 80%);pointer-events:none}header{position:relative;z-index:2;padding:32px 5%;display:flex;justify-content:space-between;align-items:center}.logo{color:#d3ff7c;font-weight:700;font-size:38px;text-decoration:none;letter-spacing:-3px;display:flex;align-items:center;gap:17px}.logo span{font-size:9px;line-height:1.5;letter-spacing:2px;max-width:95px;color:#eee7ff}.top{display:flex;gap:28px;align-items:center;font-size:10px;letter-spacing:1.5px}.live{color:#d0ff83}#sound,.secondary,#pause{border:1px solid #ffffff30;background:transparent;color:#eee5ff;border-radius:30px;padding:11px 17px;font-size:10px;letter-spacing:1px}main{position:relative;z-index:1;margin:5vh 0 0 9%;width:52%;pointer-events:none}main button{pointer-events:auto}.eyebrow{font-size:10px;letter-spacing:3px;color:#c1b5db}h1{font-size:clamp(64px,7.7vw,122px);line-height:.94;letter-spacing:-6px;margin:25px 0;font-weight:700}h1 em{font-style:normal;color:#d5ff79}p{color:#b8adc9;font-size:16px;line-height:1.7}.actions{display:flex;align-items:center;gap:25px;margin-top:28px}.primary{border:0;background:#d5ff79;color:#202517;padding:19px 27px;border-radius:7px;font-size:13px;font-weight:700;letter-spacing:1px;box-shadow:0 8px 40px #baff3618}.primary span{padding-left:36px;font-size:20px}.primary:hover{background:#e5ffad;transform:translateY(-2px)}.free{font-size:10px;color:#b1a5c5;line-height:1.7}.modes{display:flex;gap:8px;margin-top:40px}.modes button{background:#ffffff05;border:1px solid #ffffff1c;color:#8b7da3;padding:14px 18px;border-radius:7px;font-size:10px;display:flex;gap:12px;align-items:center}.modes b{color:#d0c7df;font-size:12px;font-weight:500}.modes .selected{border-color:#d5ff7970;background:#d5ff790d;color:#d5ff79}.modes .selected b{color:#d5ff79}.how{display:flex;gap:25px;margin-top:25px;font-size:8px;color:#92859f;letter-spacing:1px}.how b{color:#c8bbd8}footer{position:absolute;bottom:25px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#8b7e9e;pointer-events:none}footer b{color:#d5ff79;margin-left:15px}#mascot{position:absolute;right:13%;top:29%;width:260px;height:310px;pointer-events:none}.orbit{position:absolute;width:420px;height:420px;border:1px solid #a28cdd24;border-radius:50%;left:-80px;top:-50px;box-shadow:0 0 90px #9068ee16,inset 0 0 70px #9e63fb0a}.goblin{position:absolute;left:25px;top:48px;width:210px;height:210px;transform:rotate(-12deg);animation:bob 4s ease-in-out infinite;filter:drop-shadow(0 20px 30px #0009)}.head{position:absolute;inset:10px 13px;background:radial-gradient(at 35% 20%,#d6f796,#83ad52 55%,#426c38);border-radius:45% 45% 48% 48%;border:3px solid #bdde7c;box-shadow:inset -13px -12px 22px #234b37aa}.ear{position:absolute;background:#97bf64;width:86px;height:85px;top:22px;border:3px solid #bedb8b;z-index:-1}.left{left:-47px;clip-path:polygon(0 0,100% 45%,95% 100%,30% 65%)}.right{right:-47px;clip-path:polygon(100% 0,70% 65%,5% 100%,0 45%)}.eyes{position:absolute;top:43px;left:9px;right:9px;display:flex;justify-content:space-around;background:#261b36;border:5px solid #8e6ac3;border-radius:23px;box-shadow:0 0 18px #b275ff;transform:rotate(4deg)}.eyes i{font-size:50px;font-style:normal;line-height:58px;color:#d5adff;text-shadow:0 0 10px #c983ff}.mouth{position:absolute;top:113px;left:41px;background:#242033;width:96px;height:56px;border-radius:15px 15px 45px 45px;color:#ef92bc;text-align:center;font-size:48px;line-height:50px;transform:rotate(-9deg)}.mouth small{position:absolute;top:-5px;left:20px;font-size:16px;color:#fff6da;line-height:20px}.bubble{position:absolute;right:-100px;top:-15px;transform:rotate(7deg);padding:16px 20px;border:1px solid #b69bc450;background:#29203be0;border-radius:20px 20px 20px 0;color:#e0cfee;font-size:12px;line-height:1.5}.tag{position:absolute;bottom:-22px;width:100%;text-align:center;font-size:8px;letter-spacing:2px;color:#a89abf}.tag span{color:#d5ff79;font-size:16px}#hud{position:absolute;top:100px;left:6%;right:6%;z-index:3;display:flex;justify-content:space-between;align-items:center;pointer-events:none}#hud button{pointer-events:auto}#hud small{display:block;font-size:9px;letter-spacing:2px;color:#ab9cbe;margin-bottom:8px}#hud strong{font-size:29px;font-weight:500}#hud .center{text-align:center}#shields{color:#d5ff79;font-size:20px!important;letter-spacing:5px}#combo{font-style:normal;color:#d5ff79;font-size:18px;margin-left:15px}#hint{position:absolute;bottom:70px;text-align:center;width:100%;font-size:11px;color:#b7a6ce;pointer-events:none}#toast{position:absolute;top:40%;left:0;width:100%;text-align:center;font-size:35px;font-weight:bold;color:#d5ff79;pointer-events:none;text-shadow:0 0 30px #a6f445;z-index:4}#modal{position:fixed;inset:0;background:#100b23c9;backdrop-filter:blur(15px);display:grid;place-items:center;z-index:6}.modalbox{text-align:center;padding:45px;background:#211832;border:1px solid #8c71b14f;border-radius:24px;max-width:90vw}h2{font-size:42px;letter-spacing:-2px;margin:20px 0}#resultScore{font-size:64px;color:#d5ff79}.secondary{display:block;margin:20px auto 0}body.playing main,body.playing #mascot{display:none}body.playing .vignette{background:none}[hidden]{display:none!important}@keyframes bob{50%{transform:translateY(-18px) rotate(-6deg)}}@media(max-width:700px){header{padding:22px 6%}.logo{font-size:30px}.logo span{font-size:7px}.live{display:none}.top{gap:0}main{margin:8vh 7% 0;width:86%}h1{font-size:69px;letter-spacing:-4px}main p{font-size:14px}.eyebrow{font-size:8px;letter-spacing:2px}#mascot{right:-40px;top:32%;transform:scale(.58);transform-origin:right center;opacity:.8;z-index:0}.bubble,.tag{display:none}.modes{gap:5px;margin-top:34px}.modes button{padding:13px 12px;gap:7px}.how{gap:14px;font-size:7px}footer{font-size:6px;letter-spacing:1px}footer span:last-child{display:none}#hud{top:100px;left:5%;right:5%;flex-wrap:wrap;gap:20px}#hud strong{font-size:23px}#shields{font-size:11px!important;letter-spacing:2px}#hud small{font-size:7px}#pause{padding:8px}#hint{font-size:9px}.actions{gap:16px}.free{font-size:9px}}@media(max-height:740px) and (min-width:701px){main{margin-top:2vh}h1{font-size:86px}.modes{margin-top:25px}.actions{margin-top:20px}#mascot{top:25%}}

/* Arcade finish */
.primary{background:linear-gradient(135deg,#e7ffab,#c8f574);box-shadow:0 0 0 1px #e0ff9b44,0 8px 35px #baff362a;transition:transform .18s,box-shadow .18s}.primary:hover{box-shadow:0 0 35px #caff6540}.logo{filter:drop-shadow(0 0 15px #d5ff7920)}.head{box-shadow:inset -13px -12px 22px #234b37aa,0 0 60px #b884ff30}.orbit:after{content:'';position:absolute;inset:-22px;border:1px dashed #b58be52a;border-radius:50%;animation:spin 60s linear infinite}.bubble{box-shadow:0 10px 40px #0004}#toast{font-size:clamp(26px,4vw,56px);letter-spacing:-1px;transition:transform .1s}#impactFlash{position:fixed;inset:0;pointer-events:none;z-index:5;opacity:0;background:radial-gradient(ellipse at center,transparent 35%,#b579ff70);transition:opacity .15s}#impactFlash.bad{background:radial-gradient(ellipse at center,transparent 40%,#ed82b04d)}#feverBanner{position:absolute;top:185px;width:100%;text-align:center;font-size:11px;color:#e7c5ff;letter-spacing:4px;pointer-events:none;text-shadow:0 0 20px #c388ff;animation:fever 1s ease-in-out infinite alternate}#comboMeter{position:absolute;bottom:95px;left:50%;transform:translateX(-50%);width:180px;height:3px;background:#ffffff15;border-radius:4px;pointer-events:none}#comboFill{display:block;width:0;height:100%;background:#d5ff79;box-shadow:0 0 14px #d5ff79;transition:width .15s}body.fever #comboFill{background:#d3a4ff;box-shadow:0 0 18px #c88aff}body.fever #shields{color:#e7c7ff}#hud strong{font-variant-numeric:tabular-nums}#score.bump{animation:scorebump .18s ease-out}.playing canvas{cursor:crosshair}.playing .vignette{box-shadow:inset 0 0 100px #a767ff12}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fever{to{opacity:.55}}@keyframes scorebump{50%{transform:scale(1.18);color:#e7c5ff}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:700px){#feverBanner{top:192px;font-size:8px;letter-spacing:2px}#comboMeter{bottom:90px;width:120px}}

.top{gap:12px}#musicToggle{border:1px solid #d5ff7940;background:#d5ff7909;color:#d5ff79;border-radius:30px;padding:11px 14px;font-size:10px;letter-spacing:1px}#audioSettings{position:relative}#audioSettings summary{cursor:pointer;list-style:none;font-size:23px;color:#c9b7e5;padding:0 5px}#audioSettings summary::-webkit-details-marker{display:none}.audioPanel{position:absolute;right:0;top:40px;width:275px;background:#20172ff5;border:1px solid #a880d84f;box-shadow:0 15px 50px #0008;border-radius:16px;padding:22px;letter-spacing:0;z-index:10}.audioPanel .audioLabel{color:#bca3d7;font-size:9px;letter-spacing:2px;margin-bottom:14px}.audioPanel b{display:block;font-size:15px;overflow-wrap:anywhere}.audioPanel small{display:block;color:#a99abd;font-size:10px;line-height:1.7;margin:6px 0 16px}.audioPanel label{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin:15px 0;gap:15px}.audioPanel input[type=range]{width:140px;accent-color:#d5ff79}.audioPanel .songUpload{display:block;position:relative;border:1px dashed #cda6ed66;padding:12px;text-align:center;border-radius:8px;cursor:pointer;color:#ddc1f7}.songUpload input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}#resetTrack{background:none;border:0;color:#d5ff79;text-decoration:underline;font-size:11px;padding:0}.audioPanel :focus-visible{outline:2px solid #d5ff79}header{z-index:7}#audioSettings[open] summary{color:#d5ff79}@media(max-width:700px){.top{gap:7px}#musicToggle,#sound{padding:9px 8px;font-size:8px;letter-spacing:0}.logo{gap:10px}.logo span{max-width:65px;font-size:6px}#audioSettings summary{font-size:20px}.audioPanel{right:-5px;width:260px}.logo{font-size:27px}}
.resultGoblin{height:128px;width:190px;position:relative;margin:0 auto 10px;pointer-events:none}.resultGoblin .goblin{left:24px;top:0;transform-origin:top left;animation:resultWiggle 2.5s ease-in-out infinite;transform:scale(.65) rotate(-8deg)}.resultGoblin .head{box-shadow:inset -13px -12px 22px #234b37aa,0 0 40px #b984ff40}.modalbox{max-height:94svh;overflow-y:auto;padding:30px 45px}.modalbox h2{margin:14px 0}.modalbox #resultScore{line-height:1.1;text-shadow:0 0 30px #b4ee4520}@keyframes resultWiggle{0%,100%{transform:scale(.65) rotate(-8deg)}50%{transform:scale(.65) translateY(-8px) rotate(5deg)}}@media(max-height:700px){.resultGoblin{height:98px;width:160px}.resultGoblin .goblin{animation:none;transform:scale(.5);left:25px}.modalbox{padding:24px 32px}.modalbox h2{font-size:30px}.modalbox #resultScore{font-size:48px}}

.difficultyPicker{margin-top:20px;pointer-events:auto}.difficultyPicker>span{font-size:8px;letter-spacing:2px;color:#a899bd}.difficultyRow{display:flex;gap:8px;margin-top:9px}.difficultyRow button{border:1px solid #ffffff25;color:#b7a8ca;background:#ffffff04;border-radius:6px;padding:10px 14px;font-size:11px}.difficultyRow small{font-size:8px;color:#8f819f;margin-left:8px}.difficultyRow button.selected{border-color:#c69ced;color:#e5c8ff;background:#a970d315}.difficultyRow button.selected small{color:#cfa9ea}#homeBest,#challengeNote{font-size:8px;color:#a499b7;letter-spacing:1px;margin-top:10px}#challengeNote{color:#d5ff79}.how{margin-top:17px}.modes{margin-top:27px}main{margin-top:2vh}h1{font-size:clamp(64px,7vw,110px)}#resultStats{font-size:11px;color:#bfa8d3;margin:14px 0}.modalbox{width:470px;max-width:94vw}.shareTools{margin:20px auto;max-width:350px}.playerName{display:flex;align-items:center;gap:12px;font-size:8px;letter-spacing:1px;color:#bba8d0}.playerName input{min-width:0;flex:1;border:1px solid #a983c950;background:#130e20;color:#f4e9ff;border-radius:7px;padding:10px;font:inherit;font-size:12px;letter-spacing:0}.shareButtons{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;justify-content:center}.shareButtons button{border:1px solid #b390d55c;border-radius:7px;background:#a571d513;color:#e0c5fa;padding:11px 10px;font-size:9px;cursor:pointer}.shareButtons button:first-child{border-color:#d5ff7970;color:#d5ff79}#shareStatus{font-size:10px;color:#b4a4c7;line-height:1.5;margin:10px 0;min-height:15px}#scorePreview summary{font-size:10px;color:#b49cc8;cursor:pointer}#scoreCard{position:static!important;display:block;width:100%;height:auto;margin-top:15px;border-radius:12px;touch-action:auto}.resultGoblin{height:100px}.resultGoblin .goblin{animation:none;transform:scale(.5);left:38px}.modalbox h2{font-size:33px}body{overflow-y:auto}body.playing{overflow:hidden}footer{position:fixed}main{padding-bottom:75px}#modal{z-index:10}.modalbox{padding:25px 32px}.modalbox #resultScore{font-size:56px}@media(max-width:700px){main{margin-top:2vh}h1{font-size:57px}.actions{margin-top:18px}.modes{margin-top:22px}.difficultyPicker{margin-top:16px}.difficultyRow button{padding:9px 12px}.difficultyRow small{margin-left:5px}.modalbox{padding:22px}.modalbox h2{font-size:28px}.shareTools{margin:14px auto}}@media(max-height:760px) and (min-width:701px){main{margin-top:0}h1{font-size:72px;margin:20px 0}.modes{margin-top:20px}.difficultyPicker{margin-top:14px}.how{margin-top:12px}}
#manualShare{display:block;width:100%;min-height:90px;border:1px solid #ad8dc44d;background:#140d20;border-radius:8px;color:#e3d1f0;padding:10px;font-size:11px;resize:vertical}.modalbox>p{font-size:12px}
