/* thoth · the scales — shared component library.
   gold-on-black ledger. mono for evidence, serif for verdicts.
   the css variables below are authoritative (spec part 2 §0).
   the displayed weight unit is "kite" (an ancient egyptian sub-unit of weight). */

:root {
  --bg:#05060c; --panel:#080a14; --line:#161a2c;
  --bg2:#0a1336; --bg3:#122254;
  --cream:#EDE6D6; --gold-hi:#E8C36A; --gold-mid:#C9A24B;
  --green:#7ED0A0; --mut-blue:#9AA6D4; --mut:#7E8AB8; --red:#D9776A;
  --hair:rgba(201,162,75,.22); --hair2:rgba(201,162,75,.12);
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --serif:'Playfair Display',Georgia,serif;
  --gara:'Cormorant Garamond',Georgia,serif;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  background:var(--bg); color:var(--cream); font-family:var(--mono);
  font-size:14px; line-height:1.55; min-height:100vh; position:relative;
}
body::before { /* navy glow, as on the shipped board + cards */
  content:''; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:radial-gradient(90% 55% at 50% -10%, var(--bg3) 0%, var(--bg2) 38%, var(--bg) 75%);
}
body::after { /* grain */
  content:''; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.045;
  background-image:repeating-linear-gradient(0deg,#fff 0 1px,transparent 1px 3px);
  mix-blend-mode:overlay;
}

.wrap { max-width:1060px; margin:0 auto; padding:0 22px 90px; }
a { color:var(--gold-hi); text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:3px; }

/* ------------------------------------------------ header */
header { padding:30px 0 0; }
.topline { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.brand { display:flex; align-items:center; gap:13px; color:var(--gold-mid); }
.brand:hover { text-decoration:none; }
.brand svg { width:40px; height:30px; filter:drop-shadow(0 0 10px rgba(232,195,106,.35)); flex:none; }
.brand span { font-size:12px; letter-spacing:6px; text-transform:uppercase; font-weight:500; }
nav { display:flex; gap:22px; font-size:12px; letter-spacing:3px; text-transform:uppercase; }
nav a { color:var(--mut-blue); }
nav a.on, nav a:hover { color:var(--gold-hi); text-decoration:none; }
.goldrule { height:1px; margin:24px 0 0;
  background:linear-gradient(90deg,var(--gold-mid) 0%,rgba(201,162,75,.25) 55%,rgba(201,162,75,0) 100%); }

/* ------------------------------------------------ global oracle search (every page) */
.search { display:flex; align-items:center; gap:10px; margin-top:20px; position:relative; }
.search .g { color:var(--gold-mid); font-size:17px; line-height:1; flex:none;
  filter:drop-shadow(0 0 8px rgba(232,195,106,.4)); }
.search input { flex:1; min-width:0; background:rgba(8,10,20,.6); border:1px solid var(--hair2);
  color:var(--cream); font-family:var(--mono); font-size:13px; letter-spacing:.5px; padding:11px 14px;
  outline:none; }
.search input::placeholder { color:var(--mut); letter-spacing:.5px; }
.search input:focus { border-color:var(--gold-mid); background:rgba(201,162,75,.05); }
.search button { appearance:none; background:rgba(201,162,75,.08); border:1px solid var(--gold-mid);
  color:var(--gold-hi); font-family:var(--mono); font-size:11px; letter-spacing:2px; text-transform:uppercase;
  padding:11px 18px; cursor:pointer; flex:none; }
.search button:hover { background:rgba(201,162,75,.16); }
.search .hint { position:absolute; top:100%; left:27px; margin-top:6px; font-size:11px;
  letter-spacing:1px; color:var(--mut); }
.search .hint.no { color:var(--red); }
@media (max-width:640px) {
  .search .g { display:none; }
  .search button { padding:11px 13px; }
  .search .hint { left:0; }
}

/* ------------------------------------------------ unweighed (wallet not on the ledger) */
.unweighed .call { color:var(--mut-blue); text-shadow:none; }
.unweighed .glyphbig { font-size:52px; color:var(--mut); opacity:.4; line-height:1; }
.blurb { max-width:520px; margin:18px auto 0; color:var(--mut-blue); font-size:13px;
  letter-spacing:.5px; line-height:1.6; }
.reqd { color:var(--gold-hi); font-size:12px; letter-spacing:2px; text-transform:uppercase; }

/* ------------------------------------------------ token smart-money view */
.flowline { display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  flex-wrap:wrap; margin-top:26px; }
.flowline .fl { font-family:var(--serif); font-size:clamp(20px,4vw,30px); font-weight:600; line-height:1; }
.flowline .fl.pos { color:var(--green); } .flowline .fl.neg { color:var(--red); }
.flowline .flk { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--mut); }
.flowbar { position:relative; height:16px; background:rgba(126,138,184,.14); margin:14px 0 0;
  border:1px solid var(--hair2); }
.flowbar .mid { position:absolute; left:50%; top:-3px; bottom:-3px; width:1px; background:var(--gold-mid);
  box-shadow:0 0 6px rgba(201,162,75,.5); }
.flowbar i { position:absolute; top:0; bottom:0; }
.flowbar i.pos { left:50%; background:linear-gradient(90deg,var(--green),rgba(126,208,160,.35)); }
.flowbar i.neg { right:50%; background:linear-gradient(270deg,var(--red),rgba(217,119,106,.35)); }
.flowends { display:flex; justify-content:space-between; margin-top:6px; font-size:10px;
  letter-spacing:2px; text-transform:uppercase; color:var(--mut); }
.ladder { margin-top:22px; padding:16px 18px; border:1px solid var(--hair2); background:rgba(8,10,20,.5);
  color:var(--mut-blue); font-size:13px; letter-spacing:.5px; line-height:1.6; }
.ladder b { color:var(--gold-hi); font-weight:500; }
.cols { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:8px; }
.col .sechead { margin:52px 0 6px; }
.col .sechead h2 .din { color:var(--green); } .col .sechead h2 .dout { color:var(--red); }
@media (max-width:640px) { .cols { grid-template-columns:1fr; gap:0; } }

/* ------------------------------------------------ hero */
/* the signature eye - horus glyph assembled from ~14k gold+slate webgl particles (hero.js) */
#eyefield { position:absolute; left:0; right:0; top:0; height:640px; z-index:-1;
  pointer-events:none; overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 72%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 72%,transparent 100%); }
