/* Berthlow — the harbour office. Night register: warm paper ink on near-black, one green accent, hairline rules. */
:root{
  --ground:#0B0A0D; --ink:#EFEAE2; --dim:#8E8A83; --faint:#59565F;
  --accent:#3BE081; --accentSoft:rgba(59,224,129,.14); --rule:rgba(239,234,226,.13); --ruleSoft:rgba(239,234,226,.07);
  --card:#121116; --sunk:#0E0D11;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--ground);color:var(--ink)}
body{font-family:var(--mono);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
code{font-family:var(--mono)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* ---- the masthead: sticky at every width, and it carries the way in ---- */
.mast{position:sticky;top:0;z-index:40;background:rgba(11,10,13,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.mastrow{display:flex;align-items:center;gap:10px;max-width:1180px;margin:0 auto;padding:8px 14px}
.mastrow+.mastrow{padding-top:0;padding-bottom:9px}
.ensign{display:flex;align-items:center;gap:8px;margin-right:auto;min-width:0}
.ensign img{width:26px;height:26px;border-radius:50%;display:block}
.ensign b{font-family:var(--serif);font-weight:400;font-size:23px;letter-spacing:.01em;white-space:nowrap}
.tender{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;background:var(--accent);color:#07130C;
  font-weight:600;font-size:12.5px;letter-spacing:.02em;white-space:nowrap;border:1px solid var(--accent)}
.tender::after{content:'→';font-size:12px}
.tender.cold{background:transparent;color:var(--dim);border-color:var(--rule);cursor:default}
.tender.cold::after{content:''}
.sign{padding:7px 11px;border:1px solid var(--rule);border-radius:999px;font-size:12.5px;color:var(--dim);white-space:nowrap}
.sign.on{color:var(--accent);border-color:rgba(59,224,129,.4)}
.gauges{gap:14px;flex-wrap:wrap;font-size:11.5px;letter-spacing:.04em;color:var(--dim);text-transform:lowercase}
.gauge b{color:var(--ink);font-weight:500}
.ways{display:flex;gap:13px;margin-left:auto}
.ways a{color:var(--faint);border-bottom:1px solid transparent;padding-bottom:1px}
.ways a.here{color:var(--accent);border-color:var(--accent)}

/* ---- the sheet ---- */
#sheet{max-width:1180px;margin:0 auto;padding:22px 14px 64px}
.preamble{padding:10px 0 20px;border-bottom:1px solid var(--rule)}
.preamble h1{font-family:var(--serif);font-weight:400;font-size:clamp(34px,10vw,52px);line-height:1.02;margin:0 0 10px;letter-spacing:-.01em}
.preamble p{margin:0;max-width:56ch;color:var(--dim);font-size:13.5px;line-height:1.62}
.preamble em{font-style:italic;color:var(--ink)}

.standing{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin:20px 0}
.fig{background:var(--ground);padding:13px 14px}
.fig .k{display:block;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}
.fig .v{font-size:clamp(19px,5.6vw,26px);font-weight:500;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.fig .v.hot{color:var(--accent)}
.fig .n{display:block;font-size:11px;color:var(--faint);margin-top:3px}

.head{display:flex;align-items:baseline;gap:10px;margin:30px 0 12px}
.head h2{font-family:var(--serif);font-weight:400;font-size:26px;margin:0;letter-spacing:.005em}
.head .note{font-size:11.5px;color:var(--faint);margin-left:auto;text-align:right}

/* ---- the register: the one object ---- */
.berths{border-top:1px solid var(--rule)}
.line{display:grid;grid-template-columns:52px 1fr;gap:12px;padding:13px 0 14px;border-bottom:1px solid var(--rule);position:relative}
.line.ranked{background:linear-gradient(90deg,var(--accentSoft),transparent 62%)}
.mark{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding-left:2px}
.mark .rom{font-family:var(--serif);font-size:30px;line-height:1;color:var(--ink)}
.mark .pct{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.body{min-width:0}
.topline{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.worth{font-size:15px;font-weight:500;color:var(--accent);font-variant-numeric:tabular-nums}
.worth span{color:var(--faint);font-weight:400;font-size:11.5px}
.gate{font-size:11.5px;color:var(--dim);margin-left:auto;font-variant-numeric:tabular-nums}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.slot{background:var(--sunk);border:1px solid var(--ruleSoft);border-radius:3px;padding:7px 8px;min-width:0;overflow:hidden}
.slot .hand{display:block;font-size:11.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot .amt{display:block;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums;margin-top:2px}
.slot.free{border-style:dashed;border-color:var(--rule)}
.slot.free .hand{color:var(--faint)}
.slot.mine{border-color:var(--accent);background:var(--accentSoft)}
.slot.fresh{animation:strike .5s ease-out}
@keyframes strike{from{background:var(--accent);color:#07130C}to{}}
.rank{position:absolute;top:13px;right:0;display:inline-flex;align-items:center;gap:5px;font-size:11px;letter-spacing:.05em;
  color:var(--dim);border:1px solid var(--rule);border-radius:999px;padding:4px 10px}
.rank.on{color:var(--accent);border-color:var(--accent)}
.rank .ord{font-weight:600}
@media (max-width:519px){ .topline{padding-right:76px} }

/* ---- the filing desk: the one action ---- */
.desk{border:1px solid var(--rule);background:var(--card);padding:15px 14px;margin-top:22px}
.desk h3{font-family:var(--serif);font-weight:400;font-size:22px;margin:0 0 3px}
.desk .hint{font-size:11.5px;color:var(--faint);margin:0 0 13px}
.field{display:flex;align-items:center;gap:9px;border:1px solid var(--rule);background:var(--sunk);padding:9px 11px}
.field input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--ink);font-family:var(--mono);font-size:17px;font-variant-numeric:tabular-nums}
.field .unit{font-size:11.5px;color:var(--faint);white-space:nowrap}
.steps{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.step{border:1px solid var(--rule);padding:4px 9px;font-size:11.5px;color:var(--dim);border-radius:2px}
.step:hover{border-color:var(--accent);color:var(--accent)}
.order{display:flex;gap:7px;margin:13px 0 4px;flex-wrap:wrap;min-height:30px;align-items:center}
.chosen{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--accent);color:var(--accent);padding:4px 10px;border-radius:2px;font-size:12px}
.chosen .ord{opacity:.65;font-size:10.5px;letter-spacing:.08em}
.order .none{font-size:11.5px;color:var(--faint)}
.file{display:block;width:100%;margin-top:12px;padding:14px;background:var(--accent);color:#07130C;font-weight:600;font-size:15px;letter-spacing:.01em;border-radius:2px}
.file[disabled]{background:transparent;color:var(--faint);border:1px solid var(--rule);cursor:not-allowed}
.outlook{font-size:11.5px;color:var(--dim);margin-top:9px;line-height:1.55}
.outlook b{color:var(--accent);font-weight:500}

/* ---- rules + tape ---- */
.lore{margin-top:26px;border-top:1px solid var(--rule)}
.lore section{padding:15px 0;border-bottom:1px solid var(--ruleSoft)}
.lore h4{font-family:var(--serif);font-weight:400;font-size:20px;margin:0 0 5px}
.lore p{margin:0;color:var(--dim);font-size:13px;line-height:1.62;max-width:62ch}
.tape{margin-top:22px}
.trow{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px solid var(--ruleSoft);font-size:12px}
.trow .who{color:var(--ink);white-space:nowrap}
.trow .what{color:var(--dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow .when{margin-left:auto;color:var(--faint);font-size:11px;white-space:nowrap}
.trow.print{animation:print .45s ease-out}
@keyframes print{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.quiet{color:var(--faint);font-size:12.5px;padding:14px 0}

/* ---- ledger + claims + rules pages ---- */
.slab{border:1px solid var(--rule);margin-bottom:10px;padding:12px 13px;background:var(--card)}
.slab .top{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.slab .top b{font-family:var(--serif);font-weight:400;font-size:20px}
.slab .top .when{margin-left:auto;font-size:11px;color:var(--faint)}
.pairs{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:9px}
.pair .k{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.pair .v{font-size:14px;font-variant-numeric:tabular-nums}
.seatline{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;font-size:11.5px;color:var(--dim)}
.seatline span{border:1px solid var(--ruleSoft);padding:2px 7px}

/* ---- footer ---- */
.colophon{max-width:1180px;margin:0 auto;padding:18px 14px 40px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--faint)}
.cline{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:3px 0;min-width:0}
.cline code{color:var(--dim);word-break:break-all}
.cline .key{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--faint);min-width:120px}
.colophon button{border:1px solid var(--rule);padding:1px 7px;font-size:10.5px;color:var(--dim)}

/* ---- scrim ---- */
.scrim{position:fixed;inset:0;z-index:60;background:rgba(6,6,8,.82);display:flex;align-items:flex-end;justify-content:center}
.scrim[hidden]{display:none!important}
.slip{width:100%;max-width:440px;background:var(--card);border:1px solid var(--rule);padding:14px;max-height:84vh;overflow:auto}
.sliptop{display:flex;align-items:center;margin-bottom:10px;font-family:var(--serif);font-size:20px}
.sliptop button{margin-left:auto;font-size:20px;color:var(--dim)}
.rig{display:flex;align-items:center;gap:9px;width:100%;padding:10px;border:1px solid var(--rule);margin-bottom:7px}
.rig img{width:20px;height:20px}
.puff{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--card);border:1px solid var(--accent);
  color:var(--ink);padding:10px 15px;font-size:12.5px;z-index:90;max-width:88vw;text-align:center}

/* ---- a wider measure, then a real recomposition ---- */
@media (min-width:720px){
  body{font-size:15px}
  #sheet{padding:30px 26px 72px}
  .standing{grid-template-columns:repeat(4,1fr)}
  .line{grid-template-columns:78px 1fr 110px;align-items:center}
  .mark{flex-direction:row;align-items:baseline;gap:8px}
  .mark .rom{font-size:38px}
  .rank{position:static;justify-self:end;padding:6px 13px}
  .slot .hand{font-size:12.5px}
  .preamble p{font-size:15px}
}
@media (min-width:1000px){
  #sheet{display:grid;grid-template-columns:minmax(0,1fr) 388px;gap:30px;align-items:start;padding:34px 30px 80px}
  .preamble,.standing{grid-column:1 / -1}
  .preamble h1{font-size:58px;max-width:16ch}
  .standing{grid-template-columns:repeat(5,1fr)}
  .fig .v{font-size:27px}
  .column{position:sticky;top:104px;display:flex;flex-direction:column;gap:0}
  .column .desk{margin-top:0}
  .column .tape{margin-top:20px}
  .line{grid-template-columns:96px 1fr 120px;padding:16px 0 17px}
  .mark .rom{font-size:44px}
  .slot{padding:9px 10px}
}
.stack{min-width:0}
@media (min-width:1000px){ #sheet.solo{grid-template-columns:minmax(0,1fr)} }

/* ---- phone: the masthead is two tight rows and the buy pill never collides with the name ---- */
@media (max-width:519px){
  .ensign b{display:none}
  .ensign{margin-right:0;flex:0 0 auto}
  .tender{margin-left:auto;font-size:12px;padding:7px 11px}
  .sign{padding:7px 9px;font-size:12px}
  .gauges{gap:10px;font-size:11px}
  .ways{gap:11px;width:100%;margin-left:0;padding-top:2px}
  .head{flex-wrap:wrap}
  .head .note{flex-basis:100%;margin-left:0;text-align:left;margin-top:3px}
  .standing .fig:last-child{grid-column:1 / -1}
}
@media (max-width:519px){
  .preamble{padding:8px 0 16px}
  .preamble h1{margin-bottom:8px}
  .standing{margin:16px 0}
  .fig{padding:10px 11px}
  .fig .n{display:none}
  .fig .k{margin-bottom:3px}
  .head{margin:22px 0 10px}
}

/* ---- the standing row fits its five figures at every width, with no orphan cell ---- */
.standing{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
@media (min-width:720px){
  .standing{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
  .line{grid-template-columns:150px 1fr 110px}
  .mark .pct{white-space:nowrap}
}
@media (min-width:1000px){
  .line{grid-template-columns:170px 1fr 120px}
}
