:root{--ink:#1c201b;--paper:#fffaf0;--white:#fff;--muted:#62685f;--line:#cbc9c0;--yellow:#ffd84d;--green:#c9f45a;--blue:#2457f5;--pink:#f78da7;--soft-pink:#ffe2ea;--deep-pink:#a93055;--teal:#128c87;--soft-teal:#dff4f0;--soft-blue:#e5ebff;--soft-yellow:#fff2bd}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}.shell{width:min(1120px,calc(100% - 36px));margin:0 auto}button,input,select{font:inherit}button,a{touch-action:manipulation}.nav{display:flex;align-items:center;justify-content:center;gap:30px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-size:19px;font-weight:950;letter-spacing:-.03em;text-decoration:none}.nav-links{display:flex;align-items:center;gap:18px}.nav-links a{color:var(--ink);font-size:14px;font-weight:850;text-decoration:none}.nav-pill{padding:8px 14px;border:2px solid var(--ink);border-radius:999px;background:#fff}
.hero{padding:70px 0 43px;text-align:center}.tool-stamp{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:2px solid var(--ink);border-radius:999px;background:var(--soft-pink);font-size:12px;font-weight:950;letter-spacing:.09em;text-transform:uppercase;transform:rotate(-1deg)}.tool-stamp i{width:9px;height:9px;border-radius:50%;background:var(--deep-pink)}.hero h1{max-width:980px;margin:25px auto 22px;font-size:clamp(58px,9vw,98px);line-height:.9;letter-spacing:-.075em}.hero h1 em{position:relative;color:var(--deep-pink);font-family:Georgia,"Times New Roman",serif;font-weight:400}.hero h1 em::after{content:"";position:absolute;right:-2%;bottom:-7px;left:0;z-index:-1;height:10px;border-radius:50%;background:var(--yellow);transform:rotate(-1deg)}.dek{max-width:760px;margin:0 auto;color:var(--muted);font-size:clamp(18px,2vw,21px)}.maker-note{display:flex;max-width:820px;margin:31px auto 0;align-items:center;padding:17px 21px;border:2px dashed var(--ink);border-radius:18px;background:#fff;text-align:left}.maker-face{display:grid;width:56px;height:52px;flex:0 0 56px;margin-right:17px;place-items:center;border:2px solid var(--ink);border-radius:52% 48% 45% 55%;background:var(--yellow);box-shadow:3px 3px 0 var(--ink);font-family:Georgia,serif;font-size:18px;font-weight:900;transform:rotate(-6deg)}.maker-note strong{display:block}.maker-note p{margin:3px 0 0;color:var(--muted)}
.calculator-section{padding:18px 0 78px}.privacy-note{display:flex;max-width:900px;margin:0 auto 17px;align-items:center;justify-content:center;padding:12px 16px;border:1.5px solid var(--ink);border-radius:15px;background:var(--soft-teal);text-align:center}.privacy-note>span{width:10px;height:10px;margin-right:10px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(18,140,135,.14)}.privacy-note p{margin:0}.safety-banner{max-width:900px;margin:0 auto 24px;padding:15px 19px;border:2px solid var(--ink);border-radius:17px;background:var(--soft-yellow);text-align:center}.safety-banner strong{font-size:17px}.safety-banner p{margin:3px auto 0;color:#565a52;font-size:13px}
.cycle-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden;border:2px solid var(--ink);border-radius:27px;background:#fff;box-shadow:9px 10px 0 var(--ink)}.cycle-form,.cycle-summary{padding:29px}.cycle-form{background:#fff}.cycle-summary{border-left:2px solid var(--ink);background:linear-gradient(155deg,#fff 0 62%,var(--soft-pink) 62% 100%)}.form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:23px}.form-heading>div{display:flex;align-items:center;gap:10px}.step{display:grid;width:35px;height:33px;flex:0 0 35px;place-items:center;border:1.5px solid var(--ink);border-radius:50%;background:var(--yellow);font-size:10px;font-weight:950}.form-heading h2,.section-heading h2{margin:0;font-size:30px;letter-spacing:-.045em}.form-heading button{padding:8px 11px;border:1.5px solid var(--ink);border-radius:999px;background:#fff;font-size:11px;font-weight:900;cursor:pointer}.cycle-form label{display:block;margin-bottom:18px}.cycle-form label>span:first-child{display:block;margin-bottom:6px;font-size:13px;font-weight:950}.cycle-form input,.cycle-form select{width:100%;min-height:48px;border:1.5px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);padding:0 13px;outline:0}.cycle-form input:focus,.cycle-form select:focus{box-shadow:0 0 0 4px rgba(36,87,245,.14)}.cycle-form small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.suffix-input{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1.5px solid var(--ink);border-radius:12px;background:#fff}.suffix-input input{border:0;border-radius:0}.suffix-input i{padding:0 13px;color:var(--muted);font-size:12px;font-style:normal;font-weight:800}.calculate-button{width:100%;min-height:52px;border:2px solid var(--ink);border-radius:14px;background:var(--ink);color:#fff;font-weight:950;cursor:pointer}.calculate-button:hover{background:var(--blue)}.form-privacy{margin:10px 0 0;color:var(--muted);font-size:10px;text-align:center}
.empty-summary{display:flex;min-height:420px;flex-direction:column;align-items:center;justify-content:center;text-align:center}.calendar-face{position:relative;display:block;width:87px;height:83px;margin-bottom:19px;border:2px solid var(--ink);border-radius:24px 24px 29px 29px;background:var(--soft-pink);box-shadow:5px 5px 0 var(--ink);transform:rotate(-3deg)}.calendar-face::before{content:"";position:absolute;top:-2px;right:-2px;left:-2px;height:25px;border:2px solid var(--ink);border-radius:22px 22px 0 0;background:var(--pink)}.calendar-face::after{content:"";position:absolute;top:42px;left:22px;width:42px;height:17px;border-bottom:3px solid var(--ink);border-radius:0 0 50% 50%}.calendar-face i::before,.calendar-face i::after{content:"";position:absolute;top:39px;width:7px;height:7px;border-radius:50%;background:var(--ink)}.calendar-face i::before{left:23px}.calendar-face i::after{right:23px}.empty-summary h2{margin:0 0 7px;font-size:27px;letter-spacing:-.04em}.empty-summary p{max-width:360px;margin:0;color:var(--muted)}.eyebrow{margin:18px 0 4px;font-size:11px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.next-date{display:block;color:var(--deep-pink);font-size:clamp(43px,6vw,67px);font-weight:950;line-height:1;letter-spacing:-.065em}.date-window{margin:8px 0;color:var(--muted)}.confidence-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0}.confidence-row span{padding:6px 10px;border:1.5px solid var(--ink);border-radius:999px;background:var(--soft-teal);font-size:10px;font-weight:950;text-transform:uppercase}.confidence-row p{margin:0;font-weight:850}.summary-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.summary-facts div{padding:13px;border:1.5px solid var(--ink);border-radius:13px;background:#fff}.summary-facts span{display:block;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.summary-facts strong{display:block;margin-top:3px;font-size:15px}.result-warning{padding:11px 12px;border:1.5px solid #9c3b29;border-radius:12px;background:#ffe4dc;color:#762817;font-size:12px;font-weight:750}.save-row{display:flex;align-items:center;gap:11px;margin-top:17px}.save-row button{padding:10px 13px;border:1.5px solid var(--ink);border-radius:999px;background:var(--yellow);font-size:11px;font-weight:950;cursor:pointer}.save-row span{color:var(--muted);font-size:10px}.image-preview{margin:14px 0 0}.image-preview img{display:block;width:100%;border:1.5px solid var(--ink);border-radius:11px;background:#fff}.image-preview figcaption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;font-size:10px}.image-preview a{color:var(--ink);font-weight:950;text-underline-offset:3px}
.calendar-card,.forecast-card{margin-top:30px;padding:27px;border:2px solid var(--ink);border-radius:25px;background:#fff;box-shadow:8px 8px 0 var(--ink)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:25px}.section-heading>div{display:flex;align-items:center;gap:11px}.section-heading p{max-width:540px;margin:3px 0 0;color:var(--muted);font-size:12px;text-align:right}.legend{display:flex;flex-wrap:wrap;gap:13px;margin:20px 0 15px}.legend span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;font-weight:800}.legend i{display:block;width:16px;height:16px;border:1px solid var(--ink);border-radius:5px}.period-key{background:var(--soft-pink)}.fertile-key{background:var(--soft-yellow)}.ovulation-key{background:#fff;box-shadow:inset 0 0 0 3px var(--teal)}.today-key{background:var(--ink)}.calendar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.month-card{padding:13px;border:1.5px solid var(--ink);border-radius:17px;background:#fff}.month-card h3{margin:0 0 11px;text-align:center}.week-row,.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.week-row span{padding-bottom:5px;color:var(--muted);font-size:8px;font-weight:900;text-align:center;text-transform:uppercase}.day{position:relative;display:grid;aspect-ratio:1;place-items:center;border:1px solid transparent;border-radius:8px;font-size:10px}.day.period-day{background:var(--soft-pink);color:#6d1732;font-weight:900}.day.fertile-day{background:var(--soft-yellow)}.day.ovulation-day{border:2px solid var(--teal);background:#fff;color:#075f5b;font-weight:950}.day.today{background:var(--ink);color:#fff;font-weight:950}.day.today.ovulation-day{box-shadow:inset 0 0 0 2px var(--teal)}.day.blank{visibility:hidden}.table-wrap{margin-top:20px;overflow-x:auto;border:1.5px solid var(--ink);border-radius:15px}table{width:100%;min-width:690px;border-collapse:collapse;text-align:left}th,td{padding:12px 16px;border-bottom:1px solid #d7d7d1;font-size:12px}th{background:var(--soft-pink);font-size:10px;letter-spacing:.07em;text-transform:uppercase}tbody tr:last-child td{border-bottom:0}tbody tr:nth-child(even){background:#fbfaf5}td:first-child{font-weight:900}
.details-section{padding:78px 0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);background:#fff;text-align:center}.kicker{font-size:12px;font-weight:950;letter-spacing:.15em;text-transform:uppercase}.details-section h2,.faq-section h2,.sources-section h2{margin:9px auto 31px;font-size:clamp(42px,6vw,66px);line-height:.95;letter-spacing:-.057em}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.info-grid article{padding:26px;border:2px solid var(--ink);border-radius:22px;background:var(--paper)}.info-grid article:nth-child(2){background:var(--soft-pink);transform:rotate(-.3deg)}.info-grid article:nth-child(3){background:var(--soft-yellow);transform:rotate(.3deg)}.info-grid article>span{display:grid;width:34px;height:32px;margin:0 auto 13px;place-items:center;border:1.5px solid var(--ink);border-radius:50%;background:#fff;font-size:10px;font-weight:950}.info-grid h3{margin:0 0 6px;font-size:20px}.info-grid p{margin:0;color:#4e534c}.medical-note{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:35px;padding-top:67px;padding-bottom:67px}.medical-note>div span{font-size:11px;font-weight:950;letter-spacing:.13em}.medical-note h2{margin:7px 0 0;font-size:clamp(37px,5vw,58px);line-height:.96;letter-spacing:-.055em}.medical-note p{margin:0;padding:22px;border:2px solid var(--ink);border-radius:18px;background:var(--soft-yellow);box-shadow:6px 6px 0 var(--ink)}.faq-section{padding:4px 0 82px;text-align:center}.faq-list{display:grid;max-width:860px;margin:auto;gap:10px;text-align:left}.faq-list details{padding:17px 19px;border:2px solid var(--ink);border-radius:17px;background:#fff}.faq-list summary{cursor:pointer;font-weight:950}.faq-list p{margin:9px 0 0;color:var(--muted)}.sources-section{padding:68px 0;border-top:2px solid var(--ink);background:var(--soft-teal);text-align:center}.sources-section h2{margin-bottom:17px}.sources-section p{max-width:820px;margin:0 auto 13px;color:#424941}.sources-section a{color:var(--ink);font-weight:900;text-underline-offset:3px}.sources-section small{color:var(--muted)}
:focus-visible{outline:4px solid rgba(36,87,245,.34);outline-offset:3px}@media(max-width:900px){.cycle-card{grid-template-columns:1fr}.cycle-summary{border-top:2px solid var(--ink);border-left:0}.calendar-grid{grid-template-columns:1fr}.month-card{max-width:500px;width:100%;margin:auto}.medical-note{grid-template-columns:1fr}.hero h1{font-size:72px}}@media(max-width:640px){.shell{width:min(100% - 24px,1120px)}.nav-links a:not(.nav-pill){display:none}.hero{padding:49px 0 37px}.hero h1{font-size:51px}.dek{font-size:17px}.maker-note{align-items:flex-start;padding:16px}.maker-face{width:50px;height:47px;flex-basis:50px;margin-right:13px}.privacy-note{align-items:flex-start;text-align:left}.safety-banner{text-align:left}.cycle-card{border-radius:22px;box-shadow:6px 7px 0 var(--ink)}.cycle-form,.cycle-summary{padding:18px}.field-grid{grid-template-columns:1fr}.form-heading h2,.section-heading h2{font-size:25px}.summary-facts{grid-template-columns:1fr 1fr}.section-heading{flex-direction:column;gap:9px}.section-heading p{text-align:left}.calendar-card,.forecast-card{padding:17px}.legend{gap:9px}.info-grid{grid-template-columns:1fr}.medical-note{gap:18px}.save-row{align-items:flex-start;flex-direction:column}.image-preview figcaption{align-items:flex-start;flex-direction:column}}@media(max-width:390px){.summary-facts{grid-template-columns:1fr}.form-heading button{padding:7px 8px}.next-date{font-size:45px}.tool-stamp{font-size:10px}.medical-note p{padding:17px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
