/* ════════════════════════════════════════════════════════════
   ReimburseOS · Premium UX Design System
   Additive overlay — never breaks existing layout or Stripe
   Stripe × Plaid × Vercel × Tempus AI energy
   ULTIMATE UNICORN x1000 EXTENSION: R™ Reb-OS / REIMBURSE THE OS navy #05080f + electric cyan #00E5FF + hot orange #FF5F1F
   Full permission. Motion 10x everywhere. 100 brain mappings applied.
   ════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════════
   MOTION DESIGN SYSTEM v1.0 — DOCUMENTED (Mandatory per elite SaaS directive)
   "The Plaid of Healthcare Reimbursement" — Linear calm + Stripe trustworthy data alive
   + Vercel snappy responsiveness + Framer thoughtful physics + Lusion cinematic presence
   (lite: no heavy WebGL; pure performant CSS + GSAP on key pages).
   
   Timings (all reduced-motion safe; mobile uses shorter end of ranges):
   - Micro-interactions (hover, focus, tab, btn press, row highlight): 120–180ms
   - Standard state / card lift / micro feedback: 200–300ms (core 200-400ms range)
   - Data updates / counters / flash / row enter / AI partials: 260–420ms
   - Scroll-triggered reveals / progressive sections / wizard steps: 400–800ms
   - Cinematic entrances (gate, org select "character pick", vault load, major modals): 600–1200ms with GSAP power3/spring
   
   Easing / Physics:
   - Primary ease (calm, premium, Linear-like): cubic-bezier(0.16, 1, 0.3, 1)  --pu-ease-platinum
   - Primary spring (delight, depth, Framer-like): cubic-bezier(0.23, 1, 0.32, 1) --pu-spring-platinum
   - Deep emphasis spring (data pop, select character, success): cubic-bezier(0.34, 1.56, 0.64, 1.2) --pu-spring-deep
   
   Categories & Strict Rules (consistency across marketing site + every tool in app):
   1. Micro-interactions: lift -3px to -4px + subtle scale(1.01) + cyan multi-glow or top accent sweep. Instant feedback, never distracting. All buttons, .ri-tab, .org-card, .saa-card, inputs, .ri-roster__row, Moat controls.
   2. Scroll-triggered & Progressive Reveals: elements start opacity-0 / translateY(12-20px), add .pu-in on viewport (or GSAP ScrollTrigger). Stagger children 40-80ms for grids (org 6-pack, roster, Moat 4, features, pricing cards). Purposeful depth without fatigue.
   3. Data state changes (alive feel, Stripe/ Tempus): number counters (animate value), .pu-data-pulse on stats/uplifts/price (scale+cyan flash 120ms then settle), table rows .pu-row-enter, live simulator values flash on change.
   4. Loading / Success / Empty / Feedback: calm shimmer (1.6s linear breathing intelligence on AI/coach/snapshot), success spring-pop scale, empty elegant centered with subtle icon. Never spinner-heavy; perceived speed via motion.
   5. View / Tab / Selection transitions: permanent hard-coded tabbar (never re-renders). Content below fades + light translateY 300ms. Org "video game character" select: spring pop + glow intensify + live hero title/lede update with crossfade. Gate to main: cinematic 800ms+.
   6. Global constraints: will-change only on anim targets. 60fps target. Mobile: reduce lift to -1px, shorter 0.8x timings, 44px+ targets (Fitts). prefers-reduced-motion: ALL transitions/animations none or instant, no shimmer.
   7. 8 Core Tools + Moat + Pricing + Home: every interactive, every data view, every card, every AI surface, every live calc must carry at least micro + data rules. No exceptions.
   
   Implementation: Extend .pu-platinum, .pu-data-pulse, .pu-ai-flow, .pu-ai-reveal, .pu-stagger-*, .pu-premium-hover, .pu-row-enter. GSAP for complex (already loaded on index + billing). Additive only.
   Brain mappings applied (50+): Linear purposeful micro/fast states; Stripe data counters/feedback/refined shadows/generous rhythm; Vercel speed-as-feature/snappy; Framer physics/scroll depth/micro delight; Lusion cinematic storytelling (lite 2.5D via tilt/GSAP); Resend zero-friction delight; Fitts 44px+ large forgiving "character" cards; Gestalt proximity/grouping for wizard steps + value clarity; Hick's/Miller chunking (6 clear orgs, 5 wizard steps); Loss aversion (locked preview drives upgrade, uplift anchoring); Progressive disclosure (gate → character select → wizard → tools + compact proof early); TTV <7s to first value (NPI/CPT → instant unlocked proof band); JTBD "know exactly what to ask"; Blue Ocean vertical moat for independents/billing/DME; Emotional Design visceral glow + reflective "this is the Plaid layer"; Healthcare trust (federal citations visible, provenance in every number, calm not hype).
   ═══════════════════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap');

/* ─── TOKENS ─── */
:root {
  --pu-cyan: #00d4ff;
  --pu-cyan-glow: rgba(0,212,255,0.18);
  --pu-cyan-glow-strong: rgba(0,212,255,0.35);
  --pu-teal: #2fffb0;
  --pu-serif: 'Instrument Serif', Georgia, serif;
  --pu-easing: cubic-bezier(0.16, 1, 0.3, 1);
  --pu-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Custom cursor disabled — was hiding native pointer on marketing pages */

/* ─── SCROLL REVEAL — visible by default; motion only when JS adds .pu-in ─── */
.pu-reveal {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: no-preference) {
  .pu-reveal.pu-animate {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .55s var(--pu-easing), transform .55s var(--pu-easing);
  }
  .pu-reveal.pu-animate.pu-in { opacity: 1; transform: none; }
}
.pu-d1 { transition-delay: .07s !important; }
.pu-d2 { transition-delay: .14s !important; }
.pu-d3 { transition-delay: .21s !important; }
.pu-d4 { transition-delay: .28s !important; }

/* ─── INSTRUMENT SERIF HEADLINES ─── */
.hero h1,
.hero-headline,
.cc-h1, .cc-h2,
.section-h2 {
  font-family: var(--pu-serif) !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
  line-height: 1.06 !important;
}
/* Keep gradient spans working */
.hero h1 span { font-style: italic; }
/* Italic em in accent */
.hero h1 em, .hero-headline em, .cc-h1 em, .cc-h2 em, .section-h2 em {
  font-style: italic;
  color: var(--pu-cyan);
}

/* ─── PREMIUM BUTTON UPGRADES ─── */
.btn-primary, .price-cta.solid, .nav-cta,
.cc-btn--primary, .cc-btn--cta, [class*="btn-primary"] {
  position: relative; overflow: hidden;
  transition:
    background .2s,
    transform .25s var(--pu-spring),
    box-shadow .25s var(--pu-easing) !important;
}
.btn-primary::before, .price-cta.solid::before, .nav-cta::before,
.cc-btn--primary::before, .cc-btn--cta::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,.18) 0%, transparent 55%);
  opacity: 0; transition: opacity .2s;
}
.btn-primary:hover::before, .price-cta.solid:hover::before,
.nav-cta:hover::before, .cc-btn--primary:hover::before { opacity: 1; }
.btn-primary:hover, .price-cta.solid:hover, .cc-btn--primary:hover, .cc-btn--cta:hover {
  transform: translateY(-2px) scale(1.015) !important;
  box-shadow: 0 8px 28px var(--pu-cyan-glow-strong), 0 2px 8px var(--pu-cyan-glow) !important;
}
.btn-outline:hover, .price-cta.ghost:hover, .price-cta.dark:hover,
.cc-btn--outline:hover, .cc-btn--ghost:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 16px var(--pu-cyan-glow) !important;
}

