:root{--bg:#05070b;--line:#1d2733;--text:#c9d4df;--dim:#6b7a8a;--green:#7CFF6B;--amber:#FFB347;--red:#FF4D4D;--blue:#6bc5ff}
/* session 10: always landscape — a phone or tablet held upright gets the whole body turned a quarter turn clockwise (html.rot,
   set by applyRot() with --rw/--rh = the screen's height/width in px). Safe-area insets and vw/vh are read through these vars,
   remapped while turned; width/height breakpoints are the classes lw620/lw760/lh520 (media queries see the upright screen). */
:root{--sat:0px;--sar:0px;--sab:0px;--sal:0px;--vw:1vw;--vh:1vh}
@supports(top:env(safe-area-inset-top)){:root{--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px)}
  html.rot{--sat:env(safe-area-inset-right,0px);--sar:env(safe-area-inset-bottom,0px);--sab:env(safe-area-inset-left,0px);--sal:env(safe-area-inset-top,0px)}}
html.rot{--vw:1vh;--vh:1vw}
html.rot body{position:fixed;left:0;top:0;width:var(--rw,100vh);height:var(--rh,100vw);transform-origin:0 0;transform:translateX(var(--rh,100vw)) rotate(90deg)}
*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,-apple-system,Roboto,sans-serif;-webkit-user-select:none;user-select:none}
canvas{display:block;position:fixed;inset:0;width:100%;height:100%}
canvas.play{cursor:none}
#ui{position:fixed;inset:0;pointer-events:none;z-index:2}
.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:radial-gradient(ellipse at center,rgba(8,14,20,.80) 0%,rgba(3,5,8,.96) 100%);pointer-events:auto;overflow-y:auto;padding:40px 16px;padding:max(40px,var(--sat)) max(16px,var(--sar)) max(40px,var(--sab)) max(16px,var(--sal))}
.screen>.inner{margin:auto 0;display:flex;flex-direction:column;align-items:center;width:100%}
.screen.clear{background:rgba(3,5,8,.74)}
h1.logo{font-size:clamp(46px,calc(var(--vw)*9),108px);letter-spacing:.32em;font-weight:800;color:#e9f1f7;text-indent:.32em;text-shadow:0 0 30px rgba(124,255,107,.22);line-height:1.05;text-align:center}
.tag{color:var(--dim);letter-spacing:.5em;text-transform:uppercase;font-size:12px;margin:10px 0 38px;text-indent:.5em;text-align:center}
.goggles{display:flex;gap:14px;margin-bottom:20px}
.goggles i{width:13px;height:13px;border-radius:50%;background:var(--green);box-shadow:0 0 14px var(--green),0 0 30px rgba(124,255,107,.5);animation:blink 7s infinite}
.goggles i:nth-child(2){animation-delay:.07s}.goggles i:nth-child(3){animation-delay:.14s}
@keyframes blink{0%,95%,100%{opacity:1}96%,98%{opacity:.08}}
.menu{display:flex;flex-direction:column;gap:9px;min-width:290px}
.btn{pointer-events:auto;background:rgba(5,8,12,.6);border:1px solid var(--line);color:var(--text);padding:12px 22px;font-size:14px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:all .15s;font-family:inherit;text-align:left;position:relative}
@media(hover:hover){.btn:hover:not(:disabled){border-color:var(--green);color:#fff;background:rgba(124,255,107,.06);padding-left:30px}}
@media(hover:hover){.btn:hover:not(:disabled)::before{content:'▸';position:absolute;left:12px;color:var(--green)}}
.btn:disabled{opacity:.35;cursor:default}
.btn.primary{border-color:rgba(124,255,107,.55);color:var(--green)}
.btn.small{padding:8px 14px;font-size:12px}
.btn.center{text-align:center}
.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}
.panel{background:rgba(10,15,21,.93);border:1px solid var(--line);padding:26px 28px;max-width:880px;width:100%}
.panel h2{font-size:12px;letter-spacing:.4em;color:var(--dim);text-transform:uppercase;font-weight:600;margin-bottom:6px}
.panel h3{font-size:28px;letter-spacing:.12em;margin-bottom:12px;color:#eef4f9;text-transform:uppercase}
.brief{line-height:1.65;color:#aab7c4;margin:12px 0 16px;font-size:15px;white-space:pre-line}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:14px;margin:10px 0}
.kv b{color:var(--dim);font-weight:500;letter-spacing:.1em;text-transform:uppercase;font-size:12px;padding-top:2px}
.missions{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;width:100%;max-width:1020px;margin:16px 0}
.mcard{border:1px solid var(--line);padding:14px 16px;cursor:pointer;background:rgba(10,15,21,.88);transition:all .15s;pointer-events:auto;position:relative}
@media(hover:hover){.mcard:hover{border-color:var(--green)}}
.mcard.locked{opacity:.33;cursor:default}
@media(hover:hover){.mcard.locked:hover{border-color:var(--line)}}
.mcard .n{font-size:11px;letter-spacing:.3em;color:var(--dim)}
.mcard .t{font-size:18px;letter-spacing:.08em;margin:4px 0;color:#eef4f9;text-transform:uppercase}
.mcard .s{font-size:12px;color:var(--dim);line-height:1.5}
.mcard .rk{position:absolute;right:14px;top:10px;font-size:28px;font-weight:800}
.rk-S{color:#ffd84d}.rk-A{color:var(--green)}.rk-B{color:var(--blue)}.rk-C{color:#c9d4df}.rk-D{color:#888}
.obj{list-style:none;margin:8px 0}
.obj li{padding:4px 0;font-size:14px}
.obj li::before{content:'◇ ';color:var(--amber)}
.obj li.opt::before{content:'◆ ';color:var(--blue)}
.gear{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.gear span{border:1px solid var(--line);padding:5px 10px;font-size:12px;letter-spacing:.1em;color:#d8e2ea}
.gear span b{color:var(--green);margin-left:6px}
.shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:14px 0}
.upg{border:1px solid var(--line);padding:12px 14px;background:rgba(10,15,21,.85);display:flex;flex-direction:column}
.upg .t{font-size:15px;letter-spacing:.06em;color:#eef4f9}
.upg .d{font-size:12px;color:var(--dim);margin:4px 0 10px;flex:1;line-height:1.45}
.upg.own{border-color:rgba(124,255,107,.45)}
.upg.max .t::after{content:'  ✓';color:var(--green)}
.upg .pips{float:right;margin-top:3px}.upg .pips i{display:inline-block;width:7px;height:7px;border:1px solid #3a4a58;margin-left:5px;transform:rotate(45deg)}
.upg .pips i.on{background:var(--green);border-color:var(--green)}
.upg .cur{color:#9fdc93}.upg .nx{color:#c9d4df}.upg .dm{color:#d8c7a6}
.pts{color:var(--amber);font-weight:700}
.xp{color:var(--green);font-weight:700}
.lvbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 2px;font-size:13px}.lvbar b{color:var(--green);letter-spacing:.08em}
.lvbar .bar{display:inline-block;width:160px;max-width:calc(var(--vw)*40);height:6px;background:rgba(255,255,255,.08)}.lvbar .bar i{display:block;height:100%;background:var(--green)}
.lvbar span{color:var(--dim)}.lvnext{font-size:12px;color:#c9d4df;margin:2px 0 4px}
.lvup{text-align:center;color:var(--green);font-weight:700;letter-spacing:.08em;margin:6px 0 2px}.lvup span{font-weight:400;letter-spacing:0;color:#c9d4df;font-size:12px}
.tlv{font-size:11px;letter-spacing:.2em;color:var(--dim);text-transform:uppercase;margin-top:10px}
.row.bktop{justify-content:flex-start;margin:0 0 12px}
html.touch .row.bktop{position:sticky;top:var(--sat);top:calc(var(--sat) - max(40px,var(--sat)));z-index:3;background:rgba(10,15,21,.96);padding:6px 0;margin:-6px 0 8px}   /* session 10: sticks at the safe top, not under the screen's top padding (nothing peeks above it) */
.upg.locked{opacity:.62}.upg .lk{color:var(--amber)}
.catbar .chip{max-width:none}.catbar .chip .n{color:#7d8c9c;font-size:11px;margin-left:2px}
.ocols>div>h2.oth{margin-top:14px}
/* session 9, touch: the Requisition bar, a grid of gun cards with short text (Details shows everything), Options in two columns */
html.touch .shoph>h2,html.touch .shoph>h3{display:none}
html.touch .row.tbar{align-items:center;flex-wrap:wrap;gap:6px}html.touch .tbar .seg{margin:0;flex:0 1 auto}html.touch .tbar .seg .btn{flex:0 0 auto;padding:7px 10px;font-size:11px}
html.touch .tbar .tsum{font-size:12px;color:#c9d4df;margin-left:4px}html.touch .tbar .tsum b{color:var(--green);font-weight:600}
html.touch .lvnext{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11.5px;margin:0 0 6px}
html.touch .catbar{gap:5px}html.touch .catbar .chip{min-height:30px;padding:5px 8px;font-size:11px}
html.touch .armcols{grid-template-columns:1fr;gap:4px}html.touch .armcols .shop{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important;margin:4px 0 8px;gap:6px}
html.touch .ldp{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center}html.touch .ldp .seg{margin:2px 0}html.touch .ldp .hint{grid-column:1/-1}
html.touch .gcard .tagl{display:none}html.touch .armcols h2{margin-top:6px}
html.touch .gcard .d{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:6px;flex:0 0 auto;max-height:2.8em}html.touch .gcard{justify-content:space-between}html.touch .gcard .t{font-size:13px}
html.touch .gcard .row .btn.small{padding:6px 8px;font-size:10.5px;letter-spacing:.08em}
html.touch .opanel{max-width:960px!important}html.touch .ocols{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}html.touch .ocols>div>h2.oth{margin-top:0}
html.touch:where(.lw620) .ocols{grid-template-columns:1fr}html.touch:where(.lw620) .ocols>div>h2.oth{margin-top:14px}
.big-rank{font-size:100px;font-weight:900;line-height:1;text-align:center;margin:6px 0}
.stats{width:100%;border-collapse:collapse;font-size:14px;margin:10px 0}
.stats td{padding:6px 4px;border-bottom:1px solid #121a23}
.stats td:last-child{text-align:right;font-family:ui-monospace,Menlo,Consolas,monospace}
.stats tr.bonus td{color:var(--green)}
.stats tr.pen td{color:#ff8c8c}
.keys{display:grid;grid-template-columns:auto 1fr;gap:7px 16px;font-size:14px;align-items:center}
.keys kbd{font-family:ui-monospace,Menlo,Consolas,monospace;border:1px solid #2a3846;border-bottom-width:2px;padding:1px 7px;border-radius:3px;font-size:12px;color:#e6eef5;white-space:nowrap;display:inline-block;margin:1px 2px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
:where(html.lw760) .cols{grid-template-columns:1fr}
.tips{font-size:13px;color:#9fb0bf;line-height:1.6}
.tips li{margin:4px 0 4px 18px}
.hint{color:var(--dim);font-size:12px;margin-top:14px;text-align:center;line-height:1.6}
.slider{display:flex;align-items:center;gap:12px;margin:10px 0}
.slider label{width:110px;font-size:12px;letter-spacing:.12em;color:var(--dim);text-transform:uppercase}
.slider input{flex:1;pointer-events:auto;accent-color:#7CFF6B}
.seg{display:flex;gap:6px;margin:8px 0 14px}
.seg .btn{flex:1;text-align:center;padding:10px}
.seg .btn.on{border-color:var(--green);color:var(--green);background:rgba(124,255,107,.07)}
.fail h3{color:var(--red)}
.inst{position:fixed;top:max(10px,var(--sat));right:max(14px,var(--sar));z-index:3;pointer-events:auto;border-color:var(--green);color:#c8ffbf}
.back{position:fixed;top:14px;left:16px;top:max(14px,var(--sat));left:max(16px,var(--sal));font-size:11px;color:var(--dim);text-decoration:none;letter-spacing:.25em;pointer-events:auto;z-index:3;text-transform:uppercase}
@media(hover:hover){.back:hover{color:var(--green)}}
.warn{border:1px solid rgba(255,179,71,.4);color:var(--amber);padding:10px 14px;font-size:13px;margin-bottom:18px;max-width:420px;text-align:center;line-height:1.5}
.inp{pointer-events:auto;background:rgba(5,8,12,.78);border:1px solid var(--line);color:#e6eef5;padding:9px 11px;font:13px ui-monospace,Menlo,Consolas,monospace;width:100%;-webkit-user-select:text;user-select:text;resize:vertical;outline:none;word-break:break-all}
.inp:focus{border-color:rgba(124,255,107,.55)}
.kv .inp{max-width:260px}
.cfield{display:flex;gap:8px;align-items:stretch;margin:8px 0}
.cfield .btn{white-space:nowrap}
.arc{grid-column:1/-1;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:12px 0 2px;border-top:1px solid var(--line);padding-top:12px}
.arc h2{font-size:12px;letter-spacing:.4em;color:var(--amber);text-transform:uppercase;font-weight:600}
.arc span{font-size:12px;color:var(--dim)}
.mcard.sel{border-color:var(--green);background:rgba(124,255,107,.07)}
.kbgrid{display:grid;grid-template-columns:1fr 128px 128px;gap:6px 10px;align-items:center;margin:6px 0}
.kbgrid .kl{font-size:13px;color:#c9d4df}
.btn.kb{text-align:center;padding:7px 8px;font:600 12px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em;text-transform:none}
@media(hover:hover){.btn.kb:hover:not(:disabled){padding-left:8px}.btn.kb:hover:not(:disabled)::before{content:none}}
.btn.kb.on{border-color:var(--amber);color:var(--amber);background:rgba(255,179,71,.08)}
.btn.kb.none{color:#4f5d6b}
.upg.sel{border-color:var(--amber);background:rgba(255,179,71,.05)}
.upg .tagl{float:right;font-size:10px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase;margin:4px 0 0 8px}
h2 .sub{text-transform:none;letter-spacing:0;font-weight:400}
.stp{display:grid;grid-template-columns:130px 1fr;gap:6px 14px;font-size:13px;margin:8px 0}
.stp .k{color:var(--dim);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding-top:2px}
.stp .v{color:#e6eef5;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}
.stp .b{display:block;color:#7d8c9c;font-size:11px;margin-top:2px;line-height:1.4}
.ldp{display:flex;flex-direction:column;gap:0;margin:4px 0 8px}
.ldp b{font-size:11px;letter-spacing:.2em;color:var(--dim);text-transform:uppercase;font-weight:500}
.ldp .seg{flex-wrap:wrap;margin:4px 0 8px}.ldp .seg .btn{flex:0 0 auto;padding:7px 11px;font-size:11px;letter-spacing:.08em}
.attrow{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;align-items:start;margin:8px 0}
.attrow .k{color:var(--dim);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding-top:7px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);padding:6px 9px;font-size:12px;background:rgba(10,15,21,.85);pointer-events:auto;cursor:pointer;color:#c9d4df;font-family:inherit;text-align:left;max-width:300px}
@media(hover:hover){.chip:hover:not(:disabled){border-color:var(--green)}}
.chip.on{border-color:var(--green);color:var(--green)}
.chip:disabled{opacity:.4;cursor:default}
.chip small{display:block;color:#7d8c9c;font-size:11px;margin-top:3px;line-height:1.35}
details.stx summary{cursor:pointer;color:var(--dim);font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin:10px 0 4px;pointer-events:auto}
@media(hover:hover){details.stx summary:hover{color:var(--green)}}
.uitoast{position:fixed;left:50%;top:22px;top:max(22px,var(--sat));transform:translateX(-50%);background:rgba(10,15,21,.95);border:1px solid rgba(124,255,107,.5);color:var(--green);padding:7px 16px;font-size:13px;letter-spacing:.1em;z-index:5;pointer-events:none}
/* touch (phones, tablets): html.touch is set by applyTouch(); #tc, .trot and .tprobe exist only on touch devices */
html.touch,html.touch body{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none}
html.touch .screen{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
html.touch.rot .screen{touch-action:pan-x pan-y}html.touch.rot input[type=range]{touch-action:none}   /* turned: the list scrolls along the screen's width (let the browser pan either way); a slider keeps its own drags */
html.touch .btn{min-height:36px;touch-action:manipulation;padding:7px 14px;font-size:12.5px;letter-spacing:.12em}html.touch .btn.small{min-height:32px;padding:6px 11px;font-size:11.5px}html.touch .seg .btn{min-height:36px;padding:7px 8px}
html.touch .chip{min-height:34px;padding:7px 9px;font-size:11.5px;touch-action:manipulation}html.touch .mcard{touch-action:manipulation;padding:10px 12px}
/* session 9: compact menus and shop on touch (phones, tablets) — the in-game #tc layer is styled separately and unchanged */
html.touch .menu{gap:6px}html.touch .row{gap:6px;margin-top:12px}html.touch .seg{gap:6px;margin:6px 0 10px}
html.touch .shop{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:10px 0}
html.touch .upg{padding:9px 11px}html.touch .upg .t{font-size:13.5px}html.touch .upg .d{font-size:11.5px;margin:3px 0 7px;line-height:1.38}html.touch .upg .tagl{font-size:9px}
html.touch .stp{gap:4px 10px;font-size:12px}html.touch .stp .v{font-size:11.5px}html.touch .stp .b{font-size:10.5px}html.touch .stp .k{font-size:10px}
html.touch .attrow{gap:6px 10px}html.touch .chip small{font-size:10.5px}html.touch .slider{margin:6px 0}html.touch .mcard .t{font-size:16px}
html.touch .ldp .seg .btn{padding:6px 9px;font-size:10.5px}html.touch .panel h3{margin-bottom:8px}html.touch .stats td{padding:4px}
html.touch details.stx summary{padding:8px 0;touch-action:manipulation}html.touch .inp{font-size:16px}
html.touch .btn:active:not(:disabled){border-color:var(--green);color:#fff;background:rgba(124,255,107,.1)}
html.touch .chip:active:not(:disabled),html.touch .mcard:not(.locked):active{border-color:var(--green)}
html.touch .kbgrid{grid-template-columns:1fr 104px 104px}
html.touch:where(.lh520) .screen{padding-top:max(16px,var(--sat));padding-bottom:max(16px,var(--sab))}html.touch:where(.lh520) .row.bktop{top:calc(var(--sat) - max(16px,var(--sat)))}
html.touch:where(.lh520) .panel{padding:16px 18px}html.touch:where(.lh520) .panel h3{font-size:22px;margin-bottom:8px}html.touch:where(.lh520) h1.logo{font-size:clamp(34px,calc(var(--vw)*8),64px)}
html.touch:where(.lh520) .tag{margin:6px 0 16px}html.touch:where(.lh520) .goggles{margin-bottom:10px}html.touch:where(.lh520) .brief{font-size:14px;line-height:1.5}
html.touch:where(.lh520) .menu:has(>.btn:nth-child(5)){display:grid;grid-template-columns:1fr 1fr;min-width:min(560px,calc(var(--vw)*92))}
#tc{position:fixed;inset:0;z-index:1;display:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;overflow:hidden}
#tc.on{display:block}
#tc .tz{position:absolute}
#tc .tb{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:rgba(8,13,19,.5);border:1.5px solid rgba(201,212,223,.34);color:#e2eaf1;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:800;letter-spacing:.03em;text-align:center;line-height:1.08;text-shadow:0 1px 2px #000}
#tc .tb span{position:relative;z-index:1;pointer-events:none;padding:0 4px}
#tc .tb small{display:block;font-size:.8em;font-weight:700;opacity:.8;margin-top:1px}
#tc .tb .rk{display:flex;align-items:center;gap:.3em;font-weight:inherit}#tc .tb .rk img{width:2.29em;height:2.29em;flex:none}#tc .tb .rk i{font-style:normal}
#tc .tb.pill{border-radius:16px}#tc .tb.sq{border-radius:12px}#tc .tb.g{border-radius:14px}#tc .tb.itm{border-radius:12px;border-color:rgba(124,255,107,.45)}
#tc .tb.big{border-width:2px;border-color:rgba(255,140,120,.6);background:rgba(48,12,10,.5);color:#ffd9d2}
#tc .tb.td{border-width:2px;border-color:rgba(107,197,255,.72);color:#cfe9ff;background:rgba(10,24,40,.56)}#tc .tb.td small{font-size:.74em;white-space:nowrap}
#tc .tb.lit{border-color:#7CFF6B;color:#c8ffbf;background:rgba(20,52,20,.62)}#tc .tb.dim{opacity:.42}#tc .tb.hold{border-style:dashed}#tc .tb.long span{font-size:.84em}
#tc .tb.dn{background:rgba(124,255,107,.3);transform:scale(.95)}
#tc .tb .rg{position:absolute;inset:-4px;border-radius:50%;display:none;pointer-events:none;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px))}
#tc .tb.pill .rg{inset:auto 8px 5px 8px;height:4px;border-radius:2px;-webkit-mask:none;mask:none}
#tc .stk{position:absolute;border-radius:50%;border:2px solid rgba(201,212,223,.3);background:rgba(8,13,19,.3);pointer-events:none;display:none}
#tc .stk.am{pointer-events:auto}
#tc .stk i{position:absolute;left:28%;top:28%;width:44%;height:44%;border-radius:50%;background:rgba(201,212,223,.3);border:1.5px solid rgba(255,255,255,.45);pointer-events:none}
#tc .fz{border-radius:50%;display:none}
#tc .stk b{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);display:none;white-space:nowrap;font:800 11px ui-monospace,Menlo,monospace;letter-spacing:.12em;color:#c8ffbf;text-shadow:0 1px 2px #000;pointer-events:none}
#tc .stk.mvm{border-color:#7CFF6B;box-shadow:0 0 16px rgba(124,255,107,.4)}#tc .stk.mvm b{display:block}
#tc .tbr{position:absolute;display:none;align-items:center;justify-content:center;color:rgba(200,255,190,.6);font-family:ui-monospace,Menlo,monospace;font-weight:800;letter-spacing:.2em;border:1.5px dashed rgba(124,255,107,.28);border-radius:18px;pointer-events:none}
#tc .tgrid{position:absolute;display:none;flex-wrap:wrap;justify-content:flex-end;gap:6px;padding:8px;background:rgba(6,10,15,.94);border:1px solid #2a3846;border-radius:12px}
#tc .tgrid.on{display:flex}
#tc .tgi{min-width:74px;min-height:48px;padding:6px 8px;border:1px solid #2a3846;border-radius:10px;color:#d8e2ea;font:800 11px ui-monospace,Menlo,monospace;text-align:center;display:flex;flex-direction:column;justify-content:center}
#tc .tgi small{font-size:12px;color:#9fb0bf;margin-top:2px}#tc .tgi.on{border-color:#7CFF6B;color:#c8ffbf}
.trot{position:fixed;inset:0;z-index:4;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#05070b;color:#c9d4df;font-size:15px;letter-spacing:.1em;text-align:center;padding:20px}
.trot.on{display:flex}.trot div{font-size:56px;color:var(--green)}
.tprobe{position:fixed;left:0;top:0;width:0;height:0;visibility:hidden;pointer-events:none;padding:var(--sat) var(--sar) var(--sab) var(--sal)}
/* GameArts round 03: GameArt's item pictures beside the shop's and the HUD's text (src/room/link.ts roomPic), on the shipped page only */
.nj-pic{display:block;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
.upg:has(>.nj-pic){display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;column-gap:12px;align-content:stretch}
.upg>.nj-pic{grid-column:1;grid-row:1/3;align-self:start;margin-top:2px}
.upg>.nj-pic~*{grid-column:2}
.upg>.nj-pic~.btn,.upg>.nj-pic~.row{grid-column:1/-1}
.upg>.nj-pic~.d{align-self:start}
.nj-pic-wide{width:112px;height:56px}
.nj-pic-sq{width:64px;height:64px}
.nj-pic-sup{width:56px;height:56px}
.nj-pic-chip,.nj-pic-chipsq,.nj-pic-seg{display:inline-block;vertical-align:middle;margin:-2px 7px 0 0}
.nj-pic-chip{width:40px;height:20px}
.nj-pic-chipsq{width:22px;height:22px}
.nj-pic-seg{width:34px;height:17px;margin-right:6px}
#tc .nj-pic-tg{width:3.6em;height:1.8em;margin:0 auto 1px}
#tc .tgi .nj-pic-tg{width:44px;height:24px}
html.touch .nj-pic-wide{width:84px;height:42px}
html.touch .nj-pic-sq,html.touch .nj-pic-sup{width:48px;height:48px}
html.touch .upg:has(>.nj-pic){column-gap:9px}
