:root{
  --ink:        #12141A;
  --panel:      #1B1E26;
  --panel-2:    #21242E;
  --line:       #2C303B;
  --text:       #EDEBE4;
  --slate:      #8890A0;
  --orange:     #F7931A;
  --orange-dim: #B96F1E;
  --green:      #4FB477;
  --red:        #D97070;
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --max: 1080px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:var(--sans);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 24px;}
h1,h2,h3{font-family:var(--mono); font-weight:700; margin:0 0 .5em; letter-spacing:-0.01em;}
.accent{color:var(--orange);}

:focus-visible{outline:2px solid var(--orange); outline-offset:3px;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
  #ticker-coins{overflow-x:auto;}
}

/* ---------- ticker (auto-scrolling marquee) ---------- */
.ticker{
  display:flex;
  align-items:center;
  background:#0D0F14;
  border-bottom:1px solid var(--line);
  padding:9px 0;
  font-family:var(--mono);
  font-size:12px;
  overflow:hidden;
}
.ticker__viewport{flex:1; min-width:0; overflow:hidden;}
.ticker__viewport:hover #ticker-coins{animation-play-state:paused;}
#ticker-coins{
  display:flex;
  gap:32px;
  width:max-content;
  padding-left:24px;
  animation:ticker-scroll 45s linear infinite;
}
@keyframes ticker-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
.ticker__item{display:flex; align-items:center; gap:8px; flex-shrink:0; white-space:nowrap;}
.ticker__label{color:var(--slate); letter-spacing:.06em;}
.ticker__value{color:var(--text); font-weight:600;}
.ticker__delta{font-weight:600;}
.ticker__delta.up{color:var(--green);}
.ticker__delta.down{color:var(--red);}
.ticker__item--status{flex:0 0 auto; padding:0 24px; color:var(--slate); display:flex; align-items:center; gap:8px;}
.dot{width:6px; height:6px; border-radius:50%; background:var(--slate); display:inline-block;}
.dot.live{background:var(--green); box-shadow:0 0 0 3px rgba(79,180,119,.15);}
.dot.err{background:var(--red);}

/* ---------- header ---------- */
.site-header{border-bottom:1px solid var(--line); padding:18px 0;}
.site-header__row{display:flex; align-items:center; justify-content:space-between;}
.logo{font-family:var(--mono); font-weight:800; font-size:18px; text-decoration:none; letter-spacing:.02em;}
.logo span{color:var(--orange);}
.nav{display:flex; gap:28px;}
.nav a{text-decoration:none; font-size:14px; color:var(--slate); font-weight:500;}
.nav a:hover{color:var(--text);}

/* ---------- hero ---------- */
.hero{padding:72px 24px 56px;}
.hero__eyebrow{
  font-family:var(--mono); font-size:12px; color:var(--slate);
  text-transform:uppercase; letter-spacing:.1em; margin-bottom:18px;
}
.hero__headline{
  font-size:clamp(34px, 5.2vw, 58px);
  line-height:1.06;
  max-width:14ch;
}
.hero__sub{
  max-width:52ch; color:var(--slate); font-size:17px; margin:20px 0 40px;
}
.hero__price{
  display:inline-flex; align-items:baseline; gap:16px;
  background:var(--panel); border:1px solid var(--line);
  padding:20px 28px; border-radius:6px;
}
.hero__price-num{font-family:var(--mono); font-size:38px; font-weight:800; color:var(--orange);}
.hero__price-meta{display:flex; flex-direction:column; gap:2px; font-family:var(--mono); font-size:13px;}
.hero__price-label{color:var(--slate); font-size:11px;}

/* ---------- section head ---------- */
.section-head{margin-bottom:32px; padding-top:64px; border-top:1px solid var(--line);}
.section-head h2{font-size:26px;}
.section-head p{color:var(--slate); margin:0; max-width:56ch;}

