:root{--face: #c0c0c0;--light: #dfdfdf;--hi: #ffffff;--shadow: #808080;--dark: #0a0a0a;--desk: #008080;--navy: #000080;--title: linear-gradient(90deg, #000080, #1084d0);--title-off: linear-gradient(90deg, #808080, #b5b5b5);--tip: #ffffe1;--ui: Tahoma, "MS Sans Serif", "Microsoft Sans Serif", Geneva, "Segoe UI", Verdana, sans-serif;--mono: "Fixedsys Excelsior", "Lucida Console", "Courier New", monospace;--raised: inset -1px -1px var(--dark), inset 1px 1px var(--hi), inset -2px -2px var(--shadow), inset 2px 2px var(--light);--window: inset -1px -1px var(--dark), inset 1px 1px var(--light), inset -2px -2px var(--shadow), inset 2px 2px var(--hi);--pressed: inset -1px -1px var(--hi), inset 1px 1px var(--dark), inset -2px -2px var(--light), inset 2px 2px var(--shadow);--sunken: inset -1px -1px var(--hi), inset 1px 1px var(--shadow), inset -2px -2px var(--light), inset 2px 2px var(--dark);--thin: inset -1px -1px var(--hi), inset 1px 1px var(--shadow)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:#000;color:#000;font:12px/1.35 var(--ui);overflow:hidden;touch-action:none;user-select:none;-webkit-font-smoothing:none;font-smooth:never}canvas#game{position:fixed;inset:0;width:100vw;height:100vh;display:block;image-rendering:pixelated;background:#000}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.hidden{display:none!important}b,strong{font-weight:700}a{color:#00e}::-webkit-scrollbar{width:16px;height:16px}::-webkit-scrollbar-track{background:repeating-conic-gradient(var(--face) 0 25%,var(--hi) 0 50%) 0 0 / 2px 2px}::-webkit-scrollbar-thumb{background:var(--face);box-shadow:var(--raised)}::-webkit-scrollbar-corner{background:var(--face)}.win{background:var(--face);box-shadow:var(--window);padding:3px;color:#000;max-width:100%}.win>.title{background:var(--title);color:#fff;font-weight:700;height:18px;padding:0 2px 0 3px;display:flex;align-items:center;justify-content:space-between;gap:4px}.win>.title .tt{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.2px}.win>.title .tt svg{flex:none}.win>.title .ctl{display:flex;gap:2px;flex:none}.win>.title .ctl button{min-width:0;width:16px;height:14px;padding:0;display:flex;align-items:center;justify-content:center}.win>.title .ctl button:focus-visible{outline:none}.win>.wb{padding:8px}.win>.status{display:flex;gap:2px;margin-top:2px}.win>.status>span{flex:1;box-shadow:var(--thin);padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.win>.status>span.fit{flex:none}button,.btn{font:12px var(--ui);color:#000;background:var(--face);border:none;border-radius:0;box-shadow:var(--raised);min-width:75px;min-height:23px;padding:3px 12px;cursor:pointer}button:active:not(:disabled),button.down{box-shadow:var(--pressed);padding:4px 11px 2px 13px}button:focus-visible{outline:1px dotted #000;outline-offset:-4px}button.default{box-shadow:inset 0 0 0 1px var(--dark),inset -2px -2px var(--dark),inset 1px 1px var(--hi),inset -3px -3px var(--shadow),inset 2px 2px var(--light)}button:disabled{color:var(--shadow);text-shadow:1px 1px 0 var(--hi);cursor:default}input[type=text],input[type=password]{font:12px var(--ui);padding:3px 4px;border:none;border-radius:0;box-shadow:var(--sunken);background:#fff;color:#000;width:100%;height:21px;outline:none;user-select:text}input[type=text]:disabled,input[type=password]:disabled{background:var(--face);color:var(--shadow)}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:13px;height:13px;margin:0 6px 0 0;background:#fff;box-shadow:var(--sunken);vertical-align:-2px;cursor:pointer;flex:none}input[type=checkbox]:checked{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='7' shape-rendering='crispEdges'%3E%3Cpath d='M6 0h1v3H6v1H5v1H4v1H3v1H2V6H1V5H0V2h1v1h1v1h1V3h1V2h1V1h1z'/%3E%3C/svg%3E") no-repeat 3px 3px}input[type=checkbox]:disabled{background-color:var(--face);cursor:default}label.chk{display:flex;align-items:center;margin:4px 0;cursor:pointer}input[type=range]{appearance:none;-webkit-appearance:none;background:transparent;height:24px;flex:1;min-width:120px;margin:0;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;box-shadow:var(--sunken);background:var(--face)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:21px;margin-top:-9px;background:var(--face);box-shadow:var(--raised);border:none}input[type=range]::-moz-range-track{height:4px;box-shadow:var(--sunken);background:var(--face)}input[type=range]::-moz-range-thumb{width:11px;height:21px;background:var(--face);box-shadow:var(--raised);border:none;border-radius:0}fieldset{border:1px solid var(--shadow);box-shadow:1px 1px 0 var(--hi),inset 1px 1px 0 var(--hi);margin:0 0 10px;padding:8px 10px 10px;min-width:0}legend{padding:0 3px}.field{display:flex;flex-direction:column;gap:3px;flex:1;min-width:140px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:6px 0}.row.end{justify-content:flex-end}.row.mid{justify-content:center}.note{color:#404040}.err{color:#a00000;min-height:1.35em}.err:empty{display:none}.sunk{background:#fff;box-shadow:var(--sunken);padding:4px}hr.etch{border:none;border-top:1px solid var(--shadow);border-bottom:1px solid var(--hi);margin:8px 0}.prog{height:16px;box-shadow:var(--sunken);background:var(--face);padding:2px}.prog>i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,var(--navy) 0 8px,transparent 8px 10px)}.prog.red>i{background:repeating-linear-gradient(90deg,#a00000 0 8px,transparent 8px 10px)}kbd{font:11px var(--ui);background:var(--face);box-shadow:var(--raised);padding:0 4px;display:inline-block;min-width:18px;text-align:center}.tabs{display:flex;padding-left:2px;position:relative;z-index:1;flex-wrap:wrap}.tabs button{min-width:0;min-height:0;padding:3px 10px 2px;margin-top:2px;border-radius:3px 3px 0 0;box-shadow:inset 1px 1px var(--light),inset 2px 2px var(--hi),inset -1px 0 var(--dark),inset -2px 0 var(--shadow)}.tabs button:active:not(:disabled){box-shadow:inset 1px 1px var(--light),inset 2px 2px var(--hi),inset -1px 0 var(--dark),inset -2px 0 var(--shadow);padding:3px 10px 2px}.tabs button.sel{margin:0 -2px -2px;padding:4px 12px 5px;position:relative;z-index:2;background:var(--face)}.sheet{box-shadow:var(--window);padding:12px;min-height:230px}.sheet>section{display:none}.sheet>section.on{display:block}.screen{position:absolute;inset:0;overflow:auto;background:var(--desk);padding:24px 16px 48px}.screen.clear{background:#004040e0}.desk{display:flex;flex-direction:column;align-items:center;gap:16px;min-height:100%}.desk>.win{width:min(580px,100%)}.taskbar{position:fixed;left:0;right:0;bottom:0;height:28px;background:var(--face);box-shadow:inset 0 1px var(--light),inset 0 2px var(--hi);display:flex;align-items:center;gap:4px;padding:2px 2px 0;z-index:3}.taskbar .start{font-weight:700;min-width:0;padding:2px 6px;display:flex;align-items:center;gap:4px;height:22px;min-height:0}.taskbar .task{min-width:0;width:160px;max-width:40vw;height:22px;min-height:0;padding:2px 6px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:var(--pressed);font-weight:700;background:repeating-conic-gradient(var(--face) 0 25%,var(--hi) 0 50%) 0 0 / 2px 2px}.taskbar .sep{width:2px;height:20px;box-shadow:inset 1px 0 var(--shadow),inset -1px 0 var(--hi);margin:0 2px}.taskbar .tray{margin-left:auto;box-shadow:var(--thin);height:22px;padding:0 10px;display:flex;align-items:center}.banner{display:flex;align-items:center;gap:12px;background:#fff;box-shadow:var(--sunken);padding:12px 14px;margin-bottom:10px}.banner h1{margin:0;font:bold 26px/1 var(--ui);letter-spacing:1px;color:var(--navy)}.banner p{margin:4px 0 0;color:#404040}.banner svg{flex:none}table.lb{width:100%;border-collapse:collapse;background:#fff}table.lb th{background:var(--face);box-shadow:var(--raised);font-weight:400;text-align:left;padding:2px 6px;position:sticky;top:0}table.lb td{padding:2px 6px;white-space:nowrap}table.lb tr:nth-child(2n) td{background:#f2f2f2}.lbwrap{box-shadow:var(--sunken);padding:2px;background:#fff;max-height:220px;overflow:auto}dl.keys{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0}dl.keys dt{text-align:right;white-space:nowrap}dl.keys dd{margin:0}.codebox{display:flex;gap:8px;align-items:center}.code{font:bold 26px/1 var(--mono);letter-spacing:6px;background:#fff;box-shadow:var(--sunken);padding:6px 10px;flex:1;text-align:center;cursor:pointer;user-select:text}.players{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;background:#fff;box-shadow:var(--sunken);padding:8px;min-height:140px}.pcard{width:104px;text-align:center;position:relative;padding:2px}.pcard canvas{width:88px;height:auto;image-rendering:pixelated;display:block;margin:0 auto}.pcard .nm{margin-top:2px;padding:0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcard.me .nm{background:var(--navy);color:#fff;outline:1px dotted #ffe030}.pcard .crown{position:absolute;top:0;right:6px;font-size:14px}.msg{display:flex;gap:14px;align-items:flex-start;padding:6px 4px}.ico-err{flex:none;width:32px;height:32px;border-radius:50%;background:#e00000;box-shadow:1px 1px #000;position:relative}.ico-err:before,.ico-err:after{content:"";position:absolute;left:50%;top:50%;width:18px;height:4px;background:#fff;transform:translate(-50%,-50%) rotate(45deg)}.ico-err:after{transform:translate(-50%,-50%) rotate(-45deg)}.ico-warn{flex:none;width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:28px solid #ffe000;position:relative;filter:drop-shadow(1px 1px 0 #000)}.ico-warn:after{content:"!";position:absolute;left:-3px;top:6px;font:bold 18px/1 var(--ui);color:#000}.ico-info{flex:none;width:32px;height:32px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px var(--navy),1px 1px #000;color:var(--navy);font:700 italic 20px/32px Georgia,serif;text-align:center}#hud{position:absolute;inset:0;pointer-events:none}#hud>*{position:absolute}.hpanel{background:var(--face);box-shadow:var(--window);padding:4px 6px}.hpanel:empty{display:none}#hud .tl{top:8px;left:8px;min-width:150px}#hud .tl #h-floor{font-weight:700;color:var(--navy)}#hud .dim{color:#404040;font-size:11px}#hud .tc{top:8px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px}#hud .tr{top:8px;right:8px;min-width:120px;max-width:34vw;padding:3px}#hud .bl{bottom:8px;left:8px;width:170px}#hud .bl .lbl{font-size:11px;margin-top:2px}#hud .bl .srow.time{margin-top:2px}#hud .bl .sic{display:none}#hud .bc{bottom:8px;left:50%;transform:translate(-50%);display:flex;align-items:flex-end;gap:6px}#hud .bc .hb{position:relative}#h-slots{display:flex;gap:2px;padding:3px}#hud .tpack,#hud .tbar,#hud .tools,#hud .tmenu,#hud .tact{display:none}#hud .center{top:50%;left:50%;transform:translate(-50%,-50%)}#hud .center .win{width:min(320px,86vw)}#hud .prompt{top:62%;left:50%;transform:translate(-50%);white-space:nowrap}#hud .lockhint{top:54%;left:50%;transform:translate(-50%);white-space:nowrap}#hud .crosshair{top:50%;left:50%;width:4px;height:4px;background:#fff;box-shadow:0 0 0 1px #000;transform:translate(-50%,-50%);opacity:.85}#hud .toasts{top:64px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:3px}#hud .toasts div{animation:toast 3.8s forwards}.tip{background:var(--tip);color:#000;border:1px solid #000;padding:2px 6px;box-shadow:1px 1px #00000080;white-space:nowrap}.tip.warn{background:#a00000;color:#fff;font-weight:700}@keyframes toast{0%{opacity:0}6%{opacity:1}82%{opacity:1}to{opacity:0}}.slot{width:46px;height:46px;background:var(--face);box-shadow:var(--sunken);display:flex;align-items:center;justify-content:center;font-size:24px;position:relative}.slot b{position:absolute;top:2px;left:4px;font-size:10px;font-weight:400;color:#000}.slot i{position:absolute;bottom:2px;right:4px;font-size:10px;font-style:normal;color:var(--navy);font-weight:700}.member{padding:1px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member.me{background:var(--navy);color:#fff}.member.down{color:#a00000;font-weight:700}.member.me.down{color:#ffb0b0}.member.ghost{color:var(--shadow)}.vignette-red{position:absolute;inset:0;background:radial-gradient(circle,transparent 40%,rgba(160,0,0,.7) 100%);pointer-events:none}.pings div{position:absolute;transform:translate(-50%,-50%);font-size:20px;text-shadow:1px 1px 0 #000,-1px -1px 0 #000;color:#fff}#popup{position:absolute;left:50%;top:50%;width:min(86vw,440px);transform:translate(-50%,-50%) rotate(-2deg);z-index:20;pointer-events:none}#popup .bd{padding:22px 12px;text-align:center;font:bold clamp(17px,3.6vw,26px) var(--ui);background:#ffff40;color:#d0007f;box-shadow:var(--sunken)}#dialogue{position:absolute;inset:0;z-index:15;cursor:pointer}#dialogue .bar-t,#dialogue .bar-b{position:absolute;left:0;right:0;background:#000}#dialogue .bar-t{top:0;height:12%}#dialogue .bar-b{bottom:0;min-height:18%;display:flex;align-items:center;justify-content:center;padding:10px 5%}#dialogue .bar-b .win{width:min(760px,100%)}#dialogue .line{font:clamp(14px,2.2vw,20px)/1.4 var(--ui);color:#000;min-height:2.8em;user-select:text}#dialogue .who{font-weight:700;color:var(--navy)}#dialogue .more{text-align:right;color:var(--shadow);font-size:11px}#dialogue .por{position:absolute;top:12%;bottom:18%;width:38%;overflow:hidden}#dialogue .por.l{left:-3%}#dialogue .por.r{right:-3%}#dialogue .por canvas{position:absolute;bottom:-22%;width:130%;image-rendering:pixelated}#dialogue .por.l canvas{left:-8%}#dialogue .por.r canvas{right:-8%;transform:scaleX(-1)}#dialogue .por.r.mimic canvas{filter:contrast(1.4) saturate(.6)}.overlay{position:absolute;inset:0;z-index:12;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:12px}.overlay>.win{width:min(96vw,620px);max-height:92vh;display:flex;flex-direction:column}.overlay>.win>.wb{overflow:auto}.overlay>.win.mapwin{width:auto}.overlay>.win.mapwin>.wb{padding:3px}#mapcv{image-rendering:pixelated;background:#000;box-shadow:var(--sunken);padding:2px;max-width:88vw;max-height:78vh;display:block}.shoplist{background:#fff;box-shadow:var(--sunken);padding:2px}.shop-item{display:flex;align-items:center;gap:8px;padding:5px 6px;border-bottom:1px solid #e0e0e0}.shop-item:last-child{border-bottom:none}.shop-item .ic{font-size:22px;width:30px;text-align:center}.shop-item .d{flex:1}.shop-item .d small{display:block;color:#505050;font-size:11px}.shop-item .cost{font-weight:700;white-space:nowrap}.bm{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px;background:#fff;box-shadow:var(--sunken);padding:4px}.bm div{padding:5px 6px;min-height:58px;border:1px solid #e0e0e0}.bm div.lock{color:var(--shadow);background:#f4f4f4}.bm b{display:block}.chat{position:absolute;left:50%;bottom:72px;transform:translate(-50%);width:min(80vw,420px);z-index:30}.chat>.wb{padding:4px}body.touch{--sl: max(10px, env(safe-area-inset-left));--sr: max(10px, env(safe-area-inset-right));--st: max(8px, env(safe-area-inset-top));--sb: max(10px, env(safe-area-inset-bottom))}#touch{position:absolute;inset:0;pointer-events:none;z-index:5}#touch>*{pointer-events:auto}#joy{position:absolute;left:calc(var(--sl) + 2vw);bottom:calc(var(--sb) + 2vh);width:128px;height:128px;border-radius:50%;background:#c0c0c059;border:2px solid rgba(255,255,255,.5);box-shadow:inset 2px 2px #00000080,inset -2px -2px #ffffff80}#knob{position:absolute;left:50%;top:50%;width:50px;height:50px;background:var(--face);box-shadow:var(--raised);transform:translate(-50%,-50%)}#joy .ar{position:absolute;width:0;height:0;border:7px solid transparent;opacity:.75;pointer-events:none}#joy .ar.u{left:50%;top:5px;margin-left:-7px;border-top:0;border-bottom-color:#fff}#joy .ar.d{left:50%;bottom:5px;margin-left:-7px;border-bottom:0;border-top-color:#fff}#joy .ar.l{top:50%;left:5px;margin-top:-7px;border-left:0;border-right-color:#fff}#joy .ar.r{top:50%;right:5px;margin-top:-7px;border-right:0;border-left-color:#fff}.tb{width:46px;height:46px;min-width:0;min-height:0;padding:0;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;--px: 2}.tb svg{width:calc(var(--px) * 12px);height:auto;display:block;pointer-events:none}.tb:active:not(:disabled),.tb.down{padding:0;box-shadow:var(--pressed)}.tb:active:not(:disabled)>*,.tb.down>*{transform:translate(1px,1px)}.tb.on{box-shadow:var(--pressed);background:repeating-conic-gradient(var(--face) 0 25%,var(--hi) 0 50%) 0 0 / 2px 2px}body.touch #hud .tpack,body.touch #hud .tbar,body.touch #hud .tools,body.touch #hud .tmenu,body.touch #hud .tact,body.touch #h-slots{pointer-events:auto}body.touch #hud .bl{top:var(--st);bottom:auto;left:var(--sl);width:150px;padding:5px 6px}body.touch #hud .bl .srow{display:grid;grid-template-columns:14px 1fr;column-gap:6px;align-items:center}body.touch #hud .bl .srow+.srow{margin-top:3px}body.touch #hud .bl .sic{display:block;grid-row:1 / span 2;grid-column:1}body.touch #hud .bl .sic svg{width:14px;height:auto;display:block}body.touch #hud .bl .srow.time .sic{grid-row:1}body.touch #hud .bl .lbl{font-size:11px;margin:0;line-height:1.1;grid-column:2}body.touch #hud .bl .prog{height:12px;padding:2px;grid-column:2}body.touch #hud .bl .prog>i{background:repeating-linear-gradient(90deg,var(--navy) 0 6px,transparent 6px 8px)}body.touch #hud .bl .time .dim{grid-column:2;margin:0!important}body.touch #hud .tl{top:calc(var(--st) + 94px);left:var(--sl);min-width:0;width:150px;padding:3px 6px;display:flex;flex-wrap:wrap;gap:0 8px;font-size:11px}body.touch #hud .tc{top:var(--st)}body.touch #hud .tr{top:calc(var(--st) + 48px);right:var(--sr);min-width:0;max-width:30vw;font-size:11px}body.touch #hud .toasts{top:calc(var(--st) + 44px)}body.touch #hud .tmenu{display:flex;gap:6px;top:var(--st);right:var(--sr)}body.touch #hud .tmenu .tb{width:40px;height:40px}body.standalone #hud #h-fs,body.standalone .fsbtn{display:none}body.touch #hud .tact{display:grid;grid-template-areas:"flash sprint" "crouch hand";gap:8px;align-items:end;justify-items:end;right:var(--sr);bottom:var(--sb)}body.touch #hud .tact .flash{grid-area:flash;width:46px;height:46px;font-size:22px}body.touch #hud .tact .sprint{grid-area:sprint;width:58px;height:58px;--px: 3}body.touch #hud .tact .crouch{grid-area:crouch;width:54px;height:54px;--px: 3}body.touch #hud .tact .hand{grid-area:hand;width:72px;height:72px;--px: 4}body.touch #hud .bc{bottom:var(--sb)}body.touch #hud .tpack{display:flex;width:48px;height:48px;font-size:26px}body.touch #h-slots{padding:3px}body.touch .slot{width:44px;height:44px}body.touch #hud .tbar{display:flex;position:absolute;left:50%;top:-19px;margin-left:-26px;width:52px;height:17px;min-height:0;padding:0;align-items:center;justify-content:center;--px: 1}body.touch #hud .tbar svg{transform:rotate(180deg);width:12px}body.touch #hud .tbar:active,body.touch #hud .tbar.down{padding:0}body.touch #hud .bc.folded #h-slots{display:none}body.touch #hud .bc.folded .tbar{position:static;margin:0}body.touch #hud .bc.folded .tbar svg{transform:none}body.touch #hud .tools:not(.hidden){display:block;bottom:calc(var(--sb) + 78px);left:50%;transform:translate(-50%)}body.touch #hud .tools .grid{display:grid;grid-template-columns:repeat(4,44px);gap:4px;padding:6px}body.touch #hud .tools .tb{width:44px;height:44px}body.touch .taskbar .fsbtn{display:flex;margin-left:auto}body.touch .taskbar .tray{margin-left:0}.taskbar .fsbtn{display:none;min-width:0;width:26px;height:22px;min-height:0;padding:0;align-items:center;justify-content:center}.taskbar .fsbtn svg{width:12px;height:12px}@media(max-height:420px){#joy{width:112px;height:112px}body.touch #hud .tl{top:calc(var(--st) + 88px)}body.touch #hud .tact .hand{width:64px;height:64px;--px: 3}body.touch #hud .tact .sprint{width:52px;height:52px;--px: 2}body.touch #hud .tact .crouch{width:50px;height:50px;--px: 2}body.touch #hud .tact .flash{width:42px;height:42px}body.touch #hud .tpack{width:44px;height:44px;font-size:24px}body.touch .slot{width:40px;height:40px;font-size:20px}}@media(max-width:560px){.screen{padding:8px 8px 40px}.sheet{padding:8px}}
