/* ═══ SHELL: nav, hero, footer ═══
   No motion beyond hover states. Breakpoints are defined first and the layout is
   built to them, rather than desktop being patched afterwards. */

.page-body{position:relative}

/* ── nav ─────────────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  border-bottom:1px solid transparent;
  transition:background .3s ease,border-color .3s ease
}
.nav.stuck{background:rgba(5,17,26,.94);backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:var(--line)}
.nav-in{
  max-width:var(--max);margin:0 auto;padding:var(--s4) var(--gut);
  display:flex;align-items:center;gap:var(--s5);min-height:76px
}
.brand{display:flex;align-items:center;gap:var(--s3);flex:none}
.brand img{width:38px;height:38px;border-radius:3px;flex:none}
.brand .bt{display:block;min-width:0}
.brand b{
  display:block;font-family:'Playfair Display',serif;font-size:15px;font-weight:600;
  line-height:1.15;white-space:nowrap
}
.brand i{
  display:block;font-style:normal;font-family:'DM Mono',monospace;font-size:9px;
  letter-spacing:.2em;color:var(--dim);text-transform:uppercase;margin-top:3px;white-space:nowrap
}
.nav-links{display:flex;gap:var(--s6);margin-left:auto;align-items:center}
.nav-links a{position:relative;font-size:13.5px;color:var(--mid);padding-block:6px;transition:color .25s ease}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .3s ease}
.nav-links a:hover,.nav-links a.on{color:var(--txt)}
.nav-links a:hover::after,.nav-links a.on::after{width:100%}
.nav-cta{flex:none}

.burger{
  display:none;width:42px;height:42px;border:1px solid var(--line);background:none;
  cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  margin-left:auto;flex:none
}
.burger i{display:block;width:16px;height:1px;background:var(--txt);transition:transform .25s ease,opacity .25s}
.burger.x i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.burger.x i:nth-child(2){opacity:0}
.burger.x i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

.drawer{
  position:fixed;inset:0;z-index:55;background:var(--ink);
  display:flex;flex-direction:column;justify-content:center;gap:var(--s1);
  padding:var(--gut);transform:translateY(-100%);transition:transform .35s ease
}
.drawer.open{transform:none}
.drawer a{
  font-family:'Playfair Display',serif;font-size:clamp(26px,6vw,40px);
  padding-block:var(--s3);border-bottom:1px solid var(--line-2)
}

/* ── hero ────────────────────────────────────────────────────
   A composed still, not a stage for animation. The ground is a fine
   navy gradient with a faint rule grid, drawn in CSS only. */