/* ---------- ledger ---------- */
.ledger__list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column;}
.ledger__entry{
  display:flex; gap:24px;
  padding:28px 0;
  border-bottom:1px solid var(--line);
}
.ledger__index{
  font-family:var(--mono); color:var(--slate); font-size:14px; font-weight:600;
  flex:0 0 52px; padding-top:3px;
}
.ledger__top{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.ledger__top h3{font-size:18px; margin:0;}
.ledger__body p{margin:10px 0 14px; color:var(--slate); max-width:64ch;}
.badge{
  font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.04em;
  padding:4px 10px; border-radius:3px; white-space:nowrap;
}
.badge--verified{color:var(--green); background:rgba(79,180,119,.12); border:1px solid rgba(79,180,119,.35);}
.badge--caution{color:var(--red); background:rgba(217,112,112,.12); border:1px solid rgba(217,112,112,.35);}
.ledger__tags{display:flex; gap:14px; flex-wrap:wrap;}
.ledger__tags span{font-family:var(--mono); font-size:11.5px; color:var(--slate); background:var(--panel); border:1px solid var(--line); padding:4px 9px; border-radius:3px;}
.ledger__note{color:var(--slate); font-size:13px; margin-top:24px; font-style:italic;}

/* ---------- news ---------- */
.news__list{list-style:none; margin:0; padding:0;}
.news__item{
  display:flex; gap:18px; padding:16px 0; border-bottom:1px solid var(--line);
  align-items:baseline; flex-wrap:wrap;
}
.news__time{font-family:var(--mono); font-size:12px; color:var(--slate); flex:0 0 90px;}
.news__item a{text-decoration:none; font-weight:500;}
.news__item a:hover{color:var(--orange);}
.news__source{color:var(--slate); font-size:12.5px;}
.news__loading, .news__error{color:var(--slate); font-family:var(--mono); font-size:13px; padding:14px 0;}

/* ---------- methodology ---------- */
.method__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.method__num{font-family:var(--mono); color:var(--orange-dim); font-size:13px; font-weight:700; margin-bottom:10px;}
.method__step h3{font-size:16px; margin-bottom:8px;}
.method__step p{color:var(--slate); font-size:14.5px; margin:0;}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line); margin-top:80px; padding:40px 0;}
.site-footer__row{display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap;}
.logo--footer{margin-bottom:10px;}
.disclaimer{color:var(--slate); font-size:12.5px; max-width:46ch; margin:0;}

/* ---------- multi-coin ticker ---------- */
.ticker__coins{display:flex; align-items:center; gap:24px;}

/* ---------- nav (multi-page) ---------- */
.nav a.active{color:var(--orange);}

