/* Riftlock — the drawing sheet. Blueprint ground, drafting rules, one mint accent for what has closed and one
   amber for what is still standing in line. Written for this drop. */
:root{
  --ground:#071018;
  --void:#040A10;
  --paper:#0A1720;
  --paper2:#0C1E29;
  --rule:#17313F;
  --rule2:#204A5D;
  --ink:#DCE9F2;
  --dim:#7F9BAF;
  --dimmer:#4E6B7D;
  --lock:#3DF0C6;
  --wait:#F0B429;
  --bar:92px;
  --pad:14px;
  --disp:"Sarpanch","Trebuchet MS",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0;padding:0;max-width:100%;overflow-x:hidden}
body{
  background:var(--ground);
  color:var(--ink);
  font:15px/1.5 var(--mono);
  padding-top:var(--bar);
  -webkit-text-size-adjust:100%;
  /* the drafting grid: two hairline families over the ground */
  background-image:
    linear-gradient(transparent 31px,rgba(32,74,93,.16) 31px,rgba(32,74,93,.16) 32px),
    linear-gradient(90deg,transparent 31px,rgba(32,74,93,.16) 31px,rgba(32,74,93,.16) 32px);
  background-size:32px 32px,32px 32px;
}
a{color:var(--lock);text-decoration:none}
a:hover{text-decoration:underline}
code{font-family:var(--mono);font-size:12px;word-break:break-all;color:var(--ink)}
h1,h2,h3,.bank__nm,.pick,.go,.riftbar__mark b{font-family:var(--disp)}
.lab{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dimmer)}
.lab--thin{letter-spacing:.08em;text-transform:none;font-size:11px;color:var(--dim)}
/* figures stay in the mono: a poster face sets the digit 1 as a bare stroke and a lone 0 as a box,
   and these numbers are the whole read of the page */
.figure{font-family:var(--mono);font-size:29px;font-weight:600;line-height:1.1;letter-spacing:-.02em;color:var(--wait);font-variant-numeric:tabular-nums}
.figure--lock{color:var(--lock)}
.blank{padding:16px 12px;border:1px dashed var(--rule);color:var(--dimmer);font-size:12px;line-height:1.6}