.hero{
  position:relative;
  padding-top:clamp(140px,20vh,210px);
  padding-bottom:clamp(64px,10vh,120px);
  background:
    radial-gradient(120% 90% at 78% 18%, rgba(27,79,114,.30) 0%, transparent 62%),
    radial-gradient(80% 70% at 8% 92%, rgba(201,168,76,.07) 0%, transparent 60%),
    linear-gradient(180deg,#061722 0%,#05111a 68%);
  overflow:hidden
}
.hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(201,168,76,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(201,168,76,.05) 1px,transparent 1px);
  background-size:88px 88px;
  -webkit-mask-image:radial-gradient(90% 80% at 60% 40%,#000 0%,transparent 78%);
          mask-image:radial-gradient(90% 80% at 60% 40%,#000 0%,transparent 78%)
}
.hero-in{position:relative;z-index:1;max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
.eyebrow{
  display:inline-flex;align-items:center;gap:var(--s3);
  border:1px solid var(--line);padding:9px 16px;margin-bottom:var(--s6)
}
.eyebrow span{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.eyebrow .dot{width:5px;height:5px;background:var(--gold);border-radius:50%;flex:none}
.hero h1{margin-bottom:var(--s5);max-width:15ch}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero .lede{margin-bottom:var(--s7)}
.hero-act{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center}
.hero-figs{
  display:grid;grid-template-columns:repeat(3,auto);justify-content:start;
  gap:clamp(32px,6vw,88px);margin-top:clamp(48px,7vw,88px);
  padding-top:var(--s5);border-top:1px solid var(--line)
}
.hero-figs .v{font-family:'Playfair Display',serif;font-size:clamp(28px,3.2vw,44px);line-height:1}
.hero-figs .v em{font-style:normal;color:var(--gold)}
.hero-figs .k{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-top:var(--s2)}

/* ── market strip ────────────────────────────────────────────
   The one moving element on the page, because a ticker that does not
   tick reads as broken. Two identical runs sit side by side and the
   track translates exactly -50%, so the loop has no seam. */
.strip{
  border-block:1px solid var(--line);background:rgba(255,255,255,.015);
  overflow:hidden;position:relative
}
/* the ends fade rather than hard-cut at the viewport edge */
.strip::before,.strip::after{
  content:'';position:absolute;top:0;bottom:0;width:clamp(40px,8vw,120px);z-index:2;pointer-events:none
}
.strip::before{left:0;background:linear-gradient(90deg,var(--ink),transparent)}
.strip::after{right:0;background:linear-gradient(270deg,var(--ink),transparent)}

.strip-track{display:flex;width:max-content;animation:tick 48s linear infinite}
.strip:hover .strip-track{animation-play-state:paused}
@keyframes tick{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

.strip-run{display:flex;align-items:center;flex:none;padding-block:var(--s4)}
.strip .q{
  font-family:'DM Mono',monospace;font-size:11.5px;letter-spacing:.04em;
  white-space:nowrap;padding-inline:clamp(18px,2.4vw,34px);
  border-right:1px solid var(--line-2)
}
.strip .q b{color:var(--dim);font-weight:400;margin-right:9px}
.strip .q i{font-style:normal}
.strip .q i.up{color:var(--up)} .strip .q i.dn{color:var(--down)}

@media (prefers-reduced-motion:reduce){
  .strip-track{animation:none}
}

/* ── footer ──────────────────────────────────────────────── */
.foot{background:var(--ink-2);border-top:1px solid var(--line)}
.foot-in{max-width:var(--max);margin:0 auto;padding:clamp(56px,8vw,var(--s9)) var(--gut) var(--s6)}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(32px,5vw,var(--s7));padding-bottom:clamp(40px,6vw,var(--s8))}
.foot h4{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:var(--s4);font-weight:400}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:var(--s3)}
.foot li a{font-size:14px;color:var(--mid);transition:color .25s ease}
.foot li a:hover{color:var(--gold)}
.foot-bot{
  display:flex;justify-content:space-between;gap:var(--s5);flex-wrap:wrap;
  padding-top:var(--s5);border-top:1px solid var(--line-2);
  font-family:'DM Mono',monospace;font-size:11px;color:var(--dim);letter-spacing:.05em
}

/* ── inner page heads ────────────────────────────────────── */
.phead{
  padding-top:clamp(130px,18vh,200px);padding-bottom:clamp(40px,6vw,72px);
  border-bottom:1px solid var(--line)
}
.phead h1{font-size:clamp(36px,5.2vw,72px);margin-block:var(--s4) var(--s5);max-width:18ch}

/* ═══ BREAKPOINTS ═══════════════════════════════════════════
   TABLET  ≤1024   nav collapses, two columns
   MOBILE  ≤640    single column throughout
   ═════════════════════════════════════════════════════════ */

@media (max-width:1024px){
  .nav-links,.nav-cta{display:none}
  .burger{display:flex}
  .nav-in{min-height:68px}
  .foot-top{grid-template-columns:1fr 1fr;gap:var(--s6)}
  .foot-top>div:first-child{grid-column:1/-1}
}

@media (max-width:640px){
  .brand img{width:34px;height:34px}
  .brand b{font-size:13.5px}
  .brand i{font-size:8px}
  .hero{padding-top:clamp(118px,17vh,150px)}
  .hero h1{max-width:none}
  .hero .lede{margin-bottom:var(--s6)}
  .hero-act{gap:var(--s2)}
  .hero-act .btn{width:100%;justify-content:center}
  .hero-figs{grid-template-columns:1fr;gap:var(--s4);justify-content:stretch}
  .hero-figs>div{display:flex;align-items:baseline;gap:var(--s4);
    padding-bottom:var(--s4);border-bottom:1px solid var(--line-2)}
  .hero-figs .v{font-size:26px;min-width:76px}
  .hero-figs .k{margin-top:0}
    .foot-top{grid-template-columns:1fr}
  .foot-bot{flex-direction:column;gap:var(--s2)}
}

/* very short viewports: the nav must never crowd the headline */
@media (max-height:640px) and (min-width:641px){
  .hero{padding-top:132px;padding-bottom:56px}
}

/* ── candlestick chart ───────────────────────────────────────
   A designed graphic, built entirely from CSS boxes: no SVG, no canvas,
   no motion. Each candle sets its own body height, wick length and offset
   through custom properties, so the series is authored in the markup and
   the rendering stays declarative. */
.chart{
  position:relative;
  border:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,255,255,.022),rgba(255,255,255,0));
  padding:var(--s5) var(--s5) 0
}
.chart-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);
  padding-bottom:var(--s5);border-bottom:1px solid var(--line-2);margin-bottom:var(--s5)
}
.chart-head .t{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.chart-head .v{font-family:'DM Mono',monospace;font-size:12px;color:var(--up)}

/* gridlines sit behind the series */
.plot{position:relative;height:clamp(180px,24vw,268px)}
.plot::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(242,240,234,.055) 1px,transparent 1px);
  background-size:100% 25%
}
.candles{position:absolute;inset:0;display:flex;align-items:flex-end;gap:clamp(3px,.7vw,7px)}
.c{position:relative;flex:1;min-width:0;height:calc(var(--h) * 1%);align-self:flex-end;
   margin-bottom:calc(var(--o) * 1%)}
