:root{color-scheme:dark;--bg:#050914;--panel:#0a1224;--panel2:#0d172c;--line:rgba(159,184,229,.18);--text:#f7f8fd;--muted:#aab2c7;--gold:#e7b754;--purple:#7464ee;--cyan:#4ed6ff;--green:#62d59d;--coral:#ff735f;--pink:#f35c82}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:radial-gradient(circle at 20% 0,rgba(24,46,95,.35),transparent 38%),linear-gradient(#040812,#071020);min-height:100vh}button,input,select{font:inherit}.app-shell{max-width:1540px;margin:auto;padding:18px}.site-header{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:24px;margin-bottom:16px}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:var(--gold)}.brand img{width:54px;height:54px}.brand b{display:block;font:700 2rem Georgia,serif;letter-spacing:.22em}.brand small{display:block;margin-top:3px;font-size:.7rem;letter-spacing:.16em;font-weight:800}.top-nav{display:flex;gap:7px}.nav-item{min-width:84px;border:0;border-bottom:3px solid transparent;background:none;color:#c9cfdd;padding:7px 11px}.nav-item i,.nav-item span{display:block}.nav-item i{font-style:normal;font-size:1.25rem}.nav-item.active{color:white;border-color:var(--gold)}.header-actions{display:flex;gap:8px}.btn,.icon-btn{border:1px solid var(--line);border-radius:12px;color:white;background:linear-gradient(135deg,#31275d,#6f62ef);font-weight:800;padding:11px 15px;cursor:pointer}.btn.ghost{background:rgba(255,255,255,.03)}.btn.secondary{background:rgba(83,67,171,.22);border-color:rgba(123,100,238,.45)}.ring{touch-action:none}.layout{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(390px,.92fr);gap:16px}.left-column,.right-column{display:grid;align-content:start;gap:16px}.panel{border:1px solid var(--line);border-radius:17px;background:linear-gradient(180deg,rgba(12,23,45,.97),rgba(6,14,29,.97));box-shadow:0 20px 70px rgba(0,0,0,.28);padding:18px}.panel-heading,.solar-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.kicker{color:var(--gold);text-transform:uppercase;letter-spacing:.15em;font-weight:900;font-size:.72rem;line-height:1.5;margin:0 0 7px}h1,h2{margin:0;letter-spacing:-.03em}h1{font-size:1.55rem}h2{font-size:1.65rem}.segmented{display:flex;border:1px solid var(--line);padding:4px;border-radius:13px}.segment{border:0;color:#c6ccdc;background:none;padding:10px 13px;border-radius:9px;font-weight:800}.segment.active{background:#4c438e;color:white}.wheel-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 8px}.layer-toggle{border:1px solid rgba(231,183,84,.52);border-radius:999px;padding:8px 14px;color:#f3d48d;font-weight:800;font-size:.78rem}.layer-toggle input{accent-color:var(--gold);margin-right:7px}.opacity-control{width:100%;display:grid;grid-template-columns:auto 1fr 42px;gap:12px;align-items:center;color:var(--muted);font-weight:700;font-size:.78rem}.opacity-control input{accent-color:var(--gold)}.opacity-control output{color:#ffd36e}.wheel-wrap{position:relative;aspect-ratio:1;max-width:760px;margin:auto}.wheel-wrap svg{width:100%;height:100%}.wheel-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:29%;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(circle,#11182a,#050914 72%);border:1px solid rgba(231,183,84,.62);box-shadow:0 0 35px rgba(231,183,84,.12)}.center-label{font-size:.72rem;letter-spacing:.18em;color:var(--gold);font-weight:900}.wheel-center strong{font-size:clamp(1.2rem,3vw,2rem);margin:8px 0}.wheel-center span:last-child{color:var(--muted)}.legend-row{display:flex;justify-content:center;gap:28px;color:var(--muted)}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}.root{background:var(--cyan)}.consonant{background:var(--green)}.tension{background:var(--pink)}.solar-panel{position:relative}.solar-emblem{border:1px solid var(--cyan);border-radius:50%;width:48px;height:48px;display:grid;place-items:center;color:var(--gold);font-size:1.5rem}.solar-heading p:last-child{margin:5px 0;color:var(--muted)}.interval-facts{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:14px;margin:16px 0}.interval-facts>div{padding:16px}.interval-facts>div+div{border-left:1px solid var(--line)}.interval-facts span{display:block;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.68rem}.interval-facts strong,.interval-facts b,.interval-facts small{display:block}.interval-facts strong{font-size:1.35rem;margin:9px 0}.interval-facts b{font-size:1.8rem;color:var(--cyan)}.interval-facts small{color:var(--muted);margin-top:6px}.interval-meaning{background:rgba(255,255,255,.035);border-radius:11px;padding:13px;line-height:1.55;color:#cbd2e1}.details-btn{border:0;border-radius:10px;padding:10px 14px;background:#28235c;color:white;font-weight:800}.controls-panel .panel-heading{margin-bottom:14px}.icon-btn{width:50px;height:50px;padding:0;font-size:1.6rem}.field-label,.person-card label span{display:block;color:var(--muted);font-size:.74rem;font-weight:800;margin-bottom:6px}.text-input,.person-name,.person-date,.person-role{width:100%;border:1px solid var(--line);border-radius:11px;padding:12px;background:rgba(255,255,255,.04);color:white;outline:none}.people-list{display:grid;gap:12px;margin:14px 0;max-height:690px;overflow:auto}.person-card{border:1px solid var(--line);border-radius:15px;padding:14px;background:rgba(255,255,255,.025)}.person-head{display:flex;justify-content:space-between}.person-index{background:#272357;border-radius:9px;padding:5px 9px;font-weight:900}.remove-person{border:0;background:none;color:#c8cedc;font-size:1.35rem}.role-badge{display:flex;gap:8px;align-items:center;color:#f0c45f;font-size:.76rem;font-weight:900;letter-spacing:.08em;margin:9px 0}.role-badge i{width:13px;height:13px;border-radius:50%;background:#715ee7}.person-card[data-role="root"] .role-badge i{background:#ffc34f}.person-name{font-size:1.25rem;font-weight:800;margin-bottom:12px}.person-card label{display:block;margin-top:10px}.person-readout{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin-top:12px}.person-note{grid-row:span 2;color:var(--cyan);font-size:1.5rem}.person-sign,.person-interval{color:var(--muted);font-size:.76rem}.person-harmonic-readout{margin-top:12px;padding:10px;border:1px solid rgba(78,214,255,.15);border-radius:10px;background:rgba(28,128,169,.08)}.person-solar-name{display:block;color:#7edfff;font-weight:800}.person-theory-name{color:var(--muted)}.control-actions{display:flex;gap:10px}.control-actions .btn{flex:1}.interpretation-panel .panel-heading{align-items:center}.hide-label{color:var(--muted)}.interpretation-list{border:1px solid var(--line);border-radius:13px;overflow:hidden}.interpretation-list article{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--line)}.interpretation-list article:last-child{border:0}.interpretation-list i{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:1.2rem}.interpretation-list .green{background:rgba(98,213,157,.16);color:#8aec76}.interpretation-list .violet{background:rgba(116,100,238,.16);color:#ac8bff}.interpretation-list .coral{background:rgba(255,115,95,.16);color:#ff765e}.interpretation-list .cyan{background:rgba(78,214,255,.16);color:#61d7ff}.interpretation-list span{display:block;color:var(--green);font-size:.76rem}.interpretation-list article:nth-child(2) span{color:#a98aff}.interpretation-list article:nth-child(3) span{color:#ff765e}.interpretation-list article:nth-child(4) span{color:#61d7ff}.interpretation-list strong,.interpretation-list small{display:block}.interpretation-list strong{margin:3px 0}.interpretation-list small{color:var(--muted);line-height:1.35}.analysis-lead{color:#cbd2e1;line-height:1.6}.quality-badge{border:1px solid rgba(255,184,107,.35);border-radius:999px;padding:7px 10px;color:#ffd2a1}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric-grid article{border:1px solid var(--line);border-radius:12px;padding:12px}.metric-grid span{display:block;color:var(--muted);font-size:.72rem}.metric-grid strong{font-size:1.3rem}.interval-table{overflow:auto;margin-top:12px}.interval-table table{width:100%;border-collapse:collapse;min-width:650px}.interval-table th,.interval-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;font-size:.78rem}.mobile-nav{display:none}.toast{position:fixed;right:20px;bottom:20px;padding:12px 15px;background:#162038;border:1px solid var(--line);border-radius:10px}.playing{filter:brightness(1.25);box-shadow:0 0 0 3px rgba(78,214,255,.2)}
@media(max-width:980px){.site-header{grid-template-columns:1fr auto}.top-nav{display:none}.layout{grid-template-columns:1fr}.header-actions{grid-column:1/-1}.people-list{max-height:none}.mobile-nav{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(5,9,20,.96);border:1px solid var(--line);border-radius:14px 14px 0 0;padding:8px;z-index:5}.mobile-nav span{text-align:center;color:var(--muted);font-size:1.15rem}.mobile-nav small{display:block;font-size:.7rem}.mobile-nav .active{color:#a593ff}}@media(max-width:620px){.app-shell{padding:10px}.brand b{font-size:1.4rem}.brand small{font-size:.55rem}.brand img{width:42px}.header-actions .btn{flex:1}.panel{padding:14px}.wheel-toolbar{gap:7px}.layer-toggle{padding:7px 10px}.interval-facts{grid-template-columns:1fr}.interval-facts>div+div{border-left:0;border-top:1px solid var(--line)}.control-actions{flex-direction:column}.metric-grid{grid-template-columns:1fr}.wheel-center{width:32%}}

/* Zephyr 1.0 interpretation engine */
.interpretation-panel{overflow:hidden}.harmony-score{min-width:76px;text-align:center;border:1px solid rgba(231,183,84,.35);border-radius:14px;padding:8px 10px;background:rgba(231,183,84,.06)}.harmony-score b{display:block;color:#ffd36f;font-size:1.45rem;line-height:1}.harmony-score small{display:block;margin-top:5px;color:var(--muted);font-size:.64rem;text-transform:uppercase;letter-spacing:.12em}.score-track{height:6px;margin:14px 0 16px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}.score-track i{display:block;height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,#f35c82,#e7b754,#62d59d);transition:width .55s ease}.interpretation-list article{grid-template-columns:46px 1fr;transition:background .25s ease,transform .25s ease}.interpretation-list article:hover{background:rgba(255,255,255,.025)}.interpretation-list .amber{background:rgba(231,183,84,.15);color:#ffd36f}.interpretation-list .blue{background:rgba(90,140,255,.15);color:#82a8ff}.character-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.character-tags span{display:inline-block!important;padding:5px 8px;border:1px solid rgba(255,115,95,.24);border-radius:999px;background:rgba(255,115,95,.07);color:#ff9b8e!important;font-size:.66rem!important;font-weight:800;letter-spacing:.02em}.sound-active .wheel-center{animation:zephyr-breathe 2.8s ease-in-out infinite;box-shadow:0 0 60px rgba(231,183,84,.3)}.sound-active .interpretation-list article{animation:zephyr-reveal .8s ease both}.sound-active .interpretation-list article:nth-child(2){animation-delay:.12s}.sound-active .interpretation-list article:nth-child(3){animation-delay:.24s}.sound-active .interpretation-list article:nth-child(4){animation-delay:.36s}.sound-active .interpretation-list article:nth-child(5){animation-delay:.48s}.sound-active .interpretation-list article:nth-child(6){animation-delay:.60s}@keyframes zephyr-breathe{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.045)}}@keyframes zephyr-reveal{from{opacity:.72;transform:translateY(5px)}to{opacity:1;transform:none}}
\n\n/* Observatory redesign v1 */\n.welcome-stage{position:relative;min-height:540px;margin:18px auto 28px;max-width:1500px;border:1px solid rgba(151,181,237,.18);border-radius:28px;overflow:hidden;background:radial-gradient(circle at 72% 45%,rgba(67,79,185,.22),transparent 29%),radial-gradient(circle at 22% 75%,rgba(13,150,188,.12),transparent 30%),linear-gradient(135deg,rgba(7,13,30,.98),rgba(3,7,17,.98));display:grid;grid-template-columns:1.15fr .85fr;align-items:center;padding:clamp(34px,6vw,88px);box-shadow:0 30px 90px rgba(0,0,0,.34)}\n.welcome-stage:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.7) 0 1px,transparent 1.2px);background-size:73px 73px;opacity:.16;mask-image:linear-gradient(to right,#000,transparent 88%)}\n.welcome-copy{position:relative;z-index:2;max-width:760px}.welcome-eyebrow{color:#e8b955;font-weight:900;letter-spacing:.22em;font-size:12px}.welcome-copy h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(42px,6vw,78px);line-height:.98;margin:14px 0 22px;max-width:760px}.welcome-copy>p:not(.welcome-eyebrow):not(.privacy-note){font-size:clamp(16px,2vw,21px);line-height:1.7;color:#b9c5df;max-width:660px}.pair-lockup{display:flex;align-items:center;gap:22px;margin:32px 0;padding:19px 22px;border:1px solid rgba(229,183,87,.23);border-radius:18px;background:rgba(13,20,43,.7);width:max-content;max-width:100%}.pair-lockup span{display:grid;gap:5px}.pair-lockup b{letter-spacing:.17em;color:#f7d88e}.pair-lockup small{color:#8fa2c8}.pair-lockup i{font-style:normal;font-size:27px;color:#ef7f92}.welcome-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-ring{min-width:250px}.privacy-note{font-size:12px!important;color:#7f91b4!important;margin-top:20px}.welcome-orbit{position:relative;z-index:1;width:min(38vw,440px);aspect-ratio:1;border:1px solid rgba(233,188,95,.35);border-radius:50%;justify-self:center;box-shadow:inset 0 0 70px rgba(83,91,206,.12),0 0 100px rgba(65,87,201,.12);animation:orbitBreath 7s ease-in-out infinite}.welcome-orbit:before,.welcome-orbit:after{content:"";position:absolute;border:1px solid rgba(137,173,235,.18);border-radius:50%}.welcome-orbit:before{inset:12%}.welcome-orbit:after{inset:27%}.orbit-sun{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);font-size:82px;color:#e9b64e;text-shadow:0 0 34px rgba(235,179,65,.44)}.orbit-one,.orbit-two{position:absolute;width:18px;height:18px;border-radius:50%;box-shadow:0 0 23px currentColor}.orbit-one{background:#ffd269;color:#ffd269;left:10%;top:47%}.orbit-two{background:#8c7cff;color:#8c7cff;right:14%;top:23%}@keyframes orbitBreath{50%{transform:scale(1.025);box-shadow:inset 0 0 100px rgba(83,91,206,.18),0 0 120px rgba(65,87,201,.18)}}\n.privacy-switch{border:1px solid rgba(152,175,222,.22);border-radius:999px;background:rgba(14,22,43,.72);color:#9aa9c8;padding:10px 14px;cursor:pointer}.privacy-switch.active{color:#72e1bd;border-color:rgba(91,210,172,.35);background:rgba(29,104,83,.13)}.person-position{display:block;color:#74d5e9!important;font-size:12px;margin-top:4px}.private-date{display:none;color:#78d8ca;font-style:normal;font-size:12px;padding:12px;border:1px solid rgba(67,207,184,.18);border-radius:10px;background:rgba(22,97,90,.1)}body.privacy-mode .date-field .person-date{display:none}body.privacy-mode .date-field .private-date{display:block}body.privacy-mode .interval-table th:nth-child(2),body.privacy-mode .interval-table td:nth-child(2){opacity:.55}.person-card[data-archetype="Boy"] .role-badge:after,.person-card[data-archetype="Girl"] .role-badge:after{margin-left:auto;font-size:11px;letter-spacing:.12em;color:#8698bc}.person-card[data-archetype="Boy"] .role-badge:after{content:"BOY"}.person-card[data-archetype="Girl"] .role-badge:after{content:"GIRL"}\nbody.custom-mode .welcome-stage{min-height:240px;padding:36px 50px;grid-template-columns:1fr}.custom-mode .welcome-copy h1{font-size:38px}.custom-mode .welcome-copy>p,.custom-mode .pair-lockup,.custom-mode .welcome-orbit,.custom-mode .welcome-actions{display:none}.custom-mode .privacy-note{margin:0}.custom-mode .welcome-stage{background:linear-gradient(135deg,rgba(7,13,30,.98),rgba(9,18,38,.98))}\n@media(max-width:900px){.welcome-stage{grid-template-columns:1fr;padding:38px 24px;min-height:auto}.welcome-orbit{width:min(76vw,330px);margin-top:34px}.pair-lockup{width:100%;justify-content:center}.welcome-copy h1{font-size:48px}}@media(max-width:560px){.pair-lockup{gap:10px;padding:15px 12px}.pair-lockup small{font-size:10px}.welcome-actions .btn{width:100%}.welcome-stage{border-radius:18px;margin-top:8px}.welcome-copy h1{font-size:40px}.privacy-switch{font-size:11px;padding:8px 10px}}\n