/* =========================================================
   AI Visibility Check — check.css
   "Live AI visibility scan" — the board IS the report. Navy-black
   atmosphere, vivid orange primary, green/amber/red instrument
   accents. Self-contained (own reset + tokens + self-hosted fonts,
   zero 3rd-party). Token NAMES stay stable (--copper* etc.); only
   their VALUES are the orange system, so the JS/test class contract
   is untouched.
   ========================================================= */

/* ── Self-hosted fonts (zero third-party calls) ─────────── */
@font-face { font-family:"Geist"; font-style:normal; font-weight:400; font-display:swap; src:url("/ai-visibility-check/media/fonts/geist-400.woff2") format("woff2"); }
@font-face { font-family:"Geist"; font-style:normal; font-weight:600; font-display:swap; src:url("/ai-visibility-check/media/fonts/geist-600.woff2") format("woff2"); }
@font-face { font-family:"Geist"; font-style:normal; font-weight:700; font-display:swap; src:url("/ai-visibility-check/media/fonts/geist-700.woff2") format("woff2"); }
@font-face { font-family:"JetBrains Mono"; font-style:normal; font-weight:600; font-display:swap; src:url("/ai-visibility-check/media/fonts/jbmono-600.woff2") format("woff2"); }

/* ── Tokens ─────────────────────────────────────────────── */
body.aeo {
  --bg:#05080c;
  --bg-2:#071017;
  --surface:#141922;
  --surface-2:#10151c;
  --surface-raised:#1b202a;
  --glass-bg:rgba(255,255,255,.04);
  --hairline:rgba(255,255,255,.09);
  --hairline-2:rgba(255,255,255,.16);
  --line:#303844;

  --text:#f4f6f8;
  --text-2:#c2c8d2;
  --text-3:#8a93a1;
  --text-faint:#8a929e;
  --line-faint:#5b626d;

  --copper:#f29a78;
  --copper-bright:#ffb085;
  --copper-deep:#f05212;
  --copper-rgb:242,154,120;
  --orange2:#ff5b12;

  --emerald:#46df93;
  --amber:#ffb26b;
  --red:#ff7373;
  --blue:#89a7ff;

  --r-card:16px;
  --r-control:10px;
  --r-pill:999px;

  --shadow-card:inset 0 1px 0 rgba(255,255,255,.04), 0 24px 50px -28px rgba(0,0,0,.8);
  --shadow-pop:0 34px 90px -30px rgba(0,0,0,.78);
  --glow-cta:0 16px 46px -12px rgba(240,82,18,.42), inset 0 1px 0 rgba(255,255,255,.22);

  --dur-fast:160ms;
  --dur:320ms;
  --dur-slow:720ms;
  --ease:cubic-bezier(.16,1,.3,1);

  --font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --container:1240px;
  --pad-x:clamp(1.1rem, 0.5rem + 2.6vw, 1.6rem);
}

/* ── Reset ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; background:var(--bg); overflow-x:clip; }
body.aeo {
  margin:0;
  min-height:100vh;
  font-family:var(--font-sans);
  color:var(--text);
  background:
    radial-gradient(900px 540px at 75% 4%, rgba(242,154,120,.18), transparent 62%),
    radial-gradient(780px 520px at 18% 20%, rgba(137,167,255,.07), transparent 62%),
    linear-gradient(180deg,#05080c 0%,#071017 42%,#05080c 100%);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* Perspective "scan plane" grid — the signature atmosphere. */
