@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}
.identity{right:calc(max(24px,env(safe-area-inset-right)) + 8px);bottom:calc(max(20px,env(safe-area-inset-bottom)) + 8px)}
.artist-mark{width:max-content;margin-left:auto;text-align:center}
#identity-head{width:48px;height:48px;margin:0 auto 5px;image-rendering:pixelated;pointer-events:none}
#identity-head[hidden]{display:none}
@media(max-width:650px){.identity{right:calc(max(15px,env(safe-area-inset-right)) + 8px);bottom:calc(max(17px,env(safe-area-inset-bottom)) + 8px)}#identity-head{width:44px;height:44px}}
.interaction-controls{transform:translateY(-64px)}
.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}

.speech-bubble{position:absolute;z-index:7;width:300px;max-width:calc(100% - 24px);transform:translate(-50%,-100%);padding:15px 16px;background:#f2f5f3;color:#20272c;border:2px solid #53656e;box-shadow:4px 4px 0 #18242b70;font:600 18px/1.4 var(--body);text-align:center;pointer-events:auto}
.speech-bubble[hidden]{display:none}
.speech-bubble::after{content:'';position:absolute;left:var(--tail-x,50%);bottom:-10px;width:16px;height:16px;background:#f2f5f3;border-right:2px solid #53656e;border-bottom:2px solid #53656e;transform:translateX(-50%) rotate(45deg)}
.speech-speaker{display:block;font:600 14px/1.4 var(--body);color:#52646d}
.speech-bubble p{margin:7px 0 12px;overflow-wrap:anywhere}
.speech-actions{display:flex;justify-content:center;gap:8px}
.speech-actions button{min-height:44px;padding:8px 12px;background:#e0e9e8;border:1px solid #81959e;font:600 14px/1.3 var(--body)}
.speech-actions button:hover{background:#cedddb}
.conversation-playing .top-actions,.conversation-playing .room-shortcuts,.conversation-playing .control-bar,.conversation-playing .screen-sound{visibility:hidden;pointer-events:none}

.game-stage::after{content:'';position:absolute;inset:0;z-index:8;background:#111416;opacity:0;pointer-events:none;transition:opacity .1s ease}.game-stage[data-transition='true']::after{opacity:1;pointer-events:auto}
body:has(#pause-panel[open]) #pause{visibility:hidden}
.joystick{display:none;width:112px;height:112px;flex:none;position:relative;padding:0;border:1px solid #7f929ba6;border-radius:50%;background:#eaf0ed85;box-shadow:inset 0 0 0 10px #eff4f133,0 2px 0 #52677355;touch-action:none;user-select:none;-webkit-user-select:none;pointer-events:auto}
.joystick-thumb{display:block;position:absolute;width:44px;height:44px;left:calc(50% - 22px);top:calc(50% - 22px);border:1px solid #73858e;border-radius:50%;background:#edf1efeb;box-shadow:0 3px 0 #52677366;pointer-events:none;transform:translate(var(--stick-x,0px),var(--stick-y,0px))}
.joystick[data-active='true'] .joystick-thumb{background:#fff}
@media(pointer:coarse){.joystick{display:block}.control-bar{align-items:flex-end}.control-bar .instructions{display:none}}
#mobile-music-toggle,.mobile-audio-help{display:none}
@media(pointer:coarse){#pause,.desktop-audio-help{display:none}#mobile-music-toggle{display:block;font-family:var(--body);font-size:12px;min-height:44px;padding:8px 10px}.mobile-audio-help{display:inline}}
/* Cover the space outside the handheld frame, including its rounded corners. */
.game-stage[data-phone-view='true']::before{content:'';position:absolute;inset:4px;z-index:9;border:6px solid #aeb9bd;border-top-color:#d3dbde;border-left-color:#c5cfd2;border-right-color:#98a5ab;border-bottom-color:#8c9a9f;border-radius:12px 12px 28px 12px;box-shadow:0 0 0 2px #56646b,0 0 0 100vmax #1b1d1e,inset 0 0 0 2px #303a40,inset 0 0 0 3px #d3dadd55;pointer-events:none}
.game-stage[data-phone-view='true'] .room-shortcuts{left:18px;top:max(18px,env(safe-area-inset-top))}
body:has(.game-stage[data-phone-view='true']) .top-actions{right:18px;top:max(18px,env(safe-area-inset-top))}
.room-shortcuts .menu-toggle{width:44px;height:44px;min-height:44px;display:grid;align-content:center;justify-items:center;gap:5px;padding:10px}
.room-shortcuts .menu-toggle span{display:block;width:20px;height:2px;background:currentColor}
dialog.site-menu{position:fixed;inset:0 auto 0 0;margin:0;width:min(350px,calc(100vw - 28px));height:100%;height:100dvh;max-height:none;padding:30px 22px;border:0;border-right:3px solid #86969d;background:#e9eeee;box-shadow:8px 0 0 #1b262b66;overflow:auto;overscroll-behavior:contain}
.menu-portrait{display:grid;place-items:center;height:132px;margin:0 0 22px}
#menu-head{width:128px;height:128px;image-rendering:pixelated;pointer-events:none}
.menu-sections{border-top:1px solid #a3afb4}
.menu-sections details{border-bottom:1px solid #a3afb4}
.menu-sections summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:18px 0;cursor:pointer;list-style:none;font:12px/1.8 var(--pixel)}
.menu-sections summary::-webkit-details-marker{display:none}
.menu-sections summary::after{content:'+';font:24px/1 var(--body)}
.menu-sections details[open] summary::after{content:'−'}
.menu-sections summary:focus-visible{outline:3px solid #2d5c71;outline-offset:-3px}
.site-menu .menu-links{padding-bottom:10px}
.site-menu .menu-links a{margin:0 0 8px;padding:14px 12px;font:500 14px/1.5 var(--body);min-height:48px;background:#25353e;border:1px solid #687e89;overflow-wrap:anywhere}
.site-menu .menu-links a:hover{background:#38515e}
#menu-return{margin-top:28px;font-size:10px}
.plaque-inspect{position:absolute;z-index:2;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;cursor:zoom-in;touch-action:manipulation}
.plaque-inspect[hidden]{display:none}
.plaque-inspect:focus-visible{outline:2px solid #f4f7f5;outline-offset:3px}
.plaque-inspect span{position:absolute;left:50%;top:100%;transform:translateX(-50%);padding:3px 5px;background:#20272ce6;color:#fff;font:10px/1.4 var(--body);letter-spacing:1px;opacity:0;pointer-events:none}
.plaque-inspect:hover span,.plaque-inspect:focus-visible span{opacity:1}
@media(hover:none){.plaque-inspect span{opacity:1}}
dialog.plaque-panel{width:min(980px,calc(100vw - 24px));height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);padding:0;overflow:hidden;background:#171a1c;border:2px solid #9aa5aa}
dialog.plaque-panel[open]{display:flex;flex-direction:column}
.plaque-toolbar{display:flex;align-items:center;gap:12px;flex:none;padding:10px 12px;background:#e9eeee;color:#202a31}
.plaque-toolbar h2{flex:1;font:12px/1.8 var(--pixel);margin:0}
.plaque-toolbar .pixel-button{width:auto;margin:0;min-height:44px;font:12px var(--body);white-space:nowrap}
.plaque-toolbar .close{position:static;flex:none;color:#202a31}
.plaque-view{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}
.plaque-view:focus-visible{outline:2px solid #ccd6db;outline-offset:-2px}
.plaque-view img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto;max-width:none}
.plaque-view[data-zoom='true'] img{width:1074px;height:1280px;object-fit:fill;margin:auto}
.plaque-panel .plaque-hint{flex:none;margin:0;padding:8px 12px;color:#edf1f0;text-align:center;font:14px/1.4 var(--body)}
.plaque-toolbar .pixel-button[hidden],.plaque-panel .plaque-hint[hidden]{display:none}
@media(prefers-reduced-motion:no-preference){dialog.site-menu[open]{animation:menu-in .2s ease-out}@keyframes menu-in{from{transform:translateX(-100%);opacity:.5}to{transform:translateX(0);opacity:1}}}
