/* ============================================================
   HurdleCalls v3: rounded, smooth, animated layer.
   Loaded after app.css. Same locked palette from the logo
   (navy #0A1A45, royal #1F45C8, gold #D9A93A).
   ============================================================ */
:root {
  --radius: 18px;
  --radius-sm: 12px;
  --radius-lg: 28px;
  --shadow-sm: 0 1px 2px rgba(6,15,41,.04), 0 4px 12px rgba(6,15,41,.04);
  --shadow: 0 2px 6px rgba(6,15,41,.05), 0 18px 44px -14px rgba(6,15,41,.18);
  --shadow-lg: 0 6px 16px rgba(6,15,41,.18), 0 40px 90px -24px rgba(6,15,41,.55);
}

/* Buttons: pill, springy */
.btn { border-radius: 999px; min-height: 48px; padding: 12px 24px; transition: transform .3s var(--ease), background-color .25s, border-color .25s, color .25s, box-shadow .3s var(--ease); }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(.98); }
.btn-gold { box-shadow: 0 10px 26px -10px rgba(217,169,58,.7); }
.btn-gold:hover { box-shadow: 0 16px 34px -10px rgba(217,169,58,.85); }
.btn-primary:hover { box-shadow: 0 14px 30px -12px rgba(31,69,200,.7); }
.btn-sm { min-height: 42px; padding: 8px 18px; }
.btn-lg { min-height: 56px; padding: 15px 30px; }

/* Feed strip */
.feedstrip-label { border-radius: 0 999px 999px 0; }
.feed-dot { border-radius: 50%; }