body.aeo::before {
  content:""; position:fixed; inset:-20% -10% auto 18%; height:760px; z-index:0;
  pointer-events:none; opacity:.4;
  background:
    repeating-linear-gradient(90deg,
      transparent 0 19px, rgba(255,255,255,.06) 20px, rgba(255,255,255,.06) 22px,
      transparent 24px 58px, rgba(242,154,120,.12) 60px, rgba(242,154,120,.12) 62px,
      transparent 64px 92px),
    linear-gradient(115deg, transparent 0%, rgba(255,255,255,.22) 48%, transparent 51%);
  filter:blur(.3px);
  transform:perspective(900px) rotateX(58deg) translateY(-70px);
  mask-image:linear-gradient(180deg, transparent 0%, #000 18%, #000 70%, transparent 100%);
}
body.aeo::after {
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.04),transparent 72px),
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.06),transparent 26%),
    linear-gradient(90deg,rgba(0,0,0,.32),transparent 22%,transparent 78%,rgba(0,0,0,.32));
}
body.aeo h1, body.aeo h2, body.aeo h3, body.aeo p, body.aeo ul, body.aeo figure { margin:0; }
body.aeo ul { list-style:none; padding:0; }
/* `hidden` must always win — author display rules would otherwise beat UA. */
body.aeo [hidden] { display:none !important; }
body.aeo a { color:inherit; text-decoration:none; }
body.aeo button { font-family:inherit; cursor:pointer; }
body.aeo ::selection { background:rgba(var(--copper-rgb),.3); color:#fff; }

.aeo-skip {
  position:absolute; left:-9999px; top:0; z-index:60;
  background:var(--orange2); color:#160d08; padding:.6rem 1rem; border-radius:0 0 var(--r-control) 0;
  font:600 .8rem/1 var(--font-mono);
}
.aeo-skip:focus { left:0; }
.aeo-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }

/* ── Shared bits ────────────────────────────────────────── */
.aeo-eyebrow {
  display:inline-flex; align-items:center; gap:.7rem;
  font:600 .72rem/1 var(--font-mono);
  letter-spacing:.28em; text-transform:uppercase; color:var(--copper);
}
.aeo-eyebrow::before {
  content:""; width:8px; height:8px; border-radius:50%; background:var(--copper);
  box-shadow:0 0 0 0 rgba(var(--copper-rgb),.6); animation:aeo-pulse 2.6s var(--ease) infinite;
}

/* ── Header ─────────────────────────────────────────────── */
.aeo-top {
  position:sticky; top:0; z-index:40;
  background:rgba(5,8,12,.82); backdrop-filter:blur(18px);
  border-bottom:1px solid var(--hairline);
}
.aeo-top__in {
  max-width:var(--container); margin-inline:auto; padding:0 var(--pad-x);
  height:72px; display:flex; align-items:center; justify-content:space-between;
}
.aeo-brand { display:inline-flex; align-items:center; gap:.65rem; font-weight:700; letter-spacing:-.03em; }
.aeo-brand__mark {
  width:24px; height:24px; border-radius:50%;
  background:conic-gradient(from 210deg, var(--copper-deep), var(--copper-bright), var(--copper), var(--copper-deep));
  position:relative; box-shadow:0 0 18px -2px rgba(var(--copper-rgb),.6);
}
.aeo-brand__mark::after { content:""; position:absolute; inset:7px; border-radius:50%; background:var(--bg); }
.aeo-brand__word { font-size:1.05rem; }
/* Specificity must beat the global `body.aeo a { color:inherit }` reset
   (0,1,2); a bare `.aeo-top__cta` (0,1,0) loses and the dark text turns
   near-white on the white pill — invisible. `body.aeo` prefix → (0,2,1). */
body.aeo .aeo-top__cta {
  display:inline-flex; align-items:center; gap:.6rem;
  font:700 .85rem/1 var(--font-sans); color:#0b0d10;
  padding:.62rem .62rem .62rem .95rem; border-radius:10px;
  background:#fff; box-shadow:0 8px 30px rgba(255,255,255,.08);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.aeo-top__cta span {
  display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 .3rem;
  background:#090d12; color:#fff; border-radius:7px; font-size:.85rem;
}
.aeo-top__cta:hover { transform:translateY(-1px); box-shadow:0 12px 36px rgba(255,255,255,.14); }
.aeo-brand:focus-visible, .aeo-top__cta:focus-visible, .aeo-skip:focus-visible {
  outline:2px solid var(--copper-bright); outline-offset:3px; border-radius:var(--r-control);
}

/* ── Layout shell ───────────────────────────────────────── */
body.aeo main {
  position:relative; z-index:1;
  max-width:var(--container); margin-inline:auto; padding:0 var(--pad-x);
}