#eyefield canvas { display:block; }
@media (max-width:720px){ #eyefield { opacity:.45; height:520px; } }
.hero { padding:60px 0 8px; max-width:820px; position:relative; margin:0 auto; text-align:center; }
.hero h1 { font-family:var(--serif); font-weight:700; font-size:clamp(32px,5.6vw,54px);
  line-height:1.07; letter-spacing:.5px; }
.hero h1 em { font-style:normal; color:var(--gold-hi); text-shadow:0 0 34px rgba(232,184,74,.35); }
.hero .sub { margin-top:20px; color:var(--mut-blue); font-size:14.5px; max-width:640px;
  margin-left:auto; margin-right:auto; }
.hero .sub b { color:var(--cream); font-weight:500; }
.tagline { margin-top:18px; font-family:var(--gara); font-style:italic; font-size:18px;
  letter-spacing:1px; color:var(--gold-mid); }

/* hero search - the one input that floats over the particle eye */
.search.search--hero { max-width:620px; margin:30px auto 0; }
.search--hero input { font-size:15px; padding:15px 18px; background:rgba(5,6,12,.78);
  border-color:var(--hair); }
.search--hero input:focus { border-color:var(--gold-mid); background:rgba(5,6,12,.86);
  box-shadow:0 0 0 1px rgba(201,162,75,.35), 0 0 28px rgba(201,162,75,.22); }
.search--hero button { padding:15px 22px; font-size:12px; background:rgba(5,6,12,.78); }
.search--hero button:hover { background:rgba(201,162,75,.16); }
.search--hero .hint { left:0; right:0; text-align:center; }

/* proof chips under the hero search - "try one of these" */
.tryline { display:flex; justify-content:center; align-items:center; gap:8px; flex-wrap:wrap;
  margin-top:14px; font-size:11px; letter-spacing:1px; color:var(--mut); }
.tryline a { display:inline-flex; align-items:center; gap:7px; color:var(--mut-blue);
  border:1px solid var(--hair2); background:rgba(5,6,12,.65); padding:4px 11px;
  letter-spacing:1px; white-space:nowrap; }
.tryline a:hover { border-color:var(--gold-mid); color:var(--gold-hi); text-decoration:none;
  background:rgba(201,162,75,.08); }

/* ------------------------------------------------ exposé callout (the de-ranked "winner") */
.callout { margin:22px 0 0; padding:13px 18px; border:1px solid var(--hair);
  border-left:2px solid var(--red); background:linear-gradient(90deg,rgba(217,119,106,.07),rgba(8,10,20,0));
  font-family:var(--mono); font-size:13px; line-height:1.55; color:var(--mut-blue); letter-spacing:.3px; }
.callout b { color:var(--cream); font-weight:500; }
.callout b[data-v]{ color:var(--red); text-transform:uppercase; letter-spacing:1px; font-size:11px; }
.callout .ct-tag { display:inline-block; margin-right:10px; padding:2px 8px; font-size:10px;
  letter-spacing:2px; text-transform:uppercase; color:var(--red); border:1px solid var(--red);
  border-radius:2px; vertical-align:middle; }
.callout a { color:var(--gold-hi); white-space:nowrap; }

/* ------------------------------------------------ aggregate exposé stat */
.aggstat { margin:26px 0 4px; display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; }
.aggstat .agnum { font-family:var(--serif); font-weight:700; font-size:clamp(30px,4.4vw,46px);
  color:var(--red); line-height:1; letter-spacing:.5px; }
.aggstat .aglbl { font-family:var(--mono); font-size:12.5px; letter-spacing:1px; color:var(--mut-blue);
  text-transform:uppercase; }

/* ------------------------------------------------ tabs (humans | agents) */
.tabs { display:flex; gap:0; margin:40px 0 0; border-bottom:1px solid var(--hair); }
.tab { appearance:none; background:none; border:none; cursor:pointer; font-family:var(--mono);
  color:var(--mut); font-size:12px; letter-spacing:3px; text-transform:uppercase; font-weight:500;
  padding:12px 22px 14px; position:relative; }
.tab:hover { color:var(--mut-blue); }
.tab.on { color:var(--gold-hi); }
.tab.on::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px;
  background:var(--gold-mid); box-shadow:0 0 12px rgba(201,162,75,.55); }