/* ---------- filter bar ---------- */
.filter-bar{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px;}
.filter-btn{
  font-family:var(--mono); font-size:12px; font-weight:600;
  background:var(--panel); border:1px solid var(--line); color:var(--slate);
  padding:7px 14px; border-radius:20px; cursor:pointer;
}
.filter-btn:hover{color:var(--text); border-color:#3a3f4d;}
.filter-btn.active{background:var(--orange); border-color:var(--orange); color:#14161a;}

/* ---------- category chip on ledger entries ---------- */
.chip{
  font-family:var(--mono); font-size:10.5px; font-weight:700; letter-spacing:.05em;
  color:var(--slate); background:var(--panel-2); border:1px solid var(--line);
  padding:3px 8px; border-radius:3px; text-transform:uppercase;
}

/* ---------- affiliate CTA ---------- */
.cta-btn{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:12.5px; font-weight:700;
  background:transparent; border:1px solid var(--orange); color:var(--orange);
  padding:8px 16px; border-radius:4px; text-decoration:none; margin-top:14px;
}
.cta-btn:hover{background:var(--orange); color:#14161a;}
.cta-note{font-size:11px; color:var(--slate); margin-left:10px;}

/* ---------- ad slot ---------- */
.ad-slot{
  display:flex; align-items:center; justify-content:center;
  background:var(--panel); border:1px dashed var(--line); color:var(--slate);
  font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase;
  margin:36px auto; border-radius:4px;
}
.ad-slot--leaderboard{max-width:728px; height:90px;}
.ad-slot--rectangle{max-width:300px; height:250px;}

/* ---------- converter tool ---------- */
.converter{
  background:var(--panel); border:1px solid var(--line); border-radius:8px;
  padding:32px; max-width:480px;
}
.converter__row{display:flex; gap:12px; align-items:center; margin-bottom:16px;}
.converter__row input{
  flex:1; background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  font-family:var(--mono); font-size:20px; padding:12px 14px; border-radius:6px; min-width:0;
}
.converter__row select{
  background:var(--panel-2); border:1px solid var(--line); color:var(--text);
  font-family:var(--mono); font-size:14px; padding:12px 10px; border-radius:6px;
}
.converter__swap{
  background:none; border:1px solid var(--line); color:var(--slate);
  width:36px; height:36px; border-radius:50%; cursor:pointer; font-size:16px;
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
}
.converter__swap:hover{color:var(--orange); border-color:var(--orange);}
.converter__rate{font-size:12.5px; color:var(--slate); font-family:var(--mono);}

/* ---------- disclosure banner ---------- */
.disclosure-banner{
  background:var(--panel-2); border-bottom:1px solid var(--line);
  font-size:12.5px; color:var(--slate); text-align:center; padding:8px 16px;
}
.disclosure-banner a{color:var(--orange); text-decoration:none;}

/* ---------- admin ---------- */
.admin-list{display:flex; flex-direction:column; gap:16px;}
.draft-card{
  background:var(--panel); border:1px solid var(--line); border-radius:6px; padding:20px;
}
.draft-card h3{font-size:16px; margin-bottom:6px;}
.draft-card p{color:var(--slate); font-size:14px; margin:0 0 14px;}
.draft-card__meta{font-family:var(--mono); font-size:11px; color:var(--slate); margin-bottom:14px;}
.draft-card__actions{display:flex; gap:10px;}
.btn{
  font-family:var(--mono); font-size:12px; font-weight:700; border-radius:4px;
  padding:8px 16px; cursor:pointer; border:1px solid var(--line); background:none;
}
.btn--approve{border-color:var(--green); color:var(--green);}
.btn--approve:hover{background:var(--green); color:#14161a;}
.btn--reject{border-color:var(--red); color:var(--red);}
.btn--reject:hover{background:var(--red); color:#14161a;}
.admin-gate{max-width:360px; margin:96px auto; text-align:center;}
.admin-gate input{
  width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text);
  font-family:var(--mono); padding:12px 14px; border-radius:6px; margin:16px 0;
}

/* ---------- category intro ---------- */
.category-intro{
  max-width:70ch; color:var(--slate); font-size:15.5px; margin-bottom:32px; line-height:1.65;
}
.category-intro strong{color:var(--text);}

/* ---------- review card grid ---------- */
.review-grid{display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:12px;}
.review-card{
  display:flex; gap:20px;
  background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:24px;
}
.review-card__logo{flex:0 0 56px; width:56px; height:56px; border-radius:12px; overflow:hidden;}
.review-card__logo img{width:100%; height:100%; display:block;}
.review-card__body{flex:1; min-width:0;}
.review-card__top{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:8px;}
.review-card__top h3{font-size:18px; margin:0;}
.review-card__summary{color:var(--slate); font-size:14.5px; margin:0 0 16px; max-width:64ch;}
.pros-cons{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:16px;}
.pros-cons h4{
  font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  margin:0 0 8px; font-weight:700;
}
.pros-cons.pros h4{color:var(--green);}
.pros-cons.cons h4{color:var(--red);}
.pros-cons ul{margin:0; padding-left:18px; color:var(--slate); font-size:13.5px; line-height:1.6;}

/* ---------- full review page ---------- */
.review-hero{display:flex; align-items:center; gap:20px; padding:56px 0 28px;}
.review-hero__logo{flex:0 0 72px; width:72px; height:72px; border-radius:16px; overflow:hidden;}
.review-hero__logo img{width:100%; height:100%; display:block;}
.review-hero h1{font-size:32px; margin-bottom:6px;}
.review-hero__meta{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.review-body{max-width:74ch;}
.review-body h2{font-size:20px; margin-top:44px;}
.review-body p{color:var(--slate); line-height:1.7; margin:0 0 16px;}
.review-body ul{color:var(--slate); line-height:1.7; padding-left:20px;}
.spec-table{width:100%; border-collapse:collapse; margin:16px 0; font-size:14px;}
.spec-table td{padding:10px 0; border-bottom:1px solid var(--line);}
.spec-table td:first-child{color:var(--slate); width:40%;}
.spec-table td:last-child{font-family:var(--mono); font-weight:600;}
.verdict-box{
  background:var(--panel); border:1px solid var(--line); border-radius:8px;
  padding:24px; margin:32px 0;
}
.verdict-box h2{margin-top:0;}
.sample-note{
  font-size:12.5px; color:var(--slate); font-style:italic; border-left:2px solid var(--orange-dim);
  padding-left:14px; margin:32px 0;
}
.back-link{display:inline-block; margin-top:8px; color:var(--slate); font-family:var(--mono); font-size:13px; text-decoration:none;}
.back-link:hover{color:var(--orange);}

/* ---------- responsive ---------- */
@media (max-width:720px){
  .method__grid{grid-template-columns:1fr;}
  .ledger__entry{flex-direction:column; gap:8px;}
  .site-footer__row{flex-direction:column;}
  .hero{padding-top:48px;}
  .ticker__coins{gap:14px;}
  .converter{padding:22px;}
  .review-card{flex-direction:column;}
  .pros-cons{grid-template-columns:1fr;}
}
