/* ============================================================
   Tensor Strength — "Engineered Exclusivity" landing revamp
   High-energy premium polish. Loaded last to refine hierarchy,
   motion and accent discipline without touching structure.
   ============================================================ */
:root { --steel:#8a93a3; }

/* --- Type & rhythm: tighter display, more section breathing room --- */
.hero h1 { letter-spacing:-.02em; line-height:.9; }
.section { padding-top:clamp(72px,10vw,148px); padding-bottom:clamp(72px,10vw,148px); }
.hero p, .section p { max-width:65ch; }
.eyebrow, .section-kicker, .offer-tag, .frame-spec span { letter-spacing:.28em !important; text-transform:uppercase; }

/* --- CTA hierarchy: ONE punchy primary, subdued ghosts --- */
.hero-actions { gap:14px; }
.hero-actions .button:first-child {
  background:var(--electric); color:#04030d; border-color:var(--electric); font-weight:800; letter-spacing:.05em;
  box-shadow:0 10px 30px -12px rgba(51,204,255,.6);
}
.hero-actions .button:first-child:hover { background:#5ad7ff; box-shadow:0 16px 40px -10px rgba(51,204,255,.7); }
.hero-actions .button-ghost { background:transparent; border-color:rgba(230,232,236,.2); color:rgba(230,232,236,.82); }
.hero-actions .button-ghost:hover { border-color:var(--electric); color:#fff; }

/* A deliberately quiet partner signal: visible to local prospects without
   competing with Tensor's primary coaching decision. */
.partner-note { display:inline-flex; align-items:center; gap:9px; margin-top:18px; color:var(--steel); text-decoration:none; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; transition:color .2s ease; }
.partner-note span { color:var(--electric); font-size:9px; letter-spacing:.16em; }
.partner-note b { color:var(--electric); font-size:13px; }
.partner-note:hover { color:#fff; }
.availability a { color:#c6d2e3; text-decoration-color:rgba(61,140,255,.7); text-underline-offset:3px; }
.availability a:hover { color:#fff; }

/* Member access stays visible in the landing header at every breakpoint. */
.button-login { background:transparent; border-color:rgba(230,232,236,.36); color:var(--white); }
.button-login:hover { background:var(--electric); border-color:var(--electric); color:#04030d; }
@media(max-width:900px){
  .nav-actions { gap:10px; }
  .nav-actions .button-secondary { display:none; }
  .nav-shell.open .nav-actions { bottom:20px; }
}
@media(max-width:560px){
  .nav-shell .brand span { display:none; }
  .nav-actions .button-login { display:inline-flex; min-height:38px; padding:0 12px; font-size:10px; }
}

/* --- Unified button motion --- */
.button { transition:transform .16s ease, box-shadow .28s ease, background .2s ease, border-color .2s ease; will-change:transform; }
.button:hover { transform:translateY(-2px); }
.button span { display:inline-block; transition:transform .2s ease; }
.button:hover span { transform:translate(3px,-3px); }

/* --- Cards: thin border + electric inner glow on hover (craft cue) --- */
.principle, .result-card, .offer, .coach-card {
  transition:transform .22s ease, border-color .22s ease, box-shadow .32s ease;
}
.principle:hover, .result-card:hover, .offer:hover {
  transform:translateY(-4px);
  border-color:rgba(51,204,255,.45);
  box-shadow:0 22px 55px -24px rgba(51,204,255,.4), inset 0 0 0 1px rgba(51,204,255,.14);
}

/* --- Accent discipline: reserve electric for the featured tier + key stats --- */
.offer .offer-tag { color:var(--steel); }
.offer-featured .offer-tag { color:var(--electric); }
.offer-featured { box-shadow:0 26px 64px -26px rgba(51,204,255,.5); }
.offer .price small { color:var(--steel); }
.result-card strong { text-shadow:0 0 24px rgba(51,204,255,.25); }

/* --- Motion: scroll cue + subtle energy --- */
.scroll-cue span { display:inline-block; animation:tsBounce 1.8s ease-in-out infinite; }
@keyframes tsBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(6px)} }
.orb-one, .orb-two { filter:blur(64px); opacity:.55; }

/* --- Fallback so content is never hidden if reveal JS is absent --- */
.reveal { opacity:1 !important; }

/* --- A11y focus polish --- */
a:focus-visible, .button:focus-visible { outline:2px solid var(--electric); outline-offset:3px; border-radius:2px; }
@media(max-width:560px){
  .partner-note{align-items:flex-start;line-height:1.5}
  .nav-shell.open{max-height:100dvh;overflow-y:auto;padding-bottom:18px}
  /* The rewards teaser is authored inline; collapse its three offer cards
     instead of forcing them into unreadable narrow columns on a phone. */
  .quests-tease > div[style*="grid-template-columns"]{grid-template-columns:1fr !important;gap:10px !important}
}