/* control strip (axis + window toggles) */
.controls { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin:18px 0 0;
  font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--mut); }
.seg { display:inline-flex; gap:2px; }
.seg button { appearance:none; background:rgba(126,138,184,.06); border:1px solid var(--hair2);
  color:var(--mut-blue); font-family:var(--mono); font-size:11px; letter-spacing:2px;
  text-transform:uppercase; padding:6px 12px; cursor:pointer; }
.seg button:hover { border-color:var(--hair); color:var(--cream); }
.seg button.on { border-color:var(--gold-mid); color:var(--gold-hi);
  background:rgba(201,162,75,.08); }
.seg .lbl { color:var(--mut); align-self:center; margin-right:2px; }

/* ------------------------------------------------ verdict badge */
.badge { display:inline-block; padding:3px 10px 2px; font-size:10.5px; font-weight:600;
  letter-spacing:2px; text-transform:uppercase; border:1px solid transparent; white-space:nowrap; }
.badge[data-v="SMART"] { color:var(--gold-hi); border-color:rgba(232,195,106,.65);
  background:rgba(201,162,75,.07); }
.badge[data-v="DEGEN"] { color:var(--mut-blue); border-color:rgba(154,166,212,.5); }
.badge[data-v="BOT"]   { color:var(--mut); border-color:rgba(126,138,184,.45); }
.badge[data-v="LARP"]  { color:var(--mut); border-color:rgba(126,138,184,.45); }
.badge[data-v="FRESH"] { color:var(--cream); border-color:var(--hair); border-style:dashed; }
/* extraction verdicts own red - loudest marks on the board */
.badge[data-v="EXTRACTOR"] { color:#0b0c12; border-color:var(--red); background:var(--red);
  font-weight:700; }