/* the wick, drawn from the body's centre */
.c::before{
  content:'';position:absolute;left:50%;transform:translateX(-50%);
  width:1px;height:calc(var(--w) * 1%);bottom:-10%;
  background:currentColor;opacity:.5
}
.c::after{content:'';position:absolute;inset:0;background:currentColor;opacity:.9}
.c.up{color:var(--up)}
.c.dn{color:var(--down)}

.chart-foot{
  display:flex;justify-content:space-between;gap:var(--s4);
  padding:var(--s4) 0;margin-top:var(--s5);border-top:1px solid var(--line-2);
  font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)
}

/* hero becomes a two-column composition once there is room for the chart */
@media (min-width:1025px){
  .hero-in{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.84fr);
    gap:clamp(40px,5vw,88px);align-items:center}
  .hero-figs{grid-column:1/-1}
}
@media (max-width:1024px){
  .chart{margin-top:var(--s7)}
}
@media (max-width:640px){
  .chart{padding:var(--s4) var(--s4) 0}
  .plot{height:150px}
  .c::before{display:none}   /* wicks read as noise at this width */
}

/* ── chart interaction ───────────────────────────────────────
   Hovering a candle dims the rest and surfaces its OHLC. Pointer-driven
   only, so it costs nothing until used and disappears on touch. */
.plot{cursor:crosshair}
.candles:hover .c{opacity:.28;transition:opacity .18s ease}
.candles .c:hover{opacity:1}
.c{transition:opacity .18s ease}

/* crosshair rule that follows the hovered candle */
.c::marker{content:''}
.candles .c:hover::before{opacity:1;background:currentColor}

/* positioned from JS via transform, so only opacity is transitioned here:
   animating transform too would make the panel lag the cursor. */
.readout{
  position:absolute;top:0;left:0;z-index:5;pointer-events:none;
  border:1px solid var(--line);background:rgba(5,17,26,.96);
  padding:var(--s3) var(--s4);min-width:150px;
  opacity:0;transition:opacity .16s ease
}
.readout.on{opacity:1}
.readout .r{display:flex;justify-content:space-between;gap:var(--s4);
  font-family:'DM Mono',monospace;font-size:11px;line-height:1.9}
.readout .r span:first-child{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;font-size:9.5px}
.readout .r span:last-child{color:var(--txt)}
.readout .chg.up{color:var(--up)} .readout .chg.dn{color:var(--down)}
.readout .sess{
  font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);padding-bottom:var(--s2);margin-bottom:var(--s2);border-bottom:1px solid var(--line-2)
}
@media (hover:none){ .readout{display:none} .candles:hover .c{opacity:1} }

/* ── FAQ accordions ──────────────────────────────────────── */
.qas{border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line-2)}
.qa summary{
  list-style:none;cursor:pointer;padding:var(--s5) 0;padding-right:var(--s7);
  font-size:17px;position:relative;transition:color .25s ease
}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{color:var(--gold)}
.qa summary::after{
  content:'';position:absolute;right:6px;top:50%;width:11px;height:1px;background:currentColor;
  transition:transform .28s var(--ease)
}
.qa summary::before{
  content:'';position:absolute;right:11px;top:50%;width:1px;height:11px;background:currentColor;
  margin-top:-5px;transition:transform .28s var(--ease),opacity .28s
}
.qa[open] summary::before{transform:rotate(90deg);opacity:0}
.qa[open] summary{color:var(--gold)}
.qa p{padding-bottom:var(--s5);max-width:70ch}

/* ── forms ───────────────────────────────────────────────── */
.form{max-width:720px;display:flex;flex-direction:column;gap:var(--s5)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5)}
.form label{
  display:flex;flex-direction:column;gap:var(--s2);
  font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--dim)
}
.form label span{color:var(--gold)}
.form input,.form select,.form textarea{
  width:100%;background:rgba(255,255,255,.035);border:1px solid var(--line);
  padding:14px 15px;color:var(--txt);
  font:400 15px/1.5 'DM Sans',sans-serif;letter-spacing:0;text-transform:none;
  transition:border-color .25s ease,background .25s ease
}
.form textarea{resize:vertical}
.form select{appearance:none;cursor:pointer}
.form select option{background:var(--ink-2);color:var(--txt)}
.form input:focus,.form select:focus,.form textarea:focus{
  outline:none;border-color:var(--gold);background:rgba(255,255,255,.05)
}
.form input[aria-invalid="true"],.form select[aria-invalid="true"],.form textarea[aria-invalid="true"]{border-color:var(--down)}
.form button{align-self:flex-start;margin-top:var(--s2)}
.fmsg{font-size:14px;min-height:1.2em}
.fmsg.ok{color:var(--up)} .fmsg.bad{color:var(--down)}
@media(max-width:640px){ .frow{grid-template-columns:1fr} .form button{width:100%;justify-content:center} }
