:root{--ink: #08090e;--sky-1: #0c0e18;--sky-2: #101a2a;--sky-3: #16233a;--candle: rgba(150, 112, 52, .13);--gold: #d3a94f;--gold-soft: #b8934a;--gold-hi: #e6c476;--gold-faint: rgba(211, 169, 79, .28);--gold-ghost: rgba(211, 169, 79, .12);--ivory: #f0e9d8;--ivory-dim: #b9b2a0;--ivory-faint: #8a8577;--rose: #e08b8b;--rose-ghost: rgba(224, 139, 139, .12);--aspect-trine: #7f95dd;--aspect-sextile: #4fc3b4;--aspect-conjunction: #dcb058;--aspect-square: #e39a4a;--aspect-opposition: #c73a4a;--partner: #8fa8d6;--element-fire: rgba(224, 139, 96, .1);--element-earth: rgba(157, 187, 121, .09);--element-air: rgba(196, 211, 235, .08);--element-water: rgba(118, 168, 214, .1);--font-display: "Cormorant Garamond", "Songti SC", "Noto Serif SC", "Times New Roman", serif;--font-body: "Jost", "PingFang SC", "Noto Sans SC", "Avenir Next", "Helvetica Neue", sans-serif;--panel: #0d1122;--panel-deep: #0a0d1a;--card-bg: rgb(from var(--panel) r g b / .82);--hairline: 1px solid var(--gold-faint);--radius: 14px}:root[data-theme=paper]{--ink: #e7e1d1;--sky-1: #e3dcc9;--sky-2: #ddd4bf;--sky-3: #d4cab1;--candle: rgba(185, 141, 51, .1);--gold: #b98d33;--gold-soft: #a8842f;--gold-hi: #d0a848;--gold-faint: rgba(154, 116, 40, .34);--gold-ghost: rgba(154, 116, 40, .12);--ivory: #1c2033;--ivory-dim: #55586a;--ivory-faint: #7d7f8e;--rose: #a34e4e;--rose-ghost: rgba(163, 78, 78, .12);--aspect-trine: #34478f;--aspect-sextile: #1f9384;--aspect-conjunction: #c1953f;--aspect-square: #cf7f2f;--aspect-opposition: #973844;--partner: #4f6aa8;--element-fire: rgba(176, 84, 48, .1);--element-earth: rgba(96, 128, 62, .1);--element-air: rgba(70, 100, 150, .08);--element-water: rgba(43, 96, 146, .1);--panel: #ede8da;--panel-deep: #f3efe4}*,*:before,*:after{box-sizing:border-box}html{height:100%}body{margin:0;min-height:100%;font-family:var(--font-body);font-weight:300;letter-spacing:.015em;color:var(--ivory);background:radial-gradient(1100px 760px at 78% -8%,var(--candle),transparent 60%),radial-gradient(950px 820px at 8% 112%,var(--sky-2),transparent 58%),linear-gradient(180deg,var(--ink),var(--sky-1) 55%,var(--ink));background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(1px 1px at 12% 22%,rgb(from var(--ivory) r g b / .9),transparent 100%),radial-gradient(1px 1px at 34% 68%,rgb(from var(--ivory) r g b / .55),transparent 100%),radial-gradient(1.5px 1.5px at 58% 12%,rgb(from var(--gold) r g b / .8),transparent 100%),radial-gradient(1px 1px at 71% 44%,rgb(from var(--ivory) r g b / .65),transparent 100%),radial-gradient(1px 1px at 85% 79%,rgb(from var(--ivory) r g b / .5),transparent 100%),radial-gradient(1.5px 1.5px at 22% 89%,rgb(from var(--ivory) r g b / .7),transparent 100%),radial-gradient(1px 1px at 44% 37%,rgb(from var(--gold) r g b / .5),transparent 100%),radial-gradient(1px 1px at 92% 18%,rgb(from var(--ivory) r g b / .8),transparent 100%),radial-gradient(1px 1px at 5% 55%,rgb(from var(--ivory) r g b / .45),transparent 100%),radial-gradient(1.5px 1.5px at 65% 92%,rgb(from var(--ivory) r g b / .6),transparent 100%);animation:twinkle 7s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.55}to{opacity:1}}@media (prefers-reduced-motion: reduce){body:before{animation:none}}.app-shell{max-width:560px;margin:0 auto;padding:9vh 24px 12vh;animation:rise .7s ease-out both}.app-shell.has-chart{max-width:1720px;padding:1.4vh 28px 5vh}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.masthead h1{font-family:var(--font-display);font-weight:500;font-size:clamp(2.6rem,7vw,3.6rem);letter-spacing:.28em;text-transform:uppercase;text-align:center;margin:0;color:var(--ivory)}.masthead h1:before,.masthead h1:after{content:"";display:block;width:72px;height:1px;margin:18px auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.tagline{font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--ivory-dim);text-align:center;margin:0 0 44px}.has-chart .masthead h1{font-size:clamp(1.5rem,2.6vw,2rem)}.has-chart .masthead h1:before,.has-chart .masthead h1:after{margin:8px auto;width:52px}.has-chart .tagline{font-size:.9rem;margin:0 0 10px}.birth-form,.profile-summary{background:var(--card-bg);border:var(--hairline);border-radius:var(--radius);padding:36px 34px 32px;box-shadow:0 0 0 6px rgb(from var(--gold) r g b / .04),0 24px 60px #0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.field{margin-bottom:22px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field>label:first-child{display:block;font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}input[type=date],input[type=time],input[type=text],input[type=number],select{width:100%;padding:11px 13px;font-family:var(--font-body);font-size:.98rem;font-weight:300;letter-spacing:.02em;color:var(--ivory);background:rgb(from var(--ink) r g b / .6);border:1px solid rgb(from var(--ivory) r g b / .16);border-radius:8px;outline:none;transition:border-color .2s ease,box-shadow .2s ease;color-scheme:dark}input:focus-visible,select:focus-visible{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-ghost)}input:disabled,select:disabled{opacity:.4;cursor:not-allowed}input[readonly]:not(:disabled){border-style:dashed;color:var(--ivory-dim)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 19px) 50%,calc(100% - 13px) 50%;background-size:6px 6px;background-repeat:no-repeat}.checkbox{display:inline-flex;align-items:center;gap:9px;margin-top:10px;font-size:.88rem;color:var(--ivory-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input[type=checkbox]{width:15px;height:15px;accent-color:var(--gold);cursor:pointer}.field-error{margin:8px 2px 0;padding:7px 11px;font-size:.85rem;color:var(--rose);background:var(--rose-ghost);border-left:2px solid var(--rose);border-radius:0 6px 6px 0}.save-button{display:block;width:100%;margin-top:30px;padding:14px;font-family:var(--font-body);font-size:.82rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--ink);background:linear-gradient(180deg,var(--gold-hi),var(--gold) 55%,var(--gold-soft));border:none;border-radius:8px;cursor:pointer;transition:filter .2s ease,transform .12s ease}.save-button:hover{filter:brightness(1.08)}.save-button:active{transform:translateY(1px)}.profile-summary>h2{font-family:var(--font-display);font-weight:500;font-style:italic;font-size:1.7rem;margin:0 0 6px;text-align:center;color:var(--ivory)}.profile-summary>h2:after{content:"✦";display:block;margin-top:10px;font-style:normal;font-size:.8rem;color:var(--gold)}.profile-summary dl{margin:24px 0 0}.summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:13px 2px;border-bottom:1px solid rgb(from var(--ivory) r g b / .08)}.summary-row:last-of-type{border-bottom:none}.summary-row dt{font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);white-space:nowrap}.summary-row dd{margin:0;font-family:var(--font-display);font-size:1.18rem;text-align:right;color:var(--ivory)}.summary-actions{display:flex;gap:12px;margin-top:28px}.summary-actions button{flex:1;padding:11px;font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;background:transparent;border:1px solid var(--gold-faint);border-radius:8px;color:var(--gold);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.summary-actions button:hover{background:var(--gold-ghost);border-color:var(--gold)}.summary-actions button.danger{color:var(--rose);border-color:rgb(from var(--rose) r g b / .35)}.summary-actions button.danger:hover{background:var(--rose-ghost);border-color:var(--rose)}.chart-wheel{display:block;width:100%;max-width:640px;height:auto;margin-inline:auto;filter:drop-shadow(0 0 34px rgb(from var(--gold) r g b / .08))}.wheel-rim{fill:none;stroke:var(--gold-soft);stroke-width:1.6}.wheel-hairline{fill:none;stroke:var(--gold-faint);stroke-width:.7}.zodiac-sector{stroke:var(--gold-ghost);stroke-width:.7}.sign-glyph{fill:var(--gold);font-size:21px;text-anchor:middle;dominant-baseline:central;font-family:var(--font-body)}.cusp-line{stroke:var(--gold-faint);stroke-width:.8}.cusp-line.cusp-axis{stroke:var(--gold);stroke-width:1.7}.angle-label{fill:var(--gold);font-family:var(--font-body);font-size:13px;letter-spacing:.08em;text-anchor:middle;dominant-baseline:central}.house-number{fill:var(--ivory-faint);font-family:var(--font-body);font-size:11px;text-anchor:middle;dominant-baseline:central;pointer-events:none}.cusp-line{pointer-events:none}.house-hit{fill:transparent}.house-sector{cursor:help}.house-sector:hover .house-hit,.house-sector:focus-visible .house-hit{fill:rgb(from var(--ivory) r g b / .06)}.house-sector:focus{outline:none}.house-sector:focus-visible{outline:1px solid var(--gold-faint);outline-offset:-1px}.lore-house-num{font-family:var(--font-body);font-weight:600}.planet-tick{stroke:var(--ivory-dim);stroke-width:1;opacity:.6}.planet-glyph{fill:var(--ivory);font-size:19px;text-anchor:middle;dominant-baseline:central;font-family:var(--font-body)}.retro-mark{fill:var(--rose);font-size:10px}.chart-layout{display:grid;grid-template-areas:"moment chart panels";grid-template-columns:minmax(240px,280px) minmax(0,1fr) minmax(280px,320px);gap:20px;align-items:start;animation:rise .5s ease both}.region{min-width:0}.region-birth-moment{grid-area:moment}.region-chart{grid-area:chart}.region-panels{grid-area:panels}.region-birth-moment .birth-form,.region-birth-moment .profile-summary{padding:22px 20px 20px;font-size:.92rem}.region-panels{font-size:.9rem}.chart-stage{display:flex;flex-direction:column;align-items:center;gap:.7rem}.chart-stage .chart-wheel{max-width:min(100%,80vh)}.chart-stage .big-three{width:min(100%,680px);gap:.6rem}.chart-stage .big-three-card{flex-direction:row;justify-content:center;align-items:baseline;flex-wrap:wrap;column-gap:.45rem;row-gap:0;padding:.5rem .7rem}.chart-stage .big-three-glyph{font-size:1rem;align-self:center}.chart-stage .big-three-label{font-size:.62rem}.chart-stage .big-three-value{font-size:1.05rem}.chart-stage .big-three-caveat{flex-basis:100%;text-align:center;font-size:.68rem}.chart-panels{display:flex;flex-direction:column;gap:1.1rem}@media (max-width: 1199px){.chart-layout{grid-template-areas:"chart chart" "moment panels";grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (max-width: 760px){.chart-layout{grid-template-areas:"chart" "moment" "panels";grid-template-columns:1fr}}.solo-column{display:flex;flex-direction:column;gap:2.2rem}.chart-section{width:100%;display:flex;flex-direction:column;align-items:center;animation:rise .5s ease both}.chart-empty .empty-state{font-family:var(--font-display);font-size:1.25rem;font-style:italic;color:var(--ivory-dim);text-align:center;border-top:var(--hairline);padding-top:2rem;max-width:34rem}.big-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:min(100%,640px)}.big-three-card{background:var(--card-bg);border:var(--hairline);border-radius:var(--radius);padding:1rem .8rem 1.1rem;display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center}.big-three-glyph{color:var(--gold);font-size:1.5rem;line-height:1}.big-three-label{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory-faint)}.big-three-value{font-family:var(--font-display);font-size:1.35rem;color:var(--ivory)}.big-three-sign-glyph{color:var(--gold)}.big-three-caveat{font-size:.75rem;color:var(--ivory-faint);font-style:italic}.positions-table{width:100%;border-collapse:collapse;background:var(--card-bg);border:var(--hairline);border-radius:var(--radius);overflow:hidden;font-size:.92rem}.positions-table caption{font-family:var(--font-display);font-size:1.15rem;color:var(--gold);padding:.8rem 0 .5rem;border-bottom:var(--hairline);background:var(--card-bg)}.positions-table th{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ivory-faint);font-weight:500;padding:.55rem .9rem;text-align:left;border-bottom:var(--hairline)}.positions-table td{padding:.45rem .9rem;color:var(--ivory-dim);border-bottom:1px solid rgb(from var(--gold) r g b / .08)}.positions-table tbody tr:last-child td{border-bottom:none}.table-glyph{color:var(--gold)}.retro-flag{color:var(--rose)}.aspects-panel{background:var(--card-bg);border:var(--hairline);border-radius:var(--radius);padding:.8rem 1.1rem 1rem}.panel-title{font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--gold);text-align:center;margin:0 0 .6rem;padding-bottom:.5rem;border-bottom:var(--hairline)}.aspects-list{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto;font-size:.9rem}.aspects-list li{display:flex;justify-content:space-between;gap:.8rem;padding:.4rem .1rem;border-bottom:1px solid rgb(from var(--gold) r g b / .08)}.aspects-list li:last-child{border-bottom:none}.aspect-bodies{color:var(--ivory)}.aspect-glyph{color:var(--gold)}.aspect-glyph.aspect-conjunction{color:var(--aspect-conjunction)}.aspect-glyph.aspect-sextile{color:var(--aspect-sextile)}.aspect-glyph.aspect-trine{color:var(--aspect-trine)}.aspect-glyph.aspect-square{color:var(--aspect-square)}.aspect-glyph.aspect-opposition{color:var(--aspect-opposition)}.aspect-meta{color:var(--ivory-faint);font-size:.8rem;white-space:nowrap}@media (max-width: 520px){.big-three{grid-template-columns:1fr}}.lore-marker{cursor:pointer;outline:none}.lore-marker:focus-visible .sign-glyph,.lore-marker:focus-visible .planet-glyph{fill:var(--gold);filter:drop-shadow(0 0 6px var(--gold))}.lore-card{position:fixed;z-index:40;background:rgb(from var(--panel-deep) r g b / .96);border:var(--hairline);border-radius:var(--radius);box-shadow:0 0 0 5px rgb(from var(--gold) r g b / .05),0 18px 50px #000000a6;padding:14px 16px 15px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:lore-in .18s ease-out both;pointer-events:auto}@keyframes lore-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.lore-card{animation:none}}.lore-head{display:flex;gap:12px;align-items:center;margin-bottom:8px}.lore-glyph{font-size:1.9rem;color:var(--gold);line-height:1}.lore-title{font-family:var(--font-display);font-weight:500;font-size:1.25rem;color:var(--ivory);margin:0}.lore-title span{color:var(--gold)}.lore-sub{margin:2px 0 0;font-size:.78rem;color:var(--ivory-dim)}.lore-chart-line{color:var(--gold)}.lore-retro{color:var(--rose)}.lore-span{margin:1px 0 0;font-size:.72rem;font-style:italic;color:var(--ivory-faint)}.lore-keywords{margin:0 0 7px;padding-bottom:7px;border-bottom:1px solid rgb(from var(--gold) r g b / .14);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)}.lore-text{margin:0;font-size:.88rem;line-height:1.5;color:var(--ivory-dim)}.orb-medallion{width:74px;height:74px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;border:1px solid rgb(from var(--ivory) r g b / .18);box-shadow:inset -8px -10px 22px #00000073,0 0 18px var(--gold-ghost)}.orb-glyph{font-size:1.6rem;color:rgb(from var(--ink) r g b / .75);text-shadow:0 1px 2px rgb(from var(--ivory) r g b / .3)}.orb{flex:none}.orb-canvas-host{width:120px;height:120px;border-radius:50%;overflow:hidden;box-shadow:inset -10px -12px 26px #0006,0 0 22px rgb(from var(--gold) r g b / .14)}.orb-canvas-host canvas{display:block;width:100%!important;height:100%!important}.aspect-node{fill:var(--ivory);opacity:.85;stroke:rgb(from var(--ink) r g b / .8);stroke-width:1}.aspect-node-angle{fill:var(--gold)}.aspect-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.aspect-chip{font-family:var(--font-body);font-size:.74rem;letter-spacing:.08em;color:var(--ivory-dim);background:rgb(from var(--panel) r g b / .7);border:1px solid rgb(from var(--ivory) r g b / .16);border-radius:999px;padding:5px 12px;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.aspect-chip:hover{border-color:var(--gold)}.aspect-chip[aria-pressed=true]{color:var(--ink);background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%);border-color:var(--gold)}.chip-sextile span[aria-hidden]{color:var(--aspect-sextile)}.chip-trine span[aria-hidden]{color:var(--aspect-trine)}.chip-square span[aria-hidden]{color:var(--aspect-square)}.chip-opposition span[aria-hidden]{color:var(--aspect-opposition)}.aspect-chip[aria-pressed=true] span[aria-hidden]{color:var(--ink)}.chip-count{margin-left:6px;opacity:.75;font-variant-numeric:tabular-nums}.aspects-hidden-note{margin:8px 0 0;font-size:.75rem;font-style:italic;text-align:center;color:var(--ivory-faint)}.aspect-hit-line{stroke:transparent;stroke-width:10;pointer-events:stroke;cursor:pointer}.aspect-hit-dot{fill:transparent;pointer-events:all;cursor:pointer}.aspect-row-button{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;gap:.8rem;width:100%;cursor:pointer}.aspect-row-button:focus-visible{outline:1px solid var(--gold);outline-offset:2px;border-radius:4px}.aspects-list li{display:block}.masthead{position:relative}.corner-toggles{position:absolute;top:4px;right:0;display:flex;gap:8px}.masthead-gate .corner-toggles{position:static;justify-content:center;margin-bottom:16px}.app-shell:not(.has-chart) .masthead:not(.masthead-gate){padding-top:44px}.lang-toggle,.theme-toggle{display:flex;gap:2px;border:1px solid rgb(from var(--ivory) r g b / .18);border-radius:999px;padding:2px;background:rgb(from var(--panel) r g b / .7)}.lang-toggle button,.theme-toggle button{font-family:var(--font-body);font-size:.72rem;letter-spacing:.08em;color:var(--ivory-dim);background:transparent;border:none;border-radius:999px;padding:4px 11px;cursor:pointer;transition:color .15s ease,background .15s ease}.lang-toggle button[aria-pressed=true],.theme-toggle button[aria-pressed=true]{color:var(--ink);background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%)}.login-gate{background:var(--card-bg);border:1px solid rgb(from var(--ivory) r g b / .12);border-radius:14px;padding:34px 38px 38px;max-width:430px;margin:0 auto;text-align:center;animation:gate-rise .45s ease both}@keyframes gate-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.login-gate{animation:none}}.login-gate h2{font-family:var(--font-display);font-weight:400;font-size:1.5rem;letter-spacing:.04em;color:var(--ivory);margin:0 0 10px}.login-subtitle{font-family:var(--font-body);font-size:.86rem;line-height:1.55;color:var(--ivory-dim);margin:0 0 24px}.login-gate .field{text-align:left}.login-gate .save-button{margin-top:18px;width:100%}.login-returning{margin-top:26px;padding-top:20px;border-top:1px solid rgb(from var(--ivory) r g b / .1)}.login-returning-label{display:block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}.login-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.login-chip{font-family:var(--font-body);font-size:.82rem;color:var(--ivory);background:rgb(from var(--ivory) r g b / .06);border:1px solid rgb(from var(--ivory) r g b / .2);border-radius:999px;padding:6px 16px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.login-chip:hover{border-color:var(--gold);background:rgb(from var(--gold-hi) r g b / .12)}.session-bar{position:absolute;top:4px;left:0;right:230px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;row-gap:6px}.session-greeting{font-family:var(--font-body);font-size:.8rem;letter-spacing:.05em;color:var(--gold)}.session-switch{font-family:var(--font-body);font-size:.7rem;letter-spacing:.06em;color:var(--ivory-dim);background:transparent;border:1px solid rgb(from var(--ivory) r g b / .18);border-radius:999px;padding:3px 11px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.session-switch:hover{color:var(--ivory);border-color:var(--gold)}.view-tabs{display:flex;justify-content:center;gap:6px;margin-top:10px}.view-tab{font-family:var(--font-body);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ivory-dim);background:transparent;border:1px solid rgb(from var(--ivory) r g b / .16);border-radius:999px;padding:5px 18px;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.view-tab:hover{color:var(--ivory);border-color:var(--gold)}.view-tab.active{color:var(--ink);background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%);border-color:transparent}.synastry-heading{font-family:var(--font-display);font-weight:400;font-size:1.5rem;letter-spacing:.04em;color:var(--ivory);text-align:center;margin:0 0 8px}.synastry-intro{font-family:var(--font-body);font-size:.86rem;color:var(--ivory-dim);text-align:center;margin:0 auto 22px;max-width:420px;line-height:1.55}.synastry-partner-entry{animation:gate-rise .45s ease both}.synastry-empty h2{font-family:var(--font-display);font-weight:400;font-size:1.5rem;color:var(--ivory);margin:0 0 10px}.bi-wheel{width:100%;height:auto;max-height:80vh;display:block}.bi-band-rim{fill:none;stroke:var(--gold-faint);stroke-width:1}.bi-band-sector{fill:rgb(from var(--ivory) r g b / .02);stroke:rgb(from var(--ivory) r g b / .1);stroke-width:.6}.bi-sign-glyph{fill:var(--gold);font-size:15px;text-anchor:middle;dominant-baseline:central}.bi-ring-guide{fill:none;stroke:rgb(from var(--ivory) r g b / .08);stroke-width:.8}.bi-planet{font-size:17px;text-anchor:middle;dominant-baseline:central}.bi-planet-a{fill:var(--gold)}.bi-planet-b{fill:var(--partner)}.bi-tick{opacity:.9}.bi-tick-a{fill:var(--gold)}.bi-tick-b{fill:var(--partner)}.bi-aspect-line{stroke-width:1;opacity:.55;transition:opacity .15s ease}.bi-aspect-line:hover{opacity:1;stroke-width:1.6}.syn-person{background:var(--card-bg);border:1px solid rgb(from var(--ivory) r g b / .12);border-radius:12px;padding:16px 18px;margin-bottom:12px}.syn-person-label{display:block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}.syn-person-a .syn-person-label{color:var(--gold)}.syn-person-b .syn-person-label{color:var(--partner)}.syn-person h3{font-family:var(--font-display);font-weight:500;font-size:1.1rem;color:var(--ivory);margin:0 0 4px}.syn-person p{font-family:var(--font-body);font-size:.8rem;color:var(--ivory-dim);margin:0}.syn-person-b{border-left:2px solid var(--partner)}.syn-person-a{border-left:2px solid var(--gold)}.syn-edit-partner{margin-top:2px}.syn-category-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.syn-chip{font-family:var(--font-body);font-size:.72rem;color:var(--ivory-dim);background:transparent;border:1px solid rgb(from var(--ivory) r g b / .18);border-radius:999px;padding:4px 12px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.syn-chip:hover{color:var(--ivory);border-color:var(--gold)}.syn-chip.active{color:var(--ink);background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%);border-color:transparent}.inter-aspects-table .aspect-glyph-cell{text-align:center;color:var(--gold)}.inter-aspects-table .aspect-glyph-cell.aspect-conjunction{color:var(--aspect-conjunction)}.inter-aspects-table .aspect-glyph-cell.aspect-sextile{color:var(--aspect-sextile)}.inter-aspects-table .aspect-glyph-cell.aspect-trine{color:var(--aspect-trine)}.inter-aspects-table .aspect-glyph-cell.aspect-square{color:var(--aspect-square)}.inter-aspects-table .aspect-glyph-cell.aspect-opposition{color:var(--aspect-opposition)}.bi-angle{font-size:10px;letter-spacing:.08em}.city-picker .field{position:relative;margin-bottom:12px}.field-label{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}.city-combobox{position:absolute;z-index:30;left:0;right:0;top:100%;margin:4px 0 0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;background:rgb(from var(--panel) r g b / .97);border:1px solid rgb(from var(--ivory) r g b / .18);border-radius:10px;box-shadow:0 12px 30px #00000073}.city-combobox li{margin:0}.city-combobox button{display:block;width:100%;text-align:left;font-family:var(--font-body);font-size:.85rem;color:var(--ivory);background:transparent;border:none;border-radius:6px;padding:7px 10px;cursor:pointer}.city-combobox button:hover{background:rgb(from var(--gold-hi) r g b / .12)}.city-admin-hint{color:var(--ivory-dim);font-size:.75rem}.city-no-match{font-family:var(--font-body);font-size:.8rem;color:var(--ivory-dim);padding:7px 10px}.city-attribution{font-family:var(--font-body);font-size:.66rem;color:var(--ivory-dim);border-top:1px solid rgb(from var(--ivory) r g b / .1);margin:4px 0 0;padding:6px 10px 2px}.aspect-lines .aspect{opacity:.5;transition:opacity .35s ease,stroke-width .35s ease}.aspect-lines.aspect-dimmed .aspect{opacity:.16}.aspect-lines.aspect-dimmed .aspect.kin{opacity:.36}.aspect-lines.aspect-dimmed .aspect.lit{opacity:1;stroke-width:2.2;filter:drop-shadow(0 0 3px currentColor)}.spotlight-halo{fill:none;stroke:var(--gold);stroke-width:1.2;opacity:.85;animation:halo-breathe 2.4s ease-in-out infinite}@keyframes halo-breathe{0%,to{stroke-width:1.2;opacity:.85}50%{stroke-width:2.2;opacity:.45}}.spotlight-fallback{filter:drop-shadow(0 0 4px currentColor);animation:fallback-glow 2.4s ease-in-out infinite}@keyframes fallback-glow{0%,to{opacity:.95}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){.spotlight-halo,.spotlight-fallback{animation:none}.aspect-lines .aspect{transition:none}}.aspect-spotlight{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:8px;min-height:34px}.spotlight-caption{font-family:var(--font-body);font-size:.88rem;letter-spacing:.03em;color:var(--ivory);margin:0}.spotlight-orb{color:var(--ivory-dim);font-size:.78rem}.spotlight-controls{display:flex;gap:4px}.spotlight-btn{font-family:var(--font-body);font-size:.72rem;color:var(--ivory-dim);background:transparent;border:1px solid rgb(from var(--ivory) r g b / .18);border-radius:999px;padding:3px 11px;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.spotlight-btn:hover{color:var(--ivory);border-color:var(--gold)}.spotlight-btn.active{color:var(--ink);background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%);border-color:transparent}.spotlight-current-row{outline:1px solid var(--gold-faint);border-radius:8px;background:rgb(from var(--gold-hi) r g b / .07)}.spotlight-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.chart-stage{position:relative}.city-group-label{font-family:var(--font-body);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding:8px 10px 4px}.chart-error{text-align:center;max-width:420px;margin:0 auto;padding:28px 24px 30px;border:1px solid var(--gold-faint);border-radius:14px;background:var(--card-bg);animation:gate-rise .45s ease both}@media (prefers-reduced-motion: reduce){.chart-error{animation:none}}.chart-error-glyph{font-size:1.9rem;color:var(--gold);margin:0 0 6px;opacity:.8}.chart-error-heading{font-family:var(--font-display);font-weight:400;font-size:1.35rem;letter-spacing:.04em;color:var(--ivory);margin:0 0 10px}.chart-error-body{font-family:var(--font-body);font-size:.86rem;line-height:1.55;color:var(--ivory-dim);margin:0 auto 20px;max-width:340px}.chart-error .save-button{min-width:140px;width:auto}.synastry-layout{grid-template-areas:"moment chart panels" "reading reading reading"}.region-reading{grid-area:reading}@media (max-width: 1199px){.synastry-layout{grid-template-areas:"chart chart" "moment panels" "reading reading"}}@media (max-width: 760px){.synastry-layout{grid-template-areas:"chart" "moment" "panels" "reading"}}.syn-reading-codex .analysis-chapter{border-left:2px solid rgb(from var(--partner) r g b / .22);padding-left:16px}.syn-reading-codex .analysis-ordinal{color:var(--partner)}.syn-reading-codex .analysis-flourish{background:linear-gradient(90deg,rgb(from var(--partner) r g b / .45),transparent 70%)}.syn-reading-codex .analysis-citation+.analysis-citation:before{color:rgb(from var(--partner) r g b / .6)}.syn-reading-codex .analysis-chapter:first-child .analysis-prose:first-letter{color:var(--partner)}.analysis-codex{max-width:62ch;margin:0 auto;padding:24px 20px 48px}.analysis-chapter{margin-bottom:40px;animation:analysis-rise .7s ease-out both;animation-delay:calc(var(--chapter-index, 0) * .12s)}@keyframes analysis-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.analysis-chapter-head{display:flex;align-items:baseline;gap:14px}.analysis-ordinal{font-family:Cormorant Garamond,serif;font-size:1.05rem;color:var(--gold-soft);letter-spacing:.08em}.analysis-heading{font-family:Cormorant Garamond,serif;font-weight:600;font-size:1.6rem;color:var(--ivory);margin:0}.analysis-flourish{height:1px;margin:10px 0 14px;background:linear-gradient(90deg,var(--gold-faint),transparent 70%)}.analysis-evidence{list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem 0;margin:0 0 .9rem;padding:0}.analysis-citation{font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:rgb(from var(--ivory) r g b / .52);transition:color .25s ease}.analysis-citation+.analysis-citation:before{content:"·";color:var(--gold-faint);margin:0 .6em}.analysis-chapter:hover .analysis-citation{color:rgb(from var(--ivory) r g b / .72)}.analysis-prose{color:rgb(from var(--ivory) r g b / .86);line-height:1.85;margin:0}.analysis-chapter:first-child .analysis-prose:first-letter{font-family:Cormorant Garamond,serif;font-size:2.6em;line-height:.9;float:left;padding-right:8px;color:var(--gold)}.analysis-provenance{margin-top:8px;padding-top:18px;border-top:1px solid var(--gold-ghost);color:var(--ivory-dim);font-size:.82rem;letter-spacing:.04em;text-align:center}.analysis-stale{position:relative}.analysis-stale .analysis-codex{opacity:.45;filter:saturate(.55);transition:opacity .25s ease}.analysis-veil{position:sticky;top:16px;z-index:2;width:fit-content;margin:0 auto 14px;display:flex;align-items:center;gap:10px;padding:8px 18px;border:var(--hairline);border-radius:999px;background:rgb(from var(--panel) r g b / .92);color:var(--ivory);font-size:.88rem;letter-spacing:.04em}.analysis-veil button{font-family:var(--font-body);font-size:.8rem;letter-spacing:.06em;color:var(--ink);background:linear-gradient(180deg,var(--gold-hi),var(--gold) 60%);border:none;border-radius:999px;padding:4px 14px;cursor:pointer}.analysis-veil-spark{width:8px;height:8px;border-radius:50%;background:var(--gold)}@media (prefers-reduced-motion: no-preference){.analysis-veil-spark{animation:veil-breathe 1.6s ease-in-out infinite}}@keyframes veil-breathe{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.analysis-loading{max-width:62ch;margin:0 auto;padding:48px 20px;text-align:center}.analysis-loading-title{font-family:Cormorant Garamond,serif;font-size:1.7rem;color:var(--ivory);margin:0 0 8px}.analysis-loading-body{color:var(--ivory-dim);margin:0 0 28px}.analysis-loading-ordinals{display:flex;justify-content:center;gap:18px;font-family:Cormorant Garamond,serif;font-size:1.2rem}.analysis-loading-ordinal{color:var(--gold-faint);animation:analysis-shimmer 2.4s ease-in-out infinite;animation-delay:calc(var(--i, 0) * .2s)}.analysis-loading-ordinal:nth-child(1){--i: 0}.analysis-loading-ordinal:nth-child(2){--i: 1}.analysis-loading-ordinal:nth-child(3){--i: 2}.analysis-loading-ordinal:nth-child(4){--i: 3}.analysis-loading-ordinal:nth-child(5){--i: 4}.analysis-loading-ordinal:nth-child(6){--i: 5}.analysis-loading-ordinal:nth-child(7){--i: 6}@keyframes analysis-shimmer{0%,to{color:var(--gold-faint)}50%{color:var(--gold-hi)}}.analysis-need-self{max-width:52ch;margin:48px auto;text-align:center;color:var(--ivory-dim);line-height:1.7}.analysis-error{margin:48px auto}@media (prefers-reduced-motion: reduce){.analysis-chapter,.analysis-loading-ordinal{animation:none}}.sync-panel{margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--gold-ghost)}.sync-toggle{background:none;border:none;padding:0;color:var(--ivory-dim);font-size:.8rem;letter-spacing:.08em;cursor:pointer}.sync-toggle:hover,.sync-toggle[aria-expanded=true]{color:var(--gold)}.sync-form{margin-top:.8rem;display:grid;gap:.5rem}.sync-label{color:var(--ivory-dim);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase}.sync-form input{background:none;border:1px solid var(--gold-faint);border-radius:6px;padding:.5rem .7rem;color:var(--ivory);font:inherit}.save-button.sync-send{background:none;border:1px solid var(--gold-faint);color:var(--gold);box-shadow:none}.save-button.sync-send:hover{border-color:var(--gold)}.sync-status{margin:0;color:var(--ivory-dim);font-size:.8rem}.sync-status[data-sync-status=error],.sync-status[data-sync-status=unavailable]{color:var(--rose, var(--ivory-dim))}.sync-intro{margin:0;color:var(--ivory-dim);font-size:.75rem;line-height:1.5}.session-bar .sync-panel{margin-top:0;padding-top:0;border-top:none;position:relative}.session-bar .sync-form{position:absolute;top:calc(100% + .6rem);left:0;z-index:30;min-width:260px;padding:.9rem;background:var(--card-bg);border:1px solid var(--gold-faint);border-radius:8px;text-align:left}.account-chip{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-left:.6rem;padding-left:.6rem;border-left:1px solid var(--gold-ghost);color:var(--gold-soft);font-size:.78rem}.account-delete{color:var(--ivory-faint)}.transit-view{display:flex;flex-direction:column;gap:1.25rem}.location-whisper{display:flex;flex-direction:column;gap:.5rem;font-size:.85rem;color:var(--ivory-dim)}.location-whisper p{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem;margin:0}.location-whisper button{background:none;border:none;border-bottom:1px solid var(--gold-ghost);color:var(--gold-soft);cursor:pointer;font:inherit;padding:0 0 .1rem}.location-whisper button:hover{color:var(--gold);border-bottom-color:var(--gold)}.whisper-city-shell{max-width:26rem}.transit-almanac{display:flex;flex-direction:column;gap:.75rem}.almanac-band{display:flex;align-items:center;gap:.6rem}.almanac-edge{color:var(--ivory-faint);font-size:.7rem;white-space:nowrap}.almanac-track{position:relative;flex:1;height:2.1rem;border-bottom:1px solid var(--gold-ghost)}.almanac-today{position:absolute;left:50%;top:0;bottom:-.35rem;border-left:1px solid var(--gold);opacity:.8}.almanac-event{position:absolute;bottom:.15rem;transform:translate(-50%);color:var(--gold-soft);font-size:.85rem;cursor:help;line-height:1}.almanac-event:hover{color:var(--gold)}.almanac-contacts{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.almanac-contacts li{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--gold-faint);border-radius:999px;padding:.2rem .7rem;font-size:.75rem;color:var(--ivory-dim)}.almanac-badge{color:var(--gold-soft);border-left:1px solid var(--gold-ghost);padding-left:.4rem}
