/*
 * onboard.css — Nuh Consulting client onboarding page. DARK + GOLD (the signature look).
 * Gold animations ported verbatim from the breakdown report app (scalability-analyzer/app/globals.css):
 * gold-glow, gold-text, gold-shine + gold-sweep, shine-line + line-sweep, lift, report-reveal, intro-*.
 * Mobile-first. Pairs with onboard.js (name-reveal intro + scroll reveals + FAQ accordion).
 */

:root{
  --font-sans:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display:"Cinzel", Georgia, "Times New Roman", serif;
  --font-mono:"Geist Mono", ui-monospace, monospace;

  --gold:#facc15;        /* yellow-400 */
  --gold-200:#fef08a;    /* yellow-200 */
  --gold-300:#fcd34d;    /* amber-300 */
  --amber:#f59e0b;       /* amber-500 */
  --ink:#ffffff;
  --zinc-400:#a1a1aa;
  --zinc-500:#71717a;
  --line:rgba(255,255,255,.10);
  --card:rgba(255,255,255,.035);
  --maxw:768px;
  --radius:18px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--zinc-400);
  background-color:#0a0a0a;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

/* ---- gold-glow: dark base + warm gold radial glow (ported) ---- */
.gold-glow{
  background-color:#0a0a0a;
  background-image:
    radial-gradient(60% 50% at 50% 0%, rgba(250,204,21,.14) 0%, rgba(250,204,21,0) 70%),
    radial-gradient(40% 30% at 50% 100%, rgba(250,204,21,.06) 0%, rgba(250,204,21,0) 70%);
}

.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 22px; }
.center{ text-align:center; }

/* ---- gold text gradient (ported: yellow-200 -> yellow-400 -> amber-500) ---- */
.gold-text{
  background-image:linear-gradient(to right, var(--gold-200), var(--gold), var(--amber));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ---- gold-shine: animated shimmer sweep (ported) ---- */
@keyframes gold-sweep{ 0%{ background-position:200% center; } 100%{ background-position:-200% center; } }
.gold-shine{
  background-image:linear-gradient(100deg,
    #8a6d1f 0%, #c79a2e 18%, #f4d97a 38%, #fffbe6 48%,
    #f4d97a 58%, #c79a2e 78%, #8a6d1f 100%);
  background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:gold-sweep 8s linear infinite;
}

/* ---- shine-line: gold line with a highlight that slides through (ported) ---- */
@keyframes line-sweep{ 0%{ transform:translateX(-120%); } 100%{ transform:translateX(120%); } }
.shine-line{
  position:relative; overflow:hidden; border-radius:999px;
  background:linear-gradient(90deg, transparent, rgba(212,175,55,.5), transparent);
}
.shine-line::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, transparent 35%, rgba(255,251,230,.95) 50%, transparent 65%);
  animation:line-sweep 3.2s ease-in-out infinite;
}

/* ---- lift: hover/press raise (ported) ---- */
.lift{ transition:all .18s ease; will-change:transform; }
.lift:hover{ transform:translateY(-3px); }
.lift:active{ transform:translateY(-2px) scale(.99); }

/* ---- report-reveal: content fades up, staggered via --reveal-delay (ported) ---- */
@keyframes report-reveal{ 0%{ opacity:0; transform:translateY(1rem); } 100%{ opacity:1; transform:translateY(0); } }
.report-reveal{ opacity:0; animation:report-reveal .6s cubic-bezier(.16,1,.3,1) both; animation-delay:var(--reveal-delay, 0s); }

