:root{color-scheme:dark;--bg:#090c16;--ink:#eff7ff;--muted:#7e91aa;--cyan:#42e7ff;--yellow:#f4ff65;--pink:#ff63ba;--line:#25334a;font-family:Arial,'Hiragino Kaku Gothic ProN',Meiryo,sans-serif;font-synthesis:none}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;height:100dvh;overflow:hidden}body{background:var(--bg);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button:disabled{opacity:.45;cursor:wait}button:active{transform:translateY(1px)}.screen{height:100%;padding:max(18px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left));position:relative;isolation:isolate;background:radial-gradient(ellipse at 65% 40%,#16294570,transparent 60%),#090c16;overflow:auto}.screen:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 56%,#263d5d1f 56%,#263d5d1f 56.2%,transparent 56.2%),repeating-linear-gradient(0deg,transparent 0,transparent 49px,#97cdfa06 50px);pointer-events:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:32px}.wordmark{font-style:italic;font-weight:950;font-size:23px;letter-spacing:-1px}.yellow{color:var(--yellow)}.eyebrow{font-size:11px;font-weight:800;letter-spacing:3px;color:var(--cyan)}.meta{font-size:12px;color:var(--muted);letter-spacing:1px}.ghost{background:transparent;border:1px solid var(--line);padding:10px 17px;font-size:13px;font-weight:700}.primary{background:var(--yellow);color:#10141b;min-height:48px;padding:14px 28px;font-weight:900;letter-spacing:2px;clip-path:polygon(0 0,100% 0,100% 72%,calc(100% - 14px) 100%,0 100%)}.primary .arrow{padding-left:35px}.secondary{min-height:44px;background:#162337;padding:12px 22px;font-weight:800;border:1px solid #334563}.home{display:flex;flex-direction:column;justify-content:space-between}.home-center{display:flex;align-items:center;gap:4%;height:75%}.home-copy{flex:1;min-width:0;padding-left:3%}.home h1{font-size:clamp(56px,9.5vw,130px);font-style:italic;line-height:.84;letter-spacing:-.055em;margin:22px 0}.home h1 span{display:block}.home h1 .rush{-webkit-text-stroke:1px #d5e9ff;color:transparent;margin-left:9%}.home .tagline{color:#a8b8ca;font-size:13px;letter-spacing:3px;margin:20px 0 25px}.home-art{width:41%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.reactor{width:min(32vw,340px);aspect-ratio:1;position:relative;border:1px solid #3b789070;border-radius:50%;background:radial-gradient(circle,#4fefff20 0,transparent 55%);transform:rotate(-18deg)}.reactor:before{content:'';position:absolute;inset:9%;border:18px solid #25495b;border-left-color:var(--cyan);border-bottom-color:var(--cyan);border-radius:50%;box-shadow:0 0 40px #40e7ff18}.reactor:after{content:'';position:absolute;inset:24%;border:2px solid var(--yellow);transform:rotate(45deg);box-shadow:0 0 30px #f4ff6515}.reactor .vr{position:absolute;inset:0;display:grid;place-items:center;font-weight:950;font-style:italic;font-size:clamp(40px,7vw,92px);color:white;transform:rotate(18deg);text-shadow:5px 5px 0 #42e7ff50}.orbit-label{position:absolute;bottom:5%;right:5%;font:11px monospace;color:var(--cyan);line-height:1.8;letter-spacing:2px}.footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;font-size:11px;color:var(--muted);letter-spacing:1px}.footer button{background:transparent;color:#b9c7d8;font-size:12px}.select-content{display:grid;grid-template-columns:minmax(230px,.95fr) 1.1fr;gap:5%;height:calc(100% - 54px);align-items:center;max-width:1080px;margin:auto}.jacket{aspect-ratio:1.3;max-height:100%;position:relative;overflow:hidden;background:repeating-linear-gradient(135deg,transparent 0,transparent 35px,#54dcff12 36px,#54dcff12 37px),linear-gradient(140deg,#112a45,#0b101e 60%,#28143d);border:1px solid #3b6c86;display:flex;flex-direction:column;justify-content:space-between;padding:24px;box-shadow:10px 10px 0 #182235}.jacket:before{content:'';position:absolute;width:60%;aspect-ratio:1;border:25px solid var(--cyan);border-bottom-color:var(--yellow);border-radius:50%;left:40%;top:-15%;opacity:.8;transform:rotate(-35deg)}.jacket:after{content:'';position:absolute;inset:33% -20% auto;height:13px;background:var(--pink);transform:rotate(-35deg);box-shadow:0 23px 0 #a068ff80}.jacket>div{z-index:1}.jacket .album-title{font-style:italic;font-weight:950;font-size:clamp(24px,4.4vw,56px);line-height:.95;letter-spacing:-1px;text-shadow:3px 3px 0 #090c16}.jacket .album-title span{display:block}.jacket .small{font-size:10px;letter-spacing:3px;color:#8aaabe;margin-top:12px}.song-details h2{font-style:italic;font-weight:900;font-size:clamp(22px,3.1vw,44px);margin:9px 0 4px;letter-spacing:-1px}.song-details .artist{font-size:12px;color:var(--muted);margin-bottom:16px}.song-data{display:flex;gap:25px;margin:14px 0}.song-data b{font-size:21px}.song-data small{display:block;font-size:10px;letter-spacing:2px;color:var(--muted);margin-bottom:4px}.difficulty{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;background:#fff3660b;border-left:3px solid var(--yellow);margin:14px 0}.difficulty strong{font-size:14px;letter-spacing:3px;color:var(--yellow)}.difficulty b{font-size:27px;font-style:italic}.best{display:flex;justify-content:space-between;align-items:center;margin:14px 0}.best span{font-size:11px;color:var(--muted)}.best strong{font-variant-numeric:tabular-nums;font-size:24px}.song-details .primary{width:100%}.select-foot{font-size:10px;color:var(--muted);margin:10px 0 0}.settings-content{max-width:950px;margin:18px auto;display:grid;grid-template-columns:1fr 1fr;gap:14px 35px}.setting{padding:10px 0;border-bottom:1px solid var(--line)}.setting-label{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700}.setting output{color:var(--cyan);font-variant-numeric:tabular-nums}.setting small{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.6}.setting input[type=range]{width:100%;accent-color:var(--cyan);height:26px;margin:4px 0 0}.setting input[type=checkbox]{width:22px;height:22px;accent-color:var(--cyan)}.settings-footer{max-width:950px;margin:8px auto;color:var(--muted);font-size:11px;line-height:1.7}.play{position:relative;height:100%;background:#070912;overflow:hidden;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));touch-action:none;overscroll-behavior:none}.play canvas{display:block;width:100%;height:100%;touch-action:none}.hud{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.hud small{font-size:10px;letter-spacing:2px;color:var(--muted);display:block}.hud .score{font-size:30px;font-weight:900;letter-spacing:1px;font-variant-numeric:tabular-nums}.hud-title{text-align:center;font-size:13px;font-weight:800;padding-top:5px}.hud-title small{margin-top:5px;color:var(--yellow);font-size:10px}.pause{pointer-events:auto;min-width:48px;height:44px;background:#172135b0;border:1px solid #354a61;font-size:20px}.progress{position:absolute;bottom:0;left:0;width:100%;height:3px;background:#193042}.progress i{height:100%;display:block;background:var(--cyan);width:0}.overlay{position:fixed;z-index:5;inset:0;background:#060a14e8;backdrop-filter:blur(10px);display:grid;place-items:center;padding:20px;overflow:auto}.modal{width:min(600px,100%);text-align:center}.modal h2{font-style:italic;font-size:32px;letter-spacing:4px;margin:12px 0}.modal p{font-size:13px;color:#9aadc5;line-height:1.8}.modal-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.guide-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:20px;text-align:left}.guide-grid strong{display:block;font-size:12px;margin:12px 0 8px}.guide-grid p{font-size:11px;line-height:1.6;margin:0}.note-icon{height:12px;box-shadow:0 2px 0 #fff9 inset;background:var(--cyan);margin:10px 0}.result-main{display:grid;grid-template-columns:1fr 1fr;gap:6%;max-width:1000px;height:calc(100% - 42px);align-items:center;margin:auto}.result-title{font-size:14px;letter-spacing:2px;color:var(--muted)}.result-score{font-weight:950;font-style:italic;font-size:clamp(44px,7vw,85px);line-height:1.1;letter-spacing:-3px;font-variant-numeric:tabular-nums}.rank{font-size:14px;color:var(--yellow);font-weight:900;letter-spacing:4px;margin:12px 0}.result-meta{display:flex;gap:25px;margin:18px 0}.result-meta b{display:block;font-size:26px;margin-top:4px}.result-meta span{font-size:11px;color:var(--muted)}.judgments{margin-bottom:18px}.judgment{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;font-weight:700}.judgment:first-child{color:var(--yellow)}.judgment:last-child{color:var(--pink)}.result-actions{display:flex;gap:10px}.result-actions button{flex:1;padding:12px;font-size:12px}.new-best{font-size:11px;color:var(--cyan);letter-spacing:3px;min-height:16px}.error{color:#ff8aac!important}.loading{position:fixed;inset:0;z-index:10;background:#090c16ed;display:grid;place-items:center;text-align:center}.loading strong{display:block;font-style:italic;letter-spacing:3px;font-size:26px}.loading p{color:var(--muted);font-size:12px}#rotate{display:none;position:fixed;inset:0;background:radial-gradient(circle at center,#162d45,#090c16 70%);z-index:50;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}#rotate strong{font-size:22px}#rotate p{font-size:13px;color:var(--muted);line-height:1.9}#rotate>span{font-style:italic;font-size:28px;font-weight:900;margin-top:50px}.rotate-icon{font-size:80px;color:var(--cyan);margin-bottom:25px}#toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:100;max-width:85%;width:max-content;padding:12px 20px;background:#24344c;color:white;border:1px solid #577a9f;font-size:13px;display:none}.no-effects *{animation:none!important;transition:none!important}.no-effects .overlay{backdrop-filter:none}@media(orientation:portrait){#rotate{display:flex}}@media(max-height:450px){.screen{padding-top:13px;padding-bottom:13px}.topbar{height:27px}.home h1{font-size:clamp(48px,9vw,86px);margin:15px 0}.home .tagline{margin:14px 0 18px}.home .primary{min-height:44px;padding:12px 26px}.footer{padding-top:8px;font-size:10px}.select-content{height:calc(100% - 36px);gap:4%;grid-template-columns:1fr 1.25fr;max-width:860px}.jacket{aspect-ratio:1.4;padding:20px}.song-details h2{font-size:26px;margin:5px 0 3px}.song-details .artist{margin-bottom:8px;font-size:10px}.song-data{margin:8px 0;gap:22px}.song-data b{font-size:18px}.difficulty{margin:7px 0;padding:5px 12px}.difficulty b{font-size:22px}.best{margin:8px 0}.best strong{font-size:21px}.song-details .primary{min-height:42px;padding:10px 20px}.select-foot{font-size:10px;margin-top:7px}.settings-content{margin:8px auto;gap:2px 30px}.setting{padding:5px 0}.settings-footer{font-size:10px}.setting small{font-size:10px}.setting-label{font-size:12px}.result-meta{margin:12px 0}.judgment{padding:6px 0}.modal h2{font-size:26px}.modal-actions{margin-top:16px}.guide-grid{margin-top:10px}}@media(min-width:1100px){.screen{padding:28px 5%}.home-copy{padding-left:6%}.home-center{max-width:1300px;margin:auto;width:100%}}
.home{overflow:hidden}.home-center{height:auto;flex:1;min-height:0}.reactor{width:min(32vw,58vh,340px)}.orbit-label{right:0;bottom:0}.track-nav{display:flex;justify-content:space-between;margin:8px 0}
