/* Full-window playfield and multi-difficulty catalog. */
.difficulty-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.difficulty-chip{position:relative;display:inline-flex;align-items:center;white-space:nowrap;gap:8px;padding:7px 12px;border:1px solid #c7f36b66;border-radius:6px;color:var(--accent);background:#c7f36b12;font-size:15px;font-weight:650;letter-spacing:1px;vertical-align:middle;cursor:help}
.tier-ex{color:#7cd8e8;background:#7cd8e812;border-color:#7cd8e866}.tier-ub{color:#efb2dd;background:#efb2dd12;border-color:#efb2dd66}
.difficulty-tip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:15;background:#253036;color:#f5faf6;border:1px solid #71817c;border-radius:6px;padding:9px 12px;font-size:13px;font-weight:400;letter-spacing:0;box-shadow:0 5px 25px #0008}
.difficulty-chip:hover .difficulty-tip,.difficulty-chip:focus .difficulty-tip{display:block}
.difficulty-picker{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.difficulty-picker>button{display:flex;flex-direction:column;gap:12px;align-items:flex-start;min-width:135px}.difficulty-picker>button.selected{border-color:var(--accent);background:#c7f36b0b}
.playing{overflow:hidden}.playing>.topbar,.playing>footer{display:none}.playing .game-main{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;min-height:0;padding:0;margin:0;background:#0c1217;z-index:20;overflow:hidden}.game-main:fullscreen{height:100vh}
.playing .game-stage{position:absolute;inset:0;height:100%;min-height:0;border:0;border-radius:0;background:radial-gradient(ellipse at 50% 95%,#1c2923,#0c1217 70%)}
.game-hud{position:absolute;z-index:2;top:25px;pointer-events:none;max-width:26vw}.game-hud-left{left:32px}.game-hud-right{right:32px;text-align:right}.game-hud .eyebrow{margin-bottom:8px}.hud-score{font-size:clamp(24px,3.4vw,48px);font-weight:500;letter-spacing:2px;font-variant-numeric:tabular-nums}.game-hud-right>strong{display:block;font-size:29px;font-weight:500;margin:6px 0 18px;font-variant-numeric:tabular-nums}.game-hud .judgment-legend{line-height:2;margin-top:12px;font-size:12px;color:#9dacaa}
.game-heading{position:absolute;bottom:27px;left:32px;z-index:2;pointer-events:none;max-width:45vw}.game-heading h2{font-size:22px;margin:8px 0}.game-heading .difficulty-chip{font-size:14px;pointer-events:auto;padding:5px 9px;margin-left:10px}.game-heading .eyebrow{font-size:11px}
.game-controls{position:absolute;right:28px;bottom:28px;display:flex;gap:8px;z-index:4}.game-controls button{background:#141d22b8;backdrop-filter:blur(6px);font-size:14px;padding:10px 14px}.playing .game-progress{position:absolute;bottom:0;left:0;right:0;margin:0;height:3px;z-index:4}.game-overlay{z-index:3}.game-overlay>div{max-width:80%;padding:22px}.game-overlay button{margin-top:10px}
.calibration-panel{position:absolute;left:50%;transform:translateX(-50%);bottom:25px;width:min(860px,94vw);padding:18px 22px 10px;border:1px solid #5c7054;background:#18221eea;border-radius:12px;z-index:4;backdrop-filter:blur(12px)}.calibration-fields{display:grid;grid-template-columns:1fr 1.4fr 105px auto;align-items:end;gap:18px}.calibration-fields label{position:relative;font-size:13px}.calibration-fields output{color:var(--accent);position:absolute;right:0;top:0}.calibration-fields input[type=range]{width:100%;height:27px}.calibration-fields input[type=number]{width:100%;padding:7px}.calibration-fields button{white-space:nowrap}.calibration-panel p{font-size:12px;margin:11px 0 0}.game-stage:has(.calibration-panel) .game-heading{bottom:170px}.game-stage:has(.calibration-panel) .game-controls{bottom:170px}
.editor-layout .form-grid .wide{grid-column:1/-1}
@media(max-width:800px){.game-hud{top:18px;max-width:38vw}.game-hud-left{left:18px}.game-hud-right{right:18px}.game-hud-right>strong{font-size:21px;margin-bottom:10px}.game-heading{left:18px;bottom:75px;max-width:75vw}.game-heading h2{font-size:18px}.game-controls{bottom:20px;right:18px}.game-hud .judgment-legend{font-size:11px}.calibration-fields{grid-template-columns:1fr 1fr;gap:10px 18px}.calibration-panel{padding:14px}.game-stage:has(.calibration-panel) .game-heading{display:none}.game-stage:has(.calibration-panel) .game-controls{bottom:225px}.calibration-panel p{line-height:1.5}.calibration-fields output{position:static}.calibration-fields label{gap:4px}.calibration-fields input[type=range]{height:20px}.game-stage:has(.calibration-panel) .game-overlay{padding-bottom:180px}}
.interval-editor { min-width:0; }
dialog:has(.interval-editor) { width:min(980px,94vw); max-width:980px; }
.interval-rows { max-height:52vh; overflow:auto; padding:2px; }
.bpm-row { display:grid; grid-template-columns:32px repeat(3,minmax(90px,1fr)) auto; gap:14px; align-items:end; padding:16px 0; border-bottom:1px solid var(--line); }
.bpm-row .badge { align-self:center; }
.motion-row { padding:16px; margin:10px 0; border:1px solid var(--line); border-radius:12px; background:#111b20; }
.motion-row summary { cursor:pointer; display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.event-fields { display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)); gap:14px; padding:20px 0; }
.script-details { margin-top:24px; color:var(--muted); }
.script-details summary { cursor:pointer; }
.script-details textarea { margin:12px 0; }
@media(max-width:640px){.event-fields{grid-template-columns:repeat(2,minmax(100px,1fr))}.bpm-row{grid-template-columns:repeat(2,minmax(90px,1fr))}}
