@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap");:root{--color-burgundy:#5c1a2e;--color-burgundy-deep:#3d1420;--color-burgundy-soft:#7a3142;--color-moon:#f0c8a0;--color-cream-light:#f5edd8;--color-ivory:#fcfaf8;--color-sand:#c9a98b;--color-teal:#5c1a2e;--color-rose:#5c1a2e;--color-charcoal:#3a2a2e;--color-rust:#3d1420;--color-surface:#fff;--color-surface-warm:#f6efe7;--color-border:#eadfd2;--color-border-soft:#f0e8dc;--color-muted:#8c7a70;--stage-cycle:#e8b89a;--stage-cycle-soft:#f7e4d5;--stage-fertility:#d98c7a;--stage-fertility-soft:#f4e0d9;--stage-pregnancy:#d4a855;--stage-pregnancy-soft:#f4e6c4;--stage-postpartum:#c5b8d4;--stage-postpartum-soft:#eae4f1;--stage-motherhood:#9e7385;--stage-motherhood-soft:#ebdee3;--stage-menopause:#b58a93;--stage-menopause-soft:#ecdadd;--color-cream:var(--color-ivory);--color-clay:var(--color-sand);--color-sage:var(--stage-motherhood);--color-dusty-rose:var(--color-rose);--color-gold:var(--stage-pregnancy);--color-light-gray:var(--color-surface-warm);--font-display:"Playfair Display",Georgia,serif;--font-body:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--type-h1:32px;--type-h2:22px;--type-h3:16px;--type-body:15px;--type-caption:12px;--spacing-xs:0.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:4rem;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-pill:999px;--shadow-soft:0 6px 20px rgba(61,20,32,.07);--shadow-card:0 12px 32px rgba(61,20,32,.1);--bottom-nav-height:76px;--max-mobile-width:480px;--transition:all 0.25s cubic-bezier(0.4,0,0.2,1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{background-color:var(--color-ivory);line-height:1.55;font-size:var(--type-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,h1,h2,h3,h4{font-family:var(--font-body);color:var(--color-charcoal)}h1,h2,h3,h4{font-weight:500;letter-spacing:-.01em}h1{font-size:var(--type-h1);line-height:1.15;font-weight:600}h2{font-size:var(--type-h2);line-height:1.25}h2,h3{font-weight:500}h3{font-size:var(--type-h3);line-height:1.4}h4{font-size:14px;font-weight:600}.editorial{font-family:var(--font-display);font-weight:500;letter-spacing:-.015em}p{font-size:var(--type-body);line-height:1.6;color:var(--color-charcoal)}.caption{font-size:var(--type-caption);font-weight:400;line-height:1.45}.caption,.eyebrow{color:var(--color-muted)}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}a{color:var(--color-teal);text-decoration:none;transition:var(--transition)}a:hover{color:var(--color-rose)}button{font-family:var(--font-body);cursor:pointer;border:none;transition:var(--transition);font-weight:500}.btn-primary,button{border-radius:var(--radius-pill);font-size:var(--type-body)}.btn-primary{background-color:var(--color-teal);color:#fff;padding:14px 24px;font-weight:600}.btn-primary:hover{background-color:var(--color-rust);transform:translateY(-1px);box-shadow:0 10px 24px rgba(92,26,46,.28)}.btn-primary:disabled{background-color:var(--color-border);color:var(--color-muted);cursor:default;transform:none;box-shadow:none}.btn-secondary{background-color:transparent;color:var(--color-charcoal);padding:12px 22px;border:1.5px solid var(--color-border);font-size:var(--type-body);border-radius:var(--radius-pill);font-weight:500}.btn-secondary:hover{border-color:var(--color-charcoal);background-color:var(--color-surface-warm)}.btn-ghost{background-color:transparent;color:var(--color-charcoal);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--type-body);border-radius:var(--radius-sm)}.btn-ghost:hover{color:var(--color-teal)}.btn-large{padding:16px 28px;font-size:16px}input,select,textarea{font-family:var(--font-body);padding:14px 16px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--type-body);transition:var(--transition);background-color:var(--color-surface);color:var(--color-charcoal);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-teal);box-shadow:0 0 0 3px rgba(92,26,46,.14)}input::placeholder,textarea::placeholder{color:var(--color-muted)}.container{width:100%;max-width:var(--max-mobile-width)}.container,.container-wide{margin:0 auto;padding:0 20px}.container-wide{max-width:1100px}.app-shell{min-height:100vh;background-color:var(--color-ivory);padding-bottom:calc(var(--bottom-nav-height) + 24px)}.grid{display:grid;grid-gap:var(--spacing-md);gap:var(--spacing-md)}.card{background-color:var(--color-surface);border-radius:var(--radius-md);padding:20px;transition:var(--transition)}.card,.card-warm{border:1px solid var(--color-border-soft)}.card-warm{background-color:var(--color-surface-warm)}.card:hover{box-shadow:var(--shadow-soft)}.badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:var(--radius-pill);font-size:var(--type-caption);font-weight:500;background-color:var(--color-surface-warm);color:var(--color-charcoal)}.badge-teal{background-color:var(--stage-fertility-soft);color:#2f7e77}.badge-sand{background-color:var(--stage-pregnancy-soft);color:#8a6a1f}.badge-rose{background-color:var(--stage-menopause-soft);color:#7a4f58}.attribution{display:flex;align-items:center;gap:6px;font-size:var(--type-caption);color:var(--color-muted);font-weight:400;line-height:1.4}.attribution-dot{width:4px;height:4px;border-radius:50%;background-color:var(--color-muted);display:inline-block}.divider{height:1px;border:none;margin:var(--spacing-md) 0}.divider,.progress-track{background-color:var(--color-border-soft)}.progress-track{height:6px;overflow:hidden;width:100%}.progress-fill,.progress-track{border-radius:var(--radius-pill)}.progress-fill{height:100%;transition:width .4s ease;background-color:var(--color-teal)}.loader{display:inline-block;width:36px;height:36px;border:3px solid var(--color-border);border-top-color:var(--color-teal);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .5s ease-out both}@media (min-width:768px){.container{max-width:560px}}.flex,.flex-col{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.text-center{text-align:center}.text-muted{color:var(--color-muted)}.text-charcoal{color:var(--color-charcoal)}