/* ---- scroll reveal for lower sections (JS-armed) ---- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }

/* ---- name-reveal intro overlay (ported intro-* keyframes) ---- */
@keyframes intro-slide-left{ 0%{ opacity:0; transform:translateX(-2.5rem); } 100%{ opacity:1; transform:translateX(0); } }
@keyframes intro-slide-right{ 0%{ opacity:0; transform:translateX(2.5rem); } 100%{ opacity:1; transform:translateX(0); } }
@keyframes intro-pop{ 0%{ opacity:0; transform:scale(.2) rotate(-25deg); } 60%{ opacity:1; transform:scale(1.25) rotate(8deg); } 100%{ opacity:1; transform:scale(1) rotate(0); } }
@keyframes intro-rise{ 0%{ opacity:0; transform:translateY(.75rem); } 100%{ opacity:1; transform:translateY(0); } }
@keyframes intro-fade-out{ 0%{ opacity:1; transform:scale(1); } 100%{ opacity:0; transform:scale(1.04); } }
.intro-slide-left{ animation:intro-slide-left .7s cubic-bezier(.16,1,.3,1) both; }
.intro-slide-right{ animation:intro-slide-right .7s cubic-bezier(.16,1,.3,1) both; }
.intro-pop{ animation:intro-pop .6s cubic-bezier(.34,1.56,.64,1) .35s both; }
.intro-rise{ animation:intro-rise .6s ease-out .7s both; }
.intro-leaving{ animation:intro-fade-out .5s ease-in forwards; pointer-events:none; }

