@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#efe6d7;--muted:#a59caa;--panel:#232337f5;--line:#bba3aa40;--warm:#ecd0a1;--pink:#c49bb6;--font:'Noto Sans KR',monospace}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#171c30;color:var(--ink);font:12px var(--font);touch-action:none}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #eacc92;outline-offset:4px}[hidden]{display:none!important}button{transition:background .12s}#scene,#world{position:fixed;inset:0;width:100%;height:100%;image-rendering:pixelated}#world{outline:none;touch-action:none}.hud-top{position:fixed;left:30px;right:30px;top:25px;display:flex;align-items:start;justify-content:space-between;pointer-events:none;z-index:4;gap:12px}.hud-top>*{pointer-events:auto}.brand{display:block;color:#fff2dd;text-decoration:none;font:500 20px 'DM Mono',monospace;letter-spacing:2px;text-shadow:2px 2px #262338;position:relative}.brand span{font-weight:400;margin-left:5px;color:#e9bda7}.brand i{font-style:normal;font-size:16px;margin-left:8px;color:#e6d19c}.scene-info{display:flex;align-items:center;gap:8px;font-size:9px;color:#e2cbd3a8;margin-top:8px}.tiny-dot{width:3px;height:3px;background:#baa5ba}.top-actions{display:flex;gap:9px;align-items:center}.pixel-button{border:1px solid #d2b8c04f;box-shadow:2px 2px 0 #17192b77;background:#28273ed4;backdrop-filter:blur(4px);min-height:36px;padding:9px 13px;color:#e8d9db;font-size:10px;border-radius:1px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.pixel-button:hover{background:#514358e8}.pixel-button.warm{background:#ead0a6;color:#51424e;border-color:#fce4bb;box-shadow:2px 2px 0 #3e3048b3}.pixel-button.warm:hover{background:#ffe3b4}.pixel-button.full{width:100%}.pixel-button b{font-weight:500}.pixel-button .muted{opacity:.6}.avatar-edit{padding:3px 11px 3px 3px;height:38px}.avatar-edit canvas{width:30px;height:30px;background:#a68b9a33;image-rendering:pixelated}.sound-button>span{color:#e6c5ad;font-size:15px}.sound-button.active{border-color:#d5c39d99}.sound-button.active>span{color:#f2dfa7}.location-menu{position:fixed;right:160px;top:74px;z-index:6;width:180px;padding:7px}.location-menu button{display:block;width:100%;padding:11px 12px;background:transparent;border:0;text-align:left}.location-menu button:hover,.location-menu button.selected{background:#b7a2bd20}.location-menu b{font-size:12px;font-weight:500}.location-menu small{display:block;font-size:9px;color:#a597aa;margin-top:4px}.pixel-panel{background:#222337ed;border:1px solid #c5aeb746;box-shadow:3px 3px 0 #11162970;backdrop-filter:blur(5px)}.scene-caption{position:fixed;left:31px;top:115px;pointer-events:none;color:#f8d8c7;text-shadow:1px 2px #2a243f66}.scene-caption>span{font:9px 'DM Mono',monospace;letter-spacing:2px;color:#e9c8c6a3}.scene-caption h1{font-size:22px;font-weight:500;letter-spacing:-.6px;margin:8px 0 7px}.scene-caption p{font-size:10px;color:#e9ced385;margin:0}.travel-hint{position:fixed;top:23px;left:50%;transform:translateX(-50%);font-size:10px;color:#e6cdd3b3;text-align:center;pointer-events:none;text-shadow:1px 1px #32263f}.travel-hint>span{margin:0 9px;color:#e5c4bc}.travel-hint small{display:block;font-size:8px;color:#d7bcc873;margin-top:7px}.controls{position:fixed;left:27px;bottom:31px;z-index:5;text-align:center}.dpad{display:grid;grid-template-columns:32px 32px 32px;grid-template-rows:32px 32px 32px;gap:3px}.dpad button{padding:0;background:#24243ce0;border:1px solid #d6bfc54f;box-shadow:2px 2px #171c3077;color:#dbcbd1;border-radius:1px;font:19px monospace;touch-action:none;user-select:none}.dpad button.held,.dpad button:active{background:#af8b9ca6;color:#fff0db}.dpad [data-dir=up]{grid-column:2;grid-row:1}.dpad [data-dir=left]{grid-column:1;grid-row:2}.dpad [data-dir=right]{grid-column:3;grid-row:2}.dpad [data-dir=down]{grid-column:2;grid-row:3}.dpad>span{grid-column:2;grid-row:2;color:#bda5b7;display:grid;place-items:center;font-size:23px}.control-hint{display:block;font-size:7px;letter-spacing:.5px;color:#b9a6bb8c;margin-top:10px}.bottom-chat{position:fixed;bottom:29px;left:50%;transform:translateX(-50%);width:330px;z-index:5}.bottom-chat form{display:flex;align-items:center;background:#1c2135c9;border:1px solid #c0a7b23d;box-shadow:2px 2px #14192d6b;padding:6px 8px;gap:9px}.chat-mark{font-size:18px;color:#b8a3b4}.bottom-chat input{border:0;background:none;width:100%;padding:5px 0;min-width:0;font-size:10px;color:#f6e0d1}.bottom-chat input::placeholder{color:#b1a2b78c}.bottom-chat input:focus{outline:0}.bottom-chat form button{background:transparent;color:#d5b4bd;border:0;font-size:17px;padding:0 5px}.small-actions{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:9px;font-size:8px;color:#ad9fb48c}.small-actions button{border:0;background:transparent;color:#cbb5c68c;font-size:8px;padding:0}.small-actions button.active{color:#edd8b0}.small-actions #connection-state{margin-left:8px;font-size:7px;color:#b2b29a}.chat-peek{font-size:9px;line-height:1.7;color:#e9d9dd;text-shadow:1px 1px #252239;margin:0 0 8px 4px;opacity:0;transition:opacity .2s;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-peek.visible{opacity:1}.corner-map{position:fixed;right:29px;bottom:28px;color:#a79ab68c;pointer-events:none}.corner-map canvas{image-rendering:pixelated;width:220px;height:32px;display:block}.corner-map div{display:flex;justify-content:space-between;font:6px 'DM Mono',monospace;letter-spacing:1.5px;padding:0 47px 0 48px}.local-label{position:fixed;bottom:8px;right:30px;font:6px 'DM Mono',monospace;letter-spacing:1.5px;color:#a392aa4d;pointer-events:none}.stage-context,.listen-context{position:fixed;left:50%;transform:translateX(-50%);bottom:120px;z-index:5;background:#242338e8;border:1px solid #e8c99f55;box-shadow:3px 3px #161a2c7a;display:flex;align-items:center;padding:9px 10px 9px 15px;gap:13px;max-width:calc(100vw - 28px)}.stage-context b,.listen-context b{font-size:10px;font-weight:500;display:block}.stage-context small,.listen-context small{font-size:8px;color:#b9a4b9;display:block;margin-top:4px}.stage-dot{width:5px;height:5px;background:#f5d6a2;box-shadow:0 0 10px #edd89a66}.stage-context kbd{font:8px monospace;border:1px solid #68535788;padding:1px 3px;opacity:.7}.listen-context{bottom:115px;border-color:#d3b7ce36}.animated-note{font-size:23px;color:#e7d5b3;animation:float 2s ease-in-out infinite}.stage-context:not([hidden])~.listen-context{bottom:183px}.listen-context .pixel-button{padding:7px 10px;min-height:30px;font-size:9px}.player-dock{position:fixed;right:28px;bottom:95px;width:240px;z-index:4}.player-title{display:flex;align-items:center;justify-content:space-between;padding:7px 9px;font-size:8px;color:#c1acbf}.player-title button{background:none;border:0;color:#a898b3;padding:0;font-size:14px}.player-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}#youtube-player,#youtube-wrap iframe{display:block;width:100%;height:135px;border:0;background:#171a2a}#playback-note{font-size:6px;color:#9b8fa4;margin:0;padding:6px 9px;line-height:1.6}.player-dock.collapsed #youtube-wrap,.player-dock.collapsed #playback-note{display:none}#toast{position:fixed;top:83px;left:50%;transform:translateX(-50%);z-index:30;max-width:calc(100vw - 28px);color:#f2dfc4;background:#252438f2;border:1px solid #d9b4bd66;box-shadow:3px 3px #181b2a66;padding:11px 17px;font-size:10px;text-align:center}dialog{margin:auto;padding:25px;background:#242437f5;color:#eadbdb;border:1px solid #d4b6bf77;border-radius:0;box-shadow:6px 6px #0f132650;max-width:calc(100vw - 30px);max-height:calc(100dvh - 50px);overflow:auto;scrollbar-width:thin;scrollbar-color:#7b657f #242437;touch-action:pan-y}dialog::backdrop{background:#11162b75;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.eyebrow{font:8px 'DM Mono',monospace;letter-spacing:2px;color:#a38ca9}.dialog-heading h2{font-weight:500;font-size:22px;letter-spacing:-.6px;margin:8px 0 0;color:#eed1bb}.close-button{background:transparent;border:1px solid #9d829d55;color:#c2a8bd;width:27px;height:27px;font-size:20px;padding:0;align-self:start}.avatar-dialog{width:670px}.avatar-layout{display:grid;grid-template-columns:210px 1fr;gap:27px}.avatar-preview{background:linear-gradient(#55405f,#775664 65%,#3e354a 65%);border:1px solid #a183a74d;position:sticky;top:0;height:290px;display:flex;align-items:center;flex-direction:column}.avatar-preview canvas{width:200px;height:245px;image-rendering:pixelated}.avatar-preview span{font-size:8px;color:#c1a3b7;padding-top:9px}label{display:block;font-size:9px;color:#bca6bd;margin:13px 0 8px}input{border:1px solid #a98ca443;color:#e5d2d4;background:#191e30a3;padding:9px 10px;min-width:0;width:100%;border-radius:0;font-size:10px}input::placeholder{color:#928097}.segmented{display:flex;gap:6px;margin:8px 0 14px}.segmented button{flex:1;background:#342d45;border:1px solid #88719045;padding:9px;font-size:9px;color:#a990ae}.segmented button.active{background:#6a5068;border-color:#c6a5b5;color:#f2d6c5}.outfit-title{display:flex;justify-content:space-between;font-size:9px;color:#c1a8c1;margin:15px 0 9px}.outfit-title small{font-size:7px;color:#83718e}.color-row{display:flex;gap:7px}.swatch{width:23px;height:23px;border:2px solid #2a253a;box-shadow:0 0 0 1px #6a526d;padding:0}.swatch.active{box-shadow:0 0 0 2px #efd6ad}.outfit-items,.accessories{display:flex;flex-wrap:wrap;gap:5px}.outfit-items button,.accessories button{font-size:8px;background:#352d45;color:#b095b5;border:1px solid #765c8040;padding:6px 8px}.outfit-items button.active,.accessories button.active{border-color:#d1aeb9;background:#73536f;color:#f5e0c9}#profile-form>.pixel-button{margin-top:24px}.stage-dialog-grid{display:grid;grid-template-columns:285px 285px;gap:25px}h3{font-size:11px;font-weight:500;margin:0 0 13px;color:#e6cbbb}h3 small{font-size:7px;color:#99829f;float:right;font-weight:400}.instrument-section{border-top:1px solid #a689a32b;padding-top:20px;margin-top:20px}#instrument-list{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.instrument-button{padding:6px 0;background:#312d43;border:1px solid #7e658141;color:#ab90ae;font-size:8px}.instrument-button.active{border-color:#dbb6bf;background:#6b4e67;color:#f4dac3}.instrument-button canvas{display:block;width:36px;height:33px;margin:auto auto 5px;image-rendering:pixelated}.subtle-note{font-size:8px;line-height:1.9;color:#a38aa8;margin:10px 0 0}.empty-note{font-size:10px;color:#a68ba9;line-height:1.9;padding:16px;background:#191e305c;border:1px dashed #8b6d8d55}.party-card{background:#1a1d3054;border:1px solid #a1819b3d;padding:13px}.party-card h3{margin:7px 0 8px;font-size:13px}.stage-chip{font:7px 'DM Mono',monospace;letter-spacing:1px;color:#a68baa}.party-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.party-capacity{font-size:10px;color:#dfbfae}.party-members{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.member-pill{font-size:8px;padding:5px 6px;background:#4d3b56;border:1px solid #a17e9d3b;color:#d1b2cc}.member-pill small{font-size:6px;color:#a991ab;margin-left:4px}.empty-slot{opacity:.35}.party-meta{display:flex;align-items:center;justify-content:space-between;font-size:7px;color:#a48ba9;margin-top:11px}.party-meta button{background:none;border:0;color:#c2a0b7;font-size:8px}.party-card>.pixel-button{margin-top:12px}.party-empty h3{margin-top:0}.party-empty p{font-size:9px;color:#a28aa6;line-height:1.8;margin-bottom:16px}.song-settings{border-left:1px solid #ac86a32b;padding-left:22px}.input-row{display:flex;gap:6px}.input-row input{flex:1;width:0;font-size:9px}.input-row .pixel-button{padding:7px 9px;font-size:9px}.song-actions{display:flex;gap:7px;margin-top:15px}.song-actions button{flex:1;font-size:9px}.rule-note{margin-top:20px;padding-top:16px;border-top:1px solid #a2809d22}.small-dialog{width:340px}.small-dialog>.dialog-heading{margin-bottom:15px}.small-dialog form>.pixel-button{margin-top:22px}.help-copy p{font-size:10px;line-height:1.9;color:#b9a0b9;margin:15px 0}.help-copy .subtle-note{font-size:8px;color:#8b7798}@keyframes float{50%{transform:translateY(-4px)}}
@media(max-width:800px){.hud-top{top:17px;left:17px;right:17px;gap:6px}.brand{font-size:13px;letter-spacing:1px}.brand span{margin-left:2px}.brand i{font-size:11px;margin-left:4px}.scene-info{font-size:7px;gap:5px}.top-actions{gap:5px}.pixel-button{font-size:8px;padding:7px 8px;min-height:31px}.avatar-edit{padding:2px 6px 2px 2px;height:32px}.avatar-edit canvas{width:25px;height:25px}.avatar-edit>span{font-size:0}.avatar-edit>span:after{content:'편집';font-size:8px}.sound-button b{display:none}.sound-button>span{font-size:15px}.location-menu{right:64px;top:59px;width:150px}.scene-caption{top:91px;left:18px}.scene-caption>span{font-size:7px;letter-spacing:1px}.scene-caption h1{font-size:17px;margin-top:6px}.scene-caption p{font-size:8px}.travel-hint{top:auto;bottom:152px;font-size:8px;width:230px}.travel-hint small{font-size:7px}.controls{left:18px;bottom:29px}.dpad{grid-template-columns:29px 29px 29px;grid-template-rows:29px 29px 29px;gap:3px}.dpad button{font-size:18px}.control-hint{font-size:6px;margin-top:7px}.bottom-chat{left:131px;right:16px;bottom:26px;transform:none;width:auto}.bottom-chat form{padding:5px 6px;gap:7px}.bottom-chat input{font-size:9px}.small-actions{gap:7px;font-size:7px;margin-top:10px}.small-actions button{font-size:7px}#connection-state{display:none}.corner-map{bottom:128px;right:18px}.corner-map canvas{width:125px;height:19px}.corner-map div{font-size:5px;padding:0 18px 0 24px;letter-spacing:.4px}.local-label{right:18px;bottom:9px;font-size:5px}.stage-context,.listen-context{bottom:189px;padding:8px 9px;gap:9px;white-space:nowrap}.stage-context b,.listen-context b{font-size:8px}.stage-context small,.listen-context small{font-size:7px}.stage-context .pixel-button{font-size:8px;padding:7px}.stage-context kbd{display:none}.stage-context:not([hidden])~.listen-context{bottom:248px}.player-dock{right:16px;top:154px;bottom:auto;width:204px}.player-dock iframe,#youtube-player{height:115px}.player-title{font-size:7px;padding:5px 7px}#playback-note{font-size:6px}.player-dock.collapsed{width:172px}.avatar-dialog{padding:18px}.avatar-layout{grid-template-columns:1fr;gap:10px}.avatar-preview{height:160px;position:relative;display:block;text-align:center}.avatar-preview canvas{height:135px;width:115px;display:block;margin:auto}.avatar-preview span{font-size:7px}.dialog-heading{margin-bottom:18px}.dialog-heading h2{font-size:20px}.stage-dialog-grid{grid-template-columns:1fr;gap:20px}.song-settings{padding-left:0;padding-top:20px;border-left:0;border-top:1px solid #ac86a32b}#stage-dialog{width:350px;padding:20px}dialog{max-height:calc(100dvh - 40px);padding:20px}.small-dialog{width:330px}.eyebrow{font-size:7px}#toast{top:66px;font-size:9px;padding:9px 12px}.chat-peek{font-size:7px}.song-actions button{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.listen-context,.stage-context:not([hidden])~.listen-context{left:auto;right:28px;bottom:295px;transform:none;width:240px;padding:9px 10px;gap:9px;max-width:240px}.listen-context>div{min-width:0;flex:1}.listen-context b,.listen-context small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.listen-context b{font-size:8px}.listen-context small{font-size:6px}.listen-context .pixel-button{font-size:7px;padding:7px;white-space:nowrap}.listen-context .animated-note{font-size:18px}
@media(max-width:800px){.stage-context{bottom:120px}.listen-context,.stage-context:not([hidden])~.listen-context{top:106px;bottom:auto;right:16px;left:auto;transform:none;width:204px;max-width:204px;gap:6px;padding:7px}.listen-context b{font-size:7px}.listen-context small{font-size:6px}.listen-context .pixel-button{font-size:6px;padding:6px;min-height:25px}.corner-map{display:none}}
/* 0.3: small paper concert ticket, not a dashboard. */
.paper-panel{color-scheme:light;background:#f0e5cf;color:#5a4b49;border:2px solid #695252;box-shadow:0 0 0 2px #d9c2a2,5px 5px 0 #11192d88;backdrop-filter:none;border-radius:0}.stage-console#stage-dialog{padding:0;width:440px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 42px);overflow:auto;scrollbar-color:#c5ab8e #e9dac0}.console-titlebar{height:29px;background:#6f5758;color:#f0ddbe;display:flex;align-items:center;justify-content:space-between;padding:0 11px 0 16px;font:8px 'DM Mono',monospace;letter-spacing:2px;border-bottom:2px solid #443d48}.console-titlebar .close-button{width:19px;height:19px;min-height:0;margin:4px 0 0;background:#e9d3af;color:#6b5553;border:1px solid #e6cb9c;box-shadow:1px 1px #473b43;font-size:17px;line-height:14px}.console-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 23px 18px}.console-heading>div>span{font-size:8px;color:#9d8074;letter-spacing:.5px}.console-heading h2{font-size:23px;font-weight:700;color:#584346;letter-spacing:-1px;margin:6px 0 0}.console-sticker{font:9px 'DM Mono',monospace;letter-spacing:1.5px;color:#a76c59;border:1px solid #be9777;padding:7px 9px;transform:rotate(5deg);text-align:center;line-height:1.5;background:#e9d7b7}.wizard-steps{display:flex;align-items:center;gap:7px;padding:0 23px 20px;border-bottom:1px dashed #bea487}.wizard-steps button{background:none;border:0;padding:0;color:#aa9384;display:flex;align-items:center;gap:6px;font-size:11px}.wizard-steps i{font-style:normal;width:21px;height:21px;display:grid;place-items:center;font:10px 'DM Mono',monospace;background:#dfccb0;border:1px solid #c9ae8f;color:#9a7d69}.wizard-steps>span{height:1px;flex:1;background:#cfb79a}.wizard-steps button.active{color:#855542;font-weight:700}.wizard-steps button.active i{background:#a96f51;border-color:#946145;color:#fff1d3}.wizard-steps button.done{color:#8b765c}.wizard-steps button.done i{background:#c2b59a;color:#fff3da;border-color:#ac997e}.wizard-body{padding:22px 23px 14px;min-height:290px}.pane-copy h3{font-size:14px;letter-spacing:-.5px;font-weight:700;color:#68504b;margin:0 0 8px}.pane-copy p{font-size:10px;color:#aa8d78;line-height:1.7;margin:0 0 21px}.stage-console #instrument-list{grid-template-columns:repeat(5,1fr);gap:6px;margin:6px 0 0}.stage-console .instrument-button{padding:10px 0 8px;background:#e8d9c0;border:1px solid #ceb697;color:#977a69;box-shadow:1px 2px #cfb895}.stage-console .instrument-button.active{border:1px solid #a27356;box-shadow:0 0 0 1px #ab7b59,1px 2px #cbb492;background:#f5ead1;color:#865d44}.stage-console .instrument-button span{font-size:9px}.stage-console .instrument-button canvas{width:40px;height:38px;margin:0 auto 6px}.instrument-preview{background:#e9dbc4;border:1px solid #dcc6a8;border-bottom:3px solid #d0b99a;position:relative;margin:22px 0 9px;text-align:center}.instrument-preview canvas{width:100%;height:143px;object-fit:contain;image-rendering:pixelated}.instrument-preview>span{display:block;font-size:9px;color:#9c806c;margin:-2px 0 13px}.console-hint{font-size:8px;color:#ae927c;line-height:1.9;margin:12px 0 0}.wizard-footer{background:#e8d8bc;border-top:1px dashed #bea487;padding:14px 23px 19px}.stage-boundary-note{font-size:8px;color:#a3836f;margin:0 0 12px;line-height:1.7}.wizard-buttons{display:flex;gap:8px}.paper-button{background:#f2e5c8;color:#8d6a54;border:1px solid #c4a581;padding:11px 14px;font:600 10px var(--font);box-shadow:1px 2px #cfb393;border-radius:0;min-height:37px}.paper-button:hover{background:#fff1d6}.paper-button.primary{flex:1;background:#997453;color:#fff0cf;border-color:#795940;box-shadow:1px 2px #b29876}.paper-button.primary:hover{background:#835e45}.paper-button:disabled{opacity:.45}.stop-link{border:0;background:none;color:#a67f69;text-decoration:underline;text-underline-offset:3px;display:block;margin:12px auto -1px;padding:3px;font-size:9px}.stage-console label{font-size:10px;color:#94765f;margin:17px 0 8px}.stage-console input{background:#f5ecd9;border:1px solid #ccb18f;color:#785c50;box-shadow:inset 1px 1px #dfc8a8;font-size:11px;padding:10px 11px}.stage-console input::placeholder{color:#b49883}.capacity-options{display:flex;gap:9px}.capacity-options button{flex:1;display:flex;align-items:center;gap:11px;background:#e6d4b5;border:1px solid #ccb08b;padding:12px 15px;color:#9a7a60}.capacity-options b{font:24px 'DM Mono',monospace;font-weight:500}.capacity-options span{font-size:10px}.capacity-options button.active{background:#f5ebd3;border-color:#99714f;box-shadow:0 0 0 1px #b78b62;color:#855a3c}.band-ticket{border:1px solid #ceb28c;background:#f4e9d0;padding:17px 15px;position:relative}.ticket-top{display:flex;justify-content:space-between;font-size:8px;color:#ad8a6b}.ticket-top>span{background:#e6d4b2;border:1px solid #d2b68d;padding:3px 5px}.ticket-top>b{font:11px 'DM Mono',monospace;font-weight:400;align-self:center}.band-ticket h3{font-size:16px;font-weight:700;color:#765443;margin:17px 0 12px;letter-spacing:-.6px}.band-ticket p{font-size:9px;line-height:1.9;color:#af8c73;margin:15px 0 0}.stage-console .member-pill{font-size:9px;background:#ead8ba;border:1px solid #d9bd95;color:#98734f}.stage-console .member-pill small{color:#b69779;font-size:7px}.ticket-leave{color:#b38b70;font-size:8px;background:none;border:0;text-decoration:underline;margin:13px 0 0;padding:0}.music-categories{display:flex;gap:5px;overflow-x:auto;padding:1px 1px 7px;scrollbar-width:thin}.music-categories button{border:1px solid #d3b998;background:#e9d8ba;color:#a07d61;padding:6px 9px;font-size:8px;white-space:nowrap}.music-categories button.active{background:#9b7859;border-color:#896347;color:#fff0ce}.music-search{margin:7px 0 8px!important;position:relative;display:flex;align-items:center}.music-search>span{position:absolute;left:10px;color:#a6856b;font-size:20px}.stage-console .music-search input{padding-left:32px;font-size:10px}.music-list{height:231px;overflow:auto;border-top:1px solid #d4bda0;border-bottom:1px solid #d4bda0;scrollbar-width:thin;scrollbar-color:#bb9b78 #e8d7b9}.track-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 7px;background:transparent;border:0;border-bottom:1px solid #d7bea04d;text-align:left}.track-row:hover{background:#fff3d8}.track-row.selected{background:#e0c49b}.track-row img{width:46px;height:32px;object-fit:cover;border:1px solid #cbb18e;filter:saturate(.7)}.track-copy{flex:1;min-width:0}.track-copy b{font-size:10px;font-weight:500;color:#715344;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-copy small{font-size:8px;color:#aa8668;display:block;margin-top:5px}.track-duration{font:7px 'DM Mono',monospace;color:#ae8e70;white-space:nowrap}.track-check{font:15px monospace;color:#a4774b;width:15px;flex-shrink:0;text-align:center}.catalog-note{font-size:7px;color:#b39479;margin:9px 0 0}.no-tracks{font-size:10px;color:#ac8b72;line-height:1.8;text-align:center;padding:30px}.selected-song{display:flex;gap:10px;align-items:center;padding:1px 0 13px;margin-bottom:11px;border-bottom:1px solid #c6a9846b}.selected-song>div{flex:1;min-width:0}.selected-song b{display:block;font-size:10px;color:#855e47;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-song small{display:block;font-size:8px;color:#b08c6e;margin-top:4px}.selected-song>span:last-child{font-size:7px;color:#a88363}.record-mini{width:28px;height:28px;background:repeating-radial-gradient(circle,#9c7e65 0 2px,#8c6c57 2px 3px);border:1px solid #775b4e;border-radius:50%;flex-shrink:0;position:relative}.record-mini:after{content:'';position:absolute;inset:9px;background:#d9b889;border-radius:50%}
.reaction-dock{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:5;width:300px}.reaction-toolbar{display:flex;gap:6px}.reaction-toolbar button{border:1px solid #d6bdab5e;box-shadow:2px 2px #191a2f66;background:#302b3edb;min-height:39px;color:#dec8bd}.reaction-main{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;font-size:10px;padding:7px 12px}.reaction-main>span{font-size:18px;color:#c5a5b4}.reaction-main kbd{font:7px 'DM Mono',monospace;color:#a98c9e;border:1px solid #b291a244;padding:2px 3px}.reaction-quick{width:39px;padding:0;font:18px "Apple Color Emoji","Segoe UI Emoji",sans-serif}.reaction-toolbar button:hover{background:#655061d9}.reaction-peek{font-size:8px;color:#e6cbc9;text-shadow:1px 1px #302039;margin:0 0 8px;opacity:0;text-align:center}.reaction-peek.visible{opacity:1}#reaction-menu{position:fixed;left:50%;bottom:112px;transform:translateX(-50%);width:300px;max-width:calc(100vw - 30px);padding:15px;z-index:8;touch-action:pan-y}.reaction-menu-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.reaction-menu-heading b{font-size:12px;color:#765c4f}.reaction-menu-heading button{background:#d9c29f;border:1px solid #bca07b;width:20px;height:20px;color:#957354;padding:0;font-size:16px}.reaction-tabs{display:flex;border-bottom:1px solid #ccb08c;margin-bottom:12px;gap:17px}.reaction-tabs button{background:none;border:0;font-size:10px;padding:5px 0 8px;color:#b19377;border-bottom:2px solid transparent}.reaction-tabs button.active{border-bottom-color:#9c7755;color:#8d6549;font-weight:700}.message-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.message-options button{border:1px solid #d1b48e;background:#edddc1;color:#97714f;font-size:10px;padding:12px 4px;box-shadow:1px 2px #dcc09a}.message-options button:hover{background:#fff1d3}.emoji-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.emoji-options button{border:1px solid #d2b58e;background:#edddc1;padding:8px 0;font:24px "Apple Color Emoji","Segoe UI Emoji",sans-serif}.emoji-options button:hover{background:#fff1d3}#reaction-menu>p{font-size:8px;color:#b29377;text-align:center;margin:13px 0 0}
@media(max-width:800px){.stage-console#stage-dialog{width:365px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 30px);padding:0}.console-heading{padding:17px 18px 15px}.console-heading h2{font-size:21px}.wizard-steps{padding:0 18px 16px}.wizard-body{padding:18px 18px 12px;min-height:260px}.wizard-footer{padding:13px 18px 17px}.pane-copy h3{font-size:13px}.pane-copy p{font-size:9px;margin-bottom:16px}.instrument-preview canvas{height:132px}.music-list{height:202px}.track-row{padding:8px 3px;gap:8px}.track-copy b{font-size:9px}.track-copy small{font-size:7px}.track-duration{font-size:6px}.music-categories button{font-size:7px;padding:6px 7px}.capacity-options button{padding:13px}.reaction-dock{left:125px;right:16px;bottom:26px;transform:none;width:auto}.reaction-main{gap:6px;font-size:9px;padding:6px 7px}.reaction-main kbd{display:none}.reaction-main>span{font-size:16px}.reaction-quick{width:32px;font-size:17px}.reaction-toolbar{gap:4px}.reaction-toolbar button{min-height:35px}.reaction-dock .small-actions{margin-top:10px}.reaction-peek{font-size:7px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#reaction-menu{bottom:112px;width:300px}.wizard-buttons{gap:7px}.paper-button{font-size:9px;padding:11px}.selected-song b{font-size:9px}.stage-boundary-note{font-size:7px}.stage-console #instrument-list{gap:5px}.stage-console .instrument-button canvas{width:34px;height:32px}.stage-console .instrument-button span{font-size:8px}.console-hint{font-size:7px}.console-sticker{font-size:8px;padding:6px}}
/* 0.4: people first, no party-size modes or raised-stage dashboard. */
.band-button{position:relative;white-space:nowrap}.band-button i{font:8px 'DM Mono',monospace;font-style:normal;background:#ead0a5;color:#785546;padding:2px 4px}.band-member-list{margin:13px 0}.band-member{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #d6b89355}.member-mark{font-size:10px;color:#aa825c}.band-member>div{min-width:0}.band-member b{display:block;font-size:10px;font-weight:500;color:#80604d}.band-member small{display:block;font-size:8px;color:#b18d6c;margin-top:4px}.member-song{margin-left:auto;max-width:142px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:8px;color:#b69b83}.member-song.ready{color:#8a8261}.setlist-mini{display:flex;flex-direction:column;gap:7px;padding:10px 0;border-top:1px dashed #ccb18e}.setlist-mini span{font-size:8px;color:#ae8a6b;line-height:1.6}.setlist-mini .playing{color:#876042;font-weight:700}.setlist-mini .played{color:#aa9b82;text-decoration:line-through}#nearby-people h4,#public-bands h4{font-size:10px;color:#947152;margin:19px 0 9px;font-weight:500}.person-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #d5b99455}.person-row>span{font-size:10px;color:#977354}.person-row small{font-size:8px;display:block;color:#b39479;margin-top:4px}.person-row .paper-button{min-height:27px;padding:7px 10px;font-size:8px}#nearby-people{max-height:160px;overflow-y:auto;scrollbar-width:thin}#create-band-fields{margin-bottom:16px}.performance-control{padding:0 0 12px;margin:0 0 10px;border-bottom:1px solid #c4a78266}.performance-control p{font-size:9px;line-height:1.9;color:#9d7c60;margin:0 0 9px}.performance-control .paper-button{width:100%;margin-top:5px;font-size:9px;min-height:33px}.band-live-status{position:fixed;left:30px;top:75px;z-index:4;display:flex;align-items:center;gap:10px;max-width:410px;background:#242239b8;border:1px solid #d5b79333;padding:7px 10px;color:#e5d0bc;pointer-events:none}.band-live-status span{font-size:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.band-live-status b{font:10px 'DM Mono',monospace;color:#e6cd9c;font-weight:400}.invitation-banner{position:fixed;top:88px;left:50%;transform:translateX(-50%);z-index:15;width:360px;max-width:calc(100vw - 28px);display:flex;align-items:center;gap:9px;padding:12px 13px}.invitation-banner>span{font-size:10px;line-height:1.7;flex:1;color:#8d6953}.invitation-banner .paper-button{flex:none;padding:8px 11px;min-height:31px;font-size:9px}.invitation-banner>button:last-child{background:none;border:0;color:#b18e73;font-size:18px;padding:0 2px}.tempo-controls{padding:7px 9px;border-top:1px solid #b490a12c;display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:6px;color:#b29aa9}.tempo-controls button{font-size:7px;background:#4b384b;color:#d1b4bf;border:1px solid #99768e66;padding:4px 5px}.stage-console[open]{display:flex;flex-direction:column;overflow:hidden}.console-titlebar,.console-heading,.wizard-steps,.wizard-footer{flex-shrink:0}.wizard-body{overflow-y:auto;max-height:min(430px,calc(100dvh - 420px));min-height:190px;scrollbar-width:thin;scrollbar-color:#bea17e #ecdec4}.wizard-footer{position:relative;bottom:0}.stage-console #create-band-fields label{margin-top:0}.stage-boundary-note{margin:13px 0 0;font-size:7px}.scene-caption{top:121px}.wizard-footer .stop-link{margin-top:10px}#effects-toggle{color:#c6b298}
@media(max-width:800px){.band-button{padding:6px 7px;max-width:68px}.band-button span{font-size:7px}.band-button i{font-size:6px;padding:1px 3px}.top-actions{gap:4px}.band-live-status{left:17px;right:17px;top:64px;max-width:none;padding:6px 8px}.band-live-status span{font-size:7px}.band-live-status b{font-size:8px}.scene-caption{top:104px}.invitation-banner{top:101px;width:350px;padding:10px 11px}.invitation-banner>span{font-size:9px}.wizard-body{max-height:calc(100dvh - 420px);min-height:165px}.member-song{max-width:119px;font-size:7px}.band-member b{font-size:9px}.performance-control p{font-size:8px}.performance-control .paper-button{font-size:8px;padding:9px}.reaction-dock .small-actions{gap:6px}.small-actions #effects-toggle{font-size:6px}.tempo-controls{font-size:6px}.tempo-controls button{font-size:6px}.stage-boundary-note{font-size:6px;line-height:1.8}}
/* Free-position busking: no fixed stage marker, restrained summer-evening HUD. */
#weather-toggle{font-size:7px;color:#b9cebd;padding:3px 5px;border:1px solid #79a99b38;background:#203b3c66}.stage-context{border-color:#8ec7ad45}.stage-dot{background:#a0d0ad;box-shadow:none}.corner-map>div{display:none}.reaction-dock .small-actions{flex-wrap:wrap;justify-content:center;row-gap:5px}.scene-caption h1{color:#f1d8b8}.scene-caption>span{color:#b8c9c8}.band-live-status{background:#202743c9;border-color:#819e9b38}.pixel-button{border-radius:0}.animated-note{animation-timing-function:steps(3,end)}
@media(max-width:800px){#weather-toggle{font-size:6px;padding:3px}.reaction-dock{width:calc(100vw - 34px);max-width:380px}.small-actions #connection-state{font-size:6px}.stage-context{max-width:calc(100vw - 34px)}.stage-context small{max-width:190px;line-height:1.6}}

/* Same output principle as the reference: the completed low-resolution frame is enlarged crisply. */
#world{image-rendering:pixelated}

/* Performance is a deliberate stationary action, with a visible exit for every member. */
.performance-stop-bar{position:fixed;z-index:8;left:50%;bottom:172px;transform:translateX(-50%);display:flex;gap:14px;align-items:center;padding:9px 11px;max-width:calc(100vw - 34px);border-color:#e0b78977;background:#27263ee8}.performance-stop-bar>span{font-size:9px;color:#dcc4b2;white-space:nowrap}.performance-stop-bar .pixel-button{font-size:10px;padding:8px 13px;white-space:nowrap}.performing-mode .controls{opacity:.34}.performing-mode .dpad button:disabled{cursor:default;filter:saturate(.25)}#bgm-toggle{font-size:7px;color:#c5c6a5;padding:3px 5px;border:1px solid #a9b79338;background:#333e3866}.small-actions{row-gap:6px}
@media(max-width:800px){.performance-stop-bar{bottom:181px;gap:9px;padding:8px 9px}.performance-stop-bar>span{font-size:8px}.performance-stop-bar .pixel-button{font-size:9px;padding:7px 11px}#bgm-toggle{font-size:6px}.reaction-dock .small-actions{max-width:340px;margin-left:auto;margin-right:auto}}
/* Keep the stop action in the sky HUD, never over the performer's head or hands. */
.performance-stop-bar{top:112px;left:30px;right:auto;bottom:auto;transform:none}.performing-mode .scene-caption,.performing-mode .travel-hint{display:none}
@media(max-width:800px){.performance-stop-bar{top:104px;left:17px;right:auto;bottom:auto;transform:none}}

/* Readable UI text stays outside the native-resolution art buffer. */
.performance-title-fields{padding:15px 0;border-top:1px dashed #c2a58788;margin-top:15px}.performance-title-fields>div{display:flex;gap:8px}.performance-title-fields input{min-width:0;flex:1;font-size:12px}.performance-title-fields button{flex:none;font-size:10px;padding:8px}.performance-title-fields p{font-size:10px;line-height:1.8;color:#9a7b60;margin:7px 0}.reaction-menu-heading b,#reaction-role-hint,.fx-position-guide{font-family:'Apple SD Gothic Neo','Malgun Gothic',sans-serif}.role-performer{border-color:#c5a263!important;background:#fff2d3!important}.role-audience{border-color:#8dbbb0!important;background:#ecfff7!important}#reaction-role-hint{font-size:11px;line-height:1.6}.fx-position-guide{font-size:10px;line-height:1.7;color:#907b68}.rest-hint{margin:4px 0 0;text-align:center;font:10px/1.5 'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#bdb8ae;pointer-events:none}.small-actions{row-gap:5px}#reaction-label{font-family:'Apple SD Gothic Neo','Malgun Gothic',sans-serif;font-size:11px}.reaction-menu-heading b{font-size:13px}.role-performer .message-options button{border-color:#d8bb83}.role-audience .message-options button{border-color:#a9cec2}
@media(max-width:800px){.performance-title-fields p{font-size:10px}.rest-hint{font-size:9px}#reaction-label{font-size:10px}.fx-position-guide{font-size:10px}}
