@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("plus-jakarta-sans.woff2") format("woff2-variations"), url("plus-jakarta-sans.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

:root{
  --bg:#0B0713;
  --surface:#1B1425;
  --surface-2:#241C31;
  --ink:#F3F1F6;
  --ink-dim:rgba(243,241,246,.62);
  --ink-faint:rgba(243,241,246,.4);
  --orange:#FF8B2C;
  --pink:#F20D5E;
  --accent:#F2394A;
  --hairline:rgba(255,255,255,.10);
  --gradient:linear-gradient(90deg,var(--orange),var(--pink));
  --gradient-diag:linear-gradient(135deg,var(--orange),var(--pink));
  --radius-sm:12px;
  --radius-md:22px;
  --radius-pill:999px;
  --container:1120px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ overflow-x:hidden; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; } }

body.impols-page{
  background:var(--bg);
  color:var(--ink);
  font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}

.impols a{ color:inherit; text-decoration:none; }
.impols img{ max-width:100%; display:block; }
.impols section{ position:relative; }
.impols ul{ list-style:none; }

.impols .wrap{ max-width:var(--container); margin:0 auto; padding:0 24px; }

.impols .glow{ position:absolute; border-radius:50%; filter:blur(90px); pointer-events:none; z-index:0; }

/* ---------- header ---------- */
.impols header{
  position:sticky; top:0; z-index:100;
  background:rgba(11,7,19,.72);
  backdrop-filter:blur(16px) saturate(160%);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  border-bottom:1px solid var(--hairline);
}
.impols .nav{ display:flex; align-items:center; justify-content:space-between; height:68px; }
.impols .brand{ display:flex; align-items:center; gap:10px; font-weight:800; font-size:18px; letter-spacing:.5px; }
.impols .brand svg{ width:26px; height:26px; flex:none; }
.impols .brand-word{ background:var(--gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }
.impols .nav-links{ display:flex; gap:32px; font-size:14.5px; font-weight:600; color:var(--ink-dim); }
.impols .nav-links a:hover{ color:var(--ink); }
.impols .nav-cta{ display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; letter-spacing:.3px; padding:9px 16px; border-radius:var(--radius-pill); border:1px solid var(--hairline); background:rgba(255,255,255,.04); color:var(--ink-dim); white-space:nowrap; }
.impols .nav-cta .dot{ width:6px; height:6px; border-radius:50%; background:var(--gradient); box-shadow:0 0 8px var(--pink); }
.impols .nav-toggle{ display:none; background:none; border:1px solid var(--hairline); border-radius:10px; width:40px; height:40px; align-items:center; justify-content:center; color:var(--ink); font-size:20px; cursor:pointer; }

@media (max-width:860px){
  .impols .nav-links{ position:fixed; top:68px; left:0; right:0; flex-direction:column; gap:0; background:var(--bg); border-bottom:1px solid var(--hairline); padding:8px 24px 18px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .18s ease, transform .18s ease; }
  .impols .nav-links a{ padding:14px 0; border-bottom:1px solid var(--hairline); }
  .impols .nav-links.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .impols .nav-toggle{ display:inline-flex; }
  .impols .nav-cta{ display:none; }
}

/* ---------- hero ---------- */
.impols .hero{ padding:96px 0 60px; overflow:hidden; }
.impols .hero .glow-a{ width:520px; height:520px; top:-220px; left:50%; transform:translateX(-50%); background:radial-gradient(circle,rgba(242,13,94,.30),transparent 70%); }
.impols .hero .glow-b{ width:420px; height:420px; bottom:-160px; left:-140px; background:radial-gradient(circle,rgba(255,139,44,.18),transparent 70%); }
.impols .hero-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; }
@media (max-width:900px){ .impols .hero-grid{ grid-template-columns:1fr; text-align:center; } .impols .hero-visual{ order:-1; } }