/* Nav */
.nav { background: rgba(255,255,255,.97); border-bottom-color: transparent; transition: border-color .3s, box-shadow .3s; view-transition-name: site-nav; }
.nav.is-scrolled { border-bottom-color: var(--line); box-shadow: 0 10px 28px -18px rgba(6,15,41,.35); }
.nav-links { gap: 4px; }
.nav-links a { padding: 9px 16px; border-radius: 999px; transition: background-color .2s, color .2s; }
.nav-links a:hover { background: var(--cloud); }
.nav-links a.active { background: var(--navy-800); color: #fff; }
.nav-links a.active::after { display: none; }

/* Hero: rounded stage inset from the edges */
.hero { margin: 12px 12px 0; border-radius: 36px; }
.hero::after {
  content: ''; position: absolute; right: -10%; top: -30%; width: 70%; height: 130%; z-index: -1; pointer-events: none;
  background: radial-gradient(closest-side, rgba(31,69,200,.35), transparent 70%);
  opacity: .7;
}
.hero h1 { font-size: clamp(2.8rem, 6.2vw, 5.2rem); }
.eyebrow::before { border-radius: 50%; }
.hero-meta { border-top: 0; gap: 12px; }
.hero-meta > div { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 18px; padding: 14px 18px; margin: 0; }
.hero-meta > div:last-child { border: 1px solid rgba(255,255,255,.1); }

/* On-air ticket */
.onair { border-radius: 28px; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.onair:hover { transform: translateY(-4px) rotate(-.4deg); }
.onair-top { border-radius: 0; }
.countdown { border-radius: 18px; gap: 8px; border: 0; }
.countdown > div { background: var(--mist); border-radius: 14px; border: 0; }
.countdown b { display: block; }
.countdown b.tick { animation: hc-tick .45s var(--ease); }
@keyframes hc-tick { from { opacity: .2; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.meter-bar { height: 8px; border-radius: 8px; }
.meter-bar i { border-radius: 8px; background: linear-gradient(90deg, var(--royal-700), var(--royal-500)); transform-origin: left center; }
.stub { border-top-style: dashed; }
.tally.is-live i { animation: hc-pulse 1.6s ease-out infinite; }
@keyframes hc-pulse { 0% { box-shadow: 0 0 0 0 rgba(229,72,77,.55); } 100% { box-shadow: 0 0 0 10px rgba(229,72,77,0); } }
.tally i { animation: hc-breathe 2.4s ease-in-out infinite; }
@keyframes hc-breathe { 50% { opacity: .45; } }

/* Trust bar becomes rounded chips under the hero */
.trustbar { background: transparent; border-top: 0; margin-top: 16px; }
.trustbar-inner { gap: 12px; }
.trustbar-inner > span { background: var(--navy-800); color: #c6d0e8; border-radius: 18px; padding: 18px 20px; margin: 0; border: 0; }
.trustbar-inner > span:last-child { border: 0; }

/* Rundown rows as rounded cards */
.rundown { border-top: 0; display: grid; gap: 12px; }
.run { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 24px 28px; box-shadow: var(--shadow-sm); transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s; }
.run:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: #c9d4ea; background: #fff; }
.band .run:hover { background: #fff; }
.run-when { background: var(--mist); border-radius: 16px; padding: 12px 14px; }
.token-pill { border-radius: 999px; }
.badge-status { border-radius: 999px; }
.spot::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(31,69,200,.07), transparent 60%);
}
.spot:hover::before { opacity: 1; }

/* Token ticket: rounded tear-off */
.ticket { border-radius: 28px; box-shadow: var(--shadow); overflow: visible; }
.ticket > .step { transition: background-color .3s; }
.ticket > .step:first-child { border-radius: 28px 0 0 28px; }
.ticket > .step:last-child { border-radius: 0 28px 28px 0; }
.ticket > .step:hover { background: var(--mist); }
.step-num { font-size: .78rem; }
.step-num::after { border-radius: 2px; }
.step { border-radius: 22px; }

/* About split */
.split-visual { border-radius: 28px; }
.statline { border-top: 0; gap: 10px; }
.statline .s { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 14px 18px; margin: 0; }
.statline .s:last-child { border: 1px solid var(--line); }
.band .statline .s { background: #fff; }

/* Desk feed as rounded cards */
.feed-grid { border-top: 0; gap: 14px; }
.post { background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 22px 24px; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.post:hover { transform: translateY(-3px); box-shadow: var(--shadow); }

/* CTA + footer */
.cta-band { border-radius: 36px; }
.cta-band::after { border-radius: 50%; }
.footer { border-radius: 36px 36px 0 0; margin-top: 24px; }
.scope-cta { border-radius: 20px; }

/* Forms, panels, dashboard */
.panel { border-radius: 24px; }
.field input, .field select, .field textarea { border-radius: 14px; }
.alert { border-radius: 14px; }
.auth-aside { border-radius: 0 36px 36px 0; }
.dash-head, .detail-hero { margin: 12px 12px 0; border-radius: 32px; }
.balance-card { border-radius: 20px; }
.bundle { border-radius: 22px; }
.bundle .badge { border-radius: 999px; }
.balance-line { border-radius: 14px; }
.pill { border-radius: 999px; }
.seat-row .rm { border-radius: 50%; }

/* Motion: scroll-scrubbed reveals on repeated blocks */
@supports (animation-timeline: view()) {
  .run, .post, .ticket > .step, .panel, .bundle, .reg-item, .statline .s {
    animation: fxm-rise linear both; animation-timeline: view(); animation-range: entry 5% cover 25%;
  }
  .meter-bar i { animation: fxm-grow linear both; animation-timeline: view(); animation-range: entry 10% cover 40%; }
}
@media (prefers-reduced-motion: reduce) {
  .run, .post, .ticket > .step, .panel, .bundle, .reg-item, .statline .s, .meter-bar i,
  .tally i, .countdown b.tick, .onair { animation: none !important; transform: none !important; }
}

@media (max-width: 940px) {
  .ticket > .step:first-child { border-radius: 28px 28px 0 0; }
  .ticket > .step:last-child { border-radius: 0 0 28px 28px; }
  .trustbar-inner > span:nth-child(odd) { border: 0; }
  .auth-aside { border-radius: 0; }
}
@media (max-width: 640px) {
  .hero, .dash-head, .detail-hero { margin: 8px 8px 0; border-radius: 28px; }
  .run { padding: 20px; border-radius: 20px; }
  .run-when { display: inline-block; }
  .trustbar-inner > span { border-bottom: 0; }
  .cta-band { border-radius: 28px; }
  .footer { border-radius: 28px 28px 0 0; }
  .hero-meta > div { padding: 10px 14px; }
}

/* No pill shapes (house rule, 2026-09-30): squared controls, 4px tags. */
.btn, .btn-sm, .btn-lg { border-radius: 6px; }
.nav-links a { border-radius: 6px; }
.token-pill, .badge-status, .pill, .bundle .badge, .tag-live, .tag-placeholder { border-radius: 4px; }
.feedstrip-label { border-radius: 0; }
.seat-row .rm { border-radius: 6px; }

/* No small uppercase tags (2026-09-30): the cover note reads as plain text. */
.run .note { font-family: var(--font-sans); font-size: .88rem; letter-spacing: 0; text-transform: none; color: var(--gold-800); font-weight: 600; }