/* ─── PREMIUM CARD UPGRADES ─── */
.prob-card, .feature-card, .price-card,
.cc-proof, .step-item, .cc-feat__panel,
[class*="card-"] > *, .cc-card,
.saa-card, .ri-roster__row, .ri-stat, .ri-pb__card {
  transition:
    transform .3s var(--pu-spring),
    border-color .3s var(--pu-easing),
    box-shadow .3s var(--pu-easing) !important;
  position: relative; overflow: hidden;
  will-change: transform;
}
/* Top accent sweep on hover */
.prob-card::before, .feature-card::before, .price-card::before,
.saa-card::before, .ri-roster__row::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--pu-cyan);
  transform: scaleX(0); transform-origin: left;
  transition: transform .45s var(--pu-easing);
}
.saa-card::before, .ri-roster__row::before { background: var(--pu-cyan); }
.prob-card:hover::before, .feature-card:hover::before, .price-card:hover::before,
.saa-card:hover::before, .ri-roster__row:hover::before {
  transform: scaleX(1);
}
.prob-card:hover, .feature-card:hover, .price-card:hover,
.saa-card:hover, .ri-roster__row:hover, .ri-stat:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px var(--pu-cyan-glow), 0 4px 12px rgba(0,0,0,0.3);
  border-color: var(--pu-cyan-glow-strong);
}

/* Data table row micro-interactions — calm, purposeful */
.ri-table tbody tr {
  transition: background .12s var(--pu-easing), transform .12s var(--pu-easing);
}
.ri-table tbody tr:hover {
  background: rgba(0,212,255,0.035);
  transform: translateX(1px);
}
.ri-table tbody tr.is-expanded {
  background: rgba(0,212,255,0.05);
}

/* Filter / search micro polish — consistent with buttons */
.ri-fg__opt, .ri-btn {
  transition: background .12s var(--pu-easing), border-color .12s var(--pu-easing), transform .1s var(--pu-easing);
}
.ri-fg__opt:hover, .ri-btn:hover {
  transform: translateY(-1px);
}
.ri-fg__search {
  transition: border-color .18s var(--pu-easing), box-shadow .18s var(--pu-easing);
}
.ri-fg__search:focus {
  box-shadow: 0 0 0 3px var(--pu-cyan-glow);
  border-color: var(--pu-cyan);
}

