/* ==========================================================
   BITCOINTRENCH — PROFESSIONAL HYBRID FOUNDATION
   Milestone 1: homepage shell only. Legacy data rooms remain intact.
   ========================================================== */
:root{
  --hy-dark:#11100e;
  --hy-dark-2:#181612;
  --hy-dark-3:#24201a;
  --hy-paper:#f7f3ec;
  --hy-paper-2:#eee8de;
  --hy-white:#fffdf8;
  --hy-ink:#171511;
  --hy-muted:#706a60;
  --hy-line:#d8d0c3;
  --hy-orange:#f7931a;
  --hy-orange-dark:#a65100;
  --hy-green:#247a4c;
  --hy-red:#b94736;
  --hy-max:1280px;
  --hy-pad:clamp(22px,4.2vw,64px);
  --hy-radius:18px;
  --hy-shadow:0 24px 70px rgba(38,29,17,.1);
  --hy-font-body:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --hy-font-heading:'Inter Tight','Inter',system-ui,sans-serif;
  --hy-font-numeric:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
}
html{height:auto!important;min-height:100%;overflow-x:hidden!important;overflow-y:auto!important;scroll-padding-top:84px}
/**
 * `hidden` must actually hide.
 *
 * The browser's own `[hidden]{display:none}` lives in the user-agent sheet,so
 * any author rule that sets `display` on the same element wins — which is how a
 * row set to `hidden` in JavaScript stayed on the page,taking up space,because
 * its class also said `display:flex`. Every component that needed it was
 * repeating a `.thing[hidden]{display:none}` rule of its own; one declaration
 * here retires all of them and stops the next component making the same mistake.
 */