.badge[data-v="INSIDER"] { color:var(--red); border-color:rgba(217,119,106,.55);
  background:rgba(217,119,106,.06); }

/* verdict dot (chip prefix) */
.dot { display:inline-block; width:7px; height:7px; border-radius:50%; flex:none; }
.dot[data-v="SMART"]{ background:var(--gold-hi); box-shadow:0 0 7px rgba(232,195,106,.7); }
.dot[data-v="DEGEN"]{ background:var(--mut-blue); }
.dot[data-v="BOT"]{ background:var(--mut); }
.dot[data-v="LARP"]{ background:var(--mut); }
.dot[data-v="FRESH"]{ background:transparent; border:1px solid var(--hair); }
.dot[data-v="EXTRACTOR"]{ background:var(--red); box-shadow:0 0 7px rgba(217,119,106,.7); }
.dot[data-v="INSIDER"]{ background:var(--red); }

/* wallet chip */
.chip { display:inline-flex; align-items:center; gap:9px; }
.chip .addr { color:var(--gold-hi); letter-spacing:.5px; }
.chip .lab { color:var(--mut-blue); font-size:12px; }
.chip .ag { color:var(--mut); font-size:10px; letter-spacing:2px; text-transform:uppercase;
  border:1px solid var(--hair2); padding:1px 6px; }

/* debank portfolio outlink (board row + card) */
a.dbk { color:var(--mut-blue); font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase;
  white-space:nowrap; opacity:.85; }
a.dbk:hover { color:var(--gold-hi); text-decoration:none; opacity:1; }

/* 10-cell score meter ▰▰▰▱▱ */
.meter { display:inline-flex; align-items:center; gap:9px; white-space:nowrap; }
.meter .cells { font-size:12px; letter-spacing:1px; line-height:1; }
.meter .on  { color:var(--gold-hi); }
.meter .off { color:rgba(126,138,184,.35); }
.meter .val { color:var(--cream); font-weight:500; }
.meter.lg .cells { font-size:16px; }
.meter.lg .val { font-size:20px; }

/* diverging p&l bar (token smart-flow / sparkline stand-in) */
.dbar { display:inline-block; width:74px; height:6px; background:rgba(126,138,184,.16);
  position:relative; vertical-align:middle; }
.dbar i { position:absolute; top:0; bottom:0; }
.dbar i.pos { left:50%; background:var(--green); }
.dbar i.neg { right:50%; background:var(--red); }

/* signed numbers */
.pos { color:var(--green); }
.neg { color:var(--red); }
.gold { color:var(--gold-hi); }

/* ------------------------------------------------ leaderboard table */
.tblwrap { overflow-x:auto; margin-top:16px; }
table.lb { width:100%; border-collapse:collapse; font-size:13px; white-space:nowrap; }
table.lb th { font-size:10.5px; letter-spacing:2.5px; text-transform:uppercase; color:var(--mut);
  font-weight:500; text-align:left; padding:10px 14px 9px 0; border-bottom:1px solid var(--hair);
  cursor:pointer; user-select:none; }
