/* ===== EquiCure — coverage ≡ care ===== */

:root, [data-theme="light"] {
  --navy: #120476;
  --navy-2: #251a8c;
  --peri: #444ead;
  --peri-soft: #a9b0ff;

  --color-bg: #f4f4fb;
  --color-surface: #ffffff;
  --color-text: #14123a;
  --color-text-muted: #5a5a7d;
  --color-text-faint: #9a9ab8;
  --color-inverse: #ffffff;

  --grad-hero: radial-gradient(1200px 700px at 50% -10%, #eef0ff 0%, #f4f4fb 55%, #eceafd 100%);

  /* type scale */
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.5rem, 1rem + 4vw, 5rem);
  --text-hero: clamp(2.6rem, 0.5rem + 7vw, 7.5rem);

  --space-2: .5rem; --space-3:.75rem; --space-4:1rem; --space-6:1.5rem;
  --space-8:2rem; --space-12:3rem; --space-16:4rem; --space-24:6rem;

  --radius-md:.6rem; --radius-lg:1rem; --radius-xl:1.5rem; --radius-full:9999px;
  --ease-out: cubic-bezier(0.16,1,0.3,1);
  --transition-interactive: 180ms var(--ease-out);
  --font-display: 'Clash Display', 'Helvetica Neue', sans-serif;
  --font-body: 'General Sans', 'Helvetica Neue', sans-serif;
  --shadow-md: 0 10px 30px rgba(18,4,118,.12);
  --shadow-lg: 0 24px 60px rgba(18,4,118,.20);
}

