:root{--ink:#171713;--paper:#f1efe7;--acid:#d7ff3f;--coral:#ff5c44;--muted:#77766f;--line:#c7c4b8;--progress:0%}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.45}a{color:inherit;text-underline-offset:.22em}.skip-link{position:absolute;top:-5rem;left:1rem;z-index:10;background:var(--acid);padding:.75rem 1rem}.skip-link:focus{top:1rem}.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}.masthead{display:flex;justify-content:space-between;gap:1rem;padding:1.1rem max(1rem,3vw);border-bottom:1px solid var(--ink);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.wordmark{font-weight:900;text-decoration:none}.hero{min-height:clamp(540px,82svh,820px);display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,8vw,7rem) max(1rem,5vw);border-bottom:1px solid var(--ink);overflow:hidden}.overline{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.17em;margin:0 0 1rem}.percentage-line{display:flex;align-items:flex-start;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;line-height:.8;margin-left:-.045em}.percentage-line strong{font-size:clamp(3.8rem,14.4vw,13.2rem);font-weight:900;letter-spacing:-.085em}.percentage-line span{font-weight:900;font-size:clamp(1.6rem,4vw,4rem);margin:.05em 0 0 .16em}.hero h1{font-size:clamp(1.4rem,3.7vw,3.5rem);line-height:1;margin:.75rem 0 2.5rem;letter-spacing:-.045em}.hero h1 span:nth-child(2){color:var(--coral)}.day-counts{display:flex;align-items:center;gap:1rem;font-size:clamp(.9rem,2vw,1.2rem)}.day-counts p{margin:0}.day-counts strong{font-size:1.35em}.day-counts i{display:block;width:3rem;height:1px;background:var(--ink)}.progress-rule{height:10px;margin-top:2rem;background:#d6d3c8}.progress-rule span{display:block;width:var(--progress);height:100%;background:var(--ink)}.aside-copy{align-self:flex-end;margin:1rem 0 0;font-family:Georgia,serif;font-style:italic;color:var(--muted)}.year-board,.facts,.milestones-section,.explanation{padding:clamp(4rem,9vw,8rem) max(1rem,5vw);border-bottom:1px solid var(--ink)}.year-board{background:var(--ink);color:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem}h2{font-size:clamp(2rem,5vw,4.5rem);line-height:.98;letter-spacing:-.055em;margin:0;max-width:14ch}.legend{display:flex;gap:1rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}.legend span:before{content:"";display:inline-block;width:.65rem;height:.65rem;margin-right:.35rem;background:#65655f}.legend .past:before{background:var(--acid)}.legend .present:before{background:var(--coral)}.year-grid{display:grid;grid-template-columns:repeat(31,minmax(3px,1fr));gap:clamp(3px,.55vw,8px);margin:clamp(2.5rem,6vw,5rem) 0 1rem}.day{display:block;aspect-ratio:1;border-radius:50%;background:#53534e}.day--complete{background:var(--acid)}.day--today{background:var(--coral);box-shadow:0 0 0 4px rgba(255,92,68,.25);transform:scale(1.25)}.month-ruler{display:grid;grid-template-columns:repeat(12,1fr);color:#999990;font-size:.65rem;text-align:center;border-top:1px solid #41413d;padding-top:.7rem}.share-button{margin-top:3rem;min-height:48px;border:1px solid var(--paper);background:transparent;color:inherit;padding:.7rem 1rem;font:700 .8rem inherit;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}.share-button:hover{background:var(--acid);color:var(--ink);border-color:var(--acid)}.share-status{display:inline;margin-left:1rem;font-size:.8rem;color:#bab9b1}.facts ul{list-style:none;padding:0;margin:3rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-left:1px solid var(--ink)}.facts li{min-height:10rem;padding:1.2rem;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);display:flex;flex-direction:column;justify-content:space-between}.facts strong{font-size:clamp(1.7rem,4vw,3.5rem);letter-spacing:-.06em}.facts span{font-size:.8rem;text-transform:uppercase}.milestones-section{background:var(--acid)}.milestones-section>p:not(.overline){max-width:40rem}.milestones-section ol{list-style:none;padding:0;margin:3rem 0 0;border-top:1px solid var(--ink)}.milestone{display:grid;grid-template-columns:1fr 2fr 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--ink);align-items:center}.milestone strong{font-size:2rem}.milestone small{text-transform:uppercase;text-align:right;letter-spacing:.12em}.milestone--passed{opacity:.5}.explanation h2{max-width:18ch}.questions{display:grid;grid-template-columns:repeat(2,1fr);gap:0 4rem;margin-top:3rem}.questions section{border-top:1px solid var(--line);padding:1.4rem 0}.questions h3{margin:0 0 .5rem;font-size:1rem}.questions p{margin:0;color:#565650}.ad-slot{min-height:120px;margin:2rem auto;max-width:70rem;border:1px dashed var(--line)}footer{background:var(--coral);padding:3rem max(1rem,5vw);display:grid;grid-template-columns:1fr auto;gap:1rem}footer p{margin:0}footer nav{display:flex;gap:1.25rem}footer small{grid-column:1/-1;margin-top:2rem}button:focus-visible,a:focus-visible{outline:3px solid #3d62ff;outline-offset:4px}
@media(max-width:700px){.masthead>span{display:none}.hero{min-height:590px}.percentage-line strong{font-size:clamp(3.55rem,18.7vw,8rem)}.percentage-line span{font-size:1.5rem}.day-counts{align-items:flex-start;gap:.65rem}.day-counts p{max-width:8rem}.day-counts i{width:1.2rem;margin-top:.8rem}.section-heading{display:block}.legend{margin-top:1.5rem}.year-grid{grid-template-columns:repeat(19,minmax(3px,1fr));gap:4px}.month-ruler{display:none}.facts ul,.questions{grid-template-columns:1fr}.facts li{min-height:7rem}.milestone{grid-template-columns:.7fr 1.6fr .8fr;font-size:.85rem}.milestone strong{font-size:1.5rem}footer{grid-template-columns:1fr}footer nav{margin-top:1rem}footer small{grid-column:auto}.share-status{display:block;margin:.75rem 0 0}}
@media(max-width:340px){.percentage-line strong{font-size:17.5vw}.year-grid{grid-template-columns:repeat(17,1fr)}.hero h1{font-size:1.25rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.day--today{transform:none}}