/* ---------- the fixed title block: identity, routes, and the buy control that never scrolls away ---------- */
.riftbar{
  position:fixed;top:0;left:0;right:0;z-index:40;
  display:grid;gap:6px 10px;align-items:center;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"mark buy" "routes signer";
  padding:7px 10px;
  background:rgba(4,10,16,.94);
  border-bottom:1px solid var(--rule2);
  backdrop-filter:blur(6px);
}
.riftbar__mark{grid-area:mark;display:flex;align-items:center;gap:8px;min-width:0;color:var(--ink)}
.riftbar__mark img{display:block;width:26px;height:26px;border:1px solid var(--rule2)}
.riftbar__mark b{font-size:17px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.riftbar__mark:hover{text-decoration:none}
.riftbar__routes{grid-area:routes;display:flex;gap:12px;min-width:0;overflow:hidden}
.riftbar__routes a{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
.riftbar__routes a:hover{color:var(--lock);text-decoration:none}
.riftbar__buy{
  grid-area:buy;display:flex;align-items:baseline;gap:7px;justify-content:center;
  padding:6px 11px;border:1px solid var(--lock);color:var(--lock);
  background:linear-gradient(180deg,rgba(61,240,198,.14),rgba(61,240,198,.04));
  white-space:nowrap;max-width:100%;
}
.riftbar__buy[data-live="0"]{border-color:var(--rule2);color:var(--dim);background:none}
.riftbar__buy:hover{text-decoration:none}
.riftbar__tick{font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.05em}
.riftbar__state{font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.riftbar__signer{
  grid-area:signer;justify-self:end;
  font:600 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;
  padding:7px 10px;border:1px solid var(--rule2);background:none;color:var(--dim);cursor:pointer;
}
.riftbar__signer.on{border-color:var(--lock);color:var(--lock)}

/* ---------- sheet ---------- */
.plan{max-width:1180px;margin:0 auto;padding:16px var(--pad) 26px}
.leaf--rift{display:grid;gap:16px}
.brow{border-left:2px solid var(--lock);padding:2px 0 2px 12px}
.brow__h{margin:0;font-size:29px;line-height:1.05;font-weight:800;letter-spacing:-.01em;text-transform:uppercase}
.brow__h em{font-style:normal;color:var(--lock)}
.brow__p{margin:9px 0 0;font-size:13px;line-height:1.65;color:var(--dim);max-width:62ch}
.brow__stamp{display:flex;align-items:baseline;gap:8px;margin-top:11px;flex-wrap:wrap}
.brow__stamp b{font-family:var(--disp);font-size:16px;letter-spacing:.06em}

/* ---------- the split pane: two banks and the rift between them ---------- */
.span{display:grid;gap:12px;grid-template-columns:minmax(0,1fr);align-items:stretch}
.bank{
  position:relative;min-width:0;
  border:1px solid var(--rule);background:linear-gradient(180deg,var(--paper),var(--paper2));
  padding:12px;display:flex;flex-direction:column;gap:10px;
}
.bank::before,.bank::after{content:"";position:absolute;width:7px;height:7px;border:1px solid var(--rule2)}
.bank::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.bank::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.bank--picked{border-color:var(--lock)}
.bank__hd{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px dashed var(--rule);padding-bottom:8px}
.bank__nm{font-size:14px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.bank__tag{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dimmer);border:1px solid var(--rule);padding:3px 6px}
.bank__tag.is-light{color:var(--lock);border-color:var(--lock)}
.bank__tag.is-heavy{color:var(--wait);border-color:var(--wait)}
.bank__read{display:flex;flex-direction:column;gap:3px}
.queue{display:flex;flex-direction:column;gap:5px;min-height:96px}
.pl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;padding:7px 8px;border:1px solid var(--rule);background:rgba(4,10,16,.5)}
.pl__who{font-size:11px;color:var(--dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl__amt{font-size:12px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.pl__bar{grid-column:1/-1;position:relative;height:5px;background:rgba(32,74,93,.35)}
.pl__bar i{position:absolute;inset:0 auto 0 0;background:var(--lock)}
.pl__st{grid-column:1/-1;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--dimmer)}
.pl--closed{border-color:rgba(61,240,198,.5)}
.pl--closed .pl__st{color:var(--lock)}
.pl--part{border-color:rgba(240,180,41,.55)}
.pl--part .pl__st{color:var(--wait)}
.pl--mine{box-shadow:inset 2px 0 0 var(--ink)}
.pick{
  font-family:var(--disp);font-size:13px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  padding:11px 12px;border:1px solid var(--rule2);background:rgba(61,240,198,.06);color:var(--ink);cursor:pointer;width:100%;
}
.pick:hover:not(:disabled){border-color:var(--lock);color:var(--lock)}
.pick:disabled{opacity:.45;cursor:default}
.putin{display:flex;flex-direction:column;gap:7px;border-top:1px dashed var(--rule);padding-top:10px}
.putin__lab{font-size:11px;color:var(--dim)}
.putin__amt{
  width:100%;font:600 19px/1.2 var(--mono);color:var(--ink);background:var(--void);
  border:1px solid var(--rule2);padding:9px 10px;font-variant-numeric:tabular-nums;
}
.putin__amt:focus{outline:none;border-color:var(--lock)}
.putin__note{font-size:11px;line-height:1.55;color:var(--dim);min-height:2.6em}
.putin__act{display:flex;gap:8px}
.go{flex:1 1 auto;font-family:var(--disp);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:10px;border:1px solid var(--lock);background:rgba(61,240,198,.14);color:var(--lock);cursor:pointer}
.go:disabled{opacity:.45;cursor:default}
.undo{font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:10px;border:1px solid var(--rule);background:none;color:var(--dimmer);cursor:pointer}

/* the rift itself */
.seam{
  position:relative;display:grid;gap:10px;grid-template-columns:minmax(0,1fr);align-items:center;
  border:1px solid var(--rule);background:
    repeating-linear-gradient(135deg,rgba(32,74,93,.16) 0 6px,transparent 6px 12px),var(--void);
  padding:12px;
}
.seam__rail{position:relative;width:100%;height:12px;border:1px solid var(--rule2);background:var(--void);overflow:hidden}
.seam__fill{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,rgba(61,240,198,.45),var(--lock));transition:width .5s ease}
.seam__read{display:flex;flex-direction:column;gap:3px;min-width:0}
.seam__bell{font-family:var(--disp);font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink)}
.seam__read b{color:var(--ink);font-weight:600}

/* ---------- the margin column ---------- */
.margin{display:grid;gap:12px;min-width:0}
.primer,.tape,.rolls{border:1px solid var(--rule);background:var(--paper);padding:12px;min-width:0}
.primer__h,.tape__h,.rolls__h{margin:0 0 9px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--rule);padding-bottom:7px}
.primer__dl{margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;font-size:12px}
.primer__dl dt{color:var(--dimmer)}
.primer__dl dd{margin:0;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
.primer__p{margin:11px 0 0;font-size:12px;line-height:1.6;color:var(--dim)}
.tape__body,.rolls__body{display:flex;flex-direction:column;gap:6px}
.cross{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;font-size:11px;padding:6px 0;border-bottom:1px dotted var(--rule)}
.cross:last-child{border-bottom:0}
.cross__side{font-size:9px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--rule2);padding:2px 5px;color:var(--dim)}
.cross__side.is-west{color:var(--lock);border-color:rgba(61,240,198,.45)}
.cross__side.is-east{color:var(--wait);border-color:rgba(240,180,41,.45)}
.cross__who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim)}
.cross__amt{font-variant-numeric:tabular-nums;white-space:nowrap}
.roll{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:baseline;font-size:11px;padding:6px 0;border-bottom:1px dotted var(--rule)}
.roll:last-child{border-bottom:0}
.roll__no{font-family:var(--disp);font-size:12px;letter-spacing:.06em;color:var(--dim)}
.roll__what{min-width:0;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roll__amt{font-variant-numeric:tabular-nums;color:var(--lock);white-space:nowrap}
.roll--dry .roll__amt{color:var(--wait)}

/* ---------- the other leaves ---------- */
.leaf--page{display:grid;gap:14px}
.crest{border-left:2px solid var(--lock);padding:2px 0 2px 12px}
.crest h1{margin:0;font-size:25px;font-weight:800;letter-spacing:-.01em;text-transform:uppercase}
.crest p{margin:7px 0 0;font-size:12px;color:var(--dim)}
.prose{border:1px solid var(--rule);background:var(--paper);padding:14px;max-width:74ch}
.prose h3{margin:16px 0 6px;font-size:13px;letter-spacing:.13em;text-transform:uppercase;color:var(--lock)}
.prose h3:first-child{margin-top:0}
.prose p{margin:0 0 9px;font-size:13px;line-height:1.7;color:var(--dim)}
.prose ol{margin:0 0 9px;padding-left:20px;font-size:13px;line-height:1.7;color:var(--dim)}
.slip{border:1px solid var(--rule);background:var(--paper);padding:12px;display:grid;gap:8px}
.slip__hd{display:flex;justify-content:space-between;gap:8px;align-items:baseline;border-bottom:1px dashed var(--rule);padding-bottom:7px}
.slip__hd b{font-family:var(--disp);font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.slip__kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;font-size:12px}
.slip__kv span{color:var(--dimmer)}
.slip__kv code{text-align:right;font-variant-numeric:tabular-nums}

/* ---------- title-block footer ---------- */
.plate{
  max-width:1180px;margin:0 auto;padding:12px var(--pad) 34px;
  display:grid;gap:10px;border-top:1px solid var(--rule2);
}
.plate__cell{display:flex;flex-direction:column;gap:3px;min-width:0}
.plate__cell--sig{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--dimmer)}
.plate #social{display:flex;gap:10px;font-size:12px}
.copy{align-self:start;font:500 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 7px;border:1px solid var(--rule2);background:none;color:var(--dim);cursor:pointer}

