@font-face{font-family:'Press Start 2P';src:local('Press Start 2P'),local('PressStart2P-Regular');font-display:swap}
.cu{outline:3px solid #fff3d6;outline-offset:2px;border-radius:10px}
:root{color-scheme:dark;--bg:#14102a;--panel:#241b4a;--ink:#fff3d6;--acc:#ffb347;--ok:#7bd88f;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--ink);font-family:'Press Start 2P',monospace;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;box-sizing:border-box}
#hud{width:min(96vw,640px);display:flex;flex-wrap:wrap;justify-content:flex-start;gap:4px 6px;font-size:9px;line-height:1.4}
#hud span{background:var(--panel);border:2px solid #3a2e6a;border-radius:10px;padding:4px 8px}
#hope{flex:1 1 auto;white-space:normal}
#obj{width:min(96vw,640px);font-size:9px;line-height:1.6;color:var(--acc);box-sizing:border-box;background:rgba(36,27,74,.6);border-radius:10px;padding:5px 9px}
#wrap{position:relative;width:min(96vw,640px);border-radius:16px;overflow:hidden}
canvas{width:100%;image-rendering:auto;border:4px solid var(--panel);box-sizing:border-box;display:block;background:#000}
#dlg{display:none;position:absolute;left:2%;right:2%;bottom:3%;background:var(--panel);border:3px solid var(--acc);border-radius:12px;padding:10px;font-size:10px;line-height:1.7;min-height:64px;z-index:4}
#dlg b{color:var(--acc);display:block;margin-bottom:4px}
#dlg i{position:absolute;right:8px;top:4px;font-style:normal;color:var(--acc);animation:bl 1s steps(2) infinite}
#opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
button.go,#opts button,.ov button.t{font:inherit;font-size:9px;background:var(--acc);color:#2a1a00;border:0;padding:8px 10px;cursor:pointer;border-radius:10px}
.ov button.t{background:var(--panel);color:var(--ink);border:2px solid var(--acc);padding:6px;margin:2px}
.ov button.t.on{background:var(--acc);color:#2a1a00}
@keyframes bl{50%{opacity:0}}
.ov{display:none;position:absolute;inset:0;background:rgba(20,16,42,.97);padding:10px;overflow:auto;font-size:9px;line-height:1.7;z-index:5;border-radius:16px}
.ov h3{margin:4px 0 8px;font-size:11px;color:var(--acc)}
.ov .row{display:flex;flex-wrap:wrap;gap:6px}
.ov .it{background:var(--panel);border:2px solid var(--acc);padding:6px 8px;min-width:90px;border-radius:10px}
.ov .card{background:var(--panel);border-left:4px solid var(--acc);padding:6px 8px;margin:6px 0;border-radius:10px}
.ov img{width:144px;image-rendering:auto;border:3px solid var(--ink);margin:4px;border-radius:10px}
.pz{display:grid;grid-template-columns:repeat(3,64px);gap:8px;justify-content:center;margin:14px 0}
.pz button{height:64px;border:3px solid var(--ink);cursor:pointer;font:inherit;font-size:8px;border-radius:10px}
.pz .lk{background:#2a7ec9;color:#fff;animation:dr 1s infinite}
.pz .cl{background:#444a55;color:#aaa}
@keyframes dr{50%{background:#5ab0e8}}
#toast{display:none;position:absolute;top:8px;left:50%;transform:translateX(-50%);background:var(--acc);color:#2a1a00;padding:6px 10px;font-size:9px;z-index:7;text-align:center;max-width:90%;border-radius:10px}
#xbtn,#dlgCloseBtn{border-radius:10px}
#title{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000;text-align:left;padding:0;font-size:10px;line-height:1.9;gap:0;z-index:8;overflow:hidden;cursor:crosshair;user-select:none}
#title h1{font-size:22px;color:var(--acc);margin:0;line-height:1.5}
#pad{display:flex;gap:6px;align-items:center;width:min(96vw,640px);justify-content:space-between;touch-action:none}
#pad div{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:4px}
#pad button{font:inherit;font-size:12px;background:var(--panel);color:var(--ink);border:2px solid var(--acc);touch-action:none;user-select:none;border-radius:10px}
#pad .a{width:84px;height:54px;background:var(--acc);color:#2a1a00;font-size:10px}
.dg{display:grid;grid-template-columns:repeat(4,56px);gap:6px;justify-content:center;margin:10px 0}
.dg button{height:52px;font:inherit;font-size:7px;background:#6b4423;color:#fff3d6;border:3px solid var(--ink);cursor:pointer;border-radius:10px}
.dg button.o{background:#2b2127;color:#ffb347}
.qo{display:block;width:100%;text-align:left;margin:6px 0;white-space:normal;border-radius:10px}
small{font-size:8px;opacity:.7;line-height:1.6;text-align:center;max-width:640px}

#title canvas{position:absolute;inset:0;width:100%;height:100%;border:0;image-rendering:pixelated}
#title #mfx{pointer-events:none;z-index:2;background:transparent}
#mui{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;padding:4% 5% 3%;box-sizing:border-box;gap:3%}
#title #mui h1{margin:0;text-align:center;color:#ffb347;font-size:26px;line-height:1.5;text-shadow:3px 3px 0 #14102a}
#mui h1 span{display:block;color:#fff3d6;font-size:.52em;margin-top:6px}
#mpanel{width:min(76%,440px);flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:7px;font-size:calc(var(--u,10)*1px);line-height:1.7;color:#fff3d6;background:rgba(36,27,74,.88);border:3px solid #ffb347;border-radius:14px;padding:10px;box-sizing:border-box;cursor:default}
#mpanel h2{margin:0 0 4px;font-size:1.1em;color:#ffb347;text-align:center}
#mpanel p{margin:2px 0}
#mpanel .it{font:inherit;font-size:inherit;display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;box-sizing:border-box;text-align:left;background:#14102a;color:#fff3d6;border:2px solid #6b5a9a;border-radius:10px;padding:8px 10px;cursor:pointer;min-width:0}
#mpanel .it:hover,#mpanel .it:focus-visible,#mpanel .it:focus{background:#ffb347;color:#2a1a00;border-color:#fff3d6;outline:none}
#mpanel .it.pri{border-color:#ffb347}
#mpanel .it.warn{border-color:#d94f4f}
#mpanel .it i{font-style:normal;opacity:.8}
#mpanel .row .st{display:flex;align-items:center;gap:6px}
#mpanel .row .st button{font:inherit;font-size:inherit;background:#ffb347;color:#2a1a00;border:0;border-radius:10px;padding:4px 7px;cursor:pointer;min-width:28px}
#mpanel .row b{min-width:62px;text-align:center;font-weight:normal}
#mpanel .row input{font:inherit;font-size:inherit;width:9.5em;background:#fff3d6;color:#2a1a00;border:0;border-radius:10px;padding:4px;text-align:center}
#mpanel .k{color:#ffb347}
#mpanel .cr{justify-content:flex-start;padding:4px 8px}
#mpanel .cr canvas{position:static;width:36px;height:42px;image-rendering:pixelated;flex:none;border:0}
#mpanel .cr .nm{flex:1;font-size:.8em;line-height:1.5}
#mpanel .cr .bub{background:#fff3d6;color:#2a1a00;border:2px solid #14102a;font-size:.85em;padding:0 6px;opacity:0;transition:opacity .15s;white-space:nowrap}
#mpanel .cr .bub.on{opacity:1;padding:4px 6px}
#dpG button,#title button{border-radius:10px}
#capBox{display:none;position:absolute;left:3%;right:3%;bottom:11%;background:#241b4a;border:3px solid #ffb347;border-radius:12px;padding:10px;font-size:10px;line-height:1.8;color:#fff3d6;min-height:44px;z-index:4}
#capBox b{display:block;color:#ffb347;margin-bottom:4px}
#cardBox{display:none;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(20,16,42,.82);color:#fff3d6;padding:14px;gap:14px;z-index:4;animation:fi 1.4s both}
#cardBox h1{margin:0;font-size:26px;line-height:1.6;color:#ffb347}
#cardBox p{margin:0;font-size:10px;line-height:1.9}
@keyframes fi{from{opacity:0}to{opacity:1}}
body.intitle #hud,body.intitle #obj,body.intitle #bar{visibility:hidden}
#bar{width:min(96vw,640px);display:flex;gap:6px}
#bar button{font:inherit;font-size:8px;background:var(--panel);color:var(--ink);border:2px solid var(--acc);border-radius:10px;padding:5px 8px;cursor:pointer;line-height:1.4}
#bar button kbd{font:inherit;background:var(--acc);color:#2a1a00;border-radius:4px;padding:1px 4px;margin-right:5px}
#bar button[aria-expanded=false]{opacity:.65}
#hud.off,#obj.off{display:none!important}
.ob{display:flex;align-items:center;gap:6px;margin:2px 0}
.sl{display:flex;flex-direction:column;gap:3px;max-height:calc(4*16px + 3*3px);overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:#ffb347 #14102a}
.sl::-webkit-scrollbar{width:6px}
.sl::-webkit-scrollbar-track{background:#14102a}
.sl::-webkit-scrollbar-thumb{background:#ffb347;border-radius:3px}
.sl .ob{margin:0;height:16px;flex:none}
.ob span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob.done span{color:#7bd88f}
.oh{margin:6px 0 2px;padding-top:4px;border-top:1px solid #3a2e6a;color:var(--ink)}
.ob.tg span{color:var(--ink)}
#gover{position:absolute;inset:0;z-index:300;display:none;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:rgba(12,8,28,.88);text-align:center}
#gover.on{display:flex}
#gover .gt{font-family:'Press Start 2P',monospace;font-size:44px;color:#ff5a4a;text-shadow:4px 4px 0 #14102a;letter-spacing:2px}
#gover button{font-family:'Press Start 2P',monospace;font-size:13px;padding:12px 16px;background:var(--acc);color:#2a1a00;border:3px solid #fff3d6;border-radius:10px;cursor:pointer}
#gover button:hover,#gover button:focus{background:#fff3d6;outline:none}
#obj .ob img,.ov .ob img{width:16px;height:16px;flex:none;margin:0;border:0;image-rendering:pixelated}
#fsBtn{position:fixed;top:6px;right:6px;z-index:60;width:30px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--panel);color:var(--ink);border:2px solid var(--acc);border-radius:8px;cursor:pointer;opacity:.85}
#fsBtn:hover{background:var(--acc);color:#2a1a00;opacity:1}
#fsBtn svg{width:14px;height:14px;fill:currentColor;shape-rendering:crispEdges;display:block}
body.hasfs{padding-top:44px}
@media (min-width:760px){body.hasfs{padding-top:8px}}
:fullscreen{--gw:min(96vw,calc((100vh - 150px)*1.3333))}
:fullscreen #hud,:fullscreen #obj,:fullscreen #wrap,:fullscreen #pad,:fullscreen #bar{width:var(--gw)}
:-webkit-full-screen{--gw:min(96vw,calc((100vh - 150px)*1.3333))}
:-webkit-full-screen #hud,:-webkit-full-screen #obj,:-webkit-full-screen #wrap,:-webkit-full-screen #pad,:-webkit-full-screen #bar{width:var(--gw)}
#skipHint{display:none;position:absolute;right:3%;bottom:1.5%;z-index:5;pointer-events:none;font-size:10px;line-height:1.5;color:#fff3d6;background:rgba(20,16,42,.72);padding:3px 6px;border-radius:6px;letter-spacing:.5px}
#roomName{position:absolute;left:0;right:0;top:42%;z-index:3;pointer-events:none;text-align:center;font-size:23px;line-height:1.5;letter-spacing:1px;color:rgba(255,255,255,.55);text-shadow:2px 2px 0 rgba(20,16,42,.4);opacity:0;padding:0 6%}
#roomName.on{animation:rnm 1.8s ease both}
@keyframes rnm{0%{opacity:0}11%{opacity:1}67%{opacity:1}100%{opacity:0}}
.lbi{display:inline-flex;align-items:center}
.lbi svg{width:14px;height:14px;fill:currentColor;shape-rendering:crispEdges}
.lb{display:flex;flex-direction:column;gap:4px}
.lbr{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#14102a;border:2px solid #6b5a9a}
.lbr b{min-width:2.4em;font-weight:normal;color:#ffb347}
.lbr.r1 b{color:#ffd24a}
.lbr.r2 b{color:#cfd6e0}
.lbr.r3 b{color:#c9692f}
.lbr .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lbr .sc{color:#7bd88f}
.lbr .tm{opacity:.7;font-size:.85em}
.lbn{font-size:.8em;opacity:.7;text-align:center}
.rs{overflow:hidden;margin:8px 0;display:flex;flex-direction:column;gap:3px}
.rsr{display:flex;align-items:center;gap:8px;padding:3px 6px;background:rgba(36,27,74,.9);border-left:3px solid var(--acc);animation:rsIn .5s cubic-bezier(.2,.9,.3,1.15) both}
.ov .rs img,.rsr img{width:16px;height:16px;border:0;margin:0;flex:none;image-rendering:pixelated}
.rsr .l{flex:1}
.rsr .v{color:var(--ok)}
.rsr.hi{border-left-color:#ffd24a}
.rsr.hi .v{color:#ffd24a}
@keyframes rsIn{from{transform:translateY(-34px);opacity:0}to{transform:translateY(0);opacity:1}}
#app{width:640px;display:flex;flex-direction:column;align-items:center;gap:6px;align-self:flex-start;transform-origin:top left}
#app>*{width:640px!important;box-sizing:border-box}