/* ── Hero ───────────────────────────────────────────────── */
.aeo-hero {
  display:grid; gap:clamp(2rem, 1rem + 4vw, 3.6rem);
  align-items:start;
  padding-block:clamp(2.75rem, 1.5rem + 5vw, 5.75rem) clamp(2.5rem, 1.5rem + 3vw, 4.6rem);
}
@media (min-width:1240px) {
  .aeo-hero { grid-template-columns:minmax(0,1fr) 540px; }
  .aeo-hero__intro { position:sticky; top:96px; }
}
.aeo-hero__intro { display:grid; gap:1.6rem; }
.aeo-hero h1 {
  font-family:var(--font-sans); font-weight:700;
  font-size:clamp(2.85rem, 1rem + 9.1vw, 6.4rem); line-height:.93; letter-spacing:-.055em;
  color:var(--text-2); text-wrap:balance;
}
.aeo-hero h1 .aeo-h1-line { display:block; }
.aeo-accent { color:var(--copper-bright); text-shadow:0 0 38px rgba(242,154,120,.18); }
.aeo-sub {
  font-size:clamp(1.06rem, 0.99rem + 0.5vw, 1.32rem); line-height:1.5; color:var(--text-2);
  max-width:40ch;
}

/* Form — input + orange CTA framed in one urlbar. */
.aeo-form { display:grid; gap:1rem; }
.aeo-urlbar {
  display:flex; gap:12px; max-width:690px; padding:10px;
  border:1px solid var(--hairline-2); background:rgba(14,18,24,.84);
  border-radius:15px; box-shadow:0 18px 60px rgba(0,0,0,.24);
}
.aeo-field {
  position:relative; flex:1; display:flex; align-items:center;
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:var(--r-control);
  transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.aeo-field:focus-within { border-color:var(--copper); box-shadow:0 0 0 3px rgba(var(--copper-rgb),.18); }
.aeo-field input {
  width:100%; min-height:54px; padding:.9rem 1.05rem; border:0; outline:0; background:transparent;
  font-family:var(--font-sans); font-size:1rem; color:var(--text); text-overflow:ellipsis;
}
.aeo-field input::placeholder { color:var(--text-faint); }

.aeo-form button {
  display:inline-flex; align-items:center; gap:.7rem; justify-content:center; white-space:nowrap;
  min-height:54px; padding:.4rem 1.4rem; border:0; border-radius:var(--r-control);
  background:linear-gradient(180deg,#ff7422,#f05212); color:#fff; font-weight:700; font-size:.98rem;
  box-shadow:var(--glow-cta);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), filter var(--dur) var(--ease);
}
.aeo-form button:hover { transform:translateY(-2px); filter:brightness(1.05); box-shadow:0 22px 60px -12px rgba(240,82,18,.55), inset 0 1px 0 rgba(255,255,255,.25); }
.aeo-form button:focus-visible { outline:2px solid var(--copper-bright); outline-offset:3px; }
.aeo-btn__chip {
  width:30px; height:30px; display:grid; place-items:center; border-radius:7px;
  background:rgba(0,0,0,.28); color:#fff; font-size:1rem;
  transition:transform var(--dur) var(--ease);
}
.aeo-form button:hover .aeo-btn__chip { transform:translate(2px,-2px); }

.aeo-error { font-size:.92rem; color:var(--red); }

/* ── Board (the report) ─────────────────────────────────── */
/* min-width:0 — as a grid item the board's default min-width:auto would let it
   expand to content min-content and overflow its track on narrow screens. */
.aeo-board { position:relative; min-width:0; padding:1px; border-radius:26px;
  background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,.06),rgba(242,154,120,.22));
  box-shadow:var(--shadow-pop); }
