:root{--paper:#f7f4ee;--sand:#e9ded0;--ink:#252d29;--muted:#414c45;--sage:#4e614e;--dark-sage:#3e5544;--line:#d8d0c3;}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.9;letter-spacing:.025em}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a{color:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #566b48;outline-offset:4px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500}h1,h2{font-family:var(--serif)}[hidden]{display:none!important}.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}.skip{position:absolute;top:-100px;z-index:10;background:white;padding:12px}.skip:focus{top:0}.preview-bar{padding:7px 5%;display:flex;justify-content:space-between;gap:12px;font-size:1rem;background:#e7e9df;color:#4c5844}.preview-bar a{text-underline-offset:3px}.header{max-width:1280px;margin:auto;padding:28px 5%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:25px}.wordmark{font-family:Georgia,serif;font-size:3.1875rem;letter-spacing:-.065em;line-height:1.2}.wordmark>span{color:var(--sage)}.tagline,.header-label{font-size:1rem;letter-spacing:.1em}.header-label{color:var(--muted)}main{max-width:1180px;margin:auto}.intro{display:grid;grid-template-columns:1fr 1fr;align-items:center;margin:12px 36px 54px;gap:6%}.intro-copy{padding:24px 0}.eyebrow{font-size:1rem;letter-spacing:.18em;color:var(--dark-sage);font-weight:500}h1{font-size:clamp(1.875rem,3.1vw,2.6875rem);line-height:1.6;letter-spacing:.07em;margin:20px 0}.lead{font-size:1rem;line-height:2}.benefits{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:24px;font-size:1rem;color:var(--muted)}.benefits span+span{border-left:1px solid var(--line);padding-left:16px}.intro-image{position:relative;align-self:stretch;min-height:300px}.intro-image img{display:block;object-fit:cover;object-position:60% 50%;width:100%;height:100%;max-height:390px}.intro-image figcaption{position:absolute;bottom:0;right:0;padding:5px 13px;background:#f7f4ee;font-size:1rem;color:#45463c}.workspace{max-width:1000px;margin:0 auto;padding:0 36px}.calculator{background:#fffdf8;border:1px solid var(--line);padding:40px 48px 26px;box-shadow:0 8px 30px #67533605}.section-title{display:flex;align-items:center;gap:22px}.section-number{font-family:Georgia,serif;font-size:2.375rem;color:var(--sage);font-style:italic}.section-title h2{font-size:1.625rem;margin-top:4px;line-height:1.6}.input-intro{font-size:1rem;color:var(--muted);margin:20px 0 27px}fieldset{border:0;padding:0;margin:0;min-width:0}legend{padding:0;margin-bottom:10px;font-weight:500;font-size:1rem}.date-fields{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:20px;max-width:600px}.field label{display:block;font-size:1rem;color:var(--muted);margin-bottom:4px}.field input,.field select{width:100%;height:54px;border:1px solid #b9baac;border-radius:3px;background:#fffefb;padding:10px 14px;font-size:1.125rem}.field input::placeholder{color:#626557;font-size:1rem}.hint{color:var(--muted);font-size:1rem;line-height:1.8;margin-top:10px}.actions{display:flex;align-items:center;gap:25px;margin-top:28px;flex-wrap:wrap}.primary{border:1px solid var(--dark-sage);background:var(--dark-sage);color:white;padding:15px 24px;min-height:56px;min-width:255px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-radius:3px;font-size:1rem}.primary:hover{background:#414d39}.clear{background:none;border:0;border-bottom:1px solid #9e9f90;font-size:1rem;padding:10px 0;min-height:44px}.privacy-note{font-size:1rem;color:var(--muted);margin-top:22px}.state{font-size:1rem;color:var(--dark-sage);margin-top:8px;min-height:1.8em}.small-only{display:none}.error{color:#822f20;background:#fbede7;border-left:3px solid #9c4b36;padding:12px 16px;margin-top:15px;font-size:1rem}.sex-step{margin-top:24px;background:#efeee5;padding:25px}.sex-step h3{font-size:1.1875rem;margin:6px 0 10px}.sex-step p:not(.eyebrow){font-size:1rem}.sex-step fieldset{margin-top:20px}.sex-options{display:flex;gap:14px}.sex-options label{display:flex;align-items:center;gap:10px;background:#fffdf8;border:1px solid #b9baac;border-radius:3px;min-width:125px;min-height:50px;padding:10px 20px;cursor:pointer}.sex-options input{width:19px;height:19px;accent-color:var(--dark-sage);margin:0}.results{margin-top:64px;scroll-margin-top:30px}.result-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:27px}.result-heading h2{font-size:2rem;margin-top:10px}.result-heading>p{font-size:1rem;color:var(--muted);padding-bottom:4px}.boundary-note{background:#ede7d8;border-left:3px solid #a48b58;padding:22px 26px;margin:0 0 26px}.boundary-note h3{font-weight:600;font-size:1.0625rem;margin-bottom:7px}.boundary-note p{font-size:1rem}.star-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.star-card{position:relative;border-top:2px solid #929b84;background:#fffdf8;padding:23px 18px 27px;text-align:center;border-bottom:1px solid var(--line)}.star-label{font-size:1rem;color:var(--muted)}.star-number{font-family:Georgia,serif;font-size:2.125rem;color:var(--sage);line-height:1.3;margin:17px 0 12px}.star-name{font-family:var(--serif);font-size:1.875rem;font-weight:600;white-space:nowrap;letter-spacing:.015em}.correction-note{font-size:1rem;color:var(--muted);margin-top:20px}.result-caption{font-size:1rem;line-height:2;text-align:center;margin:34px 0 46px}.next-steps{border-top:1px solid var(--line);padding-top:32px}.next-steps h3{font-family:var(--serif);font-size:1.4375rem;margin-top:9px}.next-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:22px}.next-grid a{display:block;text-decoration:none;border-bottom:1px solid var(--line);padding:5px 28px 20px 0;position:relative}.next-grid a:hover .link-label{text-decoration:underline;text-underline-offset:5px}.link-label{font-size:1.0625rem;display:block}.link-description{display:block;font-size:1rem;line-height:1.9;color:var(--muted);margin-top:7px}.link-arrow{position:absolute;right:2px;top:5px;font-size:1.25rem}.calculation-note{margin:32px 0 65px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}summary{cursor:pointer;padding:18px 4px;font-size:1rem;min-height:48px}details>div{padding:0 4px 22px;font-size:1rem;color:var(--muted)}details p+p{margin-top:12px}footer{text-align:center;padding:30px 20px 40px;border-top:1px solid var(--line)}.footer-mark{font-family:Georgia,serif;font-size:1.8125rem;letter-spacing:-.06em}footer p{font-size:1rem;margin:6px 0 18px}footer small{font-size:1rem;color:var(--muted)}
@media(max-width:760px){.header{padding:23px 24px}.header-label{display:none}.intro{gap:25px;margin:0 24px 32px}.intro-image{min-height:260px}.intro-image figcaption{display:none}.intro-copy{padding:10px 0}h1{font-size:1.875rem}.benefits{gap:6px 10px}.benefits span+span{padding-left:10px}.workspace{padding:0 24px}.calculator{padding:28px}.star-grid{grid-template-columns:repeat(2,1fr)}.result-heading{align-items:flex-start;flex-direction:column;gap:8px}.next-grid{gap:24px}}
@media(max-width:540px){body{font-size:1rem}.preview-bar{font-size:1rem;padding:7px 16px;gap:5px}.header{padding:20px}.brand{gap:18px}.wordmark{font-size:2.6875rem}.tagline{font-size:1rem;letter-spacing:.05em}.intro{display:block;margin:0 20px 27px}.intro-copy{padding:10px 0 24px}h1{font-size:2rem;margin:14px 0}.lead{font-size:1rem}.benefits{margin-top:19px;font-size:1rem}.intro-image{height:150px;min-height:0}.intro-image img{object-position:50% 56%}.workspace{padding:0 16px}.calculator{padding:25px 20px 19px}.section-title{gap:13px}.section-number{font-size:1.8125rem}.section-title h2{font-size:1.3125rem}.input-intro{margin:17px 0 22px;line-height:1.9}.date-fields{gap:10px;grid-template-columns:1.25fr 1fr 1fr}.field input,.field select{padding:10px 8px;font-size:1rem}.field input::placeholder{font-size:1rem}.hint{font-size:1rem}.actions{gap:11px;flex-direction:column;align-items:stretch;margin-top:23px}.primary{min-width:0;width:100%;justify-content:center;gap:30px}.clear{align-self:center;padding:10px 4px}.privacy-note{font-size:1rem;line-height:1.9;margin-top:18px}.small-only{display:block}.state{font-size:1rem}.sex-step{padding:20px 15px}.sex-step h3{font-size:1.0625rem}.sex-options{gap:12px}.sex-options label{min-width:0;flex:1;justify-content:center;padding:10px}.results{margin-top:42px}.result-heading h2{font-size:1.75rem}.star-grid{gap:12px}.star-card{padding:20px 8px 24px}.star-name{font-size:1.75rem}.star-number{font-size:1.875rem;margin:10px 0 8px}.boundary-note{padding:18px}.boundary-note p{font-size:1rem}.result-caption{font-size:1rem;margin:26px 0 35px}.next-grid{grid-template-columns:1fr;gap:13px}.next-steps h3{font-size:1.375rem}.calculation-note{margin-bottom:40px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Private preview: stronger text hierarchy and four-star explanations. */
.method-label{font-size:1rem;color:var(--dark-sage);margin-top:18px;font-weight:500}
.benefits{margin-top:14px}
.star-label{font-weight:600;color:var(--ink)}
.star-guide{margin:0 0 40px}
.star-guide h3{font-family:var(--serif);font-size:1.625rem;margin:8px 0 22px}
.star-explanations{border-top:1px solid var(--line)}
.star-explanations details{border-bottom:1px solid var(--line)}
.star-explanations summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;font-size:1.125rem;font-weight:500;padding:20px 6px;min-height:64px}
.star-explanations summary::-webkit-details-marker{display:none}
.accordion-icon{position:relative;width:18px;height:18px;flex:none;color:var(--dark-sage)}
.accordion-icon::before,.accordion-icon::after{content:"";position:absolute;background:currentColor;top:8px;left:2px;width:14px;height:2px}
.accordion-icon::after{transform:rotate(90deg)}
.star-explanations details[open] .accordion-icon::after{transform:rotate(0)}
.star-explanations details>div{padding:0 6px 26px;font-size:1rem;line-height:2;color:var(--ink);max-width:780px}
.explanation-lead{color:var(--dark-sage);margin-bottom:16px}
.explanation-lead strong{font-weight:600}
.independence-note{font-size:1rem}
.input-intro,.link-description,.calculation-note details>div{font-size:1rem}
.privacy-note,.hint,.state,.correction-note{font-size:1rem}
.preview-bar{flex-wrap:wrap}
@media(min-width:761px) and (max-width:920px){.star-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.tagline{font-size:1rem}.brand{gap:14px}.result-caption{font-size:1rem;text-align:left}.star-guide{margin-bottom:32px}.star-guide h3{font-size:1.5rem}.star-explanations summary{padding:18px 4px}.star-explanations details>div{padding:0 4px 24px}.field input::placeholder{font-size:1rem}.preview-bar{font-size:1rem}.lead{font-size:1rem}}
@media(max-width:359px){.star-name{font-size:1.625rem;letter-spacing:0}}

/* Integration navigation only; approved calculator layout is preserved. */
.wordmark{text-decoration:none;color:inherit}
.tool-navigation{max-width:1180px;margin:0 auto 20px;padding:0 36px;display:flex;flex-wrap:wrap;gap:8px 12px;font-size:1rem;line-height:1.9;color:var(--muted)}
.tool-navigation a{text-underline-offset:4px;min-height:28px}
@media(max-width:540px){.tool-navigation{padding:0 20px;font-size:1rem;gap:6px 9px;margin-bottom:10px}}

.tool-footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;font-size:1rem;margin:14px 0 20px}.tool-footer-nav a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}

