:root{--bg-main:#fff;--bg-card:#fafafa;--border-color:#e0e0e0;--border-light:#f0f0f0;--text-primary:#1a1a1a;--text-secondary:#555;--text-dim:#999;--accent:#666;--font-body:system-ui, -apple-system, "Segoe UI", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--font-display:Georgia, "Times New Roman", "Hiragino Mincho ProN", serif;--font-mono:ui-monospace, "SF Mono", "Consolas", monospace;--aura-hue:270;--aura-color:hsl(var(--aura-hue), 50%, 50%);--aura-light:hsl(var(--aura-hue), 40%, 92%)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-main);-webkit-text-size-adjust:100%;min-height:100vh;font-weight:400;line-height:1.8}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:35vh;padding:3rem 1.5rem 1.5rem;display:flex}.hero-sigil{border:1.5px solid var(--border-color);border-radius:50%;width:70px;height:70px;margin-bottom:1.2rem;position:relative}.hero-sigil:before{content:"";border:1px solid var(--text-dim);border-radius:50%;position:absolute;top:20%;bottom:20%;left:20%;right:20%}.hero-sigil:after{content:"✦";color:var(--text-dim);justify-content:center;align-items:center;font-size:1.1rem;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.hero-title{font-family:var(--font-display);letter-spacing:.3em;color:var(--text-primary);font-size:clamp(1.6rem,5vw,3rem);font-weight:400}.hero-sub{color:var(--text-secondary);letter-spacing:.12em;margin-top:.4rem;font-size:clamp(.75rem,2.5vw,.9rem);font-weight:300}.main-container{max-width:880px;margin:0 auto;padding:0 1rem 4rem}.input-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem}.section-title{font-family:var(--font-display);letter-spacing:.12em;color:var(--text-primary);margin-bottom:.4rem;font-size:1.2rem;font-weight:400}.section-desc{color:var(--text-secondary);margin-bottom:1.2rem;font-size:.78rem;line-height:1.6}.form-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.8rem;margin-bottom:1.2rem;display:grid}.form-group label{color:var(--text-secondary);margin-bottom:.25rem;font-size:.75rem;font-weight:500;display:block}.label-en{color:var(--text-dim);font-size:.6rem}.form-group input[type=text],.form-group input[type=number],.form-group select{border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-body);background:#fff;border-radius:5px;padding:.55rem .7rem;font-size:1rem;transition:border-color .2s}.form-group input[type=number]{-moz-appearance:textfield}.form-group input[type=number]::-webkit-inner-spin-button{-webkit-appearance:inner-spin-button;opacity:1;height:auto}.form-group input[type=number]::-webkit-outer-spin-button{-webkit-appearance:inner-spin-button;opacity:1;height:auto}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group select:focus{border-color:var(--accent);outline:none}.checkbox-label{cursor:pointer;align-items:center;gap:.5rem;padding-top:.8rem;display:flex!important}.checkbox-label input[type=checkbox]{-webkit-appearance:checkbox;appearance:checkbox;cursor:pointer;width:18px;height:18px}.form-group select{-webkit-appearance:menulist;appearance:menulist}.generate-btn{background:var(--text-primary);color:#fff;width:100%;max-width:260px;font-family:var(--font-body);letter-spacing:.12em;cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:6px;margin:0 auto;padding:.75rem 1.2rem;font-size:.95rem;transition:opacity .2s;display:block}.generate-btn:hover{opacity:.85}.generate-btn:active{opacity:.7}.loading{text-align:center;padding:2.5rem 0}.loading-sigil{border:2px solid var(--border-color);border-top-color:var(--text-primary);border-radius:50%;width:36px;height:36px;margin:0 auto .8rem;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);font-size:.82rem}.results{grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;display:grid}.result-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1.2rem;animation:.5s ease-out both fadeUp}.result-card.wide{grid-column:1/-1}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.card-title{font-family:var(--font-display);letter-spacing:.08em;color:var(--text-primary);border-bottom:1px solid var(--border-light);margin-bottom:.8rem;padding-bottom:.4rem;font-size:1.05rem;font-weight:400}.card-title-jp{font-family:var(--font-body);color:var(--text-dim);margin-left:.3rem;font-size:.65rem;font-weight:300}.card-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.8}.soul-number-display{text-align:center;margin:.8rem 0}.soul-number-value{font-family:var(--font-display);font-size:3rem;font-weight:400}.aura-color-display{border-radius:6px;width:100%;height:50px;margin:.6rem 0}.aura-color-name{font-family:var(--font-display);text-align:center;color:var(--text-primary);letter-spacing:.08em;margin-bottom:.5rem;font-size:1rem}#fiveElementsCanvas,#natalChartCanvas,#sigilCanvas,#seimeiCanvas{max-width:100%;height:auto;margin:0 auto;display:block}#sigilCanvas{max-height:70vh}.elements-text,.chart-text,.ziwei-text{color:var(--text-secondary);margin-top:.8rem;font-size:.8rem;line-height:1.8}.chart-text{columns:2;column-gap:1.5rem}.ziwei-grid{background:var(--border-color);border:1px solid var(--border-color);border-radius:4px;grid-template-rows:repeat(4,auto);grid-template-columns:repeat(4,1fr);gap:1px;margin:.8rem 0;display:grid;overflow:hidden}.ziwei-cell{min-height:50px;color:var(--text-secondary);background:#fff;padding:.4rem;font-size:.68rem}.ziwei-cell-palace{color:var(--text-dim);margin-bottom:.15rem;font-size:.58rem}.ziwei-cell-daxian{color:var(--text-dim);letter-spacing:.02em;margin-bottom:.1rem;font-size:.5rem}.ziwei-cell-daxian.current{color:var(--aura-color);font-weight:600}.ziwei-cell.daxian-current{background:var(--aura-light)}.ziwei-cell-stars{color:var(--text-primary);font-size:.72rem;font-weight:500}.ziwei-cell.center{color:var(--text-dim);text-align:center;grid-area:2/2/4/4;justify-content:center;align-items:center;font-size:.8rem;display:flex}.seimei-chars{justify-content:center;margin-bottom:1rem;padding:.8rem 0;display:flex}.seimei-column{flex-direction:column;align-items:center;gap:.1rem;display:flex}.seimei-char{flex-direction:column;align-items:center;display:flex}.seimei-kanji{font-family:var(--font-display);color:var(--text-primary);font-size:1.8rem;line-height:1.3}.seimei-stroke{color:var(--text-dim);font-size:.6rem;line-height:1}.seimei-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.6rem;margin:.5rem 0;display:grid}.seimei-kaku-item{text-align:center;border:1px solid var(--border-color);background:#fff;border-radius:6px;padding:.6rem .3rem}.seimei-kaku-label{color:var(--text-dim);margin-bottom:.2rem;font-size:.68rem}.seimei-kaku-num{font-family:var(--font-display);color:var(--text-primary);font-size:1.5rem;line-height:1.2}.seimei-kaku-fortune{margin-top:.15rem;font-size:.9rem;font-weight:500}.analysis-section{border-top:1px solid var(--border-light);margin-top:.8rem;padding-top:.8rem}.analysis-section h4{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.04em;margin-bottom:.4rem;font-size:.9rem;font-weight:400}.analysis-section p{color:var(--text-secondary);margin-bottom:.6rem;font-size:.82rem;line-height:1.9}.sigil-card{text-align:center}.download-btn,.regen-btn,.copy-btn{border:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:5px;margin-top:.6rem;padding:.4rem 1rem;font-size:.75rem;transition:all .2s;display:inline-block}.download-btn:hover,.regen-btn:hover,.copy-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.regen-btn,.copy-btn{margin-left:.5rem}.card-btn-row{flex-wrap:wrap;gap:.4rem;display:flex}.chat-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-top:2rem;overflow:hidden}.chat-header{border-bottom:1px solid var(--border-light);font-family:var(--font-display);letter-spacing:.08em;color:var(--text-primary);padding:.8rem 1.2rem;font-size:1rem}.chat-messages{flex-direction:column;gap:.8rem;max-height:400px;padding:1rem;display:flex;overflow-y:auto}.chat-msg{word-break:break-word;border-radius:8px;max-width:85%;padding:.6rem .9rem;font-size:.84rem;line-height:1.7}.chat-msg.user{background:var(--text-primary);color:#fff;border-bottom-right-radius:2px;align-self:flex-end}.chat-msg.assistant{color:var(--text-primary);background:#f0f0f0;border-bottom-left-radius:2px;align-self:flex-start}.chat-msg.system{color:var(--text-dim);text-align:center;background:0 0;align-self:center;font-size:.75rem}.chat-input-row{border-top:1px solid var(--border-light);display:flex}.chat-input-row input{font-family:var(--font-body);color:var(--text-primary);background:#fff;border:none;outline:none;flex:1;padding:.7rem 1rem;font-size:.9rem}.chat-input-row button{background:var(--text-primary);color:#fff;font-family:var(--font-body);cursor:pointer;letter-spacing:.05em;-webkit-tap-highlight-color:transparent;border:none;padding:.7rem 1.2rem;font-size:.85rem;transition:opacity .2s}.chat-input-row button:hover{opacity:.85}.chat-input-row button:disabled{opacity:.4;cursor:default}.chat-typing{color:var(--text-dim);padding:.3rem 0;font-size:.75rem}.tabs{border-bottom:2px solid var(--border-color);gap:0;margin-bottom:1.2rem;display:flex}.tab{font-family:var(--font-body);color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-2px;padding:.7rem 1rem;font-size:.9rem;transition:all .2s}.tab.active{color:var(--text-primary);border-bottom-color:var(--text-primary);font-weight:500}.tab:hover{color:var(--text-secondary)}.compat-inputs{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.2rem;display:grid}.compat-result-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:.8rem;padding:1rem}.compat-category{color:var(--text-dim);margin-bottom:.3rem;font-size:.75rem}.compat-detail{color:var(--text-primary);margin-bottom:.3rem;font-size:.9rem;font-weight:500}.compat-score-bar{background:var(--border-light);border-radius:3px;height:6px;margin:.4rem 0;overflow:hidden}.compat-score-fill{border-radius:3px;height:100%;transition:width .6s}.compat-text{color:var(--text-secondary);font-size:.82rem;line-height:1.7}.compat-overall{background:var(--bg-card);border:2px solid var(--border-color);text-align:center;border-radius:10px;margin-bottom:1rem;padding:1.5rem}.compat-overall-score{font-family:var(--font-display);font-size:3rem;font-weight:400;line-height:1.2}.compat-overall-label{color:var(--text-dim);margin-bottom:.3rem;font-size:.8rem}.compat-overall-text{color:var(--text-secondary);margin-top:.8rem;font-size:.85rem;line-height:1.8}.fortune-period-btn{border:1px solid var(--border-color);background:var(--bg-card);font-family:var(--font-body);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:6px;padding:.5rem 1rem;font-size:.82rem;transition:all .2s}.fortune-period-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.fortune-period-btn.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.fortune-period-btn:disabled{opacity:.5;cursor:not-allowed}.footer{text-align:center;color:var(--text-dim);letter-spacing:.12em;padding:1.5rem 1rem;font-size:.65rem}.hidden{display:none!important}@media (max-width:700px){.hero{min-height:25vh;padding:2rem 1rem 1rem}.hero-sigil{width:55px;height:55px}.main-container{padding:0 .75rem 3rem}.input-section{padding:1rem}.form-grid{grid-template-columns:1fr 1fr;gap:.6rem}.results{grid-template-columns:1fr;gap:.8rem}.result-card{padding:1rem}.chart-text{columns:1}.soul-number-value{font-size:2.4rem}.card-title{font-size:.95rem}.analysis-section p{font-size:.8rem}.ziwei-cell{min-height:42px;padding:.3rem;font-size:.6rem}.ziwei-cell-stars{font-size:.65rem}.ziwei-cell-palace{font-size:.52rem}.compat-inputs{grid-template-columns:1fr}}@media (max-width:400px){.form-grid{grid-template-columns:1fr}.hero-title{letter-spacing:.15em}.ziwei-cell{min-height:36px;font-size:.55rem}.ziwei-cell-stars{font-size:.6rem}}