table.lb th.n { text-align:right; }
table.lb th:hover { color:var(--gold-hi); }
table.lb th .arr { color:var(--gold-hi); }
table.lb td { padding:12px 14px 12px 0; border-bottom:1px solid var(--hair2); vertical-align:middle; }
table.lb td.n { text-align:right; }
table.lb tr:hover td { background:rgba(201,162,75,.045); }
table.lb .rank { color:var(--mut); font-size:12px; width:34px; }
table.lb a.w { color:var(--cream); }
table.lb a.w:hover { text-decoration:none; }

/* collapsed dust tail (sub-threshold wallets folded into one row) */
tr.dust td { text-align:center; color:var(--mut); font-size:11px; letter-spacing:2px;
  text-transform:uppercase; padding:12px 0; cursor:pointer; user-select:none; }
tr.dust:hover td { color:var(--mut-blue); background:rgba(126,138,184,.05); }
tr.dust .unfold { color:var(--gold-mid); margin-left:8px; }
tr.dust:hover .unfold { color:var(--gold-hi); }
tr.dim td { opacity:.45; }

/* flagged (off-market inflow) rows + sunk weight */
tr.flagged td:first-child { box-shadow:inset 2px 0 0 var(--red); }
tr.flagged:hover td { background:rgba(217,119,106,.05); }
.sunkw { color:var(--red); font-size:11px; letter-spacing:1.5px; font-variant-caps:all-small-caps;
  white-space:nowrap; }

/* seats line under the tabs */
.seats { margin:14px 0 0; font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:var(--mut); }
.seats b { color:var(--gold-hi); font-weight:500; }

/* mobile column diet - xs drops win/early/last-seen, xxs also drops roi */
@media (max-width:640px) {
  table .xs { display:none; }
  table.lb { font-size:12px; }
  table.lb td { padding:10px 10px 10px 0; }
  table.lb th { padding-right:10px; }
}
@media (max-width:420px) {
  table .xxs { display:none; }
}

/* ------------------------------------------------ the plate (hero / cards only) */
.plate { position:relative; margin:44px 0 0; padding:44px 40px 38px;
  border:2px solid rgba(201,162,75,.8);
  background:radial-gradient(120% 90% at 50% 8%, rgba(26,47,120,.35) 0%, rgba(10,19,54,.25) 40%, transparent 72%); }
.plate::before { content:''; position:absolute; inset:7px; border:1px solid rgba(232,195,106,.32);
  pointer-events:none; }
.plate .dm { position:absolute; width:9px; height:9px; background:var(--gold-mid);
  transform:rotate(45deg); box-shadow:0 0 8px rgba(201,162,75,.5); }
.plate .d1{ top:-5px; left:-5px; } .plate .d2{ top:-5px; right:-5px; }
.plate .d3{ bottom:-5px; left:-5px; } .plate .d4{ bottom:-5px; right:-5px; }

/* ------------------------------------------------ verdict hero (rap-sheet) */
.eye { color:var(--gold-hi); }
.brandline { font-size:12px; font-weight:500; letter-spacing:8px; color:var(--gold-mid);
  text-transform:uppercase; }
.vlabel { font-size:12px; letter-spacing:6px; color:var(--mut); text-transform:uppercase; }
.call { font-family:var(--serif); font-weight:700; letter-spacing:1px; color:var(--gold-hi);
  text-shadow:0 0 34px rgba(232,184,74,.35); line-height:1; }
.callsub { color:var(--mut-blue); font-size:13px; letter-spacing:2px; }

/* ------------------------------------------------ stat tiles */
.tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:30px; }
.tile { border:1px solid var(--hair2); padding:18px 18px 16px; background:rgba(8,10,20,.5); }
.tile .k { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--mut); }
.tile .big { font-family:var(--serif); font-weight:600; font-size:30px; margin-top:8px; line-height:1;
  color:var(--cream); }
