:root{--paper:#f3ead6;--paper-deep:#e8dcc2;--ink:#2a2520;--ink-soft:#6b6052;--cinnabar:#a8382a;--azurite:#3e5f6e;--gold:#b08d57;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{background:var(--paper);min-height:100%;margin:0}body{color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.75' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");font-family:LXGW,STKaiti,KaiTi,Songti SC,serif}main{max-width:980px;margin:auto;padding:28px 24px 64px}header{border-bottom:1px solid var(--gold);min-height:90px;padding:8px 0 24px;position:relative}.brand{writing-mode:vertical-rl;letter-spacing:.15em;font-family:MaShan,STKaiti,serif;font-size:34px;line-height:1}.brand span{letter-spacing:.1em;color:var(--ink-soft);margin-right:10px;font:12px NotoSerif,serif}.seal{background:var(--cinnabar);color:#fff;place-items:center;width:54px;height:54px;font-family:MaShan,serif;font-size:19px;display:grid;position:absolute;top:4px;right:0;transform:rotate(3deg)}.calendar{color:var(--ink-soft);font-size:15px;position:absolute;bottom:24px;right:70px}.calendar small{text-align:right;color:var(--gold);font-size:11px;display:block}.hero{min-height:280px;padding:58px 0 42px;position:relative;overflow:hidden}.hero h1{writing-mode:vertical-rl;height:190px;margin:12px 0;font-family:MaShan,STKaiti,serif;font-size:clamp(42px,7vw,76px);font-weight:400;line-height:1.35}.hero em{color:var(--cinnabar);font-style:normal}.hero p:not(.eyebrow){color:var(--ink-soft);font-size:17px}.eyebrow{letter-spacing:.2em;color:var(--cinnabar);font-family:NotoSerif,serif;font-size:11px}.mountains{clip-path:polygon(0 70%,14% 30%,25% 62%,42% 8%,57% 56%,70% 18%,86% 60%,100% 28%,100% 100%,0 100%);opacity:.34;filter:blur(1px);background:linear-gradient(0deg,#52645f 0 28%,#71837b 28% 58%,#9ba49a 58%);height:130px;position:absolute;inset:auto -10% 0}.mountains:after{content:" ";background:radial-gradient(#fff8 0 12%,#0000 60%);animation:60s linear infinite mist;position:absolute;inset:20% 0}@keyframes mist{to{transform:translate(35%)}}nav{border-bottom:1px solid var(--gold);gap:8px;margin-bottom:30px;display:flex}button{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:12px 17px}nav button{font-family:MaShan,serif;font-size:20px}nav button.active{color:var(--cinnabar);border-bottom:2px solid var(--cinnabar)}.card{border:3px double var(--gold);background:#fffaee73;margin-bottom:28px;padding:38px}.section-head{justify-content:space-between;display:flex}h2{margin:5px 0 28px;font-family:MaShan,serif;font-size:36px;font-weight:400}.ghost{border:1px solid var(--gold);color:var(--cinnabar)}.chips,.sides{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.chips button,.sides button{border:1px solid var(--gold);padding:8px 15px}.chips .selected,.sides .selected{background:var(--ink);color:var(--paper)}label{align-items:center;gap:12px;margin:15px 0;display:flex}select,input{font:inherit;background:var(--paper);border:1px solid var(--gold);padding:8px}.result{border-left:5px solid var(--cinnabar);margin-top:25px;padding:25px}.result span{background:var(--cinnabar);color:#fff;border-radius:50%;place-items:center;width:42px;height:42px;font-size:14px;display:inline-grid}.result.慎{border-color:var(--azurite)}.result.慎 span{background:var(--azurite)}.result.平 span{border:1px solid var(--ink);color:var(--ink);background:0 0}.result p,.palace p{font-size:21px;line-height:1.9}.formula{color:var(--ink-soft);line-height:2}.hexgrid{grid-template-columns:repeat(3,1fr);gap:10px;max-width:440px;margin:25px auto;display:grid}.hexgrid span{border:1px solid var(--gold);text-align:center;padding:18px}.hexgrid .lit{background:var(--cinnabar);color:#fff}.directions{background:var(--paper-deep);align-items:center;gap:30px;padding:20px;display:flex}.bagua{border:2px solid var(--gold);text-align:center;border-radius:50%;place-content:center;width:140px;height:140px;display:grid}.bagua b{font-size:25px}.bagua small{font-size:10px;display:block}.avoid{color:var(--azurite)}.ritual{border:1px solid var(--gold);touch-action:none;background:#ead4a9;width:100%;height:260px;margin:22px 0;display:block}.progress{text-align:center;color:var(--cinnabar)}.hint{color:var(--azurite)}.blessing{text-align:center;border:1px solid var(--gold);margin:18px 0;padding:22px;transition:opacity .3s}.blessing p{writing-mode:vertical-rl;max-height:250px;margin:auto;font-family:MaShan,serif;font-size:25px;line-height:2}.blessing.dim{opacity:.48}.blessing.done{opacity:1;box-shadow:0 0 0 2px var(--cinnabar) inset}footer{text-align:center;color:var(--ink-soft);font-size:13px;line-height:2}details{text-align:left;margin-top:18px}summary{cursor:pointer;color:var(--cinnabar)}@media (width<=520px){main{padding:16px 14px 48px}.brand{writing-mode:horizontal-tb;font-size:30px}.brand span{margin:3px 0;display:block}.calendar{margin-top:12px;font-size:12px;position:static}.calendar small{text-align:left}.hero{min-height:230px;padding:38px 0 25px}.hero h1{writing-mode:horizontal-tb;height:auto;font-size:42px}.card{padding:22px 17px}.section-head{display:block}h2{font-size:30px}.directions{gap:12px}.bagua{flex:none;width:100px;height:100px}.hexgrid span{padding:12px 5px}.result p,.palace p{font-size:20px}}.compass{flex:none;width:280px;height:280px}.compass circle{fill:none;stroke:var(--gold);stroke-width:1.5px}.compass path{fill:#0000;stroke:var(--gold);stroke-width:.8px}.compass .marked path{fill:#a8382a38}.compass .avoid path{fill:#2f5d7c38}.compass text{fill:var(--ink);font-family:MaShan,serif;font-size:16px}.compass .gua{font-size:24px}.compass .dir{fill:var(--ink-soft);font-size:13px}.compass .dir-mark{fill:var(--cinnabar);font-size:14px}.compass .avoid .dir-mark{fill:var(--azurite)}.palm{width:100%;max-width:300px;margin:16px auto;display:block}.palm-outline{fill:#4a3c30;stroke:#4a3c30;stroke-width:3.2px;stroke-linejoin:round}.palm-fill{fill:url(#palm-skin)}.palm-crease{fill:none;stroke:#a88f70;stroke-width:1px;stroke-linecap:round;opacity:.85}.palm-lines{fill:none;stroke:#bfa785;stroke-width:1.1px;stroke-linecap:round;opacity:.75}.palm-loop{fill:none;stroke:var(--gold);stroke-width:1px;stroke-dasharray:1.5 3.5}.palm .dot{fill:#fdf8ee;stroke:var(--gold);stroke-width:1.2px;transition:fill .18s,stroke .18s}.palm .gong text{fill:var(--ink);font-family:LXGW,serif;font-size:10px}.palm .visited .dot{fill:#e2c3a8}.palm .active .dot{fill:var(--cinnabar);stroke:var(--cinnabar)}.palm .active text{fill:#fff}.palm .glow{fill:url(#palm-glow);transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite gong-pulse}@keyframes gong-pulse{50%{opacity:.45;transform:scale(1.25)}}.steps{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.steps span{border:1px solid var(--gold);opacity:.35;padding:6px 12px}.steps span.active{opacity:1;background:var(--paper-deep)}.almanac{margin-top:18px}.almanac h2{margin:.2em 0}.almanac-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.almanac-grid strong{color:var(--cinnabar);font-family:MaShan,serif;font-size:1.3em}.almanac-grid p{line-height:1.8}.share-modal{z-index:20;background:#140f0ab8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.share-modal>div{background:var(--paper);text-align:center;max-width:min(92vw,520px);padding:14px}.share-modal img{object-fit:contain;width:100%;max-height:78vh;display:block}.share-modal p{margin:8px 0 0}.blessing p span{animation:.12s both ink-in;display:inline-block}@keyframes ink-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.stamp{transform-origin:50%;animation:.26s ease-out both stamp}@keyframes stamp{0%{opacity:0;transform:scale(1.6)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(-8deg)}}.inputs{flex-wrap:wrap;gap:10px;display:flex}@media (width<=520px){.compass{width:220px;height:220px}}@font-face{font-family:MaShan;src:url(/assets/MaShan-Zheng-DUZCSsNt.woff2)format("woff2"),local(STKaiti);font-display:swap}@font-face{font-family:LXGW;src:url(/assets/LXGW-WenKai-BHSPQyIx.woff2)format("woff2"),local(STKaiti),local(KaiTi);font-display:swap}@font-face{font-family:NotoSerif;src:local(SimSun),local(Songti SC);font-display:swap}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (prefers-color-scheme:dark){:root{--paper:#1c1a17;--paper-deep:#2b2721;--ink:#e9dfc9;--ink-soft:#b8aa92;--cinnabar:#c4553f}body{background-image:none}.card{background:#24211d}}
