@font-face{font-family:Cormorant;src:url('/fonts/cormorant-garamond-regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--bg:#090a09;--panel:#101210;--line:#2a302a;--text:#e6e8df;--muted:#9bA497;--accent:#c1d2ac;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft Yahei",sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}header,footer{max-width:1256px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:32px 48px;color:var(--muted);font-size:12px}header{border-bottom:1px solid #20251f}.wordmark,footer a{font-family:Cormorant,Georgia,serif;font-size:27px;color:var(--text)}main{max-width:1160px;margin:auto;padding:58px 0 30px}.intro{margin-bottom:48px}.eyebrow{font-family:Cormorant,Georgia,serif;font-size:24px;color:var(--accent);margin-bottom:14px}h1{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:64px;letter-spacing:.12em;font-weight:400;margin:0 0 23px;line-height:1.15}.title-dot{color:var(--accent)}.intro p{font-size:17px;letter-spacing:.08em;margin:10px 0}.intro .intro-note{font-size:13px;color:var(--muted);letter-spacing:.03em}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);border:1px solid var(--line)}.input-panel{padding:28px;border-right:1px solid var(--line);background:var(--panel)}h2{font-size:15px;font-weight:400;margin:0;letter-spacing:.07em}.step{color:var(--muted);font-family:Cormorant,Georgia,serif;font-size:19px;letter-spacing:0;margin-right:12px}label{display:block;font-size:13px;margin:25px 0 10px}label span{color:var(--muted);float:right;font-size:11px}input,select{display:block;width:100%;max-width:100%;height:43px;border:1px solid #3a4238;background:#151914;color:var(--text);padding:0 11px;border-radius:4px;font:14px inherit;font-family:inherit;font-size:13px}input:focus,select:focus{outline:1px solid var(--accent);border-color:var(--accent)}small{display:block;color:var(--muted);line-height:1.7;font-size:11px;margin-top:8px}.options{margin-top:22px;font-size:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;padding:18px 0}summary::-webkit-details-marker{display:none}summary:after{content:'+';float:right;font-size:18px;line-height:1;color:var(--muted)}details[open]>summary:after{content:'−'}.options label{margin-top:0}.options p{line-height:1.8;color:var(--muted);font-size:12px}.primary{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--accent);color:#172011;padding:15px 17px;border:0;border-radius:4px;font-size:14px;cursor:pointer;margin-top:20px}.primary:hover{background:#d5e2c5}.primary:disabled{opacity:.6;cursor:wait}.primary span{font-size:20px}.privacy{font-size:10px;text-align:center;color:var(--muted);line-height:1.8;margin:12px 0 0}.error{color:#edb7a4;line-height:1.8;font-size:12px}.error:empty{display:none}.output-panel{padding:28px 36px;min-width:0}.result-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px;gap:12px}.result-heading>span{font-size:11px;color:var(--muted)}.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));text-align:center}.pillars>div{border-right:1px solid var(--line);padding:0 8px}.pillars>div:last-child{border:0}.pillars h3{font-size:12px;letter-spacing:.12em;font-weight:400;color:var(--muted);margin:0 0 28px}.pillars b{font-family:"Songti SC","Noto Serif CJK SC",serif;display:block;font-size:55px;font-weight:400;line-height:1.15;margin:14px 0}.pillars .char-meta{font-size:11px;color:var(--muted);display:block;margin-bottom:25px}.pillars .day h3{color:var(--accent)}.pillars .day b:first-of-type{color:var(--accent)}.empty-pillars{margin-top:80px;color:#45503f}.empty-pillars b{font-size:42px;margin:23px 0}.empty-note{font-size:12px;color:var(--muted);text-align:center;line-height:2.1;margin:47px 0 0}.quiet-line{margin-top:80px;border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-around;color:#929d8c;font-size:11px}.birth-caption{font-size:12px;color:var(--muted);line-height:1.9;margin:-12px 0 28px;overflow-wrap:anywhere}.result-note{margin:25px 0;font-size:12px;line-height:1.9;color:var(--muted)}.result-note strong{font-weight:400;color:var(--text)}.element-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.element-grid div{display:flex;justify-content:center;align-items:center;gap:12px}.element-grid span{color:var(--muted);font-size:12px}.element-grid b{font-family:Cormorant,serif;font-weight:400;font-size:27px}.subnote{color:var(--muted);font-size:11px;line-height:1.8}.basis{margin-top:25px;border-top:1px solid var(--line);font-size:12px}.basis p{color:var(--muted);line-height:1.9}.basis dl{display:grid;grid-template-columns:75px 1fr;gap:14px 12px;font-size:12px;line-height:1.7}.basis dt{color:var(--muted)}.basis dd{margin:0;overflow-wrap:anywhere}.warnings{border-left:2px solid #a39470;padding:2px 0 2px 16px;margin-top:25px}.warnings p{color:#d3c8ab;font-size:12px;line-height:1.9}.alternatives{margin:15px 0}.alternative{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:12px;line-height:2;margin:8px 0}.alternative span{color:var(--muted)}.alternative b{font-weight:400;letter-spacing:.08em}.reading{margin-top:60px;display:grid;grid-template-columns:340px 1fr}.reading-head{grid-row:1/5;padding-right:40px}.reading-head h2{font-family:"Songti SC",serif;font-size:23px}.reading-head p{color:var(--muted);font-size:12px;line-height:1.9}.reading>details{border-top:1px solid var(--line);padding:0 4px}.reading>details:last-child{border-bottom:1px solid var(--line)}.reading summary{font-size:13px;padding:23px 0}.reading details p{color:var(--muted);font-size:13px;line-height:2;margin:0 24px 18px 0}.reading details a{color:var(--accent)}.sources{padding:0 24px 0 0;list-style:none}.sources li{margin:0 0 20px;font-size:13px;line-height:1.8}.sources span{display:block;color:var(--muted);font-size:12px;margin-top:4px}footer{margin-top:40px;border-top:1px solid #20251f;padding-top:30px;padding-bottom:40px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}::selection{background:#c1d2ac;color:#090a09}
@media(max-width:1256px){main{padding-left:40px;padding-right:40px}}@media(max-width:850px){.workspace{grid-template-columns:300px minmax(0,1fr)}.input-panel{padding:22px}.output-panel{padding:24px 20px}.pillars b{font-size:43px}.reading{grid-template-columns:300px 1fr}.reading-head{padding-right:25px}}@media(max-width:720px){header,footer{padding:22px 24px}header>span{font-size:10px}.wordmark{font-size:24px}main{padding:36px 20px 0}.intro{margin-bottom:30px}h1{font-size:52px}.intro p{font-size:15px}.workspace{display:block}.input-panel{border-right:0;border-bottom:1px solid var(--line);padding:24px}.output-panel{padding:26px 18px}.result-heading{margin-bottom:30px}.empty-pillars{margin-top:40px}.quiet-line{margin-top:40px;font-size:10px}.pillars b{font-size:43px}.pillars h3{font-size:11px}.pillars .char-meta{font-size:10px}.birth-caption{font-size:11px}.reading{display:block;margin-top:40px}.reading-head{margin-bottom:24px}.reading-head p{margin-top:12px}.reading summary{font-size:12px}.reading details p{font-size:12px}footer{margin-top:35px;gap:16px}footer span{font-size:10px}footer a{font-size:22px}.element-grid div{gap:8px}.alternative{display:block}.alternative b{display:block}}
/* Detailed chart and linked calendar views. */
:root{--wood:#acc99b;--fire:#dcaa99;--earth:#d4be86;--metal:#d8d8d1;--water:#9ebfce}
[data-element="木"]{color:var(--wood)}[data-element="火"]{color:var(--fire)}[data-element="土"]{color:var(--earth)}[data-element="金"]{color:var(--metal)}[data-element="水"]{color:var(--water)}
.birth-meta{display:flex;gap:10px 22px;flex-wrap:wrap;font-size:12px;color:var(--text);line-height:1.8}.natal-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px;text-align:center;margin-top:24px}.natal-table thead th{padding:14px 3px;color:var(--muted);font-weight:400;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.natal-table th:first-child{width:66px;text-align:left}.natal-table tbody th{color:var(--muted);font-size:11px;font-weight:400}.natal-table td{padding:13px 4px;border-bottom:1px solid #242a23;vertical-align:top;line-height:1.7}.natal-table tbody th{border-bottom:1px solid #242a23}.natal-table .day-cell{background:#141a12}.natal-table .character-row td{padding:15px 3px}.character-row b{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:44px;font-weight:400;line-height:1.2}.character-row small{font-size:10px;margin:5px 0 0}.stack{display:block;min-height:25px}.stack small{display:inline;margin-left:5px;font-size:10px}.term-link{font:inherit;color:inherit;border:0;background:transparent;padding:3px 0;cursor:pointer;text-align:left;line-height:1.6}.term-link>span{color:var(--muted);font-size:10px}.term-link:hover{color:var(--accent)}.star-tag{font-size:11px;display:block;color:#b5bba9;margin:0 0 4px}.muted{color:var(--muted)}
.section-nav{display:flex;gap:32px;flex-wrap:wrap;padding:25px 0 0;font-size:12px;color:var(--muted)}.section-nav a{padding:8px 0;border-bottom:1px solid var(--line)}.detail-section{margin-top:42px;border:1px solid var(--line);padding:30px 34px;background:#0c0e0b;scroll-margin-top:25px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:24px}.section-heading>span,.section-heading>.term-link{color:var(--muted);font-size:11px}.detail-section h3{font-size:14px;font-weight:400;margin:0 0 20px;line-height:1.7}.structure-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}.element-bars>div{display:grid;grid-template-columns:25px minmax(0,1fr) 20px 45px;gap:16px;align-items:center;margin:18px 0}.element-bars progress{appearance:none;display:block;width:100%;height:5px;border:0;border-radius:5px;background:#242c21;accent-color:var(--accent)}.element-bars progress::-webkit-progress-bar{background:#242c21;border-radius:5px}.element-bars progress::-webkit-progress-value{background:var(--accent);border-radius:5px}.element-bars progress::-moz-progress-bar{background:var(--accent);border-radius:5px}.element-bars b{font-family:Cormorant,serif;font-size:25px;font-weight:400}.element-bars small{margin:0;text-align:right}.month-structure p{color:var(--muted);line-height:1.8;font-size:13px}.month-structure strong{font-weight:400;color:var(--text)}.month-structure ul{padding:0;list-style:none}.month-structure li{display:grid;grid-template-columns:25px 45px 1fr;gap:15px;margin:12px 0;line-height:1.7;font-size:12px}.month-structure li b{font-weight:400}.month-structure li span:last-child{color:var(--muted)}.detail-disclosure{margin-top:23px;border-top:1px solid var(--line)}.detail-disclosure>summary{font-size:12px;padding:20px 0}.table-scroll{overflow:auto;max-width:100%}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;line-height:1.8}.data-table th,.data-table td{padding:12px 16px 12px 0;border-bottom:1px solid var(--line);font-weight:400;vertical-align:top}.data-table thead th{color:var(--muted);white-space:nowrap}.data-table tbody th{min-width:65px}.data-table td{color:#c4cbbf}.data-table caption{caption-side:top;text-align:left;font-size:11px;color:var(--muted);padding:0 0 14px}.compare-table{min-width:580px}
.luck-summary{display:grid;grid-template-columns:.65fr 1.3fr 1.3fr;gap:25px;margin-bottom:24px}.luck-summary>div>span{display:block;color:var(--muted);font-size:11px}.luck-summary strong{display:block;font-size:15px;font-weight:400;margin:10px 0;line-height:1.7}.luck-summary small{font-size:10px}.period-scroll{display:flex;overflow:auto;gap:9px;padding:4px 2px 12px;scroll-snap-type:x proximity;scrollbar-width:thin}.period-card{flex:0 0 133px;scroll-snap-align:start;border:1px solid var(--line);background:#121610;color:var(--text);padding:17px 11px;cursor:pointer;border-radius:3px;text-align:center;font-family:inherit}.period-card strong{display:block;font-family:"Songti SC",serif;font-size:30px;font-weight:400;margin:14px 0}.period-card span{font-size:10px;display:block;color:var(--muted)}.period-card small{font-size:10px;white-space:nowrap;margin:0}.period-card small:last-child{margin-top:13px}.period-card:disabled{opacity:.4;cursor:default}.period-card[aria-pressed=true],.month-grid button[aria-pressed=true],.year-strip button[aria-pressed=true]{border-color:var(--accent);background:#20291b}.year-controls{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:36px}.year-controls h3{margin:0}.year-controls label{display:flex;align-items:center;gap:12px;margin:0;font-size:12px;color:var(--muted)}.year-controls select{width:110px}.year-strip{display:flex;gap:8px;overflow:auto;margin:20px 0;scrollbar-width:thin;padding-bottom:8px}.year-strip button{border:1px solid var(--line);background:#11150f;color:var(--text);border-radius:3px;cursor:pointer;font-size:12px;min-width:70px;flex:1;padding:12px 9px}.year-strip button span{display:block;color:var(--muted);font-size:12px;margin-top:8px}.year-caption{font-size:12px;line-height:2;color:var(--muted);margin:22px 0 30px}.year-caption strong{color:var(--text);font-size:15px;font-weight:400}.subheading{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.subheading h3{margin:0}.subheading>span{font-size:11px;color:var(--muted)}.month-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.month-grid button{display:block;min-width:0;padding:15px 6px;text-align:center;border:1px solid var(--line);background:#11150f;border-radius:3px;color:var(--text);cursor:pointer;font-family:inherit}.month-grid strong{display:block;font-family:"Songti SC",serif;font-size:24px;font-weight:400;margin:12px 0}.month-grid span{font-size:11px;color:#bac4b4;display:block}.month-grid small{font-size:10px;margin:8px 0 0;line-height:1.6}.month-grid small:first-child{margin:0}.period-detail{margin-top:26px;padding:22px 24px;background:#131810;border:1px solid var(--line)}.period-detail>h3{margin-bottom:12px}.period-detail>p{font-size:12px;line-height:1.9;color:var(--muted)}.period-detail .table-scroll{margin-top:25px}.empty-luck{border:1px dashed var(--line);padding:24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.empty-luck p{font-size:13px;margin:0}.empty-luck small{flex-basis:100%;margin:0}.secondary{font-family:inherit;font-size:12px;background:#1b2317;border:1px solid #58684d;color:var(--accent);padding:10px 15px;border-radius:3px;cursor:pointer}
.relation-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 35px}.relation-list li{display:grid;grid-template-columns:90px 60px 1fr;gap:12px;align-items:baseline;border-bottom:1px solid var(--line);padding:14px 0;font-size:12px;line-height:1.7}.relation-list strong{font-weight:400;letter-spacing:.08em}.relation-list li>span:last-of-type{color:var(--muted)}.relation-list small{grid-column:1/-1;margin:0;font-size:10px}.relation-type{color:#bac3b3}.supplement-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}.supplement-grid>div{border-right:1px solid var(--line);padding:5px 10px}.supplement-grid>div:last-child{border:0}.supplement-grid .term-link{font-size:12px;color:var(--muted)}.supplement-grid strong{display:block;font-size:27px;font-family:"Songti SC",serif;font-weight:400;margin:15px 0}.supplement-grid small{font-size:11px}.reading{margin-top:48px}dialog{max-width:470px;width:calc(100% - 40px);padding:30px;border:1px solid #526148;background:#131911;color:var(--text);border-radius:7px;box-shadow:0 20px 80px #0008}dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}dialog h2{font-family:"Songti SC",serif;font-size:25px;margin:6px 40px 20px 0}dialog p{font-size:14px;line-height:2;color:#b9c3b2}#term-close{position:absolute;right:18px;top:14px;background:none;border:0;color:var(--muted);font-size:27px;cursor:pointer;padding:8px}
@media(max-width:1000px){.structure-grid{gap:30px}.month-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.relation-list{grid-template-columns:1fr}.luck-summary{grid-template-columns:1fr 1.5fr}.luck-summary>div:last-child{grid-column:1/-1}.natal-table th:first-child{width:55px}.stack small{display:block;margin:0}.natal-table .stack{min-height:24px}}
@media(max-width:720px){.detail-section{padding:24px 18px;margin-top:28px}.section-heading{padding-bottom:20px;gap:12px}.section-heading h2{font-size:14px;line-height:1.8}.section-heading>span{font-size:10px;text-align:right}.section-nav{gap:8px 24px;justify-content:center;padding-top:20px}.section-nav a{font-size:11px}.structure-grid{grid-template-columns:1fr;gap:26px}.month-structure{border-top:1px solid var(--line);padding-top:24px}.natal-table{font-size:11px}.natal-table th:first-child{width:48px}.natal-table tbody th{font-size:10px}.natal-table .term-link>span{display:block;font-size:9px}.natal-table .character-row b{font-size:36px}.natal-table td{padding:11px 2px}.natal-table .character-row td{padding:13px 0}.natal-table .stack small{font-size:9px}.natal-table .star-tag{font-size:10px}.birth-meta{font-size:11px}.luck-summary{grid-template-columns:1fr;gap:20px}.luck-summary>div:last-child{grid-column:auto}.luck-summary strong{font-size:14px;margin:6px 0}.month-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.month-grid button{padding:12px 3px}.month-grid small{font-size:9px}.month-grid strong{font-size:23px}.period-detail{padding:18px 12px}.year-controls label{font-size:11px}.year-controls select{width:95px}.year-caption{font-size:11px}.relation-list li{grid-template-columns:80px 50px 1fr;gap:8px;font-size:11px}.supplement-grid{gap:0}.supplement-grid strong{font-size:24px}.supplement-grid>div{padding:0 4px}.supplement-grid small{font-size:10px}.supplement-grid .term-link{font-size:11px}.empty-luck{padding:20px}.empty-luck p{font-size:12px}.data-table{font-size:11px}.data-table th,.data-table td{padding:10px 13px 10px 0}.data-table td:last-child{min-width:130px}.detail-section .subnote{font-size:10px}.year-strip button{min-width:62px}.period-card{flex-basis:125px}}

.birth-profiles{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:23px;min-width:0}.birth-profiles>label{margin:0 0 8px;font-size:12px}.profile-note{font-size:11px;line-height:1.7;color:var(--muted);margin:8px 0 0;overflow-wrap:anywhere}.profile-note:empty{display:none}.profile-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.profile-actions button{font:inherit;font-size:11px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--accent);padding:8px 10px;cursor:pointer}.profile-actions button:hover,.profile-option:hover,.profile-option:focus-visible{background:#243027}.profile-results{border:1px solid var(--line);max-height:235px;overflow:auto;margin-top:10px}.profile-results>.profile-note{padding:10px;margin:0}.profile-option{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);color:inherit;padding:11px;cursor:pointer;overflow-wrap:anywhere}.profile-option strong{font-size:12px;font-weight:400}.profile-option small{display:block;font-size:10px;color:var(--muted);margin:3px 0 0;line-height:1.6}

.profile-tool-link{display:inline-block;margin-top:8px;font-size:11px;line-height:1.7;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