.tile .big.pos { color:var(--green); } .tile .big.neg { color:var(--red); }
.tile .big.gold { color:var(--gold-hi); }
.tile .sub { margin-top:9px; font-size:11px; color:var(--mut); letter-spacing:1px; }

/* ------------------------------------------------ record / holdings tables */
.sechead { display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  flex-wrap:wrap; margin:52px 0 6px; }
.sechead h2 { font-family:var(--serif); font-weight:600; font-size:22px; }
.sechead .note { color:var(--mut); font-size:12px; letter-spacing:1px; }
table.rec { width:100%; border-collapse:collapse; font-size:13px; white-space:nowrap; }
table.rec th { font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:var(--mut);
  font-weight:500; text-align:left; padding:9px 14px 8px 0; border-bottom:1px solid var(--hair); }
table.rec th.n { text-align:right; }
table.rec td { padding:10px 14px 10px 0; border-bottom:1px solid var(--hair2); vertical-align:middle; }
table.rec td.n { text-align:right; }
table.rec tr:hover td { background:rgba(201,162,75,.045); }
table.rec td.mut { color:var(--mut); }
table.rec td.tx a { color:var(--mut-blue); font-size:12px; letter-spacing:.5px; }
table.rec td.tx a:hover { color:var(--gold-hi); }
table.rec tr.offm td { background:rgba(217,119,106,.05); }
table.rec tr.offm td:first-child { box-shadow:inset 2px 0 0 var(--red); }
table.rec tr.offm:hover td { background:rgba(217,119,106,.09); }
.recfoot { margin-top:10px; font-size:11px; letter-spacing:1.5px; color:var(--mut); }
.recfoot b { color:var(--mut-blue); font-weight:500; }
.verb { text-transform:uppercase; font-size:11px; letter-spacing:2px; }
.verb.buy { color:var(--green); } .verb.sell { color:var(--red); } .verb.hold { color:var(--mut-blue); }
.verb.recv { color:var(--gold-hi); }

/* ------------------------------------------------ footer */
footer { margin-top:80px; border-top:1px solid var(--hair); padding-top:28px;
  display:flex; justify-content:space-between; align-items:flex-end; gap:18px; flex-wrap:wrap; }
footer .l { color:var(--mut); font-size:12px; letter-spacing:2px; }
footer .l a { color:var(--mut-blue); }
footer .eyt { font-size:20px; color:var(--gold-hi); }
footer .tag { font-family:var(--gara); font-style:italic; font-size:19px; color:var(--gold-mid); }

.btn { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--hair);
  color:var(--mut-blue); font-family:var(--mono); font-size:11px; letter-spacing:2px;
  text-transform:uppercase; padding:7px 13px; cursor:pointer; background:none; }
.btn:hover { border-color:var(--gold-mid); color:var(--gold-hi); text-decoration:none; }

.empty { text-align:center; color:var(--mut); padding:80px 0; letter-spacing:2px; }