[data-theme="dark"] {
  --navy: #c6c9ff;
  --navy-2: #aeb2ff;
  --peri: #8d95ef;
  --peri-soft: #6f78d6;
  --color-bg: #08071c;
  --color-surface: #131233;
  --color-text: #ecedff;
  --color-text-muted: #a3a4cf;
  --color-text-faint: #6c6e9e;
  --color-inverse: #08071c;
  --grad-hero: radial-gradient(1200px 700px at 50% -10%, #1a1750 0%, #0c0a2a 55%, #08071c 100%);
  --shadow-md: 0 10px 30px rgba(0,0,0,.45);
  --shadow-lg: 0 24px 60px rgba(0,0,0,.55);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth;}
body{
  min-height:100dvh;line-height:1.55;font-family:var(--font-body);
  font-size:var(--text-base);color:var(--color-text);
  background:var(--color-bg);overflow-x:hidden;
  transition:background .5s var(--ease-out), color .5s var(--ease-out);
}
svg{display:block;max-width:100%;}
::selection{background:rgba(68,78,173,.25);}
:focus-visible{outline:2px solid var(--peri);outline-offset:3px;border-radius:.4rem;}
button{cursor:pointer;background:none;border:none;color:inherit;font:inherit;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
em{font-style:normal;color:var(--peri);font-weight:600;}

/* ---- magnifying glass cursor ---- */
#lens{position:fixed;top:0;left:0;width:80px;height:80px;margin:-40px 0 0 -40px;
  color:var(--peri);pointer-events:none;z-index:90;opacity:0;
  transition:opacity .25s var(--ease-out), transform .12s var(--ease-out), color .25s var(--ease-out);
  filter:drop-shadow(0 6px 14px rgba(18,4,118,.25));mix-blend-mode:normal;}
#lens.on{opacity:1;}
#lens.hot{color:#e0345f;transform:scale(1.12);}
@media (hover:none){#lens{display:none;}}

/* ---- background blobs ---- */
.bg-field{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;}
.b1{width:46vw;height:46vw;left:-10vw;top:-12vw;background:radial-gradient(circle,#9aa0ff,transparent 70%);animation:float1 18s ease-in-out infinite;}
.b2{width:40vw;height:40vw;right:-12vw;top:30vh;background:radial-gradient(circle,#c2b6ff,transparent 70%);animation:float2 22s ease-in-out infinite;}
.b3{width:38vw;height:38vw;left:20vw;bottom:-16vw;background:radial-gradient(circle,#b6c0ff,transparent 70%);animation:float1 26s ease-in-out infinite reverse;}
[data-theme="dark"] .blob{opacity:.28;}
@keyframes float1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(4vw,3vh) scale(1.08);}}
@keyframes float2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-3vw,-4vh) scale(1.1);}}

/* ---- topbar ---- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;
  justify-content:space-between;padding:var(--space-4) clamp(1rem,4vw,2.5rem);}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--color-text);}
.brand-mark{flex:none;}
.brand-word{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-.01em;}
.icon-btn{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--radius-full);
  color:var(--color-text);background:color-mix(in srgb,var(--color-surface) 70%,transparent);
  backdrop-filter:blur(8px);transition:background var(--transition-interactive),transform var(--transition-interactive);}
.icon-btn:hover{transform:translateY(-1px);background:var(--color-surface);}

/* ---- sections ---- */
.act{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:var(--space-24) clamp(1.2rem,5vw,3rem);}
.kicker{font-family:var(--font-body);font-weight:600;text-transform:uppercase;letter-spacing:.22em;
  font-size:var(--text-xs);color:var(--peri);margin-bottom:var(--space-6);}
.kicker.light{color:var(--peri-soft);}

/* big headline lines */
.bigline{font-family:var(--font-display);font-weight:700;line-height:.95;letter-spacing:-.02em;
  font-size:var(--text-hero);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:clamp(.4rem,2vw,1.4rem);color:var(--navy);}
.bigline .word{display:inline-block;}

/* ACT 1 hero */
.act-hero{background:var(--grad-hero);}
.hero-inner{text-align:center;max-width:1100px;}
.sign-slot{display:inline-grid;place-items:center;width:clamp(60px,9vw,130px);height:clamp(46px,7vw,100px);}
.sign-slot.small{width:clamp(46px,6vw,96px);height:clamp(38px,5vw,72px);}
.signmark{width:100%;height:100%;overflow:visible;}
.signmark .bar{stroke:var(--navy);}
.signmark #m-mid{stroke:var(--peri);}
.signmark .slash{stroke:var(--navy);}


/* ACT 2 Kos */
.act-kos{flex-direction:column;gap:var(--space-12);}
.kos-stage{display:flex;align-items:center;gap:clamp(1.5rem,5vw,4rem);flex-wrap:wrap;justify-content:center;max-width:1000px;}
.kos-svg{width:clamp(190px,30vw,320px);height:auto;overflow:visible;}
.kos-body{fill:var(--navy);}
[data-theme="dark"] .kos-body{fill:#1c1b4a;}
.kos-spark{fill:var(--peri);animation:twinkle 2.4s ease-in-out infinite;}
.kos-spark.s2{animation-delay:1.1s;}
@keyframes twinkle{0%,100%{opacity:.4;transform:scale(.8);}50%{opacity:1;transform:scale(1.15);}}
.kos-row.live{opacity:.55;}
.kos-timer-txt{font-family:var(--font-display);font-weight:700;fill:var(--navy);}
.kos-timer{animation:timerPop 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center;}
@keyframes timerPop{0%,90%,100%{transform:scale(1);}45%{transform:scale(1.08) rotate(-3deg);}}
.kos-figure{animation:kosFloat 4.5s ease-in-out infinite;will-change:transform;}
@keyframes kosFloat{0%,100%{transform:translateY(0) rotate(-1deg);}50%{transform:translateY(-14px) rotate(1deg);}}
.kos-copy{max-width:420px;text-align:left;}
.meet{font-family:var(--font-display);font-weight:600;font-size:var(--text-xl);color:var(--peri);line-height:1;}
.kos-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-3xl);color:var(--navy);line-height:.9;letter-spacing:-.02em;margin:.1em 0 .4em;}
.kos-desc{font-size:var(--text-lg);color:var(--color-text-muted);}

/* ACT 3 making */
.act-making{flex-direction:column;gap:var(--space-6);}
.making-inner{text-align:center;}
.making-word{font-family:var(--font-display);font-weight:600;font-size:var(--text-2xl);color:var(--peri);margin-bottom:.2em;}
.making-eq{justify-content:center;}

/* ACT 4 zip */
.act-zip{flex-direction:column;}
.zip-inner{width:100%;max-width:820px;text-align:center;}
.zip-head{font-family:var(--font-display);font-weight:700;font-size:var(--text-2xl);color:var(--navy);letter-spacing:-.02em;}
.ghosted{position:relative;color:var(--peri);font-style:italic;}
.zip-sub{font-size:var(--text-lg);color:var(--color-text-muted);margin:var(--space-4) auto var(--space-8);max-width:48ch;}
.zip-form{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;}
#zip{width:min(240px,70vw);text-align:center;letter-spacing:.3em;font-family:var(--font-display);font-weight:600;
  font-size:var(--text-xl);padding:.6em .8em;border:2px solid color-mix(in srgb,var(--peri) 40%,transparent);
  border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);
  transition:border-color var(--transition-interactive),box-shadow var(--transition-interactive);}
#zip:focus{outline:none;border-color:var(--peri);box-shadow:0 0 0 4px rgba(68,78,173,.18);}
#zip::placeholder{color:var(--color-text-faint);letter-spacing:.1em;font-weight:500;}

.btn{font-family:var(--font-display);font-weight:600;font-size:var(--text-base);
  padding:.7em 1.5em;border-radius:var(--radius-lg);background:var(--navy);color:#fff;
  transition:transform var(--transition-interactive),box-shadow var(--transition-interactive),background var(--transition-interactive);}
[data-theme="dark"] .btn{color:var(--color-inverse);}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--navy-2);}
.btn:active{transform:translateY(0);}

.reveal-stage{margin-top:var(--space-12);}
.counter-row{display:flex;gap:var(--space-6);justify-content:center;flex-wrap:wrap;}
.count-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-12);
  box-shadow:var(--shadow-md);min-width:200px;}
