/* CallCrypto — Call— family chassis (same type, radius and rhythm as CallEdge), own accent.
   PALETTE, 2026-09-23: the neutral ramp was violet-cast (#0d0d1a bg, #A9A6BE / #6F6C85 greys) under a
   mint-green teal. That purple-under-green pairing was the thing that read wrong. The ramp is now
   blue-cast throughout and lifted a step, and the accent is the DC Water brand green (#6BB346, sampled from the logo) with the drop blue as the
   secondary. Green is used as the BRAND colour only, never for price direction — see app.js. Nothing here
   is a one-off colour: every surface and tone comes from a token below, so the next shift is one edit. */
:root{
  --bg:#0E1C2B; --card:#152A3D; --soft:#1B3349; --line:#25425C; --line2:#2F5273;
  --text:#E8F1F8; --text2:#A9C1D6; --text3:#7B99B2;
  --accent:#6BB346; --accent-d:#579A36; --accent-soft:rgba(107,179,70,.14);
  --blue:#2A9BE0; --blue-soft:rgba(42,155,224,.12);
  --font:'Barlow Condensed',system-ui,sans-serif;
  --body:'Inter',system-ui,-apple-system,sans-serif;
  --radius:14px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{height:100%;scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--body);line-height:1.65;min-height:100%;
  -webkit-font-smoothing:antialiased}
.wrap{max-width:860px;margin:0 auto;padding:0 22px}
a{color:var(--accent)}

/* ---------------------------------------------------------------- header + tabs */
header{padding:28px 0 0}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{font-family:var(--font);font-weight:800;font-size:30px;letter-spacing:-.4px;text-decoration:none;
  display:flex;align-items:baseline;gap:1px}
.brand .a{color:var(--accent)}
.brand .b{color:var(--text)}
.nav .by{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--text3);font-weight:600}

.tabs{margin-top:22px;border-bottom:1px solid var(--line);display:flex;gap:2px;overflow-x:auto;
  scrollbar-width:none}
/* Seven tabs: wrap to a second row on wide screens; scroll sideways on narrow ones. */
@media (min-width:700px){ .tabs{flex-wrap:wrap;overflow:visible} }
.tabs::-webkit-scrollbar{display:none}
.tab{appearance:none;font:inherit;cursor:pointer;background:none;border:0;border-bottom:2px solid transparent;
  color:var(--text3);font-size:14px;font-weight:600;padding:11px 12px;white-space:nowrap;margin-bottom:-1px;
  display:flex;align-items:center;gap:9px;transition:color .14s,border-color .14s}
.tab svg{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.tab:hover{color:var(--text2)}
.tab[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent)}

main{padding:52px 0 80px;min-height:60vh}
.view[hidden]{display:none}

/* ---------------------------------------------------------------- shared type */
.eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);
  margin-bottom:14px}
h1{font-family:var(--font);font-size:clamp(34px,6vw,56px);font-weight:700;line-height:1.05;letter-spacing:-.5px}
h2{font-family:var(--font);font-size:clamp(25px,3.6vw,33px);font-weight:700;line-height:1.15;
  letter-spacing:-.3px;margin-top:52px}
h3{font-size:17.5px;font-weight:700;margin-bottom:8px}
.lede{margin-top:18px;font-size:18.5px;color:var(--text2);max-width:640px}
.prose p{margin-top:16px;font-size:16.5px;color:var(--text2);max-width:660px}
.prose p b,.prose p strong{color:var(--text);font-weight:600}
.prose h2+p{margin-top:14px}

/* ---------------------------------------------------------------- cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;
  margin-top:18px}
.card h3{color:var(--text)}
.card p{font-size:15.5px;color:var(--text2);margin-top:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:16px;margin-top:22px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid .card{margin-top:0}

/* Focus cards: name on its own line so a long name (Ethereum) lays out like a short one (Solana). */
.fc-name{font-family:var(--font);font-size:27px;font-weight:700;letter-spacing:-.3px;line-height:1.1}
.fc-line{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:6px;padding-bottom:14px;
  border-bottom:1px solid var(--line)}
.fc-line .price{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}
.fc-line .dir{font-size:14px;color:var(--text2);font-variant-numeric:tabular-nums}
.fc p{margin-top:12px}
.fc-cta{margin-top:18px;padding:8px 16px;font-size:14px}

.note{margin-top:20px;background:var(--soft);border-left:2px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;
  padding:18px 22px;font-size:15.5px;color:var(--text2);max-width:660px}
.note b{color:var(--text);font-weight:600}

/* ---------------------------------------------------------------- diagrams */
figure{margin-top:26px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 22px 18px}
/* A diagram scaled to a phone becomes 5px type. Below 700px the drawing keeps its legible size and the
   figure scrolls sideways instead — a readable diagram you pan beats an unreadable one that fits. */
