:root{--ink:#2a1710;--cream:#fff8e9;--red:#c8322f;--gold:#d9a62e;--glass:rgba(255,249,237,.78)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Inter,"Noto Sans SC","PingFang SC",system-ui,sans-serif;background:#130b07;color:var(--cream)}button{font:inherit}
.experience{position:relative;width:100%;height:100%;isolation:isolate;background:radial-gradient(circle at 50% 38%,#58301b 0,#26140c 42%,#100906 78%);overflow:hidden}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;z-index:1}.ambient-glow{position:absolute;z-index:0;inset:12% 24%;border-radius:50%;background:radial-gradient(circle,rgba(255,181,73,.18),transparent 66%);filter:blur(45px)}
.topbar{position:absolute;z-index:4;left:clamp(20px,4vw,64px);right:clamp(20px,4vw,64px);top:clamp(20px,4vh,44px);display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{display:flex;align-items:center;gap:12px}.seal{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,226,159,.5);border-radius:15px;background:linear-gradient(145deg,#d7483f,#a92124);box-shadow:0 14px 35px rgba(0,0,0,.22);font-family:serif;font-size:25px;color:#ffe7a6}.brand div{display:grid}.brand b{font:700 clamp(21px,2vw,29px)/1.1 Georgia,"Noto Serif SC",serif;letter-spacing:.06em}.brand small{margin-top:5px;color:#d4a85f;font-size:9px;letter-spacing:.24em}.language{display:flex;padding:4px;border:1px solid rgba(255,232,184,.16);border-radius:999px;background:rgba(28,15,9,.52);backdrop-filter:blur(12px);pointer-events:auto}.language button{border:0;border-radius:999px;padding:8px 13px;background:transparent;color:#cfb996;cursor:pointer}.language button.is-active{background:#f4dfb3;color:#5b2818;box-shadow:0 5px 14px rgba(0,0,0,.2)}
.story-card{position:absolute;z-index:3;left:clamp(22px,5vw,78px);top:50%;width:min(315px,28vw);transform:translateY(-45%);padding:27px;border:1px solid rgba(255,232,184,.17);border-radius:27px;background:linear-gradient(145deg,rgba(63,29,17,.73),rgba(32,17,11,.62));box-shadow:0 24px 80px rgba(0,0,0,.22);backdrop-filter:blur(18px);pointer-events:none}.eyebrow{color:#e3b758;font-size:10px;font-weight:800;letter-spacing:.18em}.story-card h1{margin:10px 0 12px;font:700 clamp(27px,3vw,44px)/1.07 Georgia,"Noto Serif SC",serif}.story-card>p{margin:0;color:#d7c4ad;font-size:13px;line-height:1.8}.fortune-row{display:flex;gap:7px;margin-top:22px}.fortune-row span{flex:1;display:grid;justify-items:center;gap:4px;padding:10px 4px;border:1px solid rgba(255,226,164,.12);border-radius:13px;background:rgba(255,255,255,.035)}.fortune-row i{font-style:normal;color:#e7b44a}.fortune-row b{font-size:10px;color:#ead9bd;font-weight:650}
.loading{position:absolute;z-index:5;left:50%;top:51%;display:flex;align-items:center;gap:10px;transform:translate(-50%,-50%);padding:12px 16px;border-radius:999px;background:rgba(17,9,6,.72);backdrop-filter:blur(10px);transition:opacity .35s ease}.loading.is-hidden{opacity:0}.loading span{width:9px;height:9px;border-radius:50%;background:#e8b83f;box-shadow:0 0 0 0 rgba(232,184,63,.45);animation:pulse 1.2s infinite}.loading b{font-size:11px;letter-spacing:.07em;color:#eeddbf}@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(232,184,63,0)}}
.prayer-panel{position:absolute;z-index:4;right:clamp(22px,5vw,78px);top:50%;width:220px;transform:translateY(-42%);text-align:center}.prayer-panel button{position:relative;width:100%;padding:18px 18px 16px;border:1px solid rgba(255,220,133,.65);border-radius:22px;color:#fff3ce;background:linear-gradient(145deg,#d94437,#9d191e);box-shadow:0 18px 50px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.25);cursor:pointer;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.prayer-panel button::after{content:"";position:absolute;inset:-70% -20%;background:linear-gradient(100deg,transparent 38%,rgba(255,241,188,.28) 50%,transparent 62%);transform:translateX(-55%) rotate(12deg);transition:transform .55s ease}.prayer-panel button:hover{transform:translateY(-3px);box-shadow:0 24px 60px rgba(0,0,0,.36),0 0 0 4px rgba(227,177,72,.08)}.prayer-panel button:hover::after{transform:translateX(58%) rotate(12deg)}.prayer-panel button:active{transform:translateY(0) scale(.98)}.prayer-panel button span{display:grid;place-items:center;width:34px;height:34px;margin:0 auto 7px;border-radius:50%;color:#8d1a1d;background:#f0c45b;box-shadow:0 6px 18px rgba(64,13,8,.28);font-size:17px}.prayer-panel button b,.prayer-panel button small{position:relative;z-index:1;display:block}.prayer-panel button b{font:700 19px/1.25 Georgia,"Noto Serif SC",serif;letter-spacing:.08em}.prayer-panel button small{margin-top:5px;color:#f3cf8c;font-size:9px;letter-spacing:.08em}.prayer-panel p{min-height:42px;margin:12px 4px 0;color:#d7c09e;font-size:11px;line-height:1.65;transition:color .25s ease,transform .25s ease}.prayer-panel p.is-blessing{color:#ffd878;transform:scale(1.03)}
.hint{position:absolute;z-index:3;left:50%;bottom:102px;display:flex;align-items:center;gap:8px;transform:translateX(-50%);color:#b99d78;font-size:10px;letter-spacing:.08em;pointer-events:none}.hint span{font-size:15px;color:#e0b557}
.controls{position:absolute;z-index:4;left:50%;bottom:36px;display:flex;align-items:center;gap:9px;transform:translateX(-50%);padding:8px;border:1px solid rgba(255,231,181,.18);border-radius:19px;background:rgba(28,15,9,.72);box-shadow:0 18px 45px rgba(0,0,0,.25);backdrop-filter:blur(15px)}.controls>button{display:flex;align-items:center;gap:8px;border:0;border-radius:13px;padding:10px 13px;background:transparent;color:#ead8b9;cursor:pointer}.controls>button:hover{background:rgba(255,255,255,.07)}.controls>button span{color:#e3b34c}.controls>button b{font-size:11px;white-space:nowrap}.divider{width:1px;height:28px;background:rgba(255,255,255,.11)}.variants{display:flex;gap:7px;padding:0 4px}.swatch{width:25px;height:25px;border:2px solid transparent;border-radius:50%;background:#f6efe1;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);cursor:pointer}.swatch.black{background:#29211e}.swatch.coral{background:#bf3c36}.swatch.is-active{border-color:#efbd4f;box-shadow:0 0 0 3px rgba(239,189,79,.14)}
footer{position:absolute;z-index:3;left:clamp(22px,4vw,64px);right:clamp(22px,4vw,64px);bottom:28px;display:flex;justify-content:space-between;color:#8f755c;font-size:9px;letter-spacing:.18em;pointer-events:none}footer b{font-weight:600}
@media(max-width:820px){.story-card{left:16px;right:16px;top:auto;bottom:116px;width:auto;transform:none;padding:15px 18px;border-radius:20px}.story-card h1{margin:5px 0 3px;font-size:21px}.story-card>p{font-size:10px;line-height:1.5}.fortune-row{display:none}.brand small{display:none}.topbar{left:16px;right:16px;top:16px}.seal{width:42px;height:42px}.prayer-panel{right:16px;top:82px;width:142px;transform:none}.prayer-panel button{padding:11px 10px;border-radius:17px}.prayer-panel button span{width:27px;height:27px;margin-bottom:4px}.prayer-panel button b{font-size:15px}.prayer-panel p{display:none}.controls{bottom:26px;max-width:calc(100% - 28px)}.controls>button b{display:none}.hint{display:none}footer{display:none}}
@media(prefers-reduced-motion:reduce){.loading span{animation:none}}
.fortune-dialog{padding:0;width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:1px solid #e6bf70;border-radius:28px;color:#ffedbc;background:#8e2025;box-shadow:0 30px 120px #0009;overflow:auto}.fortune-dialog::backdrop{background:#110806bb;backdrop-filter:blur(10px)}.fortune-card{position:relative;padding:48px 42px 24px;text-align:center;background:radial-gradient(ellipse at top,#ce5142,transparent 65%),linear-gradient(135deg,#a82b2c,#691b23);border:8px solid #ffffff06;min-height:440px}.fortune-close{position:absolute;right:12px;top:8px;width:44px;height:44px;border:0;background:none;color:#ffe6af;font-size:30px;cursor:pointer}.fortune-seal{font:36px/1.5 'Kaiti SC',STKaiti,KaiTi,serif;color:#8e2025;background:#edcc86;border-radius:14px;width:54px;margin:0 auto 22px;transform:rotate(-7deg)}.fortune-eyebrow{font-size:11px;letter-spacing:.3em;color:#e9c18a}.fortune-card h2{font:600 clamp(32px,5vw,54px)/1.5 'Kaiti SC',STKaiti,KaiTi,'Songti SC','Noto Serif SC',Georgia,serif;letter-spacing:.06em;margin:22px auto;max-width:13em;text-wrap:balance;text-shadow:0 2px 15px #ffcc6622}.fortune-divider{color:#e5b76b;display:flex;align-items:center;gap:14px;justify-content:center}.fortune-divider:before,.fortune-divider:after{content:'';height:1px;width:60px;background:#edcc8655}.fortune-note{font-size:13px;line-height:1.8;color:#eed3ae}.fortune-actions{display:flex;gap:10px;justify-content:center;margin-top:26px;flex-wrap:wrap}.fortune-actions button{border:1px solid #ebca8c66;border-radius:999px;padding:13px 24px;background:transparent;color:#ffe5b2;cursor:pointer}.fortune-actions button:first-child{background:#f2d494;color:#702029}.fortune-feedback{font-size:12px;min-height:18px;color:#ffdda6}.fortune-feedback textarea{display:block;width:100%;height:100px;margin-top:12px}button:focus-visible{outline:3px solid #ffe49e;outline-offset:4px}.fortune-dialog[open]{animation:fortune-in .4s ease-out}@keyframes fortune-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}@media(max-width:600px){.fortune-card{padding:38px 20px 16px}.fortune-card h2{font-size:34px}.prayer-panel p{display:block;font-size:10px}.fortune-actions button{padding:12px 18px}}@media(prefers-reduced-motion:reduce){.fortune-dialog[open]{animation:none}}
/* Dream-sky fortune reveal */
.fortune-dialog{border-color:#ffffffa6;background:#bbdafa;color:#253f70;box-shadow:0 30px 120px #081a4866,0 0 70px #a5bdff55}.fortune-dialog::backdrop{background:#18294488;backdrop-filter:blur(12px)}.fortune-card{isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 80% 10%,#fff5fcaa,transparent 48%),linear-gradient(155deg,#86bcf3 0%,#c8d8fa 48%,#f4e7f5 100%);border-color:#ffffff30;min-height:510px}.fortune-card>*:not(.dream-sky){position:relative;z-index:1}.fortune-card .fortune-close{position:absolute;color:#3d5585;z-index:3}.dream-sky{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}.dream-cloud{position:absolute;width:380px;height:110px;border-radius:50%;background:radial-gradient(ellipse,#ffffffed 25%,#ffffff66 60%,transparent 73%);filter:blur(4px);animation:cloud-drift 16s ease-in-out infinite alternate}.dream-cloud:before,.dream-cloud:after{content:'';position:absolute;border-radius:50%;background:radial-gradient(ellipse,#fffffff5 28%,#ffffff88 55%,transparent 73%)}.dream-cloud:before{width:200px;height:150px;left:50px;top:-50px}.dream-cloud:after{width:180px;height:130px;right:20px;top:-24px}.cloud-one{top:100px;left:-220px;opacity:.8}.cloud-two{right:-170px;bottom:80px;animation-delay:-7s;transform:scale(1.3)}.cloud-three{left:-90px;bottom:-65px;width:600px;opacity:.9;animation-delay:-11s}.dream-stars{position:absolute;top:36%;left:0;width:100%;font-size:24px;letter-spacing:50px;color:#fff;opacity:.65;text-shadow:0 0 15px white;animation:dream-shimmer 4s ease-in-out infinite}.fortune-seal{background:#ffffff8a;color:#58629b;box-shadow:0 0 35px #ffffffaa;border:1px solid white}.fortune-eyebrow{color:#425d89}.fortune-card h2{color:#344c86;text-shadow:0 2px 0 #ffffffaa,0 0 28px #ffffffcc;line-height:1.65;min-height:2.8em;letter-spacing:.04em}.fortune-piece{display:inline-block;animation:piece-arrive 1.2s cubic-bezier(.16,.7,.25,1) var(--delay) both;white-space:pre}.fortune-divider{color:#6c79a7}.fortune-divider:before,.fortune-divider:after{background:#7186b755}.fortune-note{color:#415d84}.fortune-actions button{background:#ffffff65;color:#384f82;border-color:#ffffffcc;box-shadow:0 6px 22px #6e88bd16}.fortune-actions button:first-child{background:linear-gradient(135deg,#667fbc,#887ab9);color:#fff;border-color:#ffffff55}.fortune-feedback{color:#384f82}.fortune-note,.fortune-actions,.fortune-divider{transition:opacity .9s,transform .9s}.is-revealing .fortune-note,.is-revealing .fortune-actions,.is-revealing .fortune-divider{opacity:0;transform:translateY(8px);pointer-events:none}.fortune-dialog button:focus-visible{outline-color:#596ca7}@keyframes piece-arrive{0%{opacity:0;filter:blur(14px);transform:translate(var(--x),var(--y)) rotate(var(--turn)) scale(.7)}65%{opacity:.8;filter:blur(2px)}100%{opacity:1;filter:blur(0);transform:translate(0,0) rotate(0) scale(1)}}@keyframes cloud-drift{to{translate:38px -12px}}@keyframes dream-shimmer{50%{opacity:.25;transform:translateY(-8px)}}@media(max-width:600px){.fortune-card{min-height:480px}.fortune-card h2{font-size:32px}.dream-stars{letter-spacing:28px}}@media(prefers-reduced-motion:reduce){.fortune-piece,.dream-cloud,.dream-stars{animation:none}.fortune-note,.fortune-actions,.fortune-divider{transition:none}}
.fortune-dialog{width:min(720px,calc(100% - 28px))}.fortune-card{padding:24px 36px 16px}.fortune-mascot{width:112px;height:112px;margin:0 auto;perspective:700px;filter:drop-shadow(0 0 20px #fff9)}.fortune-mascot img{display:block;width:100%;height:100%;backface-visibility:visible}.fortune-ritual{font-size:12px;color:#59658d;min-height:18px;margin:8px 0 14px;letter-spacing:.04em}.fortune-eyebrow{margin:12px 0}.fortune-card h2{font-size:clamp(23px,3vw,31px);line-height:1.85;color:#b3263e;max-width:21em;min-height:130px;margin:18px auto;letter-spacing:.035em;text-shadow:0 1px 0 #fff,0 0 22px #ffffffaa}.fortune-card.is-spinning h2{visibility:hidden}.is-spinning .fortune-mascot{filter:drop-shadow(0 0 25px #fff)}.fortune-actions{margin-top:18px}.fortune-actions button:first-child{background:linear-gradient(135deg,#c64c65,#a83b59)}@media(max-width:600px){.fortune-card{padding:22px 18px 12px}.fortune-mascot{width:96px;height:96px}.fortune-card h2{font-size:24px;line-height:1.8}.fortune-card .fortune-close{right:5px;top:5px}}
/* The original 3D cat is the fortune's stage and background. */
.fortune-scene .story-card,.fortune-scene .prayer-panel,.fortune-scene .controls,.fortune-scene .hint,.fortune-scene footer{opacity:0;pointer-events:none;transition:opacity .3s}.fortune-scene .topbar{opacity:.55;pointer-events:none}.fortune-scene .language{pointer-events:none}.main-cat-ritual{display:none;position:fixed;z-index:8;bottom:7vh;left:16px;right:16px;text-align:center;color:#fff2ca;font-size:16px;letter-spacing:.12em;text-shadow:0 2px 12px #000}.fortune-turning .main-cat-ritual{display:block}.fortune-dialog{width:min(820px,calc(100% - 24px));margin:auto auto max(18px,3vh);max-height:65dvh;border:0;border-radius:0;background:transparent;box-shadow:none;color:#ffe9b3;overflow:auto}.fortune-dialog::backdrop{background:linear-gradient(180deg,transparent 28%,#180b0710 50%,#180b0755);backdrop-filter:none}.fortune-card{min-height:0;padding:28px 32px 12px;border:0;background:radial-gradient(ellipse at center,#fff3dbb0 0%,#fff2d75c 45%,transparent 73%);overflow:visible}.fortune-card .fortune-close{top:0;right:8px;color:#fff4d4;background:#422015a6;border-radius:50%;font-size:25px}.fortune-card h2{font-size:clamp(24px,3vw,33px);line-height:1.8;color:#b51b30;text-shadow:0 1px 2px #fff7e9,0 0 5px #fff8e8,0 0 18px #fff2dacc;max-width:23em;min-height:0;margin:12px auto}.fortune-eyebrow,.fortune-note,.fortune-feedback{color:#fff0c8;text-shadow:0 1px 5px #2b1005,0 0 10px #2b1005}.fortune-divider{color:#ffe0a0}.fortune-divider:before,.fortune-divider:after{background:#ffe0a088}.fortune-actions button{background:#321a14b8;color:#fff0d1;border-color:#f8d69b88}.fortune-actions button:first-child{background:linear-gradient(135deg,#bf3340,#8b1e2b)}.fortune-dialog[open]{animation:fortune-in .6s ease-out}.fortune-note{margin:8px 0}.fortune-actions{margin-top:12px}.fortune-feedback{margin:8px 0 0}@media(max-width:600px){.fortune-dialog{max-height:64dvh;margin-bottom:12px}.fortune-card{padding:30px 12px 8px}.fortune-card h2{font-size:23px;line-height:1.65}.fortune-eyebrow{font-size:10px}.fortune-note{font-size:11px}.fortune-actions button{padding:10px 16px}}
/* Prayer lives on the cat's koban, anchored by its 3D projection. */
.prayer-panel{right:auto;bottom:auto;width:var(--coin-button-size,160px);transform:translate(-50%,-50%);margin:0}.prayer-panel #pray{width:100%;height:var(--coin-button-size,160px);padding:10px 4px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 25%,#db4b37,#a91f26 72%);border:1px solid #ffe2a688;box-shadow:inset 0 1px 12px #ffbe6955,0 3px 14px #43120b55}.prayer-panel #pray:hover{transform:scale(1.035)}.prayer-panel #pray b{font-size:clamp(14px,1.8vw,21px);letter-spacing:.04em}.prayer-panel #pray span{width:26px;height:26px;font-size:14px;margin-bottom:6px}.prayer-panel #pray small{font-size:9px;letter-spacing:0;max-width:95%;line-height:1.4}.prayer-panel #blessing{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:240px;max-width:65vw;margin:12px 0 0;padding:5px 9px;min-height:0;border-radius:10px;background:#2110099c;color:#ffe6b6;font-size:10px;line-height:1.6;pointer-events:none}.fortune-scene .prayer-panel{visibility:hidden!important}@media(max-width:600px){.prayer-panel #pray b{font-size:14px}.prayer-panel #pray span{width:22px;height:22px;margin-bottom:4px}.prayer-panel #pray small{font-size:8px}.prayer-panel #blessing{display:block;font-size:9px;width:205px;margin-top:7px}}
.almanac-entry{position:absolute;z-index:4;left:4vw;top:115px;display:grid;grid-template-columns:38px 1fr;gap:3px 10px;text-align:left;align-items:center;border:1px solid #e5c07c55;border-radius:16px;padding:12px 16px;background:#311b12bd;color:#ffe5af;cursor:pointer;backdrop-filter:blur(10px)}.almanac-entry>span{grid-row:span 2;font:28px Georgia,serif}.almanac-entry b{font-size:14px}.almanac-entry small{font-size:10px;color:#d5b68c}.fortune-scene .almanac-entry{visibility:hidden}.almanac-dialog{padding:26px;width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 28px);overflow:auto;border:1px solid #dcc296;border-radius:24px;background:#fff8ea;color:#493124;box-shadow:0 30px 100px #0008}.almanac-dialog::backdrop{background:#130a08a8;backdrop-filter:blur(5px)}.almanac-dialog header{display:flex;justify-content:space-between;align-items:center}.almanac-dialog header small{font-size:9px;color:#a17943;letter-spacing:.2em}.almanac-dialog h2{font-family:'Songti SC',Georgia,serif;font-size:28px;margin:4px 0 18px}.almanac-dialog button,.almanac-dialog input,.almanac-dialog select{font:inherit;border:1px solid #d9c6a5;background:#fffcf5;color:#54382b;border-radius:9px;padding:8px;min-height:38px}.almanac-dialog button{cursor:pointer}.almanac-dialog button:disabled{opacity:.35;cursor:default}.almanac-close{font-size:24px!important;width:40px}.almanac-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.almanac-toolbar label{display:grid;gap:5px;font-size:11px}.almanac-toolbar input{max-width:170px}.month-nav{display:flex;justify-content:space-between;align-items:center;margin:20px 0 10px}.month-nav button{width:40px;font-size:22px}.calendar-grid,.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-week{text-align:center;font-size:11px;color:#947755;margin-bottom:8px}.calendar-grid button{min-width:0;display:grid;justify-items:center;padding:8px 2px;gap:4px;border-color:transparent;background:#f7eddb}.calendar-grid b{font-size:16px}.calendar-grid small{font-size:10px}.calendar-grid button.is-today{border-color:#c28c3d}.calendar-grid button.selected{background:#af2935;color:#fff5dd}.almanac-details{margin-top:22px;padding-top:18px;border-top:1px solid #dfcdaa}.almanac-date{font-size:12px;color:#99723c}.lunar-date{font-family:'Songti SC',serif;font-size:28px;margin:6px 0}.ganzhi,.festivals,.almanac-direction{font-size:12px;line-height:1.7}.festivals{color:#a72e36}.almanac-lists{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.almanac-lists article{padding:14px;border-radius:14px}.yi{background:#e9f0e2;color:#38603d}.ji{background:#f8e7e1;color:#9a3c35}.almanac-lists h3{font-size:14px;margin:0 0 12px}.almanac-lists article div{display:flex;flex-wrap:wrap;gap:7px}.almanac-lists span{font-size:13px;border:1px solid currentColor;border-radius:6px;padding:4px 8px}.almanac-dialog .almanac-source{position:static;display:block;pointer-events:auto;font-size:11px;letter-spacing:0;color:#927b61;line-height:1.7;border-top:1px solid #dfcdaa;padding-top:10px;margin-top:15px}.almanac-source a{color:#926e39}.almanac-dialog button:focus-visible{outline-color:#a52b37}@media(max-width:600px){.almanac-entry{left:16px;top:82px;padding:9px 12px}.almanac-entry b{font-size:12px}.almanac-entry small{font-size:9px}.almanac-dialog{padding:18px 14px}.almanac-lists{gap:8px}.almanac-lists article{padding:10px}.almanac-lists span{font-size:12px;padding:3px 5px}.calendar-grid{gap:3px}}
.bazi-entry{position:absolute;z-index:4;left:4vw;top:195px;border:1px solid #e5c07c55;border-radius:14px;padding:13px 19px;background:#311b12bd;color:#ffe5af;font-size:14px;cursor:pointer;backdrop-filter:blur(10px)}.fortune-scene .bazi-entry{visibility:hidden}.bazi-intro,.bazi-privacy{font-size:12px;line-height:1.8;color:#866a51}.bazi-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.bazi-form label{display:grid;gap:7px;font-size:12px}.bazi-form input,.bazi-form select{width:100%;min-width:0}.bazi-time-note,.bazi-error,.bazi-submit{grid-column:1/-1}.bazi-time-note{font-size:11px;color:#8a715a;line-height:1.7;margin:0}.bazi-form .bazi-submit{background:#af2935;color:#fff4d8;border-color:#af2935;font-weight:bold;padding:13px}.bazi-error{margin:0;color:#b42332;font-size:12px}.bazi-result{border-top:1px solid #dbc5a1;margin-top:22px;padding-top:10px}.bazi-result h3{font-family:Georgia,'Songti SC',serif;font-size:24px}.bazi-result h4{margin-bottom:8px;color:#a12835}.bazi-result p{font-size:13px;line-height:1.8}.bazi-result .bazi-meta{font-size:11px;color:#8c735c}.bazi-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.bazi-pillars article{display:grid;gap:10px;text-align:center;padding:15px 4px;background:#f2e5cf;border-radius:12px}.bazi-pillars b{font-size:25px;color:#a62d37}.bazi-pillars small,.bazi-pillars span{font-size:11px}.bazi-elements{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.bazi-elements>div{display:grid;text-align:center;gap:5px;padding:9px 3px;background:#f2eadb;border-radius:9px;font-size:12px}.bazi-reading{padding:14px;background:#f4eada;border-radius:12px;margin-top:10px}.bazi-reading b{font-size:13px}.bazi-reading p{margin-bottom:0}@media(max-width:600px){.bazi-entry{left:16px;top:148px;font-size:12px;padding:10px 15px}.bazi-form{grid-template-columns:1fr}.bazi-pillars b{font-size:19px}.bazi-pillars span{font-size:10px}.bazi-elements{font-size:10px}}
.bazi-section-nav{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.bazi-section-nav button{padding:8px 14px;background:#fff9ed;border:1px solid #d5b98b;border-radius:999px;font-size:12px}.bazi-section-nav button:hover{background:#af2935;color:#fff5df}.bazi-detailed{padding:20px;scroll-margin-top:14px}.bazi-detailed h4{font-size:20px;margin:0 0 12px;color:#a42e38}.bazi-detailed h5{font-size:13px;margin:18px 0 5px;color:#6c4935}.bazi-detailed p{margin:5px 0 0;line-height:1.95}.bazi-detailed .bazi-context{padding-bottom:14px;border-bottom:1px solid #ddc9a9;color:#795138}@media(max-width:600px){.bazi-detailed{padding:16px}.bazi-section-nav{gap:5px}.bazi-section-nav button{padding:8px 11px}}

.prayer-panel #blessing:empty{display:none}
.zodiac-entry{position:absolute;z-index:4;left:4vw;top:254px;border:1px solid #e5c07c55;border-radius:14px;padding:13px 19px;background:#311b12bd;color:#ffe5af;font-size:14px;cursor:pointer;backdrop-filter:blur(10px)}.fortune-scene .zodiac-entry{visibility:hidden}.zodiac-intro,.zodiac-find-note,.zodiac-disclaimer{font-size:12px;line-height:1.8;color:#866a51}.zodiac-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:18px 0}.zodiac-grid button{display:grid;justify-items:center;gap:5px;padding:12px 4px;background:#f5ead7}.zodiac-grid button>span{font-size:29px}.zodiac-grid button>b{font-size:12px}.zodiac-grid button.selected{background:#ad2938;color:#fff3da;border-color:#ad2938;box-shadow:0 3px 12px #ad293822}.zodiac-find{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.zodiac-find label,.zodiac-year-label{display:grid;gap:6px;font-size:12px}.zodiac-find input{max-width:210px}.zodiac-year-label{max-width:200px;margin:15px 0}.zodiac-error{font-size:12px;color:#ae2935}.zodiac-result{border-top:1px solid #dec7a6;padding-top:12px}.zodiac-result>h3{font-size:25px;color:#a62938}.zodiac-result>p{font-size:13px;line-height:1.8}.zodiac-result>.bazi-meta{font-size:11px;color:#8b7058}.zodiac-year-note{padding:12px;background:#f4e7cc;border-radius:10px}.zodiac-result h4{color:#a62938}@media(max-width:600px){.zodiac-entry{left:16px;top:198px;font-size:12px;padding:10px 15px}.zodiac-grid{grid-template-columns:repeat(4,1fr)}.zodiac-grid button>b{font-size:11px}}
.iching-entry{position:absolute;z-index:5;top:313px;left:4vw;border:1px solid #80613b;border-radius:16px;background:#301e17d9;color:#f7dfad;padding:15px 20px;font:600 14px Arial;cursor:pointer}.fortune-scene .iching-entry{opacity:0;pointer-events:none}.iching-question-label{display:grid;gap:8px}.iching-question-label textarea{width:100%;box-sizing:border-box;border:1px solid #cfb58e;border-radius:12px;padding:12px;background:#fffaf0;color:#54291d;font:inherit;resize:vertical}.iching-coins{display:flex;justify-content:center;gap:20px;margin:24px 0}.iching-coins i{display:grid;place-items:center;width:52px;height:52px;border:4px double #9b6424;border-radius:50%;background:linear-gradient(135deg,#ffe2a0,#d5a243);color:#813520;font:26px Georgia;font-style:normal;box-shadow:0 5px 12px #6d35172b}.casting i{animation:coin-toss .3s linear infinite}.casting i:nth-child(2){animation-delay:.08s}.casting i:nth-child(3){animation-delay:.16s}@keyframes coin-toss{50%{transform:translateY(-16px) rotateY(180deg)}}.hexagram{display:grid;gap:7px;width:150px;min-height:12px;margin:18px auto}.hex-line{display:flex;gap:12px;height:10px}.hex-line span{background:#57402b;flex:1;border-radius:2px}.hex-line.yang{gap:0}.hex-line.moving span{background:#b22d32}.iching-status{text-align:center}.iching-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.iching-actions button{border:1px solid #ad7845;border-radius:12px;padding:12px 18px;background:#a3292d;color:#fff0cf;font:inherit;cursor:pointer}.iching-actions button:disabled{opacity:.6;cursor:default}.iching-actions .iching-reset{background:transparent;color:#793c27}.iching-result{margin-top:24px}.iching-result h4{color:#9b282d}.iching-note{font-size:12px;color:#79634f;line-height:1.7;margin-top:24px}@media(max-width:600px){.iching-entry{top:248px;left:16px;padding:12px 14px;font-size:12px}}@media(prefers-reduced-motion:reduce){.casting i{animation:none}}
.guanyin-entry{position:absolute;z-index:5;top:372px;left:4vw;border:1px solid #b68c59;border-radius:16px;background:#301e17e6;color:#f7dfad;padding:15px 20px;font:600 14px Arial;cursor:pointer}.fortune-scene .guanyin-entry{opacity:0;pointer-events:none}.guanyin-dialog{background:radial-gradient(ellipse at 50% 15%,#fff9ea,#f2e2c9)!important}.guanyin-intro{text-align:center;line-height:1.8}.guanyin-ritual{position:relative;display:grid;place-items:center;height:215px;margin:8px auto 16px}.guanyin-lotus{position:absolute;width:240px;bottom:0;opacity:.65}.guanyin-tube{position:relative;width:94px;height:168px;transform-origin:50% 85%;filter:drop-shadow(0 10px 12px #6a36282b)}.guanyin-sticks{position:absolute;display:flex;gap:4px;left:10px;top:4px;height:110px;transform:rotate(-4deg)}.guanyin-sticks i{width:10px;background:linear-gradient(90deg,#b27d36,#ffe5a1,#c18d42);border-radius:5px 5px 0 0;border-top:20px solid #ac3331;transform:rotate(-8deg)}.guanyin-sticks i:nth-child(2n){transform:translateY(-10px) rotate(8deg)}.guanyin-vessel{position:absolute;bottom:0;width:94px;height:111px;border-radius:10px 10px 29px 29px;background:linear-gradient(90deg,#6e1d21,#b74137 45%,#7c2226);border-top:6px solid #d9b36e;border-bottom:5px solid #c79b50;display:grid;place-items:center;box-sizing:border-box}.guanyin-vessel span{color:#ffe5ab;font:26px Georgia,serif;border:1px solid #d7ae6b;padding:5px 11px;line-height:1.25}.shaking .guanyin-tube{animation:guanyin-shake .25s ease-in-out infinite alternate}@keyframes guanyin-shake{from{transform:rotate(-9deg) translateY(0)}to{transform:rotate(9deg) translateY(-6px)}}.guanyin-topic-label{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.guanyin-topic-label select{padding:10px;border:1px solid #c19d6b;border-radius:9px;background:#fff8e9;color:#63352a;font:inherit}.guanyin-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}.guanyin-actions button{border:1px solid #ae7849;border-radius:12px;padding:13px 23px;background:#a3292d;color:#fff0cf;font:inherit;cursor:pointer}.guanyin-actions button:disabled{opacity:.6;cursor:default}.guanyin-actions button[hidden]{display:none}.guanyin-actions .guanyin-share{background:transparent;color:#873829}.guanyin-status{text-align:center;font-size:13px;min-height:20px}.guanyin-result:not(:empty){border:1px solid #d3af79;border-radius:18px;padding:26px;background:#fffaf0c9;animation:guanyin-reveal .9s ease-out}.guanyin-number{text-align:center;letter-spacing:2px;color:#947044;font-size:12px}.guanyin-result h3{text-align:center;font:700 30px Georgia,'Songti SC',serif;color:#a22930;margin:14px 0}.guanyin-poem{white-space:pre-line;text-align:center;font:22px/2 Georgia,'Songti SC',serif;color:#ac3235}.guanyin-result h4{color:#94332b}.guanyin-note{font-size:12px;color:#79634f;line-height:1.7;margin-top:24px}@keyframes guanyin-reveal{from{opacity:0;transform:translateY(15px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}@media(max-width:600px){.guanyin-entry{top:298px;left:16px;padding:12px 14px;font-size:12px}.guanyin-result:not(:empty){padding:18px 12px}.guanyin-poem{font-size:18px}.guanyin-ritual{height:190px}}@media(prefers-reduced-motion:reduce){.shaking .guanyin-tube,.guanyin-result:not(:empty){animation:none}}
.guanyin-ritual{height:330px;isolation:isolate;background:radial-gradient(ellipse at 50% 55%,#f4dba766,transparent 65%)}.guanyin-portrait{display:block;width:320px;height:320px;max-width:86%;object-fit:contain;filter:drop-shadow(0 9px 16px #9c783d20)}.guanyin-ritual .guanyin-tube{position:absolute;left:calc(50% + 106px);bottom:8px;scale:.55;transform-origin:50% 100%;z-index:1}@media(max-width:600px){.guanyin-ritual{height:285px}.guanyin-portrait{width:275px;height:275px}.guanyin-ritual .guanyin-tube{left:calc(50% + 63px);scale:.43;bottom:4px}}
.guanyin-panel{display:none;position:absolute;z-index:7;right:4vw;top:43%;width:220px;text-align:center;color:#f9dfad}.guanyin-mode .guanyin-panel{display:block}.guanyin-panel button{display:block;width:100%;margin:12px 0;padding:15px;border:1px solid #ccaa68;border-radius:14px;color:#fff1d4;background:#9b2d29;font:600 15px/1.6 Georgia,'Songti SC',serif;cursor:pointer}.guanyin-panel .guanyin-panel-back{background:#281c17b3;font-size:12px;padding:9px}.guanyin-panel button:disabled{opacity:.65}.guanyin-panel-caption{font:14px/1.6 Georgia,'Songti SC',serif;letter-spacing:1px}.guanyin-mode #wave,.guanyin-mode .variants,.guanyin-mode .controls .divider{display:none}.guanyin-mode .guanyin-dialog .guanyin-ritual{display:none}.guanyin-mode .guanyin-dialog{max-width:640px}.guanyin-source{display:block;font-size:12px;color:#916637;margin-top:18px}.guanyin-grade{color:#a62e2d;text-align:center}@media(max-width:700px){.guanyin-panel{right:14px;top:auto;bottom:98px;width:185px}.guanyin-panel-caption{display:none}.guanyin-panel button{padding:10px;font-size:13px}.guanyin-mode .hint{display:none}}
.guanyin-incense{position:relative;display:flex;justify-content:center;gap:14px;height:75px;margin:-8px auto 20px;width:120px}.guanyin-incense i{position:relative;display:block;width:4px;height:62px;background:linear-gradient(#784026 70%,#c49d5c 70%);border-radius:2px}.guanyin-incense span{position:absolute;width:70px;height:20px;bottom:0;border-radius:4px 4px 22px 22px;background:linear-gradient(90deg,#92662e,#d4ad63,#92662e);border-top:3px solid #e0c489}.guanyin-incense.lit i:before{content:'';position:absolute;top:-3px;left:-1px;width:6px;height:6px;border-radius:50%;background:#ff9d37;box-shadow:0 0 9px 3px #ef7b3d80}.guanyin-incense.lit i:after{content:'';position:absolute;bottom:100%;left:-6px;width:16px;height:38px;border-left:2px solid #a8947c90;border-radius:50%;filter:blur(1px);animation:incense-drift 2.6s ease-out infinite}.guanyin-incense.lit i:nth-child(2):after{animation-delay:-.8s}.guanyin-incense.lit i:nth-child(3):after{animation-delay:-1.6s}@keyframes incense-drift{from{transform:translateY(0) scale(.6);opacity:.65}to{transform:translate(7px,-30px) scale(1.3);opacity:0}}@media(prefers-reduced-motion:reduce){.guanyin-incense.lit i:after{animation:none;opacity:.45}}
/* Temple depth: receding architecture, a separate devotional foreground and altar shadow. */
.guanyin-dialog{background:linear-gradient(180deg,#1b100bd9 0%,#21140d45 28%,#21140d75 58%,#160e0bea 100%),url('./guanyin-temple.png') center center/cover!important;color:#f6e7c9;border:1px solid #b58b4e;box-shadow:0 30px 100px #000b,inset 0 0 70px #120b0866}.guanyin-dialog header h2,.guanyin-dialog header small{color:#f9e3ae}.guanyin-dialog .guanyin-intro{color:#f4e5c8;text-shadow:0 2px 8px #120800}.guanyin-dialog .guanyin-close{background:#2e1c16d9;color:#ffedc9;border-color:#b58b4e}.guanyin-dialog .guanyin-ritual{height:370px;background:radial-gradient(ellipse at 50% 62%,#f7d5972b,transparent 67%);perspective:900px}.guanyin-dialog .guanyin-ritual:before{content:'';position:absolute;width:300px;height:45px;bottom:1px;left:50%;transform:translateX(-50%);background:radial-gradient(ellipse,#160b08b3,transparent 70%);filter:blur(6px);z-index:-1}.guanyin-dialog .guanyin-portrait{width:360px;height:360px;filter:drop-shadow(0 16px 14px #150a0880) drop-shadow(0 0 23px #f5d99c30)}.guanyin-dialog .guanyin-tube{left:calc(50% + 112px);bottom:4px}.guanyin-dialog .guanyin-topic-label,.guanyin-dialog .guanyin-status{color:#f8e6c3;text-shadow:0 1px 6px #000}.guanyin-dialog .guanyin-actions .guanyin-share{background:#301d17d9;color:#ffdfad}.guanyin-dialog .guanyin-note{color:#e0c9a6;background:#160c08a8;padding:12px;border-radius:10px}.guanyin-dialog .guanyin-result:not(:empty){color:#543426;background:#fff8eaf5;box-shadow:0 14px 35px #0005}.guanyin-dialog .guanyin-incense.lit i:after{border-color:#eddfc4ab}.guanyin-dialog .guanyin-incense{margin-top:-4px}@media(max-width:600px){.guanyin-dialog .guanyin-ritual{height:300px}.guanyin-dialog .guanyin-portrait{width:290px;height:290px}.guanyin-dialog .guanyin-tube{left:calc(50% + 65px)}.guanyin-dialog .guanyin-ritual:before{width:230px}}
.mobile-menu-toggle{display:none}.mobile-menu-dialog,.share-result-dialog{box-sizing:border-box;width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid #ba9155;border-radius:20px;padding:24px;background:#fff4df;color:#653525}.mobile-menu-dialog::backdrop,.share-result-dialog::backdrop{background:#160c08b8}.mobile-menu-dialog h2,.share-result-dialog h2{font-size:22px}.mobile-menu-dialog button,.share-result-dialog button{display:block;width:100%;min-height:44px;margin:10px 0;padding:12px;border:1px solid #bd985b;border-radius:10px;background:#93292c;color:#fff0d1;font:inherit;cursor:pointer}.share-result-dialog textarea{box-sizing:border-box;width:100%;height:210px;padding:12px;font:16px/1.6 sans-serif;border:1px solid #b89c73;border-radius:10px;color:#442819;background:#fff;user-select:text;-webkit-user-select:text}.share-result-dialog p{line-height:1.6}.is-revealing .fortune-actions{opacity:1;transform:none;pointer-events:auto}.fortune-actions button{min-height:44px;touch-action:manipulation}.fortune-card{overflow:visible}.fortune-dialog{overflow:auto!important;max-height:calc(100dvh - 20px)!important}@media(max-width:820px){.experience>.almanac-entry,.experience>.bazi-entry,.experience>.zodiac-entry,.experience>.iching-entry,.experience>.guanyin-entry{display:none}.mobile-menu-toggle{display:block;position:absolute;top:calc(70px + env(safe-area-inset-top));left:12px;z-index:5;padding:9px 14px;min-height:42px;border:1px solid #ab8552;border-radius:22px;background:#281b16e8;color:#f7deb1;font-size:12px}.fortune-scene .mobile-menu-toggle{display:none}.topbar{top:calc(10px + env(safe-area-inset-top));left:12px;right:12px;gap:8px}.brand{gap:7px}.brand b{font-size:17px;max-width:140px}.seal{width:34px;height:38px;font-size:21px}.language button{padding:8px 10px;font-size:12px;min-height:36px}.controls{bottom:calc(10px + env(safe-area-inset-bottom));gap:4px;padding:6px}.controls>button{min-width:44px;min-height:44px;padding:8px}.swatch{width:28px;height:28px}.fortune-card h2{font-size:clamp(22px,6vw,32px)!important;line-height:1.6!important}.fortune-card{padding:32px 15px 14px!important;min-height:0!important}.fortune-actions{margin-top:15px;gap:8px}.fortune-actions button{padding:10px 16px}.fortune-dialog{bottom:calc(8px + env(safe-area-inset-bottom))!important}.fortune-feedback{margin-bottom:8px}}
.share-channels{display:grid;gap:12px;margin:20px 0}.share-channels a{display:block;padding:16px;border-radius:12px;background:#19754c;color:#fff;text-align:center;text-decoration:none;font-weight:600;min-height:44px;box-sizing:border-box}.share-channels a:nth-child(2){background:#207fa9}.share-result-dialog details{margin:18px 0}.share-result-dialog summary{cursor:pointer;padding:12px 0}.share-result-dialog details textarea{margin-top:12px}
.prayer-counter{position:absolute;left:4vw;top:435px;z-index:4;display:grid;gap:5px;text-align:left;padding:12px 16px;background:#281a13d9;border:1px solid #9b7c4b;border-radius:15px;color:#f8dfac;cursor:pointer}.prayer-counter b{font:700 24px Georgia,serif;letter-spacing:1px}.prayer-counter small{font-size:10px;line-height:1.5}.fortune-scene .prayer-counter{display:none}.counter-details{width:min(460px,calc(100% - 36px));box-sizing:border-box;border:1px solid #c59c62;border-radius:20px;background:#fff2da;color:#623b29;padding:24px;max-height:calc(100dvh - 30px);overflow:auto}.counter-details::backdrop{background:#100a09b3}.counter-details p{line-height:1.9}.counter-details button{padding:12px 24px;background:#922b2b;color:#ffe8b9;border:0;border-radius:10px}@media(max-width:820px){.prayer-counter{top:calc(70px + env(safe-area-inset-top));left:auto;right:12px;padding:5px 10px;gap:1px;max-width:180px;border-radius:12px}.prayer-counter b{font-size:17px}.prayer-counter small{font-size:8px}.prayer-counter small:first-child{display:none}}
.prayer-counter{cursor:default}.prayer-counter small:first-child{display:block}@media(max-width:820px){.prayer-counter{gap:1px;padding:4px 10px}.prayer-counter small:first-child{display:block;font-size:8px}}