.aeo-board__glow {
  position:absolute; inset:-80px 0; z-index:-1; pointer-events:none; border-radius:50%;
  background:radial-gradient(circle, rgba(242,154,120,.13), transparent 62%); filter:blur(18px);
}
.aeo-browser {
  position:relative; z-index:1;
  border:1px solid var(--hairline); border-radius:25px; overflow:hidden;
  background:rgba(16,20,27,.92);
}
.aeo-browser__bar {
  display:flex; align-items:center; gap:.5rem; height:46px; padding:0 1.1rem;
  border-bottom:1px solid var(--hairline); background:rgba(255,255,255,.035);
}
.aeo-dot { width:10px; height:10px; border-radius:50%; background:#5b6370; }
.aeo-dot:nth-child(1){ background:#f08069; } .aeo-dot:nth-child(2){ background:#d7b762; } .aeo-dot:nth-child(3){ background:#50cd84; }
.aeo-browser__addr {
  flex:1; margin-left:.6rem; height:24px; border-radius:var(--r-pill);
  background:rgba(0,0,0,.22); display:flex; align-items:center; padding:0 .75rem;
  font:600 .72rem/1 var(--font-mono); color:var(--text-faint); letter-spacing:.02em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.aeo-browser__screen { position:relative; padding:1.65rem; min-height:430px; transition:min-height var(--dur) var(--ease); }
.aeo-board.is-done .aeo-browser__screen { min-height:0; }

.aeo-screen-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.1rem; }
.aeo-screen-title h2 { font-size:1.55rem; font-weight:700; letter-spacing:-.04em; color:var(--text); }
.aeo-browser__live {
  font:600 .7rem/1 var(--font-mono); letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-faint); display:inline-flex; align-items:center; gap:.5rem;
}
.aeo-browser__live::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--line-faint); }
.aeo-board.is-scanning .aeo-browser__live { color:var(--emerald); }
.aeo-board.is-scanning .aeo-browser__live::before { background:var(--emerald); box-shadow:0 0 16px rgba(70,223,147,.8); animation:aeo-pulse-dot 1.3s infinite; }
.aeo-board.is-done .aeo-browser__live { color:var(--copper-bright); }
.aeo-board.is-done .aeo-browser__live::before { background:var(--copper-bright); }

/* Idle preview */
.aeo-idle { display:grid; place-items:center; gap:.85rem; padding:2.6rem 1rem; text-align:center; }
.aeo-board.is-scanning .aeo-idle, .aeo-board.is-done .aeo-idle { display:none; }
/* Idle "radar orb" — ported from the scan-box drop-in, namespaced + responsive
   (node offsets are %, so the orb scales with its clamp() width). The board's
   `.is-scanning .aeo-idle { display:none }` rule still hides it on scan start. */
