@font-face{font-family:Fraunces;src:url(/fonts/fraunces-latin.woff2)format("woff2");font-style:normal;font-weight:300 600;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-latin.woff2)format("woff2");font-style:normal;font-weight:400 600;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Medium.ttf)format("truetype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap}:root{--bg:#f6f1ea;--bg-raised:#fff;--bg-2:#ede6db;--text:#1e2430;--text-2:#4a5160;--accent:#945a1f;--accent-on:#fff;--uncertain:#596653;--hard:#a8503f;--soft:#596653;--exact:#945a1f;--border:#1e243024;--control-border:#1e24308c;--danger:#a8503f;--midnight:#141a26;--on-midnight:#f6f1ea;--on-midnight-2:#f6f1eab8;--sun-on-midnight:#e8a26a;--display:"Fraunces", Georgia, "Times New Roman", serif;--body:"Newsreader", Georgia, "Times New Roman", serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--gutter:16px;--radius-card:16px;--radius-control:12px;color-scheme:light}@media (width>=720px){:root{--gutter:24px}}@media (width>=1100px){:root{--gutter:32px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--body);margin:0;font-size:1.125rem;line-height:1.75rem}.wrap{max-width:1040px;padding:0 var(--gutter);margin:0 auto}.measure{max-width:66ch}h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;font-weight:500}h1{font-size:2rem;line-height:2.25rem}h2{margin-top:var(--s7);font-size:1.75rem;line-height:2rem}h3{margin-top:var(--s6);font-size:1.375rem;line-height:1.75rem}@media (width>=720px){h1{font-size:2.5rem;line-height:2.75rem}}p{margin:var(--s4) 0 0}a{color:var(--accent);text-underline-offset:3px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.875rem;line-height:1.25rem}.eyebrow{font-family:var(--ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);font-size:.75rem;font-weight:500;line-height:1rem}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--gutter);top:var(--s2);background:var(--bg-raised);padding:var(--s2) var(--s3);z-index:2}.site-header{background:var(--midnight);color:var(--on-midnight)}.site-header .wrap{justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;min-height:56px;display:flex}.brand{font-family:var(--display);color:var(--on-midnight);font-size:1.375rem;text-decoration:none}.site-header nav{gap:var(--s5);font-family:var(--ui);font-size:.9375rem;display:flex}.site-header nav a{color:var(--on-midnight);padding:var(--s3) 0;text-decoration:none}.site-header nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--sun-on-midnight);text-underline-offset:6px}main{padding-block:var(--s7) var(--s8)}.site-footer{border-top:1px solid var(--border);padding-block:var(--s6);font-family:var(--ui);color:var(--text-2);font-size:.875rem;line-height:1.25rem}.button{min-height:48px;padding:0 var(--s5);border-radius:var(--radius-control);background:var(--accent);color:var(--accent-on);font-family:var(--ui);cursor:pointer;border:0;justify-content:center;align-items:center;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--s5)}.stack{gap:var(--s5);display:grid}.note-uncertain{border-left:3px solid var(--uncertain);background:var(--bg-2);padding:var(--s3) var(--s4);border-radius:0 var(--s2) var(--s2) 0;font-size:1rem;line-height:1.5rem}.error-summary{border-left:3px solid var(--danger);background:var(--bg-2);padding:var(--s3) var(--s4);border-radius:0 var(--s2) var(--s2) 0}.error-summary:focus-visible{outline:3px solid var(--danger);outline-offset:4px}.error-summary h2{margin:0;font-size:1.375rem;line-height:1.75rem}form .field{gap:var(--s2);display:grid}fieldset{border:0;min-width:0;margin:0;padding:0}legend,label.top{font-family:var(--ui);padding:0;font-size:.9375rem;font-weight:600;line-height:1.25rem}.hint{font-family:var(--ui);color:var(--text-2);margin:0;font-size:.875rem;line-height:1.25rem}.field-error{font-family:var(--ui);color:var(--brand-error-text);margin:0;font-size:.875rem;font-weight:600;line-height:1.25rem}input[type=text],input[type=email],input[type=number],select{font:inherit;font-family:var(--ui);min-height:48px;padding:0 var(--s3);border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--bg-raised);color:var(--text);width:100%;font-size:1rem}.row{gap:var(--s3);grid-template-columns:1fr 1.6fr 1.2fr;display:grid}.row.two{grid-template-columns:1fr 1fr;max-width:240px}.row .sub{gap:var(--s1);display:grid}.row .sub label{font-family:var(--ui);color:var(--text-2);font-size:.8125rem;line-height:1rem}.choice{gap:var(--s3);min-height:44px;padding:var(--s2) 0;font-family:var(--ui);align-items:flex-start;font-size:1rem;line-height:1.5rem;display:flex}.choice label{cursor:pointer}.choice input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.875rem;line-height:1.25rem}caption{text-align:left;font-family:var(--display);padding-bottom:var(--s3);font-size:1.375rem;line-height:1.75rem}th,td{text-align:left;padding:var(--s2) var(--s3) var(--s2) 0;border-top:1px solid var(--border);vertical-align:top}thead th{font-family:var(--ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);border-top:0;font-size:.75rem;font-weight:500}.tag{font-family:var(--ui);border:1px solid var(--uncertain);color:var(--uncertain);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.75rem}.big3{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.big3 .card p{margin-top:var(--s2);font-size:1rem;line-height:1.5rem}.wheel{width:100%;max-width:420px;height:auto;display:block}.result-grid{gap:var(--s6);align-items:start;display:grid}@media (width>=900px){.result-grid{grid-template-columns:minmax(0,420px) minmax(0,1fr)}}.chart-form{padding:var(--s5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg-raised)}.time-options{gap:var(--s2);margin-block:var(--s2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.time-option{border:1px solid var(--control-border);border-radius:var(--radius-control);min-height:48px;font:.8125rem/1.125rem var(--ui);cursor:pointer;align-items:center;gap:6px;padding:10px 8px;display:flex}.time-option:has(input:checked){background:var(--bg-2);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.time-option input{flex:none;margin:0}.time-field:has(#c-exact:checked) :is(.time-approximate,.time-unknown),.time-field:has(#c-approx:checked) :is(.time-exact,.time-unknown),.time-field:has(#c-unknown:checked) :is(.time-exact,.time-approximate){display:none}.time-exact.stack{gap:var(--s3)}.chart-form [aria-invalid=true]{border-color:var(--danger)}summary{cursor:pointer;font-family:var(--ui);padding-block:12px;font-size:1rem}@media (width<=430px){.chart-form{padding:var(--s4)}}.chart-form{--form-active:var(--brand-ink);font-family:var(--ui);font-size:.9375rem;line-height:1.6;container-type:inline-size}.chart-form .birth-entry-fields{gap:28px}.calculator-controls :is(input[type=text],input[type=email],input[type=number],input[type=date],input[type=time],select){-webkit-appearance:none;appearance:none;width:100%;min-width:0;height:max(52px,3.25rem);min-height:52px;font:1rem/1.25 var(--ui);color:var(--text);background-color:var(--bg-raised);border:1px solid var(--control-border);border-radius:8px;padding:0 12px;line-height:1.25;box-shadow:0 1px 2px #1e243006}.calculator-controls select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23646f69' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.calculator-controls input[type=number]{-moz-appearance:textfield}.calculator-controls input::-webkit-inner-spin-button,.calculator-controls input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.calculator-controls input::placeholder{color:var(--text-2);opacity:.8}.calculator-controls :is(input,select):focus-visible{outline:3px solid var(--form-active);outline-offset:3px}.chart-form legend{margin-bottom:10px}.chart-form .row{grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr) minmax(0,1fr);gap:10px}.chart-form .row.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:320px}.chart-form .sub{gap:7px;min-width:0}.chart-form .hint{font-size:.8125rem;line-height:1.462}.chart-form #date-hint,.chart-form #place-hint{order:3}.chart-form #time-hint{margin-bottom:4px}.chart-form .optional{color:var(--text-2);font-weight:400}.chart-form .time-options{border:1px solid var(--border);background:var(--bg);border-radius:11px;grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr) minmax(0,1fr);gap:4px;margin:0 0 8px;padding:4px}.chart-form .time-option{text-align:center;min-height:44px;font:500 .8125rem/1.385 var(--ui);color:var(--text-2);border:1px solid #0000;border-radius:7px;justify-content:center;padding:8px 2px;position:relative}.chart-form .time-option:has(input:checked){background:var(--form-active);color:#fff;border-color:var(--form-active);box-shadow:0 1px 3px #141a261f}.chart-form .time-option input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.chart-form .time-option:has(input:focus-visible){outline:3px solid var(--form-active);outline-offset:3px}.chart-form .form-submit{border-top:1px solid var(--border);gap:12px;padding-top:20px;display:grid}.chart-form .form-submit .ui-button{justify-content:space-between;width:100%;min-height:52px}.chart-form .form-submit .hint{text-align:center}@media (width<=430px){.chart-form{padding:20px 16px}}@media (forced-colors:active){.chart-form .time-option:has(input:checked){outline:2px solid highlight}}.calculator-controls{--form-active:var(--brand-ink)}.calculator-controls [aria-invalid=true]{border-color:var(--danger)}.calculator-controls input[type=date]::-webkit-date-and-time-value{text-align:left}.calculator-controls :is([role=alert],fieldset)[tabindex="-1"]:focus{outline:3px solid var(--form-active);outline-offset:4px;border-radius:4px}.calculator-controls :is(input,select,textarea,fieldset,[role=alert]),.error-summary{scroll-margin-block:180px 32px}.chart-form #date,.life-form #life-date{container-type:inline-size}@container (width<=300px){.chart-form #date .row,.calculator-controls.life-form .date-fields{grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr)}.chart-form #date .sub:last-child,.life-form .date-field:last-child{grid-column:1/-1}}.chart-form :is(legend,label.top,.form-submit .ui-button){font-size:.9375rem;line-height:1.35}.chart-form .row .sub label{font-size:.8125rem;line-height:1.25}.chart-form .field-error{font-size:.875rem;line-height:1.43}.chart-form :is(.choice,summary){font-size:1rem;line-height:1.5}.chart-form .choice>span{overflow-wrap:anywhere;min-width:0}@container (width<=9rem){.chart-form .time-options,.chart-form .row.two,.chart-form #date .row{grid-template-columns:minmax(0,1fr)}}.ui-button[aria-busy=true]{opacity:.85;cursor:progress}.ui-button[aria-busy=true]:before{content:"";vertical-align:-2px;border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.9s linear infinite form-busy;display:inline-block}@keyframes form-busy{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ui-button[aria-busy=true]:before{animation:none}}h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus{outline:none}
