@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;600&family=Inter:wght@300;400;500&display=swap");:root{--bg:#0d0d14;--surface:#16162a;--text:#e8e4df;--text-muted:#8a8aa0;--accent-lavender:#c4b8d4;--accent-gold:#d4a574;--accent-rose:#c47a8a;--border:#2a2a4a}html{font-size:16px}@media screen and (min-width:25em){html{font-size:calc(20px + (24 - 20) * (100vw - 400px) / (800 - 400))}}body,html{padding:0;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg);color:var(--text);min-height:100vh}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(1px 1px at 20% 30%,rgba(196,184,212,.3),transparent),radial-gradient(1px 1px at 80% 20%,hsla(31,53%,64%,.2),transparent),radial-gradient(1px 1px at 40% 70%,rgba(196,122,138,.2),transparent),radial-gradient(1px 1px at 60% 50%,rgba(196,184,212,.15),transparent),radial-gradient(1px 1px at 10% 80%,hsla(31,53%,64%,.15),transparent),radial-gradient(1px 1px at 90% 60%,rgba(196,184,212,.1),transparent);-webkit-animation:shimmer 20s ease-in-out infinite alternate;animation:shimmer 20s ease-in-out infinite alternate;pointer-events:none;z-index:0}@-webkit-keyframes shimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.6}}@keyframes shimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.6}}a{color:var(--accent-lavender);text-decoration:none}*{box-sizing:border-box}.app-container{position:relative;z-index:1;max-width:75em;margin:0 auto;padding:2rem 1.5rem}.chart-layout{display:flex;flex-direction:column}.chart-area{flex:1 1;min-width:0}.brand{text-align:center;margin-bottom:2rem}.brand h1{font-family:Cormorant Garamond,serif;font-weight:300;font-size:2.4rem;letter-spacing:.3em;color:var(--text);margin:0}.brand .tagline{font-size:.75rem;letter-spacing:.15em;color:var(--text-muted);margin-top:.25rem;text-transform:lowercase}.controls{display:flex;flex-direction:column;grid-gap:.5rem;gap:.5rem;margin-bottom:1.5rem;flex-shrink:0}.tab-selector{display:flex;grid-gap:0;gap:0;background:var(--surface);border-radius:.375em;padding:.1875em;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.tab-selector button{font-family:Inter,sans-serif;font-size:.8rem;font-weight:400;letter-spacing:.05em;padding:.4rem 1.2rem;border:none;border-radius:.25em;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.tab-selector button:hover{color:var(--text)}.tab-selector button.active{background:var(--border);color:var(--text);font-weight:500}.date-input-row{display:flex;align-items:center;grid-gap:.25rem;gap:.25rem}.date-input-row button{font-size:.65rem;padding:.3rem .35rem}.date-input-row input{flex:1 1;min-width:0}button{font-family:Inter,sans-serif;font-size:.75rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:.25em;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s ease;white-space:nowrap}button:hover{color:var(--accent-lavender);border-color:var(--accent-lavender);box-shadow:0 0 .5em rgba(196,184,212,.15)}input{font-family:Inter,sans-serif;font-size:.85rem;padding:.4rem .25rem;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text);outline:none;transition:border-color .2s ease}input:focus{border-bottom-color:var(--accent-lavender)}input.error{border-bottom-color:var(--accent-rose)}label{font-size:.75rem;color:var(--text-muted);letter-spacing:.05em}.location-row{display:flex;align-items:center;grid-gap:.75rem;gap:.75rem}.location-row label{display:flex;align-items:center;grid-gap:.25rem;gap:.25rem}.location-row input{width:7em}.birth-data{margin-top:.5rem;padding:.75rem;border:1px solid var(--border);border-radius:.375em;background:var(--surface)}.birth-data-label{font-size:.7rem;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.5rem}#chart{display:flex;justify-content:center;margin:0 auto}#chart svg{max-width:100%;height:auto}@media (min-width:48em){.chart-layout{flex-direction:row;align-items:flex-start;grid-gap:2rem;gap:2rem}.chart-area{flex:1 1}.controls{width:16em;margin-bottom:0;padding-top:.5rem}.date-input-row{flex-wrap:wrap}.date-input-row input{flex:unset;width:100%;order:-1;margin-bottom:.25rem}}@media (max-width:37.5em){.app-container{padding:1.25rem 1rem}.brand h1{font-size:1.8rem}.date-input-row{flex-wrap:wrap;justify-content:center}.location-row{flex-direction:column;align-items:flex-start}}