{"version":3,"file":"shared-lib.G7esSGmf.mjs","names":["React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","sharedStyle.className","className","RichText","sharedStyle.css","sharedStyle.fonts","React.useState","React.useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/7BBtRrclLm4FZHMomBBN/wFs9P1ghuM0edm1qlSDk/ek5dO8icE.js","https:/framerusercontent.com/modules/mitx8ebEnPdEwetqPL16/xQylJgwXjoSgIGl7LvzF/a09ggm276.js","https:/framerusercontent.com/modules/pcig8wu8lq51pinDe9Kx/OIc0xl1MKo4I8xVwCzHS/CycleCareLanding.js","https:/framerusercontent.com/modules/d8YBQRHXbKhI4Obx3GaC/vwkxFHx40DYhkABr8MHG/siteMetadata.js"],"sourcesContent":["// Generated by Framer (5bbf1f3)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-HOsle .framer-styles-preset-17o90sd:not(.rich-text-wrapper), .framer-HOsle .framer-styles-preset-17o90sd.rich-text-wrapper a { --framer-link-current-text-color: #ffffff; --framer-link-current-text-decoration: none; --framer-link-hover-text-decoration: underline; --framer-link-text-color: #ffffff; --framer-link-text-decoration: none; }\"];export const className=\"framer-HOsle\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b354274)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/7BBtRrclLm4FZHMomBBN/wFs9P1ghuM0edm1qlSDk/ek5dO8icE.js\";const cycleOrder=[\"z0WIwhiY9\",\"kKM7KpwQl\",\"MXlstglsv\"];const serializationHash=\"framer-93LK2\";const variantClassNames={kKM7KpwQl:\"framer-v-giyr0l\",MXlstglsv:\"framer-v-1b8pjcq\",z0WIwhiY9:\"framer-v-aluqiu\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Desktop:\"z0WIwhiY9\",Phone:\"MXlstglsv\",Tablet:\"kKM7KpwQl\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"z0WIwhiY9\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"z0WIwhiY9\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-aluqiu\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"z0WIwhiY9\",ref:refBinding,style:{backgroundColor:\"var(--token-5e2b0ce5-6792-41a6-b361-2edc3e258b95, rgb(214, 151, 215))\",...style},...addPropertyOverrides({kKM7KpwQl:{\"data-framer-name\":\"Tablet\"},MXlstglsv:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7SW50ZXItNTAw\",\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.5em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"\\xa9 2024-2026 Cycle Care App \"})}),className:\"framer-hnjrve\",fonts:[\"GF;Inter-500\"],layoutDependency:layoutDependency,layoutId:\"uEtZKL8p9\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-44si1k\",layoutDependency:layoutDependency,layoutId:\"H5J3uvkVx\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXItNTAw\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.5em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"Rdpwt65Lu\"},motionChild:true,nodeId:\"RqoRfP5Ow\",openInNewTab:false,relValues:[],scopeId:\"a09ggm276\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-17o90sd\",\"data-styles-preset\":\"ek5dO8icE\",children:\"Home\"})})})}),className:\"framer-4xpbtk\",fonts:[\"GF;Inter-500\"],layoutDependency:layoutDependency,layoutId:\"RqoRfP5Ow\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXItNTAw\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.5em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"cCP55Ofox\"},motionChild:true,nodeId:\"dPxzGMKSs\",openInNewTab:false,relValues:[],scopeId:\"a09ggm276\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-17o90sd\",\"data-styles-preset\":\"ek5dO8icE\",children:\"Contact Us\"})})})}),className:\"framer-9rvwil\",fonts:[\"GF;Inter-500\"],layoutDependency:layoutDependency,layoutId:\"dPxzGMKSs\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXItNTAw\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.5em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"a554C8gV3\"},motionChild:true,nodeId:\"ywjM6ZxoX\",openInNewTab:false,relValues:[],scopeId:\"a09ggm276\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-17o90sd\",\"data-styles-preset\":\"ek5dO8icE\",children:\"Terms of Use\"})})})}),className:\"framer-1h4uodi\",fonts:[\"GF;Inter-500\"],layoutDependency:layoutDependency,layoutId:\"ywjM6ZxoX\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXItNTAw\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.5em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"QrL5rzUTl\"},motionChild:true,nodeId:\"t45NxQlW0\",openInNewTab:false,relValues:[],scopeId:\"a09ggm276\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-17o90sd\",\"data-styles-preset\":\"ek5dO8icE\",children:\"Privacy Policy\"})})})}),className:\"framer-1jqvqls\",fonts:[\"GF;Inter-500\"],layoutDependency:layoutDependency,layoutId:\"t45NxQlW0\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-93LK2.framer-1h58f4y, .framer-93LK2 .framer-1h58f4y { display: block; }\",\".framer-93LK2.framer-aluqiu { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 50px; position: relative; width: 1200px; }\",\".framer-93LK2 .framer-hnjrve, .framer-93LK2 .framer-4xpbtk, .framer-93LK2 .framer-9rvwil, .framer-93LK2 .framer-1h4uodi, .framer-93LK2 .framer-1jqvqls { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-93LK2 .framer-44si1k { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 15px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: min-content; }\",\".framer-93LK2.framer-v-giyr0l.framer-aluqiu { padding: 60px 30px 60px 30px; width: 810px; }\",\".framer-93LK2.framer-v-1b8pjcq.framer-aluqiu { flex-direction: column; gap: 10px; justify-content: center; padding: 40px 20px 40px 20px; width: 390px; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 121\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"kKM7KpwQl\":{\"layout\":[\"fixed\",\"auto\"]},\"MXlstglsv\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framera09ggm276=withCSS(Component,css,\"framer-93LK2\");export default Framera09ggm276;Framera09ggm276.displayName=\"Footer\";Framera09ggm276.defaultProps={height:121,width:1200};addPropertyControls(Framera09ggm276,{variant:{options:[\"z0WIwhiY9\",\"kKM7KpwQl\",\"MXlstglsv\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum}});addFonts(Framera09ggm276,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"google\",style:\"normal\",uiFamilyName:\"Inter\",url:\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZ1rib2Bg-4.woff2\",weight:\"500\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framera09ggm276\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"121\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"kKM7KpwQl\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"MXlstglsv\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerColorSyntax\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./a09ggm276.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Cycle Care — home, contact, privacy and terms pages for cyclecareapp.vercel.app (also runs in Framer).\n * Design: \"Cycle Care Site 2026\" canvas. The hero demo uses the app's test windows.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */const APP_STORE=\"https://apps.apple.com/app/id6740526680\";// Official Apple badge (developer.apple.com/app-store/marketing/guidelines), hosted with the site for the Framer copy.\nconst BADGE=\"https://cyclecareapp.vercel.app/badges/app-store-black.svg\";// Screens from the 2.1.2 build (iPhone 17 Pro Max), hosted with the site so the Framer copy can use them too.\nconst SHOT={calendar:\"https://cyclecareapp.vercel.app/screens/calendar-1002.webp\",today:\"https://cyclecareapp.vercel.app/screens/today-1001.webp\",tests:\"https://cyclecareapp.vercel.app/screens/tests-1001.webp\",forecast:\"https://cyclecareapp.vercel.app/screens/forecast-1001.webp\",reminders:\"https://cyclecareapp.vercel.app/screens/reminders-1001.webp\"};const LENGTHS=[24,28,32,35];const PERIOD=5;const OVULATION=2;function phaseFor(day,length){const follicular=Math.max(1,length-PERIOD-OVULATION-14);const ovulationStart=PERIOD+follicular+1;if(day<=PERIOD)return{name:\"Menstruation\",ring:\"#B84468\",text:\"#9C3A58\"};if(day<ovulationStart)return{name:\"Follicular\",ring:\"#E3A63B\",text:\"#8A5A12\"};if(day<ovulationStart+OVULATION)return{name:\"Ovulation\",ring:\"#2FB5A8\",text:\"#1E7A70\"};return{name:\"Luteal\",ring:\"#3E7CA6\",text:\"#2C5D80\"};}// Same windows as LabTestSchedule in the app; progesterone and hCG move with the cycle length.\nfunction testWindows(length){const progesterone=length-7;return[{name:\"FSH\",from:2,to:5},{name:\"LH\",from:2,to:5},{name:\"Estradiol\",from:2,to:5},{name:\"Blood count\",from:2,to:5},{name:\"Ferritin\",from:2,to:5},{name:\"Prolactin\",from:3,to:10},{name:\"Progesterone\",from:progesterone-1,to:progesterone+1},{name:\"hCG\",from:length-1,to:length},{name:\"AMH\",from:1,to:length,anyDay:true}];}// Tests that share a window, shown as one row.\nfunction testGroups(length){const[fsh,,,blood,,prolactin,progesterone,hcg,amh]=testWindows(length);return[{...fsh,name:\"FSH, LH, estradiol\",short:\"FSH, LH, E2\"},{...blood,name:\"Blood count, ferritin\",short:\"CBC, ferritin\"},prolactin,progesterone,{...hcg,name:\"hCG pregnancy test\",short:\"hCG test\"},amh];}function testsFor(day,length){const windows=testWindows(length).filter(w=>!w.anyDay);const fit=windows.filter(w=>day>=w.from&&day<=w.to).map(w=>w.name);const wait=windows.filter(w=>day<w.from).map(w=>({name:w.name,days:w.from-day})).sort((a,b)=>a.days-b.days).slice(0,3);return{fit,wait};}function storyCaption(day,length){const progesterone=length-7;if(day===1)return\"Day 1 is the first day of your period. The baseline window opens tomorrow.\";if(day<=5)return\"Baseline window. FSH, LH, estradiol, blood count and ferritin give comparable results now.\";if(day<=10)return\"Baseline tests have passed for this cycle. Prolactin still fits until day 10.\";if(day<progesterone-1)return\"Nothing timed fits mid-cycle. Progesterone opens about a week before your next period.\";if(day<=progesterone+1)return`Progesterone peaks now: day ${progesterone} on a ${length}-day cycle. On a 32-day cycle it would be day 25.`;if(day<length-1)return\"Progesterone has passed. A pregnancy test becomes reliable when your period is due.\";return\"Your period is due. An hCG pregnancy test is reliable from today.\";}const DAY_MS=864e5;const utcDay=d=>Date.UTC(d.getFullYear(),d.getMonth(),d.getDate());const addDays=(d,n)=>new Date(d.getFullYear(),d.getMonth(),d.getDate()+n);const isoDate=d=>`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,\"0\")}-${String(d.getDate()).padStart(2,\"0\")}`;const icsDate=d=>isoDate(d).replace(/-/g,\"\");function parseDate(value){const[y,m,d]=value.split(\"-\").map(Number);return y&&m&&d?new Date(y,m-1,d):null;}function formatRange(from,to){const month=d=>d.toLocaleDateString(\"en-US\",{month:\"short\"});if(from.getTime()===to.getTime())return`${month(from)} ${from.getDate()}`;if(from.getMonth()===to.getMonth())return`${month(from)} ${from.getDate()}–${to.getDate()}`;return`${month(from)} ${from.getDate()} – ${month(to)} ${to.getDate()}`;}// Next window for each test, counted from the first day of the last period.\nfunction planVisits(start,length,today){const elapsed=Math.round((utcDay(today)-utcDay(start))/DAY_MS);const cycleStart=addDays(start,Math.floor(elapsed/length)*length);const day=elapsed%length+1;const visits=testGroups(length).map(w=>{if(w.anyDay)return{name:w.name,from:today,to:today,status:\"Any day\",open:true,anyDay:true};const base=day<=w.to?cycleStart:addDays(cycleStart,length);const from=addDays(base,w.from-1);const to=addDays(base,w.to-1);const wait=Math.round((utcDay(from)-utcDay(today))/DAY_MS);return{name:w.name,from,to,status:wait<=0?\"Open now\":`in ${wait} ${wait===1?\"day\":\"days\"}`,open:wait<=0};});visits.sort((a,b)=>Number(!!a.anyDay)-Number(!!b.anyDay)||a.from.getTime()-b.from.getTime());return{day,cycles:Math.floor(elapsed/length),visits};}function calendarFile(visits){const stamp=new Date().toISOString().replace(/[-:]/g,\"\").slice(0,15)+\"Z\";const events=visits.filter(v=>!v.anyDay).map((v,i)=>[\"BEGIN:VEVENT\",`UID:${icsDate(v.from)}-${i}@cyclecareapp`,`DTSTAMP:${stamp}`,`DTSTART;VALUE=DATE:${icsDate(v.from)}`,`DTEND;VALUE=DATE:${icsDate(addDays(v.to,1))}`,`SUMMARY:${v.name}: good window`,\"DESCRIPTION:Timing from Cycle Care. Always follow your doctor's instructions.\",\"END:VEVENT\"].join(\"\\r\\n\"));return[\"BEGIN:VCALENDAR\",\"VERSION:2.0\",\"PRODID:-//Cycle Care//Test dates//EN\",...events,\"END:VCALENDAR\"].join(\"\\r\\n\");}const WINDOWS=[[\"FSH, LH, estradiol (E2)\",\"2–5\",\"Baseline hormone levels, early follicular phase\"],[\"Blood count, ferritin\",\"2–5\",\"Baseline blood work around the period\"],[\"Prolactin\",\"3–10\",\"Early to mid follicular phase\"],[\"Progesterone\",\"7 days before period\",\"Mid-luteal peak; day 21 only on a 28-day cycle\"],[\"hCG pregnancy test\",\"Last 2 days\",\"From the day your period is due\"],[\"AMH\",\"Any day\",\"Does not depend on the cycle\"]];const FAQ=[[\"How does it work out which tests fit today?\",\"From the first day of your last period and your cycle length it counts today's cycle day, then checks each test against its window. Windows tied to the end of the cycle, like progesterone, move with your cycle length.\"],[\"Is Cycle Care a medical device?\",\"No. It shows timing information for tests your doctor has ordered, based on WHO, ACOG and ESHRE guidance. It does not diagnose or recommend treatment. Always follow your doctor's instructions.\"],[\"What if my cycle is irregular?\",\"Set your usual cycle length and update the start date when your period starts. After two recorded cycles, Cycle Care uses your own average. If your cycles vary a lot, ask your doctor which day to test.\"],[\"Does Cycle Care collect my data?\",\"No. No account, no server, no analytics, and Apple's label reads “Data Not Collected”. With iCloud on, your settings sync between your own devices through your private iCloud.\"],[\"Can it remind me?\",\"Yes: the day before your period, on ovulation day and three days before your period. Reminders are scheduled on your iPhone.\"],[\"How much does it cost?\",\"Cycle Care is free on iPhone and iPad.\"]];const CSS=`\n@import url(\"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=Figtree:wght@400;500;600;700&display=swap\");\n.cc{--bg:#F4F1EA;--ink:#1B1A17;--muted:#5B5F63;--body:#4E5257;--brand:#1F6493;--sand:#EDE6D8;--good:#1E7A70;\n  --display:\"Bricolage Grotesque\",\"Avenir Next\",sans-serif;--text:Figtree,\"Avenir Next\",-apple-system,sans-serif;\n  position:relative;width:100%;overflow-x:clip;background:var(--bg);color:var(--ink);font:400 17px/1.55 var(--text)}\n.cc *{box-sizing:border-box}\n.cc a{color:var(--brand)}\n.cc h1,.cc h2,.cc h3{font-family:var(--display);margin:0;text-wrap:balance}\n.cc p{margin:0}\n.cc .in{max-width:1280px;margin:0 auto;padding-inline:80px}\n.cc .glow{position:absolute;left:55%;top:-260px;width:900px;height:900px;border-radius:50%;pointer-events:none;\n  background:conic-gradient(from 0deg,rgba(184,68,104,.16),rgba(227,166,59,.14),rgba(47,181,168,.14),rgba(62,124,166,.16),rgba(184,68,104,.16));\n  filter:blur(60px);animation:cc-spin 60s linear infinite}\n.cc nav{position:sticky;top:0;z-index:5;background:rgba(244,241,234,.72);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid rgba(27,26,23,.08)}\n.cc nav .in{height:80px;display:flex;align-items:center;justify-content:space-between}\n.cc .logo{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:700;font-size:22px;color:var(--ink);text-decoration:none}\n.cc .logo svg{width:32px;height:32px;flex-shrink:0}\n.cc .links{display:flex;align-items:center;gap:32px;font-weight:500}\n.cc .links a{color:var(--ink);text-decoration:none}\n.cc .store{display:inline-flex;align-items:center;gap:12px;min-height:60px;padding:0 26px;border-radius:18px;background:var(--ink);color:var(--bg)!important;text-decoration:none;transition:transform .2s ease}\n.cc .store:hover{transform:translateY(-2px)}\n.cc .store.small{min-height:44px;padding:0 18px;border-radius:999px;font-weight:600;gap:8px}\n.cc .badge{display:inline-flex;flex:none;border-radius:9px;transition:transform .2s ease}\n.cc .badge:hover{transform:translateY(-2px)}\n.cc .badge img{display:block;height:56px;width:auto}\n.cc .badge.small img{height:40px}\n.cc .hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding-top:72px;padding-bottom:40px;position:relative}\n.cc .hero .copy{display:flex;flex-direction:column;gap:28px}\n.cc .tag{align-self:flex-start;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid rgba(27,26,23,.08);font-size:14px;font-weight:600;color:var(--brand)}\n.cc h1{font-size:clamp(48px,6.4vw,92px);line-height:.96;font-weight:800;letter-spacing:-.03em}\n.cc h1 span{color:#B84468}\n.cc .lede{font-size:21px;color:var(--body);max-width:30em}\n.cc .cta{display:flex;align-items:center;gap:20px;flex-wrap:wrap}\n.cc .fine{font-size:15px;color:var(--muted)}\n.cc .demo{padding:36px;border-radius:40px;background:rgba(255,255,255,.62);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);\n  border:1px solid rgba(255,255,255,.9);box-shadow:0 40px 80px -40px rgba(31,100,147,.35),inset 0 1px 0 #fff;display:flex;flex-direction:column;gap:24px}\n.cc .eyebrow{font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand)}\n.cc .demo-top{display:flex;flex-wrap:wrap;gap:24px 32px;align-items:center}\n.cc .ring{position:relative;width:220px;height:220px;flex-shrink:0}\n.cc .ring svg,.cc .device-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}\n.cc circle.on{transition:stroke-dasharray .6s cubic-bezier(.2,.7,.2,1),stroke .4s ease}\n.cc .ring .mid,.cc .device-ring .mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}\n.cc .ring .k,.cc .device-ring .k{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--muted)}\n.cc .ring .p{font-weight:600;font-size:15px}\n.cc .ring .d{font-family:var(--display);font-size:76px;line-height:1;font-weight:800}\n.cc .controls{flex:1 1 260px;display:flex;flex-direction:column;gap:14px;min-width:0}\n.cc .controls label{font-weight:600}\n.cc .slider{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;cursor:grab;touch-action:pan-y}\n.cc .slider:active{cursor:grabbing}\n.cc .slider::-webkit-slider-runnable-track{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--brand) var(--pct),#E7E1D5 var(--pct))}\n.cc .slider::-moz-range-track{height:10px;border-radius:999px;background:#E7E1D5}\n.cc .slider::-moz-range-progress{height:10px;border-radius:999px;background:var(--brand)}\n.cc .slider::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;margin-top:-10px;border-radius:50%;background:#fff;border:3px solid var(--brand);box-shadow:0 4px 12px -2px rgba(31,100,147,.45);transition:transform .15s}\n.cc .slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--brand);box-shadow:0 4px 12px -2px rgba(31,100,147,.45)}\n.cc .slider:active::-webkit-slider-thumb{transform:scale(1.12)}\n.cc .slider.hint::-webkit-slider-thumb{animation:cc-thumb 1.6s ease-out infinite}\n.cc .slider.hint::-moz-range-thumb{animation:cc-thumb 1.6s ease-out infinite}\n.cc .slider:focus{outline:none}\n.cc .slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(31,100,147,.3),0 4px 12px -2px rgba(31,100,147,.45)}\n.cc .slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px rgba(31,100,147,.3)}\n.cc .drag-hint{display:inline-flex;align-items:center;gap:6px;margin-top:-6px;font-size:13px;font-weight:600;color:var(--brand)}\n.cc .drag-hint i{font-style:normal;font-size:16px;animation:cc-nudge 1.2s ease-in-out infinite}\n.cc .drag-hint i:first-child{animation-direction:reverse}\n@keyframes cc-thumb{0%{box-shadow:0 0 0 0 rgba(31,100,147,.45),0 4px 12px -2px rgba(31,100,147,.45)}70%,100%{box-shadow:0 0 0 14px rgba(31,100,147,0),0 4px 12px -2px rgba(31,100,147,.45)}}\n@keyframes cc-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}\n.cc .pills{display:flex;gap:8px;flex-wrap:wrap}\n.cc .pill{min-height:44px;min-width:60px;padding:0 14px;border-radius:999px;border:1px solid #D9D2C4;background:#fff;color:var(--ink);font:600 15px var(--text);white-space:nowrap;cursor:pointer;transition:background .2s,color .2s}\n.cc .pill[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}\n.cc .lists{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.cc .list{padding:18px;border-radius:22px;background:#fff;display:flex;flex-direction:column;gap:10px}\n.cc .list b{font-size:15px}\n.cc .chips{display:flex;flex-wrap:wrap;gap:8px}\n.cc .chip{padding:7px 12px;border-radius:999px;background:#DDF0EC;color:#145B53;font-size:15px;font-weight:600;animation:cc-pop .35s ease both}\n.cc .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:15px}\n.cc .row>:last-child{white-space:nowrap}\n.cc .facts{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:32px;padding-bottom:72px}\n.cc .facts div{border-top:2px solid var(--ink);padding-top:16px;display:flex;flex-direction:column;gap:4px}\n.cc .facts b{font-family:var(--display);font-size:30px;font-weight:700;line-height:1.1}\n.cc .facts span{color:var(--muted)}\n.cc .dark{border-radius:40px;background:var(--ink);color:var(--bg);padding:64px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}\n.cc .dark h2{font-size:clamp(38px,4.4vw,64px);line-height:1;font-weight:800;letter-spacing:-.03em}\n.cc .dark h2 span{color:#E58BA5}\n.cc .dark p{font-size:20px}\n.cc .dark p+p{margin-top:16px;color:#C9C4BA}\n.cc .sec{padding-top:120px}\n.cc .head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:40px}\n.cc .head h2,.cc .side h2{font-size:clamp(40px,5vw,72px);line-height:1;font-weight:800;letter-spacing:-.03em}\n.cc .head p{max-width:26em;font-size:19px;color:var(--body)}\n.cc .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}\n.cc .grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:24px}\n.cc .card{border-radius:36px;background:#fff;padding:32px;display:flex;flex-direction:column;gap:12px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}\n.cc .card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(31,100,147,.35)}\n.cc .card.blue{background:var(--brand);color:#fff}\n.cc .card.blue p{color:#D6E6F1}\n.cc .card>*{flex-shrink:0}\n.cc .card.sand{background:var(--sand);flex-direction:row;align-items:center;padding:40px;gap:32px}\n.cc .card.sand h3{font-size:26px}\n.cc .card.sand .txt{flex:1 1 0;min-width:0;align-self:center;display:flex;flex-direction:column;gap:12px}\n.cc .card h3{font-size:30px;line-height:1.1;font-weight:700}\n.cc .card p{color:var(--muted)}\n.cc .n{align-self:flex-start;width:40px;height:40px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}\n.cc .card.blue .n{background:#fff;color:var(--brand)}\n.cc .phone{display:block;box-sizing:content-box!important;width:min(224px,calc(100% - 16px));height:auto;aspect-ratio:1206/2622;object-fit:cover;align-self:center;margin-top:auto;border:8px solid var(--ink);border-radius:44px;background:var(--ink);box-shadow:0 32px 64px -32px rgba(27,26,23,.5)}\n.cc .card>p{margin-bottom:16px}\n.cc .card.blue .phone{border-color:#0F2F45;background:#0F2F45}\n.cc .card.sand .phone{width:200px;margin:0}\n.cc .privacy{border-radius:40px;background:linear-gradient(160deg,#173D57,#1F6493);color:var(--bg);padding:72px;display:grid;grid-template-columns:1fr 1fr;gap:64px}\n.cc .privacy h2{font-size:clamp(38px,4.4vw,64px);line-height:1;font-weight:800;letter-spacing:-.03em}\n.cc .privacy .eyebrow{color:#BFD7E8}\n.cc .privacy ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}\n.cc .privacy li{padding:22px 24px;border-radius:24px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#DCE8F1}\n.cc .privacy li b{display:block;font-family:var(--display);font-size:22px;color:var(--bg)}\n.cc .split{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:56px;align-items:start}\n.cc .side{position:sticky;top:120px;display:flex;flex-direction:column;gap:18px}\n.cc .side p{font-size:18px;color:var(--body)}\n.cc .table{border-radius:32px;background:#fff;overflow-x:auto}\n.cc table{width:100%;border-collapse:collapse}\n.cc th{text-align:left;padding:18px 28px;background:var(--sand);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}\n.cc td{padding:20px 28px;border-top:1px solid var(--sand);vertical-align:top}\n.cc td:first-child{font-weight:600}\n.cc td.days{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.3;color:var(--good);white-space:nowrap}\n.cc td:last-child{color:var(--muted)}\n.cc details{padding:24px 28px;border-radius:24px;background:#fff}\n.cc details+details{margin-top:12px}\n.cc summary{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:20px;font-weight:600;cursor:pointer;list-style:none}\n.cc summary::-webkit-details-marker{display:none}\n.cc summary i{flex-shrink:0;font-style:normal;font-size:28px;line-height:1;color:var(--brand);transition:transform .3s ease}\n.cc details[open] summary i{transform:rotate(45deg)}\n.cc details p{margin-top:14px;color:var(--muted)}\n.cc .final{position:relative;overflow:hidden;border-radius:48px;background:var(--ink);color:var(--bg);padding:88px 64px;display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center}\n.cc .final h2{position:relative;font-size:clamp(40px,5.6vw,80px);line-height:1;font-weight:800;letter-spacing:-.03em}\n.cc .final .halo{position:absolute;left:50%;top:50%;width:640px;height:640px;margin:-320px 0 0 -320px;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgba(229,139,165,.28),rgba(229,139,165,0));animation:cc-breathe 4s ease-in-out infinite}\n.cc .final>*:not(.halo){position:relative}\n.cc .final .fine{color:#C9C4BA}\n.cc footer{--gut:80px;margin-top:64px;padding-block:32px 48px;background:linear-gradient(rgba(27,26,23,.12),rgba(27,26,23,.12)) top center/calc(100% - 2*var(--gut)) 1px no-repeat;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;font-size:15px;color:var(--muted)}\n.cc footer .links{gap:24px;font-weight:500}\n.cc footer .links a{color:var(--muted)}\n.cc footer .links a:hover{color:var(--ink)}\n.cc .note{flex-basis:100%}\n.cc .story{position:relative;height:420vh;margin-top:120px;background:var(--ink);color:var(--bg)}\n.cc .story-pin{position:sticky;top:80px;height:calc(100vh - 80px);height:calc(100svh - 80px);display:flex;align-items:center;overflow:hidden}\n.cc .story-pin::before{content:\"\";position:absolute;right:-10%;top:50%;width:900px;height:900px;margin-top:-450px;border-radius:50%;background:radial-gradient(closest-side,var(--ph),transparent);opacity:.22;pointer-events:none}\n.cc .story-grid{position:relative;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:64px;align-items:center}\n.cc .story-copy{display:flex;flex-direction:column;gap:18px;min-width:0}\n.cc .story .eyebrow{color:#9DC3DE}\n.cc .story-day{font-family:var(--display);font-weight:800;font-size:clamp(88px,11vw,168px);line-height:.85;letter-spacing:-.04em;font-variant-numeric:tabular-nums}\n.cc .story-day small{font-size:.3em;letter-spacing:0;margin-right:.25em;color:#C9C4BA}\n.cc .story-phase{font-family:var(--display);font-weight:700;font-size:28px;color:var(--ph);filter:brightness(1.35);transition:color .4s ease}\n.cc .story-cap{font-size:20px;color:#DCD7CD;max-width:30em;min-height:3.2em}\n.cc .rail{display:grid;grid-template-columns:repeat(28,1fr);gap:3px;max-width:520px;margin-top:8px}\n.cc .rail i{height:10px;border-radius:3px;opacity:.22;transition:opacity .25s ease}\n.cc .rail i.on{opacity:1}\n.cc .device{position:relative;box-sizing:border-box;height:min(calc(100vh - 144px),780px);height:min(calc(100svh - 144px),780px);width:auto;aspect-ratio:1206/2622;border-radius:min(56px,7svh);border:10px solid #000;background:var(--bg);color:var(--ink);padding:min(56px,7svh) 16px 16px;display:flex;flex-direction:column;gap:min(8px,1svh);overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 40px 120px -30px var(--ph);transition:box-shadow .6s ease}\n.cc .device::before{content:\"\";position:absolute;top:12px;left:50%;width:96px;height:28px;margin-left:-48px;border-radius:20px;background:#000}\n.cc .device-ring{position:relative;width:min(170px,20svh);height:min(170px,20svh);align-self:center;margin-bottom:min(8px,1svh)}\n.cc .device-ring svg{width:100%;height:100%}\n.cc .device-ring .d{font-family:var(--display);font-size:min(60px,7svh);line-height:1;font-weight:800;font-variant-numeric:tabular-nums}\n.cc .device-title{font-weight:700;font-size:15px;padding:0 4px}\n.cc .srow{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:min(44px,5.2svh);padding:0 10px 0 12px;border-radius:16px;background:#fff;font-size:clamp(12px,1.75svh,14px);font-weight:600;transition:opacity .3s ease,box-shadow .3s ease}\n.cc .srow span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.cc .srow em{flex-shrink:0;font-style:normal;font-size:clamp(11px,1.5svh,12px);padding:4px 10px;border-radius:999px;background:#EFEBE3;color:var(--muted);white-space:nowrap}\n.cc .srow.fit{box-shadow:inset 0 0 0 2px #2FB5A8}\n.cc .srow.fit em{background:#DDF0EC;color:#145B53}\n.cc .srow.any em{background:#E1ECF5;color:var(--brand)}\n.cc .srow.past{opacity:.45}\n.cc .form{display:flex;flex-direction:column;gap:12px;margin-top:8px}\n.cc .form label{font-weight:600}\n.cc #dates{position:relative;z-index:3}\n.cc #dates .side{z-index:2}\n.cc .dp{position:relative}\n.cc .dp-field{width:100%;min-height:56px;padding:0 16px 0 18px;border-radius:16px;border:1px solid #D9D2C4;background:#fff;color:var(--ink);font:600 18px var(--text);display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;transition:border-color .2s,box-shadow .2s}\n.cc .dp-field:hover,.cc .dp-field[aria-expanded=true]{border-color:var(--brand);box-shadow:0 0 0 4px rgba(31,100,147,.12)}\n.cc .dp-field svg{width:22px;height:22px;fill:none;stroke:var(--brand);stroke-width:1.8;stroke-linecap:round}\n.cc .dp-pop{position:absolute;z-index:6;top:calc(100% + 8px);left:0;width:min(372px,100%);padding:18px;border-radius:24px;background:#fff;border:1px solid rgba(27,26,23,.08);box-shadow:0 30px 60px -24px rgba(27,26,23,.35);animation:cc-pop .18s ease both}\n.cc .dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}\n.cc .dp-head b{font-family:var(--display);font-size:20px}\n.cc .dp-head div{display:flex;align-items:center;gap:6px}\n.cc .dp-head .dp-today{width:auto;padding:0 12px;border-radius:999px;font:700 13px var(--text);color:var(--brand)}\n.cc .dp-head button{width:36px;height:36px;border-radius:50%;border:1px solid #E4DDCF;background:var(--bg);color:var(--ink);font:600 20px/1 var(--text);cursor:pointer}\n.cc .dp-head button:disabled{opacity:.35;cursor:default}\n.cc .dp-week,.cc .dp-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:8px}\n.cc .dp-week span{text-align:center;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--muted);padding-bottom:4px}\n.cc .dp-day{position:relative;display:flex;align-items:center;justify-content:center;padding:3px 0}\n.cc .dp-day.phase{background:var(--band)}\n.cc .dp-day.run-start{border-top-left-radius:999px;border-bottom-left-radius:999px}\n.cc .dp-day.run-end{border-top-right-radius:999px;border-bottom-right-radius:999px}\n.cc .dp-day button{width:36px;height:36px;border:0;border-radius:50%;background:transparent;font:600 14px var(--text);color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums;transition:transform .15s,background .15s}\n.cc .dp-day button:hover:not(:disabled){background:var(--sand)}\n.cc .dp-day.phase button{background:var(--dot);color:#fff}\n.cc .dp-day.phase button:hover:not(:disabled){transform:scale(1.08)}\n.cc .dp-day.future button{color:#C9C4BA;cursor:default}\n.cc .dp-day.phase.future button{opacity:.5;color:#fff}\n.cc .dp-day.ovulation button{outline:2px dashed var(--dot);outline-offset:2px}\n.cc .dp-day.selected button{background:var(--brand);color:#fff}\n.cc .dp-day.today button{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink)}\n.cc .dp-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--sand)}\n.cc .dp-legend{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%;gap:4px 8px;font-size:12px;color:var(--muted)}\n.cc .dp-legend span{display:inline-flex;align-items:center;gap:5px}\n.cc .dp-legend i{width:14px;height:8px;border-radius:4px}\n.cc .dp-foot button{border:0;background:none;color:var(--brand);font:700 14px var(--text);cursor:pointer;padding:6px 4px}\n.cc .dates{border-radius:32px;background:#fff;padding:12px;display:flex;flex-direction:column}\n.cc .dates>.fine{padding:20px}\n.cc .dates-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;padding:16px 16px 12px;font-size:18px}\n.cc .dates-head b{font-family:var(--display);font-size:26px}\n.cc .visit{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 20px;align-items:center;padding:16px;border-top:1px solid var(--sand)}\n.cc .visit-name{font-weight:600}\n.cc .visit-date{font-family:var(--display);font-weight:700;font-size:19px;white-space:nowrap;font-variant-numeric:tabular-nums}\n.cc .visit em{font-style:normal;font-size:13px;font-weight:600;padding:5px 10px;border-radius:999px;background:#EFEBE3;color:var(--muted);white-space:nowrap;justify-self:end}\n.cc .visit.open em{background:#DDF0EC;color:#145B53}\n.cc .dates-cta{display:flex;flex-wrap:wrap;gap:12px;padding:16px;border-top:1px solid var(--sand)}\n.cc .ghost{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:600 15px var(--text);cursor:pointer;transition:background .2s,color .2s}\n.cc .ghost:hover{background:var(--ink);color:var(--bg)}\n.cc .doc{max-width:880px;padding-block:72px 16px;display:flex;flex-direction:column;gap:16px}\n.cc .doc h1{font-size:clamp(44px,5.6vw,80px);line-height:1;letter-spacing:-.03em;margin-bottom:4px}\n.cc .doc section{display:flex;flex-direction:column;gap:12px;padding-top:28px}\n.cc .doc h2{font-size:26px;line-height:1.2;font-weight:700}\n.cc .doc section p,.cc .doc li{color:var(--body);max-width:40em}\n.cc .doc ul{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}\n.cc .contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:24px}\n.cc .mail{grid-row:span 2;border-radius:32px;background:var(--ink);color:var(--bg);padding:36px;display:flex;flex-direction:column;gap:10px}\n.cc .mail .fine{color:#C9C4BA}\n.cc .mail b{font-family:var(--display);font-size:clamp(20px,1.8vw,26px);line-height:1.15;white-space:nowrap;user-select:all}\n.cc .mail .cta{margin-top:auto;padding-top:24px}\n.cc .mail .store.small{background:var(--bg);color:var(--ink)!important}\n.cc .mail .ghost{border-color:#C9C4BA;color:var(--bg)}\n.cc .mail .ghost:hover{background:var(--bg);color:var(--ink)}\n.cc .tile{border-radius:24px;background:#fff;padding:24px 28px;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink)!important;transition:transform .2s ease}\n.cc .tile:hover{transform:translateY(-2px)}\n.cc .tile span{color:var(--muted)}\n.cc .dock{display:none}\n.cc.picker-open .dock{visibility:hidden;opacity:0}\n.cc .rise{animation:cc-rise .9s cubic-bezier(.2,.7,.2,1) both}\n.cc .d1{animation-delay:.08s}.cc .d2{animation-delay:.16s}.cc .d3{animation-delay:.24s}\n@supports (animation-timeline: view()){.cc .reveal{animation:cc-rise linear both;animation-timeline:view();animation-range:entry 0% cover 28%}}\n.cc a:focus-visible,.cc button:focus-visible,.cc summary:focus-visible,.cc input:not(.slider):focus-visible{outline:3px solid var(--brand);outline-offset:3px}\n@keyframes cc-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}\n@keyframes cc-pop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}\n@keyframes cc-spin{to{transform:rotate(360deg)}}\n@keyframes cc-breathe{0%,100%{transform:scale(.9);opacity:1}50%{transform:scale(1.1);opacity:.6}}\n@media (max-width:1280px){\n  .cc .card.sand{flex-direction:column;align-items:stretch;gap:24px}\n  .cc .card.sand .phone{width:min(224px,calc(100% - 16px));align-self:center;margin-top:auto}\n}\n@media (max-width:1100px){\n  .cc .in{padding-inline:40px}\n  .cc footer{--gut:40px}\n  .cc .lists{grid-template-columns:1fr}\n  .cc .split{grid-template-columns:1fr}\n  .cc .split{gap:32px}\n  .cc .side{position:relative;top:auto}\n  .cc .card h3{font-size:26px}\n}\n@media (max-width:900px){\n  .cc .in{padding-inline:16px}\n  .cc footer{--gut:16px}\n  .cc .links a:not(.badge){display:none}\n  .cc nav .in{height:64px}\n  .cc .hero,.cc .dark,.cc .privacy,.cc .split,.cc .grid3,.cc .grid2{grid-template-columns:1fr}\n  .cc .hero{padding-top:36px;gap:28px}\n  .cc .demo{padding:22px;border-radius:32px}\n  .cc .demo-top{gap:18px}\n  .cc .demo-top{justify-content:center}\n  .cc .ring{width:184px;height:184px}\n  .cc .ring svg{width:184px;height:184px}\n  .cc .ring .k{font-size:11px}\n  .cc .ring .d{font-size:60px}\n  .cc .ring .p{font-size:14px}\n  .cc .lists{grid-template-columns:1fr}\n  .cc .facts{grid-template-columns:1fr 1fr;padding-bottom:40px}\n  .cc .facts b{font-size:21px}\n  .cc .dark,.cc .privacy{padding:32px 24px;border-radius:32px}\n  .cc .sec{padding-top:64px}\n  .cc .head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:24px}\n  .cc .card{padding:24px}\n  .cc .card h3{font-size:24px}\n  .cc .card.sand{flex-direction:column;align-items:stretch;padding:24px;gap:24px}\n  .cc .story{height:380vh;margin-top:64px}\n  .cc .story-pin{top:64px;height:calc(100vh - 64px);height:calc(100svh - 64px);align-items:flex-start;padding-top:20px}\n  .cc .story-grid{grid-template-columns:1fr;gap:16px;justify-items:center}\n  .cc .story-copy{width:100%;gap:8px}\n  .cc .story .eyebrow{display:none}\n  .cc .story-day{font-size:72px}\n  .cc .story-phase{font-size:20px}\n  .cc .story-cap{font-size:15px;min-height:3.1em}\n  .cc .rail{gap:2px}\n  .cc .rail i{height:8px}\n  .cc .device{width:100%;height:auto;aspect-ratio:auto;padding:14px;gap:6px;border-radius:28px;border:0}\n  .cc .device::before{display:none}\n  .cc .device-ring{display:none}\n  .cc .srow{min-height:36px;font-size:13px}\n  .cc .visit{grid-template-columns:minmax(0,1fr) auto;padding:14px 12px}\n  .cc .visit-date{grid-row:2;font-size:17px}\n  .cc .doc{padding-block:40px 8px}\n  .cc .contact{grid-template-columns:1fr}\n  .cc .mail{grid-row:auto;padding:28px}\n  .cc .card.sand .phone{width:min(224px,calc(100% - 16px));align-self:center}\n  .cc table,.cc tbody{display:block}\n  .cc thead{display:none}\n  .cc tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:18px 20px;border-top:1px solid var(--sand)}\n  .cc tr:first-child{border-top:0}\n  .cc td{padding:0;border:0}\n  .cc td:last-child{grid-column:1/-1;font-size:15px}\n  .cc .final{padding:44px 24px;border-radius:36px}\n  .cc footer{margin-top:40px;padding-bottom:160px;flex-direction:column;align-items:flex-start}\n  .cc footer .links a:not(.badge){display:inline}\n  .cc .dock{display:flex;position:fixed;left:16px;right:16px;bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:10;min-height:60px;padding:0 20px;border-radius:20px;\n    align-items:center;justify-content:space-between;background:rgba(27,26,23,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);\n    color:var(--bg)!important;text-decoration:none;box-shadow:0 20px 40px -20px rgba(0,0,0,.5)}\n  .cc .dock b{font-size:17px}\n  .cc .dock span{font-size:14px;color:#C9C4BA}\n}\n@media (prefers-reduced-motion:reduce){\n  .cc .rise,.cc .reveal,.cc .glow,.cc .halo,.cc .chip,.cc .drag-hint i{animation:none!important}\n  .cc .slider.hint::-webkit-slider-thumb{animation:none!important}\n  .cc .slider.hint::-moz-range-thumb{animation:none!important}\n  .cc .card,.cc .store,.cc .badge,.cc circle.on,.cc .srow,.cc .rail i{transition:none!important}\n}\n`;function StoreBadge({small}){return /*#__PURE__*/_jsx(\"a\",{className:small?\"badge small\":\"badge\",href:APP_STORE,target:\"_blank\",rel:\"noopener\",children:/*#__PURE__*/_jsx(\"img\",{src:BADGE,alt:\"Download on the App Store\",width:small?120:168,height:small?40:56})});}// Days the demo glides through once, the first time it scrolls into view, to show the slider moves.\nconst DEMO_SWEEP=[4,5,6,7,8,9,9,8,7,6,5,4,3];function Demo(){const[day,setDay]=React.useState(3);const[length,setLength]=React.useState(28);const[touched,setTouched]=React.useState(false);const ref=React.useRef(null);const timers=React.useRef([]);const current=Math.min(day,length);const stopSweep=()=>{timers.current.forEach(clearTimeout);timers.current=[];};const touch=()=>{stopSweep();setTouched(true);};React.useEffect(()=>{const el=ref.current;if(!el||window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;const io=new IntersectionObserver(([entry])=>{if(!entry.isIntersecting)return;io.disconnect();DEMO_SWEEP.forEach((d,i)=>timers.current.push(window.setTimeout(()=>setDay(d),900+i*110)));},{threshold:.6});io.observe(el);return()=>{io.disconnect();stopSweep();};},[]);const phase=phaseFor(current,length);const{fit,wait}=testsFor(current,length);return /*#__PURE__*/_jsxs(\"div\",{className:\"demo rise d2\",ref:ref,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"row\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"eyebrow\",children:\"Try it now\"}),/*#__PURE__*/_jsx(\"span\",{className:\"fine\",children:\"Same rules as the app\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"demo-top\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"ring\",children:[/*#__PURE__*/_jsx(Ring,{day:current,length:length,color:phase.ring,size:220}),/*#__PURE__*/_jsxs(\"div\",{className:\"mid\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"k\",children:\"CYCLE DAY\"}),/*#__PURE__*/_jsx(\"span\",{className:\"d\",children:current}),/*#__PURE__*/_jsx(\"span\",{className:\"p\",style:{color:phase.text},children:phase.name})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"controls\",children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:\"cc-day\",children:\"Which day of your cycle is it?\"}),/*#__PURE__*/_jsx(\"input\",{id:\"cc-day\",type:\"range\",className:touched?\"slider\":\"slider hint\",min:1,max:length,value:current,style:{\"--pct\":`${(current-1)/(length-1)*100}%`},onPointerDown:touch,onKeyDown:touch,onChange:e=>{touch();setDay(Number(e.target.value));}}),!touched&&/*#__PURE__*/_jsxs(\"span\",{className:\"drag-hint\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"i\",{children:\"‹\"}),\" Drag to change the day \",/*#__PURE__*/_jsx(\"i\",{children:\"›\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"fine\",children:\"Cycle length\"}),/*#__PURE__*/_jsx(\"div\",{className:\"pills\",role:\"group\",\"aria-label\":\"Cycle length\",children:LENGTHS.map(n=>/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"pill\",\"aria-pressed\":n===length,onClick:()=>{touch();setLength(n);},children:[n,\" days\"]},n))})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"lists\",\"aria-live\":\"polite\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"list\",children:[/*#__PURE__*/_jsx(\"b\",{style:{color:\"#1E7A70\"},children:\"Good window today\"}),fit.length?/*#__PURE__*/_jsx(\"div\",{className:\"chips\",children:fit.map(name=>/*#__PURE__*/_jsx(\"span\",{className:\"chip\",children:name},`${name}-${current}-${length}`))}):/*#__PURE__*/_jsx(\"p\",{className:\"fine\",children:\"No timed test fits today. AMH works any day.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"list\",children:[/*#__PURE__*/_jsx(\"b\",{style:{color:\"#9C3A58\"},children:\"Wait for these\"}),wait.length?wait.map(w=>/*#__PURE__*/_jsxs(\"div\",{className:\"row\",children:[/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:w.name}),/*#__PURE__*/_jsxs(\"span\",{className:\"fine\",children:[\"in \",w.days,\" \",w.days===1?\"day\":\"days\"]})]},w.name)):/*#__PURE__*/_jsx(\"p\",{className:\"fine\",children:\"Every window this cycle is open or has passed.\"})]})]})]});}function Ring({day,length,color,size}){const radius=92;const circumference=2*Math.PI*radius;return /*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 220 220\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"110\",cy:\"110\",r:radius,fill:\"none\",stroke:\"#E7E1D5\",strokeWidth:\"18\"}),/*#__PURE__*/_jsx(\"circle\",{className:\"on\",cx:\"110\",cy:\"110\",r:radius,fill:\"none\",stroke:color,strokeWidth:\"18\",strokeLinecap:\"round\",strokeDasharray:`${circumference*day/length} ${circumference}`})]});}const STORY_LENGTH=28;function CycleStory(){const ref=React.useRef(null);const[day,setDay]=React.useState(1);React.useEffect(()=>{let frame=0;const update=()=>{frame=0;const el=ref.current;if(!el)return;const rect=el.getBoundingClientRect();const travel=Math.max(1,rect.height-window.innerHeight);const progress=Math.min(1,Math.max(0,-rect.top/travel));setDay(Math.min(STORY_LENGTH,1+Math.floor(progress*STORY_LENGTH)));};const onScroll=()=>{if(!frame)frame=requestAnimationFrame(update);};update();window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",onScroll);return()=>{window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"resize\",onScroll);cancelAnimationFrame(frame);};},[]);const phase=phaseFor(day,STORY_LENGTH);const rows=testGroups(STORY_LENGTH).map(({short,...w})=>({...w,name:short??w.name})).map(w=>{if(w.anyDay)return{name:w.name,state:\"any\",label:\"Any day\"};if(day>=w.from&&day<=w.to)return{name:w.name,state:\"fit\",label:\"Good window\"};const wait=w.from-day;if(wait>0)return{name:w.name,state:\"wait\",label:`in ${wait} ${wait===1?\"day\":\"days\"}`};return{name:w.name,state:\"past\",label:\"Next cycle\"};});return /*#__PURE__*/_jsx(\"section\",{ref:ref,className:\"story\",\"aria-label\":\"A cycle, day by day\",style:{\"--ph\":phase.ring},children:/*#__PURE__*/_jsx(\"div\",{className:\"story-pin\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"in story-grid\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"story-copy\",children:[/*#__PURE__*/_jsxs(\"p\",{className:\"eyebrow\",children:[\"Scroll through a \",STORY_LENGTH,\"-day cycle\"]}),/*#__PURE__*/_jsxs(\"p\",{className:\"story-day\",children:[/*#__PURE__*/_jsx(\"small\",{children:\"Day\"}),day]}),/*#__PURE__*/_jsx(\"p\",{className:\"story-phase\",children:phase.name}),/*#__PURE__*/_jsx(\"p\",{className:\"story-cap\",children:storyCaption(day,STORY_LENGTH)}),/*#__PURE__*/_jsx(\"div\",{className:\"rail\",\"aria-hidden\":\"true\",children:Array.from({length:STORY_LENGTH},(_,i)=>/*#__PURE__*/_jsx(\"i\",{className:i<day?\"on\":\"\",style:{background:phaseFor(i+1,STORY_LENGTH).ring}},i))})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"device\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"device-ring\",children:[/*#__PURE__*/_jsx(Ring,{day:day,length:STORY_LENGTH,color:phase.ring,size:170}),/*#__PURE__*/_jsxs(\"div\",{className:\"mid\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"k\",children:\"MY CYCLE\"}),/*#__PURE__*/_jsx(\"span\",{className:\"d\",children:day})]})]}),/*#__PURE__*/_jsx(\"p\",{className:\"device-title\",children:\"Lab tests today\"}),rows.map(r=>/*#__PURE__*/_jsxs(\"div\",{className:`srow ${r.state}`,children:[/*#__PURE__*/_jsx(\"span\",{children:r.name}),/*#__PURE__*/_jsx(\"em\",{children:r.label})]},r.name))]})]})})});}const WEEKDAYS=[\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sun\"];const sameDay=(a,b)=>utcDay(a)===utcDay(b);const formatLong=d=>d.toLocaleDateString(\"en-US\",{day:\"numeric\",month:\"short\",year:\"numeric\"});const PHASE_BAND={Menstruation:\"#F5D9E0\",Follicular:\"rgba(227,166,59,.18)\",Ovulation:\"rgba(47,181,168,.18)\",Luteal:\"#D8E8F2\"};/**\n * Date picker styled like the app's calendar: each day from the picked start date is a circle in its\n * phase color over a band for the phase run, future days are faded predictions, the first ovulation\n * day has a dashed ring. Days after `max` cannot be picked.\n */function DatePicker({id,value,max,cycleLength,onChange}){const[open,setOpen]=React.useState(false);const[month,setMonth]=React.useState(()=>new Date((value??max).getFullYear(),(value??max).getMonth(),1));const[focus,setFocus]=React.useState(value??max);const root=React.useRef(null);const grid=React.useRef(null);React.useEffect(()=>{if(!open)return;const close=e=>{if(!root.current?.contains(e.target))setOpen(false);};document.addEventListener(\"mousedown\",close);return()=>document.removeEventListener(\"mousedown\",close);},[open]);React.useEffect(()=>{if(open)grid.current?.querySelector(\"[data-focus='true']\")?.focus();},[open,focus]);// Hides the floating App Store bar on phones while the calendar is open.\nReact.useEffect(()=>{const site=root.current?.closest(\".cc\");site?.classList.toggle(\"picker-open\",open);return()=>site?.classList.remove(\"picker-open\");},[open]);const openPicker=()=>{const base=value??max;setMonth(new Date(base.getFullYear(),base.getMonth(),1));setFocus(base);setOpen(o=>!o);};const pick=d=>{if(utcDay(d)>utcDay(max))return;onChange(d);setOpen(false);};const moveFocus=days=>{const next=addDays(focus,days);if(utcDay(next)>utcDay(max))return;setFocus(next);if(next.getMonth()!==month.getMonth()||next.getFullYear()!==month.getFullYear())setMonth(new Date(next.getFullYear(),next.getMonth(),1));};const onKey=e=>{const moves={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7};if(e.key in moves){e.preventDefault();moveFocus(moves[e.key]);}else if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();pick(focus);}else if(e.key===\"Escape\"){e.preventDefault();setOpen(false);}};const first=month;const lead=(first.getDay()+6)%7;const daysInMonth=new Date(first.getFullYear(),first.getMonth()+1,0).getDate();const cells=[...Array(lead).fill(null),...Array.from({length:daysInMonth},(_,i)=>new Date(first.getFullYear(),first.getMonth(),i+1))];// Future months stay viewable as a forecast, up to three months ahead.\nconst nextMonthDisabled=new Date(first.getFullYear(),first.getMonth()+1,1)>new Date(max.getFullYear(),max.getMonth()+3,1);const cycleDayOf=d=>{if(!value)return null;const diff=Math.round((utcDay(d)-utcDay(value))/DAY_MS);return diff<0?null:diff%cycleLength+1;};const ovulationDay=PERIOD+Math.max(1,cycleLength-PERIOD-OVULATION-14)+1;return /*#__PURE__*/_jsxs(\"div\",{className:\"dp\",ref:root,children:[/*#__PURE__*/_jsxs(\"button\",{id:id,type:\"button\",className:\"dp-field\",\"aria-haspopup\":\"dialog\",\"aria-expanded\":open,onClick:openPicker,children:[/*#__PURE__*/_jsx(\"span\",{children:value?formatLong(value):\"Pick a date\"}),/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3.5\",y:\"5\",width:\"17\",height:\"15\",rx:\"3\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.5 10h17M8 3v4M16 3v4\"})]})]}),open&&/*#__PURE__*/_jsxs(\"div\",{className:\"dp-pop\",role:\"dialog\",\"aria-label\":\"Choose the first day of your last period\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"dp-head\",children:[/*#__PURE__*/_jsx(\"b\",{\"aria-live\":\"polite\",children:first.toLocaleDateString(\"en-GB\",{month:\"long\",year:\"numeric\"})}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"dp-today\",onClick:()=>pick(max),children:\"Today\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Previous month\",onClick:()=>setMonth(new Date(first.getFullYear(),first.getMonth()-1,1)),children:\"‹\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Next month\",disabled:nextMonthDisabled,onClick:()=>setMonth(new Date(first.getFullYear(),first.getMonth()+1,1)),children:\"›\"})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"dp-week\",\"aria-hidden\":\"true\",children:WEEKDAYS.map(w=>/*#__PURE__*/_jsx(\"span\",{children:w.slice(0,2)},w))}),/*#__PURE__*/_jsx(\"div\",{className:\"dp-grid\",role:\"grid\",ref:grid,onKeyDown:onKey,children:cells.map((d,i)=>{if(!d)return /*#__PURE__*/_jsx(\"span\",{},`e${i}`);const disabled=utcDay(d)>utcDay(max);const selected=value!==null&&sameDay(d,value);const day=cycleDayOf(d);const phase=day?phaseFor(day,cycleLength).name:null;const prev=addDays(d,-1),next=addDays(d,1);const samePhase=x=>{const n=cycleDayOf(x);return n!==null&&phaseFor(n,cycleLength).name===phase;};const col=i%7;const runStart=phase&&(col===0||d.getDate()===1||!samePhase(prev));const runEnd=phase&&(col===6||next.getMonth()!==d.getMonth()||!samePhase(next));const classes=[\"dp-day\",phase?\"phase\":\"\",disabled?\"future\":\"\",selected?\"selected\":\"\",sameDay(d,max)?\"today\":\"\",day===ovulationDay?\"ovulation\":\"\",runStart?\"run-start\":\"\",runEnd?\"run-end\":\"\"].filter(Boolean).join(\" \");const style=phase?{\"--band\":PHASE_BAND[phase],\"--dot\":phaseFor(day,cycleLength).ring}:undefined;return /*#__PURE__*/_jsx(\"div\",{className:classes,style:style,children:/*#__PURE__*/_jsx(\"button\",{type:\"button\",role:\"gridcell\",disabled:disabled,\"aria-selected\":selected,\"aria-label\":`${formatLong(d)}${phase?`, ${phase}`:\"\"}`,tabIndex:sameDay(d,focus)?0:-1,\"data-focus\":sameDay(d,focus),onClick:()=>pick(d),children:d.getDate()})},d.getDate());})}),/*#__PURE__*/_jsx(\"div\",{className:\"dp-foot\",children:/*#__PURE__*/_jsx(\"div\",{className:\"dp-legend\",\"aria-hidden\":\"true\",children:[\"Menstruation\",\"Follicular\",\"Ovulation\",\"Luteal\"].map((n,k)=>/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"i\",{style:{background:[\"#B84468\",\"#E3A63B\",\"#2FB5A8\",\"#3E7CA6\"][k]}}),n]},n))})})]})]});}function MyDates(){const[start,setStart]=React.useState(\"\");const[length,setLength]=React.useState(28);const[today,setToday]=React.useState(null);// Dates depend on the visitor's clock, so they are set after hydration.\nReact.useEffect(()=>{const now=new Date;setToday(new Date(now.getFullYear(),now.getMonth(),now.getDate()));setStart(isoDate(addDays(now,-2)));},[]);const startDate=parseDate(start);const plan=today&&startDate&&startDate<=today?planVisits(startDate,length,today):null;const download=()=>{if(!plan)return;const url=URL.createObjectURL(new Blob([calendarFile(plan.visits)],{type:\"text/calendar\"}));const link=document.createElement(\"a\");link.href=url;link.download=\"cycle-care-test-dates.ics\";link.click();setTimeout(()=>URL.revokeObjectURL(url),1e3);};return /*#__PURE__*/_jsxs(\"section\",{id:\"dates\",className:\"in sec split\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"side reveal\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Your test dates, worked out\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Enter the first day of your last period. Nothing you type leaves this page.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"form\",children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:\"cc-start\",children:\"First day of your last period\"}),today&&/*#__PURE__*/_jsx(DatePicker,{id:\"cc-start\",value:startDate,max:today,cycleLength:length,onChange:d=>setStart(isoDate(d))}),/*#__PURE__*/_jsx(\"span\",{className:\"fine\",children:\"Cycle length\"}),/*#__PURE__*/_jsx(\"div\",{className:\"pills\",role:\"group\",\"aria-label\":\"Cycle length for your dates\",children:LENGTHS.map(n=>/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"pill\",\"aria-pressed\":n===length,onClick:()=>setLength(n),children:[n,\" days\"]},n))})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"dates reveal\",\"aria-live\":\"polite\",children:plan?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"dates-head\",children:[/*#__PURE__*/_jsxs(\"span\",{children:[\"Today is cycle day \",/*#__PURE__*/_jsx(\"b\",{children:plan.day})]}),plan.cycles>=2&&/*#__PURE__*/_jsx(\"span\",{className:\"fine\",children:\"That was over two cycles ago. Update the date for accuracy.\"})]}),plan.visits.map(v=>/*#__PURE__*/_jsxs(\"div\",{className:v.open?\"visit open\":\"visit\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"visit-name\",children:v.name}),/*#__PURE__*/_jsx(\"span\",{className:\"visit-date\",children:v.anyDay?\"Any day\":formatRange(v.from,v.to)}),/*#__PURE__*/_jsx(\"em\",{children:v.anyDay?\"No timing\":v.status})]},v.name)),/*#__PURE__*/_jsxs(\"div\",{className:\"dates-cta\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"ghost\",onClick:download,children:\"Add to calendar\"}),/*#__PURE__*/_jsx(StoreBadge,{small:true})]})]}):/*#__PURE__*/_jsx(\"p\",{className:\"fine\",children:start?\"Pick a date that is not in the future.\":\"Pick the first day of your last period.\"})})]});}// Same geometry as the app icon: the four phases of a 28-day cycle and a day marker.\nfunction LogoMark(){return /*#__PURE__*/_jsxs(\"svg\",{viewBox:\"160 160 704 704\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsxs(\"g\",{fill:\"none\",strokeWidth:\"120\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M524.7 220.3A292 292 0 0 1 769.3 374\",stroke:\"#B84468\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M780.4 396.9A292 292 0 0 1 650 769.3\",stroke:\"#E3A63B\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M627.1 780.4A292 292 0 0 1 524.7 803.7\",stroke:\"#2FB5A8\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M499.3 803.7A292 292 0 0 1 499.3 220.3\",stroke:\"#3E7CA6\"})]}),/*#__PURE__*/_jsx(\"circle\",{cx:\"667.4\",cy:\"264.8\",r:\"50\",fill:\"#FBF9F4\",stroke:\"#1B1A17\",strokeWidth:\"20\"})]});}function SiteNav(){return /*#__PURE__*/_jsx(\"nav\",{children:/*#__PURE__*/_jsxs(\"div\",{className:\"in\",children:[/*#__PURE__*/_jsxs(\"a\",{className:\"logo\",href:\"./\",children:[/*#__PURE__*/_jsx(LogoMark,{}),\"Cycle Care\"]}),/*#__PURE__*/_jsxs(\"div\",{className:\"links\",children:[/*#__PURE__*/_jsx(\"a\",{href:\"./#how\",children:\"How it works\"}),/*#__PURE__*/_jsx(\"a\",{href:\"./#dates\",children:\"Your dates\"}),/*#__PURE__*/_jsx(\"a\",{href:\"./#privacy\",children:\"Privacy\"}),/*#__PURE__*/_jsx(\"a\",{href:\"./#faq\",children:\"FAQ\"}),/*#__PURE__*/_jsx(StoreBadge,{small:true})]})]})});}function SiteFooter(){return /*#__PURE__*/_jsxs(\"footer\",{className:\"in\",children:[/*#__PURE__*/_jsxs(\"a\",{className:\"logo\",href:\"./\",children:[/*#__PURE__*/_jsx(LogoMark,{}),\"Cycle Care\"]}),/*#__PURE__*/_jsxs(\"div\",{className:\"links\",children:[/*#__PURE__*/_jsx(\"a\",{href:\"./contact-us\",children:\"Contact\"}),/*#__PURE__*/_jsx(\"a\",{href:\"./terms\",children:\"Terms of Use\"}),/*#__PURE__*/_jsx(\"a\",{href:\"./privacy\",children:\"Privacy Policy\"})]}),/*#__PURE__*/_jsx(\"p\",{className:\"note\",children:\"\\xa9 2024–2026 Cycle Care. Informational only, not a medical device. Always follow your doctor's instructions.\"})]});}const EMAIL=\"info@cyclecareapp.com\";const PRIVACY=[[\"The short version\",[\"Cycle Care does not collect personal data. There is no account, no server of ours and no analytics or advertising code in the app. Apple's privacy label for the app reads “Data Not Collected”.\"]],[\"What the app keeps on your device\",[\"To work out your cycle day and test windows, the app stores these values in its own storage on your iPhone or iPad:\",[\"The first day of your last period\",\"Your cycle length and period length\",\"Your language and reminder settings\",\"Whether you accepted the medical disclaimer\"],\"Every calculation runs on the device. We never receive these values.\"]],[\"iCloud sync\",[\"If iCloud is on for your Apple ID, the app keeps the period start date, cycle length and period length in sync between your own devices through Apple's iCloud key-value storage. The values sit in your iCloud account, and we cannot read them. Apple's privacy policy covers iCloud.\"]],[\"Reminders\",[\"Reminders are scheduled by iOS on your device. No push server is involved, and you can turn each reminder off in the app or in iOS Settings.\"]],[\"Finding a lab\",[\"The map pin next to a test opens a Google Maps search such as “medical lab FSH test near me”. The search contains the test name only, never your dates. What Google processes after that is covered by Google's privacy policy.\"]],[\"This website\",[\"The site is hosted by Framer, which processes standard technical data such as your IP address to deliver pages and may count visits without identifying you. The test dates tool on the home page runs in your browser: the date you enter is not sent anywhere.\"]],[\"When you email us\",[`If you write to ${EMAIL}, we use your address and message only to reply, and delete the conversation when it is no longer needed.`]],[\"Children\",[\"Cycle Care is meant for people aged 16 and over, and is not directed at children under 13. We do not knowingly receive data from anyone, including children.\"]],[\"Removing your data\",[\"Deleting the app removes the values stored on that device. Values synced through iCloud stay in your iCloud account and are managed in your Apple ID settings.\"]],[\"Changes and contact\",[`If this policy changes, we update the date above. Cycle Care is made by Elena Yanchenkova-Trubnikova and Dima Trubnikov in Vilnius, Lithuania. Questions: ${EMAIL}.`]]];const TERMS=[[\"1. Who we are\",[`Cycle Care (“the App”) is made by Elena Yanchenkova-Trubnikova and Dima Trubnikov, Vilnius, Lithuania (“we”, “us”). These Terms of Use are an agreement between you and us for the App and this website. Contact: ${EMAIL}.`,\"By downloading or using the App you accept these Terms and our Privacy Policy. If you do not accept them, do not use the App.\"]],[\"2. Not medical advice\",[\"The App shows published timing windows for laboratory tests, based on WHO, ACOG and ESHRE guidance, and counts your cycle day from the date you enter. It is informational only.\",[\"It does not diagnose, treat, cure or prevent any condition, and does not replace a doctor.\",\"It is not a medical device under EU Regulation 2017/745 or under US Food and Drug Administration rules.\",\"Always follow the instructions of your doctor or laboratory, even if they differ from the App.\",\"In an emergency, call your local emergency number.\"]]],[\"3. Who can use the App\",[\"You must be at least 16 years old. If you are under 18, you need the consent of a parent or guardian.\"]],[\"4. Your licence\",[\"We give you a personal, non-exclusive, non-transferable, revocable licence to use the App on Apple devices you own or control, as permitted by the App Store's Usage Rules. You may not:\",[\"copy, modify, sell or distribute the App, except where the law allows it;\",\"reverse engineer or decompile the App, except where the law allows it;\",\"use the App for anything unlawful or harmful, or try to disrupt it.\"]]],[\"5. Your data\",[\"The App has no accounts and does not send your data to us. What stays on your device and what syncs through your own iCloud is described in the Privacy Policy.\"]],[\"6. Other services\",[\"Some features open services we do not control, such as Google Maps for finding a lab and Apple iCloud for sync. Their own terms and privacy policies apply to them.\"]],[\"7. Price and changes to the App\",[\"The App is currently free. If we add paid features, the price and terms are shown before you buy, and purchases are handled by Apple under its terms.\",\"We may update, change or stop features of the App. If a change materially reduces what you can do, we tell you in the App or on this website in advance where reasonably possible.\"]],[\"8. Intellectual property\",[\"The App, its design, text and code belong to us or our licensors. These Terms give you no rights to our names or logos.\"]],[\"9. Our responsibility\",[\"We build the App with care, but we cannot promise it will always be available or free of errors. To the extent the law allows, the App is provided “as is”.\",\"Nothing in these Terms limits rights you have as a consumer that cannot be waived by contract. In the EU and EEA this includes your statutory rights for digital content that does not conform to the contract. Some US states do not allow the exclusion of implied warranties, so some of these exclusions may not apply to you.\"]],[\"10. Limitation of liability\",[\"To the extent the law allows, we are not liable for indirect or consequential loss, or for decisions you make based on the App instead of your doctor's advice. Where liability cannot be excluded, it is limited to the greater of the amount you paid us for the App in the 12 months before the claim or 50 euros (or 50 US dollars).\",\"These limits do not apply to liability for death or personal injury caused by our negligence, to intentional or grossly negligent conduct, or to any other liability that cannot be limited by law.\"]],[\"11. Ending use\",[\"You can stop using the App at any time by deleting it. We may end your licence if you seriously breach these Terms. Sections 2, 8, 9, 10 and 13 continue after that.\"]],[\"12. Changes to these Terms\",[\"We may update these Terms, for example when the law or the App changes. We change the date above, and for material changes we give notice in the App or on this website before they take effect. If you keep using the App afterwards, the new Terms apply.\"]],[\"13. Law and disputes\",[\"These Terms are governed by the laws of the Republic of Lithuania.\",[\"If you are a consumer in the EU or EEA, you also keep the protection of the mandatory laws of your country of residence, and you can bring a claim in the courts of Lithuania or of your country of residence.\",\"Consumers can also contact the Lithuanian State Consumer Rights Protection Authority (vvtat.lt) for out-of-court dispute resolution.\",\"If you live in the United States or elsewhere outside the EU and EEA, disputes go to the courts of Vilnius, Lithuania, unless the law where you live gives you a right to bring them locally that cannot be waived.\",\"California residents may contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs at 1625 North Market Blvd., Suite N 112, Sacramento, CA 95834, or by phone at (800) 952-5210.\"],\"Please write to us first. Most questions can be settled by email.\"]],[\"14. Apple App Store terms\",[\"If you downloaded the App from the Apple App Store:\",[\"These Terms are between you and us, not Apple. We, not Apple, are responsible for the App and its content.\",\"Apple has no obligation to provide maintenance or support for the App.\",\"If the App fails to conform to any applicable warranty, you may notify Apple, and Apple will refund the purchase price, if any. To the extent the law allows, Apple has no other warranty obligation for the App.\",\"We, not Apple, are responsible for addressing any claims about the App, including product liability claims, claims that it fails to meet legal or regulatory requirements, and consumer protection claims.\",\"If a third party claims that the App infringes their intellectual property rights, we, not Apple, are responsible for the investigation, defence, settlement and discharge of that claim.\",\"You confirm that you are not located in a country subject to a US government embargo or designated as a “terrorist supporting” country, and that you are not on any US government list of prohibited or restricted parties.\",\"Apple and its subsidiaries are third-party beneficiaries of these Terms and may enforce them against you.\"]]],[\"15. Contact\",[`Questions about these Terms: ${EMAIL}.`]]];const DOCS={privacy:{title:\"Privacy Policy\",updated:\"30 September 2026\",sections:PRIVACY},terms:{title:\"Terms of Use\",updated:\"30 September 2026\",sections:TERMS}};function Contact(){const[copied,setCopied]=React.useState(false);const copy=()=>{navigator.clipboard?.writeText(EMAIL).then(()=>setCopied(true),()=>setCopied(false));};return /*#__PURE__*/_jsxs(\"main\",{className:\"in doc\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"eyebrow\",children:\"Contact\"}),/*#__PURE__*/_jsx(\"h1\",{children:\"Write to us.\"}),/*#__PURE__*/_jsx(\"p\",{className:\"lede\",children:\"Questions about test timing, feedback on the app, or a lab or clinic partnership. One address reaches both founders.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"contact\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"mail\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"fine\",children:\"Email\"}),/*#__PURE__*/_jsx(\"b\",{children:EMAIL}),/*#__PURE__*/_jsxs(\"div\",{className:\"cta\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"store small\",href:`mailto:${EMAIL}?subject=Cycle%20Care`,children:\"Write an email\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"ghost\",onClick:copy,children:copied?\"Copied\":\"Copy address\"})]})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"tile\",href:\"./#faq\",children:[/*#__PURE__*/_jsx(\"b\",{children:\"Read the FAQ\"}),/*#__PURE__*/_jsx(\"span\",{children:\"How the windows are worked out, privacy, irregular cycles.\"})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"tile\",href:APP_STORE,target:\"_blank\",rel:\"noopener\",children:[/*#__PURE__*/_jsx(\"b\",{children:\"Get the app\"}),/*#__PURE__*/_jsx(\"span\",{children:\"Free on iPhone and iPad. No account.\"})]})]})]});}export default function CycleCareLanding({page=\"home\"}){if(page!==\"home\")return /*#__PURE__*/_jsx(DocPage,{page:page});return /*#__PURE__*/_jsxs(\"div\",{className:\"cc\",children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsx(\"div\",{className:\"glow\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(SiteNav,{}),/*#__PURE__*/_jsxs(\"section\",{id:\"top\",className:\"in hero\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"copy\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"tag rise\",children:\"Lab test timing \\xb7 iPhone and iPad\"}),/*#__PURE__*/_jsxs(\"h1\",{className:\"rise d1\",children:[\"Know which lab tests to take \",/*#__PURE__*/_jsx(\"span\",{children:\"today.\"})]}),/*#__PURE__*/_jsx(\"p\",{className:\"lede rise d2\",children:\"Your doctor ordered FSH, progesterone or AMH on a specific cycle day. Enter the first day of your last period and Cycle Care tells you which tests fit today and which to wait for.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"cta rise d3\",children:[/*#__PURE__*/_jsx(StoreBadge,{}),/*#__PURE__*/_jsxs(\"p\",{className:\"fine\",children:[\"Free \\xb7 iOS 16.6 or later\",/*#__PURE__*/_jsx(\"br\",{}),\"3.7 MB \\xb7 no account\"]})]})]}),/*#__PURE__*/_jsx(Demo,{})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"in facts reveal\",\"aria-label\":\"Facts\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"b\",{children:\"Zero tracking\"}),/*#__PURE__*/_jsx(\"span\",{children:\"Apple's label: Data Not Collected\"})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"b\",{children:\"1 date\"}),/*#__PURE__*/_jsx(\"span\",{children:\"No account, no diary\"})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"b\",{children:\"9 tests\"}),/*#__PURE__*/_jsx(\"span\",{children:\"Windows from WHO, ACOG, ESHRE\"})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"b\",{children:\"26 languages\"}),/*#__PURE__*/_jsx(\"span\",{children:\"Chosen inside the app\"})]})]}),/*#__PURE__*/_jsx(\"div\",{className:\"in\",children:/*#__PURE__*/_jsxs(\"section\",{className:\"dark reveal\",children:[/*#__PURE__*/_jsxs(\"h2\",{children:[\"“Take FSH on day 3.” \",/*#__PURE__*/_jsx(\"span\",{children:\"Which day is day 3?\"})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"p\",{children:\"Hormone tests only mean something on the right cycle day. FSH, LH and estradiol belong to days 2 to 5. Progesterone belongs about a week before your next period, so on a 32-day cycle it is day 25, not day 21.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Get it wrong and the result misleads your doctor, and you repeat the visit next cycle. Period trackers predict periods. They don't tell you when to test.\"})]})]})}),/*#__PURE__*/_jsx(CycleStory,{}),/*#__PURE__*/_jsxs(\"section\",{id:\"how\",className:\"in sec\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"head reveal\",children:[/*#__PURE__*/_jsxs(\"h2\",{children:[\"One date in.\",/*#__PURE__*/_jsx(\"br\",{}),\"Today's tests out.\"]}),/*#__PURE__*/_jsx(\"p\",{children:\"Three steps and about ten seconds. Everything below is the real app on cycle day 3.\"})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"grid3\",children:[/*#__PURE__*/_jsxs(\"article\",{className:\"card reveal\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"n\",children:\"1\"}),/*#__PURE__*/_jsx(\"h3\",{children:\"Tap the first day of your last period\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Your phases are colored at once, using your cycle length.\"}),/*#__PURE__*/_jsx(\"img\",{className:\"phone\",src:SHOT.calendar,alt:\"Calendar with period, follicular, ovulation and luteal days colored\",loading:\"lazy\"})]}),/*#__PURE__*/_jsxs(\"article\",{className:\"card blue reveal\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"n\",children:\"2\"}),/*#__PURE__*/_jsx(\"h3\",{children:\"See which tests fit today\"}),/*#__PURE__*/_jsx(\"p\",{children:\"And which would mislead today, with the days until their window opens.\"}),/*#__PURE__*/_jsx(\"img\",{className:\"phone\",src:SHOT.today,alt:\"Lab tests today card listing six tests with a good window on cycle day 3\",loading:\"lazy\"})]}),/*#__PURE__*/_jsxs(\"article\",{className:\"card reveal\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"n\",children:\"3\"}),/*#__PURE__*/_jsx(\"h3\",{children:\"Find a lab nearby\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Tap the pin next to a test to open a nearby lab search in Maps.\"}),/*#__PURE__*/_jsx(\"img\",{className:\"phone\",src:SHOT.tests,alt:\"Medical Tests screen with a map pin next to each test\",loading:\"lazy\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"grid2\",children:[/*#__PURE__*/_jsxs(\"article\",{className:\"card sand reveal\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"txt\",children:[/*#__PURE__*/_jsx(\"h3\",{children:\"Plan the next three cycles\"}),/*#__PURE__*/_jsx(\"p\",{children:\"See when each phase starts, so you can book the tests your doctor asked for weeks ahead.\"})]}),/*#__PURE__*/_jsx(\"img\",{className:\"phone\",src:SHOT.forecast,alt:\"Forecast of the next three cycles with phase dates\",loading:\"lazy\"})]}),/*#__PURE__*/_jsxs(\"article\",{className:\"card sand reveal\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"txt\",children:[/*#__PURE__*/_jsx(\"h3\",{children:\"Reminders that stay on your phone\"}),/*#__PURE__*/_jsx(\"p\",{children:\"The day before your period, on ovulation day and three days before your period. Turn each one on or off.\"})]}),/*#__PURE__*/_jsx(\"img\",{className:\"phone\",src:SHOT.reminders,alt:\"Notification settings with period, ovulation and PMS reminders\",loading:\"lazy\"})]})]})]}),/*#__PURE__*/_jsx(MyDates,{}),/*#__PURE__*/_jsx(\"div\",{id:\"privacy\",className:\"in sec\",children:/*#__PURE__*/_jsxs(\"section\",{className:\"privacy reveal\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:20},children:[/*#__PURE__*/_jsx(\"p\",{className:\"eyebrow\",children:\"Privacy\"}),/*#__PURE__*/_jsx(\"h2\",{children:\"Your cycle is nobody's business model.\"}),/*#__PURE__*/_jsx(\"p\",{style:{fontSize:19,color:\"#DCE8F1\"},children:\"Apple's privacy label for Cycle Care reads “Data Not Collected”. Every calculation runs on your iPhone.\"})]}),/*#__PURE__*/_jsxs(\"ul\",{children:[/*#__PURE__*/_jsxs(\"li\",{children:[/*#__PURE__*/_jsx(\"b\",{children:\"No account\"}),\"No email, no password, nothing to sign up for.\"]}),/*#__PURE__*/_jsxs(\"li\",{children:[/*#__PURE__*/_jsx(\"b\",{children:\"No server, no analytics\"}),\"We have nowhere to store your data, and no tracking code in the app.\"]}),/*#__PURE__*/_jsxs(\"li\",{children:[/*#__PURE__*/_jsx(\"b\",{children:\"Your iCloud only\"}),\"With iCloud on, settings sync between your own devices.\"]})]})]})}),/*#__PURE__*/_jsxs(\"section\",{id:\"windows\",className:\"in sec split\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"side reveal\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"When each test belongs in your cycle\"}),/*#__PURE__*/_jsx(\"p\",{children:\"The windows Cycle Care uses, from WHO, ACOG and ESHRE guidance. Day 1 is the first day of your period. Always follow your doctor's instructions.\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"table reveal\",children:/*#__PURE__*/_jsxs(\"table\",{children:[/*#__PURE__*/_jsx(\"thead\",{children:/*#__PURE__*/_jsxs(\"tr\",{children:[/*#__PURE__*/_jsx(\"th\",{scope:\"col\",children:\"Test\"}),/*#__PURE__*/_jsx(\"th\",{scope:\"col\",children:\"Cycle days\"}),/*#__PURE__*/_jsx(\"th\",{scope:\"col\",children:\"Why then\"})]})}),/*#__PURE__*/_jsx(\"tbody\",{children:WINDOWS.map(([test,days,why])=>/*#__PURE__*/_jsxs(\"tr\",{children:[/*#__PURE__*/_jsx(\"td\",{children:test}),/*#__PURE__*/_jsx(\"td\",{className:\"days\",children:days}),/*#__PURE__*/_jsx(\"td\",{children:why})]},test))})]})})]}),/*#__PURE__*/_jsxs(\"section\",{id:\"faq\",className:\"in sec split\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"side reveal\",children:/*#__PURE__*/_jsx(\"h2\",{children:\"Questions, answered\"})}),/*#__PURE__*/_jsx(\"div\",{className:\"reveal\",children:FAQ.map(([question,answer])=>/*#__PURE__*/_jsxs(\"details\",{children:[/*#__PURE__*/_jsxs(\"summary\",{children:[question,/*#__PURE__*/_jsx(\"i\",{\"aria-hidden\":\"true\",children:\"+\"})]}),/*#__PURE__*/_jsx(\"p\",{children:answer})]},question))})]}),/*#__PURE__*/_jsx(\"div\",{className:\"in sec\",children:/*#__PURE__*/_jsxs(\"section\",{className:\"final reveal\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"halo\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsxs(\"h2\",{children:[\"Your next test day is\",/*#__PURE__*/_jsx(\"br\",{}),\"one date away.\"]}),/*#__PURE__*/_jsx(StoreBadge,{}),/*#__PURE__*/_jsx(\"p\",{className:\"fine\",children:\"Free \\xb7 iPhone and iPad \\xb7 Data Not Collected\"})]})}),/*#__PURE__*/_jsx(SiteFooter,{}),/*#__PURE__*/_jsxs(\"a\",{className:\"dock\",href:APP_STORE,target:\"_blank\",rel:\"noopener\",children:[/*#__PURE__*/_jsx(\"b\",{children:\"Get Cycle Care\"}),/*#__PURE__*/_jsx(\"span\",{children:\"Free on the App Store\"})]})]});}function DocPage({page}){const doc=page===\"contact\"?null:DOCS[page];return /*#__PURE__*/_jsxs(\"div\",{className:\"cc\",children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsx(SiteNav,{}),doc?/*#__PURE__*/_jsxs(\"main\",{className:\"in doc\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"eyebrow\",children:\"Cycle Care\"}),/*#__PURE__*/_jsx(\"h1\",{children:doc.title}),/*#__PURE__*/_jsxs(\"p\",{className:\"fine\",children:[\"Last updated \",doc.updated]}),doc.sections.map(([title,blocks])=>/*#__PURE__*/_jsxs(\"section\",{children:[/*#__PURE__*/_jsx(\"h2\",{children:title}),blocks.map((block,i)=>Array.isArray(block)?/*#__PURE__*/_jsx(\"ul\",{children:block.map(item=>/*#__PURE__*/_jsx(\"li\",{children:item},item))},i):/*#__PURE__*/_jsx(\"p\",{children:block},i))]},title))]}):/*#__PURE__*/_jsx(Contact,{}),/*#__PURE__*/_jsx(SiteFooter,{})]});}addPropertyControls(CycleCareLanding,{page:{type:ControlType.Enum,title:\"Page\",options:[\"home\",\"contact\",\"privacy\",\"terms\"],optionTitles:[\"Home\",\"Contact\",\"Privacy Policy\",\"Terms of Use\"],defaultValue:\"home\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CycleCareLanding\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CycleCareLanding.map","// Generated by Framer (e0809aa)\nexport default function metadata(params,activeLocale){return{description:\"Cycle Care App\",favicon:\"https://framerusercontent.com/assets/jSrmApIdwphzMtEFD1BtQPU7Xc.png\",robots:\"max-image-preview:large\",title:\"Cycle Care App\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}