[hidden]{display:none!important}
body{
  background:var(--hy-paper);color:var(--hy-ink);font-family:var(--hy-font-body);
  position:static!important;inset:auto!important;height:auto!important;min-height:100%!important;
  overflow-x:hidden!important;overflow-y:auto!important;
  line-height:1.55;-webkit-font-smoothing:antialiased;
}
body::before{display:none!important}
.hy-skip{
  position:fixed;z-index:1000;left:18px;top:12px;padding:11px 16px;border-radius:8px;
  background:var(--hy-white);color:var(--hy-ink);font-size:14px;font-weight:700;
  transform:translateY(-160%);transition:transform .16s ease;box-shadow:var(--hy-shadow);
}
.hy-skip:focus{transform:translateY(0)}
.hy-shell{width:min(var(--hy-max),calc(100% - (var(--hy-pad) * 2)));margin-inline:auto}
.hy-header{
  position:fixed;z-index:220;inset:0 0 auto;height:72px;padding:0 var(--hy-pad);
  display:flex;align-items:center;background:transparent;color:#fff;
  transition:background-color .18s ease,color .18s ease,box-shadow .18s ease;
  pointer-events:auto;
}
.hy-header.is-light{
  background:rgba(247,243,236,.98);color:var(--hy-ink);
  box-shadow:0 1px 0 rgba(23,21,17,.1);
}
.hy-header-inner{
  width:min(var(--hy-max),100%);margin-inline:auto;display:grid;grid-template-columns:auto 1fr auto;
  align-items:center;gap:34px;height:100%;
}
.hy-brand{
  display:inline-flex;align-items:center;gap:11px;color:inherit;font-size:16px;font-weight:800;
  letter-spacing:-.025em;line-height:1;white-space:nowrap;font-family:var(--hy-font-heading);
}
.hy-brand-mark{
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:var(--hy-orange);color:#18130c;font-size:19px;font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);
}
.hy-brand em{color:var(--hy-orange);font-style:normal}
.hy-nav{display:flex;align-items:center;justify-content:center;gap:clamp(18px,2.1vw,31px)}
.hy-nav a{
  color:inherit;font-size:14px;font-weight:600;opacity:.77;position:relative;padding:27px 0;
  transition:opacity .16s ease,color .16s ease;
}
.hy-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:19px;height:2px;background:var(--hy-orange);
  transform:scaleX(0);transform-origin:left;transition:transform .16s ease;
}
.hy-nav a:hover,.hy-nav a[aria-current="page"]{opacity:1}
.hy-nav a:hover::after,.hy-nav a[aria-current="page"]::after{transform:scaleX(1)}
.hy-header-actions{display:flex;align-items:center;gap:14px}
.hy-button{
  min-height:48px;padding:0 20px;border:1px solid transparent;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--hy-font-body);font-size:14px;font-weight:750;line-height:1;text-align:center;
  cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease,transform .16s ease;
}
.hy-button:hover{transform:translateY(-1px)}
.hy-button-primary{background:var(--hy-orange);color:#1b140b}
.hy-button-primary:hover{background:#ffa62d}
.hy-button-secondary{border-color:rgba(255,255,255,.36);color:#fff;background:rgba(17,16,14,.12)}
.hy-button-secondary:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.hy-header.is-light .hy-button-secondary{border-color:var(--hy-line);color:var(--hy-ink);background:transparent}
/**
 * The same button on a light page.
 *
 * The secondary style above is white text on a barely-there dark fill,which is
 * correct in the dark header and invisible everywhere else — on the cream paper
 * of a content page it rendered as an unstyled blue browser link. `bt-detail` is
 * on every sub-page's main element and not on the homepage,so this repairs the
 * content pages without touching the hero,where the dark treatment is right.
 */
.bt-detail .hy-button-secondary{
  border-color:var(--bt-card-line);color:var(--hy-ink);background:var(--bt-card-bg);
}
.bt-detail .hy-button-secondary:hover{
  border-color:var(--hy-orange);color:var(--hy-orange);background:var(--hy-paper-2);
}
.hy-menu-button{
  display:none;width:46px;height:46px;border:1px solid rgba(255,255,255,.35);border-radius:10px;
  background:transparent;color:inherit;cursor:pointer;
}
.hy-menu-button span,.hy-menu-button::before,.hy-menu-button::after{
  content:"";display:block;width:20px;height:2px;margin:5px auto;background:currentColor;transition:transform .16s ease,opacity .16s ease;
}
.hy-hero{
  min-height:clamp(560px,76svh,760px);position:relative;display:flex;align-items:center;
  overflow:hidden;background:var(--hy-dark);color:#fff;isolation:isolate;
}
.hy-hero-art{
  position:absolute;z-index:-2;inset:0;background-color:var(--hy-dark);
  /* Served as a real file rather than an inline data URI: a 224 KB image
     embedded in the stylesheet used to block first paint on every page. */
  background-image:url("/assets/img/hero-cross-section.webp");
  background-size:cover;background-position:center;
  animation:hy-hero-settle 1.15s cubic-bezier(.2,.75,.2,1) both;
}
.hy-hero::after{
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(9,9,8,.92) 0%,rgba(9,9,8,.72) 36%,rgba(9,9,8,.1) 67%,rgba(9,9,8,.08) 100%),
             linear-gradient(0deg,rgba(9,9,8,.36),transparent 42%);
}
@keyframes hy-hero-settle{from{opacity:.55;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
.hy-hero-inner{padding-top:96px;padding-bottom:84px}
.hy-hero-copy{max-width:690px}
.hy-eyebrow{
  margin-bottom:24px;color:#f6a642;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
}
.hy-hero h1{
  max-width:650px;margin:0 0 25px;font-size:clamp(46px,5.1vw,73px);line-height:1.01;
  letter-spacing:-.055em;font-family:var(--hy-font-heading);font-weight:650;text-transform:none;text-wrap:balance;
}
.hy-hero-lead{
  max-width:520px;margin:0;color:rgba(255,255,255,.76);font-size:clamp(17px,1.35vw,20px);line-height:1.65;text-wrap:pretty;
}
.hy-hero-actions{display:flex;align-items:center;gap:12px;margin-top:36px}
.hy-hero-note{
  position:absolute;left:var(--hy-pad);bottom:45px;display:flex;align-items:center;gap:12px;
  color:rgba(255,255,255,.58);font-size:12px;font-weight:600;letter-spacing:.04em;
}
.hy-hero-note::before{content:"";width:38px;height:1px;background:var(--hy-orange)}
.hy-live-section{position:relative;z-index:5;background:var(--hy-paper)}
.hy-live-bridge{
  position:relative;transform:translateY(-28px);margin-bottom:-28px;background:var(--hy-white);
  box-shadow:none;border:1px solid rgba(112,106,96,.2);border-radius:10px;
  display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;
}
.hy-live-bridge::before{content:"";position:absolute;z-index:2;left:24px;top:0;width:72px;height:2px;background:var(--hy-orange)}
.hy-metric{min-width:0;padding:19px 24px 17px;position:relative}
.hy-metric+.hy-metric::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:1px;background:var(--hy-line)}
.hy-metric-label{display:block;margin-bottom:7px;color:var(--hy-muted);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.hy-metric-value{display:block;color:var(--hy-ink);font-family:var(--hy-font-numeric);font-size:clamp(21px,2vw,29px);font-weight:600;letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hy-metric-meta{min-height:17px;margin-top:4px;color:#6f685f;font-size:11.5px;line-height:1.4;font-weight:520;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hy-metric-meta [id$="Chg"],.hy-metric-meta #ctaChg{font-weight:700}
.hy-main{position:relative;background:var(--hy-paper)}
.hy-section{padding:clamp(82px,9vw,132px) 0}
.hy-section-kicker{margin-bottom:16px;color:var(--hy-orange-dark);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.hy-section-heading{max-width:790px;margin:0;font-family:var(--hy-font-heading);font-size:clamp(38px,4.2vw,60px);line-height:1.08;letter-spacing:-.045em;font-weight:630;text-transform:none;text-wrap:balance}
.hy-section-intro{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);align-items:end;gap:60px;margin-bottom:56px}
.hy-section-intro p{margin:0 0 5px;color:var(--hy-muted);font-size:17px;line-height:1.7}
.hy-overview-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px}
.hy-feature{
  position:relative;overflow:hidden;min-height:320px;padding:34px;border-radius:var(--hy-radius);
  display:flex;flex-direction:column;justify-content:space-between;background:var(--hy-white);
  box-shadow:0 1px 0 rgba(24,21,17,.08);transition:transform .16s ease,box-shadow .16s ease;
}
.hy-feature:hover{transform:translateY(-3px);box-shadow:var(--hy-shadow)}
.hy-feature-market{grid-column:span 7;background:#191714;color:#fff;min-height:386px}
.hy-feature-network{grid-column:span 5;background:#e9e2d6;min-height:386px}
.hy-feature-mining{grid-column:span 5;min-height:300px}
.hy-feature-research{grid-column:span 7;min-height:300px;background:#ded5c7}
.hy-feature::after{
  content:"";position:absolute;right:-15%;bottom:-55%;width:280px;height:280px;border-radius:50%;
  border:1px solid currentColor;opacity:.06;box-shadow:0 0 0 42px currentColor,0 0 0 86px currentColor;
}
.hy-feature-top,.hy-feature-bottom{position:relative;z-index:1}
.hy-feature-index{color:var(--hy-orange);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.hy-feature h3{margin:14px 0 9px;font-family:var(--hy-font-heading);font-size:clamp(28px,3vw,42px);line-height:1.08;letter-spacing:-.04em;font-weight:640}
.hy-feature p{max-width:520px;margin:0;color:var(--hy-muted);font-size:15px;line-height:1.65}
.hy-feature-market p{color:rgba(255,255,255,.64)}
.hy-feature-stat{margin-bottom:24px}
.hy-feature-stat strong{display:block;font-family:var(--hy-font-numeric);font-size:clamp(34px,4vw,55px);line-height:1;letter-spacing:-.05em;font-weight:600;font-variant-numeric:tabular-nums}
.hy-feature-stat span{display:block;margin-top:9px;color:var(--hy-muted);font-size:12px;font-weight:650}
.hy-feature-market .hy-feature-stat span{color:rgba(255,255,255,.6)}
.hy-text-link{
  display:inline-flex;align-items:center;gap:10px;width:max-content;color:inherit;font-size:14px;font-weight:750;
}
.hy-text-link::after{content:"→";color:var(--hy-orange);font-size:19px;transition:transform .16s ease}
.hy-text-link:hover::after{transform:translateX(4px)}
.hy-editorial-rows{margin-top:22px;border-top:1px solid var(--hy-line)}
.hy-editorial-row{
  display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:center;gap:28px;
  padding:30px 4px;border-bottom:1px solid var(--hy-line);
}
.hy-editorial-label{color:var(--hy-muted);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.hy-editorial-row h3{margin:0 0 5px;font-family:var(--hy-font-heading);font-size:clamp(20px,2.2vw,28px);line-height:1.25;letter-spacing:-.025em}
.hy-editorial-row p{margin:0;color:var(--hy-muted);font-size:14px}
.hy-beyond{padding:clamp(90px,10vw,150px) 0;background:#e7dfd3}
.hy-beyond-inner{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:clamp(50px,8vw,130px);align-items:start}
.hy-beyond h2{margin:0;font-family:var(--hy-font-heading);font-size:clamp(48px,6vw,80px);line-height:.98;letter-spacing:-.06em;font-weight:620;text-transform:none}
.hy-beyond-copy{padding-top:8px}
.hy-beyond-copy p{margin:0 0 28px;color:#4f4a43;font-size:clamp(19px,2vw,25px);line-height:1.55;letter-spacing:-.015em}
.hy-beyond-points{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid #c9c0b3}
.hy-beyond-points span{padding:18px 0;border-bottom:1px solid #c9c0b3;color:#615b52;font-size:13px;font-weight:700}
.hy-footer{padding:42px var(--hy-pad);background:var(--hy-dark);color:#fff}
.hy-footer p{margin:0;color:rgba(255,255,255,.5);font-size:12px}
body :where(a,button,[tabindex],input,select):focus-visible{
  outline:3px solid var(--hy-orange-dark)!important;outline-offset:4px!important;
}
.hy-main:focus{outline:none!important}
body.hy-menu-open{overflow:hidden!important}
body .flash-up{color:var(--hy-green)!important}
body .flash-down{color:var(--hy-red)!important}
@media (max-width:1080px){
  .hy-header-inner{gap:24px}
  .hy-nav{gap:18px}
  .hy-header-actions .hy-button{padding-inline:16px}
  .hy-section-intro{grid-template-columns:1fr;gap:22px}
}
@media (max-width:900px){
  html{scroll-padding-top:68px}
  .hy-header,.hy-header.is-light{height:68px;padding:0 20px;background:#151310;color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.08)}
  .hy-header-inner{display:flex;justify-content:space-between;gap:12px}
  .hy-brand{font-size:15px}.hy-brand-mark{width:28px;height:28px;font-size:18px}
  .hy-menu-button{display:block;position:relative;z-index:3}
  body.hy-menu-open .hy-menu-button span{opacity:0}
  body.hy-menu-open .hy-menu-button::before{transform:translateY(7px) rotate(45deg)}
  body.hy-menu-open .hy-menu-button::after{transform:translateY(-7px) rotate(-45deg)}
  .hy-nav{
    position:fixed;z-index:2;inset:68px 0 auto;display:none;flex-direction:column;align-items:stretch;gap:0;
    padding:20px;background:#151310;color:#fff;box-shadow:0 22px 40px rgba(0,0,0,.28);
  }
  body.hy-menu-open .hy-nav{display:flex}
  .hy-nav a{padding:17px 4px;border-bottom:1px solid rgba(255,255,255,.1);font-size:18px;opacity:1}
  .hy-nav a::after{display:none}
  .hy-header-actions{display:none}
  body.hy-menu-open::after{content:"";position:fixed;z-index:210;inset:68px 0 0;background:rgba(0,0,0,.5)}
  .hy-hero{min-height:auto;padding-top:68px}
  .hy-hero-art{background-position:60% center}
  .hy-hero::after{background:linear-gradient(90deg,rgba(9,9,8,.94),rgba(9,9,8,.7) 62%,rgba(9,9,8,.28))}
  .hy-hero-inner{padding-top:84px;padding-bottom:116px}
  .hy-hero-copy{max-width:620px}
  .hy-hero h1{font-size:clamp(43px,9vw,68px)}
  .hy-hero-note{left:22px;bottom:30px}
  .hy-live-bridge{grid-template-columns:repeat(2,1fr)}
  .hy-metric:nth-child(3)::before{display:none}
  .hy-metric:nth-child(n+3){border-top:1px solid var(--hy-line)}
  .hy-feature-market,.hy-feature-network,.hy-feature-mining,.hy-feature-research{grid-column:span 12}
  .hy-feature,.hy-feature-market,.hy-feature-network{min-height:310px}
  .hy-editorial-row{grid-template-columns:120px minmax(0,1fr)}
  .hy-editorial-row .hy-text-link{grid-column:2}
  .hy-beyond-inner{grid-template-columns:1fr;gap:40px}
}
@media (max-width:620px){
  :root{--hy-pad:20px;--hy-radius:14px}
  .hy-shell{width:calc(100% - 40px)}
  .hy-hero-inner{padding-top:72px;padding-bottom:100px}
  .hy-eyebrow{font-size:10.5px;letter-spacing:.14em;margin-bottom:18px}
  .hy-hero h1{font-size:clamp(41px,12vw,57px);line-height:1.03;margin-bottom:19px}
  .hy-hero-lead{font-size:16px;line-height:1.58}
  .hy-hero-actions{align-items:stretch;flex-direction:column;margin-top:28px}
  .hy-hero-actions .hy-button{width:100%}
  .hy-live-section{padding:22px 0 0}
  .hy-live-bridge{transform:none;margin-bottom:0;grid-template-columns:repeat(2,minmax(0,1fr));box-shadow:none;border:1px solid var(--hy-line);border-radius:10px}
  .hy-metric{padding:18px 15px}
  .hy-metric:nth-child(odd)::before{display:none}
  .hy-metric:nth-child(3),.hy-metric:nth-child(4){border-top:1px solid var(--hy-line)}
  .hy-metric-value{font-size:21px}
  .hy-section{padding:76px 0}
  .hy-section-heading{font-size:39px}
  .hy-section-intro{margin-bottom:36px}
  .hy-section-intro p{font-size:15px}
  .hy-overview-grid{gap:14px}
  .hy-feature{padding:25px;min-height:285px}
  .hy-feature h3{font-size:30px}
  .hy-feature-stat strong{font-size:38px}
  .hy-editorial-rows{margin-top:12px}
  .hy-editorial-row{grid-template-columns:1fr;gap:8px;padding:24px 2px}
  .hy-editorial-row .hy-text-link{grid-column:1;margin-top:7px}
  .hy-beyond{padding:82px 0}
  .hy-beyond h2{font-size:52px}
  .hy-beyond-copy p{font-size:19px}
  .hy-beyond-points{grid-template-columns:1fr}
}
.detail-source.is-live::before{background:var(--hy-green)}
.market-price-line .change-pill.up{background:rgba(47,143,90,.18);color:#75dca5}
.market-price-line .change-pill.down{background:rgba(185,71,54,.18);color:#ef8d7f}
.market-price-source .badge{padding:0;border:0;background:none;color:#f6a642;font:700 11px/1 var(--hy-font-body);letter-spacing:0;text-transform:none}
.market-chart-head .badge{padding:0;border:0;background:none;color:#75dca5;font:700 11px/1.2 var(--hy-font-body);letter-spacing:0;text-transform:none}
.market-feature-chart>.price{display:block;margin-bottom:19px;color:#fff;font:570 24px/1 var(--hy-font-numeric);letter-spacing:-.035em}
.market-venue .badge{padding:0;border:0;background:none;color:var(--hy-green);font:700 10.5px/1.2 var(--hy-font-body);letter-spacing:0;text-transform:none}
.market-venue .price{display:block;margin-top:26px;color:var(--hy-ink);font:580 28px/1 var(--hy-font-numeric);letter-spacing:-.04em}
.market-module #exchange-list .row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:14px 0;border-bottom:1px solid var(--hy-line)}
.market-module #exchange-list .row:last-child{border-bottom:0}
.market-module #exchange-list .name{display:flex;align-items:center;gap:10px;color:var(--hy-ink);font-size:13px;font-weight:700}
.market-module #exchange-list .tick{width:6px;height:6px;border-radius:50%;background:var(--hy-orange)}
.market-module #exchange-list .price{color:var(--hy-ink);font:570 14px/1.2 var(--hy-font-numeric)}
.market-module #market-summary .k{color:#6f685f;font-size:12px}
.market-module #market-summary .v{color:var(--hy-ink);font:570 14px/1.2 var(--hy-font-numeric);text-align:right}

/* Mining,Research,News and Learn — professional hybrid detail surfaces */
.hy-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.news-page .badge{padding:0;border:0;background:none;color:var(--hy-orange-dark);font:750 10.5px/1.4 var(--hy-font-body);letter-spacing:0;text-transform:none}
.news-page .liveDot.is-retry{background:var(--hy-orange)}
.news-page .voice-card .role{margin:6px 0 10px;color:var(--hy-muted);font-size:11.5px;line-height:1.5}

/* Adoption & Custody — Corporate Treasury{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;border-bottom:1px solid var(--hy-line)}
.adoption-page table.wtable td.name{color:var(--hy-ink);font-weight:700}
.adoption-page table.wtable td.num{color:var(--hy-ink);font:570 12.5px/1.4 var(--hy-font-numeric);text-align:right}.adoption-page tr.open .chev{color:var(--hy-orange-dark)}
.adoption-page table.wtable .badge{padding:3px 7px;border:0;border-radius:999px;background:#eee5d9;color:#6f665d;font:700 9px/1.2 var(--hy-font-body);letter-spacing:0;text-transform:none}
.adoption-page .detail-inner .gain{color:var(--hy-green)!important}.adoption-page .detail-inner .loss{color:var(--hy-red)!important}
.adoption-page .detail-inner .caveat{margin-top:15px;padding-top:15px;border-top:1px solid rgba(43,39,34,.12);color:#6d655c;font-size:11.5px;line-height:1.65}
.adoption-page .trend{display:inline-block;padding:4px 7px;border:1px solid #c8beb0;border-radius:999px;color:#756d63;font:750 9px/1 var(--hy-font-body);letter-spacing:.07em}
.adoption-page .trend.accum{border-color:#8fbea4;color:#2f7f53}.adoption-page .trend.reduce{border-color:#d3a097;color:#a13f32}.adoption-page .trend.static{color:#6f685f}
.adoption-page .note{color:#746d64;font-family:var(--hy-font-body);font-size:12px;line-height:1.65;letter-spacing:0;text-align:left}
.adoption-page .wallet-tx .dir{font-family:var(--hy-font-numeric);font-weight:600}.adoption-page .wallet-tx .dir.in{color:var(--hy-green)}.adoption-page .wallet-tx .dir.out{color:var(--hy-red)}
.custody-module-head .badge{padding:0;border:0;background:none;color:var(--hy-orange-dark);font:750 10.5px/1.4 var(--hy-font-body);letter-spacing:0;text-transform:none}
.wallet-page .wallet-head .who .nm{color:var(--hy-ink);font:630 15px/1.35 var(--hy-font-heading);letter-spacing:-.015em}
.wallet-page .wallet-head .who .addr{margin-top:5px;color:#7b7369;font:500 10.5px/1.5 var(--hy-font-numeric);word-break:break-all}
.wallet-page .wallet-head .amt2 .btc{color:var(--hy-ink);font:570 13px/1.3 var(--hy-font-numeric)}
.wallet-page .wallet-head .amt2 .usd{margin-top:4px;color:#7b7369;font:500 10.5px/1.3 var(--hy-font-numeric)}
.wallet-page .wallet-detail .note{color:#70685f;font-family:var(--hy-font-body);font-size:11px;line-height:1.6}

/* Market Structure Tools — Liquidity{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;border-bottom:1px solid var(--hy-line)}
.liquidity-venue.is-primary{grid-column:1/-1}
.liquidity-venue.is-primary .liquidity-book-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.liquidity-venue.is-primary .liquidity-book-summary .kv{padding-left:19px;border-left:1px solid var(--hy-line)}
.liquidity-venue.is-primary .liquidity-book-summary .kv:first-child{padding-left:0;border-left:0}
.liquidity-book-summary .k{display:block;color:#746d64;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.liquidity-book-summary .v{display:block;margin-top:11px;color:var(--hy-ink);font:570 clamp(17px,2vw,24px)/1.15 var(--hy-font-numeric);letter-spacing:-.035em}
.trade-page .feed-item .side{font-size:11px;font-weight:800;letter-spacing:.05em}
.trade-page .feed-item .side.buy{color:var(--hy-green)}.trade-page .feed-item .side.sell{color:var(--hy-red)}
.trade-page .feed-item .t{color:#756e65;font:500 11px/1.35 var(--hy-font-numeric);text-align:right}

/* Protocol & History — sampled activity,supply{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;border-bottom:1px solid var(--hy-line)}
.protocol-lead>.detail-source:not(.is-live):not(.is-error)::before{background:var(--hy-orange)}
.onchain-page #onchain-feed>.note{padding:34px 0;color:#756e65;font:600 12px/1.55 var(--hy-font-body);letter-spacing:0;text-align:left}
.onchain-page #onchain-feed>.note{color:#5f5850!important}
.onchain-page .feed-item.onchain{display:grid;grid-template-columns:minmax(210px,.58fr) minmax(280px,1fr) minmax(190px,.46fr);align-items:center;gap:24px;padding:20px 0;border-bottom:1px solid var(--hy-line);font-family:var(--hy-font-body)}
.onchain-page .feed-item.onchain:last-child{border-bottom:0}
.onchain-page .feed-item.onchain .addr{display:block;overflow-wrap:anywhere;color:#534d46;font:520 11.5px/1.5 var(--hy-font-numeric)}
.onchain-meta .t{display:block;color:#756e65;font:500 10.5px/1.5 var(--hy-font-numeric)}
.halving-page .countdown{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:1px!important;margin:36px 0 29px!important;background:rgba(255,255,255,.1)!important}
.halving-page .cd-box .num{color:#fff!important;font:570 clamp(27px,3.5vw,46px)/1 var(--hy-font-numeric)!important;letter-spacing:-.045em!important;text-shadow:none!important}
.genesis-page #satoshi-list .k{color:#625c54;font-size:12px;line-height:1.55}
.genesis-page #satoshi-list .v{color:var(--hy-ink);font:560 12px/1.5 var(--hy-font-numeric);text-align:right}

@media(max-width:900px){
  .onchain-page .feed-item.onchain{grid-template-columns:1fr;gap:16px;padding:21px 0}
  .liquidity-venue.is-primary .liquidity-book-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .liquidity-venue.is-primary .liquidity-book-summary .kv:nth-child(odd){padding-left:0;border-left:0}
}
@media(max-width:620px){.liquidity-venue.is-primary{grid-column:auto}
  .liquidity-venue.is-primary .liquidity-book-summary{grid-template-columns:1fr}.liquidity-venue.is-primary .liquidity-book-summary .kv,.liquidity-venue.is-primary .liquidity-book-summary .kv:nth-child(odd){padding:18px 0;border-left:0}.trade-page .feed-item .t{font-size:9.5px}.onchain-page .feed-item.onchain{grid-template-columns:1fr;gap:16px;padding:21px 0}
  .halving-page .countdown{grid-template-columns:repeat(2,minmax(0,1fr))!important}.genesis-page #satoshi-list .v{text-align:left}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .hy-hero-art{transform:none!important}
}
body.motion-off *,body.motion-off *::before,body.motion-off *::after{
  animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;
}
body.motion-off .hy-hero-art{transform:none!important}

/* ==========================================================================
   BITCOINTRENCH — COMPONENT SYSTEM
   Built on the existing BitcoinTrench design tokens (--hy-*). Every new surface
   on the platform is assembled from the primitives below, so a page added later
   inherits the same typography, spacing, table behaviour and data-state
   language without any new one-off styling.
   ========================================================================== */

:root{
  --bt-gap:clamp(18px,2.4vw,30px);
  --bt-card-bg:var(--hy-white);
  --bt-card-line:var(--hy-line);
  --bt-card-radius:14px;
  --bt-shadow-sm:0 1px 2px rgba(38,29,17,.05),0 8px 26px rgba(38,29,17,.05);
  --bt-mono:var(--hy-font-numeric);
  --bt-up:var(--hy-green);
  --bt-down:var(--hy-red);
  --bt-flat:var(--hy-muted);
}

.hy-sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* --------------------------------------------------------------------------
   Detail page shell
   -------------------------------------------------------------------------- */

.bt-detail{padding-top:72px;background:var(--hy-paper)}

.bt-page-top{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;padding:24px 0 0;
}
.bt-back{
  display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 16px 0 13px;
  border:1px solid var(--bt-card-line);border-radius:9px;background:var(--bt-card-bg);
  color:var(--hy-ink);font:650 13px/1 var(--hy-font-body);white-space:nowrap;
  transition:border-color .16s ease,background-color .16s ease,transform .16s ease;
}
.bt-back:hover{border-color:var(--hy-orange);background:#fff8ed}
.bt-back:active{transform:translateY(1px)}
body.motion-off .bt-back{transition:none}
body.motion-off .bt-back:active{transform:none}
.bt-back-arrow{font-size:16px;line-height:1;color:var(--hy-orange-dark)}

.bt-breadcrumb{padding:0}
.bt-breadcrumb ol{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;
  color:var(--hy-muted);font-size:12.5px;font-weight:600}
.bt-breadcrumb li+li::before{content:"/";margin-right:8px;color:var(--hy-line)}
.bt-breadcrumb a{color:var(--hy-muted)}
.bt-breadcrumb a:hover{color:var(--hy-ink)}
.bt-breadcrumb [aria-current]{color:var(--hy-ink)}

.bt-detail-head{max-width:760px;padding:26px 0 34px}
.bt-detail-head h1{
  margin:12px 0 0;color:var(--hy-ink);
  font:700 clamp(34px,4.6vw,58px)/1.05 var(--hy-font-heading);letter-spacing:-.04em;
}
.bt-detail-standfirst{margin:18px 0 0;max-width:660px;color:var(--hy-muted);font-size:clamp(15px,1.3vw,17px);line-height:1.65}

.bt-section{padding:0 0 clamp(40px,5vw,68px)}
.bt-section+.bt-section{border-top:1px solid var(--hy-line);padding-top:clamp(34px,4vw,54px)}
.bt-section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:18px;margin-bottom:26px}
.bt-section-head h2{margin:0;color:var(--hy-ink);font:640 clamp(21px,2.3vw,30px)/1.15 var(--hy-font-heading);letter-spacing:-.03em}
.bt-section-head p{margin:8px 0 0;max-width:620px;color:var(--hy-muted);font-size:14px;line-height:1.65}
.bt-eyebrow{margin:0;color:var(--hy-orange-dark);font:750 10.5px/1.3 var(--hy-font-body);letter-spacing:.12em;text-transform:uppercase}

/* --------------------------------------------------------------------------
   Metric primitives
   -------------------------------------------------------------------------- */

.bt-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--bt-gap)}
.bt-metric{
  padding:22px 24px;border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);
  background:var(--bt-card-bg);box-shadow:var(--bt-shadow-sm);
}
.bt-metric-label{display:block;color:var(--hy-muted);font:700 10.5px/1.3 var(--hy-font-body);letter-spacing:.1em;text-transform:uppercase}
.bt-metric-value{
  display:block;margin-top:14px;color:var(--hy-ink);
  font:560 clamp(23px,2.5vw,31px)/1.05 var(--bt-mono);letter-spacing:-.03em;overflow-wrap:anywhere;
}
.bt-metric-sub{display:block;margin-top:10px;color:var(--hy-muted);font-size:12.5px;line-height:1.55}
.bt-metric.is-headline{grid-column:span 2;background:var(--hy-dark);border-color:var(--hy-dark-3);color:#fff}
.bt-metric.is-headline .bt-metric-label{color:rgba(255,255,255,.62)}
.bt-metric.is-headline .bt-metric-value{color:#fff;font-size:clamp(30px,3.6vw,46px)}
.bt-metric.is-headline .bt-metric-sub{color:rgba(255,255,255,.68)}

[data-dir="up"]{color:var(--bt-up)}
[data-dir="down"]{color:var(--bt-down)}
[data-dir="flat"],[data-dir="unknown"]{color:var(--bt-flat)}

.bt-panel{
  padding:clamp(22px,2.6vw,32px);border:1px solid var(--bt-card-line);
  border-radius:var(--bt-card-radius);background:var(--bt-card-bg);box-shadow:var(--bt-shadow-sm);
}
.bt-panel+.bt-panel{margin-top:var(--bt-gap)}
/* A panel heading is styled by where it sits, not by its level. Briefing panels
   that open a page sit alongside the page's sections and so must be h2 for the
   document outline; panels nested under a section head are h3. Both look the
   same, because in a panel the heading is the same thing either way. */
.bt-panel :is(h2,h3){margin:0 0 6px;color:var(--hy-ink);font:640 17px/1.25 var(--hy-font-heading);letter-spacing:-.02em}
.bt-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--bt-gap)}
.bt-grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--bt-gap)}

/* --------------------------------------------------------------------------
   Clickable cards

   The whole card activates its link, not just the small text link inside it.
   The overlay belongs to the real anchor, so there is still exactly one link in
   the accessibility tree and open-in-new-tab keeps working.
   -------------------------------------------------------------------------- */

[data-card-link="on"]{
  cursor:pointer;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
[data-card-link="on"]:hover{
  border-color:var(--hy-orange);
  box-shadow:var(--bt-shadow-sm);
}
[data-card-link="on"]:hover .hy-text-link,
[data-card-link="on"]:hover .hy-text-link::after{color:var(--hy-orange-dark)}
/* The card is the click target, so it carries the focus ring for its link. */
[data-card-link="on"]:focus-within{outline:3px solid var(--hy-orange-dark);outline-offset:3px}
body.motion-off [data-card-link="on"]{transition:none}

/* Text inside a clickable card must stay selectable and readable. */
[data-card-link="on"] p,
[data-card-link="on"] dd,
[data-card-link="on"] code{cursor:text}

.bt-note{margin:14px 0 0;color:var(--hy-muted);font-size:12.5px;line-height:1.6}
.bt-sub{display:block;color:var(--hy-muted);font-size:11.5px}
.bt-panel p+p{margin-top:14px}
.bt-panel>p:not(.bt-note){color:var(--hy-ink);font-size:14.5px;line-height:1.75}

.bt-briefing{display:grid;gap:0;margin:0;padding:0;list-style:none}
.bt-briefing li{
  position:relative;padding:13px 0 13px 26px;border-bottom:1px solid var(--bt-card-line);
  color:var(--hy-ink);font-size:14.5px;line-height:1.6;
}
.bt-briefing li:last-child{border-bottom:0}
.bt-briefing li::before{
  content:"";position:absolute;left:2px;top:20px;width:7px;height:7px;border-radius:50%;
  background:var(--hy-orange);
}

.bt-code{
  margin:0;padding:16px;border-radius:10px;overflow-x:auto;
  background:var(--hy-dark);color:#e8e2d6;
  font:500 12px/1.7 var(--bt-mono);
}
.bt-code code{color:inherit;font:inherit}

kbd{
  display:inline-block;padding:2px 7px;border:1px solid var(--bt-card-line);border-radius:5px;
  background:var(--hy-paper-2);color:var(--hy-ink);font:600 11px/1.5 var(--bt-mono);
}
code{font-family:var(--bt-mono);font-size:.92em}

/* Source and freshness badges --------------------------------------------- */

.bt-source,.detail-source{
  display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;
  border:1px solid var(--bt-card-line);background:var(--hy-paper-2);
  color:var(--hy-muted);font:600 11px/1 var(--hy-font-body);white-space:nowrap;
}
.bt-source::before,.detail-source::before{
  content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;
}
.bt-source[data-state="live"]{color:var(--hy-green);border-color:rgba(36,122,76,.3);background:rgba(36,122,76,.07)}
.bt-source[data-state="cached"],.bt-source[data-state="delayed"]{color:#8a6a1f;border-color:rgba(176,131,52,.32);background:rgba(176,131,52,.08)}
.bt-source[data-state="stale"]{color:var(--hy-orange-dark);border-color:rgba(166,81,0,.3);background:rgba(166,81,0,.07)}
.bt-source[data-state="error"]{color:var(--hy-red);border-color:rgba(185,71,54,.3);background:rgba(185,71,54,.07)}
.bt-source[data-state="derived"]{color:#4b4336;border-color:var(--bt-card-line)}

/* Data-state tags ---------------------------------------------------------- */

.bt-tag{
  display:inline-block;padding:3px 9px;border-radius:5px;
  font:700 10px/1.5 var(--hy-font-body);letter-spacing:.06em;text-transform:uppercase;
  background:var(--hy-paper-2);color:var(--hy-muted);border:1px solid var(--bt-card-line);
}
.bt-tag[data-tone="fact"],.bt-tag[data-tone="disclosed"],.bt-tag[data-tone="live"]{color:var(--hy-green);border-color:rgba(36,122,76,.3);background:rgba(36,122,76,.08)}
.bt-tag[data-tone="estimate"],.bt-tag[data-tone="forensic-estimate"],.bt-tag[data-tone="derived"]{color:#8a6a1f;border-color:rgba(176,131,52,.32);background:rgba(176,131,52,.09)}
.bt-tag[data-tone="disputed"]{color:var(--hy-red);border-color:rgba(185,71,54,.3);background:rgba(185,71,54,.07)}
.bt-tag[data-tone="seizure-record"],.bt-tag[data-tone="government"]{color:#4a5a7a;border-color:rgba(74,90,122,.3);background:rgba(74,90,122,.08)}
.bt-tag[data-tone="historic"]{color:var(--hy-orange-dark);border-color:rgba(166,81,0,.28);background:rgba(166,81,0,.07)}

.bt-chip{
  display:inline-block;margin:0 5px 5px 0;padding:3px 9px;border-radius:999px;
  background:var(--hy-paper-2);color:var(--hy-muted);font-size:11.5px;
}

/* --------------------------------------------------------------------------
   States and skeletons
   -------------------------------------------------------------------------- */

.bt-state{margin:0;padding:18px 20px;border-radius:10px;font-size:13.5px;line-height:1.6}
.bt-state-error{background:rgba(185,71,54,.07);border:1px solid rgba(185,71,54,.24);color:#8c3628}
.bt-state-empty{background:var(--hy-paper-2);border:1px solid var(--bt-card-line);color:var(--hy-muted)}
.bt-state-loading{background:var(--hy-paper-2);border:1px solid var(--bt-card-line);color:var(--hy-muted)}

.bt-skeleton-row{
  height:15px;margin:11px 0;border-radius:5px;
  background:linear-gradient(90deg,var(--hy-paper-2) 25%,#e4dcd0 37%,var(--hy-paper-2) 63%);
  background-size:400% 100%;animation:bt-shimmer 1.3s ease infinite;
}
@keyframes bt-shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}
body.motion-off .bt-skeleton-row{animation:none}

.bt-progress{height:8px;border-radius:999px;background:var(--hy-paper-2);overflow:hidden}
.bt-progress>span{display:block;height:100%;border-radius:999px;background:var(--hy-orange);transition:width .5s ease}
body.motion-off .bt-progress>span{transition:none}

/* --------------------------------------------------------------------------
   Tables
   -------------------------------------------------------------------------- */

.bt-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);background:var(--bt-card-bg)}
.bt-table{width:100%;border-collapse:collapse;font-size:13.5px}
.bt-table caption{padding:14px 18px;text-align:left;color:var(--hy-muted);font-size:12.5px}
.bt-table th,.bt-table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--bt-card-line);vertical-align:top}
.bt-table thead th{
  position:sticky;top:0;z-index:1;background:var(--hy-paper-2);
  color:var(--hy-muted);font:700 10.5px/1.4 var(--hy-font-body);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
}
.bt-table tbody tr:last-child td{border-bottom:0}
.bt-table tbody tr:hover{background:rgba(247,147,26,.045)}
.bt-table .bt-num{font-family:var(--bt-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.bt-table-compact th,.bt-table-compact td{padding:9px 13px;font-size:12.5px}
.bt-table th[data-sort]{cursor:pointer;user-select:none}
.bt-table th[data-sort]::after{content:"↕";margin-left:6px;opacity:.4}
.bt-table th[aria-sort="ascending"]::after{content:"↑";opacity:1}
.bt-table th[aria-sort="descending"]::after{content:"↓";opacity:1}
/**
 * A cell that is empty on purpose.
 *
 * "No such market", "not tracked" and "unavailable" are three different facts
 * about an exchange, so they are written out in words rather than collapsed into
 * a dash. Set in lowercase italics so the eye reads them as an absence rather
 * than as a value, and never as an error — most of them are not.
 */
.bt-absent{color:var(--hy-muted);font-style:italic;font-size:12px;white-space:nowrap}
/** Marks a figure BitcoinTrench computed from two the venue published. */
.bt-derived-mark{color:var(--hy-orange);cursor:help;font-weight:700}
.bt-table tr.is-projected td{color:var(--hy-muted)}
.bt-table tr.is-current{background:rgba(247,147,26,.06)}

.bt-link-button{
  padding:0;border:0;background:none;color:var(--hy-orange-dark);
  font:inherit;font-family:var(--bt-mono);cursor:pointer;text-decoration:underline;text-underline-offset:3px;
}
.bt-link-button:hover{color:var(--hy-ink)}

.bt-hash{font-family:var(--bt-mono);font-size:11.5px;overflow-wrap:anywhere}
.bt-address-line{
  display:block;margin:10px 0;padding:9px 12px;border-radius:8px;background:var(--hy-paper-2);
  font-family:var(--bt-mono);font-size:11.5px;overflow-wrap:anywhere;color:var(--hy-ink);
}

.bt-detail-list{display:grid;gap:0;margin:0}
.bt-detail-list>div{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:18px;padding:12px 0;border-bottom:1px solid var(--bt-card-line)}
.bt-detail-list>div:last-child{border-bottom:0}
.bt-detail-list dt{color:var(--hy-muted);font:600 12.5px/1.5 var(--hy-font-body)}
.bt-detail-list dd{margin:0;color:var(--hy-ink);font-size:13.5px;line-height:1.6;overflow-wrap:anywhere}

.bt-expandable{cursor:pointer}
.bt-expandable:focus-visible{outline:3px solid var(--hy-orange-dark);outline-offset:-3px}
.bt-chevron{width:32px;text-align:center;color:var(--hy-muted);font-family:var(--bt-mono)}
.bt-expansion td{background:var(--hy-paper-2)}

/* --------------------------------------------------------------------------
   Charts
   -------------------------------------------------------------------------- */

.bt-chart{position:relative}
.bt-chart-canvas{position:relative;width:100%}
.bt-chart-canvas canvas{display:block;width:100%;touch-action:pan-y}
.bt-chart-tip{
  position:absolute;top:8px;z-index:2;pointer-events:none;
  padding:7px 11px;border-radius:8px;background:var(--hy-dark);color:#fff;
  font:600 12px/1.4 var(--bt-mono);box-shadow:0 8px 22px rgba(0,0,0,.22);white-space:nowrap;
}
.bt-chart-tip strong{display:block;font-size:13.5px}
.bt-chart-tip span{color:rgba(255,255,255,.62);font-size:11px}
.bt-chart-data{margin-top:14px}
.bt-chart-data summary{color:var(--hy-muted);font-size:12.5px;cursor:pointer}
.bt-chart-data summary:hover{color:var(--hy-ink)}
.bt-chart-table-wrap{max-height:340px;overflow:auto;margin-top:12px;border:1px solid var(--bt-card-line);border-radius:10px}

.bt-share-list{display:grid;gap:11px;margin:0;padding:0;list-style:none}
.bt-share-row{display:grid;grid-template-columns:minmax(96px,170px) 1fr minmax(70px,auto);align-items:center;gap:14px}
.bt-share-name{color:var(--hy-ink);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bt-share-track{height:12px;border-radius:999px;background:var(--hy-paper-2);overflow:hidden}
.bt-share-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--hy-orange),#c26a00)}
.bt-share-value{color:var(--hy-muted);font:600 12px/1 var(--bt-mono);text-align:right}

.bt-toggle-group{display:flex;flex-wrap:wrap;gap:7px}
/**
 * Unpressed controls read in ink, not in grey.
 *
 * These rested at the muted colour, which is right for a caption and wrong for
 * something you are meant to press — on the cream paper it made a row of live
 * controls look like a row of disabled ones. The selected state is still
 * unmistakable because it inverts to a dark fill; it never needed the others to
 * be faded to stand out.
 */
.bt-toggle-group button,.bt-tf{
  min-height:36px;padding:0 13px;border:1px solid var(--bt-card-line);border-radius:8px;
  background:var(--bt-card-bg);color:var(--hy-ink);font:600 12px/1 var(--hy-font-body);cursor:pointer;
  transition:border-color .15s ease,color .15s ease,background-color .15s ease;
}
.bt-toggle-group button:hover,.bt-tf:hover{border-color:var(--hy-orange);color:var(--hy-orange)}
.bt-toggle-group button[aria-pressed="true"],.bt-tf[aria-pressed="true"]{
  background:var(--hy-dark);border-color:var(--hy-dark);color:#fff;
}

.bt-chart-controls{display:flex;flex-wrap:wrap;gap:18px}
.bt-control-set{display:flex;flex-direction:column;gap:6px}
.bt-control-label{color:var(--hy-muted);font:700 9.5px/1.3 var(--hy-font-body);letter-spacing:.1em;text-transform:uppercase}
.bt-control-set.is-primary .bt-toggle-group button{min-height:40px;padding:0 16px;font-size:13px}
.bt-advanced-controls{margin-top:14px}
.bt-advanced-controls summary{color:var(--hy-muted);font:600 12.5px/1.5 var(--hy-font-body);cursor:pointer}
.bt-advanced-controls summary:hover{color:var(--hy-ink)}
.bt-advanced-controls summary span{color:var(--hy-ink);font-family:var(--bt-mono)}
.bt-advanced-controls .bt-toggle-group{margin-top:10px}
.bt-draw-action[aria-pressed="true"]{background:var(--hy-dark);border-color:var(--hy-dark);color:#fff}
.bt-chart-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--bt-card-line);
}
.bt-indicator-toggles button{display:inline-flex;align-items:center;gap:7px}
.bt-ind-swatch{width:9px;height:9px;border-radius:2px;flex:none}
.bt-chart-readout{display:flex;flex-wrap:wrap;gap:14px;color:var(--hy-muted);font:500 12px/1 var(--bt-mono)}
.bt-chart-readout b{color:var(--hy-ink);font-weight:600}
.bt-chart-readout [data-dir="up"] b{color:var(--bt-up)}
.bt-chart-readout [data-dir="down"] b{color:var(--bt-down)}
#rsiChart{margin-top:10px}
.bt-draw-toolbar{margin-top:-4px}

/* Vertical tool rail beside the chart, as charting apps present it. */
.bt-chart-stage{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}
.bt-chart-area{min-width:0}
/**
 * The rail never grows taller than the chart it belongs to. With seventeen
 * controls it would otherwise run well past the bottom of the plot and look
 * detached; instead it scrolls inside itself and fades at whichever end has
 * more to reach.
 */
.bt-tool-rail{
  position:relative;
  /* border-box so the max-height matched to the chart includes the rail's own
     padding and border, rather than overshooting it by fourteen pixels. */
  box-sizing:border-box;
  display:flex;flex-direction:column;gap:4px;padding:6px;
  border:1px solid var(--bt-card-line);border-radius:12px;background:var(--hy-paper-2);
  max-height:var(--bt-rail-max,400px);
  overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;
}
.bt-tool-rail::-webkit-scrollbar{display:none}
.bt-rail-wrap{position:relative;align-self:start;position:sticky;top:88px}
.bt-rail-more{
  position:absolute;left:6px;right:6px;height:22px;display:grid;place-items:center;
  border:0;border-radius:7px;color:var(--hy-orange-dark);cursor:pointer;
  background:linear-gradient(to bottom,rgba(238,232,222,0),var(--hy-paper-2) 62%);
}
.bt-rail-more[hidden]{display:none}
.bt-rail-more[data-dir="up"]{top:0;background:linear-gradient(to top,rgba(238,232,222,0),var(--hy-paper-2) 62%)}
.bt-rail-more[data-dir="down"]{bottom:0}
.bt-rail-more svg{width:15px;height:15px}
/* `bt-rail-btn`, not `bt-tool`: the Tools page already owns `.bt-tool` for its
   calculator cards, and that rule was inflating these buttons to 42px. */
.bt-rail-btn{
  width:32px;height:32px;padding:0;display:grid;place-items:center;
  border:1px solid transparent;border-radius:7px;background:transparent;
  color:#5c564d;cursor:pointer;transition:background-color .14s ease,color .14s ease;
}
.bt-rail-btn:hover{background:var(--hy-white);color:var(--hy-ink)}
.bt-rail-btn[aria-pressed="true"]{background:rgba(194,106,0,.14);color:var(--hy-orange-dark)}
.bt-rail-btn.is-danger:hover{color:var(--hy-red)}
.bt-tool-icon{display:block;width:18px;height:18px}
.bt-tool-icon svg{width:100%;height:100%;display:block}
.bt-tool-divider{display:block;height:1px;margin:5px 4px;background:var(--bt-card-line)}
body.motion-off .bt-rail-btn{transition:none}

/* --------------------------------------------------------------------------
   Drawing chrome — properties bar and context menu
   -------------------------------------------------------------------------- */

.bt-draw-bar-row{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:12px;margin-bottom:14px;min-height:40px;
}
.bt-draw-bar-row .bt-draw-hint{margin:0;flex:1 1 260px}
.bt-props-slot{flex:0 0 auto}

.bt-draw-props{
  position:absolute;z-index:6;display:flex;align-items:center;gap:6px;
  padding:5px 7px;border:1px solid var(--bt-card-line);border-radius:9px;
  background:var(--hy-white);box-shadow:0 6px 22px rgba(38,29,17,.16);
}
/* Docked in the row beside the hint: no overlay, no shadow, sits in the flow. */
.bt-draw-props.is-docked{
  position:static;box-shadow:none;background:var(--hy-paper-2);
  flex-wrap:wrap;
}
.bt-draw-props[hidden]{display:none}
.bt-prop-group{display:flex;align-items:center;gap:3px}
.bt-prop-divider{width:1px;height:20px;background:var(--bt-card-line)}
.bt-prop{
  width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:6px;
  background:transparent;color:#5c564d;cursor:pointer;
}
.bt-prop:hover{background:var(--hy-paper-2);color:var(--hy-ink)}
.bt-prop[aria-pressed="true"]{background:rgba(194,106,0,.16);color:var(--hy-orange-dark)}
.bt-prop svg{width:17px;height:17px}
.bt-swatch{
  width:20px;height:20px;border:1px solid rgba(23,21,17,.18);border-radius:50%;
  background:var(--swatch);cursor:pointer;padding:0;
}
.bt-swatch[aria-pressed="true"]{box-shadow:0 0 0 2px var(--hy-white),0 0 0 3.5px var(--swatch)}
.bt-width-preview{display:block;width:17px;height:var(--w);border-radius:2px;background:currentColor}
.bt-style-preview{display:block;width:17px;height:0;border-top:2px solid currentColor}
.bt-style-preview[data-style-id="dashed"]{border-top-style:dashed}
.bt-style-preview[data-style-id="dotted"]{border-top-style:dotted}

.bt-draw-menu{
  position:absolute;z-index:7;min-width:224px;padding:6px;
  border:1px solid var(--bt-card-line);border-radius:11px;background:var(--hy-white);
  box-shadow:0 14px 40px rgba(38,29,17,.2);
}
.bt-draw-menu[hidden]{display:none}
.bt-menu-item{
  width:100%;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;
  padding:8px 9px;border:0;border-radius:7px;background:transparent;
  color:var(--hy-ink);font:500 13px/1.3 var(--hy-font-body);text-align:left;cursor:pointer;
}
.bt-menu-item:hover,.bt-menu-item:focus-visible{background:var(--hy-paper-2)}
.bt-menu-item.is-danger{color:var(--hy-red)}
.bt-menu-item.is-danger:hover{background:rgba(185,71,54,.08)}
.bt-menu-icon{display:grid;place-items:center;color:#5c564d}
.bt-menu-item.is-danger .bt-menu-icon{color:inherit}
.bt-menu-icon svg{width:16px;height:16px}
.bt-menu-key{color:var(--hy-muted);font:500 11px/1 var(--bt-mono)}
.bt-menu-sep{display:block;height:1px;margin:5px 8px;background:var(--bt-card-line)}

.bt-draw-text-input{
  position:absolute;z-index:6;min-width:150px;padding:5px 9px;
  border:1px solid var(--hy-orange);border-radius:7px;background:var(--hy-white);
  color:var(--hy-ink);font:600 13px/1.3 var(--hy-font-body);
}

@media (max-width:720px){
  /* On a phone the rail becomes a horizontal strip above the chart. */
  .bt-chart-stage{grid-template-columns:1fr}
  .bt-rail-wrap{position:static}
  .bt-tool-rail{flex-direction:row;flex-wrap:wrap;max-height:none;overflow:visible}
  .bt-rail-more{display:none}
}
.bt-draw-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.bt-draw-action{
  min-height:34px;padding:0 12px;border:1px solid var(--bt-card-line);border-radius:8px;
  background:var(--bt-card-bg);color:var(--hy-ink);font:600 12px/1 var(--hy-font-body);cursor:pointer;
}
.bt-draw-action:hover:not(:disabled){border-color:var(--hy-orange)}
.bt-draw-action:disabled{opacity:.4;cursor:default}
.bt-draw-count{color:var(--hy-muted);font:500 11.5px/1 var(--bt-mono)}
.bt-draw-hint{margin-top:0;margin-bottom:14px}
.bt-history-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.bt-attribution-inline{padding-top:10px;border-top:1px solid var(--bt-card-line);font-size:11.5px}
.bt-attribution-inline a{color:var(--hy-orange-dark);text-decoration:underline;text-underline-offset:2px}
/* The drawing surface sits above the chart and only takes the pointer when a
   tool is armed, so pan and zoom keep working the rest of the time. */
.bt-draw-layer{position:absolute;inset:0;z-index:3;pointer-events:none;touch-action:none}
.bt-indicator-doc{margin-top:var(--bt-gap)}
.bt-indicator-doc summary{color:var(--hy-ink);font:640 14px/1.4 var(--hy-font-heading);cursor:pointer}
.bt-ind-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px}
.bt-ind-note{padding:14px;border:1px solid var(--bt-card-line);border-radius:10px;background:var(--hy-paper-2)}
.bt-ind-note strong{display:block;color:var(--hy-ink);font:640 13px/1.3 var(--hy-font-heading)}
.bt-ind-note span{display:block;margin-top:6px;color:var(--hy-muted);font-size:12px;line-height:1.55}

/* --------------------------------------------------------------------------
   Live order books
   -------------------------------------------------------------------------- */

.bt-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--bt-gap);border-bottom:1px solid var(--bt-card-line);padding-bottom:12px}
.bt-tab{
  min-height:38px;padding:0 16px;border:1px solid var(--bt-card-line);border-radius:9px;
  background:var(--bt-card-bg);color:var(--hy-ink);font:640 13px/1 var(--hy-font-heading);cursor:pointer;
}
.bt-tab:hover{color:var(--hy-orange);border-color:var(--hy-orange)}
.bt-tab[aria-selected="true"]{background:var(--hy-dark);border-color:var(--hy-dark);color:#fff}

/**
 * A venue card that opens its own book.
 *
 * The whole card is the button, not a control inside it — a card that looks
 * pressable and only responds on one word of itself is a card that feels broken.
 */
.bt-venue-card{
  display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;
  transition:border-color .15s,transform .15s;
}
.bt-venue-card:hover{border-color:var(--hy-orange);transform:translateY(-2px)}
.bt-venue-card:focus-visible{outline:2px solid var(--hy-orange);outline-offset:2px}
.bt-venue-cta{display:block;margin-top:4px;color:var(--hy-orange);font:640 12px/1 var(--hy-font-body)}
.bt-venue-card:hover .bt-venue-cta{text-decoration:underline}

.bt-crowd-label{margin:0 0 7px;color:var(--hy-muted);font-size:12px}

/* --------------------------------------------------------------------------
   Play — the five stages
   -------------------------------------------------------------------------- */

.bt-stage-grid{align-items:stretch}
.bt-stage-card{
  display:flex;flex-direction:column;gap:8px;padding:20px;text-align:left;font:inherit;color:inherit;
  border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);background:var(--bt-card-bg);
  cursor:pointer;transition:border-color .15s,transform .15s;
}
.bt-stage-card:hover{border-color:var(--hy-orange);transform:translateY(-2px)}
.bt-stage-card:focus-visible{outline:2px solid var(--hy-orange);outline-offset:2px}
/**
 * A locked stage.
 *
 * Dimmed rather than hidden: seeing what is ahead is part of the reason to
 * finish what you are on, and a card that vanishes teaches nothing about why the
 * order matters.
 */
.bt-stage-card.is-locked{cursor:default;opacity:.55}
.bt-stage-card.is-locked:hover{border-color:var(--bt-card-line);transform:none}
.bt-stage-card.is-locked .bt-stage-n{background:var(--hy-paper-2);color:var(--hy-muted);font-size:14px}
.bt-stage-card.is-done{border-color:rgba(36,122,76,.42)}
.bt-stage-n{
  display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  background:var(--hy-dark);color:#fff;font:700 13px/1 var(--bt-mono);
}
.bt-stage-card.is-done .bt-stage-n{background:var(--bt-up)}
.bt-stage-title{color:var(--hy-ink);font:640 17px/1.25 var(--hy-font-heading)}
.bt-stage-teaser{color:var(--hy-muted);font-size:13px;line-height:1.55}
.bt-stage-teaches{color:var(--hy-orange-dark);font:600 11.5px/1.4 var(--hy-font-body)}
.bt-stage-card.is-retry{border-color:rgba(185,71,54,.4)}
.bt-stage-card.is-retry .bt-stage-n{background:var(--bt-down)}
.bt-stage-done{color:var(--bt-up);font:600 11.5px/1.4 var(--bt-mono)}
.bt-stage-retry{color:var(--bt-down);font:600 11.5px/1.4 var(--bt-mono)}
/** A run that fell short is marked, not celebrated. */
.bt-play-win.is-fail{border-color:rgba(185,71,54,.42);background:rgba(185,71,54,.05)}
.bt-date-hint{min-height:20px;color:var(--hy-orange-dark);font-weight:600}
.bt-stage-soon{color:var(--hy-muted);font:600 11.5px/1.4 var(--hy-font-body);font-style:italic}

.bt-back-stage{
  min-height:34px;margin-bottom:14px;padding:0 14px;border:1px solid var(--bt-card-line);border-radius:8px;
  background:var(--bt-card-bg);color:var(--hy-ink);font:640 12.5px/1 var(--hy-font-body);cursor:pointer;
}
.bt-back-stage:hover{border-color:var(--hy-orange);color:var(--hy-orange)}

/** The header fields, laid out as the miner sees them. */
.bt-play-header{display:grid;gap:8px;margin:18px 0}
.bt-play-header>div{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px;
  padding:9px 13px;border-radius:8px;background:var(--hy-paper-2);border:1px solid var(--bt-card-line);
}
.bt-play-header span{color:var(--hy-muted);font-size:11.5px}
.bt-play-header code{color:var(--hy-ink);font:600 12px/1 var(--bt-mono);word-break:break-all}
.bt-play-header .is-live{border-color:var(--hy-orange);background:rgba(194,106,0,.06)}
.bt-play-header .is-live code{color:var(--hy-orange-dark);font-size:15px}

.bt-play-levels{margin:14px 0 6px}
.bt-play-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.bt-play-stats{margin-bottom:14px}

/**
 * The live hash readout.
 *
 * A div rather than a paragraph on purpose: `.bt-panel>p:not(.bt-note)` forces
 * body ink on any paragraph sitting directly in a panel, which on this dark
 * strip produced near-black text on a near-black background. Winning the
 * specificity fight would have meant a more contorted selector than the problem
 * deserves — the element simply is not a paragraph.
 */
.bt-play-hash{
  margin:0;padding:12px 14px;border-radius:8px;background:var(--hy-dark);
  color:#7ef0ad;font:600 12.5px/1.6 var(--bt-mono);word-break:break-all;
}
.bt-play-hash.is-win{color:#ffc861}
.bt-play-win{margin-top:18px;padding:18px;border-radius:12px;border:1px solid rgba(36,122,76,.4);background:rgba(36,122,76,.05)}
.bt-play-win h4{margin:0 0 8px;color:var(--hy-ink);font:640 16px/1.3 var(--hy-font-heading)}

/** The block-space gauge, and the queue competing for it. */
.bt-blk-gauge{height:12px;margin:16px 0 12px;border-radius:6px;background:var(--hy-paper-2);border:1px solid var(--bt-card-line);overflow:hidden}
.bt-blk-gauge span{display:block;height:100%;width:0;background:var(--hy-orange);transition:width .18s ease}
.bt-tx-pool{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:16px 0}
.bt-tx{
  display:flex;flex-direction:column;gap:3px;padding:11px 13px;text-align:left;font:inherit;
  border:1px solid var(--bt-card-line);border-radius:9px;background:var(--bt-card-bg);cursor:pointer;
  transition:border-color .14s,background-color .14s;
}
.bt-tx:hover:not(:disabled){border-color:var(--hy-orange)}
.bt-tx.is-picked{border-color:var(--bt-up);background:rgba(36,122,76,.08)}
.bt-tx.is-full{opacity:.4;cursor:not-allowed}
.bt-tx-size{color:var(--hy-muted);font:600 11px/1 var(--bt-mono)}
.bt-tx-fee{color:var(--hy-ink);font:700 14px/1 var(--bt-mono)}
.bt-tx-rate{color:var(--hy-orange-dark);font:600 11.5px/1 var(--bt-mono)}

/** Stage 3 — the year answers, wide enough to scan in one pass. */
.bt-year-grid{margin:12px 0}
.bt-year-grid button.is-wrong{border-color:var(--bt-down);color:var(--bt-down)}
.bt-year-grid button[aria-pressed="true"]{background:var(--bt-up);border-color:var(--bt-up);color:#fff}

/** Stage 4 — the shape, with no axis and no dates until it is over. */
.bt-cycle-chart{display:block;width:100%;height:150px;margin:16px 0 8px;border:1px solid var(--bt-card-line);border-radius:10px;background:var(--hy-paper-2)}
.bt-cycle-meta{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:14px;color:var(--hy-muted);font:600 12px/1 var(--bt-mono)}
.bt-cycle-meta strong{color:var(--hy-ink)}

/** Stage 5 — one scenario at a time, answers revealed after choosing. */
.bt-scenario h4{margin:0 0 10px;color:var(--hy-ink);font:640 18px/1.3 var(--hy-font-heading)}
.bt-scenario-options{display:grid;gap:10px;margin:18px 0}
.bt-scenario-option{
  padding:14px 16px;text-align:left;font:600 13.5px/1.5 var(--hy-font-body);
  border:1px solid var(--bt-card-line);border-radius:10px;background:var(--bt-card-bg);
  color:var(--hy-ink);cursor:pointer;transition:border-color .14s,background-color .14s;
}
.bt-scenario-option:hover:not(:disabled){border-color:var(--hy-orange)}
.bt-scenario-option.is-right{border-color:var(--bt-up);background:rgba(36,122,76,.09)}
.bt-scenario-option.is-wrong{border-color:var(--bt-down);background:rgba(185,71,54,.08)}
.bt-scenario-option.is-dim{opacity:.5}

.bt-wp-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}

/** History entries carry more prose than the research timelines they reuse. */
.bt-origin-timeline .bt-timeline-item{padding-bottom:20px}
.bt-origin-timeline strong{display:block;margin:8px 0 6px;color:var(--hy-ink);font:640 15.5px/1.35 var(--hy-font-heading)}
.bt-origin-timeline p{color:var(--hy-muted);font-size:13.5px;line-height:1.65}

.bt-book-panel{margin-top:14px}
.bt-book-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.bt-book-head h3{margin:0}
.bt-book .bt-table-wrap{border:0;background:transparent}

/**
 * The ladder.
 *
 * Rows are a fixed height and the numbers are tabular, because a book that
 * reflows as sizes change is unreadable — the eye tracks a price level by where
 * it sits, and a row that jumps a pixel every update destroys that.
 */
.bt-book-table{table-layout:fixed}
.bt-book-table th,.bt-book-table td{padding:5px 10px;border-bottom:0;height:26px}
.bt-book-table thead th{position:sticky;top:0;background:var(--bt-card-bg);z-index:1}
.bt-book-table td{font-family:var(--bt-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.bt-book-table tbody tr:hover{background:rgba(247,147,26,.07)}

/** The depth bar sits in its own cell and grows from the price side outward. */
.bt-book-bar{position:relative;width:26%;padding:0!important}
.bt-book-bar-head{width:26%}
.bt-book-bar span{position:absolute;top:3px;bottom:3px;right:0;display:block;border-radius:2px}
.bt-book-row[data-side="bid"] .bt-book-bar span{background:rgba(36,122,76,.20)}
.bt-book-row[data-side="ask"] .bt-book-bar span{background:rgba(185,71,54,.20)}
.bt-book-row[data-side="bid"] .bt-book-price{color:var(--bt-up);font-weight:640}
.bt-book-row[data-side="ask"] .bt-book-price{color:var(--bt-down);font-weight:640}
.bt-book-value,.bt-book-cum{color:var(--hy-muted)}

/**
 * The mid price, sitting above both columns.
 *
 * When the book was one stacked list this lived in the middle of it, dividing
 * bids from asks. Side by side there is no middle to sit in, and the mid belongs
 * to both columns equally — so it reads as a header for the pair.
 */
.bt-book-mid-bar{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:14px;
  margin-bottom:16px;padding:12px;border-radius:10px;background:var(--hy-paper-2);
  border:1px solid var(--bt-card-line);
}
.bt-book-mid-price{font:700 20px/1 var(--bt-mono);color:var(--hy-ink)}
.bt-book-spread{font:500 12px/1 var(--bt-mono);color:var(--hy-muted)}
.bt-book-column{min-width:0}
.bt-book-column .bt-book-heading{margin-bottom:8px}
.bt-book-stage{min-height:120px}

/** Share of accounts on each side — a proportion, never a size. */
.bt-crowd{display:block;height:7px;border-radius:4px;background:rgba(185,71,54,.30);overflow:hidden;min-width:120px}
.bt-crowd-long{display:block;height:100%;background:var(--bt-up)}
.bt-crowd-read{display:block;margin-top:5px;font:500 11.5px/1 var(--bt-mono);color:var(--hy-muted)}
.bt-symmetry{margin:0;padding:14px 16px;border-left:3px solid var(--hy-orange);background:var(--hy-paper-2);border-radius:0 8px 8px 0}

.bt-liq-tape{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}
.bt-liq{
  display:grid;grid-template-columns:auto auto 1fr auto;gap:12px;align-items:baseline;
  padding:9px 12px;border-radius:8px;border:1px solid var(--bt-card-line);background:var(--bt-card-bg);
  font:500 12px/1.3 var(--bt-mono);
}
.bt-liq[data-side="long"]{border-left:3px solid var(--bt-down)}
.bt-liq[data-side="short"]{border-left:3px solid var(--bt-up)}
.bt-liq-side{font-weight:700;color:var(--hy-ink)}
.bt-liq[data-side="long"] .bt-liq-side{color:var(--bt-down)}
.bt-liq[data-side="short"] .bt-liq-side{color:var(--bt-up)}
.bt-liq-value{font-weight:700;color:var(--hy-ink)}
.bt-liq-detail,.bt-liq-venue{color:var(--hy-muted)}
.bt-liq-venue{text-align:right}

@media (max-width:640px){
  .bt-book-table th,.bt-book-table td{padding:5px 7px;font-size:11.5px}
  .bt-book-value,.bt-book-cum{display:none}
  .bt-liq{grid-template-columns:1fr auto;row-gap:4px}
}

.bt-legend{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.bt-legend-item{
  display:inline-flex;align-items:center;gap:8px;padding:6px 11px;border:1px solid var(--bt-card-line);
  border-radius:999px;background:var(--bt-card-bg);color:var(--hy-ink);font:600 12px/1 var(--hy-font-body);cursor:pointer;
}
.bt-legend-item[aria-pressed="false"]{opacity:.42}
.bt-legend-swatch{width:11px;height:11px;border-radius:3px;flex:none}

/* --------------------------------------------------------------------------
   Indicators
   -------------------------------------------------------------------------- */

.bt-indicators{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--bt-gap)}
.bt-indicator{
  padding:24px;border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);
  background:var(--bt-card-bg);box-shadow:var(--bt-shadow-sm);
}
.bt-indicator-head{display:flex;align-items:start;justify-content:space-between;gap:12px}
.bt-indicator-head h3{margin:0;color:var(--hy-ink);font:640 15px/1.3 var(--hy-font-heading)}
.bt-indicator-band{color:var(--hy-muted);font:700 10px/1.4 var(--hy-font-body);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.bt-indicator-value{margin:16px 0 12px;display:flex;align-items:baseline;gap:6px}
.bt-indicator-value strong{color:var(--hy-ink);font:560 34px/1 var(--bt-mono);letter-spacing:-.03em}
.bt-indicator-value span{color:var(--hy-muted);font-size:12.5px}
.bt-indicator-track{height:7px;border-radius:999px;background:var(--hy-paper-2);overflow:hidden}
.bt-indicator-track>span{display:block;height:100%;background:linear-gradient(90deg,#b08334,var(--hy-orange));transition:width .6s ease}
body.motion-off .bt-indicator-track>span{transition:none}
.bt-indicator-note{margin:14px 0 12px;color:var(--hy-muted);font-size:12.5px;line-height:1.6}

.bt-method-card{
  padding:clamp(22px,2.6vw,32px);border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);
  background:var(--bt-card-bg);box-shadow:var(--bt-shadow-sm);scroll-margin-top:96px;
}
.bt-method-card+.bt-method-card{margin-top:var(--bt-gap)}
.bt-method-head{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--bt-card-line)}
.bt-method-head h3{margin:0;color:var(--hy-ink);font:640 21px/1.2 var(--hy-font-heading);letter-spacing:-.02em}
.bt-method-range{margin:6px 0 0;color:var(--hy-muted);font-size:12px}
.bt-method-value{text-align:right}
.bt-method-value strong{display:block;color:var(--hy-ink);font:560 32px/1 var(--bt-mono);letter-spacing:-.03em}
.bt-method-value span{color:var(--hy-muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.07em}
.bt-method-card h4{margin:24px 0 8px;color:var(--hy-orange-dark);font:750 10.5px/1.3 var(--hy-font-body);letter-spacing:.11em;text-transform:uppercase}
.bt-method-card p{margin:0;color:var(--hy-ink);font-size:14px;line-height:1.7}
.bt-mapping{color:var(--hy-muted);font-family:var(--bt-mono);font-size:11.5px}
.bt-limitations{margin:0;padding-left:20px;color:var(--hy-muted);font-size:13px;line-height:1.7}
.bt-method-foot{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:1px solid var(--bt-card-line);color:var(--hy-muted);font-size:11.5px}

/* --------------------------------------------------------------------------
   Directory (dashboard)
   -------------------------------------------------------------------------- */

.bt-dir-group+.bt-dir-group{margin-top:clamp(30px,3.6vw,46px)}
.bt-dir-title{margin:0 0 16px;color:var(--hy-orange-dark);font:750 11px/1.3 var(--hy-font-body);letter-spacing:.12em;text-transform:uppercase}
/**
 * The section strip under a landing page's heading.
 *
 * Deliberately quiet: this is a shortcut for someone who already knows where
 * they are going, and it sits above the live data the page exists to show. It
 * wraps rather than scrolls, because a link that has to be scrolled sideways to
 * be found is no more discoverable than one at the bottom of the page.
 */
.bt-section-nav{display:flex;flex-wrap:wrap;gap:8px;margin:-6px 0 var(--bt-gap)}
.bt-section-nav a{
  display:inline-flex;align-items:center;min-height:32px;padding:0 13px;
  border:1px solid var(--bt-card-line);border-radius:20px;background:var(--bt-card-bg);
  color:var(--hy-ink);font:600 12.5px/1 var(--hy-font-body);text-decoration:none;
  transition:border-color .15s,color .15s;
}
.bt-section-nav a:hover{border-color:var(--hy-orange);color:var(--hy-orange)}
.bt-section-nav a:focus-visible{outline:2px solid var(--hy-orange);outline-offset:2px}
@media (max-width:640px){ .bt-section-nav a{font-size:12px;padding:0 11px} }

.bt-dir-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:var(--bt-gap)}
.bt-dir-tile{
  display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--bt-card-line);
  border-radius:var(--bt-card-radius);background:var(--bt-card-bg);color:var(--hy-ink);
  transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.bt-dir-tile:hover{border-color:var(--hy-orange);transform:translateY(-2px);box-shadow:var(--bt-shadow-sm)}
body.motion-off .bt-dir-tile{transition:none}
body.motion-off .bt-dir-tile:hover{transform:none}
.bt-dir-kicker{color:var(--hy-muted);font:700 10px/1.3 var(--hy-font-body);letter-spacing:.09em;text-transform:uppercase}
.bt-dir-name{color:var(--hy-ink);font:640 17px/1.25 var(--hy-font-heading);letter-spacing:-.02em}
.bt-dir-value{color:var(--hy-orange-dark);font:560 19px/1.1 var(--bt-mono)}
.bt-dir-summary{color:var(--hy-muted);font-size:12.5px;line-height:1.55}

/* --------------------------------------------------------------------------
   Fees, mempool, blocks
   -------------------------------------------------------------------------- */

.bt-fee-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--bt-gap)}
.bt-fee-tier{padding:22px;border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);background:var(--bt-card-bg)}
.bt-fee-tier[data-tier="fastest"]{border-color:var(--hy-orange);background:rgba(247,147,26,.05)}
.bt-fee-label{color:var(--hy-muted);font:700 10.5px/1.3 var(--hy-font-body);letter-spacing:.1em;text-transform:uppercase}
.bt-fee-rate{margin:12px 0 16px;color:var(--hy-ink);font:560 27px/1 var(--bt-mono);letter-spacing:-.03em}
.bt-fee-cost{display:grid;gap:0;margin:0}
.bt-fee-cost>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--bt-card-line)}
.bt-fee-cost dt{color:var(--hy-muted);font-size:12px}
.bt-fee-cost dd{margin:0;color:var(--hy-ink);font:600 12px/1.4 var(--bt-mono)}

.bt-projected{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.bt-projected-block{padding:18px;border:1px solid var(--bt-card-line);border-radius:12px;background:var(--hy-paper-2)}
.bt-projected-block h3{margin:0;color:var(--hy-muted);font:700 10.5px/1.3 var(--hy-font-body);letter-spacing:.09em;text-transform:uppercase}
.bt-projected-fee{margin:11px 0 14px;color:var(--hy-ink);font:560 19px/1 var(--bt-mono)}
.bt-projected-fee span{display:block;margin-top:5px;color:var(--hy-muted);font-size:11px;letter-spacing:.06em}
.bt-projected-block dl{display:grid;gap:0;margin:0}
.bt-projected-block dl>div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:11.5px}
.bt-projected-block dt{color:var(--hy-muted)}
.bt-projected-block dd{margin:0;color:var(--hy-ink);font-family:var(--bt-mono)}

[data-level="low"]{color:var(--hy-green)}
[data-level="moderate"]{color:#8a6a1f}
[data-level="high"]{color:var(--hy-orange-dark)}
[data-level="severe"]{color:var(--hy-red)}

/* --------------------------------------------------------------------------
   Order books
   -------------------------------------------------------------------------- */

.bt-book-card{padding:22px;border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);background:var(--bt-card-bg)}
.bt-book-card header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.bt-book-card h3{margin:0;color:var(--hy-ink);font:640 16px/1.2 var(--hy-font-heading)}
.bt-quote{display:block;margin-top:4px;color:var(--hy-muted);font:600 11px/1 var(--hy-font-body)}
.bt-book-top{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.bt-book-side{padding:13px;border-radius:10px;background:var(--hy-paper-2)}
.bt-book-side span{display:block;color:var(--hy-muted);font:700 9.5px/1.3 var(--hy-font-body);letter-spacing:.09em;text-transform:uppercase}
.bt-book-side strong{display:block;margin:7px 0 3px;font:560 17px/1 var(--bt-mono)}
.bt-book-side em{color:var(--hy-muted);font-style:normal;font:500 11.5px/1 var(--bt-mono)}
.bt-book-side.is-bid strong{color:var(--bt-up)}
.bt-book-side.is-ask strong{color:var(--bt-down)}
.bt-book-stats{display:grid;gap:0;margin:0 0 16px}
.bt-book-stats>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--bt-card-line)}
.bt-book-stats dt{color:var(--hy-muted);font-size:12px}
.bt-book-stats dd{margin:0;color:var(--hy-ink);font:600 12px/1.4 var(--bt-mono)}
.bt-book-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.bt-book-heading{margin:0 0 10px;font:700 11px/1.3 var(--hy-font-body);letter-spacing:.09em;text-transform:uppercase}
.bt-book-heading.is-bid{color:var(--bt-up)}
.bt-book-heading.is-ask{color:var(--bt-down)}
.bt-book-table td:first-child{font-family:var(--bt-mono)}
.bt-book-table[data-side="bids"] td:first-child{color:var(--bt-up)}
.bt-book-table[data-side="asks"] td:first-child{color:var(--bt-down)}
.bt-side{font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase}
tr[data-side="buy"] .bt-side{color:var(--bt-up)}
tr[data-side="sell"] .bt-side{color:var(--bt-down)}

/* --------------------------------------------------------------------------
   Returns strip
   -------------------------------------------------------------------------- */

.bt-returns{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:var(--bt-card-line);border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);overflow:hidden}
.bt-return{padding:18px 16px;background:var(--bt-card-bg);text-align:center}
.bt-return-label{display:block;color:var(--hy-muted);font:700 10px/1.3 var(--hy-font-body);letter-spacing:.09em;text-transform:uppercase}
.bt-return strong{display:block;margin-top:10px;font:560 19px/1 var(--bt-mono)}
.bt-return[data-dir="up"] strong{color:var(--bt-up)}
.bt-return[data-dir="down"] strong{color:var(--bt-down)}
.bt-return[data-dir="flat"] strong{color:var(--hy-muted)}

.bt-dial{
  --bt-dial:50%;
  position:relative;height:12px;border-radius:999px;
  background:linear-gradient(90deg,#b94736,#c9922e,#247a4c);
}
.bt-dial::after{
  content:"";position:absolute;top:50%;left:var(--bt-dial);width:5px;height:24px;
  border-radius:3px;background:var(--hy-ink);transform:translate(-50%,-50%);
}

/* --------------------------------------------------------------------------
   News
   -------------------------------------------------------------------------- */

.bt-news-list{display:grid;gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--bt-card-line)}
.bt-news-item{border-bottom:1px solid var(--bt-card-line)}
.bt-news-link{display:block;padding:22px 4px;color:var(--hy-ink);transition:background-color .15s ease}
.bt-news-link:hover{background:rgba(247,147,26,.04)}
.bt-news-topic{color:var(--hy-orange-dark);font:750 10px/1.3 var(--hy-font-body);letter-spacing:.1em;text-transform:uppercase}
.bt-news-link h3{margin:9px 0 0;color:var(--hy-ink);font:640 18px/1.35 var(--hy-font-heading);letter-spacing:-.02em}
.bt-news-link p{margin:8px 0 0;max-width:74ch;color:var(--hy-muted);font-size:13.5px;line-height:1.6}
.bt-news-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;color:var(--hy-muted);font-size:12px}
.bt-news-meta strong{color:var(--hy-ink)}

/* --------------------------------------------------------------------------
   Status board
   -------------------------------------------------------------------------- */

.bt-status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--bt-gap)}
.bt-status-card{padding:22px;border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);background:var(--bt-card-bg)}
.bt-status-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bt-status-card h2{margin:0;color:var(--hy-ink);font:640 16px/1.2 var(--hy-font-heading)}
.bt-status-pill{padding:5px 11px;border-radius:999px;font:700 10.5px/1 var(--hy-font-body);letter-spacing:.06em;text-transform:uppercase}
.bt-status-pill[data-state="operational"]{background:rgba(36,122,76,.1);color:var(--hy-green)}
.bt-status-pill[data-state="degraded"],.bt-status-pill[data-state="delayed"]{background:rgba(176,131,52,.13);color:#8a6a1f}
.bt-status-pill[data-state="unavailable"],.bt-status-pill[data-state="partial-outage"]{background:rgba(185,71,54,.1);color:var(--hy-red)}
.bt-status-detail{margin:12px 0 16px;color:var(--hy-muted);font-size:13px;line-height:1.6}
.bt-status-providers{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.bt-status-providers li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--bt-card-line);font-size:12.5px}
.bt-status-dot{width:8px;height:8px;border-radius:50%;background:var(--hy-muted)}
li[data-state="operational"] .bt-status-dot{background:var(--hy-green)}
li[data-state="delayed"] .bt-status-dot{background:#c9922e}
li[data-state="unavailable"] .bt-status-dot{background:var(--hy-red)}
.bt-status-name{color:var(--hy-ink);font-weight:600}
.bt-status-role{color:var(--hy-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.bt-status-latency{color:var(--hy-muted);font-family:var(--bt-mono);font-size:11.5px;white-space:nowrap}
.bt-status-overall{
  display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:999px;
  font:700 13px/1 var(--hy-font-body);
}
.bt-status-overall[data-state="operational"]{background:rgba(36,122,76,.1);color:var(--hy-green)}
.bt-status-overall[data-state="degraded"]{background:rgba(176,131,52,.14);color:#8a6a1f}
.bt-status-overall[data-state="partial-outage"]{background:rgba(185,71,54,.1);color:var(--hy-red)}

/* --------------------------------------------------------------------------
   API documentation
   -------------------------------------------------------------------------- */

.bt-endpoint-group+.bt-endpoint-group{margin-top:34px}
.bt-endpoint-group h3{margin:0 0 14px;color:var(--hy-orange-dark);font:750 11px/1.3 var(--hy-font-body);letter-spacing:.12em;text-transform:uppercase}
.bt-endpoint-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}
.bt-endpoint{padding:18px;border:1px solid var(--bt-card-line);border-radius:12px;background:var(--bt-card-bg)}
.bt-endpoint header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}
.bt-endpoint code{color:var(--hy-ink);font-family:var(--bt-mono);font-size:12px;overflow-wrap:anywhere}
.bt-endpoint p{margin:0 0 12px;color:var(--hy-muted);font-size:12.5px;line-height:1.6}
.bt-endpoint-meta{display:grid;gap:0;margin:0}
.bt-endpoint-meta>div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--bt-card-line);font-size:11.5px}
.bt-endpoint-meta dt{color:var(--hy-muted)}
.bt-endpoint-meta dd{margin:0;color:var(--hy-ink);font-family:var(--bt-mono)}

/* --------------------------------------------------------------------------
   Research components
   -------------------------------------------------------------------------- */

.bt-estimates{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--bt-gap)}
.bt-estimate{padding:20px;border:1px dashed var(--bt-card-line);border-radius:12px;background:var(--hy-paper-2)}
.bt-estimate-label{display:block;color:var(--hy-muted);font:700 10px/1.3 var(--hy-font-body);letter-spacing:.09em;text-transform:uppercase}
.bt-estimate strong{display:block;margin:11px 0 4px;color:var(--hy-ink);font:560 22px/1 var(--bt-mono)}
.bt-estimate-pct{display:block;color:var(--hy-orange-dark);font:600 12px/1.4 var(--bt-mono)}
.bt-estimate p{margin:11px 0 0;color:var(--hy-muted);font-size:12px;line-height:1.55}

.bt-evidence{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:11px 0;border-bottom:1px solid var(--bt-card-line)}
.bt-evidence:last-child{border-bottom:0}
.bt-evidence p{margin:0;color:var(--hy-muted);font-size:12.5px;line-height:1.6}

/* Event timelines — sovereign and corporate history --------------------------- */

.bt-expansion-title{
  margin:22px 0 12px;color:var(--hy-orange-dark);
  font:750 10.5px/1.3 var(--hy-font-body);letter-spacing:.11em;text-transform:uppercase;
}
.bt-timeline{
  position:relative;margin:0;padding:0 0 0 22px;list-style:none;
  border-left:2px solid var(--bt-card-line);
}
.bt-timeline-item{position:relative;padding:0 0 20px}
.bt-timeline-item:last-child{padding-bottom:2px}
.bt-timeline-item::before{
  content:"";position:absolute;left:-27px;top:5px;width:9px;height:9px;border-radius:50%;
  background:var(--hy-muted);box-shadow:0 0 0 3px var(--hy-paper-2);
}
.bt-timeline-item[data-type="seizure"]::before{background:#4a5a7a}
.bt-timeline-item[data-type="sale"]::before{background:var(--bt-down)}
.bt-timeline-item[data-type="purchase"]::before{background:var(--bt-up)}
.bt-timeline-item[data-type="policy"]::before{background:var(--hy-orange)}
.bt-timeline-head{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:6px}
.bt-timeline-head time{color:var(--hy-muted);font:600 11.5px/1 var(--bt-mono)}
.bt-timeline-amount{font:600 12px/1 var(--bt-mono)}
.bt-timeline-item>strong{display:block;color:var(--hy-ink);font:640 14px/1.35 var(--hy-font-heading)}
.bt-timeline-item>p{margin:6px 0 0;max-width:74ch;color:var(--hy-muted);font-size:13px;line-height:1.65}

.bt-tag[data-tone="official"]{color:var(--hy-green);border-color:rgba(36,122,76,.3);background:rgba(36,122,76,.08)}
.bt-tag[data-tone="corroborated"]{color:#8a6a1f;border-color:rgba(176,131,52,.32);background:rgba(176,131,52,.09)}
.bt-tag[data-tone="contested"]{color:var(--hy-red);border-color:rgba(185,71,54,.3);background:rgba(185,71,54,.07)}
.bt-tag[data-tone="sale"]{color:var(--bt-down);border-color:rgba(185,71,54,.28);background:rgba(185,71,54,.06)}
.bt-tag[data-tone="purchase"]{color:var(--bt-up);border-color:rgba(36,122,76,.28);background:rgba(36,122,76,.06)}
.bt-tag[data-tone="policy"]{color:var(--hy-orange-dark);border-color:rgba(166,81,0,.28);background:rgba(166,81,0,.06)}
.bt-tag[data-tone="movement"]{color:#4b4336}

.bt-address{display:block;margin-bottom:12px}
.bt-address em{display:block;color:var(--hy-muted);font-style:normal;font-size:11.5px}
.bt-address code{display:block;margin:4px 0;font-family:var(--bt-mono);font-size:11px;overflow-wrap:anywhere}
.bt-address-live{display:block;color:var(--hy-green);font:600 11.5px/1.5 var(--bt-mono)}
.bt-address-block{padding:14px 0;border-bottom:1px solid var(--bt-card-line)}
.bt-address-block:last-of-type{border-bottom:0}
.bt-address-block h5{margin:0 0 4px;color:var(--hy-ink);font:640 13px/1.3 var(--hy-font-heading)}

.bt-company-policy{margin:0;color:var(--hy-ink);font-size:13.5px;line-height:1.7}
.bt-company-detail{padding:4px 0}

.bt-wallet-list{display:grid;gap:16px;margin:0;padding:0;list-style:none}
.bt-wallet{padding:20px;border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);background:var(--bt-card-bg)}
.bt-wallet-head{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:14px}
.bt-wallet-head h3{margin:8px 0 0;color:var(--hy-ink);font:640 15px/1.35 var(--hy-font-heading)}
.bt-wallet-balance{text-align:right}
.bt-wallet-balance strong{display:block;color:var(--hy-ink);font:560 19px/1 var(--bt-mono)}
.bt-wallet-balance span{color:var(--hy-muted);font:500 12px/1.6 var(--bt-mono)}
.bt-wallet-basis{margin:0 0 10px;color:var(--hy-muted);font-size:12.5px;line-height:1.6}

.bt-movements{display:grid;gap:0;margin:0;padding:0;list-style:none}
.bt-movement{display:grid;grid-template-columns:minmax(120px,auto) 1fr auto;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--bt-card-line);font-size:12.5px}
.bt-movement-amount{font:600 13px/1 var(--bt-mono)}
.bt-movement[data-dir="in"] .bt-movement-amount{color:var(--bt-up)}
.bt-movement[data-dir="out"] .bt-movement-amount{color:var(--bt-down)}
.bt-movement time{color:var(--hy-muted);font-size:11.5px;white-space:nowrap}

.bt-historic-address{padding:22px;border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);background:var(--bt-card-bg)}
.bt-historic-address h3{margin:0;color:var(--hy-ink);font:640 16px/1.3 var(--hy-font-heading)}
.bt-historic-balance{margin:0 0 12px;display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}
.bt-historic-balance strong{color:var(--hy-ink);font:560 21px/1 var(--bt-mono)}
.bt-historic-balance span{color:var(--hy-muted);font:500 13px/1 var(--bt-mono)}
.bt-historic-address p{margin:0 0 12px;color:var(--hy-muted);font-size:13px;line-height:1.65}

.bt-onchain-feed{display:grid;gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--bt-card-line)}
.bt-onchain-item{display:grid;grid-template-columns:minmax(150px,220px) 1fr minmax(150px,220px);gap:20px;padding:16px 0;border-bottom:1px solid var(--bt-card-line)}
.bt-onchain-label{display:block;color:var(--hy-muted);font:700 9.5px/1.3 var(--hy-font-body);letter-spacing:.09em;text-transform:uppercase}
.bt-onchain-value strong{display:block;margin-top:6px;color:var(--hy-ink);font:560 17px/1 var(--bt-mono)}
.bt-onchain-address code{display:block;margin-top:6px;font-family:var(--bt-mono);font-size:11.5px;overflow-wrap:anywhere}
.bt-onchain-meta span:last-child{display:block;margin-top:6px;color:var(--hy-muted);font-size:12px}

/* --------------------------------------------------------------------------
   Tools
   -------------------------------------------------------------------------- */

.bt-tool{padding:clamp(20px,2.4vw,28px);border:1px solid var(--bt-card-line);border-radius:var(--bt-card-radius);background:var(--bt-card-bg)}
.bt-tool h2{margin:0 0 6px;color:var(--hy-ink);font:640 18px/1.25 var(--hy-font-heading)}
.bt-tool>p{margin:0 0 18px;color:var(--hy-muted);font-size:13px;line-height:1.6}
.bt-field{display:grid;gap:6px;margin-bottom:14px}
.bt-field label{color:var(--hy-muted);font:700 10.5px/1.3 var(--hy-font-body);letter-spacing:.09em;text-transform:uppercase}
.bt-field input,.bt-field select{
  /* Without border-box, `width:100%` plus 28px of padding and 2px of border
     made every field overflow its container by exactly 30px — which is what
     pushed the submit button on the blocks page into the text box. */
  box-sizing:border-box;
  min-height:46px;padding:0 14px;border:1px solid var(--bt-card-line);border-radius:9px;
  background:var(--hy-paper);color:var(--hy-ink);font:500 15px/1 var(--bt-mono);width:100%;
}
.bt-field input:focus,.bt-field select:focus{outline:3px solid var(--hy-orange-dark);outline-offset:2px}
/**
 * A field with its submit button beside it.
 *
 * `.bt-field` carries a bottom margin for stacked forms, which here pushed the
 * input up while the button stayed on the row's baseline — so the button
 * appeared to sit inside the text box. The margin is removed inside a row and
 * both controls are given the same height instead.
 */
.bt-field-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.bt-field-row .bt-field{margin-bottom:0}
/* 48px matches the rendered height of the field beside it, not the 46px
   min-height, so the two controls line up exactly. */
.bt-field-row .hy-button{height:48px;white-space:nowrap}
@media (max-width:560px){
  .bt-field-row{grid-template-columns:1fr}
}

/* --------------------------------------------------------------------------
   Search
   -------------------------------------------------------------------------- */

.bt-search-open{
  display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;
  border:1px solid currentColor;border-radius:9px;background:transparent;color:inherit;
  font:600 13px/1 var(--hy-font-body);cursor:pointer;opacity:.8;
}
.bt-search-open:hover{opacity:1}
.bt-search{position:fixed;z-index:900;inset:0;background:rgba(12,11,9,.55);padding:12vh 20px 20px;overflow-y:auto}
.bt-search[hidden]{display:none}
body.bt-search-open{overflow:hidden}
.bt-search-panel{
  width:min(620px,100%);margin:0 auto;padding:20px;border-radius:16px;
  background:var(--hy-white);box-shadow:0 30px 80px rgba(0,0,0,.32);
}
#searchInput{
  width:100%;min-height:52px;padding:0 16px;border:1px solid var(--bt-card-line);border-radius:10px;
  background:var(--hy-paper);color:var(--hy-ink);font:500 16px/1 var(--hy-font-body);
}
#searchInput:focus{outline:3px solid var(--hy-orange-dark);outline-offset:2px}
.bt-search-results{margin:14px 0 0;padding:0;list-style:none;max-height:52vh;overflow-y:auto}
.bt-search-results li a{display:block;padding:12px 13px;border-radius:9px;color:var(--hy-ink)}
.bt-search-results li a strong{display:block;font:640 14.5px/1.3 var(--hy-font-heading)}
.bt-search-results li a span{display:block;margin-top:3px;color:var(--hy-muted);font-size:12.5px;line-height:1.5}
.bt-search-results li[aria-selected="true"] a,.bt-search-results li a:hover{background:var(--hy-paper-2)}
.bt-search-empty{padding:16px 13px;color:var(--hy-muted);font-size:13px}
.bt-search-foot{margin:12px 0 0;color:var(--hy-muted);font-size:11.5px}
.bt-search-foot kbd{padding:2px 6px;border:1px solid var(--bt-card-line);border-radius:4px;font-family:var(--bt-mono);font-size:10.5px}

/* --------------------------------------------------------------------------
   Modal
   -------------------------------------------------------------------------- */

.bt-modal{position:fixed;z-index:800;inset:0;background:rgba(12,11,9,.6);padding:6vh 18px;overflow-y:auto}
.bt-modal[hidden]{display:none}
body.bt-modal-open{overflow:hidden}
.bt-modal-box{width:min(980px,100%);margin:0 auto;border-radius:16px;background:var(--hy-white);box-shadow:0 30px 80px rgba(0,0,0,.32);overflow:hidden}
.bt-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--bt-card-line)}
.bt-modal-head h2{margin:0;color:var(--hy-ink);font:640 17px/1.3 var(--hy-font-heading)}
.bt-modal-close{min-height:38px;padding:0 15px;border:1px solid var(--bt-card-line);border-radius:9px;background:var(--hy-paper);color:var(--hy-ink);font:600 12.5px/1 var(--hy-font-body);cursor:pointer}
.bt-modal-close:hover{border-color:var(--hy-orange)}
.bt-modal-body{padding:22px;max-height:74vh;overflow-y:auto}
.bt-modal-note{margin:16px 0 0;color:var(--hy-muted);font-size:12px;line-height:1.6}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.bt-footer-top{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:clamp(28px,4vw,64px);padding:clamp(40px,4.5vw,64px) 0 34px}
.bt-footer-brand p{margin:16px 0 0;max-width:38ch;color:rgba(255,255,255,.6);font-size:13px;line-height:1.65}
.bt-footer-status{color:rgba(255,255,255,.45)!important;font-size:11.5px!important;font-family:var(--bt-mono)}
.bt-footer-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:26px}
.bt-footer-group h2{margin:0 0 12px;color:#fff;font:700 10.5px/1.3 var(--hy-font-body);letter-spacing:.11em;text-transform:uppercase}
.bt-footer-group ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.bt-footer-group a{color:rgba(255,255,255,.66);font-size:13px}
.bt-footer-group a:hover{color:#fff}
.bt-footer-base{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;border-top:1px solid rgba(255,255,255,.12)}
.bt-footer-base p{margin:0;color:rgba(255,255,255,.5);font-size:12px}
.bt-footer-meta{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.bt-footer-meta a,.bt-footer-meta button{color:rgba(255,255,255,.66);font:600 12px/1 var(--hy-font-body);background:none;border:0;padding:0;cursor:pointer}
.bt-footer-meta a:hover,.bt-footer-meta button:hover{color:#fff}
.bt-attribution{margin:0;padding:0 0 32px;color:rgba(255,255,255,.4);font-size:11.5px;line-height:1.7}
.bt-attribution a{color:rgba(255,255,255,.62);text-decoration:underline;text-underline-offset:2px}
.bt-attribution a:hover{color:#fff}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width:900px){
  .bt-detail{padding-top:68px}
  .bt-metric.is-headline{grid-column:span 1}
  .bt-footer-top{grid-template-columns:1fr;gap:34px}
  .bt-detail-list>div{grid-template-columns:1fr;gap:4px}
  .bt-onchain-item{grid-template-columns:1fr;gap:12px}
  .bt-search-hint{display:none}
  .bt-search-open{padding:0 11px}
  .bt-method-head{flex-direction:column}
  .bt-method-value{text-align:left}
}

@media (max-width:620px){
  .bt-detail-head{padding:20px 0 26px}
  .bt-share-row{grid-template-columns:1fr auto;grid-template-areas:"name value" "track track";gap:7px 12px}
  .bt-share-name{grid-area:name}
  .bt-share-value{grid-area:value}
  .bt-share-track{grid-area:track}
  .bt-book-top{grid-template-columns:1fr}
  .bt-movement{grid-template-columns:1fr auto;gap:6px 12px}
  .bt-movement-name{grid-column:1/-1;color:var(--hy-muted)}
  .bt-wallet-head{flex-direction:column}
  .bt-wallet-balance{text-align:left}
  .bt-modal-body,.bt-modal-head{padding-inline:16px}
  .bt-search{padding-top:6vh}
  /* Wide data tables scroll inside their own container, never the page. */
  .bt-table th,.bt-table td{padding:11px 13px;font-size:12.5px}
}

@media print{
  .hy-header,.hy-footer,.bt-search,.bt-modal,.bt-chart-tip{display:none!important}
  .bt-detail{padding-top:0}
  .bt-table-wrap{overflow:visible;border:0}
}