.d-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
figure svg{width:100%;min-width:640px;height:auto;display:block;overflow:visible}
@media (max-width:700px){
  .d-scroll::after{content:"drag sideways to see the whole diagram";display:block;margin-top:8px;
    font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}
}
figcaption{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:14.5px;color:var(--text2)}
figcaption b{color:var(--text);font-weight:600}
.d-fill{fill:var(--soft)}
.d-stroke{stroke:var(--line2);fill:none;stroke-width:1.5}
.d-accent{stroke:var(--accent);fill:none;stroke-width:1.8}
.d-accent-fill{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5}
.d-blue{stroke:var(--blue);fill:none;stroke-width:1.8}
.d-label{fill:var(--text2);font-family:'Inter',sans-serif;font-size:12.5px;font-weight:500}
.d-label-s{fill:var(--text3);font-family:'Inter',sans-serif;font-size:12px;font-weight:500}
.d-label-k{fill:var(--text);font-family:'Inter',sans-serif;font-size:13px;font-weight:600}
.d-mono{fill:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}

/* ---------------------------------------------------------------- timeline */
.timeline{margin-top:34px;position:relative;padding-left:30px}
.timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;
  background:linear-gradient(var(--line2),var(--line))}
.era{margin-top:38px}
.era:first-child{margin-top:0}
.era-name{font-family:var(--font);font-size:22px;font-weight:700;color:var(--text);margin-bottom:2px}
.era-span{font-family:var(--body);font-size:13.5px;font-weight:500;color:var(--text3);margin-left:8px;letter-spacing:.02em}
.era-sub{font-size:14px;color:var(--text3);margin-bottom:8px}
.ev{position:relative;margin-top:22px}
.ev::before{content:"";position:absolute;left:-30px;top:7px;width:16px;height:16px;border-radius:50%;
  background:var(--bg);border:2px solid var(--line2)}
.ev.key::before{border-color:var(--accent);background:var(--accent-soft)}
.ev .yr{font-family:var(--font);font-size:17px;font-weight:700;color:var(--accent);letter-spacing:.02em}
.ev .ttl{font-size:16.5px;font-weight:600;color:var(--text);margin-top:1px}
.ev .txt{font-size:15.5px;color:var(--text2);margin-top:5px;max-width:620px}
.ev .coin{display:inline-block;margin-top:9px;font-size:11.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-d);
  border-radius:999px;padding:3px 11px}

/* ---------------------------------------------------------------- coin picker + reader */
.picker{margin-top:34px}
.picker .label{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--text3);
  margin-bottom:14px}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{appearance:none;font:inherit;font-size:15px;font-weight:600;cursor:pointer;
  background:var(--card);color:var(--text2);border:1px solid var(--line);border-radius:999px;
  padding:9px 17px;transition:border-color .14s,color .14s,background .14s}
.chip:hover{border-color:var(--accent-d);color:var(--text)}
.chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.chip .sym{color:var(--text3);font-weight:500;margin-left:6px}
.chip[aria-pressed="true"] .sym{color:var(--accent-d)}

.read{margin-top:40px}
.readhead{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding-bottom:18px;
  border-bottom:1px solid var(--line)}
.readhead .name{font-family:var(--font);font-size:clamp(28px,4.6vw,40px);font-weight:700;letter-spacing:-.3px}
.readhead .price{font-size:21px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
/* Direction is stated in words, never coloured. See the note at the top of app.js. */
.readhead .dir{font-size:15.5px;color:var(--text2);font-variant-numeric:tabular-nums}
.readhead .asof{margin-left:auto;font-size:12.5px;color:var(--text3)}

.obs{margin-top:16px;background:var(--card);border:1px solid var(--line);border-left:2px solid var(--accent);
  border-radius:var(--radius);padding:24px 26px}
.obs .concept{font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);
  margin-bottom:11px}
.obs .fact{font-size:17px;color:var(--text);margin-bottom:14px}
.obs .teaches{font-size:15.5px;color:var(--text2);padding-top:14px;border-top:1px solid var(--line)}
.obs .teaches b{color:var(--text);font-weight:600}

.quiet{margin-top:26px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 28px}
.quiet .q{font-family:var(--font);font-size:26px;font-weight:700;margin-bottom:10px}
.quiet p{font-size:16px;color:var(--text2);max-width:560px}

.loading,.err{margin-top:34px;font-size:16px;color:var(--text3)}
.err{color:var(--text2);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}
.err b{color:var(--text);font-weight:600}

/* ---------------------------------------------------------------- footer */
/* The disclaimer is set in readable body grey, not the dimmest tone on the page. A "this is not
   advice" line that has to be squinted at reads as something being hidden. */