.aeo-orb {
  position:relative; width:clamp(190px, 56vw, 240px); aspect-ratio:1; border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,148,97,.22) 0 7%, transparent 8% 100%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.035) 0 100%);
  box-shadow:0 0 44px rgba(255,117,64,.12), inset 0 0 60px rgba(255,255,255,.025);
}
.aeo-orb__rings {
  position:absolute; inset:0; border-radius:50%; border:1px solid rgba(255,142,96,.30);
  background:
    radial-gradient(circle, transparent 0 28%, rgba(255,255,255,.045) 28.5%, transparent 29.5% 100%),
    radial-gradient(circle, transparent 0 52%, rgba(255,142,96,.18) 52.5%, transparent 53.5% 100%),
    radial-gradient(circle, transparent 0 75%, rgba(255,255,255,.045) 75.5%, transparent 76.5% 100%),
    linear-gradient(90deg, transparent 49.6%, rgba(255,255,255,.06) 50%, transparent 50.4%),
    linear-gradient(0deg, transparent 49.6%, rgba(255,255,255,.06) 50%, transparent 50.4%);
}
.aeo-orb__sweep {
  position:absolute; inset:0; border-radius:50%;
  background:conic-gradient(from 0deg, transparent 0deg, transparent 266deg, rgba(255,128,74,.025) 292deg, rgba(255,128,74,.22) 324deg, rgba(255,209,177,.72) 358deg, transparent 360deg);
  filter:drop-shadow(0 0 18px rgba(255,129,76,.46)); animation:aeo-orb-spin 4.8s linear infinite;
}
.aeo-orb__line {
  position:absolute; top:50%; left:50%; width:50%; height:1px; transform-origin:0 50%;
  background:linear-gradient(90deg, rgba(255,229,214,.95), rgba(255,126,73,.62), transparent);
  box-shadow:0 0 18px rgba(255,128,75,.72); animation:aeo-orb-spin 4.8s linear infinite;
}
.aeo-orb__pulse {
  position:absolute; left:50%; top:50%; width:56px; height:56px; margin:-28px 0 0 -28px;
  border-radius:50%; border:1px solid rgba(255,153,104,.62); animation:aeo-orb-pulse 2.6s ease-out infinite;
}
.aeo-orb__pulse--two { animation-delay:.9s; border-color:rgba(93,241,162,.44); }
.aeo-orb__core {
  position:absolute; left:50%; top:50%; width:58px; height:58px; margin:-29px 0 0 -29px;
  border-radius:50%; display:grid; place-items:center; z-index:4;
  color:#ffbb95; font:700 .82rem/1 var(--font-mono);
  background:radial-gradient(circle at 42% 36%, rgba(255,219,191,.38), rgba(255,123,69,.21) 43%, rgba(17,22,30,.96) 73%);
  box-shadow:0 0 32px rgba(255,118,67,.48), 0 0 64px rgba(255,118,67,.20), inset 0 0 18px rgba(255,255,255,.07);
}
.aeo-orb__node {
  position:absolute; width:34px; height:34px; border-radius:12px; display:grid; place-items:center; z-index:3;
  color:rgba(255,186,149,.68); font:700 .7rem/1 var(--font-mono);
  background:rgba(255,135,80,.075); border:1px solid rgba(255,135,80,.22);
  box-shadow:0 0 16px rgba(255,135,80,.05), inset 0 0 18px rgba(255,255,255,.025);
  animation:aeo-orb-node 4.8s linear infinite;
}
.aeo-orb__node--a { left:50%; top:3.3%; transform:translateX(-50%); animation-delay:.1s; }
.aeo-orb__node--b { right:8.3%; top:24.2%; animation-delay:.9s; }
.aeo-orb__node--c { right:9.6%; bottom:22.5%; animation-delay:1.7s; }
.aeo-orb__node--d { left:50%; bottom:3.75%; transform:translateX(-50%); animation-delay:2.5s; }
.aeo-orb__node--e { left:9.6%; bottom:22.5%; animation-delay:3.3s; }
.aeo-orb__node--f { left:8.3%; top:24.2%; animation-delay:4s; }
@keyframes aeo-orb-spin { to { transform:rotate(360deg); } }
@keyframes aeo-orb-pulse { 0% { transform:scale(.7); opacity:.72; } 70% { opacity:.14; } 100% { transform:scale(3.4); opacity:0; } }
@keyframes aeo-orb-node {
  0%,65%,100% { color:rgba(255,186,149,.47); border-color:rgba(255,135,80,.16); background:rgba(255,135,80,.055); box-shadow:0 0 12px rgba(255,135,80,.04), inset 0 0 18px rgba(255,255,255,.018); }
  72%,84% { color:rgba(255,232,216,.98); border-color:rgba(255,178,130,.68); background:rgba(255,139,82,.13); box-shadow:0 0 28px rgba(255,128,74,.42), inset 0 0 20px rgba(255,128,74,.13); }
}
.aeo-idle__label { font-weight:600; color:var(--text-2); }
.aeo-idle__hint { font-size:.9rem; color:var(--text-faint); }

/* ── Report: scanbox (header + checks) then result ───────── */
/* minmax(0,1fr) columns at every nested-grid level — without it, grid items
   default to min-width:auto and blow out past the board on narrow screens. */
.aeo-report { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.aeo-report.is-revealed { animation:aeo-panel-in .5s var(--ease) both; }
.aeo-scanbox {
  border:1px solid var(--hairline); border-radius:18px; padding:1.25rem;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.022));
  display:grid; grid-template-columns:minmax(0,1fr); gap:.85rem;
}
/* minmax(0,1fr) here too (see note above): without it the phase row's grid
   track grows to max-content and the long cycling phase text overflows the
   board on mobile instead of letting `.aeo-scan__phase` ellipsize. */
.aeo-scanhead { display:grid; grid-template-columns:minmax(0,1fr); gap:.8rem; }
.aeo-scan__head { display:flex; align-items:center; gap:.8rem; }
.aeo-spinner {
  width:18px; height:18px; border-radius:50%; flex:none;
  border:2px solid rgba(255,255,255,.16); border-top-color:var(--orange2);
  animation:aeo-spin 1s linear infinite;
}
.aeo-scan__phase { font-weight:600; color:var(--text); font-size:.94rem; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.aeo-scan__timer { margin-left:auto; font:600 .78rem/1 var(--font-mono); color:var(--amber); letter-spacing:.06em; flex:none; }
.aeo-progress { height:8px; border-radius:var(--r-pill); background:rgba(255,255,255,.08); overflow:hidden; }
.aeo-progress__bar {
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg, var(--orange2), var(--amber), var(--emerald));
  border-radius:var(--r-pill);
  transition:width var(--dur-slow) var(--ease);
}