.count-num{font-family:var(--font-display);font-weight:700;font-size:var(--text-3xl);line-height:1;display:block;}
.count-card.listed .count-num{color:var(--peri-soft);}
.count-card.real .count-num{color:var(--navy);}
.count-label{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:.5em;display:block;}
.ghost-stat{margin-top:var(--space-8);font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);color:#e0345f;}
[data-theme="dark"] .ghost-stat{color:#ff7d9a;}
.hint{margin-top:var(--space-6);font-size:var(--text-sm);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.12em;}

.dot-grid{margin:var(--space-6) auto 0;display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(8px,1.4vw,16px);
  max-width:560px;padding:var(--space-6);}
.dot{aspect-ratio:1;border-radius:50%;background:var(--peri-soft);transition:opacity .4s var(--ease-out),background .3s var(--ease-out),transform .3s var(--ease-out);}
.dot.ghost{background:repeating-linear-gradient(45deg,#d9d9ec,#d9d9ec 3px,transparent 3px,transparent 6px);
  border:1.5px dashed var(--color-text-faint);opacity:.35;}
[data-theme="dark"] .dot.ghost{background:repeating-linear-gradient(45deg,#2a2950,#2a2950 3px,transparent 3px,transparent 6px);}
.dot.found{background:#e0345f !important;opacity:1 !important;border:none;transform:scale(1.25);box-shadow:0 0 0 4px rgba(224,52,95,.2);}

/* ACT 5 waitlist */
.act-wait{background:var(--navy);color:#fff;}
[data-theme="dark"] .act-wait{background:var(--color-surface);}
.wait-inner{text-align:center;max-width:680px;width:100%;}
.wait-head{font-family:var(--font-display);font-weight:700;font-size:var(--text-2xl);color:#fff;letter-spacing:-.02em;}
[data-theme="dark"] .wait-head{color:var(--color-text);}
.wait-sub{color:rgba(255,255,255,.78);font-size:var(--text-lg);margin:var(--space-4) auto var(--space-8);max-width:46ch;}
[data-theme="dark"] .wait-sub{color:var(--color-text-muted);}
.wait-form{max-width:520px;margin:0 auto;}
.field-row{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;}
#email{flex:1;min-width:220px;padding:.8em 1.1em;border-radius:var(--radius-lg);border:2px solid transparent;
  background:rgba(255,255,255,.12);color:#fff;font-size:var(--text-base);
  transition:border-color var(--transition-interactive),background var(--transition-interactive);}
#email::placeholder{color:rgba(255,255,255,.6);}
#email:focus{outline:none;border-color:var(--peri-soft);background:rgba(255,255,255,.18);}
[data-theme="dark"] #email{background:rgba(255,255,255,.06);color:var(--color-text);}
[data-theme="dark"] #email::placeholder{color:var(--color-text-faint);}
.btn-wait{background:#fff;color:var(--navy);}
.btn-wait:hover{background:#eceaff;color:var(--navy);}
[data-theme="dark"] .btn-wait{background:var(--peri);color:#fff;}
.form-fine{margin-top:var(--space-4);font-size:var(--text-sm);color:rgba(255,255,255,.6);}
[data-theme="dark"] .form-fine{color:var(--color-text-faint);}
.wait-success{color:#fff;}
[data-theme="dark"] .wait-success{color:var(--color-text);}
.wait-success .check{color:var(--peri-soft);margin:0 auto var(--space-4);}
.wait-success h3{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);}
.wait-success p{color:rgba(255,255,255,.8);margin-top:.4em;}
[data-theme="dark"] .wait-success p{color:var(--color-text-muted);}

/* ACT 6 finale */
.act-finale{background:var(--grad-hero);flex-direction:column;gap:var(--space-8);}
.finale-inner{text-align:center;width:100%;max-width:760px;}
.finale-stage{display:flex;justify-content:center;}
#finaleSvg{width:min(560px,92vw);height:auto;overflow:visible;}
.fbar{stroke:var(--navy);}
#f-mid{stroke:var(--peri);}
.espine{opacity:0;}
.finale-text{font-family:var(--font-display);font-weight:700;font-size:96px;fill:var(--navy);opacity:0;letter-spacing:-3px;}
.finale-tag{margin-top:var(--space-4);font-size:var(--text-lg);color:var(--color-text-muted);opacity:0;}
.finale-tag strong{color:var(--navy);font-family:var(--font-display);}

/* honeypot — visually & a11y hidden, but present in DOM for bots to trip on */
.hp-field{position:absolute !important;left:-9999px !important;top:auto;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none;}
#turnstile-mount{margin-top:var(--space-3);display:flex;justify-content:center;}
#turnstile-mount:empty{margin-top:0;}

/* footer */
.foot{position:relative;z-index:1;text-align:center;padding:var(--space-12) var(--space-4);
  font-size:var(--text-sm);color:var(--color-text-faint);}

@media (max-width:640px){
  .kos-copy{text-align:center;}
  .count-card{padding:var(--space-6) var(--space-8);min-width:150px;}
  .dot-grid{grid-template-columns:repeat(10,1fr);}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .blob{animation:none;}
}