.impols .eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--pink); background:rgba(242,13,94,.10); border:1px solid rgba(242,13,94,.28); padding:7px 14px; border-radius:var(--radius-pill); margin-bottom:22px; }
.impols h1{ font-size:clamp(32px,5vw,54px); font-weight:800; line-height:1.08; letter-spacing:-.5px; text-wrap:balance; }
.impols h1 .grad{ background:var(--gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }
.impols .hero p.lead{ margin-top:22px; font-size:18px; line-height:1.6; color:var(--ink-dim); max-width:520px; }
@media (max-width:900px){ .impols .hero p.lead{ margin-left:auto; margin-right:auto; } }
.impols .hero-actions{ margin-top:34px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
@media (max-width:900px){ .impols .hero-actions{ justify-content:center; } }

.impols .btn-primary{ display:inline-flex; align-items:center; gap:10px; padding:15px 26px; border-radius:var(--radius-pill); background:var(--gradient); color:#fff; font-weight:700; font-size:15px; box-shadow:0 14px 34px rgba(242,13,94,.32); border:1px solid rgba(255,255,255,.18); }
.impols .btn-primary .badge{ font-size:10.5px; font-weight:800; letter-spacing:.6px; background:rgba(0,0,0,.22); padding:3px 9px; border-radius:var(--radius-pill); }
.impols .btn-secondary{ font-size:14.5px; font-weight:600; color:var(--ink-dim); border-bottom:1px solid var(--hairline); padding-bottom:2px; }
.impols .hero-note{ margin-top:16px; font-size:13px; color:var(--ink-faint); }

/* ---------- phone mockup ---------- */
.impols .hero-visual{ display:flex; justify-content:center; position:relative; z-index:1; }
.impols .phone{ width:250px; height:508px; border-radius:52px; background:linear-gradient(135deg,#4b4b52,#16151b 40%,#2e2c33 70%,#0d0c10); padding:9px; box-shadow:0 40px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.06); position:relative; animation:floaty 5s ease-in-out infinite; }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }
.impols .phone-screen{ width:100%; height:100%; border-radius:44px; background:radial-gradient(circle at 30% 0%,rgba(242,13,94,.22),transparent 55%),var(--bg); position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; padding:34px 18px 22px; }
.impols .island{ position:absolute; top:14px; left:50%; transform:translateX(-50%); width:76px; height:20px; background:#000; border-radius:var(--radius-pill); }
.impols .screen-label{ font-size:10px; font-weight:700; letter-spacing:2px; color:var(--ink-faint); text-transform:uppercase; margin-top:10px; }
.impols .muscle-name{ margin-top:18px; font-size:26px; font-weight:800; }
.impols .muscle-status{ margin-top:2px; font-size:12px; font-weight:700; color:#ff6158; letter-spacing:.4px; }
.impols .ring-wrap{ margin-top:26px; width:130px; height:130px; border-radius:50%; position:relative; display:flex; align-items:center; justify-content:center; background:conic-gradient(from -90deg,var(--orange) 0deg,var(--pink) 300deg,rgba(255,255,255,.08) 300deg 360deg); }
.impols .ring-inner{ width:104px; height:104px; border-radius:50%; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.impols .ring-inner .num{ font-size:30px; font-weight:800; }
.impols .ring-inner .lbl{ font-size:9px; font-weight:700; letter-spacing:1.4px; color:var(--ink-faint); margin-top:2px; }
.impols .start-pill{ margin-top:auto; width:100%; padding:13px; border-radius:var(--radius-pill); background:var(--gradient); text-align:center; font-weight:700; font-size:14px; color:#fff; box-shadow:0 10px 24px rgba(242,13,94,.35); }
.impols .watch-chip{ position:absolute; right:-34px; bottom:70px; width:96px; height:96px; border-radius:26px; background:linear-gradient(135deg,#4b4b52,#16151b 45%,#2e2c33 75%,#0d0c10); padding:6px; box-shadow:0 20px 40px rgba(0,0,0,.5); animation:floaty 4.5s ease-in-out infinite reverse; }
@media (max-width:520px){ .impols .watch-chip{ display:none; } }
.impols .watch-face{ width:100%; height:100%; border-radius:20px; background:var(--bg); display:flex; align-items:center; justify-content:center; }
.impols .watch-ring{ width:64px; height:64px; border-radius:50%; background:conic-gradient(from -90deg,var(--orange) 0deg,var(--pink) 230deg,rgba(255,255,255,.1) 230deg 360deg); display:flex; align-items:center; justify-content:center; }
.impols .watch-ring span{ width:50px; height:50px; border-radius:50%; background:var(--bg); display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:800; }

/* ---------- section shared ---------- */
.impols .section{ padding:100px 0; }
@media (max-width:640px){ .impols .section{ padding:64px 0; } }
.impols .section-head{ max-width:640px; margin:0 auto 56px; text-align:center; }
.impols .kicker{ font-size:12.5px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; color:var(--orange); margin-bottom:14px; }
.impols h2{ font-size:clamp(26px,3.6vw,38px); font-weight:800; letter-spacing:-.4px; line-height:1.18; text-wrap:balance; }
.impols .section-head p{ margin-top:16px; font-size:16.5px; line-height:1.65; color:var(--ink-dim); }

/* ---------- features grid ---------- */
.impols .features{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:860px){ .impols .features{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .impols .features{ grid-template-columns:1fr; } }
.impols .card{ background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015)); border:1px solid var(--hairline); border-radius:var(--radius-md); padding:28px 24px; }
.impols .card .icon{ width:44px; height:44px; border-radius:var(--radius-sm); background:var(--gradient-diag); display:flex; align-items:center; justify-content:center; margin-bottom:18px; box-shadow:0 8px 20px rgba(242,13,94,.28); }
.impols .card .icon svg{ width:22px; height:22px; stroke:#fff; }
.impols .card h3{ font-size:17.5px; font-weight:700; margin-bottom:9px; }
.impols .card p{ font-size:14.5px; line-height:1.6; color:var(--ink-dim); }

/* ---------- how it works ---------- */
.impols .how{ background:var(--surface); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
.impols .steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
@media (max-width:760px){ .impols .steps{ grid-template-columns:1fr; } }
.impols .step{ text-align:center; padding:0 12px; }
.impols .step .num-badge{ width:40px; height:40px; margin:0 auto 18px; border-radius:50%; background:rgba(255,255,255,.06); border:1px solid var(--hairline); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; }
.impols .step h3{ font-size:17px; font-weight:700; margin-bottom:8px; }
.impols .step p{ font-size:14.5px; color:var(--ink-dim); line-height:1.6; }

/* ---------- recovery ---------- */
.impols .recovery{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center; }
@media (max-width:900px){ .impols .recovery{ grid-template-columns:1fr; } .impols .recovery-visual{ order:-1; } }
.impols .recovery-visual{ display:flex; justify-content:center; }
.impols .bodymap-card{ width:100%; max-width:320px; background:radial-gradient(circle at 50% 20%,rgba(242,13,94,.14),transparent 62%),var(--surface); border:1px solid var(--hairline); border-radius:var(--radius-md); padding:30px 28px 22px; }
.impols .bodymap-figure{ position:relative; width:100%; aspect-ratio:985/1681; }
.impols .bodymap-figure img{ position:absolute; inset:0; width:100%; height:100%; filter:invert(1); opacity:.16; }
.impols .heat-blob{ position:absolute; border-radius:50%; transform:translate(-50%,-50%); filter:blur(13px); mix-blend-mode:screen; opacity:.9; }
.impols .legend{ display:flex; flex-wrap:wrap; gap:10px 16px; margin-top:20px; justify-content:center; }
.impols .legend span{ display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:var(--ink-dim); }
.impols .legend .dot{ width:8px; height:8px; border-radius:50%; }
.impols .recovery h2{ margin-bottom:4px; }
.impols .recovery-list{ margin-top:24px; display:flex; flex-direction:column; gap:18px; }
.impols .recovery-list li{ position:relative; padding-left:22px; font-size:15px; color:var(--ink-dim); line-height:1.6; }
.impols .recovery-list li::before{ content:""; position:absolute; left:0; top:8px; width:8px; height:8px; border-radius:50%; background:var(--gradient); }
.impols .recovery-list b{ color:var(--ink); font-weight:700; }

/* ---------- faq ---------- */
.impols .faq{ max-width:760px; margin:0 auto; }
.impols .faq-item{ border-bottom:1px solid var(--hairline); padding:22px 4px; }
.impols .faq-item summary{ cursor:pointer; font-weight:700; font-size:16px; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.impols .faq-item summary::-webkit-details-marker{ display:none; }
.impols .faq-item summary::after{ content:"+"; font-size:22px; font-weight:400; color:var(--ink-faint); transition:transform .2s ease; flex:none; }
.impols .faq-item[open] summary::after{ transform:rotate(45deg); }
.impols .faq-item p{ margin-top:14px; font-size:14.5px; line-height:1.65; color:var(--ink-dim); }

/* ---------- cta ---------- */
.impols .cta{ text-align:center; padding:100px 0 120px; }
.impols .cta .glow-a{ width:600px; height:600px; top:-100px; left:50%; transform:translateX(-50%); background:radial-gradient(circle,rgba(255,139,44,.20),transparent 70%); }
.impols .cta-inner{ position:relative; z-index:1; }
.impols .app-store-pill{ display:inline-flex; align-items:center; gap:12px; margin-top:36px; padding:16px 30px; border-radius:16px; background:var(--surface); border:1px solid var(--hairline); }
.impols .app-store-pill svg{ width:28px; height:28px; }
.impols .app-store-pill .txt{ text-align:left; }
.impols .app-store-pill .txt .small{ font-size:11px; color:var(--ink-faint); font-weight:600; letter-spacing:.3px; }
.impols .app-store-pill .txt .big{ font-size:16.5px; font-weight:800; margin-top:1px; }
.impols .cta-note{ margin-top:18px; font-size:13.5px; color:var(--ink-faint); }

/* ---------- footer ---------- */
.impols footer{ border-top:1px solid var(--hairline); padding:44px 0; }
.impols .footer-inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; }
.impols .footer-brand{ display:flex; align-items:center; gap:9px; font-weight:800; font-size:15px; }
.impols .footer-brand svg{ width:20px; height:20px; }
.impols footer .copy{ font-size:13px; color:var(--ink-faint); }
.impols .footer-links{ display:flex; gap:22px; font-size:13.5px; color:var(--ink-dim); flex-wrap:wrap; }

/* ---------- privacy policy page ---------- */
.impols .legal{ padding-top:120px; padding-bottom:100px; max-width:760px; margin:0 auto; }
.impols .legal h1{ font-size:clamp(28px,4vw,40px); margin-bottom:10px; }
.impols .legal .updated{ font-size:13.5px; color:var(--ink-faint); margin-bottom:44px; }
.impols .legal h2{ font-size:20px; margin-top:40px; margin-bottom:14px; text-align:left; }
.impols .legal p{ font-size:15.5px; line-height:1.75; color:var(--ink-dim); margin-bottom:14px; }
.impols .legal ul{ margin:0 0 14px 0; }
.impols .legal li{ font-size:15.5px; line-height:1.75; color:var(--ink-dim); padding-left:22px; position:relative; margin-bottom:8px; }
.impols .legal li::before{ content:""; position:absolute; left:0; top:10px; width:6px; height:6px; border-radius:50%; background:var(--gradient); }
.impols .legal a{ color:var(--ink); text-decoration:underline; text-underline-offset:2px; }
.impols .legal .back-link{ display:inline-block; margin-bottom:32px; font-size:14px; color:var(--ink-dim); }

.impols .recovery-phone{ width:260px; height:528px; border-radius:52px; background:linear-gradient(135deg,#4b4b52,#16151b 40%,#2e2c33 70%,#0d0c10); padding:9px; box-shadow:0 40px 80px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.06); position:relative; }
.impols .recovery-phone-screen{ width:100%; height:100%; border-radius:44px; background:var(--bg); position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; padding:32px 10px 10px; }
.impols .recovery-phone-screen img{ width:100%; height:auto; object-fit:contain; }
.impols .recovery-phone .island{ z-index:2; }