/* Maulden — the den. Charcoal ground, one crimson, stencil display over a grotesk. Built for this drop. */
:root{
  --bg:#16171A; --panel:#1E1F23; --panel2:#111114; --line:#2A2B30; --line2:#3A3B41;
  --ink:#E6E4DF; --mute:#8A8983; --dim:#55544F; --red:#E8222E; --red2:#8F1219; --glow:rgba(232,34,46,.38);
  --disp:'Saira Stencil One',Impact,'Arial Narrow',sans-serif; --body:'Barlow',system-ui,-apple-system,sans-serif;
  --lintel:92px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
body{min-height:100vh;padding-top:var(--lintel)}
[hidden]{display:none!important}
a{color:inherit}
button{font-family:inherit}

/* ---- the lintel (fixed chrome) ---- */
#lintel{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--lintel);background:linear-gradient(#1b1c20,#121316);
  border-bottom:2px solid var(--red);display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr 1fr;align-items:center;padding:0 12px;column-gap:10px}
.lmark{grid-column:1;grid-row:1;display:flex;align-items:center;gap:9px;text-decoration:none;font-family:var(--disp);font-size:21px;letter-spacing:.05em;text-transform:uppercase;line-height:1;min-width:0}
.lmark img{width:30px;height:30px;border-radius:3px;border:1px solid var(--line2);flex:none}
.lwallet{grid-column:2;grid-row:1;justify-self:end;height:32px;padding:0 12px;border:1px solid var(--line2);border-radius:3px;background:var(--panel2);color:var(--ink);font:500 12px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
.lwallet[data-on]{border-color:var(--ink)}
.lbuy{grid-column:1;grid-row:2;justify-self:start;display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 10px;border:1.5px solid var(--red);border-radius:3px;
  text-decoration:none;background:rgba(232,34,46,.09);color:var(--ink);white-space:nowrap;max-width:100%}
.lbuy b{font:400 14px/1 var(--disp);letter-spacing:.06em;text-transform:uppercase}
.lbuy em{font:500 11px/1 var(--body);font-style:normal;color:var(--mute);letter-spacing:.04em}
.lbuy[data-live] em{color:var(--red);text-transform:uppercase;letter-spacing:.1em}
.lnav{grid-column:2;grid-row:2;justify-self:end;display:flex;gap:11px;font:500 12px/1 var(--body);letter-spacing:.06em;text-transform:uppercase}
.lnav a{text-decoration:none;color:var(--mute);padding:6px 0;border-bottom:2px solid transparent}
.lnav a[aria-current]{color:var(--ink);border-bottom-color:var(--red)}

/* ---- the den: strips ---- */
#den{max-width:1160px;margin:0 auto;padding:12px 12px 40px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.hall{display:grid;gap:10px;min-width:0}
.strip{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.strip::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:7px;background:radial-gradient(circle at 3.5px 5px,var(--bg) 2.2px,transparent 2.8px) 0 0/7px 11px repeat-y;pointer-events:none}
.stripword{position:absolute;right:10px;top:8px;font:500 10px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}

/* seat strip */
.seatstrip{padding:22px 12px 12px 22px;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}
.seat{position:relative;aspect-ratio:1/1.12;border:1.5px dotted var(--line2);border-radius:3px;display:grid;place-items:center;font:400 15px/1 var(--disp);color:var(--dim);background:var(--panel2);text-decoration:none;overflow:hidden}
.seat.standing{color:var(--ink);border:1.5px solid var(--ink);background:#1c1d21}
.seat.collected{color:var(--mute);border:1.5px solid var(--mute);background:#1c1d21}
.seat.mine{box-shadow:0 0 0 2px var(--red),0 0 18px var(--glow);border-color:var(--red)}
.seat.struck{color:var(--red2);border:1.5px solid var(--red2);background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(143,18,25,.22) 5px 7px),var(--panel2)}
.seat.struck::before,.seat.struck::after{content:"";position:absolute;left:50%;top:12%;height:76%;width:3px;background:var(--red);transform:translateX(-50%) rotate(45deg);opacity:.95}
.seat.struck::after{transform:translateX(-50%) rotate(-45deg)}
.seat.left{color:var(--mute);border:1.5px dashed var(--line2);opacity:.85}
.seat.left::after{content:"OUT";position:absolute;bottom:2px;left:0;right:0;text-align:center;font:600 7px/1 var(--body);letter-spacing:.14em;color:var(--mute)}
.seat.next{border-style:dashed;border-color:var(--red);color:var(--red)}

/* clock strip */
.clockstrip{padding:22px 14px 12px 22px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:12px}
.clockword{font:500 11px/1.2 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.clockno{font:400 clamp(58px,17vw,112px)/.92 var(--disp);letter-spacing:.01em;font-variant-numeric:tabular-nums;color:var(--ink);word-break:keep-all}
.clockno.hot{color:var(--red);text-shadow:0 0 26px var(--glow)}
.clockno.dim{color:var(--dim)}
.clockside{text-align:right;padding-bottom:4px}
.clockside b{display:block;font:400 30px/1 var(--disp);letter-spacing:.02em}
.clockside span{display:block;font:500 10px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-top:4px}
.phaseline{grid-column:1/-1;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line2);font-size:13px;color:var(--mute)}
.phaseline b{color:var(--ink);font-weight:600}

/* pile strip */
.pilestrip{padding:22px 12px 12px 22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pilecell{min-width:0}
.pilecell span{display:block;font:500 10px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pilecell b{display:block;font:400 clamp(20px,5.6vw,30px)/1.05 var(--disp);letter-spacing:.01em;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pilecell.red b{color:var(--red)}
.pilecell i{display:block;font-style:normal;font-size:11px;color:var(--dim);margin-top:2px}

/* action strip */
.actstrip{padding:22px 12px 12px 22px}
.holdbtn{position:relative;display:block;width:100%;height:66px;border:2px solid var(--ink);border-radius:4px;background:var(--panel2);color:var(--ink);
  font:400 20px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;overflow:hidden;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;padding:0 12px}
.holdbtn .holdfill{position:absolute;inset:0;width:0;background:var(--red);transition:width .2s ease-out;z-index:0}
.holdbtn.holding .holdfill{width:100%;transition:width .9s linear}
.holdbtn span{position:relative;z-index:1;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.holdbtn small{position:relative;z-index:1;display:block;font:500 10px/1 var(--body);letter-spacing:.16em;color:var(--mute);margin-top:6px;text-transform:uppercase}
.holdbtn[disabled]{opacity:.5;cursor:default;border-color:var(--line2)}
.holdbtn.busy{border-color:var(--red);cursor:progress}
.actnote{margin:10px 0 0;font-size:13px;color:var(--mute)}
.actnote b{color:var(--ink);font-weight:600}
.walletrow{display:grid;gap:6px;margin-top:10px}
.walletrow button{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line2);border-radius:3px;background:var(--panel2);color:var(--ink);font:500 14px var(--body);cursor:pointer;text-align:left}
.walletrow img{width:22px;height:22px;border-radius:3px}

/* ---- the tape ---- */
.tape{position:relative;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:10px 12px 14px 22px;min-width:0}
.tape::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:7px;background:radial-gradient(circle at 3.5px 5px,var(--bg) 2.2px,transparent 2.8px) 0 0/7px 11px repeat-y}
.tapehead{display:flex;justify-content:space-between;align-items:baseline;font:500 10px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--mute);padding:4px 0 10px;border-bottom:1px dashed var(--line2)}
.tapehead b{font:400 16px/1 var(--disp);letter-spacing:.06em;color:var(--ink)}
.primer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 0;border-bottom:1px dashed var(--line2)}
.primer div span{display:block;font:500 9px/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.primer div b{display:block;font:400 17px/1.1 var(--disp);margin-top:2px;white-space:nowrap}
.tline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:9px;padding:8px 0;border-bottom:1px dotted var(--line);font-size:13px;align-items:start;animation:print .32s ease-out}
.tstamp{font:400 12px/1.4 var(--disp);color:var(--mute);letter-spacing:.03em;white-space:nowrap}
.ttext{min-width:0;overflow-wrap:anywhere}
.ttext a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--line2)}
.ttext em{font-style:normal;color:var(--ink);font-weight:600}
.tkind{font:600 9px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;padding:4px 6px;border:1px solid var(--line2);border-radius:2px;color:var(--mute);white-space:nowrap;margin-top:2px}
.tline.struck .tkind{color:var(--red);border-color:var(--red)}
.tline.struck .ttext em{color:var(--red)}
.tline.sat .tkind{color:var(--ink);border-color:var(--ink)}
.tline.left .tkind,.tline.collected .tkind{border-style:dashed}
.tline.hoisted .tkind{color:var(--ink);background:var(--red2);border-color:var(--red2)}
.tquiet{padding:16px 0 6px;font-size:13px;color:var(--mute)}
.tquiet b{color:var(--ink);font-weight:600}
@keyframes print{from{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}

/* ---- ledger (dens), seat and rules views ---- */
.sheet{}
.hallhead{padding:6px 2px 2px}
.hallhead h1{margin:0;font:400 clamp(30px,8vw,54px)/1 var(--disp);letter-spacing:.02em;text-transform:uppercase}
.hallhead p{margin:8px 0 0;color:var(--mute);max-width:60ch}
.denrows{display:grid;gap:8px}
.denrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 12px 12px 22px;text-decoration:none}
.denrow b{font:400 26px/1 var(--disp)}
.denrow small{display:block;font:500 10px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.denrow .denfacts{font-size:13px;color:var(--mute)}
.denrow .denfacts em{font-style:normal;color:var(--ink);font-weight:600}
.denrow .denpile{text-align:right}
.denrow .denpile b{color:var(--red)}
.rulesbox{padding:22px 14px 14px 22px}
.rulesbox h2{margin:0 0 4px;font:400 22px/1 var(--disp);letter-spacing:.04em;text-transform:uppercase}
.rulesbox p{margin:0;color:var(--mute);max-width:64ch}
.rulesbox p b{color:var(--ink);font-weight:600}
.spectab{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.spectab div{background:var(--panel);padding:12px 12px}
.spectab div span{display:block;font:500 10px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.spectab div b{display:block;font:400 24px/1.1 var(--disp);margin-top:2px}
.seatrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 12px 12px 22px}
.seatrow .sno{font:400 30px/1 var(--disp)}
.seatrow .sno small{display:block;font:500 9px/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.seatrow .sfacts{font-size:13px;color:var(--mute)}
.seatrow .sfacts em{font-style:normal;color:var(--ink);font-weight:600}
.seatrow .sdue{text-align:right}
.seatrow .sdue b{display:block;font:400 22px/1 var(--disp);color:var(--red)}
.smallbtn{height:36px;padding:0 14px;border:1.5px solid var(--red);border-radius:3px;background:rgba(232,34,46,.1);color:var(--ink);font:400 14px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.smallbtn[disabled]{opacity:.5;cursor:default}
.stance{display:inline-block;font:600 9px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;padding:4px 6px;border:1px solid var(--line2);border-radius:2px;color:var(--mute)}
.stance.struck{color:var(--red);border-color:var(--red)}
.stance.standing{color:var(--ink);border-color:var(--ink)}

/* ---- cellar (footer: reference, not selling) ---- */
.cellar{padding:18px 4px 0;border-top:1px solid var(--line);display:grid;gap:8px;font-size:12px;color:var(--mute)}
.cellar .cline{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}
.cellar .cline span{font:500 10px/1.4 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.cellar a{color:var(--mute);text-decoration:none;border-bottom:1px dotted var(--line2);overflow-wrap:anywhere}
.cellar .cname{font:400 18px/1 var(--disp);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}

/* ---- notes ---- */
.stampnote{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;max-width:min(92vw,520px);padding:10px 14px;border:1px solid var(--red);border-radius:3px;background:var(--panel2);color:var(--ink);font-size:13px;box-shadow:0 8px 30px rgba(0,0,0,.5)}

/* ---- widths ---- */
@media (min-width:720px){
  :root{--lintel:60px}
  #lintel{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-rows:1fr;column-gap:18px;padding:0 20px}
  .lmark{grid-column:1;grid-row:1;font-size:23px}
  .lbuy{grid-column:2;grid-row:1;height:34px;padding:0 12px}
  .lnav{grid-column:3;grid-row:1;justify-self:end;gap:16px;font-size:12px}
  .lwallet{grid-column:4;grid-row:1}
  #den{padding:18px 20px 48px;gap:16px}
  .hall{gap:12px}
  .seatstrip{padding:26px 16px 16px 26px;gap:8px}
  .seat{font-size:22px}
  .clockstrip{padding:26px 18px 16px 26px}
  .clockno{font-size:clamp(96px,14vw,132px)}
  .clockside b{font-size:38px}
  .pilestrip{padding:26px 16px 16px 26px;gap:12px}
  .pilecell b{font-size:clamp(28px,3.6vw,36px)}
  .actstrip{padding:26px 16px 16px 26px}
  .holdbtn{height:74px;font-size:24px}
  .tape{padding:12px 16px 16px 26px}
}
@media (min-width:1000px){
  #den{grid-template-columns:minmax(0,1fr) 380px;align-items:start;padding:24px 24px 56px;column-gap:22px;row-gap:22px}
  .hall{grid-column:1;grid-row:1}
  .tape{grid-column:2;grid-row:1;position:sticky;top:calc(var(--lintel) + 22px);max-height:calc(100vh - var(--lintel) - 44px);overflow:auto}
  .cellar{grid-column:1/-1;grid-row:2}
  .seatstrip{gap:9px}
  .seat{font-size:28px}
  .clockno{font-size:clamp(120px,11vw,164px)}
  .clockside b{font-size:44px}
  .pilecell b{font-size:38px}
  .holdbtn{height:80px;font-size:26px}
  .hallhead h1{font-size:58px}
}
@media (min-width:1280px){
  .tape{width:400px}
  #den{grid-template-columns:minmax(0,1fr) 400px}
}
@media (prefers-reduced-motion:reduce){.tline{animation:none}.holdbtn.holding .holdfill{transition-duration:.9s}}