/* Check rows — the scan IS the readiness list */
.aeo-checks { display:grid; grid-template-columns:minmax(0,1fr); gap:.5rem; }
.aeo-check {
  display:flex; align-items:center; gap:.7rem;
  padding:.7rem .8rem; border-radius:12px;
  background:rgba(0,0,0,.16); border:1px solid var(--hairline);
  border-left:3px solid var(--line-faint);
  animation:aeo-row-in .45s var(--ease) both;
}
.aeo-check__icon {
  flex:none; width:20px; height:20px; border-radius:50%;
  display:grid; place-items:center; font-size:.72rem; font-weight:700;
  background:rgba(255,255,255,.06); color:var(--text-faint);
}
.aeo-check.is-checking { border-left-color:rgba(var(--copper-rgb),.4); }
.aeo-check.is-checking .aeo-check__icon {
  border:2px solid rgba(255,255,255,.16); border-top-color:var(--orange2);
  background:none; animation:aeo-spin 1s linear infinite;
}
.aeo-check.is-checking .aeo-check-impact, .aeo-check.is-checking .aeo-check-pts { opacity:.2; }
.aeo-check.pass .aeo-check__icon { background:rgba(70,223,147,.14); color:var(--emerald); }
.aeo-check.pass .aeo-check__icon::before { content:"\2713"; }
.aeo-check.partial .aeo-check__icon { background:rgba(255,178,107,.16); color:var(--amber); }
.aeo-check.partial .aeo-check__icon::before { content:"!"; }
.aeo-check.fail .aeo-check__icon { background:rgba(255,115,115,.16); color:var(--red); }
.aeo-check.fail .aeo-check__icon::before { content:"!"; }
.aeo-check-name { font-size:.9rem; font-weight:500; color:var(--text); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.aeo-check-impact {
  font:600 .6rem/1 var(--font-mono); letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-faint); border:1px solid var(--hairline); border-radius:var(--r-pill);
  padding:.3rem .5rem; flex:none;
}
.aeo-check-pts { font:600 .84rem/1 var(--font-mono); color:var(--text-3); letter-spacing:.04em; flex:none; min-width:2.6rem; text-align:right; }
.aeo-check.pass { border-left-color:var(--emerald); }
.aeo-check.partial { border-left-color:var(--amber); }
.aeo-check.fail { border-left-color:var(--red); }
.aeo-check.pass .aeo-check-pts { color:var(--emerald); }
.aeo-check.partial .aeo-check-pts { color:var(--amber); }
.aeo-check.fail .aeo-check-pts { color:var(--red); }
/* Competitor tease row: icon + text only, text may wrap */
.aeo-check--tease .aeo-check-name { white-space:normal; }
.aeo-check--tease.fail { background:rgba(255,115,115,.05); }

