/* ============================================================================
   POTENTIALLY.BE - Warm Signal visual system | canonical mobile web MVP

   Public steps use warm paper surfaces. Snapshot, checkout, and paid report
   moments use the darkroom canvas. Red is the emotional brand signal, ember is
   action, and the spectrum gradient is reserved for the pattern mark.
   ============================================================================ */

:root{
  /* Paper - daylight surfaces (landing, onboarding, assessment) */
  --paper:#FFF5EA;
  --paper-2:#FFFFFF;
  --paper-sunk:#F4E3D2;
  --ink:#17100D;
  --ink-soft:#66534A;
  --line:#E9D8C6;

  /* Ink - the darkroom (snapshot reveal, checkout) */
  --canvas:#0B0708;
  --canvas-2:#151012;
  --raised:#1D1518;
  --raised-2:#281D21;
  --on-dark:#FFF5E8;
  --on-dark-soft:#B8ADBE;
  --line-dark:#3A2A2D;

  /* Warm Signal - red is the brand signal; ember is action */
  --brand-red:#E84D3D;
  --emotion-coral:#FF6B5E;
  --accent:#FF7A3D;
  --accent-bright:#FFB05C;
  --accent-ink:#260A05;
  --accent-soft:#FFE1D5;
  --accent-soft-dark:#4A2117;

  /* Potential Spectrum - pattern mark ONLY */
  --spec-1:#4F7DFF;
  --spec-2:#8B5CF6;
  --spec-3:#FF7A3D;

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  --max:600px;
  --topbar-h:58px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
html{ overflow-x:hidden; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* The reveal + checkout screens enter the darkroom.
   mvp.js sets <body data-screen="snapshot|checkout"> */
body[data-screen="snapshot"],
body[data-screen="checkout"],
body[data-screen="report"]{
  background:var(--canvas);
  color:var(--on-dark);
}

.wrap{ max-width:var(--max); margin:0 auto; padding:18px 22px max(64px,env(safe-area-inset-bottom)); }
.topbar{ min-height:var(--topbar-h);display:flex;justify-content:space-between;align-items:center;padding:12px 22px;max-width:var(--max);margin:0 auto; }
body[data-screen="assessment"]{ --max:960px; }
body[data-screen="onboarding"]{ --max:920px; }
.brand{ font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:-.02em;color:inherit;text-decoration:none;white-space:nowrap; }
.brand-public{ font-size:22px; }
.brand-dot{ color:var(--accent); }
.brand-be{ color:var(--brand-red); }
.tag{ font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;white-space:nowrap; }
body[data-screen="snapshot"] .tag,
body[data-screen="checkout"] .tag,
body[data-screen="report"] .tag{ color:var(--on-dark-soft); }

h1,h2{ font-family:var(--serif);font-weight:600;letter-spacing:-.025em;line-height:1.08; }
.kicker{ font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:700;margin:0 0 16px; }
.lead{ font-size:17px;line-height:1.5;color:var(--ink-soft);max-width:32ch; }
body[data-screen="snapshot"] .lead,
body[data-screen="checkout"] .lead,
body[data-screen="report"] .lead{ color:var(--on-dark-soft); }

/* ---------------- Buttons ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--accent);color:var(--accent-ink);border:none;border-radius:100px;
  font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:-.01em;
  padding:15px 26px;cursor:pointer;text-decoration:none;
  min-height:50px;
  box-shadow:0 8px 24px rgba(255,122,61,.28);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),filter .18s;
}
.btn:hover{ transform:translateY(-2px);filter:brightness(1.04);box-shadow:0 14px 32px rgba(255,122,61,.36); }
.btn:active{ transform:translateY(0) scale(.99); }
.btn[disabled]{ opacity:.4;cursor:not-allowed;transform:none;box-shadow:none; }
.btn-ghost{ background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none; }
.btn-ghost:hover{ filter:none;box-shadow:none;transform:translateY(-1px); }
body[data-screen="snapshot"] .btn-ghost,
body[data-screen="checkout"] .btn-ghost,
body[data-screen="report"] .btn-ghost{ color:var(--on-dark);border-color:var(--line-dark); }
.actions{ display:flex;gap:12px;align-items:center;margin-top:24px; }

/* ---------------- Landing ---------------- */
.hero{ position:relative;min-height:calc(100svh - var(--topbar-h));display:grid;align-content:center;padding-top:0;padding-bottom:max(52px,env(safe-area-inset-bottom));overflow:hidden; }
.hero > *:not(.landing-mark){ position:relative;z-index:1; }
.landing-mark{
  position:absolute;left:50%;top:42%;width:min(78vw,420px);height:min(78vw,420px);
  margin:0;transform:translate(-50%,-58%);opacity:.18;z-index:0;pointer-events:none;
}
.hero h1{ font-size:clamp(38px,10.5vw,56px);line-height:1.02;margin:0 0 16px;max-width:15ch; }
.hero .lead{ margin:0; }
.hero .actions{ margin-top:22px; }
.hero .btn{ width:100%;max-width:360px; }
.trust-note{ margin-top:14px;font-size:13px;color:var(--ink-soft);text-align:left; }
.dev-tools{
  position:absolute;left:22px;right:22px;bottom:max(12px,env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:10px;z-index:2;
}
.dev-skip{
  border:1px dashed rgba(102,83,74,.45);background:rgba(255,255,255,.42);color:var(--ink-soft);
  border-radius:999px;padding:7px 11px;font-family:var(--sans);font-size:12px;font-weight:700;
  cursor:pointer;box-shadow:none;
}
.dev-skip:hover{ border-color:var(--accent);color:var(--ink);background:rgba(255,255,255,.7); }
.dev-skip[disabled]{ opacity:.55;cursor:wait; }
.dev-status{ font-size:12px;color:var(--ink-soft); }

/* ---------------- Onboarding ---------------- */
.step{ animation:rise .45s var(--ease) both; }
@keyframes rise{ from{opacity:0;transform:translateY(10px);} to{opacity:1;transform:none;} }
.q-title{ font-size:clamp(28px,7vw,38px);line-height:1.08;margin:10px 0 22px;max-width:17ch; }
.onboard-step{ position:relative;width:100%;max-width:900px;margin:0 auto; }
.onboard-name{ max-width:900px;padding-top:clamp(16px,5vh,48px); }
.onboard-name .q-title{
  max-width:none;font-size:clamp(40px,4.2vw,54px);line-height:1.02;white-space:nowrap;margin-bottom:12px;color:var(--ink);
}
.onboard-name .lead{ max-width:32ch;font-size:17px;margin-bottom:20px; }
.name-row{ display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:10px;align-items:center;margin-top:10px;max-width:620px; }
.name-field{ margin:0;min-height:52px;padding-top:13px;padding-bottom:13px; }
.name-row .btn{ min-height:52px;padding-left:20px;padding-right:20px; }
.onboard-options-step{ max-width:900px;padding-top:clamp(8px,2vh,22px); }
.onboard-options-step .q-title{ max-width:none;font-size:clamp(34px,3.3vw,44px);line-height:1.04;white-space:nowrap;margin-bottom:18px;color:var(--ink); }
.onboard-options-step .opts,
.onboard-options-step .echo,
.onboard-options-step .consent,
.onboard-options-step .actions,
.onboard-options-step .err{ max-width:760px; }
.field{
  width:100%;font-size:18px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;
  background:var(--paper-2);color:var(--ink);font-family:var(--sans);outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.field:focus{ border-color:var(--accent);box-shadow:0 0 0 4px rgba(255,122,61,.17); }
.opts{ display:grid;grid-template-columns:1fr;gap:10px;margin:4px 0 8px; }
.opt{
  display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:14px;
  min-height:58px;padding:14px 17px;cursor:pointer;background:var(--paper-2);font-size:16px;
  transition:border-color .16s,background .16s,transform .12s;
}
.opt:hover{ border-color:var(--accent);transform:translateY(-1px); }
.opt.selected{ border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px rgba(255,122,61,.15); }
.opt input{ accent-color:var(--accent);width:18px;height:18px;flex:0 0 auto; }
.echo{
  font-size:14px;line-height:1.38;background:var(--accent-soft);
  border-radius:14px;padding:11px 13px;margin:8px 0 10px;border:1px solid #FFC8B9;
  box-shadow:0 14px 34px rgba(232,77,61,.10);
  animation:rise .4s var(--ease) both;
}
.consent{ display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--ink-soft);margin-top:10px; }
.consent input{ margin-top:3px;accent-color:var(--accent);width:18px;height:18px;flex:0 0 auto; }
.progress-dots{ display:flex;gap:8px;margin-bottom:20px; }
.progress-dots i{ width:26px;height:4px;border-radius:2px;background:var(--line);transition:background .3s; }
.progress-dots i.on{ background:var(--accent); }
.err{ color:#B3261E;font-size:14px;margin-top:10px; }

/* ---------------- Assessment ---------------- */
.assessment-shell{
  width:100%;max-width:900px;margin:0 auto;
  padding:clamp(6px,1.6vh,18px) 0 max(24px,env(safe-area-inset-bottom));
}
.assessment-top{ display:flex;align-items:center;gap:12px;margin:0 0 12px; }
.portrait{ width:42px;height:42px;flex:0 0 42px; }
.assess-count{ font-size:14px;color:var(--ink);font-weight:800;letter-spacing:-.01em; }
.assess-instruction{ font-size:13px;color:var(--ink-soft);font-weight:500; }
.prompt{
  font-family:var(--serif);font-size:clamp(25px,2.1vw,32px);line-height:1.08;
  margin:0 0 14px;letter-spacing:-.012em;max-width:none;white-space:nowrap;color:var(--ink);
}
.choice-grid{ display:grid;grid-template-columns:1fr;gap:10px; }
.choice{
  min-height:88px;border:1px solid var(--line);border-radius:16px;padding:14px 14px 14px 18px;background:var(--paper-2);
  display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:16px;align-items:center;
  box-shadow:0 10px 28px rgba(72,38,18,.04);
  transition:border-color .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease);
}
.choice.picked-most{ border-color:var(--accent);background:#FFF9F4;box-shadow:0 0 0 3px rgba(255,122,61,.12); }
.choice.picked-least{ border-color:rgba(23,16,13,.42);background:#FFFDFB;box-shadow:0 0 0 3px rgba(23,16,13,.06); }
.choice-word{ font-size:20px;line-height:1.18;font-weight:800;letter-spacing:-.012em; }
.choice-help{ font-size:16px;line-height:1.32;color:var(--ink-soft);margin-top:5px; }
.choice-actions{ display:flex;gap:8px;margin-top:0;align-self:stretch; }
.pick{
  flex:1;border:1px solid var(--line);background:var(--paper-sunk);border-radius:10px;padding:9px;
  min-height:44px;font-size:13px;font-weight:800;cursor:pointer;color:var(--ink-soft);letter-spacing:.02em;
  transition:all .14s var(--ease);
}
body[data-screen="assessment"] .wrap{ padding-top:8px;padding-bottom:max(20px,env(safe-area-inset-bottom)); }
body[data-screen="assessment"] .actions{ margin-top:16px; }
.assessment-actions .btn{ min-width:140px; }
.pick.most.on{ background:var(--accent);color:var(--accent-ink);border-color:var(--accent); }
.pick.least.on{ background:var(--ink);color:var(--paper);border-color:var(--ink); }
.breath{ text-align:center;padding:48px 0; }
.breath p{ font-family:var(--serif);font-size:23px;line-height:1.35;max-width:22ch;margin:0 auto; }

/* ---------------- Compose (darkroom intro) ---------------- */
.compose{ min-height:calc(100svh - var(--topbar-h) - 70px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;text-align:center; }
.compose-mark{ width:min(64vw,290px);height:min(64vw,290px);margin:0 auto; }
#clines{ position:relative;width:min(92vw,560px);min-height:128px; }
.compose-line{
  position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;
  font-family:var(--serif);font-size:clamp(22px,6vw,30px);line-height:1.3;letter-spacing:-.01em;
  max-width:none;color:var(--on-dark);
  opacity:0;transform:translateY(8px);filter:blur(6px);
  transition:opacity .9s var(--ease-soft),transform .9s var(--ease-soft),filter .9s var(--ease-soft);
}
.compose-line.show{ opacity:1;transform:none;filter:none; }
.compose-line.dim{ opacity:0;filter:none;transform:translateY(-8px); }

/* ---------------- Snapshot reveal ---------------- */
.reveal-name{ font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-soft);font-weight:600; }

/* progress spine (replaces nothing in old markup; used by upgraded mvp.js) */
.spine{ display:flex;gap:7px;justify-content:center;margin:14px 0 4px; }
.spine i{ width:7px;height:7px;border-radius:50%;background:var(--line-dark);transition:all .4s var(--ease); }
.spine i.on{ background:var(--accent);box-shadow:0 0 12px rgba(255,122,61,.72); }
.spine i.done{ background:var(--on-dark-soft); }

/* the insight card - screenshot-sized, develops in like a photograph */
.card{
  position:relative;border:1px solid var(--line-dark);border-radius:24px;
  padding:34px 28px 30px;margin:16px 0;background:var(--raised);overflow:hidden;
  min-height:clamp(390px,56svh,580px);display:flex;flex-direction:column;justify-content:center;
  opacity:0;transform:translateY(22px) scale(.985);filter:blur(14px) brightness(.5);
  animation:develop .9s var(--ease-soft) both;
}
.card-mark{
  position:absolute;right:-62px;top:50%;width:240px;height:240px;
  transform:translateY(-50%);opacity:.12;pointer-events:none;
}
.card.identity .label,.card.identity .text{ position:relative;z-index:1; }
@keyframes develop{ to{opacity:1;transform:none;filter:blur(0) brightness(1);} }
.card .label{ font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-soft);font-weight:700;margin-bottom:18px; }
.card .text{ font-family:var(--serif);font-weight:500;font-size:clamp(24px,6.4vw,32px);line-height:1.27;letter-spacing:-.015em;color:var(--on-dark); }
.card.signals{
  background:
    radial-gradient(circle at 18% 18%, rgba(255,122,61,.2), transparent 34%),
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,245,237,.94));
  border-color:rgba(255,122,61,.42);
}
.card.signals .label{ color:var(--brand-red); }
.card.signals .text{ color:var(--ink);font-size:clamp(21px,5.4vw,27px); }
.card-chips{
  list-style:none;margin:24px 0 0;padding:0;display:grid;gap:10px;
}
.card-chips li{
  position:relative;padding:14px 16px 14px 42px;border-radius:16px;
  background:rgba(255,255,255,.72);border:1px solid rgba(232,77,61,.18);
  color:var(--ink);font-weight:800;font-size:clamp(15px,4.1vw,18px);line-height:1.22;
  box-shadow:0 12px 30px rgba(65,24,10,.08);
}
.card-chips li::before{
  content:"";position:absolute;left:17px;top:50%;width:10px;height:10px;border-radius:50%;
  transform:translateY(-50%);background:var(--accent);box-shadow:0 0 0 5px rgba(255,122,61,.14);
}

/* provenance - the moat, made visible */
.card.provenance{ background:var(--canvas-2);border-color:rgba(139,92,246,.34); }
.card.provenance .label{
  display:inline-flex;align-items:center;gap:8px;align-self:flex-start;color:var(--accent-ink);
  padding:7px 13px;border-radius:100px;letter-spacing:.14em;
  background:linear-gradient(90deg,var(--spec-1),var(--spec-2),var(--spec-3));
}
.card.provenance .label::before{ content:""; }

/* mirror - honest edge, styled as trusted not negative */
.card.confidence,.card.mirror{ background:var(--raised); }
.card.mirror .label{ color:var(--accent); }
.card.confidence .text{ font-size:17px;font-family:var(--sans);color:var(--on-dark-soft);line-height:1.5; }

/* withheld loop - leads to upgrade */
.card.loop{ background:var(--accent);border-color:transparent; }
.card.loop .label{ color:rgba(28,20,4,.62); }
.card.loop .text{ color:var(--accent-ink); }

.reveal-foot{ text-align:center;margin-top:26px;color:var(--on-dark-soft);font-size:13px;line-height:1.5; }
.loading{ text-align:center;padding:64px 0;color:var(--on-dark-soft);font-family:var(--serif);font-size:21px; }
body[data-screen="assessment"] .loading,
body[data-screen="onboarding"] .loading{ color:var(--ink-soft); }

/* ---------------- Email capture ---------------- */
.email-gate{
  min-height:calc(100svh - var(--topbar-h) - 80px);display:grid;align-content:center;
}
.email-mark{ width:180px;height:180px;margin:0 auto 18px;opacity:.78; }
.email-field{ margin-top:8px;background:var(--raised);color:var(--on-dark);border-color:var(--line-dark); }
.email-field:focus{ border-color:var(--accent);box-shadow:0 0 0 4px rgba(255,122,61,.18); }
.email-actions{ align-items:stretch; }

/* drawn underline used inside provenance text: <span class="draw">...</span> */
.draw{ position:relative;white-space:nowrap; }
.draw::after{
  content:"";position:absolute;left:0;bottom:-2px;height:3px;width:100%;border-radius:3px;
  background:linear-gradient(90deg,var(--spec-1),var(--spec-3));
  transform:scaleX(0);transform-origin:left;animation:drawline 1.1s var(--ease) .6s forwards;
}
@keyframes drawline{ to{transform:scaleX(1);} }

/* share affordance (upgraded mvp.js) */
.share-row{ display:flex;gap:12px;align-items:center;margin-top:8px; }
.sharebtn{
  flex:0 0 auto;width:50px;height:50px;border-radius:50%;background:transparent;
  border:1px solid var(--line-dark);color:var(--on-dark);display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .18s,border-color .18s;
}
.sharebtn:hover{ background:var(--raised-2);border-color:var(--accent); }

/* ---------------- Upgrade ---------------- */
.upgrade{ margin-top:28px;border:1px solid var(--line-dark);border-radius:24px;padding:30px 26px;background:var(--raised); }
body[data-screen="snapshot"] .upgrade{ background:var(--raised); }
.upgrade-kicker{ font-size:11.5px;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-weight:700; }
.upgrade-title{ font-size:clamp(28px,7vw,34px);margin:8px 0 12px;font-family:var(--serif); }
.upgrade-copy{ font-size:16px;line-height:1.5;color:var(--on-dark-soft);margin:0 0 18px; }
.upgrade-list{ list-style:none;margin:0 0 18px;padding:0; }
.upgrade-list li{ position:relative;padding:11px 0 11px 26px;border-top:1px solid var(--line-dark);font-size:15px;line-height:1.4;color:var(--on-dark); }
.upgrade-list li:first-child{ border-top:none; }
.upgrade-list li::before{ content:"*";position:absolute;left:0;top:11px;color:var(--accent); }
.upgrade-price{ font-family:var(--serif);font-size:32px;font-weight:600;color:var(--on-dark); }
.upgrade-risk{ font-size:12.5px;color:var(--on-dark-soft);margin-top:10px; }
.upgrade-options{ display:grid;grid-template-columns:1fr;gap:14px;margin-top:22px; }
.upgrade-option{
  position:relative;border:1px solid var(--line-dark);border-radius:18px;padding:22px 18px;
  background:var(--canvas-2);display:grid;gap:12px;
}
.upgrade-option.recommended{ border-color:var(--accent);box-shadow:0 0 0 1px rgba(255,122,61,.28),0 16px 44px rgba(0,0,0,.24); }
.upgrade-badge{
  justify-self:start;background:var(--accent);color:var(--accent-ink);border-radius:999px;
  padding:5px 10px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
}
.upgrade-option-title{ font-family:var(--serif);font-size:25px;line-height:1.08;margin:0;color:var(--on-dark); }
.upgrade-unlock{ margin:0;color:var(--accent-bright);font-size:14px;font-weight:700; }
.upgrade-price-row{ display:flex;align-items:baseline;gap:10px;flex-wrap:wrap; }
.upgrade-was{ color:var(--on-dark-soft);font-size:14px;text-decoration:line-through; }
.upgrade-sale{ margin:-8px 0 0;color:var(--accent-bright);font-size:12px;font-weight:700; }
.upgrade-option .upgrade-list{ margin-bottom:2px; }
.upgrade-option .btn{ width:100%;margin-top:2px; }

@media (min-width:720px){
  body[data-screen="snapshot"],
  body[data-screen="report"]{ --max:880px; }
  .upgrade-option{
    grid-template-columns:minmax(150px,.9fr) minmax(220px,1.25fr) minmax(150px,.7fr);
    grid-template-areas:
      "head copy price"
      "title copy action";
    align-items:center;padding:22px 24px;column-gap:20px;
  }
  .upgrade-option .upgrade-badge,
  .upgrade-option .upgrade-kicker{ grid-area:head;align-self:start; }
  .upgrade-option .upgrade-kicker{ margin-top:38px; }
  .upgrade-option-title{ grid-area:title;font-size:27px; }
  .upgrade-option .upgrade-copy,
  .upgrade-option .upgrade-unlock,
  .upgrade-option .upgrade-list,
  .upgrade-option .upgrade-sale{ grid-area:copy; }
  .upgrade-option .upgrade-price-row{ grid-area:price;justify-content:flex-end; }
  .upgrade-option .btn{ grid-area:action;align-self:end; }
  .upgrade-option .upgrade-list li{ font-size:14px;padding-top:7px;padding-bottom:7px; }
}

@media (min-width:560px){
  body[data-screen="onboarding"] .wrap{ padding-top:14px;padding-bottom:max(28px,env(safe-area-inset-bottom)); }
}

@media (min-width:720px){
  body[data-screen="onboarding"] .progress-dots{
    position:absolute;right:0;top:12px;flex-direction:column;gap:7px;margin:0;
  }
  body[data-screen="onboarding"] .progress-dots i{ width:4px;height:28px; }
  body[data-screen="onboarding"] .onboard-name,
  body[data-screen="onboarding"] .onboard-options-step{ padding-right:54px; }
}

@media (max-width:430px){
  .wrap{ padding:14px 20px max(46px,env(safe-area-inset-bottom)); }
  body[data-screen="assessment"] .wrap{ padding-top:8px;padding-bottom:max(24px,env(safe-area-inset-bottom)); }
  .topbar{ min-height:54px;padding:10px 20px; }
  .brand{ font-size:20px; }
  .brand-public{ font-size:21px; }
  .tag{ font-size:10px;letter-spacing:.1em; }
  .hero{ min-height:calc(100svh - 54px);padding-top:0;padding-bottom:max(42px,env(safe-area-inset-bottom)); }
  .landing-mark{ width:min(90vw,330px);height:min(90vw,330px);top:38%;opacity:.16; }
  .hero h1{ font-size:clamp(37px,10.3vw,45px);max-width:14ch;margin-bottom:14px; }
  .lead{ font-size:16px;max-width:31ch; }
  .hero .actions{ margin-top:18px; }
  .trust-note{ margin-top:12px; }
  .dev-tools{ left:20px;right:20px;bottom:max(10px,env(safe-area-inset-bottom)); }
  .q-title{ font-size:clamp(27px,7.4vw,34px);margin-bottom:18px; }
  .onboard-step{ max-width:none; }
  .onboard-name{ padding-top:12px; }
  .onboard-name .q-title{ font-size:clamp(29px,8.2vw,34px);white-space:nowrap;max-width:none;margin-bottom:10px; }
  .onboard-name .lead{ font-size:16px;margin-bottom:18px;max-width:28ch; }
  .name-row{ grid-template-columns:minmax(0,1fr) 126px;gap:8px; }
  .name-field,.name-row .btn{ min-height:52px; }
  .name-row .btn{ padding-left:14px;padding-right:14px; }
  .onboard-options-step{ padding-top:4px; }
  .onboard-options-step .q-title{ font-size:clamp(31px,9vw,38px);white-space:normal;max-width:12ch;margin-bottom:18px; }
  .opt{ min-height:54px;padding:12px 14px;font-size:15px; }
  .actions{ margin-top:20px; }
  .actions .btn{ flex:1; }
  .assessment-shell{ padding-top:0; }
  .assessment-top{ gap:10px;margin-bottom:8px; }
  .portrait{ width:42px;height:42px;flex-basis:42px; }
  .assess-count{ font-size:12px; }
  .assess-instruction{ font-size:12px; }
  .prompt{ font-size:clamp(22px,6.2vw,26px);line-height:1.12;margin-bottom:12px;max-width:18ch;white-space:normal; }
  .choice-grid{ grid-template-columns:1fr;gap:8px; }
  .choice{
    min-height:58px;padding:9px 9px 9px 12px;
    display:grid;grid-template-columns:minmax(0,1fr) 112px;grid-template-rows:auto;gap:10px;align-items:center;
  }
  .choice-word{ font-size:15px;line-height:1.18; }
  .choice-help{ display:none; }
  .choice-actions{ margin-top:0;gap:6px;align-self:stretch; }
  .pick{
    min-height:38px;padding:0 6px;border-radius:9px;
    display:flex;align-items:center;justify-content:center;font-size:12px;
  }
  body[data-screen="assessment"] .actions{ margin-top:14px; }
  .compose{ min-height:calc(100svh - 110px); }
  .compose-mark{ width:min(62vw,240px);height:min(62vw,240px); }
  #clines{ min-height:118px; }
  .card{ min-height:clamp(350px,52svh,500px);padding:28px 24px 26px;margin:12px 0; }
  .card .label{ margin-bottom:14px; }
  .card .text{ font-size:clamp(23px,6.2vw,28px); }
  .card-chips{ margin-top:18px;gap:8px; }
  .card-chips li{ padding:12px 14px 12px 38px;font-size:15px;border-radius:14px; }
  .share-row{ gap:10px; }
  .sharebtn{ width:48px;height:48px; }
  .reveal-foot{ margin-top:16px;font-size:12.5px; }
  .upgrade{ margin-top:18px;padding:24px 20px; }
}

@media (max-width:379px){
  .tag{ display:none; }
  .wrap{ padding-left:18px;padding-right:18px; }
  .hero h1{ font-size:36px; }
  .landing-mark{ width:min(88vw,300px);height:min(88vw,300px); }
  .card{ min-height:clamp(330px,50svh,470px);padding:25px 21px 24px; }
  .card .text{ font-size:23px; }
  .onboard-name .q-title{ font-size:32px; }
  .onboard-options-step .q-title{ font-size:30px; }
  .opt{ padding:11px 13px; }
  .choice{ grid-template-columns:minmax(0,1fr) 102px;gap:8px;min-height:54px; }
  .choice-word{ font-size:14px; }
  .pick{ font-size:11px;min-height:35px;padding:0 4px; }
  .prompt{ font-size:19px; }
}

@media (max-width:340px){
  .name-row{ grid-template-columns:1fr; }
}

@media (max-height:760px) and (max-width:430px){
  body[data-screen="assessment"] .wrap{ padding-top:4px;padding-bottom:18px; }
  .assessment-top{ margin-bottom:6px; }
  .portrait{ width:42px;height:42px;flex-basis:42px; }
  .prompt{ font-size:20px;line-height:1.12;margin-bottom:8px; }
  .choice-grid{ gap:6px; }
  .choice{ min-height:50px;padding:7px 8px 7px 10px;border-radius:12px; }
  .choice-word{ font-size:14px;line-height:1.14; }
  .pick{ min-height:32px;font-size:11px;border-radius:8px; }
  body[data-screen="assessment"] .actions{ margin-top:10px; }
}

/* ---------------- Report (paid) ---------------- */
.report-toolbar{
  position:sticky;top:0;z-index:4;display:flex;gap:10px;align-items:center;justify-content:flex-end;
  padding:10px 0 14px;background:linear-gradient(180deg,var(--canvas) 70%,rgba(11,7,8,0));
}
.report-toolbar .btn{ min-height:44px;padding:11px 18px;font-size:14px; }
.report-title{ padding:22px 0 4px; }
.report-delivery,.report-upsell{ margin-bottom:22px; }
.report-end{ padding-bottom:28px; }
.report-chips{ font-size:14px;color:var(--accent);margin-top:12px;font-weight:600; }
.report-scaffold{ border-left:3px solid var(--accent);padding:4px 0 4px 14px;margin:14px 0;font-size:16px;line-height:1.5; }

@media print{
  body{ background:#fff !important;color:#111 !important; }
  .topbar,.report-toolbar,.report-upsell,.report-end{ display:none !important; }
  .wrap{ max-width:none;padding:0; }
  .card{ break-inside:avoid;border-color:#ddd;background:#fff !important;color:#111 !important;box-shadow:none; }
  .card .label,.card .text,.upgrade-title,.upgrade-copy,.upgrade-kicker,.upgrade-list li{ color:#111 !important; }
}

/* ---------------- Motion safety ---------------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important;transition-duration:.001ms !important; }
  .card{ filter:none;opacity:1;transform:none; }
}