.intro{ position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; }
.intro__in{ padding:0 24px; width:100%; max-width:640px; }
.intro__word{ text-align:center; font-family:var(--font-display); font-weight:900; text-transform:uppercase; letter-spacing:.4em; font-size:clamp(12px,3vw,15px); margin:0 0 32px; }
.intro__row{ display:flex; align-items:center; justify-content:center; gap:clamp(16px,5vw,28px); }
.intro__who{ display:flex; flex-direction:column; align-items:center; gap:12px; }
.intro__who img{ width:clamp(88px,24vw,112px); height:clamp(88px,24vw,112px); border-radius:50%; object-fit:cover; box-shadow:0 0 0 2px var(--gold); background:#1a1a1a; }
.intro__who span{ color:#fff; font-weight:900; font-size:clamp(15px,4vw,18px); white-space:nowrap; }
.intro__x{ font-weight:900; font-size:clamp(44px,11vw,72px); line-height:1; transform:translateY(-12px); }

/* ---- centered masthead ---- */
.masthead{ padding-top:34px; }
.brand__word{ font-family:var(--font-display); font-weight:900; letter-spacing:.18em; font-size:clamp(24px,6vw,40px); line-height:1.12; margin:0; }
.masthead .brand__word{ letter-spacing:.2em; }
.masthead .shine-line{ height:1px; width:200px; margin:16px auto 0; }

/* ---- brand lockup: monogram mark + wordmark ---- */
.brand-lockup{ display:inline-flex; align-items:center; justify-content:center; gap:14px; }
.brand-mark{ width:clamp(36px,7vw,54px); height:auto; flex:none; display:block; }
@media (max-width:560px){ .brand-lockup{ gap:10px; } }

/* ---- sections ---- */
main{ position:relative; z-index:1; }
section{ padding:38px 0; }
.eyebrow{ font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--zinc-500); margin:0 0 12px; }
h1,h2,h3{ font-family:var(--font-display); color:#fff; line-height:1.14; margin:0; font-weight:800; }
h2{ font-size:clamp(24px,5vw,34px); margin-bottom:8px; }
h3{ font-size:19px; font-weight:700; }

/* ---- hero (centered) ---- */
.hero{ padding-top:30px; }
.avatar{ width:104px; height:104px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 4px rgba(250,204,21,.8); background:#1a1a1a; margin:0 auto 20px; }
.hero h1{ font-size:clamp(28px,6vw,42px); font-weight:900; margin-bottom:6px; }
.hero__sub{ font-size:17px; color:var(--zinc-400); max-width:56ch; margin:16px auto 0; }

/* ---- buttons ---- */
.btn-gold{
  display:flex; align-items:center; justify-content:center; gap:10px; width:100%;
  font-family:var(--font-sans); font-weight:900; font-size:clamp(17px,4.5vw,20px); color:#0f172a;
  padding:18px 24px; border-radius:18px; border:0; cursor:pointer;
  background:linear-gradient(to bottom, var(--gold-300), var(--gold), var(--amber));
  box-shadow:0 0 40px rgba(245,179,40,.35);
  transition:all .2s ease; will-change:transform;
}
.btn-gold:hover{ transform:translateY(-3px); box-shadow:0 12px 40px rgba(245,179,40,.45);
  background:linear-gradient(to bottom, #fde68a, #fde047, #fbbf24); }
.btn-gold svg{ width:24px; height:24px; flex-shrink:0; }
/* inline gold (step actions): auto width, not full-bleed */
.btn-gold--inline{ display:inline-flex; width:auto; padding:13px 26px; font-size:16px; border-radius:14px; box-shadow:0 0 28px rgba(245,179,40,.3); }

.btn-ghost{ display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-weight:700; font-size:15px; color:#fff; padding:11px 22px; border-radius:999px;
  border:1px solid var(--line); background:var(--card); transition:all .2s ease; }
.btn-ghost:hover{ border-color:rgba(250,204,21,.6); transform:translateY(-3px); }

/* ---- operator x client pairing above CTA ---- */
.pair{ display:flex; align-items:center; justify-content:center; gap:20px; margin:0 0 22px; }
.pair__who{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.pair__who img{ width:64px; height:64px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 2px var(--gold); background:#1a1a1a; }
.pair__who span{ color:var(--zinc-400); font-size:12px; }
.pair__x{ font-weight:900; font-size:26px; line-height:1; }

/* ---- video ---- */
.video__frame{ position:relative; aspect-ratio:16/9; width:100%; margin-top:22px; border-radius:var(--radius); overflow:hidden; background:#000; border:1px solid var(--line); }
.video__frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---- phases: grand section dividers ---- */
.phase{ padding-top:8px; }
.phase__head{ text-align:center; border-top:1px solid var(--line); padding-top:48px; margin-top:10px; }
.phase__eyebrow{ font-family:var(--font-mono); font-size:13px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin:0 0 12px; }
.phase__title{ font-family:var(--font-display); font-weight:900; letter-spacing:.03em; line-height:1.14; font-size:clamp(24px,5.5vw,38px); margin:0; }
.phase__line{ height:1px; width:150px; margin:14px auto 0; }

/* ---- steps: big gold title, small dense info, check-off circle ---- */
.steps-list{ margin-top:18px; }
.step{ padding:26px 0; border-bottom:1px solid var(--line); }
.step:last-child{ border-bottom:0; }
.step__head{ display:flex; align-items:flex-start; gap:14px; }
.step__check{ flex-shrink:0; width:26px; height:26px; margin-top:5px; border-radius:50%; border:2px solid rgba(250,204,21,.45); background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#0f172a; font-size:14px; font-weight:800; transition:all .2s ease; }
.step__check::after{ content:""; }
.step__check.done{ background:linear-gradient(to bottom, var(--gold), var(--amber)); border-color:var(--gold); box-shadow:0 0 16px rgba(250,204,21,.4); }
.step__check.done::after{ content:"\2713"; }
.step__headtext{ flex:1; min-width:0; }
.step__eyebrow{ font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin:0 0 4px; }
.step__title{ font-family:var(--font-display); font-weight:800; letter-spacing:.01em; line-height:1.18; font-size:clamp(20px,4.4vw,29px); margin:0; transition:opacity .2s ease; }
.step.is-done .step__title{ opacity:.5; text-decoration:line-through; text-decoration-color:rgba(250,204,21,.7); text-decoration-thickness:2px; }
/* content sits indented under the title (past the check circle) */
.step__body, .step__actions, .step__note, .step .video__frame{ margin-left:40px; }
.step__bullets{ margin-left:60px; }
.step__body{ font-size:15px; color:var(--zinc-400); margin-top:12px; max-width:60ch; }
.step__bullets{ font-size:15px; color:var(--zinc-400); margin-top:12px; padding-left:18px; max-width:58ch; }
.step__bullets li{ margin:6px 0; }
.step__actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.step__note{ font-size:14px; color:var(--zinc-400); margin-top:14px; padding:11px 16px; background:var(--card); border:1px solid var(--line); border-left:3px solid var(--gold); border-radius:10px; max-width:60ch; }
.step .video__frame{ margin-top:16px; max-width:560px; }
/* embedded form (Typeform etc.) — fills in place on the page */
.form-embed{ margin-top:16px; margin-left:40px; height:clamp(560px,78vh,820px); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; }
.form-embed iframe{ width:100%; height:100%; border:0; display:block; }
@media (max-width:560px){ .step__body, .step__actions, .step__note, .step .video__frame, .form-embed{ margin-left:0; } .step__bullets{ margin-left:18px; } }

/* ---- per-step SOP: collapsible "How to do this" ---- */
.sop{ margin-top:14px; margin-left:40px; }
.sop__toggle{ display:inline-flex; align-items:center; gap:9px; background:var(--card); border:1px solid var(--line); color:var(--gold); font-family:var(--font-sans); font-weight:600; font-size:14px; padding:9px 16px; border-radius:999px; cursor:pointer; transition:all .2s ease; }
.sop__toggle::before{ content:"+"; font-size:17px; line-height:1; width:12px; text-align:center; }
.sop.open .sop__toggle::before{ content:"\2212"; }
.sop__toggle:hover{ border-color:rgba(250,204,21,.6); }
.sop__body{ overflow:hidden; max-height:0; transition:max-height .35s ease; }
.sop__list{ margin:16px 0 4px; padding-left:20px; color:var(--zinc-400); font-size:15px; max-width:60ch; }
.sop__list li{ margin:8px 0; padding-left:4px; }
.sop__list li::marker{ color:var(--gold); font-weight:700; }
.sop .video__frame{ margin-left:0; margin-top:14px; max-width:520px; }
@media (max-width:560px){ .sop{ margin-left:0; } }

/* ---- fallback help / setup-call ---- */
.help{ padding:46px 0 6px; border-top:1px solid var(--line); margin-top:10px; }
.help__line{ color:var(--zinc-400); font-size:15px; margin:0 0 14px; }

/* ---- cards ---- */
.cards{ display:grid; grid-template-columns:1fr; gap:16px; margin-top:30px; }
@media (min-width:640px){ .cards{ grid-template-columns:repeat(2,1fr); } }
.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:24px; transition:all .25s ease; }
.card:hover{ transform:translateY(-4px); border-color:rgba(250,204,21,.45); box-shadow:0 16px 40px rgba(0,0,0,.5); }
.card h3{ margin-bottom:6px; }
.card p{ margin:0 0 18px; font-size:15px; color:var(--zinc-400); }

/* ---- checklist ---- */
.checklist{ list-style:none; margin:28px 0 0; padding:0; }
.checklist li{ position:relative; padding:13px 0 13px 38px; border-bottom:1px solid var(--line); font-size:16px; color:#fff; }
.checklist li::before{ content:"\2713"; position:absolute; left:0; top:13px; width:23px; height:23px; border-radius:50%; background:linear-gradient(to bottom, var(--gold), var(--amber)); color:#0f172a; font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; box-shadow:0 0 16px rgba(250,204,21,.3); }

/* ---- faq ---- */
.faq__item{ border-bottom:1px solid var(--line); }
.faq__q{ width:100%; text-align:left; background:none; border:0; cursor:pointer; font-family:var(--font-sans); font-weight:600; font-size:17px; color:#fff; padding:20px 40px 20px 0; position:relative; }
.faq__q::after{ content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-size:24px; font-weight:400; color:var(--gold); transition:transform .3s ease; }
.faq__item.open .faq__q::after{ content:"\2212"; }
.faq__a{ overflow:hidden; max-height:0; transition:max-height .3s ease; }
.faq__a p{ margin:0 0 20px; color:var(--zinc-400); }

/* ---- footer ---- */
.site-footer{ padding:48px 0; text-align:center; color:var(--zinc-500); font-size:14px; border-top:1px solid var(--line); margin-top:24px; }
.site-footer .brand__word{ font-size:18px; }

/* ---- reduce motion: keep gentle fades, drop movement + looping shimmer ---- */
@media (prefers-reduced-motion:reduce){
  *{ scroll-behavior:auto; }
  .reveal{ transform:none; }
  .gold-shine, .shine-line::after{ animation:none; }
  .intro-slide-left, .intro-slide-right, .intro-pop, .intro-rise{ animation:intro-rise .4s ease-out both; }
  .lift:hover, .card:hover, .btn-gold:hover, .btn-ghost:hover{ transform:none; }
}
