*{margin:0;padding:0;box-sizing:border-box}body{background:#1a1a2e;color:#e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:20px}.app{display:flex;flex-direction:column;align-items:center;width:100%}h1{font-size:1.4rem;font-weight:300;letter-spacing:.15em;text-transform:uppercase;color:#c4a35a;margin-bottom:16px}.loading{color:#c4a35a;font-size:.9rem;margin:20px 0}.error{color:#d55e00;font-size:.85rem;margin:8px 0}.controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px;justify-content:center;max-width:700px}.control-group{display:flex;flex-direction:column;gap:4px}label{font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:.08em}input,select{background:#2a2a4a;color:#e0e0e0;border:1px solid #444;padding:6px 10px;border-radius:4px;font-size:.85rem}input:focus,select:focus{outline:none;border-color:#c4a35a}input[type=number]{width:100px}select{width:140px}.figure-select{width:220px}.city-search{position:relative}.city-input-wrap{display:flex;align-items:center;background:#2a2a4a;border:1px solid #444;border-radius:4px;padding:2px 4px;min-width:160px;height:32px}.city-text-input{background:transparent!important;border:none!important;color:#e0e0e0;font-size:.85rem;padding:4px 6px!important;width:100%;outline:none}.city-text-input::placeholder{color:#666}.city-input-wrap:focus-within{border-color:#c4a35a}.city-selected{font-size:.85rem;color:#c4a35a;padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.city-clear{background:transparent!important;border:none!important;color:#888;cursor:pointer;font-size:.75rem;padding:2px 6px!important;line-height:1;min-width:auto}.city-clear:hover{color:#e0e0e0;background:transparent!important}.city-dropdown{position:absolute;top:100%;left:0;right:0;background:#2a2a4a;border:1px solid #444;border-radius:0 0 4px 4px;z-index:100;max-height:240px;overflow-y:auto}.city-result{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;cursor:pointer;font-size:.8rem}.city-result:hover,.city-result.active{background:#3a3a5a}.city-result-name{color:#e0e0e0}.city-result-coord{color:#666;font-size:.7rem;font-variant-numeric:tabular-nums;margin-left:8px;white-space:nowrap}.ut-label{font-size:.7rem;color:#888;margin-top:2px}.date-input,.time-input{display:flex;align-items:center;background:#2a2a4a;border:1px solid #444;border-radius:4px;padding:2px 4px}.date-input:focus-within,.time-input:focus-within{border-color:#c4a35a}.calendar-note{font-size:.7rem;color:#888;margin-left:.4rem;font-style:italic}.seg{background:transparent;border:none;color:#e0e0e0;font-size:.85rem;text-align:center;padding:4px 2px;-moz-appearance:textfield}.seg::-webkit-inner-spin-button,.seg::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.seg:focus{outline:none;background:#c4a35a26;border-radius:2px}.seg-month,.seg-day{width:32px}.seg-year{width:48px}.seg-hour,.seg-minute{width:32px}.sep{color:#888;font-size:.85rem;padding:0 1px}.sep-label{color:#888;font-size:.7rem;padding-left:4px;text-transform:uppercase}button{background:#2a2a4a;color:#c4a35a;border:1px solid #444;padding:6px 16px;border-radius:4px;cursor:pointer;font-size:.85rem;letter-spacing:.05em;transition:background .15s}button:hover{background:#3a3a5a}.scrubber-section{display:flex;flex-direction:column;gap:8px;width:100%;max-width:700px;margin-bottom:16px}.time-scrubber{display:flex;align-items:center;gap:12px}.time-scrubber input[type=range]{flex:1;-webkit-appearance:none;appearance:none;height:4px;background:#333;border-radius:2px;outline:none;border:none;padding:0}.time-scrubber input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#c4a35a;cursor:pointer;border:none}.time-scrubber input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#c4a35a;cursor:pointer;border:none}.scrubber-label{font-size:.8rem;font-variant-numeric:tabular-nums;color:#c4a35a;min-width:60px;text-align:right}.date-stepper{display:flex;gap:8px;justify-content:center;align-items:center}.date-stepper button{padding:4px 12px;font-size:.8rem;min-width:36px}.speed-btn{font-variant-numeric:tabular-nums;min-width:52px!important;text-align:center}.main-content{width:100%;max-width:900px;margin:0 auto}.main-content.dual{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(9,auto);column-gap:32px;row-gap:0;max-width:1600px}.chart-panel{display:flex;flex-direction:column;min-width:0}.panel-label{font-size:.7rem;font-weight:400;text-transform:uppercase;letter-spacing:.12em;color:#c4a35a;text-align:center;margin-bottom:8px}.panel-options{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;justify-content:center}.panel-data{display:flex;flex-direction:column;gap:24px;margin-top:16px}.main-content.dual .panel-options select{width:110px;font-size:.8rem;padding:4px 6px}.main-content.dual .panel-options button{font-size:.8rem;padding:4px 10px}.main-content.dual .panel-options label{font-size:.65rem}.main-content.dual .data-table{font-size:.7rem}.main-content.dual .data-table th{padding:3px 4px;font-size:.6rem}.main-content.dual .data-table td{padding:3px 4px}.main-content.dual .data-table .speed,.main-content.dual .data-table .dignity,.main-content.dual .data-table col:nth-child(6),.main-content.dual .data-table col:nth-child(7),.main-content.dual .data-table thead th:last-child{display:none}.main-content.dual .house-columns{gap:16px}.main-content.dual .aspects-row{flex-direction:column}.main-content.dual .aspects-row>.data-section:first-child{flex:0 0 auto}.main-content.dual .aspect-list-table{font-size:.65rem}.main-content.dual .chart-panel{display:grid;grid-template-rows:subgrid;grid-row:span 9;min-width:0}.main-content.dual .panel-data{display:contents}.main-content.dual .panel-data>:first-child{margin-top:16px}.main-content.dual .panel-data>:nth-child(n+2){margin-top:24px}@media(max-width:900px){.main-content.dual{grid-template-columns:1fr;grid-template-rows:none}.main-content.dual .chart-panel{display:flex;flex-direction:column}.main-content.dual .panel-data{display:flex;flex-direction:column;gap:24px;margin-top:16px}.main-content.dual .panel-data>:first-child{margin-top:0}.main-content.dual .panel-data>:nth-child(n+2){margin-top:0}}.chart-container{position:relative;width:100%;aspect-ratio:1}.chart-tooltip{position:absolute;pointer-events:none;background:#141428eb;color:#e0e0e0;font-size:.75rem;padding:4px 8px;border-radius:4px;border:1px solid #444;white-space:nowrap;transform:translate(-50%,-100%) translateY(-8px);z-index:10}.chart-container svg{width:100%;height:100%}.metadata{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-size:.8rem;color:#888;justify-content:center}.meta-item{display:flex;gap:4px}.meta-label{color:#666;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.meta-value{color:#c4a35a}.data-section{width:100%}.data-heading{font-size:.7rem;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:#c4a35a;margin-bottom:6px}.data-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.8rem}.planet-table{table-layout:auto}.data-table th{color:#888;font-weight:400;text-align:left;padding:4px 8px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.data-table td{padding:5px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table tbody tr:nth-child(odd){background:#1e1e38}.data-table .planet-symbol{width:24px;text-align:center;vertical-align:middle}.data-table .sign-col{white-space:nowrap;vertical-align:middle}.data-table .position{font-variant-numeric:tabular-nums;letter-spacing:.02em}.data-table .retrograde{color:#d55e00;font-weight:600}.data-table .house-col{color:#888;text-align:center;padding-left:12px}.house-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px}.house-table{width:100%;table-layout:auto}.house-table .house-num{color:#888;width:auto;white-space:nowrap}.house-table .house-sign-cell{text-align:center;vertical-align:middle;padding:5px 12px}.house-table .position{text-align:right}.data-table tr.angular td,.data-table tr.angular .house-num{font-weight:600;color:#c4a35a}.house-table tr.angular .house-sign-cell{font-weight:400}.aspect-grid-scroll{overflow-x:auto}.aspect-grid{border-collapse:collapse;font-size:.7rem}.aspect-grid th{font-weight:400;padding:2px;text-align:center;vertical-align:middle;min-width:var(--cell-size, 28px);color:#e0e0e0}.aspect-grid td{min-width:var(--cell-size, 28px);height:var(--cell-size, 28px);text-align:center;vertical-align:middle;padding:1px;border:1px solid #2a2a4a}.aspect-grid td.aspect-empty{border-color:transparent}.aspect-grid .aspect-sym{display:block;font-size:.8rem;line-height:1}.aspect-grid .aspect-orb{display:block;font-size:.6rem;color:#888;line-height:1}.aspects-row{display:flex;gap:24px;align-items:flex-start}.aspects-row>.data-section:last-child{padding-top:22px}.aspects-row>.data-section:first-child{flex:0 0 66%}.aspects-row>.data-section:last-child{flex:0 0 auto}@media(max-width:700px){.aspects-row{flex-direction:column}}.aspect-list-table{table-layout:auto;font-size:.75rem}.aspect-list-table td{padding:3px 4px}.aspect-list-table .aspect-list-planet{white-space:nowrap;vertical-align:middle}.aspect-list-table .aspect-list-type{white-space:nowrap;vertical-align:middle;text-transform:capitalize}.aspect-list-table .aspect-list-orb{font-variant-numeric:tabular-nums;text-align:right;color:#888}.aspect-list-table .aspect-list-motion{text-align:center;font-size:.8em;width:1.5em}.aspect-list-motion.applying{color:#56b4e9}.aspect-list-motion.separating{color:#888}.aspect-toggle{display:block;width:100%;background:none;border:none;color:#c4a35a;font-size:.85em;padding:6px 0;cursor:pointer;text-align:center}.aspect-toggle:hover{color:#e0c878}.data-table .speed{font-variant-numeric:tabular-nums;text-align:center;color:#888;padding-left:12px}.data-table .dignity{text-align:center;font-weight:600}.data-table .dignity-strong{color:#c4a35a}.data-table .dignity-weak{color:#d55e00}.chart-summary{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:#888}.summary-row{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center}.summary-group{display:flex;gap:6px;align-items:baseline}.summary-label{color:#666;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.summary-item{color:#c4a35a;font-variant-numeric:tabular-nums}.stellium .summary-item{color:#d55e00}.birth-star-info{display:flex;flex-direction:column;gap:2px;font-size:.8rem;text-align:center;margin-top:6px}.birth-star-header{display:flex;gap:6px;justify-content:center;align-items:baseline}.birth-star-label{color:#888;font-size:.75rem}.birth-star-name{font-weight:600}.birth-star-designation{color:#888;font-size:.75rem}.birth-star-details{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;color:#999;font-size:.75rem}.birth-star-sep{color:#555}.decan-info{display:flex;gap:6px;justify-content:center;align-items:center;font-size:.75rem;color:#888;margin-top:4px}.decan-info-label{color:#666;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.decan-info-value{color:#999}.decan-col{font-size:.75rem;white-space:nowrap}.decan-constellation{color:#888;font-size:.7rem}.galactic-constellation{color:#c4a35a}.galactic-note{font-size:.65rem;color:#666;font-style:italic;text-align:center;margin-top:6px}.export-bar{display:flex;gap:8px;justify-content:center;margin-top:12px}.export-bar button{font-size:.75rem;padding:4px 12px}.trutina-results{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;font-size:.75rem;color:#888;max-width:900px;margin-bottom:12px}.trutina-warning{color:#d55e00;font-size:.75rem;text-align:center;width:100%}.gestation-typical{color:#4caf50}.gestation-moderate{color:#c4a35a}.gestation-unusual{color:#d55e00}.trutina-body-note{font-size:.7rem;color:#888;margin-top:8px;font-style:italic;text-align:center;width:100%}.mode-radio{display:flex}.mode-radio button{border-radius:0;padding:6px 12px;font-size:.8rem;margin-left:-1px}.mode-radio button:first-child{border-radius:4px 0 0 4px;margin-left:0}.mode-radio button:last-child{border-radius:0 4px 4px 0}.mode-radio button.active{position:relative;z-index:1}.collapsible-section{border:1px solid #333;border-radius:6px;overflow:hidden;margin-bottom:8px}.collapsible-section-header{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:#1e1e3a;border:none;color:#ccc;cursor:pointer;font-size:.8rem;text-align:left}.collapsible-section-header:hover{background:#2a2a4a}.collapsible-chevron{color:#666;font-size:.7rem;transition:transform .2s}.collapsible-chevron--open{transform:rotate(90deg)}.collapsible-title{font-weight:400;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:#c4a35a}.collapsible-badge{background:#2a2a4a;color:#888;padding:1px 6px;border-radius:8px;font-size:.65rem;margin-left:auto}.collapsible-section-content{padding:8px 12px 12px;border-top:1px solid #2a2a4a}button.active{background:#3a3a5a;border-color:#c4a35a}.info{margin-top:16px;font-size:.75rem;color:#666;text-align:center;max-width:600px;line-height:1.5}.error-boundary{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;text-align:center;max-width:500px;margin:40px auto}.error-boundary h2{color:#d55e00;font-size:1.1rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.error-boundary p{color:#888;font-size:.85rem;line-height:1.5}.error-boundary-actions{display:flex;gap:12px;margin-top:8px}.biography-panel{width:100%;max-width:900px;margin-bottom:16px;padding:16px;background:#1e1e3a;border:1px solid #333;border-radius:8px}.bio-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.biography-panel h3{font-size:.9rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:#c4a35a;margin:0}.bio-controls{display:flex;gap:6px}.bio-controls select{font-size:.75rem;padding:3px 6px}.biography-summary{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.bio-stat{display:flex;flex-direction:column;gap:2px}.bio-label{font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.08em}.bio-value{font-size:.85rem;color:#ddd}.biography-events-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.bio-event-badge{font-size:.7rem;padding:2px 8px;background:#2a2a4a;border-radius:4px;color:#aaa}.biography-periods{display:flex;flex-direction:column;gap:4px}.bio-period{display:flex;gap:12px;font-size:.75rem;padding:4px 8px;border-radius:4px}.bio-period:hover{background:#2a2a4a}.bio-period-num{color:#c4a35a;min-width:24px}.bio-period-label{color:#ccc;flex:1}.bio-period-events{color:#888}.bio-open-space{display:flex;align-items:baseline;gap:8px;margin-bottom:12px;padding:8px 10px;background:#2a2a4a;border-radius:4px;border-left:3px solid #c4a35a}.bio-open-signs{font-size:.85rem;color:#ddd}.bio-open-sign{white-space:nowrap}.bio-open-degrees{font-size:.75rem;color:#888;margin-left:auto}.bio-interpret-btn{font-size:.7rem;padding:4px 12px;background:#c4a35a;border:none;border-radius:4px;color:#1a1a2e;font-weight:600;cursor:pointer;transition:background .15s}.bio-interpret-btn:hover:not(:disabled){background:#d4b36a}.bio-interpret-btn:disabled{opacity:.6;cursor:wait}.bio-interpretation{background:#1e1e3a;border:1px solid #333;border-radius:6px;padding:12px 14px;margin-bottom:10px}.bio-interpretation p{margin:0;font-size:.8rem;line-height:1.6;color:#d4d4d4;font-style:italic}.bio-interpretation-meta{display:block;margin-top:8px;font-size:.6rem;color:#666}.bio-interpretation-error p{color:#e88;font-style:normal}.consent-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.consent-dialog{background:#1e1e3a;border:1px solid #444;border-radius:8px;padding:24px;max-width:420px;width:90%}.consent-dialog h3{margin:0 0 12px;color:#c4a35a;font-size:1rem}.consent-dialog p{margin:0 0 10px;font-size:.8rem;line-height:1.5;color:#bbb}.consent-buttons{display:flex;gap:10px;margin-top:16px}.consent-accept{flex:1;padding:8px 16px;background:#c4a35a;border:none;border-radius:4px;color:#1a1a2e;font-weight:600;cursor:pointer;font-size:.8rem}.consent-accept:hover{background:#d4b36a}.consent-decline{flex:1;padding:8px 16px;background:transparent;border:1px solid #555;border-radius:4px;color:#999;cursor:pointer;font-size:.8rem}.consent-decline:hover{background:#2a2a4a;color:#ccc}.consent-privacy-link{font-size:.75rem;color:#888;margin:0}.privacy-link-btn{background:none;border:none;color:#c4a35a;cursor:pointer;font-size:.75rem;padding:0;text-decoration:underline}.privacy-link-btn:hover{color:#e0c878}.bio-sectors-toggle{font-size:.7rem;padding:4px 10px;margin-top:8px;background:transparent;border:1px solid #444;border-radius:4px;color:#999;cursor:pointer}.bio-sectors-toggle:hover{background:#2a2a4a;color:#ccc}.bio-sectors{margin-top:8px}.bio-sectors-table{width:100%;border-collapse:collapse;font-size:.7rem}.bio-sectors-table th{text-align:left;color:#888;font-weight:400;padding:4px 8px;border-bottom:1px solid #333;text-transform:uppercase;letter-spacing:.05em;font-size:.6rem}.bio-sectors-table td{padding:3px 8px;color:#ccc}.bio-sectors-table tbody tr:nth-child(odd){background:#2a2a4a4d}.prenatal-graph{width:100%;max-width:1200px;margin-bottom:16px}.prenatal-graph h3{font-size:.9rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:#c4a35a;margin-bottom:8px}.prenatal-legend{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.legend-item{display:flex;align-items:center;gap:4px;padding:2px 8px;background:transparent;border:1px solid;border-radius:4px;cursor:pointer;font-size:.7rem;transition:opacity .15s}.legend-item:hover{background:#2a2a4a}.legend-hidden{opacity:.4}.prenatal-svg{width:100%;height:auto;background:#1a1a2e;border:1px solid #333;border-radius:8px}.biography-timeline{width:100%;max-width:800px;margin-bottom:16px}.timeline-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.biography-timeline h3{font-size:.9rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:#c4a35a;margin:0}.timeline-moon-toggle{font-size:.7rem;padding:2px 8px;background:transparent;border:1px solid #444;border-radius:4px;color:#888;cursor:pointer}.timeline-moon-toggle:hover{background:#2a2a4a;color:#ccc}.timeline-moon-toggle--active{border-color:#b0b0b0;color:#b0b0b0}.timeline-container{display:flex;flex-direction:column;gap:2px;border-left:2px solid #c4a35a33;padding-left:12px}.period-card{background:#1e1e3a;border-radius:6px;overflow:hidden}.period-card--expanded{border:1px solid #333}.period-card-header{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;color:#ccc;cursor:pointer;font-size:.8rem;text-align:left;transition:background .15s}.period-card-header:hover{background:#2a2a4a}.period-number{color:#c4a35a;font-weight:600;min-width:28px}.period-theme{display:flex;align-items:center;gap:4px;color:#888;font-size:.75rem;min-width:140px}.period-theme-label{white-space:nowrap}.period-hierarchy{color:#666;font-size:.65rem;font-style:italic}.period-age-range{color:#aaa;flex:1}.period-event-count{background:#2a2a4a;color:#888;padding:1px 6px;border-radius:8px;font-size:.7rem;min-width:20px;text-align:center}.period-chevron{color:#666;font-size:.65rem;transition:transform .2s}.period-chevron--open{transform:rotate(180deg)}.period-events{padding:4px 12px 8px;border-top:1px solid #2a2a4a}.period-no-events{color:#666;font-size:.75rem;font-style:italic;padding:8px 0}.period-event{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:.75rem}.period-event:hover{background:#2a2a4a4d}.period-event-age{color:#888;min-width:56px;white-space:nowrap}.period-event-date{color:#666;min-width:70px;white-space:nowrap;font-size:.7rem}.period-event-glyphs{display:flex;align-items:center;gap:2px;min-width:40px}.period-event-desc{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.period-show-more{display:block;width:100%;padding:4px 0;margin-top:4px;background:transparent;border:none;color:#c4a35a;font-size:.7rem;cursor:pointer;text-align:center}.period-show-more:hover{color:#e0c070;text-decoration:underline}.period-interpret-btn{display:block;margin:8px auto 4px;font-size:.7rem;padding:4px 14px;background:transparent;border:1px solid #c4a35a;border-radius:4px;color:#c4a35a;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.period-interpret-btn:hover{background:#c4a35a;color:#1a1a2e}.period-interpretation{background:#1e1e3a;border-radius:6px;padding:10px 12px;margin-top:8px}.period-interpretation--loading{font-size:.75rem;color:#888;font-style:italic}@keyframes period-dots-pulse{0%,80%,to{opacity:0}40%{opacity:1}}.period-dots{display:inline-block}.period-interpretation--streaming .period-interpretation-text:after{content:"▮";display:inline;color:#c4a35a;animation:period-cursor-blink .8s step-end infinite}@keyframes period-cursor-blink{0%,to{opacity:1}50%{opacity:0}}.period-interpretation-text{margin:0;font-size:.78rem;line-height:1.6;color:#d4d4d4;font-style:italic}.period-interpretation-meta{display:block;margin-top:6px;font-size:.6rem;color:#666}.period-regenerate-btn{background:none;border:none;color:#888;cursor:pointer;font-size:.75rem;padding:0 2px;vertical-align:middle}.period-regenerate-btn:hover{color:#c4a35a}.period-interpretation--error p{color:#e88;font-style:normal;font-size:.75rem;margin:0}.period-event--selected{background:#c4a35a1a;border-radius:3px}.event-detail{padding:6px 0 6px 56px}.event-interpret-btn{font-size:.65rem;padding:3px 10px;background:transparent;border:1px solid #666;border-radius:3px;color:#888;cursor:pointer;transition:border-color .15s,color .15s}.event-interpret-btn:hover{border-color:#c4a35a;color:#c4a35a}.event-interpretation{padding:6px 0}.event-interpretation--loading{font-size:.7rem;color:#888;font-style:italic}.event-interpretation-text{margin:0;font-size:.75rem;line-height:1.5;color:#c4c4c4;font-style:italic}.event-interpretation--error p{color:#e88;font-size:.7rem;margin:0}.bio-narrative{padding:0 12px 12px}.bio-narrative-separator{border-top:1px solid rgba(196,163,90,.2);margin:8px 0 12px}.bio-narrative-text{margin:0 0 10px;font-size:.78rem;line-height:1.65;color:#d4d4d4;font-style:italic}.bio-narrative-text:last-of-type{margin-bottom:6px}.bio-narrative-btn{border-color:#666;color:#888}.bio-narrative-btn:hover{background:#888;border-color:#888;color:#1a1a2e}.chat-follow-up{margin-top:8px;padding-top:8px;border-top:1px solid rgba(196,163,90,.1)}.chat-exchange{margin-bottom:8px}.chat-user{font-size:.72rem;color:#999;margin-bottom:4px}.chat-response{font-size:.78rem;font-style:italic;color:#ccc;line-height:1.5}.chat-response--loading{font-size:.72rem;color:#888;font-style:normal}.chat-exchange-meta{display:block;margin-top:4px;font-size:.65rem;color:#666;font-style:normal}.chat-error{font-size:.72rem;color:#e88;margin-bottom:6px}.chat-input-row{display:flex;gap:6px;align-items:center;margin-top:6px}.chat-input{flex:1;background:#16162e;border:1px solid #333;border-radius:4px;padding:5px 8px;font-size:.72rem;color:#ccc;outline:none}.chat-input:focus{border-color:#c4a35a}.chat-input:disabled{opacity:.5}.chat-input::placeholder{color:#555}.chat-send-btn{background:transparent;border:1px solid #444;border-radius:4px;color:#888;padding:4px 8px;font-size:.72rem;cursor:pointer}.chat-send-btn:hover:not(:disabled){border-color:#c4a35a;color:#c4a35a}.chat-send-btn:disabled{opacity:.3;cursor:default}.chat-limit-msg{font-size:.65rem;color:#666;font-style:italic;margin-top:6px}.progression-content{display:flex;flex-direction:column;gap:12px}.progression-highlight{display:flex;align-items:baseline;gap:8px;padding:8px 12px;background:#2a2a4a;border-radius:4px;border-left:3px solid #c4a35a}.progression-label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.05em}.progression-value{font-size:.9rem;color:#c4a35a;font-weight:600}.progression-stats{display:flex;flex-wrap:wrap;gap:16px}.progression-stat{display:flex;flex-direction:column;gap:2px}.progression-stat-label{font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.05em}.progression-stat-value{font-size:.8rem;color:#ccc}.progression-milestones{display:flex;flex-direction:column;gap:4px}.progression-milestones-label{font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.05em}.progression-milestone-grid{display:flex;flex-wrap:wrap;gap:4px}.progression-milestone{padding:2px 8px;background:#2a2a4a;border-radius:3px;font-size:.7rem;color:#aaa;font-variant-numeric:tabular-nums}.progression-milestone--beyond{opacity:.4;text-decoration:line-through}.period-crossfire-badge{font-size:.65rem;color:#c4a35a;padding:1px 6px;border:1px solid rgba(196,163,90,.3);border-radius:3px;white-space:nowrap}.period-nutation-badge{font-size:.65rem;color:#56b4e9;padding:1px 6px;border:1px solid rgba(86,180,233,.3);border-radius:3px;white-space:nowrap}.spiritual-nativity-content{display:flex;flex-direction:column;gap:8px}.spiritual-nativity-info{font-size:.75rem;color:#888}.spiritual-nativity-label{font-style:italic}.spiritual-nativity-table{table-layout:auto}.spiritual-nativity-node{white-space:nowrap;font-size:.75rem}.spiritual-nativity-node--ascending{color:#56b4e9}.spiritual-nativity-node--descending{color:#e69f00}.spiritual-nativity-age{font-variant-numeric:tabular-nums;color:#aaa}.spiritual-nativity-near td{background:#c4a35a1a;font-weight:600}.app-footer{margin-top:32px;padding:12px 0;text-align:center}.footer-link{background:none;border:none;color:#666;cursor:pointer;font-size:.7rem;padding:0;letter-spacing:.05em}.footer-link:hover{color:#c4a35a}.footer-sep{color:#444;font-size:.7rem}.footer-version{color:#444;font-size:.65rem;letter-spacing:.05em}.about-links{list-style:none;padding:0;margin:0}.about-links li{margin-bottom:4px}.about-links a{color:#c4a35a;text-decoration:none;font-size:.8rem}.about-links a:hover{text-decoration:underline}.privacy-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.privacy-page{background:#1e1e3a;border:1px solid #444;border-radius:8px;max-width:560px;width:100%;max-height:80vh;display:flex;flex-direction:column}.privacy-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0}.privacy-header h2{margin:0;color:#c4a35a;font-size:1rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase}.privacy-close{background:none;border:none;color:#888;font-size:1.4rem;cursor:pointer;padding:0 4px;line-height:1}.privacy-close:hover{color:#e0e0e0}.privacy-content{padding:16px 24px;overflow-y:auto;flex:1}.privacy-content h3{color:#c4a35a;font-size:.8rem;font-weight:600;margin:16px 0 6px;letter-spacing:.05em}.privacy-content h3:first-child{margin-top:0}.privacy-content p{color:#bbb;font-size:.8rem;line-height:1.6;margin:0 0 8px}.privacy-content a{color:#c4a35a;text-decoration:none}.privacy-content a:hover{text-decoration:underline}.privacy-footer{padding:12px 24px 20px;text-align:right}.lem-panel{width:100%;max-width:900px;display:flex;flex-direction:column;gap:8px}.lem-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.lem-control-group{display:flex;align-items:center;gap:6px}.lem-control-label{font-size:.7rem;color:#888}.lem-radio-group{display:flex;gap:2px}.lem-radio-btn{font-size:.7rem;padding:2px 8px;background:#1e1e38;color:#888;border:1px solid #333;border-radius:3px;cursor:pointer;transition:all .15s}.lem-radio-btn:hover{border-color:#555;color:#ccc}.lem-radio-btn--active{background:#2a2a4a;color:#c4a35a;border-color:#c4a35a}.lem-planet-toggles{display:flex;gap:4px}.lem-planet-toggle{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;background:#1e1e38;border:1.5px solid transparent;border-radius:4px;cursor:pointer;transition:all .15s}.lem-planet-toggle:hover,.lem-planet-toggle--active{background:#2a2a4a}.lem-svg{width:100%;max-width:700px;margin:0 auto;display:block}.lem-data{overflow-x:auto}.lem-table{font-size:.75rem}.lem-table th,.lem-table td{padding:3px 8px}.lem-canvas-container{position:relative;width:100%;max-width:700px;aspect-ratio:7 / 9;margin:0 auto;border-radius:8px;overflow:hidden}.lem-canvas-container canvas{width:100%!important;height:100%!important}.lem-loading{display:flex;align-items:center;justify-content:center;width:100%;max-width:700px;aspect-ratio:7 / 9;margin:0 auto;color:#c4a35a;font-size:.85rem}.lem-zodiac-ring{position:absolute;inset:0;pointer-events:none}.lem-zodiac-glyph{position:absolute;transform:translate(-50%,-50%)}.lem-3d-controls{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#1a1a2ed9;padding:4px 12px;border-radius:6px;border:1px solid rgba(196,163,90,.2)}.lem-3d-btn{background:transparent;border:1px solid rgba(196,163,90,.3);color:#c4a35a;font-size:.85rem;padding:2px 8px;border-radius:4px;cursor:pointer;line-height:1}.lem-3d-btn:hover{border-color:#c4a35a}.lem-3d-btn--active{background:#c4a35a26;border-color:#c4a35a}.lem-speed-label{display:flex;align-items:center;gap:6px;color:#888;font-size:.7rem}.lem-speed-slider{width:80px;height:4px;accent-color:#c4a35a}.similars-panel{width:100%;max-width:900px;display:flex;flex-direction:column;gap:4px}.similars-config{display:flex;flex-direction:column;gap:6px;padding:4px 0}.similars-config-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.similars-config-row label{font-size:.7rem;color:#888;min-width:3em}.similars-config-row select,.similars-config-row input{font-size:.75rem;padding:2px 4px;background:#1e1e38;color:#e0e0e0;border:1px solid #333;border-radius:3px}.similars-config-row select:focus,.similars-config-row input:focus{border-color:#c4a35a;outline:none}.similars-status{font-size:.7rem;color:#666;padding:2px 0 4px}.similars-loading,.similars-error,.similars-warning,.similars-empty{font-size:.75rem;padding:8px}.similars-loading{color:#888}.similars-error{color:#d55e00}.similars-warning{color:#cc79a7}.similars-empty{color:#666}.similars-table{table-layout:auto}.similars-table th:first-child,.similars-table td:first-child{width:2em;text-align:center}.similars-score{font-variant-numeric:tabular-nums;color:#c4a35a;font-weight:600}.similars-name{max-width:200px;overflow:hidden;text-overflow:ellipsis}.similars-row:hover{background:#c4a35a1f!important}@media print{body{background:#fff;color:#222;padding:0}h1{color:#222}.controls,.panel-options,.scrubber-section,.export-bar,.trutina-results,.biography-panel,.prenatal-graph,.biography-timeline,.info,.date-stepper,.time-scrubber,.chart-tooltip,.city-dropdown,.app-footer,.privacy-overlay,.welcome-banner,.similars-panel,.christ-panel,.reincarnation-panel,.lem-panel,.collapsible-section-header{display:none}.chart-container{max-width:500px;margin:0 auto}.chart-container svg{background:#fff}.chart-container svg>circle:nth-of-type(1){stroke:#333}.chart-container svg>circle:nth-of-type(2){stroke:#888}.chart-container svg>circle:nth-of-type(3){stroke:#bbb}.chart-container line{stroke:#666}.chart-container text{fill:#444}.chart-container svg [role=graphics-symbol] text,.chart-container svg [role=graphics-symbol] use{fill:#222}.chart-container path{fill-opacity:.35;stroke:#999}.chart-container g line[stroke="#999"]{stroke:#444}.chart-container g line[stroke="#777"]{stroke:#666}.chart-panel{page-break-inside:avoid}.data-table th{color:#666}.data-table td{color:#222}.data-table tbody tr:nth-child(odd){background:#f5f5f5}.data-table .position{color:#222}.data-table .house-col,.data-table .speed{color:#666}.data-table .dignity-strong{color:#8b6914}.data-table .dignity-weak,.data-table .retrograde{color:#c03000}.metadata,.chart-summary{color:#666}.meta-label,.summary-label{color:#999}.meta-value,.summary-item{color:#222}.stellium .summary-item{color:#c03000}.panel-label{color:#222}.data-heading{color:#8b6914}.birth-star-info,.decan-info{color:#222}.main-content.dual{gap:16px}}.hidden-badge{display:inline-block;margin-left:4px;padding:0 3px;font-size:.65em;font-weight:700;color:#1a1a2e;background:#c4a35a;border-radius:2px;vertical-align:middle;line-height:1.3}.hidden-dot{display:block;font-size:.5em;color:#c4a35a;line-height:.8}.frame-subtitle{font-size:.6rem;color:#888;margin-top:1px;letter-spacing:.06em;text-transform:none}.christ-panel{width:100%;max-width:900px;display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.christ-content{display:flex;flex-direction:column;gap:12px}.christ-section-heading{font-size:.75rem;color:#c4a35a;text-transform:uppercase;letter-spacing:.05em;margin:0;display:flex;align-items:baseline;gap:6px}.christ-section-orb{font-size:.65rem;color:#666;font-weight:400;text-transform:none}.christ-empty{font-size:.75rem;color:#666;font-style:italic;padding:8px 0}.christ-resonance-table{table-layout:auto}.christ-planet{white-space:nowrap}.christ-pos{font-size:.65rem;color:#888;margin-left:6px}.christ-aspect{white-space:nowrap;font-size:.75rem}.christ-event-name{max-width:200px}.christ-sign-badge{display:inline-block;font-size:.6rem;background:#c4a35a33;color:#c4a35a;padding:1px 4px;border-radius:3px;margin-left:4px;vertical-align:middle}.christ-category{white-space:nowrap}.christ-cat{font-size:.6rem;padding:1px 5px;border-radius:3px;background:#2a2a4a;color:#aaa}.christ-cat--birth{color:#56b4e9;background:#56b4e91a}.christ-cat--miracle{color:#e69f00;background:#e69f001a}.christ-cat--passion{color:#d55e00;background:#d55e001a}.christ-cat--resurrection{color:#009e73;background:#009e731a}.christ-cat--ministry{color:#cc79a7;background:#cc79a71a}.christ-cat--pre-birth,.christ-cat--childhood{color:#888}.christ-cat--post-resurrection{color:#009e73;background:#009e731a}.christ-orb{font-variant-numeric:tabular-nums;color:#aaa;font-size:.75rem}.christ-sophianic{padding-top:4px}.christ-sophianic-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.christ-sophianic-match{font-size:.75rem;color:#cc79a7;background:#cc79a71a;padding:3px 8px;border-radius:4px}.etheric-returns-content{display:flex;flex-direction:column;gap:8px}.etheric-returns-note,.cosmic-comm-note{font-size:.7rem;color:#666;font-style:italic}.etheric-returns-table{table-layout:auto}.etheric-cycle{color:#888;font-size:.75rem;font-variant-numeric:tabular-nums}.etheric-age{font-variant-numeric:tabular-nums;color:#aaa}.etheric-near td{background:#c4a35a1a;font-weight:600}.cosmic-comm-content{display:flex;flex-direction:column;gap:8px}.cosmic-comm-table{table-layout:auto}.cosmic-comm-date{white-space:nowrap;font-variant-numeric:tabular-nums}.cosmic-comm-pos{font-size:.75rem;color:#888;font-variant-numeric:tabular-nums}.christ-ref-tables{display:flex;flex-direction:column;gap:16px}.christ-ref-heading{font-size:.7rem;color:#c4a35a;text-transform:uppercase;letter-spacing:.04em;margin:0}.christ-ref-table{table-layout:auto;font-size:.75rem}.christ-ref-chakra{font-size:.7rem;color:#888}.christ-ref-iam{font-style:italic;font-size:.7rem;color:#aaa}.christ-ref-time{white-space:nowrap;font-variant-numeric:tabular-nums;color:#888}.christ-ref-pos{color:#c4a35a;font-variant-numeric:tabular-nums}.christ-ref-period{white-space:nowrap;font-variant-numeric:tabular-nums}.christ-ref-desc{font-size:.7rem;color:#888}.christ-ref-current td{background:#c4a35a1a;font-weight:600}.christ-ref-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.christ-ref-cell{display:flex;flex-direction:column;padding:4px 8px;background:#2a2a4a;border-radius:4px;text-align:center}.christ-ref-sign{font-size:.7rem;color:#c4a35a}.christ-ref-apostle{font-size:.65rem;color:#aaa}.reincarnation-panel{width:100%;max-width:900px;display:flex;flex-direction:column;gap:4px;margin-top:12px}.reincarnation-content{display:flex;flex-direction:column;gap:12px}.reincarnation-caveat{font-size:.7rem;color:#d55e00;background:#d55e0014;border:1px solid rgba(213,94,0,.2);border-radius:4px;padding:8px 10px;line-height:1.4}.reincarnation-empty{font-size:.75rem;color:#666;font-style:italic}.death-data-input{display:flex;flex-direction:column;gap:6px;padding:8px 10px;background:#1e1e3a;border-radius:4px;border:1px solid #333}.death-data-label{font-size:.7rem;color:#c4a35a;text-transform:uppercase;letter-spacing:.04em}.death-data-fields{display:flex;flex-wrap:wrap;gap:8px}.death-data-fields label{display:flex;flex-direction:column;gap:2px;font-size:.65rem;color:#888}.death-data-fields input{width:72px;padding:3px 6px;background:#2a2a4a;border:1px solid #444;border-radius:3px;color:#e0e0e0;font-size:.75rem}.reincarnation-laws{display:flex;flex-direction:column;gap:10px}.reincarnation-law{display:flex;flex-direction:column;gap:4px}.reincarnation-law-header{display:flex;align-items:center;gap:8px}.reincarnation-law-label{font-size:.75rem;color:#ccc;font-weight:600}.reincarnation-badge{font-size:.6rem;padding:2px 6px;border-radius:3px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.reincarnation-badge--yes{background:#009e7326;color:#009e73}.reincarnation-badge--no{background:#d55e001a;color:#d55e00}.reincarnation-detail{font-size:.7rem;color:#aaa}.reincarnation-subdetail{font-size:.65rem;color:#666}.reincarnation-interchange{display:flex;align-items:center;gap:8px}.reincarnation-summary{font-size:.75rem;color:#c4a35a;font-weight:600;padding:4px 0;border-top:1px solid #333}.reincarnation-metamorphosis{display:flex;flex-direction:column;gap:8px}.reincarnation-meta-grid{display:flex;align-items:center;gap:12px}.reincarnation-meta-item{display:flex;flex-direction:column;gap:2px}.reincarnation-meta-label{font-size:.6rem;color:#666;text-transform:uppercase}.reincarnation-meta-value{font-size:.8rem;color:#ccc}.reincarnation-meta-angle{font-size:.65rem;color:#888;margin-left:4px}.reincarnation-meta-arrow{font-size:1.2rem;color:#555}.reincarnation-scan-table{table-layout:auto}.reincarnation-scan-pos{font-size:.65rem;color:#888;margin-left:4px}.reincarnation-scan-orb{font-variant-numeric:tabular-nums;color:#aaa;font-size:.75rem}.reincarnation-same-planet td{background:#c4a35a14;font-weight:600}.reincarnation-orbits{display:flex;flex-direction:column;gap:8px}.reincarnation-orbit-interval{font-size:.75rem;color:#888}.reincarnation-orbit-table{table-layout:auto}.reincarnation-orbit-period{font-variant-numeric:tabular-nums;color:#888;font-size:.75rem}.reincarnation-orbit-remainder{font-variant-numeric:tabular-nums;font-size:.75rem}.reincarnation-near-exact td{background:#009e7314}.reincarnation-near-badge{font-size:.55rem;background:#009e7326;color:#009e73;padding:1px 4px;border-radius:3px;margin-left:4px;text-transform:uppercase}.christ-interpretation,.reincarnation-interpretation{margin-top:12px;padding:12px 16px;border-left:3px solid #c4a35a;background:#c4a35a0d;font-size:.85rem;line-height:1.6;color:#ccc}.interpret-btn{background:transparent;border:1px solid #c4a35a;color:#c4a35a;padding:4px 12px;font-size:.75rem;cursor:pointer;margin-top:8px}.interpret-btn:hover{background:#c4a35a1a}.interpret-btn:disabled{opacity:.5;cursor:not-allowed}.interpret-meta{font-size:.65rem;color:#666;margin-top:6px}.reincarnation-config{display:flex;flex-direction:column;gap:8px}.reincarnation-config-row{display:flex;align-items:center;gap:8px;font-size:.75rem;color:#aaa}.reincarnation-config-row input[type=range]{flex:1;max-width:200px;accent-color:#c4a35a}.reincarnation-config-toggle{cursor:pointer}.reincarnation-config-toggle input[type=checkbox]{accent-color:#c4a35a}.welcome-banner{display:flex;align-items:center;gap:16px;max-width:700px;width:100%;padding:12px 16px;margin-bottom:12px;background:#c4a35a1a;border:1px solid rgba(196,163,90,.3);border-radius:6px;font-size:.85rem;line-height:1.5;color:#ccc}.welcome-banner p{flex:1;margin:0}.welcome-banner strong{color:#c4a35a}.welcome-dismiss{flex-shrink:0;background:#c4a35a26;color:#c4a35a;border:1px solid rgba(196,163,90,.3);border-radius:4px;padding:6px 14px;font-size:.8rem;cursor:pointer;white-space:nowrap}.welcome-dismiss:hover{background:#c4a35a40}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid #c4a35a;outline-offset:2px}.collapsible-section-header:focus-visible{outline:2px solid #c4a35a;outline-offset:-2px}.chart-container svg:focus-visible{outline:2px solid #c4a35a;outline-offset:2px}@media(max-width:600px){body{padding:10px 8px}.controls{gap:10px 12px;max-width:100%}.figure-select{width:100%}.city-input-wrap{min-width:0;width:100%}.city-search{width:100%}input[type=number]{width:80px}select{width:120px}.mode-radio button{padding:6px 8px;font-size:.75rem}button,.mode-radio button{min-height:36px}.date-stepper button{min-height:36px;min-width:36px;padding:4px 8px}.scrubber-section{max-width:100%}.time-scrubber input[type=range]::-webkit-slider-thumb{width:20px;height:20px}.time-scrubber input[type=range]::-moz-range-thumb{width:20px;height:20px}.main-content{max-width:100%}.panel-options{gap:8px}.panel-options select{width:100px;font-size:.8rem;padding:4px 6px}.panel-options button{font-size:.8rem;padding:4px 10px}.panel-options label{font-size:.65rem}.data-table .speed,.data-table .dignity,.data-table th[colspan="2"]{display:none}.data-section{overflow-x:auto}.data-table{font-size:.75rem}.data-table th{padding:3px 4px;font-size:.6rem}.data-table td{padding:4px}.house-columns{grid-template-columns:1fr;gap:12px}.export-bar button{font-size:.7rem;padding:4px 8px}.biography-panel{padding:10px;max-width:100%}.bio-header{flex-wrap:wrap;gap:8px}.prenatal-graph,.biography-timeline{max-width:100%}.period-card-header{padding:8px;gap:6px;flex-wrap:wrap}.period-theme{min-width:0;font-size:.7rem}.period-hierarchy{display:none}.period-event{gap:6px}.period-event-age{min-width:44px;font-size:.7rem}.period-event-date{display:none}.event-detail{padding-left:0}.trutina-results,.christ-panel{max-width:100%}.christ-event-name{max-width:120px}.christ-ref-grid{grid-template-columns:repeat(3,1fr)}.similars-panel{max-width:100%}.similars-name{max-width:120px}.reincarnation-panel{max-width:100%}.death-data-fields{gap:6px}.death-data-fields input{width:60px}.collapsible-section-content{padding:6px 8px 8px}.welcome-banner{flex-direction:column;gap:8px;text-align:center;font-size:.8rem}.app-footer{margin-top:20px}}
