@font-face{font-family:Bricolage;src:url('/assets/bricolage-latin.woff2') format('woff2');font-display:swap}
:root{font-family:Bricolage,'Trebuchet MS',sans-serif;color:#19312a;background:#dce4d7;font-synthesis:none;--paper:#f5f4e9;--ink:#19312a;--line:#a7b5a3;--rust:#8b4032}
*{box-sizing:border-box}body{margin:0}main{max-width:1160px;margin:auto;padding:32px 24px 50px}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}button{border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:11px 17px;border-radius:8px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button:hover:enabled{background:#e8ecd9}button:focus-visible,a:focus-visible,input:focus-visible,.look:focus-visible{outline:3px solid var(--rust);outline-offset:4px}.return{display:inline-block;margin-bottom:35px}header{padding-bottom:28px}h1{font-size:clamp(3.8rem,10vw,8rem);letter-spacing:-.07em;line-height:1;margin:8px 0 15px;font-weight:750}h1 span{color:var(--rust)}header>p:last-child{font-size:1.15rem}.tab{display:inline-block;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;margin:0;padding:9px 16px;background:var(--paper)}h2{font-size:1.4rem;letter-spacing:-.03em;margin:0 0 14px}p{max-width:70ch;line-height:1.55}.setup{display:grid;grid-template-columns:1.15fr 1fr;gap:42px;border-top:1px solid var(--line);padding:28px 0}.setup p{margin:10px 0}form{border-left:1px solid var(--line);padding-left:30px}label{display:block;font-weight:bold;margin-bottom:12px}input{max-width:100%;font-size:.95rem}input::file-selector-button{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:9px;font:inherit;margin-right:10px}#file-help,.fine{font-size:.85rem;line-height:1.5}#launch{background:var(--ink);color:var(--paper);font-weight:bold}#launch:hover:enabled{background:#345145}.player{border:1px solid var(--ink);border-radius:12px;overflow:hidden;background:#15251f;color:var(--paper)}.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:12px 16px;background:#c6d2bc;color:var(--ink)}.toolbar p{margin:0;font-size:.9rem}.toolbar>div{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0}.toolbar button{padding:7px 12px}.screen{position:relative;aspect-ratio:4/3;max-height:72vh;display:grid;place-items:center;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#2c3b30 25%)}#empty{font-size:1.4rem;text-align:center;margin:0}#empty span{font-size:.9rem;color:#b1c1ac}.screen iframe{width:100%;height:100%;position:absolute;border:0;inset:0}.screen .resume{position:absolute;inset:0;display:grid;place-items:center;background:#15251fe8;z-index:2}.resume button{font-size:1.2rem}.touch{display:flex;flex-wrap:wrap;gap:18px;align-items:center;padding:14px;background:#c6d2bc;color:var(--ink)}[hidden]{display:none!important}.touch button,.look{touch-action:none;user-select:none;-webkit-user-select:none}.movement{text-align:center;flex-shrink:0}.actions{display:flex;flex-wrap:wrap;gap:5px;max-width:370px}.actions button{padding:10px;font-size:.85rem}.touch button.pressed{background:#405940;color:#fff}.look{align-self:stretch;min-width:100px;min-height:95px;flex:1;display:grid;place-items:center;text-align:center;border:1px dashed #71866c;border-radius:7px;font-size:.85rem}.help{padding:30px 0 15px}footer{font-size:.8rem;border-top:1px solid var(--line);padding-top:15px}footer p{max-width:90ch}.player.expanded{position:fixed;inset:0;z-index:1000;border:0;border-radius:0;display:flex;flex-direction:column}.player:fullscreen{width:100%;height:100%;display:flex;flex-direction:column;border:0;border-radius:0}.player.expanded .screen,.player:fullscreen .screen{flex:1;max-height:none;aspect-ratio:auto}.player.expanded .touch,.player:fullscreen .touch{padding-bottom:max(14px,env(safe-area-inset-bottom))}body.expanded{overflow:hidden}@media(pointer:coarse){.touch:not([hidden]){display:flex}}@media(max-width:650px){main{padding:20px 14px 32px}.return{margin-bottom:25px}.setup{grid-template-columns:1fr;gap:16px}.setup form{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.toolbar{align-items:flex-start;gap:12px;padding:10px}.toolbar p{font-size:.8rem}.toolbar button{font-size:.8rem}.touch{gap:8px;padding:10px}.actions{max-width:150px}.actions button{font-size:.75rem;padding:8px}.look{min-width:54px;font-size:.7rem}.screen{max-height:none}.help p{font-size:.95rem}}

.touch-text{flex-basis:100%;border:0;padding:8px 0 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.touch-text label{font-size:.8rem;margin:0}.touch-text input{min-width:90px;flex:1;background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:9px}.touch-text button{font-size:.85rem}

#walk-pad{width:132px;height:132px;flex:0 0 132px;border:1px solid #71866c;border-radius:50%;background:#e3e8d9}#walk-pad button{width:auto;padding:0}@media(max-width:650px){#walk-pad{width:112px;height:112px;flex-basis:112px}.look{min-height:112px}}
/* Keep the player and its loading/error state in the same arcade window. */
h1{font-size:clamp(3.5rem,9vw,7rem)}h1 span{font-size:.68em}.launch-box{border-left:1px solid var(--line);padding-left:30px}.overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#15251ff2;padding:24px}.overlay p{max-width:50ch}.overlay progress{width:min(80%,360px);accent-color:#c88968}.actions .fire{background:var(--rust);color:var(--paper);min-height:52px}.actions button[data-held]{background:#405940;color:#fff}.game-touch-control{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.player.expanded .screen,.player:fullscreen .screen{min-height:0}#walk-pad{width:112px;height:112px;flex-basis:112px}.screen{min-height:300px}.touch{gap:10px}.touch-text input{touch-action:auto;-webkit-user-select:text;user-select:text}.toolbar{gap:10px}.toolbar>div{gap:5px}.toolbar button{font-size:.8rem}@media(max-width:650px){.launch-box{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.actions{max-width:none;flex:1 1 100%}.actions .fire{min-width:105px}.look{min-width:100px}.toolbar{gap:7px}.toolbar button{padding:7px}.screen{min-height:300px}}@media(max-height:500px) and (orientation:landscape){.player.expanded .touch,.player:fullscreen .touch{padding:5px 8px;gap:5px}.player.expanded #walk-pad,.player:fullscreen #walk-pad{width:84px;height:84px;flex-basis:84px}.player.expanded .actions,.player:fullscreen .actions{flex:1;max-width:430px}.player.expanded .actions button,.player:fullscreen .actions button{padding:5px;font-size:.7rem;min-height:32px}.player.expanded .look,.player:fullscreen .look{min-height:84px;min-width:80px}.player.expanded .touch-text,.player:fullscreen .touch-text{padding:0;gap:5px}.player.expanded .touch-text input,.player:fullscreen .touch-text input{padding:5px}.player.expanded .touch-text label,.player:fullscreen .touch-text label{font-size:.7rem}.player.expanded .toolbar,.player:fullscreen .toolbar{padding:5px 8px}.player.expanded .toolbar p,.player:fullscreen .toolbar p{font-size:.7rem}}
/* Reserve a stable toolbar slot while verified streaming counters change. */
.toolbar #status{font-variant-numeric:tabular-nums;flex:1 1 22rem;min-width:0;min-height:3.1em}
/* The save action adds a fifth tool; wrap the row on narrow handheld cases. */
.arcade-shell .bfg-console .toolbar>div{flex-wrap:wrap;max-width:100%;min-width:0}
