:root{--bg-page:#fff;--bg-screen:#fff5f8;--surface:#fff;--surface-2:#fde7ef;--track:#fbdde8;--track-chip:#fff;--track-chip-shadow:0 1px 3px #783c5a29, 0 1px 1px #783c5a0f;--brand:#e91e63;--brand-2:#ff4d8d;--brand-deep:#b5174e;--brand-glow:#e91e6333;--mauve:#c792ea;--gold:#f4c77b;--success:#10b981;--text:#2a1820;--text-2:#2a1820b8;--text-3:#2a182080;--text-4:#2a18204d;--hairline:#2a182014;--hairline-strong:#2a182024;--scrim:#1a0a1270;--phase-menstruation:#e91e63;--phase-follicular:#2fa98d;--phase-ovulation:#d4941f;--phase-luteal:#a16ad4;--font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--radius-sm:8px;--radius-md:12px;--radius-base:16px;--radius-lg:20px;--radius-xl:26px;--radius-pill:999px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-base:16px;--space-lg:20px;--space-xl:24px;--space-xxl:32px;--shadow-card:0 8px 24px #e91e6314;--shadow-button:0 8px 22px -4px #e91e6373;--shadow-pink-glow:0 6px 16px #e91e6366;--shadow-nav:0 12px 40px #e91e631f;--shadow-nav-up:0 -8px 28px #e91e631a;--gradient-button:linear-gradient(180deg, #ff4d8d 0%, #e91e63 100%);--gradient-hero:radial-gradient(120% 80% at 80% 20%, #ff4d8d33 0%, transparent 55%), radial-gradient(140% 100% at 10% 90%, #c792ea2e 0%, transparent 60%), linear-gradient(170deg, #fff 0%, #fff0f5 60%, #fde7ef 100%);--nav-bg:#ffddebad;--nav-ring:#ffe1ec;--splash-bg:#fff5f8}:root[data-theme=dark]{--bg-page:#08080c;--bg-screen:#0b0b12;--surface:#14141c;--surface-2:#1e1e2a;--track:#101017;--track-chip:#2a2a38;--track-chip-shadow:0 1px 3px #0000008c, 0 0 0 1px #ffffff0d;--brand:#e91e63;--brand-2:#ff4d8d;--brand-deep:#b5174e;--brand-glow:#ff4d8d26;--mauve:#c792ea;--gold:#f4c77b;--success:#34d399;--text:#fff;--text-2:#ffffff9e;--text-3:#ffffff6b;--text-4:#fff3;--hairline:#ffffff0f;--hairline-strong:#ffffff1a;--scrim:#00000094;--phase-menstruation:#ff4d8d;--phase-follicular:#4ed1b0;--phase-ovulation:#f4c77b;--phase-luteal:#c792ea;--shadow-card:0 8px 24px #0000008c;--shadow-button:0 8px 22px -4px #e91e6399;--shadow-pink-glow:0 6px 16px #e91e638c;--shadow-nav:0 12px 40px #0009;--shadow-nav-up:0 -8px 28px #00000073;--gradient-button:linear-gradient(180deg, #ff4d8d 0%, #e91e63 100%);--gradient-hero:radial-gradient(120% 80% at 80% 20%, #ff4d8d8c 0%, transparent 55%), radial-gradient(140% 100% at 10% 90%, #c792ea80 0%, transparent 60%), linear-gradient(170deg, #2a0f22 0%, #1a0916 60%, #0e0510 100%);--nav-bg:#1a141cb8;--nav-ring:#241826;--splash-bg:#0b0b12;--bg:#0b0b12;--bg2:#08080c;--card:#14141c;--card2:#1e1e2a;--card3:#262636;--border:#ffffff0f;--border2:#ffffff1a;--border3:#ffffff29;--text2:#ffffff9e;--text3:#ffffff6b;--text4:#fff3;--accent:#e91e63;--accent-rgb:233, 30, 99;--ds-bg:#0b0b12;--ds-surface:#14141c;--ds-surface-2:#1e1e2a;--ds-surface-3:#262636;--ds-hairline:#ffffff0f;--ds-hairline-strong:#ffffff1a;--ds-text:#fff;--ds-text-2:#ffffff9e;--ds-text-3:#ffffff6b;--ds-text-4:#fff3;--ds-glass:#14141c99;--ds-glass-border:#ffffff14}:root{--bg:#fff;--bg2:#fff5f8;--card:#fff;--card2:#fde7ef;--card3:#fbd6e3;--border:#2a182014;--border2:#2a182024;--border3:#2a182033;--text2:#2a1820b8;--text3:#2a182080;--text4:#2a18204d;--accent:#e91e63;--accent-rgb:233,30,99;--ds-bg:#fff;--ds-surface:#fff;--ds-surface-2:#fde7ef;--ds-surface-3:#fbd6e3;--ds-hairline:#2a182014;--ds-hairline-strong:#2a182024;--ds-text:#2a1820;--ds-text-2:#2a1820b8;--ds-text-3:#2a182080;--ds-text-4:#2a18204d;--ds-glass:#fff9;--ds-glass-border:#2a182014}html,body{background:var(--bg-page);color:var(--text);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}*{box-sizing:border-box}.t-eyebrow{color:var(--brand);letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.4}.t-eyebrow-large{color:var(--brand);letter-spacing:.18em;text-transform:uppercase;font-size:12px;font-weight:700;line-height:1.4}.t-screen-title{color:var(--text);letter-spacing:-.025em;font-size:26px;font-weight:800;line-height:1.2}.t-hero-number{color:var(--text);letter-spacing:-.035em;font-size:56px;font-weight:800;line-height:.95}.t-mid-number{color:var(--text);letter-spacing:-.025em;font-size:28px;font-weight:800;line-height:1}.t-section-title{color:var(--text);letter-spacing:-.025em;font-size:18px;font-weight:800;line-height:1.2}.t-card-title{color:var(--text);letter-spacing:-.015em;font-size:14px;font-weight:800;line-height:1.3}.t-body{color:var(--text);font-size:14px;font-weight:500;line-height:1.5}.t-small{color:var(--text-2);font-size:12px;font-weight:600;line-height:1.4}.t-micro{color:var(--text-3);letter-spacing:.06em;font-size:10px;font-weight:700;line-height:1.4}.t-pill{letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.4}.t-muted{color:var(--text-2)!important}.t-faint{color:var(--text-3)!important}html{scroll-behavior:smooth}.scroll-snap-x{scroll-snap-type:x proximity;scrollbar-width:none;scroll-padding-left:20px;overflow-x:auto}.scroll-snap-x::-webkit-scrollbar{display:none}.scroll-snap-x>*{scroll-snap-align:start;flex-shrink:0}.cycle-airy{--bg-screen:radial-gradient(760px 460px at -5% -60px, #ffe6f1 0%, transparent 70%), radial-gradient(720px 520px at 108% 120px, #e3d6fa 0%, transparent 72%), radial-gradient(900px 600px at 50% 780px, #f6e9fb 0%, transparent 70%), linear-gradient(172deg, #fff4f9 0%, #f1e7fc 16%, #faf0f8 42%, #f3eafc 100%);--surface:#ffffffbd;--surface-2:#ffffff85;--track:#ffffff61;--track-chip:#ffffffeb;--track-chip-shadow:0 1px 3px #783c6e2e;--hairline:#ffffffd9;--hairline-strong:#e91e6321;--shadow-card:0 8px 32px -18px #783c6e4d;--text:#2a1820;--text-2:#2a1820b8;--text-3:#2a182080;--text-4:#2a18204d;--text2:#2a1820b8;--text3:#2a182080;--text4:#2a18204d;--ds-text:#2a1820;--ds-text-2:#2a1820b8;--ds-text-3:#2a182080;--ds-text-4:#2a18204d;--card:#ffffffbd;--card2:#ffffff85;--border:#2a182014;--border2:#2a182024}.cycle-airy>div[aria-hidden=true]{opacity:.4}.cycle-glass{-webkit-backdrop-filter:blur(18px)saturate(140%)}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--duration-fast:80ms;--duration-normal:.2s;--duration-slow:.35s;--duration-spring:.5s;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-page:cubic-bezier(.32, .72, 0, 1);--ease-smooth:var(--ease-page);--ease-out:cubic-bezier(0, 0, .2, 1)}html,body{font-synthesis:none;text-rendering:optimizelegibility;height:100%;overflow:hidden}#root{height:100dvh;font-family:var(--font-family);background:var(--bg-screen);color:var(--text);flex-direction:column;display:flex}::-webkit-scrollbar{width:0;height:0}*{-webkit-overflow-scrolling:touch}input,textarea,select,button{font-family:inherit}@keyframes tabEnterRight{0%{opacity:0;transform:translate(28px)scale(.98)}to{opacity:1;transform:none}}@keyframes tabEnterLeft{0%{opacity:0;transform:translate(-28px)scale(.98)}to{opacity:1;transform:none}}@keyframes screenSlideIn{0%{opacity:0;transform:translateY(32px)scale(.98)}to{opacity:1;transform:none}}@keyframes screenSlideBack{0%{opacity:0;transform:translate(-32px)scale(.98)}to{opacity:1;transform:none}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(60%)scale(.94)}to{opacity:1;transform:none}}@keyframes onboardIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:scale(.88)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:none}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pushIn{0%{transform:translate(100%)}to{transform:none}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes scrimIn{0%{opacity:0}to{opacity:1}}.screen-slide-in{animation:.32s cubic-bezier(.22,1,.36,1) both tabEnterRight}.screen-slide-back{animation:.32s cubic-bezier(.22,1,.36,1) both tabEnterLeft}.modal-slide-up{animation:.38s cubic-bezier(.34,1.3,.64,1) both modalSlideUp}.onboard-in{animation:.4s cubic-bezier(.22,1,.36,1) both onboardIn}.pop-in{animation:.4s cubic-bezier(.34,1.56,.64,1) both popIn}.fade-slide-up{animation:.3s cubic-bezier(.22,1,.36,1) both fadeSlideUp}.layer-push{animation:.3s cubic-bezier(.32,.72,0,1) forwards pushIn}.layer-sheet{animation:.34s cubic-bezier(.32,.72,0,1) forwards sheetUp}.layer-scrim{animation:.22s cubic-bezier(.32,.72,0,1) forwards scrimIn}html[data-layer-open],html[data-layer-open] body{overflow:hidden}@keyframes btnSpring{0%{transform:scale(.85)}35%{transform:scale(1.18)}60%{transform:scale(.93)}80%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes cardGlow{0%{box-shadow:0 0 0px 0px var(--glow)}25%{box-shadow:0 0 24px 8px var(--glow)}to{box-shadow:0 0 #0000}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-48px)}}@keyframes checkDraw{0%{stroke-dashoffset:22px}to{stroke-dashoffset:0}}.btn-spring{animation:btnSpring var(--duration-spring) var(--ease-spring) both}.card-glow{animation:.7s ease-out both cardGlow}.float-up{animation:.8s ease-out both floatUp}@keyframes cardStagger{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.card-enter{animation:.35s cubic-bezier(.22,1,.36,1) both cardStagger}@keyframes badgeIn{0%{opacity:0;transform:scale(0)rotate(-10deg)}60%{opacity:1;transform:scale(1.12)rotate(5deg)}80%{transform:scale(.95)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes particle{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--px), var(--py)) scale(0);opacity:0}}@keyframes flashScreen{0%,to{opacity:0}20%{opacity:.18}}.badge-in{animation:badgeIn .65s var(--ease-spring) both}.flash-screen{animation:.4s ease-out both flashScreen}@keyframes holdVibrate{0%,to{transform:translate(0)}25%{transform:translate(-1px)}75%{transform:translate(1px)}}.hold-vibrate{animation:80ms linear infinite holdVibrate}@keyframes dotFill{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.typing-dot{background:#636366;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typingBounce}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}button,[role=button],.pressable,a.tap{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .12s cubic-bezier(.34,1.56,.64,1)}button:active:not(:disabled),[role=button]:active,.pressable:active,a.tap:active{transition:transform .12s cubic-bezier(.34,1.56,.64,1);transform:scale(.96)}button:disabled{cursor:default}.press-strong{transition:transform .12s cubic-bezier(.34,1.56,.64,1)}.press-strong:active{transition:transform .12s cubic-bezier(.34,1.56,.64,1);transform:scale(.97)}.press-soft{transition:transform .12s cubic-bezier(.34,1.56,.64,1)}.press-soft:active{transition:transform .12s cubic-bezier(.34,1.56,.64,1);transform:scale(.93)}.hit44{position:relative}.hit44:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes orbDrift{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-30px,30px)scale(1.08)}}@keyframes ringIn{0%{stroke-dashoffset:314px}}@keyframes pulsePearl{0%,to{transform:scale(1);box-shadow:0 0 #fff6}50%{transform:scale(1.06);box-shadow:0 0 0 6px #fff0}}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}@keyframes rippleOut{0%{opacity:.7;transform:scale(.4)}to{opacity:0;transform:scale(3)}}@keyframes iconBounce{0%{transform:scale(1)}28%{transform:scale(1.32)}55%{transform:scale(.88)}78%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes strikeThrough{0%{width:0}to{width:100%}}.icon-bounce{animation:iconBounce .55s var(--ease-spring) both}.ripple-out{animation:.6s ease-out both rippleOut}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.15s!important;animation-duration:.15s!important;animation-iteration-count:1!important}.card-enter{opacity:1!important;animation:none!important}.onboard-in{opacity:1!important;animation:none!important;transform:none!important}}@keyframes phaseBreath{0%,to{transform:scale(1);box-shadow:0 4px 16px #00000012}50%{transform:scale(1.005);box-shadow:0 10px 32px #00000024}}@keyframes floatIcon{0%,to{transform:translateY(0)rotate(0)}33%{transform:translateY(-5px)rotate(3deg)}66%{transform:translateY(-2px)rotate(-2deg)}}@keyframes gradientMove{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes numberPop{0%{opacity:0;transform:scale(.7)translateY(6px)}60%{opacity:1;transform:scale(1.08)translateY(0)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes barFill{0%{width:0}}.phase-breath{animation:4s ease-in-out infinite phaseBreath}.float-icon{animation:5s ease-in-out infinite floatIcon}.number-pop{animation:.5s cubic-bezier(.34,1.56,.64,1) both numberPop}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:100% 0}}@keyframes ctaPulse{0%,to{box-shadow:0 4px 14px #e91e6366}50%{box-shadow:0 4px 22px #e91e63b3}}@keyframes blobDrift{0%,to{transform:translate(0)scale(1)}50%{transform:translate(30px,-20px)scale(1.08)}}@keyframes twinkle{0%{opacity:.2;transform:scale(.8)}to{opacity:1;transform:scale(1.4)}}.cta-pulse{animation:3.4s ease-in-out infinite ctaPulse}.shimmer-bg{background:linear-gradient(90deg,#fde7ef 25%,#fbd6e3 50%,#fde7ef 75%) 0 0/200% 100%;animation:4s ease-in-out infinite shimmer}