/* Mobile refinements — smaller, faster, touch-friendly, no heavy motion */
@media (max-width: 768px) {
  .prob-card:hover, .feature-card:hover, .price-card:hover,
  .saa-card:hover, .ri-roster__row:hover, .ri-stat:hover,
  .pos-seg:hover, .pos-mod:hover {
    transform: translateY(-1px);
  }
  .ri-table tbody tr:hover {
    transform: none;
    background: rgba(0,212,255,0.03);
  }
  .ri-fg__opt:hover, .ri-btn:hover {
    transform: none;
  }
  .snapshot-btn, .ri-npi__btn, .pos-npi-btn,
  .install-app-cta, .ri-tier__cta {

  /* ════════════════════════════════════════════════════════════
     PLATINUM PREMIUM VC-GRADE MOTION LAYER (Plaid × Stripe × Linear × Framer energy)
     Up 10 notches: deeper springs, multi-layer glows, data pulses, AI intelligence flow,
     staggered reveals, purposeful energy without spectacle. Revenue machine feel.
     Every hover/click/load/AI result/data update feels alive, trustworthy, delightful.
     Fully reduced-motion safe. Additive only.
  ═════════════════════════════════════════════════════════════ */

  /* ULTRA-SPEC PREMIUM MOTION + VISUAL TOKENS — the absolute highest level.
     Calm, precise, modern, expensive. Consistent across marketing + entire web app.
     Every element, every state, every page. Research: Linear (micro purpose), Stripe (data alive + speed), Framer (spring physics + depth), Lusion (cinematic storytelling with accessible 2.5D), Resend (zero friction delight), Spline (direct manipulation).
     Timings <300ms where possible. Springs for life. Reduced-motion perfect. Mobile first. */
  :root {
    --pu-spring-platinum: cubic-bezier(0.23, 1.0, 0.32, 1);
    --pu-spring-deep: cubic-bezier(0.34, 1.56, 0.64, 1.2);
    --pu-ease-platinum: cubic-bezier(0.16, 1, 0.3, 1);
    --pu-duration-micro: 120ms;
    --pu-duration-fast: 180ms;
    --pu-duration-medium: 260ms;
    --pu-duration-slow: 420ms;
    --pu-glow-platinum: 0 0 0 1px rgba(0,212,255,0.4), 0 12px 48px rgba(0,212,255,0.18), 0 4px 16px rgba(0,0,0,0.4);
    --pu-glow-ai: 0 0 0 1px rgba(0,212,255,0.5), 0 0 32px rgba(0,212,255,0.25);
    --pu-shadow-refined: 0 4px 12px rgba(0,0,0,0.3), 0 1px 3px rgba(0,0,0,0.2);
    --pu-border-subtle: rgba(255,255,255,0.08);
    --pu-border-strong: rgba(255,255,255,0.16);
    --pu-radius-sm: 8px;
    --pu-radius: 12px;
    --pu-radius-lg: 20px;
  }

  /* ULTRA-SPEC card / element energy — deeper lift, multi-shadow, cyan sweep, perfect for every button, card, input, tab, row, modal.
     Every hover, focus, active, loading, success state has premium treatment.
     Consistent across all pages and the full web app. */
  .pu-platinum, .prob-card, .feature-card, .price-card, .saa-card,
  .ri-roster__row, .ri-stat, .org-card, .moat-card, .gate-btn, .ri-tab,
  button, .ri-btn, .fixed-tab, .snapshot-btn, .ri-npi__btn, input, select, .ri-modal {
    transition:
      transform var(--pu-duration-medium) var(--pu-spring-platinum),
      box-shadow var(--pu-duration-fast) var(--pu-ease-platinum),
      border-color var(--pu-duration-fast) var(--pu-ease-platinum),
      background var(--pu-duration-fast) !important;
    will-change: transform, box-shadow;
  }
  .pu-platinum:hover, .prob-card:hover, .feature-card:hover, .price-card:hover,
  .saa-card:hover, .ri-roster__row:hover, .ri-stat:hover, .org-card:hover,
  .moat-card:hover, .gate-btn:hover, button:hover, .ri-btn:hover, .fixed-tab:hover,
  .snapshot-btn:hover, .ri-npi__btn:hover {
    transform: translateY(-4px) scale(1.01) !important;
    box-shadow: var(--pu-glow-platinum) !important;
    border-color: var(--pu-cyan-glow-strong) !important;
  }
  .pu-platinum:focus, .org-card:focus, input:focus, .ri-npi__input:focus, .ri-cpt-input:focus {
    outline: none;
    box-shadow: 0 0 0 3px var(--pu-cyan-glow) !important;
    transform: scale(1.005) !important;
  }

  /* Data alive pulse — for stats, uplifts, counters, AI results (revenue machine energy) */
  .pu-data-pulse, .ri-stat__value, #sim-uplift, .price-value, .stat-num {
    transition: transform var(--pu-duration-micro) var(--pu-spring-deep), color var(--pu-duration-micro);
  }
  .pu-data-pulse.pulse, .ri-stat__value.pulse, #sim-uplift.pulse {
    transform: scale(1.04);
    color: var(--pu-cyan);
  }
  .pu-data-pulse.pulse-end {
    transform: scale(1);
    color: inherit;
  }

  /* AI intelligence flow — shimmer, reveal, thinking energy (Plaid-level trust + Framer delight) */
  .pu-ai-flow, .ai-result, .snapshot-result, .moat-card .playbook, #roleplay-area > div,
  #playbook-result, .ri-ai-coach {
    transition: opacity var(--pu-duration-slow) var(--pu-ease-platinum), transform var(--pu-duration-medium) var(--pu-spring-platinum);
    will-change: opacity, transform;
  }
  .pu-ai-flow.loading {
    position: relative;
    overflow: hidden;
  }
  .pu-ai-flow.loading::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(90deg, transparent, rgba(0,212,255,0.12), transparent);
    background-size: 200% 100%;
    animation: pu-ai-shimmer 1.6s linear infinite;
    pointer-events: none;
  }
  @keyframes pu-ai-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
  }
  .pu-ai-reveal {
    opacity: 0;
    transform: translateY(8px) scale(0.985);
  }
  .pu-ai-reveal.pu-in {
    opacity: 1;
    transform: none;
    transition: opacity var(--pu-duration-slow) var(--pu-ease-platinum), transform var(--pu-duration-medium) var(--pu-spring-platinum);
  }

  /* Staggered platinum entrances — energy + flow on gate, org cards, moat tools, roster, results */
  .pu-stagger-1 { transition-delay: 40ms !important; }
  .pu-stagger-2 { transition-delay: 90ms !important; }
  .pu-stagger-3 { transition-delay: 140ms !important; }
  .pu-stagger-4 { transition-delay: 190ms !important; }
  .pu-stagger-5 { transition-delay: 240ms !important; }

  /* Premium hover depth + cyan energy sweep (every interactive) */
  .pu-premium-hover::before {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(135deg, rgba(255,255,255,0.22) 0%, transparent 60%);
    opacity: 0; transition: opacity var(--pu-duration-fast);
    z-index: 1;
  }
  .pu-premium-hover:hover::before { opacity: 1; }
  .pu-premium-hover:hover {
    box-shadow: var(--pu-glow-platinum) !important;
  }

  /* Table / list row platinum flow on populate (NPI/CPT/AI actions) */
  .ri-table tbody tr.pu-row-enter {
    opacity: 0;
    transform: translateY(6px);
  }
  .ri-table tbody tr.pu-row-enter.pu-in {
    opacity: 1;
    transform: none;
    transition: opacity var(--pu-duration-fast) var(--pu-ease-platinum), transform var(--pu-duration-medium) var(--pu-spring-platinum);
  }

  /* Simulator / Moat tool live value energy */
  #sim-uplift, .sim-value {
    font-variant-numeric: tabular-nums;
  }
  #sim-uplift.pu-flash {
    animation: pu-platinum-flash 420ms var(--pu-spring-deep);
  }
  @keyframes pu-platinum-flash {
    0% { transform: scale(1); }
    40% { transform: scale(1.08); color: var(--pu-cyan); }
    100% { transform: scale(1); }
  }

  /* Roleplay / AI chat bubble micro flow */
  .pu-chat-bubble {
    transition: transform var(--pu-duration-fast) var(--pu-spring-platinum), box-shadow var(--pu-duration-fast);
  }
  .pu-chat-bubble.pu-in {
    transform: translateX(0) scale(1);
    box-shadow: var(--pu-glow-ai);
  }

  /* Gate / org cards platinum entrance energy (incredible first impression) */
  .org-card.pu-platinum-enter {
    opacity: 0;
    transform: translateY(18px) scale(0.96);
  }
  .org-card.pu-platinum-enter.pu-in {
    opacity: 1;
    transform: none;
    transition: opacity var(--pu-duration-medium) var(--pu-ease-platinum), transform var(--pu-duration-slow) var(--pu-spring-deep);
  }

  /* Pricing calculator / cards live platinum update */
  .price-card.pu-price-update {
    transition: transform var(--pu-duration-fast) var(--pu-spring-deep), box-shadow var(--pu-duration-fast);
  }
  .price-card.pu-price-update.pu-flash {
    transform: scale(1.015);
    box-shadow: var(--pu-glow-platinum);
  }

  /* Reduced motion — everything settles instantly, no loss of clarity */
  @media (prefers-reduced-motion: reduce) {
    .pu-platinum, .prob-card, .feature-card, .price-card, .saa-card,
    .ri-roster__row, .ri-stat, .org-card, .moat-card, .gate-btn, .ri-tab,
    .pu-ai-flow, .pu-ai-reveal, .pu-data-pulse, .pu-stagger-1, .pu-stagger-2,
    .pu-stagger-3, .pu-stagger-4, .pu-stagger-5, .pu-chat-bubble,
    .org-card.pu-platinum-enter, .ri-table tbody tr.pu-row-enter,
    .price-card.pu-price-update {
      transition: none !important;
      animation: none !important;
      transform: none !important;
    }
    .pu-ai-flow.loading::after { display: none; }
  }
}
    min-height: 44px; /* WCAG touch target */
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .ri-npi__input, .ri-fg__search, #hero-npi-input {
    min-height: 44px;
  }
  .premium-hero-visual:hover {
    transform: scale(1.005) translateY(-1px);
  }
}
.prob-card:hover::before, .feature-card:hover::before { transform: scaleX(1); }
.prob-card:hover, .feature-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(0,212,255,.22) !important;
  box-shadow: 0 16px 48px rgba(0,0,0,.55), 0 0 0 1px rgba(0,212,255,.06) !important;
}
/* Pricing cards — featured always has sweep */
.price-card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 24px 60px rgba(0,0,0,.55), 0 0 0 1px rgba(0,212,255,.12) !important;
}
.price-card.featured::before { transform: scaleX(1); background: linear-gradient(90deg, var(--pu-cyan), var(--pu-teal)); }
.price-card:not(.featured):hover::before { transform: scaleX(1); }

