*{margin:0;padding:0;box-sizing:border-box}body{background:#000;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{width:100vw;height:100vh;position:relative;background:#000}.esc-hint{position:fixed;bottom:10px;right:10px;color:#ffffff4d;font-size:12px;font-family:monospace;pointer-events:none}.mobile-movement{position:fixed;left:30px;bottom:30px;display:flex;gap:15px;z-index:1000}.move-btn{pointer-events:auto;width:90px;height:90px;border-radius:50%;border:3px solid rgba(255,255,255,.6);background:#fff3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;box-shadow:0 4px 15px #00000040;-webkit-tap-highlight-color:transparent;user-select:none;touch-action:none}.move-btn.active{background:#fffc;border-color:#ffffffe6;transform:scale(.92);box-shadow:0 2px 8px #0000004d}.move-btn .btn-icon{font-size:40px;font-weight:500;color:#000000d9}.mobile-actions{position:fixed;right:30px;bottom:30px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:15px;z-index:1000;pointer-events:none}.action-btn{pointer-events:auto;width:80px;height:80px;border-radius:50%;border:3px solid rgba(255,255,255,.6);background:#ffffff26;backdrop-filter:blur(10px);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;box-shadow:0 4px 20px #0003;-webkit-tap-highlight-color:transparent;user-select:none}.action-btn.active{background:#ffffffe6;border-color:#0000004d;transform:scale(.9);box-shadow:0 2px 10px #0000004d}.action-btn .btn-icon{font-size:28px;font-weight:700;line-height:1;margin-bottom:2px;color:#000}.action-btn .btn-label{font-size:10px;font-weight:700;letter-spacing:.5px;color:#000;text-transform:uppercase}.action-btn.active .btn-icon,.action-btn.active .btn-label{color:#000}.jump-btn{background:#64c8ff40;border-color:#64c8ffb3;grid-column:1 / 2;grid-row:1 / 2}.jump-btn.active{background:#64c8fff2}.dash-btn{background:#ffc86440;border-color:#ffc864b3;grid-column:2 / 3;grid-row:1 / 2}.dash-btn.active{background:#ffc864f2}.stomp-btn{background:#ff646440;border-color:#ff6464b3;grid-column:1 / 3;grid-row:2 / 3;width:100%;border-radius:15px}.stomp-btn.active{background:#ff6464f2}@media (orientation: landscape) and (max-height: 600px){.mobile-movement{left:25px;bottom:25px;gap:12px}.move-btn{width:75px;height:75px}.move-btn .btn-icon{font-size:34px}.mobile-actions{right:25px;bottom:25px;gap:12px}.action-btn{width:70px;height:70px}.action-btn .btn-icon{font-size:24px}.action-btn .btn-label{font-size:9px}}@media (min-width: 1024px){.mobile-movement,.mobile-actions{display:none}}.canvas-container{position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none;background:#000}.respawn-overlay{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1000}.respawn-content{text-align:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.respawn-title{font-size:1.2rem;font-weight:400;color:#000;margin:0;letter-spacing:.05em}.respawn-countdown{font-size:4rem;font-weight:300;color:#000;margin:10px 0;line-height:1}.respawn-subtitle{font-size:1.2rem;font-weight:400;color:#000;margin:0}@media (max-width: 768px){.respawn-title{font-size:1rem}.respawn-countdown{font-size:3rem}.respawn-subtitle{font-size:1rem}}.hud{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;padding:max(1rem,env(safe-area-inset-top,0) + .5rem) 1rem max(1rem,env(safe-area-inset-bottom,0) + .5rem) 1rem}.hud-top{display:flex;justify-content:flex-end;align-items:flex-start;gap:1rem}.score-display{text-align:left;flex-shrink:0}.score-label{font-size:.75rem;font-weight:600;color:#fff9;margin-bottom:.25rem;letter-spacing:.1em}.score-value{font-size:clamp(2rem,8vw,3rem);font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.8)}.pause-btn{pointer-events:auto;background:#00000026;border:2px solid rgba(0,0,0,.3);border-radius:12px;width:50px;height:50px;font-size:1.5rem;color:#000;cursor:pointer;backdrop-filter:blur(10px);transition:all .2s ease;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center}.pause-btn:hover{background:#00000040;border-color:#00000080}.pause-btn:active{background:#0003;transform:scale(.95)}.combo-display{font-size:clamp(.9rem,3.5vw,1.1rem);font-weight:600;color:#fa0;margin-top:.25rem;text-shadow:0 2px 8px rgba(255,170,0,.8)}.fade-meter-container{width:100%;max-width:200px;flex:1}.fade-meter-label{font-size:.75rem;font-weight:600;color:#888;margin-bottom:.5rem;text-align:center;letter-spacing:.1em}.fade-meter-bar{width:100%;height:8px;background:#ffffff1a;border-radius:10px;overflow:hidden}.fade-meter-fill{height:100%;transition:width .2s ease,background-color .3s ease;border-radius:10px}.death-notifications{position:fixed;top:20px;left:20px;z-index:1000;pointer-events:none;display:flex;flex-direction:column;gap:8px}.death-notification{position:relative;background:#000000bf;padding:12px 16px;border-radius:4px;font-family:Courier New,monospace;font-size:16px;color:#fff;text-shadow:2px 2px 0px rgba(0,0,0,.8);animation:deathNotificationFade 6s ease-out forwards;white-space:nowrap;border:2px solid rgba(255,255,255,.1);box-shadow:0 4px 12px #00000080}.death-message{display:inline-block}@keyframes deathNotificationFade{0%{opacity:0;transform:translate(-20px)}5%{opacity:1;transform:translate(0)}85%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-10px)}}@media (max-width: 768px){.death-notifications{top:10px;left:10px}.death-notification{font-size:13px;padding:8px 12px}}@media (max-width: 480px){.death-notification{font-size:11px;padding:6px 10px}}.queue-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.queue-content{background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:20px;padding:40px;max-width:400px;text-align:center;animation:slideUp .5s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.queue-icon{font-size:64px;margin-bottom:20px;animation:pulse 2s ease infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.queue-title{font-family:Arial,sans-serif;font-size:32px;font-weight:700;color:#fff;margin:0 0 16px;text-shadow:0 2px 10px rgba(0,0,0,.5)}.queue-message{font-family:Arial,sans-serif;font-size:16px;color:#ffffffe6;margin:0 0 24px;line-height:1.5}.queue-message strong{color:#4caf50;font-weight:700}.queue-position{background:#ffffff1a;border-radius:12px;padding:20px;margin:24px 0;display:flex;flex-direction:column;gap:8px}.position-label{font-family:Arial,sans-serif;font-size:14px;color:#ffffffb3;text-transform:uppercase;letter-spacing:1px}.position-number{font-family:Arial,sans-serif;font-size:48px;font-weight:700;color:gold;text-shadow:0 2px 20px rgba(255,215,0,.5)}.queue-wait{font-family:Arial,sans-serif;font-size:14px;color:#fff9;margin:0 0 24px}.queue-spinner{display:flex;justify-content:center}.spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.1);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 600px){.queue-content{padding:30px 20px;max-width:90%}.queue-icon{font-size:48px}.queue-title{font-size:24px}.position-number{font-size:36px}}.hub-container{width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a0a0f;color:#fff;position:relative;overflow:hidden}.hub-bg{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.3;pointer-events:none}.hub-grid{width:200%;height:200%;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:50px 50px;animation:gridMove 20s linear infinite}@keyframes gridMove{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.hub-header{text-align:center;margin-bottom:60px;z-index:1}.hub-title{font-size:5rem;font-weight:900;letter-spacing:.1em;margin:0;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:titleGlow 3s ease-in-out infinite}@keyframes titleGlow{0%,to{opacity:1}50%{opacity:.8}}.hub-subtitle{font-size:1.2rem;color:#fff9;margin-top:10px;letter-spacing:.2em;text-transform:uppercase}.hub-worlds{display:flex;gap:30px;z-index:1;flex-wrap:wrap;justify-content:center;max-width:1200px}.world-card{width:300px;height:200px;border:none;border-radius:20px;padding:30px;cursor:pointer;position:relative;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;color:#fff;font-family:inherit}.world-card:not(.disabled):hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 60px #00000080}.world-card.disabled{cursor:not-allowed;opacity:.5}.world-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#0003;transition:opacity .3s ease}.world-card:not(.disabled):hover:before{opacity:0}.world-status{position:absolute;top:15px;right:15px;background:#0006;padding:5px 12px;border-radius:20px;font-size:.7rem;font-weight:700;letter-spacing:.1em}.world-name{font-size:2rem;font-weight:900;margin:0;position:relative;z-index:1;text-shadow:2px 2px 10px rgba(0,0,0,.3)}.world-description{font-size:.9rem;margin:0;opacity:.9;position:relative;z-index:1;line-height:1.4}.world-arrow{font-size:2rem;position:absolute;bottom:20px;right:20px;transition:transform .3s ease}.world-card:not(.disabled):hover .world-arrow{transform:translate(10px)}.world-lock{font-size:2rem;position:absolute;bottom:20px;right:20px;opacity:.5}.hub-footer{position:absolute;bottom:30px;text-align:center;color:#ffffff4d;font-size:.9rem;letter-spacing:.1em;z-index:1}@media (max-width: 768px){.hub-title{font-size:3rem}.world-card{width:250px;height:180px}.hub-worlds{gap:20px}}.piano-tiles-overlay{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:40;display:flex;align-items:stretch;justify-content:stretch;padding:0;background:radial-gradient(circle at 15% 10%,rgba(135,195,255,.2),transparent 45%),radial-gradient(circle at 85% 90%,rgba(255,196,119,.16),transparent 45%),#060a10c7}.piano-instructions-overlay{position:absolute;inset:0;z-index:25;display:flex;align-items:center;justify-content:center;padding:20px;background:#080c1499}.piano-instructions-card{width:min(92vw,360px);padding:24px;border-radius:16px;background:linear-gradient(180deg,#131c2afa,#0c1420fa);border:1px solid rgba(198,216,242,.2);box-shadow:0 16px 40px #02070e80;text-align:center}.piano-instructions-card h3{margin:0 0 12px;font-size:1.25rem}.piano-instructions-card p{margin:0 0 20px;font-size:.9rem;line-height:1.45;color:#e4efffe6}.piano-start-btn{border:0;border-radius:12px;padding:12px 28px;font-size:1rem;font-weight:700;cursor:pointer;color:#101522;background:linear-gradient(180deg,#ffd98c,#ffbe57)}.piano-start-btn:hover{filter:brightness(1.08)}.piano-tiles-shell{position:relative;width:100%;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;padding:calc(env(safe-area-inset-top,0px) + 6px) 10px calc(env(safe-area-inset-bottom,0px) + 6px);background:#0e1420eb;color:#ecf4ff;backdrop-filter:blur(6px);font-family:Trebuchet MS,Segoe UI,sans-serif;overflow:hidden}.piano-tiles-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.piano-tiles-title{min-width:0}.piano-tiles-header h2{margin:0;font-size:1rem;letter-spacing:.04em}.piano-tiles-header p{margin:3px 0 0;font-size:.78rem;color:#e4efffd9}.piano-tiles-close{border:0;padding:8px 11px;border-radius:10px;background:#ebf5ff2e;color:#f5f9ff;font-weight:700;cursor:pointer}.piano-tiles-close:hover{background:#ebf5ff47}.piano-tiles-board-wrap{position:relative;flex:1;min-height:0;padding:2px 0 4px}.piano-intro-group{position:absolute;left:50%;top:50%;z-index:10;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:4px;transition:opacity .18s ease-out}.piano-intro-art{width:min(62vw,280px);max-width:72%}.piano-intro-art img{display:block;width:100%;height:auto;border-radius:16px;filter:drop-shadow(0 16px 24px rgba(6,12,22,.35))}.piano-now-playing{position:absolute;left:50%;top:14px;z-index:12;pointer-events:none;display:flex;flex-direction:column;gap:2px;align-items:center;min-width:min(88vw,320px);padding:8px 12px;border-radius:12px;color:#f7fbff;background:linear-gradient(180deg,#101928eb,#0a101be6);border:1px solid rgba(169,193,222,.3);box-shadow:0 10px 20px #02060d61}.piano-now-playing-on-art{position:relative;left:auto;top:auto;margin-bottom:-4px;min-width:min(75vw,260px);padding:6px 10px}.piano-pause-btn{position:absolute;top:8px;right:8px;z-index:15;width:36px;height:36px;border:0;border-radius:10px;background:#101928d9;color:#f5f9ff;font-size:1rem;cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 8px #00000040}.piano-pause-btn:hover{background:#1e2d46e6}.piano-pause-overlay{position:absolute;inset:0;z-index:14;background:#080c14bf;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.piano-pause-overlay button{border:0;border-radius:10px;padding:10px 20px;font-weight:700;cursor:pointer;font-size:.95rem}.piano-pause-resume{color:#101522;background:linear-gradient(180deg,#ffd98c,#ffbe57)}.piano-pause-menu{color:#ecf4ff;background:#f3f8ff33}.piano-now-playing span{font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;opacity:.84}.piano-now-playing strong{font-size:.88rem;line-height:1.05}.piano-now-playing em{font-size:.66rem;font-style:normal;opacity:.88}.piano-fever-banner{position:absolute;right:10px;top:10px;z-index:10;pointer-events:none;border-radius:999px;padding:5px 10px;font-size:.6rem;font-weight:800;letter-spacing:.08em;color:#4f2800;background:linear-gradient(90deg,#ffda81f2,#ff9d4ff2);box-shadow:0 0 14px #ffaa5680}.piano-tiles-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.piano-tiles-stats div{display:flex;flex-direction:column;gap:3px;padding:6px 8px;border-radius:10px;background:#f8fcff14}.piano-tiles-stats span{font-size:.62rem;opacity:.85;letter-spacing:.05em;text-transform:uppercase}.piano-tiles-stats strong{font-size:.9rem}.piano-tiles-bars{display:block}.piano-dual-meter{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:8px;padding:7px 9px;border-radius:10px;background:#f8fcff14;border:1px solid rgba(244,249,255,.08)}.piano-dual-meter.is-fever-active{border-color:#ffb95d99;box-shadow:0 0 0 1px #ffbc6e33 inset}.piano-dual-column{display:flex;flex-direction:column;gap:5px}.piano-dual-divider{width:1px;background:#cbdef847}.piano-status-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.piano-status-head span{font-size:.58rem;opacity:.85;letter-spacing:.05em;text-transform:uppercase}.piano-status-head strong{font-size:.78rem}.piano-meter{height:8px;border-radius:999px;background:#ffffff26;overflow:hidden}.piano-meter-fill{height:100%;width:0%;border-radius:inherit;transition:width .12s linear}.piano-meter-fill.piano-meter-health{background:linear-gradient(90deg,#63d08b,#b8f08b)}.piano-meter-fill.piano-meter-fever{background:linear-gradient(90deg,#ffd372,#ff8f45)}.piano-tiles-hint{padding:6px 8px;border-radius:9px;font-size:.72rem;background:#ffe1ad26;color:#ffe2ba}.piano-tiles-judgement-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.piano-tiles-judgement-stats div{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:10px;background:#f8fcff14}.piano-tiles-judgement-stats span{font-size:.58rem;opacity:.85;letter-spacing:.05em;text-transform:uppercase}.piano-tiles-judgement-stats strong{font-size:.86rem}.piano-tiles-board{position:relative;height:100%;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-radius:12px;overflow:hidden;border:1px solid rgba(18,28,46,.9);background:#edf2fb;user-select:none;touch-action:none;isolation:isolate;-webkit-tap-highlight-color:transparent}.piano-vj-layer{position:absolute;inset:0;z-index:0;background-size:contain;background-position:center;background-repeat:no-repeat;opacity:.67;transform:scale(1);filter:saturate(1.08) contrast(1.06);transition:opacity .32s ease}.piano-lane{position:relative;z-index:2;border-left:1px solid rgba(39,52,79,.16);border-right:1px solid rgba(39,52,79,.16);background:#fafcffde;transition:background .08s ease-out;touch-action:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.piano-lane:nth-child(2n){background:#ebf1fbe6}.piano-hit-burst{position:absolute;left:5%;width:90%;top:calc(var(--burst-top, 78%) - var(--burst-height, 16%) / 2);height:var(--burst-height, 16%);z-index:8;pointer-events:none}.piano-burst-particle{position:absolute;left:var(--particle-left, 50%);top:var(--particle-top, 50%);width:10px;height:10px;margin-left:-5px;margin-top:-5px;border-radius:50%;animation:piano-burst-out .2s ease-out forwards;animation-delay:var(--particle-delay, 0ms);opacity:0}.piano-hit-burst-hit .piano-burst-particle,.piano-hit-burst-hold .piano-burst-particle{background:radial-gradient(circle,#7fff7f,#22c55e);box-shadow:0 0 12px #22c55ee6,0 0 24px #22c55e80}@keyframes piano-burst-out{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--particle-move-x, 0),var(--particle-move-y, -56px)) scale(.3)}}.piano-feedback{position:absolute;left:14%;width:72%;height:28px;top:calc(78% - 14px);border-radius:999px;pointer-events:none;animation:piano-feedback-burst .22s ease-out forwards;z-index:7;display:grid;place-items:center;font-size:.62rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.piano-feedback-perfect{color:#062614;background:radial-gradient(circle,#8cffacf2,#8cffac1f 75%)}.piano-feedback-hit,.piano-feedback-good{color:#3f2a05;background:radial-gradient(circle,#ffdf88f2,#ffdf881f 75%)}.piano-feedback-miss{color:#2d0b0b;background:radial-gradient(circle,#ff8282e6,#ff82821f 75%)}.piano-feedback-hold{color:#3c2b08;background:radial-gradient(circle,#ffd07ce6,#ffd07c1a 75%)}@keyframes piano-feedback-burst{0%{transform:scale(.4);opacity:.95}to{transform:scale(1.8);opacity:0}}.piano-note{position:absolute;left:5%;width:90%;border-radius:12px;pointer-events:none;z-index:5}.piano-note.is-hit{animation:piano-note-hit-flash .14s ease-out forwards}@keyframes piano-note-hit-flash{0%{opacity:1;transform:scale(1.08);filter:saturate(1.2) brightness(1.15)}35%{opacity:.9;filter:saturate(1.1) brightness(1.05)}to{opacity:.12;transform:scale(1);filter:saturate(.5) brightness(.9)}}.piano-note-tap{background:linear-gradient(180deg,#1f2330,#090b13);box-shadow:0 8px 16px #00000047}.piano-note-hold{background:linear-gradient(180deg,#151f30,#0a111e);border:1px solid rgba(142,174,230,.3);overflow:hidden}.piano-note-hold.is-holding{border-color:#ffd687d9;box-shadow:0 0 0 1px #ffd07059 inset}.piano-hold-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,#ffce6780,#ff9921e0)}.piano-hold-fill.is-complete{background:linear-gradient(180deg,#b2ff9c85,#69c958f2)}.piano-tiles-results{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:20px;background:#080c14c7;text-align:center}.piano-results-card{position:relative;z-index:2;width:min(92vw,380px);border-radius:16px;padding:16px 14px;display:flex;flex-direction:column;align-items:center;gap:8px;background:linear-gradient(180deg,#131c2af2,#0c1420f5);border:1px solid rgba(198,216,242,.18);box-shadow:0 12px 30px #02070e66}.piano-tiles-results h3{margin:0;font-size:1rem}.piano-tiles-results p{margin:0;font-size:.88rem;opacity:.92}.piano-results-subtitle{font-size:.78rem}.piano-rank-badge{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:2rem;font-weight:900;letter-spacing:.03em;margin:4px 0;border:2px solid rgba(255,255,255,.18)}.piano-rank-badge.rank-s{background:linear-gradient(180deg,#ffd779,#f7a800);color:#342100}.piano-rank-badge.rank-a{background:linear-gradient(180deg,#91ffd5,#28c287);color:#032114}.piano-rank-badge.rank-b{background:linear-gradient(180deg,#9cd4ff,#3d8ad6);color:#07192b}.piano-rank-badge.rank-c{background:linear-gradient(180deg,#d1d5db,#9098a8);color:#1a1f29}.piano-rank-badge.rank-d{background:linear-gradient(180deg,#ffb9b9,#df6060);color:#290808}.piano-rank-badge.rank-f{background:linear-gradient(180deg,#ff9b9b,#bc2f2f);color:#280505}.piano-results-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.piano-results-grid div{display:flex;flex-direction:column;gap:3px;border-radius:10px;padding:6px 8px;background:#f6faff12}.piano-results-grid span{font-size:.58rem;opacity:.84;letter-spacing:.05em;text-transform:uppercase}.piano-results-grid strong{font-size:.82rem}.piano-full-combo{color:#ffd990;font-weight:700}.piano-confetti-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.piano-confetti-piece{position:absolute;top:-18px;width:8px;height:14px;background:hsl(var(--confetti-hue, 45),92%,62%);opacity:0;transform:translateZ(0) rotate(0);animation-name:piano-confetti-fall;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes piano-confetti-fall{0%{opacity:0;transform:translateZ(0) rotate(0)}10%{opacity:1}to{opacity:0;transform:translate3d(var(--confetti-drift, 0px),120vh,0) rotate(600deg)}}.piano-results-simple .piano-tiles-actions{margin-top:16px}.piano-results-simple h3{margin-bottom:0}.piano-tiles-actions{margin-top:4px;display:flex;gap:8px}.piano-tiles-actions button{border:0;border-radius:10px;padding:9px 14px;font-weight:700;cursor:pointer;color:#101522;background:linear-gradient(180deg,#ffd98c,#ffbe57)}.piano-tiles-actions button.secondary{color:#ecf4ff;background:#f3f8ff2e}@media (max-width: 560px){.piano-tiles-shell{padding:calc(env(safe-area-inset-top,0px) + 8px) 8px calc(env(safe-area-inset-bottom,0px) + 8px);gap:6px}.piano-tiles-header p{display:none}.piano-tiles-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-tiles-judgement-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.piano-dual-meter{gap:6px;padding:6px 8px}.piano-tiles-board{min-height:0}.piano-tiles-stats{gap:5px}.piano-tiles-stats div{padding:6px 7px}.piano-results-card{width:min(96vw,360px);padding:14px 12px}}@media (max-width: 430px) and (orientation: portrait){.piano-tiles-header h2{font-size:.94rem}.piano-tiles-close{padding:7px 9px;font-size:.82rem}.piano-tiles-stats strong,.piano-tiles-judgement-stats strong{font-size:.82rem}}.final-boss-overlay{position:absolute;inset:0;z-index:42}.final-boss-stage{position:relative;width:100%;height:100%;overflow:hidden}.final-boss-stage:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,rgba(97,198,255,.11),transparent 42%),radial-gradient(circle at 10% 10%,rgba(158,226,255,.09),transparent 34%),radial-gradient(circle at 90% 86%,rgba(110,193,255,.1),transparent 36%),linear-gradient(180deg,#050b131a,#050b1352);z-index:1}.final-boss-canvas{width:100%;height:100%;display:block}.final-boss-top-row{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);left:auto;right:calc(env(safe-area-inset-right,0px) + 10px);display:flex;justify-content:flex-end;align-items:center;gap:8px;z-index:3}.final-boss-pause-btn{border:1px solid rgba(152,216,255,.45);border-radius:12px;padding:8px 10px;color:#edf9ff;background:linear-gradient(180deg,#102438e6,#0a1929d9);box-shadow:0 10px 22px #040b146b,inset 0 1px #e0f5ff29;cursor:pointer;display:flex;align-items:center;justify-content:center}.final-boss-pause-icon{width:20px;height:20px}.final-boss-pause-btn:hover{filter:brightness(1.08)}.final-boss-pause-overlay{position:absolute;inset:0;z-index:50;background:#080c14bf;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.final-boss-pause-overlay button{border:0;border-radius:10px;padding:10px 20px;font-weight:700;cursor:pointer;font-size:.95rem;font-family:Trebuchet MS,Segoe UI,sans-serif}.final-boss-pause-resume{color:#101522;background:linear-gradient(180deg,#ffd98c,#ffbe57)}.final-boss-pause-menu{color:#ecf4ff;background:#f3f8ff33}.final-boss-boss-health{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 58px);transform:translate(-50%);width:min(940px,calc(100vw - 20px));z-index:3;border:1px solid rgba(157,218,255,.38);border-radius:13px;padding:8px 10px 9px;background:linear-gradient(180deg,#0b1b2ccc,#081523bf);box-shadow:0 10px 25px #040b1466,inset 0 1px #def6ff1a;backdrop-filter:blur(4px)}.final-boss-boss-health-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;color:#eaf8ff;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-family:Trebuchet MS,Segoe UI,sans-serif}.final-boss-boss-health-track{height:13px;border-radius:999px;overflow:hidden;border:1px solid rgba(158,218,255,.4);background:#07121ddb;box-shadow:inset 0 0 0 1px #d8f5ff14}.final-boss-boss-health-fill{height:100%;position:relative;transition:width .12s linear;box-shadow:0 0 14px #ff70706b}.final-boss-boss-health-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffffff57,#fff0);animation:finalBossHealthSweep .95s linear infinite}.final-boss-domain-quote{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 28px);transform:translate(-50%);width:min(620px,calc(100vw - 22px));border:1px solid rgba(188,176,255,.5);border-radius:14px;padding:11px 14px;background:linear-gradient(180deg,#1a1232d1,#0e0c21c7);box-shadow:0 14px 30px #06081285,inset 0 1px #ddd9ff24;backdrop-filter:blur(4px);z-index:4;display:flex;flex-direction:column;gap:4px;text-align:center}.final-boss-domain-quote span{color:#e8dcff;font-size:.84rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;font-family:Trebuchet MS,Segoe UI,sans-serif}.final-boss-domain-quote small{color:#e2daffe6;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.final-boss-boss-health-value{margin-top:5px;color:#e2f4ffe6;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;text-align:left;font-family:Trebuchet MS,Segoe UI,sans-serif}.final-boss-dialogue-speaker{justify-self:start;border:1px solid rgba(245,217,146,.6);border-radius:999px;padding:5px 10px;color:#f9e2a8;background:#4e371675;font-size:.63rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-family:Trebuchet MS,Segoe UI,sans-serif}.final-boss-dialogue-line{min-height:56px;color:#edf4ff;font-size:.92rem;font-weight:700;line-height:1.4;letter-spacing:.01em;font-family:Trebuchet MS,Segoe UI,sans-serif}.final-boss-dialogue-linebox{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + clamp(138px,25vh,218px));transform:translate(-50%);width:min(900px,calc(100vw - 18px));border:1px solid rgba(230,213,166,.56);border-radius:16px;padding:12px 12px 6px;background:linear-gradient(180deg,#0a0e1df0,#080b18eb);box-shadow:0 18px 34px #04060ea3,inset 0 1px #fff7dd1f;backdrop-filter:blur(4px);z-index:4;pointer-events:auto;text-align:left;display:grid;gap:5px;cursor:pointer}.final-boss-dialogue-speaker-tag{justify-self:start;margin:0;border-radius:999px;border:1px solid rgba(245,217,146,.62);background:#4e371675;color:#f9e2a8;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-family:Trebuchet MS,Segoe UI,sans-serif;padding:5px 10px}.final-boss-dialogue-line-text{margin:0;min-height:44px;color:#edf4ff;font-size:.92rem;font-weight:700;line-height:1.4;letter-spacing:.01em;font-family:Trebuchet MS,Segoe UI,sans-serif}.final-boss-dialogue-optionsbox{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + clamp(6px,1.6vh,12px));transform:translate(-50%);width:min(900px,calc(100vw - 18px));z-index:4;display:flex;flex-direction:column;gap:2px}.final-boss-dialogue-tap-hint{position:absolute;bottom:6px;right:12px;margin:0;color:#d5e5ffd1;font-size:1.1rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:right;pointer-events:none}.final-boss-dialogue-choices{margin-top:4px;display:grid;gap:2px}.final-boss-dialogue-choice-btn,.final-boss-dialogue-next-btn{border:1px solid rgba(201,222,255,.42);border-radius:10px;padding:5px 8px;color:#e9f4ff;background:linear-gradient(180deg,#161f3ad6,#0e142acc);font-size:.92rem;font-weight:700;line-height:1.4;letter-spacing:.01em;font-family:Trebuchet MS,Segoe UI,sans-serif;text-align:left;cursor:pointer;touch-action:manipulation}.final-boss-dialogue-choice-btn{height:auto;white-space:normal;border:1px solid rgba(201,222,255,.42);border-radius:10px;color:#e9f4ff;background:linear-gradient(180deg,#161f3ad6,#0e142acc);font-size:.92rem;font-weight:700;letter-spacing:.01em;text-align:left;padding:6px 9px;opacity:0;transform:translateY(8px) scale(.985);animation:finalBossChoicePop .22s cubic-bezier(.18,.9,.2,1) forwards;width:100%;display:block}.final-boss-dialogue-choice-btn.is-selected{border-color:#59d872;box-shadow:0 0 0 1px #59d87259,0 0 16px #59d87247;background:linear-gradient(180deg,#1e3e28e6,#142e1edb)}.final-boss-dialogue-choice-btn:disabled{opacity:.48;filter:saturate(.55);cursor:default}.final-boss-dialogue-choice-btn:hover,.final-boss-dialogue-next-btn:hover{filter:brightness(1.08)}.final-boss-dialogue-next-btn{margin-top:4px;text-align:center}@keyframes finalBossChoicePop{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.final-boss-cinematic-dark{position:absolute;inset:0;background:#000;pointer-events:none;z-index:4}.final-boss-teleport-flash{position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,#c4f6ffd9,#81daff70 45%,#05122100 72%);pointer-events:none;z-index:2}.final-boss-manual-fade{position:absolute;inset:0;background:#000;pointer-events:none;z-index:6}.final-boss-transform-vignette{position:absolute;inset:0;pointer-events:none;z-index:5;background:radial-gradient(circle at 50% 52%,#0000 28%,#0000009e 74%,#000000e6),radial-gradient(circle at 50% 6%,#162a3a38,#04080e00 46%)}.final-boss-transform-subtitle{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + clamp(28px,5vh,46px));transform:translate(-50%);width:min(920px,calc(100vw - 16px));z-index:7;pointer-events:none;text-align:center}.final-boss-transform-subtitle span{display:inline-block;max-width:100%;padding:0;border-radius:0;border:0;background:transparent;color:#fff;font-size:clamp(1.12rem,2.3vw,1.42rem);font-weight:700;letter-spacing:.01em;line-height:1.34;text-transform:none;font-family:Trebuchet MS,Segoe UI,sans-serif;animation:finalBossSubtitleFadeIn .42s ease-out both;text-shadow:-1px -1px 0 rgba(0,0,0,1),1px -1px 0 rgba(0,0,0,1),-1px 1px 0 rgba(0,0,0,1),1px 1px 0 rgba(0,0,0,1),0 2px 9px rgba(0,0,0,.9)}@keyframes finalBossSubtitleFadeIn{0%{opacity:0}to{opacity:1}}.final-boss-letterbox{position:absolute;left:0;width:100%;background:#000;pointer-events:none;z-index:6}.final-boss-letterbox-top{top:0}.final-boss-letterbox-bottom{bottom:0}.final-boss-letterbox-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(96vw,1280px);text-align:center;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Trebuchet MS,Segoe UI,sans-serif;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-shadow:-1px -1px 0 rgba(0,0,0,.98),1px -1px 0 rgba(0,0,0,.98),-1px 1px 0 rgba(0,0,0,.98),1px 1px 0 rgba(0,0,0,.98),0 2px 8px rgba(0,0,0,.75);pointer-events:none}.final-boss-letterbox-label-top{color:#ffc857;font-size:clamp(1.52rem,5.15vw,3.35rem)}.final-boss-letterbox-label-bottom{color:#7ad5ff;font-size:clamp(1.62rem,5.45vw,3.55rem)}.final-boss-domain-callout{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(96vw,1280px);z-index:9;pointer-events:none;text-align:center}.final-boss-domain-callout span{display:inline-block;max-width:100%;font-family:Trebuchet MS,Segoe UI,sans-serif;font-weight:900;letter-spacing:.12em;line-height:1.08;text-transform:uppercase;white-space:nowrap;text-shadow:-2px -2px 0 rgba(0,0,0,1),2px -2px 0 rgba(0,0,0,1),-2px 2px 0 rgba(0,0,0,1),2px 2px 0 rgba(0,0,0,1),0 8px 28px rgba(0,0,0,.88);animation:finalBossSubtitleFadeIn .22s linear both}.final-boss-domain-callout.is-domain span{color:#ffc857;font-size:clamp(2rem,7vw,5.5rem)}.final-boss-domain-callout.is-abyss span{color:#7ad5ff;font-size:clamp(2.1rem,7.5vw,5.9rem)}@keyframes finalBossHealthSweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (max-width: 760px){.final-boss-top-row,.final-boss-boss-health{width:calc(100vw - 14px)}.final-boss-dialogue-linebox,.final-boss-dialogue-optionsbox{width:calc(100vw - 10px)}.final-boss-dialogue-linebox{bottom:calc(env(safe-area-inset-bottom,0px) + clamp(114px,23vh,186px));padding:10px 10px 6px}.final-boss-dialogue-line-text{min-height:40px;font-size:.92rem}}@media (max-width: 430px){.final-boss-pause-icon{width:18px;height:18px}.final-boss-domain-quote{width:calc(100vw - 14px)}}.spin-debug-overlay{position:absolute;inset:0;z-index:70;background:#03060d}.spin-debug-stage{position:relative;width:100%;height:100%}.spin-debug-canvas{width:100%;height:100%}.spin-debug-header{position:absolute;top:max(10px,env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);width:min(760px,calc(100vw - 22px));display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:2}.spin-debug-title{color:#eef6ff;font-size:.9rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;text-shadow:0 4px 14px rgba(0,0,0,.48)}.spin-debug-close-btn{border:1px solid rgba(255,209,148,.7);border-radius:10px;background:#3c200deb;color:#fff1db;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;cursor:pointer}.spin-debug-panel{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom,0px));transform:translate(-50%);width:min(760px,calc(100vw - 22px));padding:10px;display:grid;gap:8px;border-radius:14px;border:1px solid rgba(184,216,248,.36);background:linear-gradient(180deg,#0a121ee6,#080e18eb);color:#ecf6ff;z-index:2}.spin-debug-row{display:flex;flex-wrap:wrap;gap:8px}.spin-debug-play-btn,.spin-debug-export-btn,.spin-debug-clear-btn{border:1px solid rgba(180,216,250,.52);border-radius:9px;padding:7px 10px;color:#edf8ff;background:#122238e6;font-size:.67rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.spin-debug-play-btn{border-color:#95ebbba8;background:#123626e6;color:#e8fff0}.spin-debug-export-btn{border-color:#96e5ffa8;background:#0e2a40e6}.spin-debug-clear-btn{border-color:#ffd59cad;background:#3a2310e6;color:#fff2df}.spin-debug-stats{display:flex;flex-wrap:wrap;gap:12px;font-size:.7rem;opacity:.94}.spin-debug-hint{font-size:.72rem;color:#e2f0fff2}.spin-debug-export-name{font-size:.66rem;color:#bdfacdf2}.spin-debug-window-list{max-height:120px;overflow:auto;border-top:1px solid rgba(168,206,244,.25);padding-top:7px;display:grid;gap:4px}.spin-debug-window-item{font-size:.64rem;opacity:.92}@media (max-width: 520px){.spin-debug-title{font-size:.76rem;letter-spacing:.05em}.spin-debug-close-btn{font-size:.64rem;padding:6px 8px}.spin-debug-panel{padding:8px;gap:7px}.spin-debug-play-btn,.spin-debug-export-btn,.spin-debug-clear-btn{font-size:.58rem;padding:6px 8px}.spin-debug-stats{font-size:.62rem}.spin-debug-hint{font-size:.65rem}}.suika-overlay{position:absolute;inset:0;z-index:34;display:grid;place-items:center;padding:calc(env(safe-area-inset-top,0px) + 10px) 10px calc(env(safe-area-inset-bottom,0px) + 10px);background:radial-gradient(1200px 600px at 50% -10%,#f6d19d2e,#060a10db),linear-gradient(180deg,#0a1018eb,#04070cf2);backdrop-filter:blur(5px)}.suika-shell{width:min(520px,100%);max-height:100%;border-radius:18px;border:1px solid rgba(192,213,234,.18);background:linear-gradient(180deg,#121822f5,#090d15fa);box-shadow:0 24px 52px #02060c94;color:#eef5ff;font-family:Trebuchet MS,Segoe UI,sans-serif;display:grid;grid-template-rows:auto auto auto 1fr;gap:8px;padding:12px}.suika-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.suika-title{display:flex;flex-direction:column;gap:3px}.suika-title h2{margin:0;font-size:1.1rem;letter-spacing:.03em}.suika-title p{margin:0;font-size:.75rem;color:#dbe8f6e0}.suika-close{border:0;border-radius:10px;padding:8px 11px;background:#e9f4ff24;color:#ecf5ff;font-weight:700;cursor:pointer}.suika-close:hover{background:#e9f4ff3b}.suika-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.suika-chip{border-radius:11px;border:1px solid rgba(173,200,225,.24);background:#ddecff14;padding:8px 9px;display:flex;flex-direction:column;gap:3px}.suika-chip span{font-size:.67rem;text-transform:uppercase;letter-spacing:.07em;color:#cfe2f4c7}.suika-chip strong{font-size:.96rem;line-height:1}.suika-overflow-track{position:relative;height:7px;border-radius:999px;background:#e6f5ff1f;overflow:hidden}.suika-overflow-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;width:0%;background:linear-gradient(90deg,#8be4ff,#ff9f78);transition:width 90ms linear}.suika-preview-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;background:#e5f2ff14;border:1px solid rgba(184,211,236,.2)}.suika-preview-row p{margin:0;font-size:.76rem;color:#dcebfce6}.suika-preview-pills{display:flex;gap:7px}.suika-preview-pills span{border-radius:999px;padding:4px 8px;font-size:.7rem;font-weight:700;background:#f6ce8c38;border:1px solid rgba(255,216,152,.38);color:#fbe8cd}.suika-board-wrap{position:relative;width:min(420px,100%);margin:0 auto;aspect-ratio:2 / 3}.suika-canvas{width:100%;height:100%;display:block;border-radius:16px;border:1px solid rgba(188,213,236,.3);touch-action:none;cursor:col-resize;box-shadow:inset 0 0 0 1px #ffffff0d,0 18px 32px #02070e75}.suika-tip{margin:8px auto 0;width:min(420px,100%);font-size:.72rem;color:#cce0f3d6;text-align:center}.suika-center-card{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.suika-center-card>section{pointer-events:auto;width:min(280px,calc(100% - 24px));border-radius:14px;padding:14px;text-align:center;border:1px solid rgba(255,213,168,.38);background:linear-gradient(180deg,#1c222df0,#0c111cf5);box-shadow:0 12px 28px #02060c80}.suika-center-card h3{margin:0;font-size:1.1rem}.suika-center-card p{margin:7px 0 0;font-size:.8rem;color:#d8e7f8eb}.suika-center-card .suika-score-line{margin-top:10px;font-size:.9rem;color:#ffd99c;font-weight:700}.suika-actions{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.suika-actions button{border:0;border-radius:10px;padding:9px 10px;font-weight:700;cursor:pointer}.suika-actions button.primary{background:linear-gradient(180deg,#ffd286,#ffae4f);color:#2d1a04}.suika-actions button.secondary{background:#e7f4ff2e;color:#ebf4ff}@media (max-width: 520px){.suika-shell{padding:10px;gap:7px;border-radius:14px}.suika-hud{grid-template-columns:repeat(2,minmax(0,1fr))}.suika-chip strong{font-size:.9rem}}.rotating-cube-game{width:100vw;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;position:relative;background:#000;overflow:hidden}.rotating-cube-game.rotating-cube-complete,.rotating-cube-game.rotating-cube-complete .canvas-container{background:#fff}.opening-prologue-overlay{position:absolute;inset:0;z-index:20;pointer-events:none;display:grid;place-items:center;padding:clamp(16px,6vw,74px);background:transparent;transition:opacity .22s linear}.opening-prologue-text{margin:0;max-width:min(920px,94vw);text-align:center;color:#f6faff;font-family:Palatino Linotype,Book Antiqua,Palatino,serif;font-size:clamp(1rem,2.2vw,1.78rem);line-height:1.55;letter-spacing:.05em;text-shadow:0 0 12px rgba(255,255,255,.22),0 8px 36px rgba(0,0,0,.62)}.rotating-cube-ui{position:absolute;bottom:24px;left:50%;transform:translate(-50%);text-align:center;color:#fff;font-family:system-ui,-apple-system,sans-serif;text-shadow:0 2px 8px rgba(0,0,0,.5)}.rotating-cube-ui h1{font-size:1.5rem;font-weight:600;margin:0 0 4px;letter-spacing:.05em}.rotating-cube-ui p{font-size:.85rem;opacity:.8;margin:0 0 12px}.rotating-cube-link{display:inline-block;padding:8px 16px;background:#6366f166;color:#fff;text-decoration:none;border-radius:8px;font-size:.9rem;transition:background .2s}.rotating-cube-link:hover{background:#6366f199}.sequence-phase-row{position:absolute;left:50%;top:calc(env(safe-area-inset-top,0px) + 10px);transform:translate(-50%);z-index:25;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px)}.sequence-phase-btn{border:0;border-radius:8px;padding:6px 12px;font-size:.78rem;font-weight:600;letter-spacing:.02em;cursor:pointer;color:#1a2332;background:#ffffffd9;box-shadow:0 2px 8px #00000026}.sequence-phase-btn:hover{background:#fffffff2;filter:brightness(1.05)}.game-launch-row{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);transform:translate(-50%);z-index:25;display:flex;gap:10px;width:min(560px,calc(100vw - 24px))}.final-boss-sequence-menu-row{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 70px);transform:translate(-50%);z-index:25;display:flex;gap:8px;width:min(560px,calc(100vw - 24px))}.final-boss-sequence-toggle-row{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 108px);transform:translate(-50%);z-index:25;width:min(560px,calc(100vw - 24px));display:flex;justify-content:center}.final-boss-debug-menu-row{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 146px);transform:translate(-50%);z-index:25;width:min(560px,calc(100vw - 24px));display:flex;justify-content:center}.final-boss-sequence-toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(216,232,252,.34);border-radius:999px;background:linear-gradient(180deg,#152336d6,#0e1928cc);color:#eaf5ff;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;user-select:none}.final-boss-sequence-toggle input{width:14px;height:14px}.final-boss-sequence-menu-btn{border:1px solid rgba(216,232,252,.38);border-radius:10px;padding:7px 9px;flex:1 1 0;font-size:.64rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#eef7ff;background:linear-gradient(180deg,#152336e0,#0e1928d6);cursor:pointer;box-shadow:0 8px 18px #0000003d}.final-boss-sequence-menu-btn.is-active{border-color:#ffd47cc7;color:#fff2cf;background:linear-gradient(180deg,#563a13d1,#30200ccc)}.final-boss-sequence-menu-btn:hover{filter:brightness(1.05)}.final-boss-debug-menu-btn{flex:0 1 260px;border-color:#ffc478c7;color:#ffeed0;background:linear-gradient(180deg,#5f3816d6,#2e1b0cd1)}.piano-launch-btn,.final-boss-launch-btn,.suika-launch-btn{border:0;border-radius:12px;padding:12px 18px;flex:1 1 0;min-height:48px;font-size:.95rem;font-weight:700;letter-spacing:.03em;cursor:pointer;box-shadow:0 10px 26px #00000047}.piano-launch-btn{color:#121722;background:linear-gradient(180deg,#ffe39d,#ffc55f)}.final-boss-launch-btn{color:#f9f5ee;background:linear-gradient(180deg,#ff8b6d,#de3d35)}.suika-launch-btn{color:#102118;background:linear-gradient(180deg,#a8edaa,#5ecf6c)}.piano-launch-btn:hover,.final-boss-launch-btn:hover,.suika-launch-btn:hover{transform:translateY(-1px);filter:brightness(1.03)}.piano-launch-btn:active,.final-boss-launch-btn:active,.suika-launch-btn:active{transform:translateY(0);filter:brightness(.98)}.piano-launch-btn:disabled,.final-boss-launch-btn:disabled,.suika-launch-btn:disabled{opacity:.7;cursor:default}.final-boss-menu-fade{position:absolute;inset:0;z-index:45;pointer-events:none;background:#000}.piano-difficulty-overlay{position:absolute;inset:0;z-index:35;display:grid;place-items:center;padding:14px;background:#060b129e;backdrop-filter:blur(5px)}.piano-difficulty-modal{width:min(430px,100%);display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;background:linear-gradient(180deg,#121c2cf5,#0c1420f5);border:1px solid rgba(188,212,242,.22);color:#ecf4ff;box-shadow:0 12px 32px #02060c73;font-family:Trebuchet MS,Segoe UI,sans-serif}.piano-difficulty-modal h3{margin:0;font-size:1.02rem}.piano-difficulty-modal p{margin:0;font-size:.82rem;color:#e6f0ffdb}.piano-difficulty-option{border:1px solid rgba(205,225,248,.2);border-radius:12px;padding:10px 11px;background:#eef6ff14;color:#f5f9ff;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px}.piano-difficulty-option:hover{background:#eef6ff24}.piano-difficulty-option.is-selected{border-color:#ffd080cc;background:#ffc45d29}.piano-difficulty-option strong{font-size:.9rem;letter-spacing:.02em}.piano-difficulty-option span{font-size:.74rem;line-height:1.35;color:#e6f1ffe6}.piano-difficulty-cancel{margin-top:2px;border:0;border-radius:10px;padding:9px 12px;font-weight:700;color:#eaf3ff;background:#eef6ff29;cursor:pointer}.piano-difficulty-cancel:hover{background:#eef6ff3d}@media (max-width: 430px){.final-boss-sequence-toggle-row,.final-boss-debug-menu-row,.final-boss-sequence-menu-row,.game-launch-row{width:calc(100vw - 18px);gap:8px}.final-boss-sequence-toggle{font-size:.58rem;padding:5px 8px}.final-boss-sequence-menu-btn{font-size:.56rem;padding:6px}.piano-launch-btn,.final-boss-launch-btn,.suika-launch-btn{padding:11px 12px;font-size:.9rem;border-radius:10px}.piano-difficulty-modal{padding:12px;gap:8px}}