.navigation-subtitle{display:block;font-size:1rem;letter-spacing:.02em;text-decoration:none}
p{line-break:strict;text-wrap:pretty}.lead,.result-caption,.link-description{text-wrap:balance}

/* Match the site's readable type floor on phones and desktop. */
html{font-size:100%}
body{font-size:1.0625rem;font-weight:500}
.wordmark,.footer-mark{font-weight:400}
.lead,.input-intro,.privacy-note,.hint,.correction-note,.result-caption,.star-explanations details>div,.calculation-note>div{font-size:1.0625rem}
.tagline{color:var(--ink);font-weight:500}
.preview-bar{line-height:1.6}
.header{gap:20px}
.brand{min-width:0}
@media(max-width:540px){.brand{align-items:flex-start;flex-direction:column;gap:4px}.tagline{line-height:1.6}.header{padding-top:16px;padding-bottom:16px}}
.star-name{white-space:normal;overflow-wrap:anywhere}
.result-heading>div,.section-title>div{min-width:0;max-width:100%;overflow-wrap:anywhere}
@media(max-width:680px){.lead,.input-intro,.correction-note,.result-caption,.star-explanations details>div,.calculation-note details>div{font-size:1.15625rem;line-height:1.95;letter-spacing:.01em}}

/* Keep completed results close to the form; retain visible loading/error guidance. */
.state:empty{display:none}
.star-grid + .boundary-note{margin:20px 0 0}
.results{margin-top:32px;scroll-margin-top:16px}
@media(max-width:760px){
  .results{margin-top:24px}
  .result-heading{margin-bottom:20px}
}

/* Official Instagram glyph; 24px icon within a 44px touch target. */
footer .footer-instagram{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border-radius:4px;line-height:1;text-decoration:none}
footer .footer-instagram svg{display:block;width:24px;height:24px;flex:none;fill:#000}
footer .footer-instagram:hover{background:rgba(55,54,49,.06)}
footer .footer-instagram:focus-visible{outline:2px solid #566453;outline-offset:3px}
footer .footer-instagram{margin:0 auto 12px}

/* Shown with the results; no input data is attached to this link. */
.reading-entry{margin:0 0 40px;text-align:center}
.reading-entry a{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;max-width:100%;min-height:48px;padding:10px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;font-size:1rem;line-height:1.8}
.reading-entry a:hover{text-decoration:underline;text-underline-offset:5px}
.reading-entry a:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.reading-entry a>span[aria-hidden]{flex:none}
@media(max-width:600px){.reading-entry{margin-bottom:32px;text-align:left}}