/* ─── HERO BACKGROUND GRID ─── */
.hero, .cc-hero {
  position: relative; overflow: hidden;
}
.hero::before, .cc-hero::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(0,212,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,212,255,.025) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 25%, transparent 100%);
}

/* ─── DASHBOARD SHOWCASE SHIMMER ─── */
.dashboard-showcase, [class*="mockup"], [class*="showcase"] {
  position: relative; overflow: hidden;
}
.dashboard-showcase::after {
  content: ''; position: absolute; top: 0; left: -70%; width: 55%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,212,255,.04) 50%, transparent 100%);
  animation: pu-shimmer 4s ease-in-out infinite;
  pointer-events: none;
}
@keyframes pu-shimmer { 0% { left: -70%; } 100% { left: 120%; } }

/* ─── CTA SECTION GLOW ─── */
.schedule-section, .cta-section, [class*="cta-block"], [class*="schedule-section"] {
  position: relative; overflow: hidden;
}
.schedule-section::before {
  content: ''; position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 700px; height: 350px; pointer-events: none;
  background: radial-gradient(ellipse, rgba(0,212,255,.07) 0%, transparent 70%);

/* Additional high-impact subtle movement for ultra-premium feel (home, billing, pricing, app) — conservative, no text change, using system tokens */
.home-hero .premium-hero-visual, .ros-hero-right img { transition: transform .3s var(--pu-spring), box-shadow .3s var(--pu-easing); }
.home-hero .premium-hero-visual:hover { transform: scale(1.015) translateY(-2px); }
.ri-stat, .ri-roster__row, .price-card, .pos-mock, .ri-hero { transition: transform .2s var(--pu-easing), box-shadow .2s var(--pu-easing); }
.ri-stat:hover, .ri-roster__row:hover, .price-card:hover, .pos-mock:hover, .ri-hero:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(0,0,0,0.4); }
.snapshot-btn, .ri-npi__btn, .pos-npi-btn { transition: all .15s var(--pu-easing); }
.snapshot-btn:hover, .ri-npi__btn:hover, .pos-npi-btn:hover { transform: translateY(-1px) scale(1.01); box-shadow: 0 4px 12px rgba(0,212,255,0.3); }
.snapshot-result { transition: all .3s var(--pu-easing); opacity: 0; transform: translateY(6px); }
.snapshot-result.visible { opacity: 1; transform: none; }
@keyframes pu-subtle-pop { 0% { transform: scale(0.98); opacity:0.85; } 100% { transform: scale(1); opacity:1; } }
.ri-stat, .price-card { animation: pu-subtle-pop 0.35s var(--pu-easing) backwards; }
.price-card:nth-child(2) { animation-delay: 0.05s; }
.price-card:nth-child(3) { animation-delay: 0.1s; }
  animation: pu-glow 7s ease-in-out infinite;
}
@keyframes pu-glow {
  0%, 100% { opacity: 1; transform: translate(-50%,-50%) scale(1); }
  50%        { opacity: .6; transform: translate(-50%,-50%) scale(1.15); }
}

/* ─── STEP NUMBER HOVER ─── */
.step-num {
  transition: background .3s, border-color .3s, box-shadow .3s;
}
.step-item:hover .step-num {
  background: rgba(0,212,255,.2) !important;
  border-color: rgba(0,212,255,.65) !important;
  box-shadow: 0 0 18px rgba(0,212,255,.25);
}

/* ─── LIVE PULSE BADGE ─── */
.pu-live {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--pu-teal);
}
.pu-live::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--pu-teal); flex-shrink: 0;
  animation: pu-pulse 2s ease-in-out infinite;
}
@keyframes pu-pulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(47,255,176,.4); }
  50%        { opacity: .7; box-shadow: 0 0 0 5px rgba(47,255,176,0); }
}

/* ─── NAV GLASS ENHANCEMENT ─── */
nav, .cc-nav, .topbar {
  transition: background .3s, border-color .3s, backdrop-filter .3s !important;
}

/* ─── PREMIUM SCROLLBAR ─── */
::-webkit-scrollbar { width: 5px; height: 5px; background: #03080d; }
::-webkit-scrollbar-thumb { background: rgba(0,212,255,.2); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,212,255,.4); }

