:root{--paper-cream: #fbf4e6;--warm-ivory: #fffaf0;--card-surface: #fffdf7;--card-edge: #ece0c8;--nasturtium-orange: #e8762c;--coral: #e26d5a;--golden-yellow: #e7b53c;--petal: #c46d92;--sage: #9bab86;--moss: #6f8159;--garden-green-deep: #3f5138;--dusty-lavender: #b3a3c4;--moonlight-blue: #8ba4bd;--deep-blue: #1c3f57;--partner-me: #7fb6bd;--partner-them: #4d8b97;--partner-us: #aadcd6;--charcoal-soft: #3a352d;--ink: #3a352d;--ink-muted: #7c7464;--ink-faint: #a89e8b;--modal-scrim: rgba(58, 53, 45, .34);--sheet-bg: var(--paper-cream);--deep-water: linear-gradient(165deg, #1a3f41 0%, #0e2c30 58%, #091f23 100%);--app-chrome: #1a3f41;--app-chrome-deep: #0e2c30;--phase-accent: var(--moss);--phase-tint: #eef1e6;--font-heading: "Instrument Serif", Georgia, "Times New Roman", serif;--font-body: "Newsreader", Georgia, serif;--font-clarity: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--page-pad: 18px;--radius-card: 20px;--radius-soft: 12px;--card-min-h: 420px;--feed-card-h: clamp(var(--card-min-h), 62svh, 580px);--cell-w: calc(100vw - 2 * var(--page-pad));--nav-h: 68px;--bar-h: calc(env(safe-area-inset-top) + var(--nav-h));--feed-air: var(--gap);--feed-pin-top: calc(var(--bar-h) + var(--feed-air));--ios-glass-clear: 24px;--chrome-top: calc(env(safe-area-inset-top) + var(--ios-glass-clear));--card-shadow: 0 1px 2px rgba(58, 53, 45, .04), 0 8px 24px rgba(58, 53, 45, .06);--gap: 18px;--page-max: 560px;--card-pad: 24px 22px;--ease: .24s cubic-bezier(.32, .72, 0, 1);--press: scale(.985);--scrim-ink: 16, 13, 10;--on-photo: rgba(255, 255, 255, .96);--on-photo-dim: rgba(255, 255, 255, .86);--on-photo-faint: rgba(255, 255, 255, .68);--on-photo-line: rgba(255, 255, 255, .22);--glass-blur: 14px;--glass-blur-chrome: 8px;--glass-bright: rgba(255, 255, 255, .24);--glass-bright-line: rgba(255, 255, 255, .5);--glass-deep: rgba(var(--scrim-ink), .5);--glass-deep-line: rgba(255, 255, 255, .3);--glass-paper: color-mix(in srgb, var(--card-surface) 68%, transparent);--glass-paper-line: color-mix(in srgb, var(--card-edge) 70%, #fff);--glass-edge: inset 0 1px 0 rgba(255, 255, 255, .4);--glass-lift: 0 10px 30px rgba(var(--scrim-ink), .2);--glass-lift-up: 0 -12px 40px rgba(var(--scrim-ink), .22);--card-scrim: linear-gradient( 180deg, rgba(var(--scrim-ink), .8) 0%, rgba(var(--scrim-ink), .72) 38%, rgba(var(--scrim-ink), .88) 70%, rgba(var(--scrim-ink), .97) 100% );--hero-scrim: linear-gradient( 180deg, rgba(var(--scrim-ink), .28) 0%, rgba(var(--scrim-ink), 0) 28%, rgba(var(--scrim-ink), .12) 50%, rgba(var(--scrim-ink), .6) 76%, rgba(var(--scrim-ink), .94) 100% )}@media(min-width:560px){:root{--cell-w: calc(var(--page-max) - 2 * var(--page-pad))}}[data-phase=menstrual]{--phase-accent: var(--coral);--phase-tint: #f6e6e1}[data-phase=follicular]{--phase-accent: var(--moss);--phase-tint: #e9efe0}[data-phase=ovulatory]{--phase-accent: var(--deep-blue);--phase-tint: #dfe8ee}[data-phase=luteal]{--phase-accent: #a39aad;--phase-tint: #e9e6ec}[data-mode=pause]{--paper-cream: #f6efe6;--card-surface: #fbf6ee;--card-edge: #e6dccb;--ink: #4a443a;--charcoal-soft: #4a443a;--ink-muted: #8a8170;--garden-green-deep: #46584a;--deep-blue: #5b7e95}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;background:var(--paper-cream);scroll-behavior:smooth;overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent}button,a,label,.pill,.chip,.tab{-webkit-user-select:none;user-select:none}body{background:var(--paper-cream);color:var(--charcoal-soft);font-family:var(--font-body);font-size:17px;line-height:1.55;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100dvh;overflow-x:hidden;overflow-x:clip}h1,h2,h3,h4,.heading{font-family:var(--font-heading);font-weight:400;line-height:1.08;margin:0;letter-spacing:.01em}h1 em,h2 em,h3 em,.heading em{font-style:italic;font-weight:400}p{margin:0}a{color:inherit}button{font-family:var(--font-clarity);cursor:pointer}:focus-visible{outline:2px solid var(--phase-accent);outline-offset:2px}.eyebrow{font-family:var(--font-clarity);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:600}.sci{font-family:var(--font-body);font-style:italic;color:var(--ink-muted);font-size:.92em}.value{font-family:var(--font-clarity)}.card{background:var(--card-surface);border:1px solid var(--card-edge);border-radius:var(--radius-card);box-shadow:var(--card-shadow);padding:22px;position:relative;overflow:hidden}.act-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border:none;border-radius:var(--radius-soft);background:var(--deep-blue);color:var(--warm-ivory);font-family:var(--font-clarity);font-size:1rem;line-height:1.2;cursor:pointer;transition:transform var(--ease),opacity var(--ease);--busy-ink: var(--warm-ivory)}.act-primary:not(:disabled):active{transform:var(--press)}.act-primary:disabled{opacity:.45;cursor:default}.act-primary.on-photo{background:var(--warm-ivory);color:var(--garden-green-deep);--busy-ink: var(--garden-green-deep)}.act-quiet{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:1px solid var(--card-edge);border-radius:var(--radius-soft);background:var(--warm-ivory);color:var(--garden-green-deep);font-family:var(--font-clarity);font-size:.9rem;line-height:1.2;cursor:pointer;transition:transform var(--ease),background var(--ease);--busy-ink: var(--garden-green-deep)}.act-quiet:not(:disabled):active{transform:var(--press)}.act-quiet:disabled{opacity:.5;cursor:default}.act-quiet.on-photo{border-color:var(--glass-bright-line);background:var(--glass-bright);color:var(--on-photo);box-shadow:var(--glass-edge);-webkit-backdrop-filter:blur(var(--glass-blur-chrome));backdrop-filter:blur(var(--glass-blur-chrome));--busy-ink: var(--on-photo)}.act-text{display:inline;padding:0;border:none;background:none;color:var(--garden-green-deep);font-family:var(--font-clarity);font-size:.84rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer;transition:opacity var(--ease);--busy-ink: var(--garden-green-deep)}.act-text:not(:disabled):active{opacity:.7}.act-text:disabled{opacity:.45;cursor:default;text-decoration-style:dotted}.act-text.on-photo{color:var(--on-photo-dim);--busy-ink: var(--on-photo-dim)}.act-primary.pill,.act-quiet.pill{border-radius:999px}:where(button,a,[role=switch])[aria-busy=true]{position:relative;pointer-events:none;animation:busy-label .01s linear .25s forwards}@keyframes busy-label{to{color:transparent}}:where(button,a):not([role=switch])[aria-busy=true]:after{content:"";position:absolute;top:50%;left:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border:2px solid var(--busy-ink, currentColor);border-top-color:transparent;border-radius:50%;opacity:0;animation:busy-spin .7s linear infinite,busy-show .01s linear .25s forwards}@keyframes busy-spin{to{transform:rotate(360deg)}}@keyframes busy-show{to{opacity:.85}}[role=switch][aria-busy=true]{opacity:.55}@media(prefers-reduced-motion:reduce){:where(button,a):not([role=switch])[aria-busy=true]:after{border-top-color:var(--busy-ink, currentColor);animation:busy-pulse 1s ease-in-out infinite,busy-show .01s linear .25s forwards}@keyframes busy-pulse{0%,to{opacity:.3}50%{opacity:.85}}}.notice{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));width:min(var(--page-max),100vw - 2 * var(--page-pad));transform:translate(-50%);z-index:85;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-radius:var(--radius-soft);background:color-mix(in srgb,var(--garden-green-deep) 88%,transparent);border:1px solid var(--glass-deep-line);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));color:var(--warm-ivory);font-family:var(--font-clarity);font-size:.88rem;line-height:1.35;text-align:left;box-shadow:var(--glass-lift),var(--glass-edge);animation:notice-in var(--ease)}@keyframes notice-in{0%{opacity:0;transform:translate(-50%,8px)}}.notice--error{background:color-mix(in srgb,var(--coral) 88%,transparent)}.close-x{width:38px;height:38px;display:grid;place-items:center;padding:0;border-radius:50%;background:var(--glass-paper);border:1px solid var(--glass-paper-line);box-shadow:var(--glass-edge);-webkit-backdrop-filter:blur(var(--glass-blur-chrome));backdrop-filter:blur(var(--glass-blur-chrome));color:var(--ink);cursor:pointer;transition:transform var(--ease)}.close-x:not(:disabled):active{transform:var(--press)}.close-x:disabled{opacity:.45;cursor:default}.close-x.on-photo{background:var(--glass-bright);border-color:var(--glass-bright-line);color:var(--on-photo);-webkit-backdrop-filter:blur(var(--glass-blur-chrome));backdrop-filter:blur(var(--glass-blur-chrome))}.grab{width:40px;height:4px;border-radius:99px;background:var(--card-edge);margin:2px auto 12px;touch-action:none;cursor:grab;box-sizing:content-box;padding:8px 30px;background-clip:content-box}.chip-select{padding:8px 14px;border-radius:99px;border:1px solid var(--card-edge);background:var(--warm-ivory);color:var(--ink);font-family:var(--font-clarity);font-size:.9rem;line-height:1;cursor:pointer;transition:background var(--ease),border-color var(--ease),color var(--ease),transform var(--ease)}.chip-select:not(:disabled):active{transform:var(--press)}.chip-select:disabled{opacity:.5;cursor:default}.chip-select.on{background:var(--deep-blue);border-color:var(--deep-blue);color:var(--warm-ivory)}body.overlay-open .shell{content-visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.skeleton{position:relative;background:color-mix(in srgb,var(--moss, #9aa88f) 14%,var(--warm-ivory, #fbf7ee));overflow:hidden}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,#fff 55%,transparent) 50%,transparent 80%);transform:translate(-100%);animation:skeleton-sweep 1.3s ease-in-out infinite}@keyframes skeleton-sweep{to{transform:translate(100%)}}.vessel-mark.svelte-a1msid{display:block}.animated.svelte-a1msid .draw:where(.svelte-a1msid){stroke-dasharray:1;stroke-dashoffset:1;animation:svelte-a1msid-vessel-draw calc(1.2s * var(--vm-pace, 1)) ease both}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(1){animation-delay:calc(.05s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(2){animation-delay:calc(.2s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(3){animation-delay:calc(.2s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(4){animation-delay:calc(.35s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(5){animation-delay:calc(.35s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(6){animation-delay:calc(.6s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(7){animation-delay:calc(.68s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(8){animation-delay:calc(.6s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(9){animation-delay:calc(.68s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(10){animation-delay:calc(.9s * var(--vm-pace, 1))}.animated.svelte-a1msid .draw:where(.svelte-a1msid):nth-of-type(11){animation-delay:calc(.96s * var(--vm-pace, 1))}@keyframes svelte-a1msid-vessel-draw{to{stroke-dashoffset:0}}.loop.svelte-a1msid .draw:where(.svelte-a1msid){animation:svelte-a1msid-vessel-draw-loop calc(2.6s * var(--vm-pace, 1)) ease infinite both}@keyframes svelte-a1msid-vessel-draw-loop{0%{stroke-dashoffset:1}46%{stroke-dashoffset:0}78%{stroke-dashoffset:0;opacity:1}92%{opacity:.25}to{stroke-dashoffset:1;opacity:1}}@media(prefers-reduced-motion:reduce){.animated.svelte-a1msid .draw:where(.svelte-a1msid){animation:none;stroke-dashoffset:0}.loop.svelte-a1msid .draw:where(.svelte-a1msid){stroke-dashoffset:0;animation:svelte-a1msid-vessel-pulse 1.6s ease-in-out infinite}@keyframes svelte-a1msid-vessel-pulse{0%,to{opacity:1}50%{opacity:.45}}}.splash.svelte-v8bbdp{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:var(--deep-water);opacity:1;transition:opacity .28s var(--ease)}.splash.leaving.svelte-v8bbdp{opacity:0}.inner.svelte-v8bbdp{display:flex;flex-direction:column;align-items:center;gap:18px}.word.svelte-v8bbdp{font-family:var(--font-heading);font-size:2.2rem;letter-spacing:.01em;color:#f6ecd4;opacity:0;animation:svelte-v8bbdp-word-in .6s 1.5s ease both}@keyframes svelte-v8bbdp-word-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.splash.svelte-v8bbdp{transition:none}.word.svelte-v8bbdp{animation:none;opacity:1;transform:none}}.nav-loading.svelte-degj0i{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;pointer-events:auto;view-transition-name:none;background:#0b090600;animation:svelte-degj0i-scrim-in .2s ease .25s forwards}@keyframes svelte-degj0i-scrim-in{to{background:#0b090673}}.puck.svelte-degj0i{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:var(--card-surface);border:1px solid var(--card-edge);box-shadow:0 8px 28px #3a352d38;opacity:0;animation:svelte-degj0i-puck-in .2s ease .25s forwards}@keyframes svelte-degj0i-puck-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.puck.svelte-degj0i{animation:none;opacity:1}.nav-loading.svelte-degj0i{animation:svelte-degj0i-scrim-in .01s linear .25s forwards}}.status-cap.svelte-12qhfyh{position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top);z-index:300;background:#1a3f41;pointer-events:none}.shell.svelte-12qhfyh{display:flex;flex-direction:column;min-height:100dvh}.page.svelte-12qhfyh{flex:1;width:100%;max-width:var(--page-max);margin:0 auto;padding:calc(22px + env(safe-area-inset-top)) var(--page-pad) calc(28px + env(safe-area-inset-bottom))}