.footnote{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);font-size:14.5px;
  color:var(--text2);max-width:640px}
.footnote b{color:var(--text);font-weight:600}

footer{border-top:1px solid var(--line);padding:24px 0 42px;font-size:13.5px;color:var(--text3)}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
footer a{color:inherit;text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:3px}
footer a:hover{color:var(--text2)}

.cta{appearance:none;font:inherit;font-size:15px;font-weight:600;cursor:pointer;margin-top:26px;
  background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-d);border-radius:999px;
  padding:11px 22px;transition:background .14s}
.cta:hover{background:rgba(107,179,70,.22)}

@media (max-width:520px){
  .tabs{gap:0}
  .tab{padding:11px 11px;font-size:13.5px;gap:7px}
}
@media (prefers-reduced-motion: no-preference){
  .obs,.quiet{animation:rise .4s ease backwards}
  .obs:nth-child(2){animation-delay:.05s}
  .obs:nth-child(3){animation-delay:.1s}
  .obs:nth-child(4){animation-delay:.15s}
}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------------------------------------------------------------- focus price chart */
.chart{margin-top:30px}
.c-ranges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.c-range{appearance:none;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;
  background:var(--card);color:var(--text2);border:1px solid var(--line);border-radius:999px;
  padding:7px 15px;transition:border-color .14s,color .14s,background .14s}
.c-range:hover{border-color:var(--accent-d);color:var(--text)}
.c-range[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.c-title{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--text3)}
.c-asof{margin-left:auto;font-size:12.5px;color:var(--text3)}
.c-plot{position:relative;margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 10px 6px}
.c-plot svg{width:100%;height:auto;display:block;touch-action:none}
.c-grid{stroke:var(--line);stroke-width:1}
.c-ax{fill:var(--text3);font-family:'Inter',sans-serif;font-size:12px;font-variant-numeric:tabular-nums}
.c-tag{fill:var(--text2);font-family:'Inter',sans-serif;font-size:12.5px;font-weight:600}
.c-line{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.c-end{stroke:var(--card);stroke-width:2}
.c-hover[hidden]{display:none}
.c-cross{stroke:var(--text3);stroke-width:1;stroke-dasharray:3 3}
.c-dot{stroke:var(--card);stroke-width:2}
.c-tip{position:absolute;pointer-events:none;background:var(--soft);border:1px solid var(--line2);border-radius:8px;
  padding:8px 11px;font-size:12.5px;line-height:1.5;color:var(--text2);white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.c-tip>span{display:block;color:var(--text3);font-size:11.5px;margin-bottom:3px}
.c-tip div{display:flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums}
.c-tip i{display:inline-block;width:8px;height:8px;border-radius:2px;flex:none}
.c-tip b{color:var(--text);margin-left:auto;padding-left:10px}
.c-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 18px;margin-top:14px}
.c-key{display:grid;grid-template-columns:auto auto 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:baseline;font-size:14px}
.c-key i{width:10px;height:10px;border-radius:3px;display:inline-block;grid-row:1;align-self:center}
.c-key-name{font-weight:600;color:var(--text)}
.c-key-price{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;text-align:right}
.c-key-chg{grid-column:2 / span 2;font-size:12.5px;color:var(--text2)}
.c-note{margin-top:10px;font-size:13px;color:var(--text3);max-width:640px}
@media (max-width:560px){
  .c-asof{width:100%;margin-left:0;margin-top:4px}
  .c-range{padding:6px 11px;font-size:12.5px}
  .c-ranges{gap:5px}
  .c-ax{font-size:14px}
  .c-tag{font-size:14px}
}

/* ---------------------------------------------------------------- make a coin: disclosure + lead form */
.disclosure{margin-top:14px;font-size:14.5px;color:var(--text2);max-width:660px;padding:14px 18px;
  border:1px dashed var(--line2);border-radius:var(--radius)}
.lead{margin-top:22px;display:grid;gap:14px;max-width:560px}
.lead label{display:grid;gap:6px;font-size:13.5px;font-weight:600;color:var(--text2)}
.lead input,.lead textarea,.lead select{font:inherit;font-size:15px;color:var(--text);background:var(--card);
  border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}
.lead input:focus,.lead textarea:focus,.lead select:focus{outline:none;border-color:var(--accent)}
.lead textarea{resize:vertical;min-height:80px}
.lead .check{grid-template-columns:auto 1fr;align-items:start;font-weight:500;color:var(--text2);font-size:14.5px}
.lead .check input{width:auto;margin-top:3px;accent-color:var(--accent)}
.lead .cta{justify-self:start;margin-top:4px}
.lead-status{font-size:14px;color:var(--text2);min-height:1.5em}