/* ------------------------------------------------ load motion */
@media (prefers-reduced-motion:no-preference) {
  .hero,.tabs,.plate,.tiles,section { animation:rise .5s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
  @keyframes flash { from { box-shadow:inset 3px 0 0 var(--gold-hi); background:rgba(201,162,75,.09); }
    to { box-shadow:inset 3px 0 0 transparent; background:transparent; } }
  .flash td:first-child { animation:flash 1.4s ease-out; }
}

/* ------------------------------------------------ mobile: line 1 carries the whole claim */
@media (max-width:640px) {
  .topline { flex-wrap:wrap; }
  .brand span { letter-spacing:3px; }
  nav { gap:14px; width:100%; overflow-x:auto; padding-bottom:2px; }
  .tiles { grid-template-columns:repeat(2,1fr); }
  .tab { padding:12px 16px 14px; }
  .plate { padding:30px 20px 26px; }
}

/* hero tryline: chip-internal layout + label (base .tryline a already themed) */
.tryline .trylbl{ color:var(--mut); text-transform:uppercase; letter-spacing:2px; font-size:10px; }
.tryline .trychip{ display:inline-flex; align-items:center; gap:8px; }
.tryline .trychip .rz{ font-variant-numeric:tabular-nums; }
.tryline .trychip .rz.pos{ color:var(--green); }
.tryline .trychip .rz.neg{ color:var(--red); }

/* ============================================================================
   the obsidian tribunal - house reskin for the board (index.html only)
   layered over /_house/house.css; house owns the palette + theme toggle, so
   colors read from house tokens via var() with a dark fallback for offline
   render. everything here is scoped to body.board-page or board-only classes
   so the sibling pages (w.html / agent.html / t.html) that share this sheet
   keep their original gold-on-navy look untouched.
   ratio: >=90% ground+ink; gold appears only on the one smart-money judgment.
   fonts: display=Bodoni Moda, text=Newsreader, mono=Commit Mono (house.css
   supplies Commit Mono; JetBrains Mono is the loaded web fallback).
   ============================================================================ */
body.board-page{
  background:var(--ground,#05060C);
  color:var(--ink,#EDE6D6);
  font-family:var(--font-text,"Newsreader",Georgia,serif);
}
body.board-page::before,
body.board-page::after{ display:none; }          /* drop the navy glow + grain */
body.board-page .wrap{ max-width:1000px; padding:0 24px 0; }

/* --- masthead -------------------------------------------------------------- */
.mast{ display:flex; align-items:center; gap:26px; flex-wrap:wrap;
  padding:22px 0 18px; border-bottom:1px solid var(--rule,#1C2130); }
.mast-brand{ display:inline-flex; align-items:center; gap:9px; }
.mast-brand:hover{ text-decoration:none; }
.mast-feather{ color:var(--gold,#E8C36A); font-size:20px; line-height:1;
  filter:drop-shadow(0 0 10px rgba(232,195,106,.3)); }
.mast-wm{ font-family:var(--font-display,"Bodoni Moda","Bodoni 72",Didot,Georgia,serif);
  font-size:23px; letter-spacing:.5px; color:var(--ink,#EDE6D6); }
.mast-nav{ display:flex; align-items:center; gap:22px;
  font-family:var(--font-mono,"Commit Mono",ui-monospace,"JetBrains Mono",Menlo,monospace);
  font-size:12px; letter-spacing:.6px; }
.mast-nav a{ position:relative; color:var(--ink-mute,#8A93B0); }
.mast-nav a:not(:first-child)::before{ content:"·"; position:absolute; left:-13px;
  color:var(--rule,#39415A); }
.mast-nav a:hover{ color:var(--ink,#EDE6D6); text-decoration:none; }
.mast-nav a.on{ color:var(--ink,#EDE6D6); }
.mast-tools{ margin-left:auto; display:flex; align-items:center; gap:18px; }
.theme-toggle{ appearance:none; background:none; cursor:pointer; width:26px; height:26px;
  border:1px solid var(--rule,#1C2130); border-radius:50%; color:var(--ink-mute,#8A93B0);
  font-size:13px; line-height:1; display:grid; place-items:center; padding:0; }
.theme-toggle:hover{ color:var(--ink,#EDE6D6); border-color:var(--ink-mute,#8A93B0); }
.mast-status{ display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-mono,"Commit Mono",ui-monospace,"JetBrains Mono",Menlo,monospace);
  font-size:11px; letter-spacing:.4px; color:var(--ink-mute,#8A93B0); }
.mast-status .led{ width:4px; height:4px; flex:none; background:var(--led,#CCFF00);
  box-shadow:0 0 6px var(--led,#CCFF00); }
.mast-status .blockh{ color:var(--ink-mute,#8A93B0); opacity:.7; }

/* --- hero (states the thesis, no gold) ------------------------------------- */
.board-page .hero{ padding:74px 0 48px; max-width:840px; margin:0; text-align:left; }
.board-page .hero-h{ font-family:var(--font-display,"Bodoni Moda","Bodoni 72",Didot,Georgia,serif);
  font-weight:600; font-size:clamp(34px,6vw,60px); line-height:1.05; letter-spacing:.3px;
  color:var(--ink,#EDE6D6); }
.board-page .hero-sub{ margin-top:20px; max-width:560px; font-size:15px; line-height:1.55;
  color:var(--ink-mute,#8A93B0); }

/* --- the board table (mono, tabular) --------------------------------------- */
.board-wrap{ overflow-x:auto; margin-top:8px; padding-bottom:56px; }
table.board{ width:100%; border-collapse:collapse; white-space:nowrap;
  font-family:var(--font-mono,"Commit Mono",ui-monospace,"JetBrains Mono",Menlo,monospace);
  font-size:13px; font-variant-numeric:tabular-nums; }
table.board thead th{ text-align:left; font-weight:400; font-size:10.5px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--ink-mute,#8A93B0);
  padding:10px 18px 10px 0; border-bottom:1px solid var(--rule,#1C2130); }
table.board th.pnl, table.board td.pnl{ text-align:right; padding-right:0; }
table.board tbody td{ padding:11px 18px 11px 0; vertical-align:middle;
  border-bottom:1px solid var(--rule,#1C2130); color:var(--ink,#EDE6D6); }
table.board tbody tr:hover td{ background:color-mix(in srgb, var(--ink,#EDE6D6) 4%, transparent); }
table.board td.rk{ width:44px; color:var(--ink-mute,#8A93B0); }
table.board td.wal a{ color:var(--ink,#EDE6D6); letter-spacing:.5px; }
table.board td.wal a:hover{ color:var(--gold,#E8C36A); text-decoration:none; }
table.board td.pnl{ font-variant-numeric:tabular-nums; }
table.board td.pnl.pos{ color:var(--gain,#7ED0A0); }
table.board td.pnl.neg{ color:var(--loss,#D9776A); }
table.board .empty{ text-align:center; color:var(--ink-mute,#8A93B0); padding:64px 0;
  letter-spacing:1px; }

/* verdict chip: neutral outline capsule; gold only for the one smart row */
.vchip{ display:inline-block; padding:2px 10px; border-radius:100px;
  font-size:10px; letter-spacing:1.5px; text-transform:uppercase;
  border:1px solid var(--ink-mute,#8A93B0); color:var(--ink-mute,#8A93B0); }
.vchip.g{ border-color:var(--gold,#E8C36A); color:var(--gold,#E8C36A); }

/* the single smart-money verdict - the only gold-text row; it argues the thesis */
tr.is-smart td.wal a{ color:var(--gold,#E8C36A); }
tr.is-smart td.rk{ color:var(--gold-deep,#C9A24B); box-shadow:inset 2px 0 0 var(--gold,#E8C36A); }

/* --- footer cartouche ------------------------------------------------------ */
.cartouche{ display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  margin-top:16px; padding:26px 0 44px; border-top:1px solid var(--rule,#1C2130);
  font-family:var(--font-mono,"Commit Mono",ui-monospace,"JetBrains Mono",Menlo,monospace); }
.cart-feather{ color:var(--gold,#E8C36A); font-size:18px; line-height:1; }
.cart-line{ color:var(--ink-mute,#8A93B0); font-size:12px; letter-spacing:.4px; }
.cart-sig{ margin-left:auto; color:var(--ink-mute,#8A93B0); font-size:12px; letter-spacing:.8px; }

@media (max-width:680px){
  .mast{ gap:14px; }
  .mast-tools{ width:100%; margin-left:0; justify-content:space-between; }
  .mast-nav{ gap:18px; order:3; width:100%; overflow-x:auto; padding-bottom:2px; }
  .board-page .hero{ padding:52px 0 36px; }
  .cart-sig{ margin-left:0; width:100%; }
}
