.ziwei-canvas{z-index:1;position:fixed;inset:0}.ziwei-canvas canvas{width:100%;height:100%;animation:1.4s cubic-bezier(.23,1,.32,1) both scene-in;display:block}.ziwei-canvas:after{content:"";pointer-events:none;background:radial-gradient(120% 90% at 50% 36%,#0000 38%,#0406059e 100%);position:absolute;inset:0}.ziwei-form{flex-direction:column;gap:12px;display:flex}.zw-fields{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.zw-field{flex-direction:column;gap:5px;display:flex}.zw-field>span{font-family:var(--mono);letter-spacing:.12em;color:var(--muted);font-size:10px}.zw-field input{width:100%;color:var(--ink);background:#0000004d;border:1px solid #efe3c724;border-radius:12px;padding:9px 10px;font-size:14px}.zw-field input:focus,.zw-field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-dim);outline:none}.zw-field input::placeholder{color:#efe3c752}.zw-field select{width:100%;color:var(--ink);appearance:none;cursor:pointer;background:#0000004d;border:1px solid #efe3c724;border-radius:12px;padding:9px 10px;font-size:14px}.gender-toggle{gap:6px;display:flex}.gender-toggle button{color:#efe3c799;font-family:var(--display);cursor:pointer;background:#0000004d;border:1px solid #efe3c724;border-radius:12px;flex:1;padding:9px 0;font-size:15px;transition:border-color .2s,color .2s,background .2s}.gender-toggle button.on{border-color:var(--gold);color:var(--gold-strong);background:var(--gold-dim)}.zw-question input{width:100%}.zw-actions{align-items:center;gap:10px;display:flex}.zw-actions .cast-button{flex:none}.ghost-button{color:#efe3c7d1;letter-spacing:.04em;cursor:pointer;background:0 0;border:1px solid #efe3c72e;border-radius:14px;padding:11px 16px;font-size:13px;transition:border-color .2s,color .2s}.ghost-button:hover:not(:disabled){border-color:var(--gold);color:var(--gold-strong)}.ghost-button:disabled{opacity:.4;cursor:not-allowed}.ziwei-result{z-index:5;width:min(460px,100vw - 32px);max-height:calc(100vh - 150px);box-shadow:var(--shadow), inset 0 1px 0 #fff8e212;-webkit-backdrop-filter:blur(22px)saturate(1.05);backdrop-filter:blur(22px)saturate(1.05);opacity:0;pointer-events:none;background:linear-gradient(#0a0e0ca8,#0406058f);border:1px solid #efe3c721;border-radius:24px;padding:22px;transition:opacity .26s,transform .26s;position:fixed;bottom:clamp(20px,4vh,48px);right:clamp(16px,3vw,46px);overflow:auto;transform:translate(26px)}.ziwei-result.visible{opacity:1;pointer-events:auto;transform:translate(0)}.ziwei-result .mono-label{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:11px}.zr-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.zr-watermark{font-family:var(--mono);letter-spacing:.1em;color:#d8a64a;white-space:nowrap;background:#d8a64a1f;border:1px solid #d8a64a66;border-radius:999px;padding:3px 9px;font-size:10px}.zr-meta{font-family:var(--mono);letter-spacing:.04em;color:var(--muted-2);margin:0 0 14px;font-size:11px}.ziwei-carry{background:#e3502f12;border:1px solid #f0c39a2e;border-radius:12px;margin:16px 0 0;padding:13px 15px}.ziwei-carry span{color:var(--muted);font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;margin-bottom:5px;font-size:10px;display:block}.ziwei-carry p{color:#f3e9d4;font-family:var(--display);margin:0;font-size:14px;line-height:1.75}.palace-grid{aspect-ratio:1;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:4px;width:100%;margin-bottom:14px;display:grid}.palace{border:1px solid var(--line-soft);color:var(--ink);text-align:center;cursor:pointer;background:linear-gradient(#efe3c70f,#0507066b);border-radius:9px;flex-direction:column;align-items:center;gap:2px;padding:clamp(4px,1.6vw,8px) 4px clamp(13px,3.4vw,18px);transition:border-color .2s,background .2s,transform .2s;display:flex;position:relative;overflow:hidden}.palace:hover{border-color:#f0d56f66}.pl-name{font-family:var(--display);letter-spacing:.04em;color:#f4ecd9c7;align-items:center;gap:2px;font-size:clamp(11px,2.6vw,13px);display:inline-flex}.pl-shen{color:var(--gold-strong);border:1px solid #f0d56f80;border-radius:4px;padding:0 3px;font-size:9px;font-style:normal}.pl-stars{flex-wrap:wrap;justify-content:center;gap:2px 4px;min-height:18px;display:flex}.pl-star{align-items:baseline;gap:1px;display:inline-flex}.pl-star b{font-family:var(--display);color:#fff3d4;font-size:clamp(12px,3vw,15px);font-weight:600}.pl-empty{color:var(--muted-2);font-size:clamp(9px,2.2vw,11px)}.pl-bright{color:#efe3c74d;font-size:9px;font-style:normal}.hua{border-radius:3px;padding:1px 2px;font-size:clamp(8px,2vw,10px);font-style:normal;font-weight:700;line-height:1}.hua-lu{color:#0c1a14;background:var(--jade)}.hua-quan{color:#1c1604;background:var(--gold-strong)}.hua-ke{color:#07151f;background:#7fb0d8}.hua-ji{color:#fff;background:var(--cinnabar)}.pl-gz{font-family:var(--mono);letter-spacing:.02em;color:#efe3c76b;font-size:clamp(8px,2vw,10px);position:absolute;bottom:4px;right:6px}.pl-limit{font-family:var(--mono);letter-spacing:.02em;color:#f0d56fa8;font-size:clamp(8px,1.9vw,9px);position:absolute;bottom:4px;left:6px}.palace.is-ming{border-color:var(--cinnabar);background:linear-gradient(#b7492f29,#0507066b);box-shadow:inset 0 0 0 1px #b7492fb3,0 0 18px #b7492f47}.palace.is-shen{border-style:dashed;border-color:#f0d56f99}.palace.in-trine{border-color:var(--jade);background:linear-gradient(#79bda729,#0507066b)}.palace.is-flow:after{content:"岁";color:var(--gold-strong);opacity:.8;font-size:8px;position:absolute;top:4px;right:5px}.palace.is-focused{border-color:var(--gold-strong);background:linear-gradient(#f0d56f24,#0507066b);transform:translateY(-1px)}.palace-center{text-align:center;background:radial-gradient(120% 100% at 50% 30%,#f0d56f14,#05070680);border:1px solid #f0d56f29;border-radius:10px;flex-direction:column;justify-content:center;gap:8px;padding:12px;display:flex}.pc-title{font-family:var(--display);color:var(--gold-strong);letter-spacing:.06em;font-size:clamp(13px,3vw,16px)}.pc-meta{flex-direction:column;gap:4px;display:flex}.pc-meta p{color:#efe3c7bd;margin:0;font-size:clamp(10px,2.4vw,12px);line-height:1.5}.pc-flow{color:#f0d56fb3!important}.ziwei-controls{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.trine-toggle{color:var(--jade);cursor:pointer;background:0 0;border:1px solid #79bda766;border-radius:999px;align-items:center;gap:5px;padding:7px 12px;font-size:12px;transition:background .2s,color .2s;display:inline-flex}.trine-toggle.on{background:var(--jade-dim);color:#aee3d1}.focus-note{color:#efe3c7b3;font-size:11px;line-height:1.5}.ziwei-legend{font-family:var(--mono);letter-spacing:.04em;color:var(--muted-2);flex-wrap:wrap;gap:7px 14px;margin-bottom:18px;font-size:10px;display:flex}.ziwei-legend span{align-items:center;gap:4px;display:inline-flex}.ziwei-legend i{font-style:normal}.lg-ming{color:var(--cinnabar);border:1px solid var(--cinnabar);border-radius:3px;padding:0 3px}.lg-shen{color:var(--gold-strong);border:1px dashed #f0d56f99;border-radius:3px;padding:0 3px}.lg-plain{color:#f0d56fa8}.zr-abstain h2{font-family:var(--display);color:#fff3d4;margin:4px 0 12px;font-size:22px}.zr-abstain p{color:#efe3c7bd;margin:0 0 10px;font-size:13px;line-height:1.8}.zr-abstain-hint{color:#f0d56fa8!important}.ziwei-result .panel-actions{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:10px;margin-top:16px;display:grid}.ziwei-result .panel-actions button{min-width:0;min-height:42px;color:var(--ink);text-align:center;white-space:normal;cursor:pointer;background:#00000047;border:1px solid #efe3c72e;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:740;line-height:1.2;transition:border-color .2s;display:inline-flex}.ziwei-result .panel-actions button:hover{border-color:var(--gold)}.ziwei-result .empty-reading h2{font-family:var(--display);color:#fff3d4;margin:0 0 12px;font-size:26px}.ziwei-result .empty-reading p{color:#efe3c7b8;margin:0;font-size:14px;line-height:1.8}@media (max-width:760px){.zw-fields{grid-template-columns:repeat(2,1fr)}.ziwei-result{width:auto;max-height:80vh;bottom:10px;left:10px;right:10px}}@media (max-width:480px){.zw-fields{grid-template-columns:1fr}.zw-actions{flex-direction:column;align-items:stretch}.zw-actions .cast-button,.zw-actions .ghost-button{justify-content:center;width:100%}}