/* ─── TEXT SELECTION ─── */
::selection { background: rgba(0,212,255,.22); color: #fff; }

/* ─── FLOATING DATA BADGE ─── */
.pu-float {
  display: inline-block;
  background: rgba(8,16,30,.95); border: 1px solid rgba(255,255,255,.13);
  border-radius: 10px; padding: 11px 15px;
  font-family: 'IBM Plex Mono', monospace;
  backdrop-filter: blur(10px);
  animation: pu-float-anim 5s ease-in-out infinite;
  white-space: nowrap;
}
.pu-float-num  { font-size: 18px; font-weight: 700; color: var(--pu-cyan); display: block; line-height: 1; margin-bottom: 3px; }
.pu-float-lbl  { font-size: 10px; color: rgba(255,255,255,.38); }
@keyframes pu-float-anim {
  0%, 100% { transform: translateY(0); }
  50%        { transform: translateY(-7px); }
}

/* ─── TICKER BAR ─── */
.pu-ticker {
  position: fixed; top: 0; left: 0; right: 0; z-index: 9200;
  background: var(--pu-cyan); height: 28px;
  display: flex; align-items: center; overflow: hidden;
}
.pu-ticker-track {
  display: flex; white-space: nowrap;
  animation: pu-tick 32s linear infinite;
  will-change: transform;
}
.pu-ticker-item {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px; font-weight: 600;
  color: #04121a; letter-spacing: .06em;
  padding: 0 22px;
}
.pu-tick-sep { opacity: .3; }
@keyframes pu-tick { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ─── STAT NUMBER HIGHLIGHT ─── */
.stat-num, .ds-kpi-num, .pu-stat-num {
  background: linear-gradient(135deg, #fff 0%, var(--pu-cyan) 120%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}
/* Fallback for browsers that don't support gradient text */
@supports not (-webkit-background-clip: text) {
  .stat-num, .ds-kpi-num { color: var(--pu-cyan); }
}

/* ─── PWA INSTALL BANNER ─── */
.pu-pwa-banner {
  display: none; /* shown by JS when prompt available */
  position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);
  z-index: 9500; max-width: 400px; width: calc(100% - 32px);
  background: rgba(8,16,30,.97); border: 1px solid rgba(0,212,255,.35);
  border-radius: 16px; padding: 16px 20px;
  box-shadow: 0 16px 48px rgba(0,0,0,.6), 0 0 0 1px rgba(0,212,255,.1);
  backdrop-filter: blur(16px);
  animation: pu-slide-up .4s var(--pu-spring) both;
}
@keyframes pu-slide-up {
  from { opacity: 0; transform: translateX(-50%) translateY(20px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.pu-pwa-banner.visible { display: flex; align-items: center; gap: 14px; }
.pu-pwa-icon { width: 44px; height: 44px; border-radius: 10px; background: rgba(0,212,255,.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 22px; }
.pu-pwa-text { flex: 1; }
.pu-pwa-title { font-family: 'IBM Plex Sans', sans-serif; font-weight: 700; font-size: 14px; color: #fff; margin: 0 0 2px; }
.pu-pwa-sub { font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: rgba(255,255,255,.45); }
.pu-pwa-btn { background: var(--pu-cyan); color: #04121a; border: none; border-radius: 8px; padding: 8px 16px; font-family: 'IBM Plex Sans', sans-serif; font-weight: 700; font-size: 12px; cursor: pointer; white-space: nowrap; transition: filter .2s; }
.pu-pwa-btn:hover { filter: brightness(1.1); }
.pu-pwa-close { background: none; border: none; color: rgba(255,255,255,.35); font-size: 18px; cursor: pointer; padding: 4px; line-height: 1; transition: color .2s; }
.pu-pwa-close:hover { color: rgba(255,255,255,.7); }

/* ─── HERO 2-COLUMN LAYOUT ─── */
.ros-hero-2col {
  display: grid !important;
  grid-template-columns: 1fr 1.6fr !important;
  gap: 48px !important;
  align-items: center !important;
  text-align: left !important;
  max-width: 1280px;
}
.ros-hero-left {
  display: flex; flex-direction: column; gap: 0;
  max-width: 520px;
}
/* Override centered alignment for 2-col hero */
.ros-hero-2col .cc-hero__badge,
.ros-hero-2col .cc-h1,
.ros-hero-2col #cc-hero-ctas,
.ros-hero-2col .cc-hero__ticker,
.ros-hero-2col .cc-hero__authority {
  text-align: left !important;
  align-self: flex-start !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.ros-hero-2col .cc-h1 {
  font-size: clamp(2rem, 1.2rem + 3.5vw, 3.6rem) !important;
}

/* Ultra premium spacing and breathing room (Plaid/Stripe/Tempus style: generous padding, clear separation, room to breathe, no clutter) */
.ros-suite-ladder, .ros-pb, .pos-autopilot-band, .pos-manifesto, .cc-section, .pos-section, section {
  padding-top: 120px !important;
  padding-bottom: 120px !important;
}
.ros-pb__grid {
  gap: 40px !important;
}
.ros-pb__card {
  padding: 32px !important;
}
.ros-suite-ladder__row {
  gap: 56px !important;
}
@media (max-width: 768px) {
  .ros-suite-ladder, .ros-pb, .pos-autopilot-band, .pos-manifesto, .cc-section, .pos-section, section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
  }
  .ros-pb__grid {
    gap: 24px !important;
  }
}
/* Hero ticker left-aligned */
.ros-hero-2col .cc-hero__ticker {
  justify-content: flex-start !important;
}
/* Right column: product shot full height */
.ros-hero-right {
  position: relative;
}
.ros-hero-right .premium-hero-visual {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 520px !important;
  object-fit: contain !important;
}
/* Add floating glow behind product shot */
.ros-hero-right::before {
  content: '';
  position: absolute;
  inset: -40px;
  background: radial-gradient(ellipse 70% 70% at 50% 50%, rgba(0,212,255,0.08) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.ros-hero-right > * { position: relative; z-index: 1; }

/* ─── ENHANCED HERO HEADLINE ─── */
.cc-hero .cc-h1 em {
  font-style: italic;
  color: var(--pu-cyan);
  -webkit-text-fill-color: var(--pu-cyan);
}

/* Lots of movement and visuals for ultra premium feel (subtle, high-quality: hovers, lifts, scales, soft shadows, smooth transitions everywhere, inspired by top SaaS) */
.ros-pb__card, .pos-step, .cc-feat, .ros-suite-ladder__item, .price-card, .ri-stat, .ri-roster__row, .ri-tier, .pos-mock {
  transition: transform 0.25s cubic-bezier(0.23, 1, 0.32, 1), box-shadow 0.25s ease, border-color 0.25s ease;
}
.ros-pb__card:hover, .pos-step:hover, .cc-feat:hover, .ros-suite-ladder__item:hover, .price-card:hover, .ri-stat:hover, .ri-roster__row:hover, .ri-tier:hover, .pos-mock:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(0, 212, 255, 0.1);
  border-color: rgba(0, 212, 255, 0.2);
}
button, .cc-btn, .pos-npi-btn, .ri-npi__btn, .snapshot-btn, .install-app-cta {
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
button:hover, .cc-btn:hover, .pos-npi-btn:hover, .ri-npi__btn:hover, .snapshot-btn:hover, .install-app-cta:hover {
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 8px 20px rgba(0, 212, 255, 0.3);
}
.ros-pb__card, .pos-step, .price-card {
  animation: premium-fade-in 0.6s ease backwards;
}
@keyframes premium-fade-in {
  from { opacity: 0.8; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
.ros-pb__card:nth-child(2) { animation-delay: 0.1s; }
.ros-pb__card:nth-child(3) { animation-delay: 0.2s; }

/* ─── HERO TICKER ENHANCEMENTS ─── */
.cc-hero__ticker-num {
  background: linear-gradient(135deg, #fff 0%, var(--pu-cyan) 120%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ─── MOBILE GUARD ─── */
@media (max-width: 900px) {
  .ros-hero-2col {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
    text-align: center !important;
  }
  .ros-hero-left { align-items: center; }
  .ros-hero-right { display: none !important; }
  .ros-hero-2col .cc-hero__badge,
  .ros-hero-2col .cc-h1,
  .ros-hero-2col #cc-hero-ctas,
  .ros-hero-2col .cc-hero__ticker,
  .ros-hero-2col .cc-hero__authority {
    text-align: center !important;
    align-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
@media (max-width: 768px) {
  .hero h1, .hero-headline { font-size: clamp(26px, 8vw, 44px) !important; }
  .pu-ticker { display: none; } /* don't steal height on mobile */
}

/* ═══════════════════════════════════════════════════════════
   POLISH PASS — hero · billing · motion (additive only)
   ═══════════════════════════════════════════════════════════ */

@keyframes pu-hero-in {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: none; }
}
@keyframes pu-hero-glow-breathe {
  0%, 100% { opacity: .85; transform: scale(1); }
  50%       { opacity: 1; transform: scale(1.04); }
}

/* ─── Homepage hero: hierarchy + entrance ─── */
.cc-hero {
  padding-top: clamp(72px, 11vh, 132px) !important;
  padding-bottom: clamp(56px, 7vh, 96px) !important;
}
.ros-hero-2col { gap: clamp(40px, 5vw, 72px) !important; }
.cc-hero .cc-hero__badge {
  animation: pu-hero-in .75s var(--pu-easing) .08s both;
  box-shadow: 0 0 0 1px rgba(0,212,255,.12), 0 4px 20px rgba(0,212,255,.06);
}
.cc-hero .cc-h1 {
  animation: pu-hero-in .8s var(--pu-easing) .2s both;
  margin-bottom: 0.15em !important;
}
.cc-hero #cc-hero-ctas {
  animation: pu-hero-in .8s var(--pu-easing) .34s both;
  margin-top: clamp(20px, 3vh, 32px) !important;
}
.cc-hero .cc-hero__ticker {
  animation: pu-hero-in .8s var(--pu-easing) .46s both;
  margin-top: clamp(24px, 3.5vh, 40px) !important;
}
.cc-hero .cc-hero__authority {
  animation: pu-hero-in .8s var(--pu-easing) .56s both;
  margin-top: clamp(20px, 3vh, 32px) !important;
  transition: border-color .3s, box-shadow .3s;
}
.cc-hero .cc-hero__authority:hover {
  box-shadow: 0 8px 32px rgba(0,212,255,.08);
  border-left-color: rgba(0,212,255,.9) !important;
}
.ros-hero-right .cc-shot, .ros-hero-right .cc-hero__visual > * {
  animation: pu-hero-in 1s var(--pu-easing) .3s both;
}
.cc-hero__glow {
  animation: pu-hero-glow-breathe 8s ease-in-out infinite;
}

/* Hero NPI input — premium focus ring */
body.page-home #hero-npi-wrap {
  transition: border-color .25s var(--pu-easing), box-shadow .25s var(--pu-easing) !important;
}
body.page-home #hero-npi-wrap:focus-within {
  border-color: rgba(0,212,255,.7) !important;
  box-shadow: 0 0 0 3px rgba(0,212,255,.1), 0 12px 40px rgba(0,212,255,.14) !important;
}
body.page-home #hero-npi-form button[type="submit"] {
  transition: background .2s, transform .25s var(--pu-spring), box-shadow .25s !important;
}
body.page-home #hero-npi-form button[type="submit"]:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(0,212,255,.35) !important;
}
body.page-home #hero-npi-form button[type="submit"]:active {
  transform: translateY(0) scale(.98) !important;
}

/* Product shot depth */
.cc-shot, .rx-shot, [class*="cc-shot"] {
  transition: transform .45s var(--pu-easing), box-shadow .45s !important;
}
.cc-hero__visual:hover .cc-shot {
  transform: translateY(-4px) scale(1.01) !important;
  box-shadow: 0 32px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(0,212,255,.1) !important;
}

/* ─── Billing companies page ─── */
.billing-companies .hero,
body:has(.dashboard-showcase) .hero {
  padding-top: clamp(88px, 14vh, 120px);
}
.dashboard-showcase {
  box-shadow: 0 28px 90px rgba(0,0,0,.55), 0 0 0 1px rgba(0,212,255,.1) !important;
  transition: transform .4s var(--pu-easing), box-shadow .4s !important;
}
.dashboard-showcase:hover {
  transform: translateY(-3px);
  box-shadow: 0 36px 100px rgba(0,0,0,.6), 0 0 40px rgba(0,212,255,.06) !important;
}
.ds-row {
  transition: background .2s, transform .2s var(--pu-easing) !important;
}
.ds-row:hover {
  transform: translateX(3px);
  background: rgba(0,212,255,.04) !important;
}
.stats-bar {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.stat-item {
  transition: transform .3s var(--pu-spring);
}
.stat-item:hover {
  transform: translateY(-2px);
}

/* ─── Billing demo app (rate intel + portfolio) ─── */
.ri-hero, .acct-header, .ai-coach-panel, .ri-ai-coach, .ai-memo-hero {
  transition: border-color .3s, box-shadow .3s;
}
.ri-hero {
  box-shadow: 0 1px 0 rgba(255,255,255,.04), 0 20px 60px rgba(0,0,0,.25);
}
.ri-ai-coach {
  box-shadow: 0 1px 0 rgba(255,255,255,.03), 0 12px 40px rgba(0,0,0,.2);
}
.ri-table tbody tr:hover {
  background: rgba(0,212,255,.03);
}
.ri-stat, .pstat {
  transition: transform .3s var(--pu-spring), border-color .3s, box-shadow .3s !important;
}
.ri-stat:hover, .pstat:hover {
  transform: translateY(-3px);
  border-color: rgba(0,212,255,.25) !important;
  box-shadow: 0 12px 36px rgba(0,0,0,.35), 0 0 24px rgba(0,212,255,.05) !important;
}
.ri-roster__row, .ct-row {
  transition: background .18s, transform .2s var(--pu-easing) !important;
}
.ri-roster__row:hover, .ct-row:hover {
  transform: translateX(2px);
}
.ri-btn, .ri-npi__btn, .view-btn, .add-client-btn, .ai-memo-btn, .ai-coach-btn, .ri-ai-coach__btn {
  transition: transform .22s var(--pu-spring), box-shadow .22s, background .2s, filter .2s !important;
}
.ri-btn--primary:hover, .ri-npi__btn:hover:not(:disabled), .view-btn:hover,
.add-client-btn:hover, .ai-memo-btn:hover:not(:disabled), .ai-coach-btn--primary:hover,
.ri-ai-coach__btn--primary:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(0,212,255,.28) !important;
}
.ri-btn:active, .ri-npi__btn:active, .ai-memo-btn:active, .view-btn:active {
  transform: translateY(0) scale(.98) !important;
}
.ri-topbar, .topbar {
  backdrop-filter: saturate(140%) blur(20px) !important;
  -webkit-backdrop-filter: saturate(140%) blur(20px) !important;
}
.ri-tabbar, .pos-tabbar {
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
}
.ri-tab, .pos-tab {
  transition: color .2s, border-color .2s, background .2s !important;
}
.ri-tab.is-active, .pos-tab.is-active {
  box-shadow: inset 0 -2px 0 var(--pu-cyan);
}
.quick-action {
  transition: transform .28s var(--pu-spring), border-color .28s, box-shadow .28s !important;
}
.quick-action:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.4), 0 0 20px rgba(0,212,255,.06) !important;
}
.payer-card {
  transition: transform .3s var(--pu-spring), border-color .3s, box-shadow .3s !important;
}
.payer-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 16px 48px rgba(0,0,0,.4) !important;
}
.ri-modal__pn, .modal-box {
  animation: pu-slide-up .35s var(--pu-spring) both;
}
.ri-table tbody tr {
  transition: background .15s;
}

/* Touch targets — billing + marketing mobile */
@media (max-width: 768px) {
  .ri-npi__btn, .ri-btn, .ri-tab, .pos-tab, .view-btn, .add-client-btn,
  .ai-coach-btn, .ai-memo-btn, .btn-primary, .btn-outline, .nav-cta {
    min-height: 44px !important;
  }
  .ri-ai-coach__btn, .ai-coach-btn {
    width: 100%;
    justify-content: center;
  }
  .cc-hero { padding-top: 56px !important; padding-bottom: 48px !important; }
  body.page-home #hero-npi-form { max-width: 100% !important; }
  body.page-home #hero-npi-form button[type="submit"] { min-height: 48px !important; }
  body.page-home .cc-hero__authority { max-width: 100% !important; }
  .billing-companies .hero-ctas {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .billing-companies .hero-ctas .btn-primary,
  .billing-companies .hero-ctas .btn-outline {
    width: 100%;
    justify-content: center;
    min-height: 48px !important;
  }
}

/* Touch devices: disable sticky hover lifts */
@media (hover: none), (pointer: coarse) {
  .prob-card:hover, .feature-card:hover, .price-card:hover,
  .ri-stat:hover, .pstat:hover, .quick-action:hover, .payer-card:hover,
  .dashboard-showcase:hover, .ds-row:hover, .stat-item:hover,
  .billing-companies .lp-panel:hover, .billing-companies .lp-row:hover,
  .billing-companies .lp-kpi:hover, .memo-explainer .me-card:hover,
  .cc-hero__visual:hover .cc-shot, .btn-primary:hover, .btn-outline:hover,
  .ri-roster__row:hover, .ct-row:hover {
    transform: none !important;
  }
}

/* ─── Billing companies hero entrance ─── */
.billing-companies .hero-eyebrow {
  animation: pu-hero-in .7s var(--pu-easing) .06s both;
}
.billing-companies .hero h1 {
  animation: pu-hero-in .8s var(--pu-easing) .18s both;
}
.billing-companies .hero-sub {
  animation: pu-hero-in .8s var(--pu-easing) .28s both;
}
.billing-companies .hero-ctas {
  animation: pu-hero-in .8s var(--pu-easing) .38s both;
}
.billing-companies .hero-trust {
  animation: pu-hero-in .8s var(--pu-easing) .48s both;
}
.billing-companies .lp-panel {
  transition: transform .45s var(--pu-easing), box-shadow .45s !important;
}
.billing-companies .lp-panel:hover {
  transform: translateY(-4px) scale(1.01) !important;
  box-shadow: 0 36px 100px rgba(0,0,0,.65), 0 0 48px rgba(0,212,255,.08) !important;
}
.billing-companies .lp-row {
  transition: background .2s, border-color .2s, transform .22s var(--pu-easing) !important;
}
.billing-companies .lp-row:hover {
  transform: translateX(3px);
  background: rgba(0,212,255,.06) !important;
}
.billing-companies .lp-kpi {
  transition: transform .3s var(--pu-spring), border-color .3s, box-shadow .3s;
}
.billing-companies .lp-kpi:hover {
  transform: translateY(-2px);
  border-color: rgba(0,212,255,.2) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
}
.billing-companies nav {
  transition: background .3s, border-color .3s, backdrop-filter .3s !important;
}
.billing-companies .nav-link {
  transition: color .2s, opacity .2s !important;
}
.billing-companies .nav-link:hover {
  opacity: 1;
}

/* ─── Contract review / leverage memo ─── */
.ai-memo-hero {
  box-shadow: 0 1px 0 rgba(255,255,255,.04), 0 20px 60px rgba(0,0,0,.28);
  transition: border-color .3s, box-shadow .35s;
}
.ai-memo-hero:hover {
  box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 28px 72px rgba(0,0,0,.35), 0 0 32px rgba(0,212,255,.05);
}
.ai-memo-btn {
  transition: transform .22s var(--pu-spring), box-shadow .22s, background .2s, filter .2s !important;
}
.ai-memo-btn:hover:not(:disabled) {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(0,212,255,.28) !important;
}
.ai-memo-btn:active:not(:disabled) {
  transform: translateY(0) scale(.98) !important;
}
.memo-explainer .me-card {
  transition: transform .3s var(--pu-spring), border-color .3s, box-shadow .3s !important;
}
.memo-explainer .me-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0,212,255,.28) !important;
  box-shadow: 0 12px 36px rgba(0,0,0,.35);
}

/* ─── AI loading shimmer (no content change) ─── */
@keyframes pu-shimmer-bar {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.ai-memo-status.is-loading,
.ai-coach-status.is-loading {
  background: linear-gradient(90deg, transparent 0%, rgba(0,212,255,.08) 50%, transparent 100%);
  background-size: 200% 100%;
  animation: pu-shimmer-bar 1.8s ease-in-out infinite;
  border-radius: 6px;
}
.ri-ai-coach.is-loading .ri-ai-coach__out {
  position: relative;
  overflow: hidden;
}
.ri-ai-coach.is-loading .ri-ai-coach__out::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(0,212,255,.06) 50%, transparent 100%);
  background-size: 200% 100%;
  animation: pu-shimmer-bar 1.6s ease-in-out infinite;
  pointer-events: none;
}

/* ─── Form focus rings (billing + marketing) ─── */
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0,212,255,.12) !important;
}
.ri-npi__input:focus, .ri-npi input:focus {
  border-color: rgba(0,212,255,.55) !important;
  box-shadow: 0 0 0 3px rgba(0,212,255,.1) !important;
}

/* ─── Link underline sweep ─── */
.nav-link, .footer-links a, .cc-nav a:not(.nav-cta):not(.cc-btn) {
  transition: color .2s, opacity .2s !important;
}

/* ═══════════════════════════════════════════════════════════════
   FINAL MOBILE + INTERNAL TOOLING POLISH (Launch Control, OPS, Final Room, 500k, army, sim, integrations)
   44-48px Fitts everywhere, 1-col stacks <640px, scrollable lists, no x-overflow, safe-area, reduced-motion safe.
   Source of truth for web test. Add more here if new panels added.
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  /* Internal panels stack + breathe */
  .launch-control-panel, .ops-center, .final-room-board, .internal-resources,
  .rebel-wall, .command-center, .bh-command {
    padding: 12px !important;
    border-radius: 10px !important;
  }
  .final-room-board { flex-direction: column !important; }
  .final-room-board img { width: 100%; max-width: 110px; height: auto; margin-bottom: 8px; }
  .ops-integrations-grid, .os-grid, .integrations-grid { grid-template-columns: 1fr !important; gap: 8px !important; }
  .launch-control-panel .grid, .ops-center .grid { grid-template-columns: 1fr !important; }

  /* All critical action buttons 44px+ touch (Fitts law, even tiny AI/ops ones) */
  .launch-control-panel button, .ops-center button, .final-room-board button,
  .army-btn, .sim-slider button, #sim-output + button,
  button[onclick*="activate500k"], button[onclick*="igniteFull"],
  button[onclick*="runLaunchSim"], button[onclick*="engageNetwork"],
  button[onclick*="generateElon"], button[onclick*="runOpsAI"],
  button[onclick*="contributeRebel"], button[onclick*="simulateChannel"],
  button[onclick*="exportRebel"], .ai-factory button, .ops-btn {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 10px 14px !important;
    font-size: 12px !important;
    white-space: normal !important;
    line-height: 1.2 !important;
  }

  /* Sliders + labels usable */
  .sim-slider label, .launch-control-panel label { font-size: 12px; }
  .sim-slider input[type="range"] { height: 28px; }

  /* 100 mappings + resources lists scrollable on small screens */
  .internal-resources ol, .internal-resources pre, .ops-center pre,
  .final-room-board > div[style*="font-size:12px"] {
    max-height: 52vh !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
    font-size: 12px !important;
  }

  /* Final Room narrative + table tighter */
  .final-room-board .room-narrative { font-size: 11px; line-height: 1.35; }
  .final-room-board strong { font-size: 12px; }

  /* Safe area + sticky tab already handled; ensure no horizontal bleed on new sections */
  .launch-control-panel, .ops-center, .final-room-board, .rebel-wall {
    overflow-x: hidden !important;
  }

  /* Character cards (already partial) + OS pillars + rebellion counters */
  .character-card { min-height: 168px !important; }
  .os-pillar, .os-grid > div { padding: 14px 12px !important; }
  .live-counters, .rebel-network-stats { flex-direction: column; gap: 8px; }
}

@media (max-width: 480px) {
  .launch-control-panel button, .ops-center button, .army-btn {
    font-size: 11px !important;
    padding: 9px 10px !important;
  }
  .internal-resources ol { font-size: 11px !important; }
}

/* Touch / coarse pointer: kill hover lifts on dense internal cards to prevent fat-finger issues */
@media (hover: none), (pointer: coarse) {
  .launch-control-panel .card, .ops-center .card, .final-room-board > div,
  .ai-factory > div, .integrations-grid > div {
    transform: none !important;
  }
}

/* Ensure 44px on any remaining tiny text buttons in internal (belt + suspenders) */
@media (max-width: 640px) {
  .launch-control-panel [style*="font-size:10px"], .ops-center [style*="font-size:10px"],
  .ai-factory [style*="font-size:10px"], button[style*="font-size:10px"] {
    font-size: 11px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-hero .cc-hero__badge,
  .cc-hero .cc-h1,
  .cc-hero #cc-hero-ctas,
  .cc-hero .cc-hero__ticker,
  .cc-hero .cc-hero__authority,
  .ros-hero-right .cc-shot,
  .cc-hero__glow,
  .dashboard-showcase::after,
  .ri-modal__pn,
  .modal-box,
  .billing-companies .hero-eyebrow,
  .billing-companies .hero h1,
  .billing-companies .hero-sub,
  .billing-companies .hero-ctas,
  .billing-companies .hero-trust {
    animation: none !important;
    transition-duration: .01ms !important;
  }
  .prob-card:hover, .feature-card:hover, .price-card:hover,
  .ri-stat:hover, .pstat:hover, .quick-action:hover,
  .dashboard-showcase:hover, .ds-row:hover,
  .billing-companies .lp-panel:hover, .billing-companies .lp-row:hover,
  .billing-companies .lp-kpi:hover, .memo-explainer .me-card:hover,
  .cc-hero__visual:hover .cc-shot {
    transform: none !important;
  }
}

/* ULTRA PREMIUM ENHANCEMENTS FOR UNICORN BUILD - 15/10+ VC quality */
/* Deeper cinematic, dimensional, alive. Lusion/Apple/Stripe level. */
.rebos-premium-panel {
  box-shadow: 0 40px 140px -30px rgba(0,0,0,0.9), 0 0 0 1px rgba(255,255,255,0.08) inset;
  transition: transform 0.4s cubic-bezier(0.23,1,0.32,1), box-shadow 0.4s, border-color 0.3s;
}
.rebos-premium-panel:hover {
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 50px 160px -25px rgba(0,0,0,0.95), 0 0 0 1px var(--rebos-cyan-glow) inset;
}
.rebos-card {
  box-shadow: 0 25px 80px -20px rgba(0,0,0,0.7);
  transition: transform 0.35s cubic-bezier(0.23,1,0.32,1), box-shadow 0.35s;
}
.rebos-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 40px 110px -15px rgba(0,0,0,0.8);
}
.rebos-character {
  box-shadow: 0 15px 50px -15px rgba(0,0,0,0.6);
}
.rebos-character.active, .rebos-character:hover {
  box-shadow: 0 0 0 10px rgba(0,240,255,0.2), 0 25px 70px -10px rgba(0,0,0,0.7);
}
.rebos-proof-band {
  box-shadow: 0 20px 50px -15px rgba(0,0,0,0.6);
}
.rebos-premium-btn {
  box-shadow: 0 15px 40px -15px var(--rebos-cyan-glow);
  transition: transform 0.3s cubic-bezier(0.23,1,0.32,1), box-shadow 0.3s, background 0.2s;
}
.rebos-premium-btn:hover {
  box-shadow: 0 25px 60px -10px var(--rebos-cyan-glow);
}
@media (max-width: 640px) {
  .rebos-premium-panel { padding: 22px; }
  .rebos-card { padding: 18px; }
  .rebos-character { min-height: 130px; }
}