.aeo-entity {
  display:flex; align-items:center; gap:.7rem; flex-wrap:wrap;
  padding:.95rem 1rem; border-radius:15px;
  background:rgba(242,154,120,.08); border:1px solid rgba(242,154,120,.24);
}
.aeo-entity__tick { width:9px; height:9px; border-radius:50%; background:var(--copper-bright); box-shadow:0 0 14px rgba(var(--copper-rgb),.7); }
.aeo-entity__name { font-weight:600; color:#ffd3c4; }
.aeo-entity__meta { font:600 .74rem/1 var(--font-mono); color:var(--text-3); letter-spacing:.02em; }

/* ── Result block (revealed after every box resolves) ────── */
.aeo-summary { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; animation:aeo-panel-in .5s var(--ease) both; }

.aeo-mini-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
.aeo-mini-card { border:1px solid var(--hairline); background:rgba(0,0,0,.16); border-radius:16px; padding:1rem; min-height:132px; }
.aeo-mini-label { font:600 .62rem/1 var(--font-mono); letter-spacing:.22em; text-transform:uppercase; color:var(--text-3); margin-bottom:.7rem; }
.aeo-scoreline { display:flex; align-items:flex-end; gap:.7rem; }
.aeo-grade-big { font-family:var(--font-sans); font-weight:800; font-size:3.2rem; line-height:.82; color:var(--orange2); letter-spacing:-.04em; }
.aeo-mini-score { font:600 .9rem/1 var(--font-mono); color:var(--text-2); padding-bottom:.35rem; }
.aeo-grade-note { font-size:.72rem; line-height:1.4; color:var(--text-faint); margin-top:.65rem; }
.aeo-resultlist { display:grid; gap:.5rem; }
.aeo-resultlist li { display:flex; justify-content:space-between; gap:.8rem; font-size:.78rem; color:var(--text-2); }
.aeo-resultlist strong { color:var(--emerald); font:600 .78rem/1 var(--font-mono); }
.aeo-resultlist li.is-bad strong { color:var(--red); }
.aeo-resultlist li.is-neutral strong { color:var(--amber); }

.aeo-prompt-stack {
  border:1px solid var(--hairline); border-radius:18px; background:rgba(0,0,0,.18);
  padding:1.15rem; position:relative; overflow:hidden;
}
.aeo-prompt-stack::before { content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent,rgba(255,255,255,.05),transparent); transform:translateX(-100%); animation:aeo-sheen 4s infinite 2s; }
.aeo-prompt-head { display:flex; align-items:center; justify-content:space-between; color:var(--text); font-weight:700; margin-bottom:.8rem; }
.aeo-prompt-head .aeo-prompt-count { font:600 .74rem/1 var(--font-mono); color:var(--amber); }
.aeo-prompt-intro { margin:0 0 .85rem; color:var(--text-2); font-size:.82rem; line-height:1.5; }
.aeo-prompt-list { list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.aeo-prompt-item {
  display:flex; gap:.6rem; align-items:baseline;
  border:1px solid var(--hairline); background:rgba(255,255,255,.04);
  border-radius:12px; padding:.62rem .8rem;
}
.aeo-prompt-item::before { content:"\2022"; color:var(--copper); font-weight:700; line-height:1.35; flex:none; }
.aeo-prompt-item em { color:var(--copper-bright); font-style:normal; font-size:.82rem; line-height:1.35; }

.aeo-locked-teaser {
  border:1px solid var(--hairline-2); border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.03)); padding:1.15rem;
}
.aeo-teaser-head { display:block; font-weight:700; color:var(--text); font-size:.96rem; line-height:1.35; margin-bottom:.7rem; letter-spacing:-.01em; }
.aeo-teaser-grade { color:var(--copper-bright); font-weight:700; }
.aeo-teaser-lead { margin:0; color:var(--text-2); font-size:.85rem; line-height:1.5; }