/* ---------- drawer + flash ---------- */
.drawer{position:fixed;inset:0;z-index:60;background:rgba(3,7,11,.78);display:flex;align-items:flex-end;justify-content:center}
.drawer__box{width:100%;max-width:440px;background:var(--paper2);border:1px solid var(--rule2);border-bottom:0}
.drawer__hd{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border-bottom:1px solid var(--rule);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.drawer__hd button{background:none;border:0;color:var(--dim);font-size:22px;line-height:1;cursor:pointer}
.drawer__body{padding:12px;display:grid;gap:8px}
.drawer__body button{display:flex;align-items:center;gap:9px;width:100%;padding:11px;background:none;border:1px solid var(--rule2);color:var(--ink);font:500 13px/1 var(--mono);cursor:pointer}
.drawer__body img{width:20px;height:20px}
.flash{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:80;max-width:92vw;
  padding:9px 13px;background:var(--void);border:1px solid var(--lock);color:var(--ink);font-size:12px;text-align:center}

/* ---------- ~640px: the rift becomes a true split pane, banks either side of the seam ---------- */
@media (min-width:640px){
  :root{--pad:18px;--bar:56px}
  body{font-size:15px}
  .riftbar{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"mark routes buy signer";gap:14px;padding:9px 14px}
  .riftbar__routes{justify-content:flex-start}
  .brow__h{font-size:38px}
  .brow__p{font-size:14px}
  .span{grid-template-columns:minmax(0,1fr) 148px minmax(0,1fr);gap:0}
  .bank{border-right:0}
  .bank--east{border-right:1px solid var(--rule);border-left:0}
  .seam{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;border-left:0;border-right:0}
  .seam__rail{width:14px;height:190px}
  .seam__fill{inset:auto 0 0 0;width:auto;height:0;background:linear-gradient(0deg,rgba(61,240,198,.45),var(--lock));transition:height .5s ease}
  .seam__read{align-items:center}
  .figure{font-size:34px}
  .plate{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- ~1000px: the page recomposes — the rift in the primary column, the room beside it ---------- */
@media (min-width:1000px){
  :root{--pad:26px}
  body{font-size:16px}
  .plan{padding-top:24px}
  .leaf--rift{grid-template-columns:minmax(0,1fr) 336px;gap:22px;align-items:start}
  .brow{grid-column:1/-1}
  .brow__h{font-size:52px}
  .brow__p{font-size:15px}
  .span{grid-template-columns:minmax(0,1fr) 190px minmax(0,1fr)}
  .seam__rail{height:262px}
  .figure{font-size:44px}
  .margin{position:sticky;top:calc(var(--bar) + 22px)}
  .queue{min-height:150px}
  .bank{padding:16px}
  .plate{grid-template-columns:repeat(4,minmax(0,1fr))}
  .leaf--page{grid-template-columns:minmax(0,1fr);max-width:900px}
}
@media (min-width:1280px){
  .brow__h{font-size:58px}
  .figure{font-size:48px}
}
