:root{color-scheme:dark;--bg:#03040a;--panel:#0c1122;--line:#242d43;--text:#eef1f8;--muted:#b7bfd3;--gold:#eac57e;--teal:#7fe0da;color:var(--text);background:var(--bg);font-synthesis:none;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--gold)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,input,select{border:1px solid var(--line);min-height:46px;color:var(--text);background:#101629;border-radius:12px;padding:10px 13px}button:hover{border-color:#647089}input,select{width:100%;min-width:0}input:focus,select:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--gold)}input[type=date],input[type=time],input[type=datetime-local]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%}input::-webkit-date-and-time-value{text-align:left}label{color:#c3cbdc;margin:12px 0;font-size:13px;font-weight:500;display:block}label input,label select{margin-top:7px;display:block}fieldset{border:0;min-width:0;margin:0 0 20px;padding:0}legend{color:var(--gold);margin-bottom:5px;font-size:13px}summary{cursor:pointer;align-items:center;gap:12px;min-height:44px;font-size:14px;display:flex}summary:after{content:"+";color:var(--gold);margin-left:auto}details[open]>summary:after{content:"−"}details{border-bottom:1px solid var(--line);padding:7px 0}details p{margin-top:10px}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.025em;font-family:Fraunces,PingFang SC,serif;font-weight:400;line-height:1.12}h1{max-width:860px;margin:18px auto;font-size:clamp(38px,6.5vw,76px)}h2{font-size:clamp(28px,4vw,42px)}h3{font-size:20px;font-weight:500;line-height:1.4}p{color:var(--muted)}.ambient{pointer-events:none;z-index:-1;background:radial-gradient(at 50% 5%,#22274665,#0000 55%),radial-gradient(1px 1px at 10% 30%,#fff9,#0000) 0 0/191px 251px,radial-gradient(1px 1px at 80% 20%,#fff8,#0000) 0 0/307px 193px,radial-gradient(1px 1px at 60% 80%,#fff8,#0000) 0 0/227px 319px;position:fixed;inset:0}.site-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;max-width:1220px;margin:auto;padding:22px 28px;display:flex}.brand{letter-spacing:-1px;white-space:nowrap;font-size:23px;font-weight:500}.brand>span:last-child{color:#8a96af}.brand-symbol{margin-right:8px;font-size:30px;color:var(--gold)!important}.header-actions{align-items:center;gap:14px;display:flex}.locale{place-items:center;min-width:44px;min-height:44px;font-size:13px;display:grid}.menu-button{background:0 0;border:none;font-size:21px}.tool-menu{z-index:10;border:1px solid var(--line);background:#11182b;border-radius:20px;width:300px;max-width:90vw;padding:12px;position:absolute;right:max(20px,50vw - 580px);box-shadow:0 20px 80px #000b}.tool-menu a{border-radius:10px;align-items:center;gap:18px;padding:12px;display:flex}.tool-menu a:hover{background:#ffffff08}.tool-menu span{color:var(--gold);width:28px;font-size:22px}main{max-width:1160px;margin:auto;padding:0 24px}.hero{text-align:center;padding:65px 12px 38px}.eyebrow,.section-kicker{letter-spacing:2.4px;color:var(--gold);font-size:11px;font-weight:600}.eyebrow span{margin-right:8px}.lead{max-width:620px;margin:18px auto 20px;font-size:17px;line-height:1.7}.trust-line{color:#b1bcd2;flex-wrap:wrap;justify-content:center;gap:10px 24px;font-size:11px;display:flex}.workspace{grid-template-columns:minmax(0,400px) minmax(0,1fr);align-items:start;gap:24px;scroll-margin-top:20px;display:grid}.form-panel,.result-panel,.moon-tool{border:1px solid var(--line);background:linear-gradient(145deg,#11182ce8,#090d19ec);border-radius:24px;min-width:0;padding:26px;box-shadow:0 20px 70px #0003}.panel-heading{align-items:center;gap:10px;margin-bottom:22px;display:flex}.panel-heading h2{margin:0;font:500 18px Inter,PingFang SC,sans-serif}.step{color:var(--gold);border:1px solid #eac57e40;border-radius:50%;place-items:center;width:28px;height:28px;font-size:11px;display:grid}.private-mark{color:var(--teal);margin-left:auto;font-size:10px}.input-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px;display:grid}.check{align-items:center;gap:10px;font-weight:400;display:flex}.check input{margin:0}.hint{color:#a5afc6;margin-top:10px;font-size:12px;line-height:1.6}.centered{text-align:center}.primary{background:var(--gold);color:#18140d;border:0;justify-content:center;align-items:center;gap:25px;width:100%;min-height:52px;margin-top:24px;font-weight:600;display:flex;box-shadow:0 6px 28px #eac57e12}.primary:disabled{opacity:.7}.button-row{flex-wrap:wrap;gap:8px;display:flex}.button-row button{white-space:nowrap;flex:1;font-size:13px}.city-field{position:relative}.city-options{z-index:5;background:#151f35;border:1px solid #41516e;border-radius:12px;width:100%;max-height:260px;padding:6px;position:absolute;overflow:auto;box-shadow:0 14px 35px #0009}.city-options button{text-align:left;background:0 0;border:0;width:100%;font-size:14px;display:block}.city-options button small{color:var(--muted);font-size:11px;display:block}.city-options button:hover{background:#eac57e15}.form-error,.notice{color:#f3cd98;background:#e2ad6510;border:1px solid #e2ad6566;border-radius:12px;padding:14px;font-size:14px}.result-panel{text-align:center;min-height:560px;position:relative;overflow:hidden}.result-panel>h2{font-size:30px}.empty-chart{place-items:center;max-width:320px;height:320px;margin:auto;display:grid;position:relative}.empty-chart>span{color:var(--gold);text-shadow:0 0 40px #eac57e70;font-family:"Noto Sans Symbols 2",serif;font-size:68px}.orbit{border:1px solid #eac57e30;border-radius:50%;position:absolute;inset:10%;box-shadow:0 0 45px #eac57e05}.o1{border-style:dashed;animation:100s linear infinite orbit;inset:0}.o2{inset:12%;transform:rotate(30deg)}.o3{border-color:#7fe0da40;inset:24%}.orbit:before{content:"";background:var(--gold);width:7px;height:7px;box-shadow:0 0 15px var(--gold);border-radius:50%;position:absolute;top:-4px;left:50%}.result-note{letter-spacing:1.2px;color:var(--gold);margin-top:32px;font-size:11px}.big-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0;display:grid}.big-card{background:#ffffff04;border:1px solid #ffffff0e;border-radius:14px;min-width:0;padding:15px 6px;container-type:inline-size}.big-card>span{color:var(--gold);font-family:"Noto Sans Symbols 2",serif;font-size:28px}.big-card:nth-child(2)>span{color:var(--teal)}.big-card small{color:var(--muted);letter-spacing:1px;font-size:10px;display:block}.big-card strong{overflow-wrap:anywhere;font-family:Fraunces,PingFang SC,serif;font-size:clamp(13px,19cqi,22px);font-weight:400;display:block}.big-card p{margin:5px 0 0;font-size:11px}.wheel{width:100%;height:auto;display:block;overflow:visible}.wheel-stage{filter:drop-shadow(0 0 28px #eac57e0b);max-width:530px;margin:auto;position:relative}.wheel-stage:before{content:"";pointer-events:none;background:radial-gradient(circle,#33446930,#0000 70%);position:absolute;inset:14%}.wheel .planet-node{cursor:pointer;outline:0}.wheel .planet-node:focus-visible circle,.wheel .planet-node:hover circle,.wheel .planet-node.active circle{stroke:#fff;stroke-width:2.5px;filter:drop-shadow(0 0 5px #eac57e)}.wheel .aspect-line{transition:opacity .2s}.wheel .planet-node text{font-family:Noto Sans Symbols,"Noto Sans Symbols 2",serif}.chart-details{text-align:left}.result-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.result-heading h2{margin:0;font-size:25px}.badge{color:var(--gold);border:1px solid #eac57e35;border-radius:99px;padding:5px 9px;font-size:10px}.planet-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:16px 0;display:grid}.planet-row{text-align:left;background:#ffffff03;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:10px;font-size:12px;display:flex}.planet-row span:last-child{color:var(--gold);text-align:right}.selected-planet{text-align:left;background:#eac57e08;border:1px solid #eac57e22;border-radius:14px;margin-top:14px;padding:16px;font-size:14px}.aspect-list{margin:0;padding:0;font-size:13px;list-style:none}.aspect-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:15px;padding:10px 0;display:flex}.aspect-list small{color:var(--muted);white-space:nowrap}.moon-workspace{max-width:780px;margin:auto;display:block}.moon-tool{text-align:center;padding:26px}.date-bar{grid-template-columns:46px minmax(0,1fr) 46px auto;gap:8px;max-width:510px;margin:auto;display:grid}.date-bar button{padding:8px}.date-bar input{text-align:center;min-width:0}.moon-settings{text-align:left;gap:12px;max-width:510px;margin:8px auto 0;display:flex}.moon-settings label{flex:1;min-width:0}.moon-settings label:first-child{flex:1.5}.moon-settings select{font-size:13px}.moon-stage{aspect-ratio:1;place-items:center;width:100%;max-width:470px;margin:0 auto;display:grid;position:relative}.moon-stage:before{content:"";border:1px solid #eac57e15;border-radius:50%;position:absolute;inset:2%;box-shadow:0 0 60px #889cda10,inset 0 0 60px #889cda10}.moon-stage:after{content:"";pointer-events:none;border-radius:50%;position:absolute;inset:10%;box-shadow:0 0 45px #b6c7ea12}.moon-canvas{filter:drop-shadow(0 0 16px #bbc9e516);border-radius:50%;width:78%;height:78%}.moon-label{letter-spacing:4px;color:#8995ae;font-size:9px;position:absolute;top:8%;left:0;right:0}.phase-title{margin:0 0 8px;font-size:38px}.moon-meta{justify-content:center;gap:35px;margin:25px 0;display:flex}.moon-meta strong{color:var(--text);font-family:Fraunces,serif;font-size:32px;font-weight:400;display:block}.moon-meta span{color:var(--muted);font-size:11px}.event-grid{grid-template-columns:1fr 1fr;gap:10px;margin:22px 0;display:grid}.event-card{text-align:left;border:1px solid var(--line);background:#ffffff03;border-radius:14px;padding:18px}.event-card>span{color:var(--gold);font-size:12px}.event-card strong{margin-top:10px;font-size:14px;font-weight:500;display:block}.calendar{border-top:1px solid var(--line);margin-top:26px;padding-top:24px}.calendar h3{text-align:left;font-size:17px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-grid>small{color:var(--muted);padding:8px 0;font-size:10px}.calendar-day{background:0 0;border-color:#0000;min-width:0;min-height:62px;padding:6px 1px;font-size:11px}.calendar-day span{font-size:20px;display:block}.calendar-day.active{border-color:var(--gold);background:#eac57e0a}.moon-credit{color:#9ca9c0;font-size:10px}.timeline{text-align:left}.timeline article{border-left:1px solid #eac57e55;margin-left:5px;padding:8px 0 15px 20px;position:relative}.timeline article:before{content:"";background:var(--gold);border-radius:50%;width:7px;height:7px;position:absolute;top:16px;left:-4px}.timeline strong{font-weight:500;display:block}.timeline small{color:var(--muted)}.return-graph{width:100%;margin:24px 0}.zodiac-animal{margin:25px 0;font-size:100px}.zodiac-title{color:var(--gold);font-size:44px}.editorial,.related{max-width:960px;margin:85px auto 0}.editorial>h2{max-width:620px;margin:12px 0 35px}.explain-grid{grid-template-columns:1fr 1fr;gap:40px;display:grid}.article-number{color:var(--gold);margin-bottom:15px;font:italic 18px Fraunces,serif;display:block}.explain-grid p,.method-summary p,.example p{font-size:15px;line-height:1.9}.example{background:linear-gradient(90deg,#eac57e09,#0000);border-left:2px solid #eac57e70;margin:30px 0;padding:24px 30px}.example>span{color:var(--gold);font-size:12px}.example p{margin:12px 0 0}.method-summary{padding:25px 0}.method-summary a{color:var(--gold);font-size:13px}.faq{margin-top:35px}.faq h2{font-size:30px}.faq details{padding:12px 0}.faq summary{font-size:16px}.faq p{font-size:15px;line-height:1.9}.related h2{font-size:34px}.related-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.related-grid a{border:1px solid var(--line);background:#0c112288;border-radius:15px;align-items:center;gap:12px;padding:18px 14px;font-size:13px;display:flex}.related-grid a>span{color:var(--gold);font-size:26px}.related-grid a small{color:#93a0b8;margin-top:5px;font-size:9px;display:block}.related-grid a b{color:#8b97ad;margin-left:auto;font-weight:400}footer{border-top:1px solid var(--line);max-width:1160px;margin:85px auto 0;padding:35px 24px 55px}footer>p{max-width:660px;margin:12px 0;font-size:13px}.footer-links{flex-wrap:wrap;gap:10px 24px;margin:25px 0;font-size:13px;display:flex}footer small{color:#8996ad;font-size:11px}.bottom-nav{display:none}.sr-only,.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.skip:focus{z-index:50;background:var(--gold);color:#000;padding:10px;position:fixed;top:10px;left:10px}.legal{max-width:760px;margin:55px auto}.legal h1{margin-bottom:30px;font-size:46px}.legal h2{margin-top:35px;font-size:26px}.legal p,.legal li{color:var(--muted);line-height:1.9}.legal a{color:var(--gold)}.loading{color:var(--gold);padding:80px 10px}[hidden]{display:none!important}.result-reveal{animation:.5s ease-out reveal}.is-paused *{animation-play-state:paused!important}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (width<=900px){.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{grid-template-columns:minmax(0,350px) minmax(0,1fr)}.form-panel,.result-panel{padding:20px}.planet-list{grid-template-columns:1fr}.hero{padding-top:45px}}@media (width<=700px){.site-header{padding:12px 20px}.brand{font-size:21px}.brand-symbol{font-size:26px}main{padding:0 16px}.hero{padding:34px 5px 28px}.eyebrow{letter-spacing:1.6px;font-size:9px}h1{margin:15px auto;font-size:39px;line-height:1.1}.lead{margin:16px auto;font-size:14px;line-height:1.8}.trust-line{gap:8px 16px;font-size:10px}.workspace{display:block}.form-panel{border-radius:20px;padding:20px}.result-panel{border-radius:20px;min-height:0;margin-top:20px;padding:18px 12px}.result-panel:has(.empty-chart){padding-bottom:30px}.empty-chart{max-width:240px;height:250px}.result-panel>h2{font-size:27px}.result-panel>p{padding:0 10px;font-size:13px}.big-three{gap:6px}.big-card{padding:13px 5px}.big-card small{font-size:9px}.planet-list{grid-template-columns:repeat(2,minmax(0,1fr))}.planet-row{padding:10px 7px;font-size:11px}.result-heading{padding:0 5px}.result-heading h2{font-size:24px}.moon-tool{border-radius:20px;padding:18px 12px}.moon-settings{gap:8px}.moon-settings select{padding:10px 7px;font-size:12px}.moon-stage{margin:5px auto -2px}.phase-title{font-size:34px}.moon-meta{gap:25px}.moon-meta strong{font-size:29px}.event-card{padding:14px 12px}.event-card strong{font-size:12px}.date-bar{grid-template-columns:42px minmax(0,1fr) 42px auto;gap:5px}.date-bar button{font-size:13px}.date-bar input{padding:8px 5px;font-size:14px}.explain-grid{grid-template-columns:1fr;gap:20px}.editorial,.related{margin-top:55px}.editorial>h2{margin-bottom:25px;font-size:33px}.example{padding:20px}.related-grid a{gap:8px;padding:15px 10px}.related-grid a>span{font-size:23px}.related-grid a small{font-size:8px}.related h2{font-size:30px}.bottom-nav{z-index:9;padding:8px 8px calc(8px + env(safe-area-inset-bottom));backdrop-filter:blur(16px);background:#090d19f2;border-top:1px solid #293247;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a,.bottom-nav button{color:#b8c3d9;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;min-height:44px;padding:3px;font-size:10px;line-height:1.5;display:flex}.bottom-nav span{color:var(--gold);margin-bottom:4px;font-size:24px;line-height:1.2;display:block}footer{margin-top:55px;padding-bottom:120px}.legal h1{font-size:36px}.legal{margin-top:35px}.tool-menu{max-height:calc(100dvh - 160px);position:fixed;top:70px;right:16px;overflow:auto}.calendar-day{min-height:60px}.faq summary{font-size:15px}.moon-credit{font-size:9px}.chart-details{padding:0 5px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
