@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:light;--paper:#e9eded;--ink:#20272c;--line:#a3afb4;--pixel:'Press Start 2P',monospace;--body:'Space Grotesk',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#c6ced1;color:var(--ink);font:16px var(--body)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #2d5c71;outline-offset:3px}button:disabled{opacity:.55;cursor:default}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px;padding:16px 25px;background:#edf0ef;border-bottom:4px solid #8a989f}.identity{display:flex;align-items:center;gap:23px}.artist{font-family:var(--pixel);font-size:22px;line-height:1.5;margin:0;letter-spacing:-1px}.world-name{font-family:var(--pixel);font-size:12px;line-height:1.8;border-left:2px solid #aab4b8;padding-left:22px}.top-actions{display:flex;gap:10px}.pixel-button{border:2px solid #86969d;background:#f6f8f7;box-shadow:3px 3px 0 #9ba8ad;padding:12px 15px;font-family:var(--pixel);font-size:12px;line-height:1.5;min-height:44px}.pixel-button:hover{background:#dfe8eb}.pixel-button:active,.pixel-button.held{box-shadow:1px 1px 0 #9ba8ad;transform:translate(2px,2px)}.game-shell{max-width:1800px;margin:auto;padding:16px 20px 0}.game-stage{height:calc(100svh - 234px);min-height:480px;max-height:1000px;position:relative;border:3px solid #768790;background:#c4ccd0;box-shadow:5px 5px 0 #9caaaf;overflow:hidden}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;outline-offset:-4px!important}.game-status{position:absolute;left:14px;top:14px;z-index:2;pointer-events:none;display:flex;gap:15px;font-family:var(--pixel);font-size:12px;background:#edf2f1dd;border:2px solid #8b9aa0;padding:10px 12px;line-height:1.6}.game-status span:last-child{font-family:var(--body);font-size:12px;letter-spacing:1px}.room-shortcuts{position:absolute;right:13px;top:13px;display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.room-shortcuts button{font:12px var(--body);font-weight:600;min-height:40px;border:2px solid #8b9aa0;background:#edf2f1e8;padding:8px 12px;box-shadow:2px 2px 0 #98a6ad}.room-shortcuts button:hover{background:#fff}.load-state{position:absolute;inset:0;display:grid;place-items:center;background:#dde4e6;font:14px var(--pixel);text-align:center;padding:30px;line-height:2}.load-state[hidden]{display:none}.control-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:88px;padding:16px 1px}.instructions{font-size:14px;line-height:1.6;margin:0}.instructions strong{font-family:var(--pixel);font-size:12px;color:#243a47}.instructions small{font-size:12px;color:#465b64;display:block}.interaction-controls{display:flex;gap:12px}.interaction-controls .pixel-button{min-width:170px}.dpad{display:none}footer{display:flex;justify-content:space-between;gap:20px;font-size:12px;line-height:1.6;color:#465b64;padding:14px 25px;border-top:1px solid #a6b3b9;background:#d5dde0}footer span:first-child{font-family:var(--pixel);font-size:12px}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}dialog{width:min(470px,calc(100vw - 28px));padding:32px;background:#edf1f0;color:var(--ink);border:3px solid #6c808c;box-shadow:8px 8px 0 #3d505a66}dialog::backdrop{background:#19272d9c;backdrop-filter:blur(3px)}dialog .close{position:absolute;right:9px;top:7px;width:44px;height:44px;background:none;border:0;font-size:27px}dialog .eyebrow{font:12px var(--pixel);line-height:1.9;color:#536b77;margin:0 30px 22px 0}dialog h2{font:20px var(--pixel);line-height:1.7;margin:12px 0 20px;overflow-wrap:anywhere}dialog p{font-size:16px;line-height:1.65}.pending-copy{padding:14px;border:1px solid #b8c3c7;font-size:14px!important;background:#dfe7e9;color:#465b66}dialog a{display:flex;justify-content:space-between;padding:16px;background:#213742;color:white;text-decoration:none;margin:12px 0;border:2px solid #607782}dialog .pixel-button{width:100%;margin-top:18px}.help-keys{font-family:var(--pixel);font-size:12px;line-height:2.2;background:#dce5e7;padding:15px}
@media(max-width:900px){.topbar{gap:12px;padding:15px 18px}.identity{gap:14px}.artist{font-size:18px}.world-name{font-size:12px;line-height:1.8;padding-left:14px}.game-status span:last-child{display:none}.room-shortcuts button{font-size:12px;padding:8px}.top-actions .pixel-button{font-size:12px;padding:10px}.game-shell{padding:12px 14px 0}.game-stage{min-height:460px}.control-bar{gap:10px}.instructions{max-width:420px}.interaction-controls .pixel-button{min-width:140px;font-size:12px}}
@media(max-width:650px){.topbar{min-height:93px;align-items:flex-start;padding:14px}.identity{display:block}.artist{font-size:18px}.world-name{border:0;padding:7px 0 0;font-size:12px;line-height:1.7}.world-name br{display:none}.top-actions{gap:7px}.top-actions .pixel-button{padding:7px 9px;min-width:44px;font-size:12px}.game-shell{padding:10px 9px 0}.game-stage{height:calc(100svh - 320px);min-height:400px;border-width:2px}.game-status{font-size:12px;left:9px;top:9px;padding:7px 8px}.room-shortcuts{right:8px;top:8px;gap:5px}.room-shortcuts button{font-size:12px;min-height:36px;padding:6px}.room-shortcuts button span{display:none}.control-bar{min-height:153px;align-items:center;padding:15px 3px}.instructions{display:none}.dpad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,40px);gap:4px;touch-action:none}.dpad button{font-size:20px;min-height:40px;padding:0;box-shadow:2px 2px 0 #8fa0a8;touch-action:none}.dpad .up{grid-column:2;grid-row:1}.dpad .left{grid-column:1;grid-row:2}.dpad .right{grid-column:3;grid-row:2}.dpad .down{grid-column:2;grid-row:3}.dpad .center{grid-column:2;grid-row:2;display:grid;place-items:center;color:#657d89;font-size:18px}.interaction-controls{flex-direction:column;gap:11px}.interaction-controls .pixel-button{min-width:130px;max-width:170px;font-size:12px;overflow-wrap:anywhere}footer{padding:12px 14px;display:block;font-size:12px}footer span{display:block}footer span:first-child{font-size:12px;margin-bottom:7px}dialog{padding:27px 22px}dialog h2{font-size:18px}.help-keys{font-size:12px} }
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.soundtrack{display:flex;align-items:center;gap:18px;margin:0 20px 14px;padding:15px 18px;background:#e8eeee;border:2px solid #84969f;box-shadow:3px 3px 0 #a1afb5}.soundtrack-label{font:12px var(--pixel);line-height:1.8;white-space:nowrap}.soundtrack-label span{display:block;font:14px var(--body);letter-spacing:3px;color:#576d77}.track-controls{display:flex;gap:7px}.track-controls button{min-width:44px;padding:10px}.track-controls #music-toggle{min-width:96px}.track-choice{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.track-choice select{width:100%;font:14px var(--body);background:#f5f8f7;border:1px solid #93a6ae;color:#263c48;min-height:38px;padding:7px 10px}.track-choice select:focus-visible{outline:3px solid #2d5c71}.track-choice span{font-size:12px;color:#405967}.volume-label{display:flex;align-items:center;gap:10px;font:12px var(--pixel)}.volume-label input{width:100px;accent-color:#385966}.game-stage{height:calc(100svh - 346px)}
@media(max-width:900px){.soundtrack{flex-wrap:wrap;gap:12px;margin:0 14px 14px}.track-choice{min-width:220px}.volume-label{margin-left:auto}.game-stage{min-height:420px}.room-shortcuts button{font-size:14px}}
@media(max-width:650px){.topbar{flex-wrap:wrap;gap:10px}.world-name{max-width:240px}.soundtrack{margin:0 9px 12px;padding:12px;gap:12px}.soundtrack-label{flex:1}.soundtrack-label span{font-size:12px}.track-choice{flex-basis:100%;order:3;min-width:0}.volume-label{order:4;width:100%}.volume-label input{width:100%}.track-controls #music-toggle{min-width:84px}.game-stage{min-height:380px;height:55svh}.game-status{display:none}.room-shortcuts button{font-size:14px}.interaction-controls .pixel-button{min-width:150px}.help-keys{font-size:12px}}
/* The world is the entire page; all controls float over the room. */
html,body{width:100%;height:100%;overflow:hidden;background:#b9c1c5}.game-shell{position:fixed;inset:0;max-width:none;margin:0;padding:0}.game-stage{position:absolute;inset:0;height:100%;width:100%;min-height:0;max-height:none;border:0;box-shadow:none}.identity{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:5;display:block;text-align:right;pointer-events:none;color:#222b31;text-shadow:0 1px 0 #ffffffa8}.artist{font-size:16px;letter-spacing:0;line-height:1.6;margin:0}.world-name{font:12px var(--body);letter-spacing:1.4px;line-height:1.6;border:0;padding:0;max-width:none}.top-actions{position:fixed;right:20px;top:max(18px,env(safe-area-inset-top));z-index:5;gap:8px}.pixel-button{background:#f0f3f1e8;border:1px solid #7f929b;box-shadow:2px 2px 0 #52677366;font-size:12px;padding:10px 13px}.room-shortcuts{left:20px;right:auto;top:max(18px,env(safe-area-inset-top));gap:8px;justify-content:flex-start}.room-shortcuts button{font-size:14px;min-height:44px;border:1px solid #7f929b;background:#f0f3f1de;box-shadow:2px 2px 0 #52677366;padding:9px 13px}.control-bar{position:fixed;inset:auto 0 70px;min-height:0;padding:0 20px;pointer-events:none;z-index:4}.instructions{max-width:430px;background:#eaf0ede0;padding:10px 12px;border:1px solid #91a2a977;box-shadow:2px 2px 0 #52677322;font-size:14px}.instructions small{font-size:12px;line-height:1.6}.interaction-controls{pointer-events:auto;margin-left:auto}.interaction-controls .pixel-button{min-width:150px;font-size:12px}.interaction-controls button:disabled{visibility:hidden}.radio-dock{position:fixed;left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));z-index:6}.radio-dock summary{list-style:none;display:inline-flex;align-items:center;cursor:pointer;font:12px var(--pixel);line-height:1.7;min-height:38px;padding:9px 12px;border:1px solid #7f929b;box-shadow:2px 2px 0 #52677366;background:#eef3f0ed}.radio-dock summary::-webkit-details-marker{display:none}.radio-dock summary::before{content:'♪';margin-right:9px;font:20px var(--body)}.radio-dock summary:focus-visible{outline:3px solid #2d5c71;outline-offset:3px}.radio-dock[open] summary{background:#253e4b;color:#fff}.soundtrack{position:absolute;left:0;bottom:calc(100% + 12px);width:min(420px,calc(100vw - 40px));margin:0;padding:16px;display:flex;flex-wrap:wrap;gap:14px;background:#e9efedf5;border:1px solid #7f929b;box-shadow:4px 4px 0 #52677355}.soundtrack-label{flex:1}.track-choice{flex-basis:100%;min-width:0;order:3}.volume-label{order:4;flex:1}.volume-label input{width:100%;flex:1}.dpad{pointer-events:auto}dialog{z-index:10;max-height:calc(100svh - 32px);overflow:auto}canvas:focus-visible{outline:0!important}
@media(max-width:650px){.identity{right:15px;bottom:max(17px,env(safe-area-inset-bottom))}.artist{font-size:14px}.world-name{font-size:12px;letter-spacing:.6px}.top-actions{right:12px;top:max(12px,env(safe-area-inset-top));gap:5px}.top-actions .pixel-button{font-size:12px;padding:8px;min-width:40px}.top-actions #pause{font-family:var(--body);font-size:12px;min-width:56px}.room-shortcuts{left:12px;top:max(12px,env(safe-area-inset-top));gap:5px;max-width:calc(100% - 132px)}.room-shortcuts button{font-size:14px;padding:8px;min-height:40px}.control-bar{bottom:82px;padding:0 14px;align-items:flex-end;min-height:0}.instructions{display:none}.dpad{grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,38px);gap:3px}.dpad button{min-height:38px;background:#eaf0edca}.interaction-controls .pixel-button{min-width:135px;max-width:170px}.radio-dock{left:14px;bottom:max(17px,env(safe-area-inset-bottom))}.radio-dock summary{font-size:12px;padding:8px}.soundtrack{width:calc(100vw - 28px)}.game-stage{min-height:0;height:100%}}
.vlog-screen{position:absolute;z-index:1;background:#14171b;overflow:hidden}.vlog-screen iframe{position:absolute;transform-origin:top left;border:0}.screen-sound{position:absolute;z-index:3;transform:translateX(-50%);font:12px var(--body);white-space:nowrap}.screen-sound[hidden]{display:none}
.identity{color:#f3f6f4;text-shadow:1px 1px 0 #1d2931,-1px -1px 0 #1d293180,0 2px 5px #121b22}
.room-shortcuts{z-index:5}
.interaction-controls{pointer-events:none}.interaction-controls button:not(:disabled){pointer-events:auto}
.pause-audio{padding:20px 0;border-top:1px solid #a3afb4;border-bottom:1px solid #a3afb4;margin:22px 0 8px}.pause-audio label{display:flex;justify-content:space-between;align-items:center;gap:14px;font:12px var(--pixel);line-height:1.8}.pause-audio output{font:16px var(--body);font-variant-numeric:tabular-nums}.pause-audio input{display:block;width:100%;height:44px;margin:10px 0 0;accent-color:#385966;cursor:pointer}.pause-audio input:focus-visible{outline:3px solid #2d5c71;outline-offset:3px}.pause-audio .pixel-button{margin-top:10px}#resume{background:#253e4b;color:#fff}#resume:hover{background:#385966}
