:root {
    --bg:#0b0c0b; --panel:#131512; --panel2:#181a17; --line:#2c2f2a; --line2:#3b3f38;
    --t1:#d9d6c8; --t2:#9a988c; --t3:#66655d;
    --gold:#c8ab6a; --gold2:#e2c88a; --intel:#6fa3c4; --ok:#7fae5a; --bad:#c2523f;
    --hud:'Rajdhani','Bahnschrift','Arial Narrow',sans-serif;
    --mono:'JetBrains Mono',Consolas,ui-monospace,monospace;
    --ib-default:rgba(127,127,127,.18); --ib-blue:rgba(28,65,86,.62); --ib-violet:rgba(76,42,85,.62);
    --ib-orange:rgba(96,50,10,.62); --ib-green:rgba(33,62,10,.62); --ib-red:rgba(109,36,24,.62);
    --ib-yellow:rgba(104,102,40,.55); --ib-black:rgba(0,0,0,.6); --ib-grey:rgba(60,60,60,.5);
    --cs:52px;
  }
  * { box-sizing:border-box; margin:0; padding:0; }
  body { background:var(--bg); color:var(--t1); font-family:var(--hud); font-size:15px; font-weight:500; line-height:1.35; min-height:100vh;
         background-image:radial-gradient(ellipse at 50% -20%, #1d2019 0%, transparent 60%),
           repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0 1px, transparent 1px 3px); }
  button { font-family:var(--hud); font-weight:600; font-size:.88rem; letter-spacing:.06em; text-transform:uppercase; cursor:pointer;
           color:var(--t1); background:linear-gradient(#22251f,#1a1c18); border:1px solid var(--line2); padding:.4rem .8rem;
           transition:border-color .12s, color .12s; }
  button:hover:not(:disabled) { border-color:var(--gold); color:var(--gold2); }
  button:disabled { opacity:.35; cursor:not-allowed; }
  button:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
  button.sm { font-size:.7rem; padding:.2rem .45rem; }
  .hide { display:none !important; }
  .num { font-family:var(--mono); font-variant-numeric:tabular-nums; }
  .muted { color:var(--t3); } .gold { color:var(--gold2); } .intel { color:var(--intel); } .bad { color:var(--bad); } .ok { color:var(--ok); }

  /* top bar */
  .top { display:flex; border-bottom:1px solid var(--line2); background:linear-gradient(#171915,#101210); position:sticky; top:0; z-index:5; }
  .brand { padding:.55rem 1.1rem; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; }
  .brand b { font-size:1.35rem; letter-spacing:.32em; color:var(--gold2); line-height:1; }
  .brand span { font-size:.6rem; letter-spacing:.22em; color:var(--t3); text-transform:uppercase; margin-top:.2rem; }
  .stats { display:flex; flex:1; min-width:0; flex-wrap:wrap; }
  .st { padding:.45rem .95rem; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; min-width:110px; }
  .st label { font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--t2); display:flex; justify-content:space-between; gap:.6rem; }
  .st label em { font-style:normal; color:var(--t3); letter-spacing:.06em; }
  .st .v { font-family:var(--mono); font-size:.95rem; font-weight:700; }
  .meter { height:4px; background:#0a0b0a; border:1px solid var(--line); margin-top:.25rem; overflow:hidden; }
  .meter i { display:block; height:100%; background:var(--gold); transition:width .35s; }
  .meter.stam i { background:linear-gradient(90deg,#8fae5a,#b5cf72); }
  .meter.full i { background:var(--bad); }
  .lvl { display:flex; align-items:center; gap:.6rem; }
  .badge { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--gold); font-family:var(--mono); font-weight:700;
           color:var(--gold2); background:rgba(200,171,106,.08); clip-path:polygon(15% 0,85% 0,100% 15%,100% 85%,85% 100%,15% 100%,0 85%,0 15%); }
  .rightbar { display:flex; align-items:center; gap:.6rem; padding:0 1rem; }
  .checkin { background:linear-gradient(#2a4556,#1d3240); border-color:var(--intel); color:#dbeaf3; }
  .sup { font-size:.62rem; letter-spacing:.2em; color:#141209; background:var(--gold2); padding:.15rem .4rem; font-weight:700; }

  /* shell */
  .app { display:grid; grid-template-columns:270px minmax(0,1fr) 330px; min-height:calc(100vh - 56px); }
  @media (max-width:1200px) { .app { grid-template-columns:250px minmax(0,1fr); } .chat { grid-column:1 / -1; max-height:320px; } }
  @media (max-width:760px)  { .app { grid-template-columns:1fr; } }
  .col-l { border-right:1px solid var(--line); background:rgba(0,0,0,.25); }
  .col-m { min-width:0; display:flex; flex-direction:column; }
  .chat  { border-left:1px solid var(--line); background:rgba(0,0,0,.25); display:flex; flex-direction:column; }
  .hdr { font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:var(--t2); padding:.6rem .9rem; border-bottom:1px solid var(--line);
         display:flex; justify-content:space-between; align-items:baseline; gap:.6rem; }
  .hdr em { font-style:normal; letter-spacing:.06em; color:var(--t3); font-size:.68rem; text-transform:none; }

  /* locations */
  .locs { display:flex; flex-direction:column; padding:.4rem; gap:3px; }
  .loc { display:grid; grid-template-columns:1fr auto; align-items:center; text-align:left; padding:.45rem .65rem; background:var(--panel);
         border:1px solid var(--line); position:relative; text-transform:none; letter-spacing:0; }
  .loc b { font-size:.98rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; }
  .loc small { display:block; font-size:.66rem; color:var(--t3); letter-spacing:.08em; text-transform:uppercase; font-weight:600; }
  .loc .r { font-family:var(--mono); font-size:.68rem; color:var(--t3); text-align:right; }
  .loc.sel { border-color:var(--gold); background:linear-gradient(90deg,rgba(200,171,106,.14),var(--panel) 70%); }
  .loc.sel::before { content:''; position:absolute; left:-1px; top:-1px; bottom:-1px; width:3px; background:var(--gold); }
  .loc.locked { opacity:.42; }
  .lock { width:10px; height:12px; display:inline-block; vertical-align:-1px; margin-right:.3rem; background:currentColor;
          clip-path:polygon(20% 40%,20% 20%,35% 5%,65% 5%,80% 20%,80% 40%,100% 40%,100% 100%,0 100%,0 40%,30% 40%,30% 22%,40% 14%,60% 14%,70% 22%,70% 40%); }
  .deploy { margin:.4rem; padding:.75rem; border:1px solid var(--line2); background:var(--panel); }
  .facts { display:grid; grid-template-columns:auto 1fr; gap:.15rem .7rem; font-size:.8rem; margin:.4rem 0 .6rem; }
  .facts span:nth-child(odd) { color:var(--t3); letter-spacing:.08em; text-transform:uppercase; font-size:.68rem; align-self:center; }
  .loottable { display:flex; flex-wrap:wrap; gap:3px; margin:.3rem 0 .7rem; }
  .sub { font-size:.64rem; letter-spacing:.2em; color:var(--t3); text-transform:uppercase; }
  .go { width:100%; font-size:1.3rem; letter-spacing:.28em; padding:.65rem; color:#141209; background:linear-gradient(#d6bb78,#a98d4f); border-color:#e2c88a; font-weight:700; }
  .go:hover:not(:disabled) { color:#000; background:linear-gradient(#e6cd8c,#b89a58); }
  .row2 { display:flex; gap:4px; margin-top:4px; } .row2 button { flex:1; font-size:.72rem; }
  .hint { font-size:.74rem; color:var(--t3); margin-top:.5rem; }
  .credit { font-size:.66rem; color:var(--t3); padding:.4rem .8rem 1rem; line-height:1.45; }

  /* tabs */
  .tabs { display:flex; border-bottom:1px solid var(--line2); background:rgba(0,0,0,.2); padding:0 .6rem; gap:2px; flex-wrap:wrap; }
  .tabs button { border:none; background:none; padding:.75rem 1.05rem .65rem; font-size:.88rem; letter-spacing:.2em; color:var(--t2);
                 border-bottom:2px solid transparent; position:relative; }
  .tabs button.on { color:var(--gold2); border-bottom-color:var(--gold); background:linear-gradient(transparent,rgba(200,171,106,.08)); }
  .tabs .dot { position:absolute; top:.55rem; right:.4rem; width:6px; height:6px; background:var(--gold2); border-radius:50%; box-shadow:0 0 6px var(--gold); }
  .view { padding:1rem 1.1rem 3rem; }
  .box { border:1px solid var(--line); background:var(--panel); margin-bottom:.9rem; }
  .box > .hdr { background:rgba(0,0,0,.25); }
  .box-b { padding:.85rem .9rem; }
  .note { border:1px solid var(--line); border-left:3px solid var(--gold); background:var(--panel2); padding:.5rem .8rem; margin-bottom:.45rem; font-size:.9rem; }
  .note.ok { border-left-color:var(--ok); } .note.bad { border-left-color:var(--bad); } .note.intel { border-left-color:var(--intel); }

  /* items */
  .it { position:relative; background-color:var(--ib-default); border:1px solid rgba(255,255,255,.08);
        background-image:linear-gradient(rgba(255,255,255,.05),rgba(0,0,0,.18)); overflow:hidden; }
  .it img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:3%; pointer-events:none; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); }
  .it img.rot { transform:rotate(90deg); }
  .it .ct { position:absolute; bottom:1px; right:3px; font-family:var(--mono); font-size:.64rem; font-weight:700; color:#fff; text-shadow:0 0 3px #000,0 0 2px #000; z-index:1; }
  .it .fb { position:absolute; inset:0; display:grid; place-items:center; font-weight:700; color:var(--t2); font-size:.7rem; text-align:center; padding:2px; }
  .it .craft { position:absolute; top:2px; left:2px; width:7px; height:7px; background:var(--intel); z-index:1; transform:rotate(45deg); box-shadow:0 0 0 1px #000; }
  .it.gone { filter:grayscale(1) brightness(.55); }
  .bg-blue{background-color:var(--ib-blue)} .bg-violet{background-color:var(--ib-violet)} .bg-orange{background-color:var(--ib-orange)}
  .bg-green{background-color:var(--ib-green)} .bg-red{background-color:var(--ib-red)} .bg-yellow{background-color:var(--ib-yellow)}
  .bg-black{background-color:var(--ib-black)} .bg-grey{background-color:var(--ib-grey)} .bg-default{background-color:var(--ib-default)}
  .mini { width:30px; height:30px; flex:0 0 30px; }

  .grid { display:grid; grid-template-columns:repeat(auto-fill, var(--cs)); grid-auto-rows:var(--cs); grid-auto-flow:dense; padding:1px;
          background-color:#0e0f0d; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
          background-size:var(--cs) var(--cs); border:1px solid var(--line2); min-height:calc(var(--cs) * 3 + 2px); }
  .grid .it { cursor:pointer; margin:1px; }
  .grid .it:hover { border-color:var(--gold); }
  .grid .it.sel { border-color:var(--gold2); box-shadow:inset 0 0 0 1px var(--gold2); }
  .grid.small { --cs:42px; min-height:0; } .grid.small .it { cursor:default; }
  .empty { padding:2rem; color:var(--t3); text-align:center; }

  /* gear (absolute-positioned packing view) */
  .gearwrap { display:flex; gap:1.1rem; flex-wrap:wrap; align-items:flex-start; }
  .gearbox .sub { margin-bottom:.3rem; display:block; }
  .gear { position:relative; background-color:#0e0f0d; border:1px solid var(--line2); --g:40px;
          background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
          background-size:var(--g) var(--g); }
  .gear .it { position:absolute; }
  .gears { display:flex; gap:4px; flex-wrap:wrap; }

  .stash-wrap { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:.9rem; align-items:start; }
  @media (max-width:1000px){ .stash-wrap { grid-template-columns:1fr; } }
  .inspect { border:1px solid var(--line2); background:var(--panel); position:sticky; top:70px; }
  .inspect .art { height:150px; position:relative; border-bottom:1px solid var(--line); }
  .inspect .art .it { position:absolute; inset:0; border:none; }
  .inspect h3 { font-size:1.02rem; letter-spacing:.03em; padding:.6rem .8rem 0; }
  .kv { display:flex; justify-content:space-between; padding:.2rem .8rem; font-size:.84rem; gap:.6rem; }
  .kv span:first-child { color:var(--t2); }
  .stars { color:var(--gold2); letter-spacing:.1em; }
  .sellrow { display:flex; gap:4px; padding:.5rem .8rem 0; } .sellrow button { flex:1; font-size:.7rem; padding:.35rem .2rem; }
  .toolbar { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin-bottom:.7rem; } .toolbar .sp { flex:1; }

  /* raid run */
  .banner { height:140px; position:relative; overflow:hidden; border-bottom:1px solid var(--line2);
            background:linear-gradient(160deg, var(--m1) 0%, var(--m2) 55%, #070807 100%); }
  .banner::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:28px 28px; }
  .banner::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 75% 40%, transparent 0, rgba(0,0,0,.65) 70%); }
  .banner .in { position:absolute; left:1.1rem; bottom:.9rem; z-index:1; }
  .banner .in b { display:block; font-size:2.3rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:#f1ecdc; text-shadow:0 2px 14px rgba(0,0,0,.9); line-height:1; }
  .banner .in span { font-family:var(--mono); font-size:.72rem; color:rgba(241,236,220,.7); }
  .banner .clock { position:absolute; right:1rem; top:.8rem; z-index:1; font-family:var(--mono); font-size:.8rem; color:var(--gold2);
                   border:1px solid rgba(200,171,106,.5); padding:.15rem .45rem; background:rgba(0,0,0,.45); }
  .feed { height:270px; overflow-y:auto; padding:.7rem .9rem; font-family:var(--mono); font-size:.78rem; display:flex; flex-direction:column; gap:.12rem; }
  .fl { color:var(--t2); animation:fadein .18s ease-out; display:flex; align-items:center; gap:.5rem; min-height:1.3rem; flex-wrap:wrap; }
  .fl::before { content:attr(data-t); color:var(--t3); font-size:.66rem; min-width:2.6rem; }
  .fl.dim{color:var(--t3)} .fl.find{color:var(--t1)} .fl.kill{color:#c39a8f} .fl.loss{color:var(--bad)} .fl.boss{color:#e08a5a;font-weight:700}
  .fl.hit{color:var(--gold2);font-weight:700} .fl.intel{color:var(--intel);font-weight:700} .fl.out{color:var(--ok);font-weight:700}
  .fl.jack { color:#1a1405; background:linear-gradient(90deg,var(--gold2),rgba(226,200,138,.15)); font-weight:700; padding:.2rem .4rem; margin:.15rem 0; }
  .fl.jack::before { color:#3a2f12; }
  .jackbox { border:1px solid var(--gold2); background:linear-gradient(90deg,rgba(226,200,138,.22),rgba(226,200,138,.04)); padding:.7rem .9rem; margin-bottom:.6rem; display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; }
  .jackbox b { font-size:1.25rem; letter-spacing:.2em; color:var(--gold2); }
  .fl.sep { border-top:1px solid var(--line); margin-top:.3rem; padding-top:.3rem; color:var(--gold); }
  @keyframes fadein { from{opacity:0; transform:translateY(3px)} to{opacity:1; transform:none} }
  .extract { display:flex; align-items:center; gap:1rem; padding:.85rem 1rem; border-bottom:1px solid var(--line); flex-wrap:wrap;
             background:linear-gradient(90deg,rgba(127,174,90,.16),transparent 60%); }
  .extract b { font-size:1.55rem; letter-spacing:.22em; color:#b9d792; }
  .sums { display:flex; gap:1.2rem; margin-left:auto; flex-wrap:wrap; }
  .sums div { display:flex; flex-direction:column; align-items:flex-end; }
  .sums label { font-size:.58rem; letter-spacing:.2em; color:var(--t3); text-transform:uppercase; }
  .sums span { font-family:var(--mono); font-weight:700; }
  .welcome { padding:2rem 1.4rem; text-align:center; }
  .welcome b { display:block; font-size:1.6rem; letter-spacing:.2em; color:var(--gold2); margin-bottom:.4rem; }
  .welcome p { color:var(--t2); max-width:520px; margin:0 auto; }

  /* cards */
  .cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:.6rem; }
  .card { border:1px solid var(--line); background:var(--panel2); padding:.75rem; display:flex; flex-direction:column; gap:.45rem; }
  .card h4 { font-size:.98rem; letter-spacing:.08em; text-transform:uppercase; display:flex; justify-content:space-between; gap:.5rem; }
  .card h4 em { font-style:normal; font-family:var(--mono); font-size:.72rem; color:var(--t3); letter-spacing:0; }
  .card p { font-size:.83rem; color:var(--t2); }
  .card .foot { margin-top:auto; display:flex; align-items:center; gap:.5rem; justify-content:space-between; flex-wrap:wrap; }
  .card.run { border-color:var(--gold); } .card.dim { opacity:.5; }
  .need { display:flex; gap:.45rem; flex-wrap:wrap; }
  .need .n { display:flex; align-items:center; gap:.3rem; font-size:.76rem; }
  .prog { height:5px; background:#0a0b0a; border:1px solid var(--line); flex:1; min-width:80px; }
  .prog i { display:block; height:100%; background:var(--gold); }
  details.crafts { border:1px solid var(--line); background:var(--panel); margin-bottom:.5rem; }
  details.crafts summary { padding:.55rem .85rem; cursor:pointer; letter-spacing:.14em; text-transform:uppercase; font-size:.8rem; color:var(--t2); }
  .craftrow { display:flex; align-items:center; gap:.6rem; padding:.45rem .85rem; border-top:1px solid var(--line); flex-wrap:wrap; }
  .craftrow .arrow { color:var(--t3); }
  .ladder { width:100%; border-collapse:collapse; font-size:.85rem; }
  .ladder td { padding:.35rem .5rem; border-bottom:1px solid var(--line); }
  .ladder td:not(:first-child) { text-align:right; font-family:var(--mono); }
  .ladder tr.cur td { color:var(--gold2); } .ladder tr.own td { color:var(--t3); }
  .ladder .bi { width:26px; height:26px; display:inline-block; vertical-align:middle; margin-right:.5rem; }

  /* chat */
  .chat-log { flex:1; overflow-y:auto; padding:.6rem .8rem; display:flex; flex-direction:column; gap:.45rem; font-size:.86rem; min-height:200px; }
  .msg span { color:var(--t2); }
  .n1{color:#8fbf6d} .n2{color:#7ea6d6} .n3{color:#c995b6} .n4{color:#d8a865}
  .msg.sys { font-family:var(--mono); font-size:.72rem; color:var(--gold); border-left:2px solid var(--gold); padding-left:.45rem; }
  .chat-in { border-top:1px solid var(--line); padding:.55rem; display:flex; gap:.4rem; }
  .chat-in input { flex:1; min-width:0; background:#0a0b0a; border:1px solid var(--line2); color:var(--t1); padding:.4rem .55rem; font-family:var(--hud); font-size:.9rem; }
  .tip { position:fixed; z-index:20; pointer-events:none; background:#0d0e0c; border:1px solid var(--line2); padding:.4rem .6rem; font-size:.82rem;
         max-width:260px; box-shadow:0 6px 18px rgba(0,0,0,.6); }
  .tip b { display:block; } .tip span { color:var(--t2); font-family:var(--mono); font-size:.72rem; white-space:pre-line; }
  @media (prefers-reduced-motion:reduce) { *{ transition:none !important; animation:none !important; } }

  /* ---------- online build additions ---------- */
  a { color:var(--gold2); }
  .modes { display:flex; gap:4px; margin:.5rem 0 .4rem; }
  .modes button { flex:1; font-size:.78rem; letter-spacing:.14em; }
  .modes button.on { border-color:var(--gold); color:var(--gold2); background:linear-gradient(rgba(200,171,106,.18),rgba(200,171,106,.06)); }
  .modes button.pmc.on { border-color:var(--bad); color:#f0b3a6; background:linear-gradient(rgba(194,82,63,.25),rgba(194,82,63,.08)); }
  .kitline { display:flex; gap:3px; align-items:center; margin:.3rem 0; flex-wrap:wrap; }
  .kitline .it { height:40px; }
  .kitline .mini { width:40px; flex:0 0 40px; }
  .kitline .kitgun { flex:0 0 auto; }
  .kitline .kitgun img { padding:0; }
  .risk { font-size:.74rem; margin-top:.35rem; }
  .go.pmc { background:linear-gradient(#c96a55,#8f3c2c); border-color:#e08a74; color:#fff; }
  .go.pmc:hover:not(:disabled) { background:linear-gradient(#d97a64,#a0473a); color:#fff; }
  .kia { display:flex; align-items:center; gap:1rem; padding:.85rem 1rem; border-bottom:1px solid var(--line); flex-wrap:wrap;
         background:linear-gradient(90deg,rgba(194,82,63,.3),transparent 65%); }
  .kia b { font-size:1.55rem; letter-spacing:.22em; color:#f0a08e; }
  .acct { display:flex; align-items:center; gap:.5rem; font-size:.78rem; }
  .acct .who { color:var(--t1); font-weight:700; }
  .pill { font-size:.6rem; letter-spacing:.18em; padding:.12rem .4rem; border:1px solid var(--line2); color:var(--t2); text-transform:uppercase; }
  .pill.on { border-color:var(--ok); color:var(--ok); }
  .bell { position:relative; }
  .bell .ct2 { position:absolute; top:-6px; right:-6px; background:var(--bad); color:#fff; font-size:.6rem; font-family:var(--mono); padding:0 .3rem; border-radius:8px; }
  .inboxpop { position:absolute; right:.6rem; top:58px; width:340px; max-height:420px; overflow:auto; background:#0d0e0c; border:1px solid var(--line2); z-index:30;
              box-shadow:0 10px 30px rgba(0,0,0,.6); }
  .inboxpop div { padding:.5rem .7rem; border-bottom:1px solid var(--line); font-size:.84rem; }
  .inboxpop small { display:block; color:var(--t3); font-family:var(--mono); font-size:.66rem; }
  .season { font-size:.62rem; letter-spacing:.16em; color:var(--t3); text-transform:uppercase; }
  .season b { color:var(--gold2); }
  .toast { position:fixed; left:50%; bottom:1.4rem; transform:translateX(-50%); background:#0d0e0c; border:1px solid var(--line2); border-left:3px solid var(--bad);
           padding:.6rem 1rem; z-index:40; font-size:.9rem; box-shadow:0 8px 24px rgba(0,0,0,.6); max-width:90vw; }
  .toast.ok { border-left-color:var(--ok); }
  table.lb { width:100%; border-collapse:collapse; font-size:.9rem; }
  table.lb td, table.lb th { padding:.4rem .6rem; border-bottom:1px solid var(--line); text-align:left; }
  table.lb th { font-size:.62rem; letter-spacing:.2em; color:var(--t3); font-weight:600; text-transform:uppercase; }
  table.lb td.n { text-align:right; font-family:var(--mono); }
  table.lb tr.me td { color:var(--gold2); background:rgba(200,171,106,.07); }
  .seg { display:flex; gap:3px; flex-wrap:wrap; margin-bottom:.7rem; }
  .seg button { font-size:.72rem; } .seg button.on { border-color:var(--gold); color:var(--gold2); }
  .offers { width:100%; border-collapse:collapse; font-size:.86rem; }
  .offers td { padding:.35rem .5rem; border-bottom:1px solid var(--line); vertical-align:middle; }
  .offers td.n { text-align:right; font-family:var(--mono); }
  .search { width:100%; background:#0a0b0a; border:1px solid var(--line2); color:var(--t1); padding:.45rem .6rem; font-family:var(--hud); font-size:.95rem; }
  .search:focus { outline:none; border-color:var(--gold); }
  .sugg { display:flex; flex-wrap:wrap; gap:4px; margin:.5rem 0; }
  .sugg button { text-transform:none; letter-spacing:0; font-weight:500; display:flex; gap:.35rem; align-items:center; padding:.2rem .45rem .2rem .2rem; }
  .listform { display:flex; gap:4px; padding:.3rem .8rem .8rem; flex-wrap:wrap; align-items:center; }
  .listform input { width:72px; background:#0a0b0a; border:1px solid var(--line2); color:var(--t1); padding:.3rem .4rem; font-family:var(--mono); font-size:.78rem; }
  .listform input.price { width:96px; }
  .first { font-size:.76rem; color:var(--gold2); padding:.2rem .8rem; }
  .gate { padding:2.5rem 1.4rem; text-align:center; color:var(--t2); }
  .gate b { display:block; font-size:1.3rem; letter-spacing:.16em; color:var(--gold2); margin-bottom:.4rem; }
  .tags { display:flex; flex-wrap:wrap; gap:.4rem; }
  .tag { border:1px solid var(--line2); background:var(--panel2); padding:.3rem .5rem; font-size:.78rem; }
  .tag b { color:var(--t1); }
  .msg.mine b { color:var(--gold2); }
  .loading { padding:3rem; text-align:center; color:var(--t3); letter-spacing:.2em; }

  /* chat rooms (shared with the site's /chat) */
  .rooms { display:inline-flex; gap:.25rem; }
  .rooms button, .rooms a { font-family:var(--mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; padding:.12rem .4rem;
    border:1px solid var(--line2); background:transparent; color:var(--t3); cursor:pointer; text-decoration:none; }
  .rooms button.on { color:var(--t1); border-color:var(--t2); }
  .rooms button.sup.on { color:#1a1408; background:var(--gold); border-color:var(--gold); }
  .chat.suproom { box-shadow:inset 2px 0 0 var(--gold); }
  .msg b.supn { color:var(--gold); }
  .msg b.staffn { color:#e2604f; }

  /* player profiles */
  a.pname { color:inherit; cursor:pointer; text-decoration:none; border-bottom:1px dotted var(--t3); }
  a.pname:hover { color:var(--gold2); border-bottom-color:var(--gold2); }
  .profilepop { position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:60; display:flex; align-items:flex-start; justify-content:center; padding:6vh 1rem; overflow:auto; }
  .pcard { position:relative; width:min(720px,100%); background:var(--bg2, #121411); border:1px solid var(--line2); padding:1.1rem 1.2rem; }
  .pclose { position:absolute; top:.4rem; right:.5rem; background:none; border:0; color:var(--t3); font-size:1.4rem; cursor:pointer; }
  .phead { display:flex; gap:.9rem; align-items:center; }
  .plvl { width:52px; height:52px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold2); font-family:var(--mono); font-size:1.3rem; font-weight:700; }
  .pname2 { font-size:1.35rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
  .ptiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(128px,1fr)); gap:.4rem; margin-top:.4rem; }
  .ptile { text-align:left; background:rgba(255,255,255,.02); border:1px solid var(--line); padding:.45rem .55rem; cursor:pointer; color:var(--t1); font-family:inherit; display:flex; flex-direction:column; gap:.1rem; }
  .ptile:hover { border-color:var(--gold); }
  .ptile .pl { font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--t3); }
  .ptile b { font-family:var(--mono); font-size:1.05rem; }
  .ptile .prk { font-family:var(--mono); font-size:.75rem; color:var(--t2); text-decoration:underline dotted; }
  .ptile .prk.top { color:var(--gold2); font-weight:700; }

  /* chat readability pass (owner: "REALLY HARD TO READ"): plain UI font, bright text,
     name + time on their own line, events demoted to a quiet line and toggleable */
  .chat { position:sticky; top:0; height:100vh; align-self:start; }
  .chat .hdr { flex-wrap:wrap; gap:.4rem; }
  .chat-log { font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif; font-size:14.5px; line-height:1.45;
    gap:.15rem; padding:.5rem .55rem; }
  .msg { padding:.4rem .5rem; border-radius:3px; }
  .msg:hover { background:rgba(255,255,255,.03); }
  .msg .mh { display:flex; align-items:baseline; gap:.4rem; }
  .msg .mh b { font-weight:700; font-size:14px; cursor:pointer; }
  .msg .mh b:hover { text-decoration:underline; }
  .msg .mh time { margin-left:auto; font-size:11px; color:var(--t3); font-variant-numeric:tabular-nums; }
  .msg .mh .tag { font-style:normal; font-size:9.5px; font-weight:700; letter-spacing:.08em; color:#141209; background:var(--gold2); padding:0 .3rem; border-radius:2px; }
  .msg p { margin:.1rem 0 0; color:#ece9dd; word-wrap:break-word; overflow-wrap:anywhere; }
  .msg.mine { background:rgba(200,171,106,.06); }
  .msg.sys { font-family:inherit; font-size:12.5px; color:#a9a698; border-left:2px solid rgba(200,171,106,.45); padding:.2rem .5rem; margin:.15rem 0; border-radius:0; }
  .msg.sys span { color:inherit; }
  .n1{color:#9fd27a} .n2{color:#8db8ec} .n3{color:#e0a7cb} .n4{color:#efbd74}
  .chat-in input { font-family:'Segoe UI',system-ui,Arial,sans-serif; font-size:14.5px; padding:.5rem .6rem; }

  /* raid feed: lines must never shrink. In a fixed-height flex column with an explicit
     min-height, flex-shrink squeezed long lines below their content and they drew over
     each other once the feed overflowed (owner saw overlapping text on scav runs). */
  .feed { height:340px; font-family:'Segoe UI',system-ui,Arial,sans-serif; font-size:14px; line-height:1.4; gap:.3rem; }
  .fl { flex-shrink:0; flex-wrap:nowrap; align-items:flex-start; }
  .fl::before { font-family:var(--mono); font-size:11px; padding-top:.2rem; flex:0 0 2.8rem; }
  .fl > span { flex:1 1 auto; min-width:0; overflow-wrap:anywhere; }
  .fl .it.mini { flex:0 0 30px; }
  .fl.find { color:#ece9dd; }
  .fl.dim { color:#8f8d82; }

  /* flexing: prestige badge, titles, pinned stat, top strip, prestige panel */
  .pbadge { display:inline-block; font-family:var(--mono); font-size:10px; font-weight:700; color:#111; background:var(--pc); padding:0 .3rem; margin-right:.3rem; border-radius:2px; vertical-align:1px; }
  .titlechip { display:inline-block; font-size:10px; font-weight:700; letter-spacing:.04em; color:var(--gold2); border:1px solid rgba(226,200,138,.45); padding:0 .3rem; margin-left:.35rem; border-radius:2px; vertical-align:1px; }
  .flexchip { display:inline-block; font-size:10.5px; color:var(--t2); background:rgba(255,255,255,.05); padding:0 .35rem; margin-left:.35rem; border-radius:2px; vertical-align:1px; }
  .badge { position:relative; }
  .badge .bp { position:absolute; bottom:-7px; left:50%; transform:translateX(-50%); font-style:normal; font-size:8.5px; color:#111; padding:0 .2rem; border-radius:2px; line-height:1.3; }
  .tstrip { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.4rem; }
  .tscard { text-align:left; display:flex; flex-direction:column; gap:.1rem; padding:.45rem .55rem; text-transform:none; letter-spacing:0; }
  .tscard .tt { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold2); }
  .tscard .tn { font-weight:700; color:var(--t1); }
  .tscard .tv { font-family:var(--mono); font-size:12px; color:var(--t2); }
  .ptile { position:relative; }
  .ptile.pinned { border-color:var(--gold2); box-shadow:inset 0 0 0 1px rgba(226,200,138,.35); }
  .ptile .pin { position:absolute; top:.35rem; right:.4rem; font-size:9px; letter-spacing:.08em; color:var(--t3); border:1px solid var(--line2); padding:0 .25rem; }
  .ptile .pin:hover, .ptile.pinned .pin { color:var(--gold2); border-color:var(--gold2); }
  .prestige .pbar { position:relative; height:20px; background:#0b0c0a; border:1px solid var(--line2); margin-top:.45rem; }
  .prestige .pbar i { position:absolute; inset:0 auto 0 0; background:linear-gradient(90deg,rgba(200,171,106,.25),rgba(200,171,106,.55)); }
  .prestige .pbar.money i { background:linear-gradient(90deg,rgba(127,174,90,.25),rgba(127,174,90,.55)); }
  .prestige .pbar span { position:relative; font-family:var(--mono); font-size:11px; padding:0 .5rem; line-height:20px; }

  /* quests */
  .qpick { margin-top:.6rem; }
  .qp-head { display:flex; justify-content:space-between; align-items:baseline; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--t2); margin-bottom:.3rem; }
  .qp-head .muted { letter-spacing:.04em; text-transform:none; font-size:.75rem; }
  .qlist { max-height:248px; overflow-y:auto; border:1px solid var(--line2); background:#0e0f0d; scrollbar-width:thin; scrollbar-color:var(--line2) transparent; }
  .qgrp { position:sticky; top:0; z-index:1; padding:.3rem .6rem; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); background:#151713; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .qrow { display:block; width:100%; text-align:left; padding:.45rem .6rem .45rem .7rem; text-transform:none; letter-spacing:normal;
          background:none; border:none; border-left:2px solid transparent; border-bottom:1px solid rgba(255,255,255,.05); color:var(--t1); font:inherit; font-size:.85rem; cursor:pointer; }
  .qrow:hover:not(:disabled) { background:rgba(200,171,106,.06); border-color:transparent; border-bottom-color:rgba(255,255,255,.05); border-left-color:var(--line2); color:var(--t1); }
  .qrow.on, .qrow.on:hover:not(:disabled) { background:rgba(200,171,106,.12); border-left-color:var(--gold2); }
  .qrow.on .qr-name { color:var(--gold2); }
  .qrow:focus-visible { outline:1px solid var(--gold); outline-offset:-1px; }
  .qrow.none .qr-name { color:var(--t2); font-weight:500; }
  .qr-name { display:block; font-weight:600; line-height:1.3; }
  .qr-meta { display:flex; align-items:center; gap:.45rem; margin-top:.2rem; }
  .qr-tr { font-size:.75rem; color:var(--t3); }
  .qrow .qtier { margin-left:0; }
  .qr-pay { margin-left:auto; font-family:var(--mono); font-size:.75rem; color:var(--gold2); }
  .qsel { margin-top:.45rem; font-size:.85rem; line-height:1.5; }
  .qtier { display:inline-block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:0 .35rem; border-radius:2px; margin-left:.3rem; color:#111; }
  .qtier.t1 { background:#7fae5a; } .qtier.t2 { background:#b5c45a; } .qtier.t3 { background:#e2c88a; } .qtier.t4 { background:#e08a4a; } .qtier.t5 { background:#d9534f; color:#fff; }
  .qtier.kappa { background:#8fa8c8; }
  .qlist { display:flex; flex-direction:column; gap:.5rem; }
  .qcard { border:1px solid var(--line2); padding:.55rem .7rem; background:rgba(255,255,255,.015); }
  .qcard.ready { border-color:var(--gold2); }
  .qcard .qh { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; }
  .qobj { margin:.35rem 0; padding-left:0; list-style:none; font-size:.85rem; }
  .qobj li { padding:.1rem 0; color:var(--t2); }
  .qobj li.ok { color:var(--ok, #7fae5a); }
  .qobj .qn { display:inline-block; min-width:3.2em; font-family:var(--mono); font-size:11px; color:var(--t3); }
  .qf { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.5rem; font-size:.85rem; }

  /* supporter + founder */
  .supnudge { color:var(--gold2); font-size:.82rem; white-space:nowrap; }
  .supnudge:hover { text-decoration:underline; }
  .supnote { border-left:2px solid var(--gold2); }
  .fbadge { display:inline-block; font-family:var(--mono); font-size:10px; font-weight:700; color:#111; background:linear-gradient(135deg,#f3dc9b,#b8892f); padding:0 .3rem; margin-right:.3rem; border-radius:2px; vertical-align:1px; }
  .box.founder { border-color:rgba(226,200,138,.45); }

  /* gold */
  .nudgex { color:var(--muted, #888); margin-left:.35rem; text-decoration:none; font-size:.85rem; }
  .nudgex:hover { color:#fff; }
  .note.gold { border-left:2px solid var(--gold2); }
  .note.gold .pill { display:inline-block; background:var(--gold2); color:#111; font-size:.75rem; padding:0 .4rem; border-radius:2px; margin-left:.4rem; }
  .ladder { padding:.6rem 0; border-bottom:1px solid rgba(255,255,255,.06); }
  .ladder:last-child { border-bottom:0; }
  .pips { display:flex; gap:3px; align-items:center; margin:.35rem 0; }
  .pip { width:18px; height:8px; background:rgba(255,255,255,.1); }
  .pip.on { background:var(--gold2); }
  .pips .muted { margin-left:.5rem; font-size:.8rem; }
  .lbtns { display:flex; gap:.4rem; flex-wrap:wrap; }
  .lbtns button, .cos button, #goldBody a.go { width:auto; font-size:.8rem; letter-spacing:.05em; padding:.35rem .8rem; }
  table.tiers { width:100%; border-collapse:collapse; font-size:.85rem; }
  table.tiers th, table.tiers td { text-align:left; padding:.3rem .4rem; border-bottom:1px solid rgba(255,255,255,.06); }
  table.tiers tr.mine td { background:rgba(226,200,138,.08); }
  .packs { display:flex; gap:.5rem; flex-wrap:wrap; }
  .pack { display:flex; flex-direction:column; min-width:120px; padding:.6rem .8rem; border:1px solid rgba(226,200,138,.35); text-decoration:none; color:inherit; }
  .pack:hover { border-color:var(--gold2); }
  .pack em { color:var(--gold2); font-size:.75rem; font-style:normal; }
  .cosgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:.5rem; margin-bottom:.6rem; }
  .cos { border:1px solid rgba(255,255,255,.08); padding:.5rem; display:flex; flex-direction:column; gap:.3rem; align-items:flex-start; }
  .cos.worn { border-color:var(--gold2); }
  .cos .cn { font-size:.78rem; color:var(--muted, #999); }
  .cosicon { color:var(--gold2); margin-right:.25rem; }

/* pre-raid stance */
.stances { display:flex; gap:.35rem; margin-top:.5rem; }
.stances button { flex:1; width:auto; font-size:.78rem; padding:.35rem .4rem; }
.stances button.on { border-color: var(--accent, #c8a24a); color: var(--accent, #c8a24a); }


/* dogtag case */
.tagstats { display:flex; gap:1.4rem; flex-wrap:wrap; margin-bottom:.8rem; }
.tagstats span { display:flex; flex-direction:column; font-size:.72rem; color:var(--muted, #8a8f86); letter-spacing:.06em; text-transform:uppercase; }
.tagstats b { font-size:1.5rem; color:var(--gold2, #d8b45a); text-transform:none; letter-spacing:0; }
.tagcase { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:.5rem; }
.dtag { border:1px solid var(--line2); background:linear-gradient(160deg, #2a2c27, #1a1b18); padding:.45rem .6rem; display:grid; grid-template-columns:1fr auto; gap:.1rem .4rem; border-radius:3px; }
.dtag .dtn { font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dtag .dtx { color:var(--gold2, #d8b45a); font-weight:700; }
.dtag .dts { grid-column:1 / -1; font-size:.7rem; color:var(--muted, #8a8f86); }
.tbadge { font-size:9px; font-weight:700; letter-spacing:.08em; padding:0 .3rem; margin-left:.25rem; border-radius:2px; color:#141209; background:#8a8f86; }
.tb-first { background:#9fb58a; } .tb-upset { background:#d8b45a; } .tb-starter { background:#c9a36a; } .tb-payback { background:#d07a5a; }

/* ---------- early-access showcase (#gate) ---------- */
body.gated { overflow:hidden; }
#gate { position:fixed; inset:0; z-index:9999; overflow-y:auto; background:
  radial-gradient(1200px 500px at 85% -10%, rgba(200,171,106,.10), transparent 60%), var(--bg); }
.sc { max-width:1180px; margin:0 auto; padding:0 1.4rem 3rem; }
.sc-top { display:flex; justify-content:space-between; align-items:center; padding:1.1rem 0; border-bottom:1px solid var(--line); }
.sc-brand { display:flex; flex-direction:column; text-decoration:none; }
.sc-brand b { font-size:1.4rem; letter-spacing:.32em; color:var(--gold2); line-height:1; }
.sc-brand span { font-size:.72rem; color:var(--t3); letter-spacing:.12em; }
.sc-back { color:var(--t2); font-size:.9rem; }
.sc-back:hover { color:var(--gold2); }
.sc-hero { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:2.6rem; padding:2.8rem 0 2.4rem; align-items:start; }
.sc-pitch h1 { font-size:clamp(2.1rem, 4.2vw, 3.4rem); line-height:1.02; font-weight:700; color:var(--t1); margin:0 0 1rem; max-width:14ch; }
.sc-lede { color:var(--t2); font-size:1.08rem; line-height:1.5; max-width:46ch; margin:0 0 1.8rem; }
.sc-access { border:1px solid rgba(200,171,106,.45); background:linear-gradient(180deg, rgba(200,171,106,.07), rgba(0,0,0,.25)); padding:1.3rem 1.3rem 1.1rem; max-width:31rem; }
.sc-access h2 { font-size:1.15rem; color:var(--gold2); margin:0 0 .5rem; font-weight:700; }
.sc-access p { color:var(--t2); line-height:1.45; margin:0 0 .7rem; }
.sc-access b { color:var(--t1); }
.sc-go { display:inline-block; width:auto; text-decoration:none; padding:.6rem 1.2rem; letter-spacing:.06em; font-size:1rem; }
.sc-form { display:flex; gap:.5rem; margin:.4rem 0 .2rem; }
.sc-form input { flex:1; min-width:0; padding:.6rem .75rem; background:#080908; border:1px solid var(--line2); color:var(--t1); font:600 1rem var(--hud); }
.sc-form input:focus { outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold); }
.sc-msg { min-height:1.3em; color:var(--gold2); font-size:.9rem; margin:.2rem 0 .3rem !important; }
.sc-small { font-size:.85rem; color:var(--t3) !important; margin:0 !important; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.sc-demo { margin:0; border:1px solid var(--line2); background:var(--panel); box-shadow:0 30px 80px -30px rgba(0,0,0,.8); }
.sc-demohead { display:flex; justify-content:space-between; align-items:center; padding:.55rem .9rem; border-bottom:1px solid var(--line); color:var(--t2); font-weight:600; letter-spacing:.04em; }
.sc-clock { font-family:var(--mono); color:var(--gold2); border:1px solid rgba(200,171,106,.5); padding:.1rem .45rem; font-size:.8rem; }
.sc-feed { height:300px; overflow-y:auto; padding:.7rem .9rem; font-family:var(--mono); font-size:.76rem; display:flex; flex-direction:column; gap:.12rem; }
.sc-mini { width:20px; height:20px; object-fit:contain; vertical-align:middle; }
.sc-bag { padding:0 .9rem; }
.sc-bag:empty { display:none; }
.sc-baghead { color:var(--t1); margin:.7rem 0 .5rem; font-weight:600; }
.sc-bag .gearwrap { max-height:240px; overflow:auto; }
.sc-note { color:var(--t3); font-size:.8rem; padding:.6rem .9rem .8rem; margin:0; border-top:1px solid var(--line); margin-top:.7rem; }
.sc-what { border-top:1px solid var(--line); padding-top:2.2rem; }
.sc-what h2 { font-size:1.5rem; margin:0 0 1.4rem; color:var(--t1); }
.sc-what ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.6rem 2.6rem; }
.sc-what li { display:grid; grid-template-columns:64px 1fr; gap:1rem; align-items:start; }
.sc-what h3 { margin:.1rem 0 .3rem; font-size:1.12rem; color:var(--gold2); font-weight:700; }
.sc-what p { margin:0; color:var(--t2); line-height:1.5; max-width:48ch; }
.sc-cell { width:64px; height:64px; display:flex; align-items:center; justify-content:center; border:1px solid var(--line2);
  background:var(--ib-default); background-image:linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size:16px 16px; }
.sc-cell.bg-blue { background-color:var(--ib-blue); } .sc-cell.bg-violet { background-color:var(--ib-violet); } .sc-cell.bg-orange { background-color:var(--ib-orange); }
.sc-cell.bg-green { background-color:var(--ib-green); } .sc-cell.bg-red { background-color:var(--ib-red); } .sc-cell.bg-yellow { background-color:var(--ib-yellow); }
.sc-cell.bg-black { background-color:var(--ib-black); } .sc-cell.bg-grey { background-color:var(--ib-grey); }
.sc-cell img { width:54px; height:54px; object-fit:contain; }
.sc-foot { margin-top:2.6rem; padding-top:1rem; border-top:1px solid var(--line); color:var(--t3); font-size:.8rem; }
@media (max-width: 900px) {
  .sc-hero { grid-template-columns:1fr; gap:1.8rem; padding-top:1.8rem; }
  .sc-what ul { grid-template-columns:1fr; }
  .sc-feed { height:240px; }
}
@media (prefers-reduced-motion: reduce) { .sc-feed .fl { animation:none; } }