/* Email gate lives inside the teaser, right above the submit button */
.aeo-gate-form { display:grid; gap:.7rem; margin-top:.95rem; }
.aeo-gate-field { display:grid; gap:.4rem; }
.aeo-gate-label { font:600 .64rem/1 var(--font-mono); letter-spacing:.16em; text-transform:uppercase; color:var(--text-faint); }
.aeo-gate-field input {
  width:100%; min-height:48px; padding:.7rem .9rem; border-radius:var(--r-control);
  background:var(--surface-2); border:1px solid var(--hairline-2); outline:0;
  font-family:var(--font-sans); font-size:.95rem; color:var(--text);
  transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.aeo-gate-field input::placeholder { color:var(--text-faint); }
.aeo-gate-field input:focus { border-color:var(--copper); box-shadow:0 0 0 3px rgba(var(--copper-rgb),.18); }
.aeo-teaser-btn {
  width:100%; border:0; border-radius:12px; background:#fff; color:#090d12;
  font-weight:700; padding:.9rem; font-size:.95rem;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.aeo-teaser-btn:hover { transform:translateY(-1px); box-shadow:0 12px 36px rgba(255,255,255,.12); }
.aeo-teaser-btn:focus-visible { outline:2px solid var(--copper-bright); outline-offset:3px; }
.aeo-gate-msg { font:600 .8rem/1.4 var(--font-mono); color:var(--text-2); }
.aeo-gate-fine { margin:.1rem 0 0; font:600 .68rem/1.45 var(--font-mono); color:var(--text-faint); letter-spacing:.01em; }

/* ── Methodology (storyboard-styled frames) ─────────────── */
.aeo-method {
  max-width:var(--container); margin-inline:auto;
  padding-block:clamp(3.5rem, 2rem + 5vw, 6rem);
  border-top:1px solid var(--hairline); margin-top:2.5rem;
  display:grid; gap:2.4rem;
}
.aeo-method__head { display:grid; gap:1rem; max-width:64ch; }
.aeo-method h2 { font-weight:700; font-size:clamp(2rem, 1.2rem + 3vw, 3.4rem); line-height:1.04; letter-spacing:-.05em; color:var(--text); text-wrap:balance; }
.aeo-method__lead { font-size:1.1rem; line-height:1.5; color:var(--text-2); }
.aeo-method__grid { display:grid; gap:1.1rem; grid-template-columns:1fr; }
@media (min-width:760px) { .aeo-method__grid { grid-template-columns:repeat(3,1fr); } }
.aeo-mcard {
  position:relative; overflow:hidden; padding:1.5rem;
  border:1px solid var(--hairline); border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025));
  box-shadow:0 24px 70px -34px rgba(0,0,0,.5); display:grid; gap:.7rem;
  transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.aeo-mcard::before { content:""; position:absolute; inset:-1px; pointer-events:none; background:radial-gradient(360px 160px at 50% 0%, rgba(242,154,120,.09), transparent 60%); }
.aeo-mcard:hover { transform:translateY(-4px); border-color:var(--hairline-2); }
.aeo-mcard__num { font:800 .74rem/1 var(--font-mono); letter-spacing:.16em; color:var(--copper); }
.aeo-mcard h3 { font-weight:700; font-size:1.32rem; line-height:1.12; letter-spacing:-.03em; color:var(--text); }
.aeo-mcard p { font-size:.92rem; line-height:1.45; color:var(--text-3); }

/* ── Footer ─────────────────────────────────────────────── */
.aeo-foot { border-top:1px solid var(--hairline); position:relative; z-index:1; }
.aeo-foot__in {
  max-width:var(--container); margin-inline:auto; padding:2.4rem var(--pad-x) 3.6rem;
  display:grid; gap:.5rem;
}
.aeo-foot .aeo-brand__word { font-weight:700; color:var(--text-2); }
.aeo-foot__meta { font:600 .76rem/1.5 var(--font-mono); color:var(--text-faint); letter-spacing:.02em; max-width:64ch; }

/* ── Keyframes ──────────────────────────────────────────── */
@keyframes aeo-spin { to { transform:rotate(360deg); } }
@keyframes aeo-sweep { to { transform:rotate(360deg); } }
@keyframes aeo-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(var(--copper-rgb),.5); } 50% { box-shadow:0 0 0 6px rgba(var(--copper-rgb),0); } }
@keyframes aeo-pulse-dot { 0%,100% { transform:scale(1); opacity:1; } 50% { transform:scale(1.5); opacity:.55; } }
@keyframes aeo-row-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes aeo-panel-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@keyframes aeo-sheen { to { transform:translateX(100%); } }

/* ── Reduced motion — reset still wins (always visible, no motion) ─── */
@media (prefers-reduced-motion:reduce) {
  body.aeo *, body.aeo *::before, body.aeo *::after {
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .aeo-progress__bar, .aeo-browser__screen { transition:none; }
  .aeo-check, .aeo-summary, .aeo-report.is-revealed { animation:none; opacity:1; transform:none; }
  .aeo-eyebrow::before, .aeo-orb__sweep, .aeo-orb__line, .aeo-spinner, .aeo-prompt-stack::before,
  .aeo-board.is-scanning .aeo-browser__live::before { animation:none; }
}

/* ── Small screens ──────────────────────────────────────── */
@media (max-width:1239.98px) {
  .aeo-board { max-width:680px; margin-inline:auto; width:100%; }
  .aeo-hero__intro { position:static; }
}
@media (max-width:540px) {
  .aeo-urlbar { flex-direction:column; }
  .aeo-form button { width:100%; }
  .aeo-browser__screen { padding:1.1rem; min-height:380px; }
  .aeo-screen-title h2 { font-size:1.3rem; }
  .aeo-mini-grid { grid-template-columns:minmax(0,1fr); }
  .aeo-check { padding:.65rem .7rem; gap:.55rem; }
  .aeo-check-impact { padding:.26rem .42rem; }
  /* Match the (0,2,1) specificity of the base `body.aeo .aeo-top__cta` rule so
     this mobile hide still wins (later in source + equal specificity). */
  body.aeo .aeo-top__cta { display:none; }
}
