@charset "UTF-8";
:root{--paper:#f5f3ec;--white:#fdfcf9;--ink:#262820;--muted:#727467;--line:#d8d8cc;--accent:#56634c;--rust:#a04332;--gold:#aa8e4c;--serif:'Hiragino Mincho ProN','Yu Mincho','Noto Serif CJK JP',serif;--sans:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.9}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,summary{ -webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.wrap{max-width:1200px;width:calc(100% - 96px);margin:auto}.header{height:96px;border-bottom:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:18px}.brand-en{font-family:Georgia,serif;font-size:27px;letter-spacing:.1em;line-height:1}.brand-jp{font-size:12px;letter-spacing:.1em;border-left:1px solid var(--line);padding-left:18px}.header nav{display:flex;gap:26px;font-size:12px}.header nav a:hover{color:var(--accent)}.private{font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:7px;color:var(--muted)}.private span{width:5px;height:5px;border-radius:50%;background:var(--accent)}.hero{display:grid;grid-template-columns:1.3fr .7fr;gap:80px;align-items:center;padding:64px 0 70px}.eyebrow,.step-label,.small-caps,.art-label,.art-footer,.role-grid article>span{font-size:10px;letter-spacing:.12em}.eyebrow{color:var(--muted);margin:0 0 22px}h1{font-family:var(--serif);font-weight:500;font-size:clamp(36px,4vw,56px);letter-spacing:.08em;line-height:1.6;margin:0 0 23px}h1 span{border-bottom:2px solid var(--gold);padding-bottom:7px}.intro{font-size:14px;line-height:2.1;margin:0 0 21px}.hero-note{font-size:12px;color:var(--muted);border-left:2px solid var(--line);padding-left:16px;line-height:1.85;margin-bottom:0}.hero-art{max-width:330px;width:100%;margin:auto;border:1px solid var(--line);padding:25px 28px 15px;background:linear-gradient(155deg,#f9f8f1,#edeedf);transform:rotate(2deg)}.art-label{font-size:9px;text-align:center;margin-bottom:23px;color:var(--accent)}.nine-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid #c5c7b7;border-top:1px solid #c5c7b7}.nine-grid>span{height:67px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #c5c7b7;border-bottom:1px solid #c5c7b7;font-family:var(--serif);font-size:23px;line-height:1.4}.nine-grid>span>span{font-family:var(--sans);font-size:8px;color:var(--muted)}.nine-grid .grid-center{background:var(--accent);color:white}.nine-grid .grid-center>span{color:#d2dac8}.hero-art p{font-family:var(--serif);font-size:12px;text-align:center;margin:19px 0}.art-footer{font-size:8px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:11px;color:var(--muted)}.tool-heading,.section-heading{display:flex;gap:16px;align-items:center}.tool-heading{margin-bottom:23px}.section-no{font-family:Georgia,serif;font-size:18px;color:var(--gold);border-bottom:1px solid var(--gold);line-height:1.5}.tool-heading h2,.section-heading h2{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:.05em;line-height:1.5;margin:0}.small-caps{margin-left:auto;color:var(--muted)}.workspace{display:grid;grid-template-columns:360px minmax(0,1fr);border:1px solid var(--line);background:var(--white);min-height:520px}.input-panel{padding:32px;border-right:1px solid var(--line)}.step-label{color:var(--muted);margin:0 0 23px}.date-fields{border:0;margin:0;padding:0}.date-fields legend{font-size:16px;font-weight:500;margin-bottom:16px}.date-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:9px}.date-row label{font-size:11px;display:block;margin-bottom:7px;color:var(--muted)}input[type=number],input[type=time],input[type=text],select,textarea{width:100%;min-width:0;background:#fdfcf9;border:1px solid #bfc2b4;border-radius:0;padding:12px 10px;line-height:1.5;min-height:47px}input::placeholder{color:#949789;font-size:12px}select{padding-right:3px}.field-help{font-size:11px;line-height:1.8;color:var(--muted);margin:12px 0 0}.options{margin-top:23px;border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}summary::-webkit-details-marker{display:none}summary::after{content:'＋';margin-left:auto;font-weight:300;font-size:16px;color:var(--muted)}details[open]>summary::after{content:'−'}.options summary{padding:14px 0;font-size:12px}.options summary>span{font-size:9px;color:var(--muted);border:1px solid var(--line);line-height:1.6;padding:0 4px}.option-body{padding-bottom:18px}.option-body>label{font-size:12px;display:block;margin:10px 0 8px}.optional{font-size:10px;color:var(--muted);margin-left:5px}.checkbox{display:flex;gap:8px;line-height:1.7;font-size:11px;margin-top:18px}.checkbox input{flex-shrink:0;align-self:flex-start;margin-top:5px}.sex-option{border:1px solid var(--line);padding:12px;margin:15px 0}.sex-option legend{font-size:11px}.sex-option .field-help{margin:0}.radio-row{display:flex;gap:9px;font-size:11px;flex-wrap:wrap;margin-top:10px}.radio-row label{display:flex;align-items:center;gap:2px}.primary{width:100%;background:var(--ink);color:var(--white);padding:14px 17px;border:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;font-size:14px;line-height:1.5;margin-top:14px;min-height:52px;transition:background .15s}.primary:hover{background:var(--accent)}.primary span{font-size:23px;font-weight:300}.sample-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;font-size:11px;color:var(--muted);display:block;margin:16px auto 0;padding:5px}.sample-button span{font-size:10px;display:block;text-decoration:none;color:var(--muted)}.privacy-note{font-size:10px;color:var(--muted);line-height:1.9;border-top:1px solid var(--line);padding-top:18px;margin:22px 0 0}.privacy-note span{margin-right:3px;color:var(--accent)}.results-panel{padding:32px 34px;min-width:0}.empty{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:430px;padding:15px 0}.empty-symbol{font-family:Georgia,serif;font-size:88px;font-weight:400;line-height:1;width:105px;height:105px;border-radius:50%;background:#f0f0e5;color:#a0a789;margin-bottom:23px}.empty .eyebrow{margin-bottom:15px;font-size:9px}.empty h3{font-family:var(--serif);font-size:25px;font-weight:500;letter-spacing:.05em;line-height:1.8;margin:0 0 16px}.empty p:not(.eyebrow){font-size:12px;color:var(--muted);margin:0}.empty-keys{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin-top:28px}.empty-keys span{border:1px solid var(--line);font-size:10px;padding:2px 9px;color:var(--muted)}.result-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:22px}.result-top .step-label{margin-bottom:8px}.result-top h3{font-family:var(--serif);font-size:25px;font-weight:500;margin:0;line-height:1.6;overflow-wrap:anywhere}.result-top h3:focus{outline:none}#result-birth{font-size:11px;color:var(--muted);margin:7px 0 0}.result-status{white-space:nowrap;border:1px solid var(--line);font-size:10px;line-height:1.6;padding:4px 8px;color:var(--accent)}.result-status.pending{color:var(--rust);border-color:#dcbcab}.boundary-note{background:#f8eee5;border-left:3px solid #bd7953;padding:14px 16px;font-size:12px;line-height:1.9;margin-bottom:18px}.boundary-note strong{display:block;font-weight:600;margin-bottom:5px}.candidate-group{margin:25px 0}.candidate-heading{font-size:13px;font-weight:500;margin:0 0 10px;display:flex;align-items:center;gap:8px}.candidate-heading::before{content:'';width:5px;height:5px;background:var(--gold)}.stars-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.star-card{border:1px solid var(--line);padding:17px;min-width:0;position:relative;overflow:hidden}.star-card.main-card{background:#f2f3e9}.star-label{margin:0;font-size:11px;display:flex;justify-content:space-between;align-items:center;gap:7px}.star-label span{font-size:9px;color:var(--muted)}.star-value{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.6;margin:11px 0 3px;letter-spacing:.015em}.star-tag{font-size:10px;color:var(--accent);margin:0}.star-description{font-size:11px;color:var(--muted);margin:10px 0 0;line-height:1.85}.maximum-card{grid-column:1/-1;background:#f4f0e5}.maximum-values{display:flex;gap:9px;flex-wrap:wrap;margin:13px 0}.maximum-chip{font-family:var(--serif);font-size:20px;line-height:1.6;border-bottom:1px solid var(--gold);padding:0 2px 4px}.maximum-card .star-description{margin:7px 0 0}.element{font-family:var(--sans);font-size:10px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#e9ebe0;margin-left:6px;vertical-align:middle}.element.water{background:#e6edef;color:#466269}.element.wood{background:#e4ebdb;color:#536947}.element.earth{background:#eee7d8;color:#79673a}.element.metal{background:#e9e9e4;color:#666651}.element.fire{background:#f1e2d9;color:#8d513c}.special-note{font-size:10px;color:var(--muted);margin:12px 0;line-height:1.8}.result-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:23px}.secondary{border:1px solid var(--ink);background:transparent;padding:11px 16px;font-size:12px;display:flex;gap:25px;align-items:center;min-height:45px}.secondary:hover{background:var(--paper)}.text-button{border:0;background:none;padding:10px 0;font-size:11px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}.calculation-detail{margin-top:23px;border-top:1px solid var(--line);padding-top:12px}.calculation-detail summary{font-size:11px}.calculation-detail p{font-size:11px;color:var(--muted);line-height:1.9;margin:10px 0}.direction-note{font-size:10px;color:var(--muted);line-height:1.9;margin-top:14px}.error{font-size:12px;color:#9c3529;line-height:1.8;background:#faf0e9;padding:10px 12px}.stale-note{font-size:11px;background:#f5f0dd;padding:10px 12px;color:#6f622e}.manual-copy{margin-top:18px}.manual-copy label{display:block;font-size:11px;margin-bottom:7px}.manual-copy textarea{font-size:12px;resize:vertical}.section-heading{margin-bottom:20px}.explain{padding:75px 0 62px}.section-lead{font-size:13px;color:var(--muted);line-height:2;margin-bottom:26px}.role-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.role-grid article{padding:23px 18px;border-right:1px solid var(--line)}.role-grid article:first-child{padding-left:0}.role-grid article:last-child{border-right:none}.role-grid article>span{font-size:8px;color:var(--muted)}.role-grid h3{font-family:var(--serif);font-size:21px;font-weight:500;margin:13px 0 2px}.role-grid .role-tag{font-size:11px;color:var(--accent);margin:0 0 14px}.role-grid p:not(.role-tag){font-size:11px;line-height:1.95;color:var(--muted);margin:0}.role-grid .month-role{background:#eceee3}.method{padding:56px 0 64px}.method-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.method-grid h3{font-size:14px;font-weight:500;line-height:1.8;margin:7px 0 12px}.method-grid p{font-size:12px;line-height:2;color:var(--muted);margin:0}.rule-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:30px}.rule-details summary{padding:17px 0;font-size:12px}.rule-body{padding:0 0 20px;max-width:900px}.rule-body p,.rule-body li{font-size:11px;line-height:2;color:var(--muted)}.rule-body ul{padding-left:18px}.rule-body a{border-bottom:1px solid var(--line)}.footer{border-top:1px solid var(--ink);padding:26px 0 37px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer .brand-en{font-size:20px}.footer p,.footer>span{font-size:10px;color:var(--muted);margin:0}.skip{position:absolute;top:-70px;left:20px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.noscript{position:fixed;bottom:0;padding:20px;background:#fff4e0;width:100%;text-align:center}
@media (min-width:1440px){.hero{padding-top:76px;padding-bottom:82px}}
@media (max-width:1050px){.wrap{width:calc(100% - 64px)}.header nav{gap:15px}.brand-jp{display:none}.hero{gap:40px}.workspace{grid-template-columns:320px minmax(0,1fr)}.input-panel{padding:27px}.results-panel{padding:27px}.star-value{font-size:21px}.role-grid article{padding:20px 14px}.role-grid h3{font-size:18px}}
@media (max-width:780px){.wrap{width:calc(100% - 40px)}.header{height:75px}.header nav{display:none}.brand-jp{display:block;font-size:10px;padding-left:12px}.brand{gap:12px}.brand-en{font-size:24px}.private{font-size:9px}.hero{padding:37px 0 42px;gap:25px;grid-template-columns:1fr 150px;align-items:center}.hero .eyebrow{font-size:8px;letter-spacing:.05em;margin-bottom:17px}h1{font-size:32px;margin-bottom:20px;line-height:1.6;letter-spacing:.02em}.intro{font-size:12px;line-height:2}.hero-note{font-size:11px}.hero-art{padding:13px 12px 10px;align-self:start;margin-top:36px}.art-label{font-size:6px;letter-spacing:.08em;margin-bottom:12px}.nine-grid>span{height:35px;font-size:15px}.nine-grid>span>span{font-size:6px}.hero-art p{font-size:8px;margin:12px 0}.art-footer{font-size:5px;letter-spacing:.03em;padding-top:7px}.tool-heading{gap:12px}.tool-heading h2,.section-heading h2{font-size:22px}.small-caps{font-size:8px;letter-spacing:.02em}.workspace{grid-template-columns:1fr}.input-panel{border-right:0;border-bottom:1px solid var(--line);padding:25px}.date-row{grid-template-columns:1.5fr 1fr 1fr;gap:13px}.date-row input,.date-row select{font-size:16px}.primary{margin-top:16px}.privacy-note{padding-top:14px;margin-top:18px}.sample-button span{display:inline;margin-left:8px}.results-panel{padding:27px 25px}.empty{min-height:290px}.empty-symbol{font-size:65px;width:80px;height:80px;margin-bottom:16px}.empty h3{font-size:21px;margin-bottom:12px}.empty .eyebrow{margin-bottom:10px}.empty-keys{margin-top:20px}.star-value{font-size:23px}.star-card{padding:16px}.explain{padding:48px 0 41px}.role-grid{grid-template-columns:1fr 1fr}.role-grid article{padding:20px 16px;border-bottom:1px solid var(--line)}.role-grid article:first-child{padding-left:16px}.role-grid article:nth-child(2n){border-right:0}.role-grid article:last-child{grid-column:1/-1;border-bottom:0}.role-grid h3{font-size:21px}.role-grid article>span{font-size:9px}.method{padding:40px 0}.method-grid{grid-template-columns:1fr;gap:25px}.footer{gap:12px;flex-wrap:wrap;padding-bottom:25px}.footer>span{display:none}}
@media (max-width:420px){.wrap{width:calc(100% - 32px)}.brand-jp{display:none}.hero{grid-template-columns:1fr 112px;gap:12px}.hero-art{padding:11px 8px;margin-top:33px}.nine-grid>span{height:29px;font-size:13px}.art-label{font-size:5px}.hero-art p{font-size:7px}.art-footer{display:none}.hero-copy .eyebrow{font-size:7px}.intro{font-size:11px}.hero-note{font-size:10px;padding-left:10px}h1{font-size:30px}.input-panel,.results-panel{padding:22px 18px}.small-caps{display:none}.star-card{padding:13px 11px}.star-value{font-size:21px}.star-label span{font-size:8px}.star-description{font-size:10px}.result-top h3{font-size:22px}.maximum-chip{font-size:19px}.result-status{font-size:9px;padding:3px 5px}.element{width:18px;height:18px;font-size:8px}.result-actions{gap:10px}.secondary{padding:11px 12px;gap:12px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{.header nav,.private,.input-panel,.result-actions,.method,.hero,.explain,.footer,.calculation-detail,.empty,.tool-heading,.manual-copy{display:none!important}.workspace{display:block;border:0}.wrap{width:100%;max-width:none}.results-panel{padding:0}.star-card{break-inside:avoid}body{background:white;color:black}.boundary-note{border:1px solid black}.direction-note{font-size:10px}}

/* Hero illustration layout. */
.hero-art.oneko-art{max-width:380px;border:0;padding:0;background:transparent;transform:none;margin:0 auto;align-self:center}
.oneko-image{display:block;width:100%;height:auto;overflow:hidden;aspect-ratio:1;object-fit:contain}
.oneko-art figcaption{font-family:var(--serif);font-size:12px;text-align:center;letter-spacing:.08em;color:var(--muted);margin-top:16px}
@media (max-width:780px){.hero-art.oneko-art{margin-top:25px;align-self:start}.oneko-art figcaption{font-size:9px;letter-spacing:.02em;line-height:1.8;margin-top:10px}}
@media (max-width:420px){.oneko-art figcaption{font-size:8px}}
