:root{--paper:#f7f1e5;--paper-deep:#eee4d2;--sheet:#fffaf0;--ink:#35291f;--muted:#695d4d;--line:#d9ccb7;--red:#98533e;--red-dark:#783823;--blue:#29465d;--gold:#b48a53;--serif:'Noto Serif SC','Songti SC',serif;--sans:'Noto Sans SC','PingFang SC',sans}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--sans);min-width:320px}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}svg{display:block}::selection{background:#d9b89d;color:#2e2119}.skip{position:absolute;left:-9999px;top:0;background:#fff;padding:8px;z-index:50}.skip:focus{left:8px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b26342;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.48}
.topbar{height:66px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100vw - 1080px)/2));background:#f8f2e8ed;backdrop-filter:blur(12px);border-bottom:1px solid #e5d9c6}.identity{display:flex;align-items:center;gap:9px}.identity-seal{width:35px;height:35px;border:1.5px solid var(--red);color:var(--red);display:grid;place-items:center;border-radius:50%;font:700 21px/1 var(--serif)}.identity-name{font:700 21px/1 var(--serif);letter-spacing:.06em}.identity-name small{display:block;font:10px/1.1 var(--sans);letter-spacing:.16em;color:#766958;margin-top:4px}.top-record{display:flex;align-items:center;gap:5px;border:0;background:transparent;color:#6d5644;font-size:13px;padding:8px}.top-record svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
#app{min-height:calc(100vh - 150px);padding-bottom:calc(110px + env(safe-area-inset-bottom));outline:0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;height:calc(70px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;padding-bottom:env(safe-area-inset-bottom);background:#fffaf4;border-top:1px solid #d9ccb7;box-shadow:0 -7px 24px #3b2a190e}.bottom-nav button{border:0;background:transparent;color:#796b59;display:grid;place-content:center;justify-items:center;gap:1px;font-weight:600;font-size:13px}.bottom-nav button.active{color:var(--red-dark);background:#f6e9dc}.bottom-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}#toast{position:fixed;bottom:calc(83px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,10px);z-index:60;max-width:min(90vw,430px);padding:10px 16px;border-radius:9px;background:#3f322a;color:white;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center;font-size:13px}#toast.show{opacity:1;transform:translate(-50%,0)}
.page{width:min(100%,1080px);margin:auto;padding:24px 20px 34px}.back-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.back-btn{border:0;background:transparent;color:#705846;padding:5px 0;font-size:14px}.tiny-link{font-size:13px;color:var(--red-dark);text-decoration:underline;text-underline-offset:4px}.page-title{font:600 clamp(28px,5.8vw,44px)/1.42 var(--serif);letter-spacing:-.025em;margin:8px 0 12px}.lead{color:#6a5a48;font-size:15px;line-height:1.9;max-width:58ch;margin:0 0 26px}.section-title{font:600 23px/1.4 var(--serif);margin:28px 0 16px}.fine{font-size:13px;line-height:1.8;color:#756755}.notice{font-size:13px;line-height:1.8;color:#6f5a44;background:#efe3d0;padding:12px 14px;border-radius:6px}.primary{border:0;border-radius:5px;background:var(--red-dark);color:#fff;padding:13px 18px;font-weight:600;min-height:46px}.primary:hover{background:#944830}.secondary{border:1px solid #ac9175;border-radius:5px;background:#fff9ee;color:#654b38;padding:12px 18px;min-height:46px;font-weight:600}.button-row{display:flex;gap:9px;flex-wrap:wrap}.pill{display:inline-flex;border-radius:99px;background:#eadcc4;color:#704e32;font-size:12px;padding:5px 10px;font-weight:600}.pill.blue{background:#dce4e6;color:#345367}.pill.light{background:#f8eddf;color:#8c4c32}
.home-stage{padding-top:24px}.home-paper{position:relative;overflow:hidden;border-radius:4px;background:#fff9ef;border:1px solid #e8d9c2;padding:34px 26px 31px;box-shadow:0 10px 34px #60462d0a}.home-paper::after{content:'';position:absolute;right:-53px;top:18px;width:180px;height:180px;border:1px solid #d9b89b;border-radius:50%;opacity:.4;pointer-events:none}.home-paper h1{font:600 clamp(32px,7vw,56px)/1.4 var(--serif);letter-spacing:-.04em;max-width:700px;margin:0 0 16px}.home-paper p{color:#604f3f;line-height:1.9;max-width:560px;margin:0 0 22px}.home-mark{display:inline-block;color:var(--red-dark);font:16px var(--serif);letter-spacing:.1em;margin-bottom:18px}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.entry{display:block;position:relative;overflow:hidden;min-height:202px;border-radius:6px;padding:22px;color:#fff}.entry.chant{background:#294d63}.entry.care{background:#9b573d}.entry::after{content:'';position:absolute;right:-40px;bottom:-42px;width:190px;height:190px;border:1px solid #ffffff70;border-radius:50%;box-shadow:0 0 0 28px #ffffff13,0 0 0 60px #ffffff0d}.entry h2{font:600 28px var(--serif);margin:0 0 10px}.entry p{font-size:13px;line-height:1.7;max-width:200px;color:#fff8;margin:0}.entry .arrow{position:absolute;bottom:20px;right:23px;font-size:24px}.home-quote{margin-top:24px;color:#84705b;font:16px/1.9 var(--serif);text-align:center}
.tradition-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tradition-tile{position:relative;overflow:hidden;min-height:270px;border-radius:7px;background:#ddd;color:#fff;display:flex;align-items:end}.tradition-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 29%}.tradition-tile::after{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#24160dc9)}.tradition-tile>div{position:relative;z-index:1;padding:20px}.tradition-tile h2{font:600 27px var(--serif);margin:0 0 4px}.tradition-tile p{font-size:12px;color:#f7eadc;margin:0}.quick-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-link{display:flex;align-items:center;justify-content:space-between;background:#fffaf0;border:1px solid #e4d7c4;border-radius:5px;padding:15px;font-size:14px;font-weight:600}.mini-records{margin-top:10px;background:#fffaf0;border-radius:5px;padding:18px}.mini-records p{margin:0;color:#6d5e4e;font-size:14px}.mini-records strong{font:600 30px var(--serif);color:#914b34}
.shelf-head{display:flex;align-items:flex-end;gap:16px;justify-content:space-between}.shelf-head h1{margin-bottom:6px}.shelf-head p{margin:0;color:#746352;font-size:13px}.shelf-switch{display:flex;gap:5px;background:#eee2d0;border-radius:99px;padding:3px;flex:none}.shelf-switch button,.filter-row button{border:0;background:transparent;border-radius:99px;color:#6e5d4b;font-size:13px;padding:7px 13px}.shelf-switch button.active,.filter-row button.active{background:#fffaf1;color:#80432d;box-shadow:0 1px 4px #39251519}.shelf-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:24px 0}.filter-row{display:flex;gap:4px}.incense-link{display:flex;gap:5px;align-items:center;color:#914d34;font-size:14px;font-weight:600;white-space:nowrap}.incense-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 18px}.book-card{min-width:0}.book-card a{display:block}.book-card h3{font:600 17px/1.45 var(--serif);margin:11px 0 5px}.book-card p{font-size:12px;line-height:1.6;color:#766854;margin:0}.book-card .book-meta{display:flex;gap:6px;align-items:center;margin-top:7px}.book-meta small{font-size:11px;color:#a15037}.cover{position:relative;overflow:hidden;aspect-ratio:3/4;border-radius:3px 7px 7px 3px;background:var(--cover-bg,#a2523d);color:var(--cover-ink,#fff4df);box-shadow:5px 7px 13px #4733211c,inset 6px 0 7px #301d1d25}.cover::before{content:'';position:absolute;inset:9px;border:1px solid currentColor;opacity:.38}.cover::after{content:'';position:absolute;left:8px;top:0;bottom:0;border-left:1px solid currentColor;opacity:.28}.cover-inner{height:100%;display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:16px 14px 18px;text-align:center}.cover-top{font-size:10px;letter-spacing:.22em;opacity:.85}.cover-motif{width:54%;max-width:110px;aspect-ratio:1;display:grid;place-items:center;margin-top:3px}.cover-motif svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.cover-title{font:600 clamp(17px,2vw,25px)/1.35 var(--serif);letter-spacing:.05em}.cover-bottom{font-size:10px;letter-spacing:.16em;opacity:.8}.cover[data-tone='indigo']{--cover-bg:#27485e;--cover-ink:#e9d6ac}.cover[data-tone='cinnabar']{--cover-bg:#924b36;--cover-ink:#f5ddaf}.cover[data-tone='ochre']{--cover-bg:#ad7c42;--cover-ink:#2d281f}.cover[data-tone='ink']{--cover-bg:#393832;--cover-ink:#e6d4aa}.cover[data-tone='clay']{--cover-bg:#9e634e;--cover-ink:#fff0d2}.cover[data-tone='teal']{--cover-bg:#365d5d;--cover-ink:#eee1b7}.shelf-note{margin:26px 0 0;padding:16px;background:#efe5d5;border-radius:6px;color:#665646;font-size:13px;line-height:1.8}
.book-detail{display:grid;grid-template-columns:260px 1fr;gap:34px;align-items:start}.detail-cover{max-width:260px}.detail-panel h1{font:600 clamp(27px,4vw,40px)/1.4 var(--serif);margin:10px 0}.detail-panel>p{font-size:16px;color:#5e5044}.detail-facts{display:grid;grid-template-columns:92px 1fr;gap:8px 15px;padding:18px 0;margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.detail-facts dt{color:#8c7155;font-size:13px}.detail-facts dd{margin:0;font-size:14px}.detail-note{color:#78644f;font-size:13px;line-height:1.8;margin-top:20px}.reader-shell{max-width:740px;margin:auto}.reader-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.reader-top h1{font:600 28px/1.4 var(--serif);margin:0 0 4px}.reader-actions{display:flex;gap:4px;flex:none}.reader-actions button{border:1px solid #c6b394;background:#fffaf0;border-radius:5px;color:#6b4e3a;min-width:42px;height:39px;font-size:13px}.reader-paper{margin-top:20px;background:#fffaf1;border:1px solid #eadcc8;padding:20px clamp(16px,5vw,45px) 27px;border-radius:4px;box-shadow:0 9px 30px #4935220c}.reader-line{padding:22px 0;border-bottom:1px solid #e8ddcb}.reader-line:last-child{border:0}.reader-pinyin{font-size:calc(var(--reader-size,22px)*.58);line-height:2.1;letter-spacing:.045em;color:#9a6849;margin:0 0 12px;word-break:break-word}.reader-hanzi{font:500 var(--reader-size,22px)/2.05 var(--serif);letter-spacing:.04em;margin:0;word-break:break-word}.reader-footer{padding:24px 0 0;text-align:center}.reader-footer p{font-size:13px;color:#786856}.reader-footer .primary{width:100%;max-width:350px}.source-link{display:inline-block;color:#895037;text-decoration:underline;text-underline-offset:4px;font-size:13px;margin-top:18px}
.altar-page{max-width:690px}.altar-intro{font-size:14px;color:#695947;margin:0 0 16px}.altar-stage{position:relative;overflow:hidden;aspect-ratio:4/5;max-height:620px;border-radius:6px;background:#d9c7a6;box-shadow:0 8px 22px #44301d19}.altar-stage img{width:100%;height:100%;object-fit:cover}.altar-stage::after{content:'';position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(transparent,#2b1a11ab);pointer-events:none}.incense-setup{position:absolute;z-index:2;bottom:4%;left:50%;transform:translateX(-50%);height:30%;width:60%;display:flex;align-items:flex-end;justify-content:center}.censer{position:absolute;bottom:0;width:68%;height:49%;background:linear-gradient(#ccaa70,#8c5f3d);border:3px solid #b98953;border-radius:18% 18% 45% 45%/20% 20% 68% 68%;box-shadow:inset 0 7px 8px #f0cf9775,0 5px 8px #22130b66}.censer::before{content:'';position:absolute;top:-8px;left:-7%;width:114%;height:15px;border:3px solid #d2a46c;border-radius:50%;background:#7b5536}.censer::after{content:'';position:absolute;left:34%;top:28%;width:32%;height:22%;border:1px solid #e2c18b;border-radius:50%}.sticks{position:absolute;z-index:1;bottom:34%;display:flex;gap:25px;align-items:flex-end;justify-content:center;height:70%}.stick{position:relative;width:5px;height:100%;background:linear-gradient(to bottom,transparent var(--burn,0%),#7e3227 var(--burn,0%));border-radius:3px;box-shadow:2px 0 2px #2c170844}.stick::after{content:'';position:absolute;left:-2px;top:calc(var(--burn,0%) - 3px);height:7px;width:9px;border-radius:50%;background:#ed8950;box-shadow:0 0 10px #ffba6d;opacity:0}.altar-stage.burning .stick::after{opacity:1}.smoke{position:absolute;bottom:100%;left:50%;width:2px;height:75px;opacity:0;background:linear-gradient(transparent,#f3ead9b0,transparent);border-radius:50%;filter:blur(4px);transform-origin:bottom;animation:smoke-rise 5s ease-in-out infinite}.altar-stage.burning .smoke{opacity:.75}.stick:nth-child(2) .smoke{animation-delay:1.5s}.stick:nth-child(3) .smoke{animation-delay:3s}@keyframes smoke-rise{0%{transform:translate(-2px,18px) rotate(-7deg) scale(.5);opacity:0}35%{opacity:.65}100%{transform:translate(13px,-43px) rotate(15deg) scale(1.8);opacity:0}}.altar-controls{background:#fff9ed;border:1px solid #e5d8c4;border-top:0;padding:19px;border-radius:0 0 6px 6px}.altar-controls h2{font:600 21px var(--serif);margin:0 0 8px}.altar-controls p{color:#6c5a48;font-size:13px;margin:0 0 12px}.count-choice{display:flex;gap:8px;margin:12px 0}.count-choice button{border:1px solid #bba78a;background:transparent;border-radius:5px;padding:8px 15px;color:#695139;font-size:13px}.count-choice button.active{background:#7f4530;color:#fff;border-color:#7f4530}.incense-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 0;font-size:13px}.timer{font:600 20px var(--serif);font-variant-numeric:tabular-nums;color:#8d4932}.altar-controls .primary{width:100%;margin-top:15px}.altar-disclaimer{font-size:12px;color:#746452;line-height:1.8;margin:16px 0}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.product{background:#fffaf1;border:1px solid #e6dac8;border-radius:6px;overflow:hidden;display:flex;flex-direction:column}.product-placeholder{aspect-ratio:4/3;background:#eee4d5;display:grid;place-items:center;position:relative}.product-placeholder::after{content:'产品图待替换';position:absolute;bottom:10px;color:#8d7b64;font-size:11px;letter-spacing:.1em}.product-placeholder svg{width:86px;height:86px;fill:none;stroke:#a47d58;stroke-width:1.3;stroke-linejoin:round}.product-content{padding:15px;display:flex;flex-direction:column;flex:1}.product h2{font:600 19px var(--serif);margin:0 0 5px}.product-price{font:700 21px var(--sans);color:#9b4b30}.product-price small{font-size:11px;font-weight:400;color:#a85b43}.product p{font-size:12px;line-height:1.65;color:#685b4a;margin:8px 0 16px;flex:1}.product button{border:1px solid #a4563d;color:#94452d;background:#fff7ec;border-radius:5px;min-height:39px;font-size:13px;font-weight:600}.product button.added{background:#8c462f;color:#fff}.selection-bar{position:fixed;z-index:25;bottom:calc(70px + env(safe-area-inset-bottom));left:0;right:0;background:#fff9ef;border-top:1px solid #dccbb4;padding:10px max(18px,calc((100vw - 1060px)/2));display:flex;align-items:center;justify-content:space-between;box-shadow:0 -4px 12px #3525180b}.selection-bar strong{font-size:14px}.selection-bar small{font-size:12px;color:#806a54}.selection-bar .primary{min-width:126px}.cart-list{display:grid;gap:10px}.cart-item{background:#fffaf0;border:1px solid #e5d8c6;border-radius:5px;padding:15px;display:flex;justify-content:space-between;gap:15px;align-items:center}.cart-item h2{font:600 18px var(--serif);margin:0 0 4px}.cart-item p{font-size:12px;color:#7c6a56;margin:0}.qty{display:flex;align-items:center;gap:12px}.qty button{height:30px;width:30px;border-radius:50%;border:1px solid #bc9e7b;background:transparent;color:#784c32}.qty strong{font-variant-numeric:tabular-nums}.cart-total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.cart-total strong{font-size:26px;color:#9c4b30}.cart-action{width:100%;margin-top:18px}.empty-state{background:#fff9ef;border:1px dashed #ccb89a;border-radius:6px;padding:30px;text-align:center;color:#685848}.empty-state p{margin:0 0 15px}.record-section{margin-top:27px}.record-row{padding:12px 0;border-bottom:1px solid #e3d7c6;display:flex;align-items:center;justify-content:space-between;gap:12px}.record-row strong{font-size:14px}.record-row small{display:block;font-size:12px;color:#8a7762}.record-row .record-time{font-size:12px;color:#8b6b51;white-space:nowrap}.record-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.record-summary div{background:#fffaf0;padding:18px;border-radius:5px}.record-summary strong{font:600 28px var(--serif);display:block;color:#95533c}.record-summary span{font-size:12px;color:#6d5b49}
@media(max-width:760px){.page{padding:21px 17px 32px}.home-actions{grid-template-columns:1fr}.entry{min-height:155px}.tradition-grid{gap:10px}.tradition-tile{min-height:230px}.tradition-tile>div{padding:13px}.tradition-tile h2{font-size:23px}.tradition-tile p{font-size:11px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 12px}.book-card h3{font-size:16px}.book-card p{font-size:12px}.cover-inner{padding:13px 11px 15px}.cover-title{font-size:18px}.cover-motif{width:53%}.book-detail{grid-template-columns:120px 1fr;gap:19px}.detail-panel h1{font-size:26px}.detail-cover{max-width:120px}.detail-facts{grid-template-columns:1fr;gap:3px}.detail-facts dt{font-weight:700}.detail-facts dd{margin-bottom:8px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.product-placeholder svg{width:62px;height:62px}.product-content{padding:11px}.product h2{font-size:17px}.product-price{font-size:19px}.product p{font-size:11px}.shelf-head{align-items:flex-start}.shelf-switch{margin-top:7px}.reader-top h1{font-size:24px}}
@media(max-width:420px){.shelf-head{display:block}.shelf-switch{display:inline-flex;margin-top:12px}.shelf-tools{margin-top:17px}.filter-row button{padding:7px 10px}.tradition-tile{min-height:210px}.book-detail{grid-template-columns:104px 1fr;gap:15px}.detail-cover{max-width:104px}.detail-panel h1{font-size:23px}.cover-title{font-size:17px}.reader-paper{padding:12px 16px}.reader-hanzi{line-height:1.9}.altar-stage{aspect-ratio:4/5}.incense-setup{width:67%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Mobile readability and flat paper/bronze finishes. */
.home-paper{box-shadow:none}
.reader-paper{box-shadow:none}
.identity-name small{font-size:11px;letter-spacing:.1em}
.cover-top,.cover-bottom{font-size:11px;letter-spacing:.12em;opacity:1}
.cover[data-tone='cinnabar']{--cover-ink:#fff0d3}
.censer{background:#a9794e}
.product-placeholder::after,.product-price small{font-size:12px}
.product p,.record-row small,.record-row .record-time{font-size:13px}
.care-page{padding-bottom:76px}
.package-section{margin:36px 0 38px}.package-heading,.product-heading{margin-bottom:18px}.package-heading>span,.product-heading>span{color:#9f6343;font-size:12px;letter-spacing:.17em}.package-heading h2,.product-heading h2{font:600 clamp(25px,3vw,34px) var(--serif);margin:7px 0}.package-heading p,.product-heading p{color:#746453;font-size:13px;line-height:1.65;margin:0}.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.package-card{display:flex;flex-direction:column;background:#f1e8d8;border:1px solid #dbc9ab;border-radius:5px;padding:20px;min-height:265px}.package-no{font-size:11px;letter-spacing:.13em;color:#947658}.package-card h3{font:600 24px var(--serif);margin:13px 0 3px;color:#493727}.package-card>strong{font-size:13px;font-weight:500;color:#9b583c}.package-card p{font-size:12px;line-height:1.7;color:#6d5b47;margin:12px 0}.package-items{margin-top:auto;border-top:1px solid #d7c6ac;padding-top:13px;font-size:12px;line-height:1.7;color:#584531}.package-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}.package-foot span{font-size:12px;color:#715841}.package-foot b{font-size:19px;color:#8e4933}.package-foot button{border:1px solid #88543d;background:#87543e;color:#fff;border-radius:4px;padding:9px 11px;white-space:nowrap;font-size:12px}.product-heading{margin-top:35px}.product-photo{aspect-ratio:1/1;background:#f1e8db;display:grid;place-items:center;overflow:hidden}.product-photo img{width:100%;height:100%;object-fit:contain;display:block}.product-spec{font-size:11px;color:#8b7560;min-height:17px}.product-price small{font-size:12px;color:#806b56;font-weight:400}.product p{font-size:12px}.product button:focus-visible,.package-foot button:focus-visible{outline:3px solid #bc8a55;outline-offset:3px}
@media(max-width:760px){.package-grid{grid-template-columns:1fr;gap:10px}.package-card{min-height:0;padding:17px}.package-card h3{font-size:22px}.product-heading{margin-top:30px}.product-photo{aspect-ratio:1/1}.product-content{padding:11px}.product h2{font-size:16px}.product-spec{font-size:10px}.product p{font-size:11px}}
@media(max-width:760px){.product p{font-size:13px}}

.eyebrow{display:block;color:#8c4a34;font-size:12px;letter-spacing:.12em;font-weight:700;margin-bottom:10px}
.home-utility{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.home-utility section{min-height:176px;background:#fff8ec;border:1px solid #e5d6c0;border-radius:6px;padding:19px;display:flex;align-items:flex-start;flex-direction:column}
.home-utility strong{font:600 35px var(--serif);color:#8d4932;line-height:1}
.home-utility strong small{font:15px var(--sans);margin-left:5px}
.home-utility h2{font:600 19px/1.45 var(--serif);margin:0;color:#453424}
.home-utility p{font-size:13px;line-height:1.7;color:#766550;margin:10px 0 14px}
.home-utility button{background:none;border:0;padding:0;margin-top:auto;cursor:pointer}

.reader-pinyin-toggle{border:1px solid #bba58a;background:#fff7e9;border-radius:5px;padding:8px 12px;min-height:40px;color:#724934;font-size:13px;white-space:nowrap}
.reader-size-tools{margin:17px 0 0;display:flex;gap:10px;align-items:center;padding:12px 14px;background:#f1e6d4;border-radius:5px}
.reader-size-tools label{font-size:13px;white-space:nowrap;color:#5b4837}
.reader-size-tools output{font-variant-numeric:tabular-nums;color:#8d4932}
.reader-size-tools button{border:1px solid #c6b394;border-radius:4px;background:#fff9ed;min-width:36px;height:36px;color:#694937}
.reader-size-tools input{flex:1;min-width:55px;accent-color:#8b442e}
.reader-pinyin{font-size:max(13px,calc(var(--reader-size,22px)*.58))}
.reading-counter{display:flex;justify-content:center;gap:24px;margin:14px 0 20px;color:#68513d}
.reading-counter strong{font:600 29px var(--serif);color:#8e482f;margin:0 4px}
.reader-record-link{display:block;margin:18px auto 0;background:none;border:0;cursor:pointer}

.altar-stage .altar-group-art{display:block;width:100%;height:100%;object-fit:cover}
.deity-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;width:100%;height:100%;gap:3px;background:#e2d2b9}
.deity-mosaic.count-1{display:block}
.deity-mosaic.count-2{grid-template-rows:1fr}
.deity-mosaic.count-3 .mosaic-panel:first-child{grid-row:span 2}
.mosaic-panel{position:relative;min-width:0;background-repeat:no-repeat;background-color:#d4bd97}
.mosaic-panel::after{content:'';position:absolute;inset:0 0 auto;height:28%;background:linear-gradient(#24170c8a,transparent)}
.mosaic-panel span{position:absolute;top:12px;left:12px;z-index:1;color:#fff9e8;font:600 16px var(--serif);text-shadow:0 1px 3px #362014}
.deity-picker{padding:23px 0 20px}
.deity-picker-head{display:flex;align-items:end;justify-content:space-between;gap:12px}
.deity-picker h2{font:600 23px var(--serif);margin:0}
.deity-picker-head button{border:0;background:none;white-space:nowrap;cursor:pointer;padding:5px}
.deity-picker>p{font-size:13px;line-height:1.7;color:#766550;margin:10px 0 16px}
.deity-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.deity-card{background:#fffaf1;border:1px solid #e6d9c5;border-radius:5px;overflow:hidden;min-width:0}
.deity-select{display:block;position:relative;width:100%;padding:0;border:0;background:#fffaf1;text-align:left;color:#44372d;cursor:pointer}
.deity-select.selected{box-shadow:inset 0 0 0 3px #9c4c34}
.deity-select:disabled{cursor:default}
.deity-thumb{display:block;width:100%;aspect-ratio:2/3;background-repeat:no-repeat;background-color:#e5d3b3}
.deity-label{display:block;padding:9px 8px 8px;min-height:57px}
.deity-label strong{display:block;font:600 15px var(--serif)}
.deity-label small{display:block;font-size:11px;color:#806c55;margin-top:3px}
.deity-check{position:absolute;right:6px;top:6px;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#fff9e8;color:#8d4932;font-weight:700;box-shadow:0 1px 6px #2b1a1133}
.deity-select.selected .deity-check{background:#8d4932;color:white}
.deity-card p{font-size:12px;line-height:1.6;color:#695947;margin:0;padding:0 8px 8px}
.deity-card>a{font-size:11px;display:block;color:#8d4932;padding:0 8px 11px;text-decoration:underline}

.calendar-card{background:#fff9ee;border:1px solid #e3d5be;border-radius:6px;padding:18px}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}
.calendar-heading h2{font:600 23px var(--serif);margin:0}
.calendar-heading button{border:1px solid #d6c3a8;background:#fffdf7;width:38px;height:38px;border-radius:50%;color:#804c34;font-size:19px}
.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.calendar-week span{text-align:center;color:#8a765f;font-size:12px;padding:0 0 10px}
.calendar-cell{position:relative;min-width:0;min-height:67px;border:1px solid transparent;background:transparent;border-radius:4px;color:#4d3b2c;display:flex;align-items:center;flex-direction:column;padding:6px 1px;cursor:pointer}
.calendar-cell strong{font:600 16px var(--sans);font-variant-numeric:tabular-nums}
.calendar-cell small{font-size:11px;color:#93806b;margin-top:3px}
.calendar-cell.today{border-color:#c4ae90}
.calendar-cell.selected{background:#8d4932;color:#fff9ef}
.calendar-cell.selected small{color:#f9e7d4}
.calendar-cell.has-event:not(.selected){background:#f4e6d2}
.calendar-cell.has-prep:not(.selected):not(.has-event){background:#f7f1e4}
.calendar-cell.has-prep:not(.selected){box-shadow:inset 0 -2px 0 #aa8668}
.event-dots{display:flex;gap:3px;position:absolute;bottom:5px}
.event-dots b,.calendar-legend i{width:5px;height:5px;display:inline-block;border-radius:50%;background:#a6523a}
.event-dots b.daoist,.calendar-legend i.daoist{background:#355c68}
.event-dots b.folk,.calendar-legend i.folk{background:#814f39}
.event-dots b.prep,.calendar-legend i.prep{background:#ab8764}
.calendar-cell.selected .event-dots b{background:#fff0cf}
.calendar-legend{display:flex;gap:15px;flex-wrap:wrap;margin:12px 0 28px;color:#776550;font-size:12px}
.calendar-legend i{margin-right:5px;vertical-align:middle;width:8px;height:8px}
.festival-detail h2{font:600 21px var(--serif);margin:0 0 14px}
.festival-detail{scroll-margin-top:86px}
.festival-note{display:flex;gap:14px;background:#fff9ee;border:1px solid #e8dac5;border-radius:5px;padding:15px;margin-top:9px}
.festival-note h3{font:600 18px var(--serif);margin:0 0 7px}
.festival-note p,.calendar-empty{font-size:14px;line-height:1.8;color:#6f5c49;margin:0}
.festival-note a{display:inline-block;margin-top:9px;color:#8b4933;font-size:13px;text-decoration:underline}
.festival-note .pill{align-self:flex-start;flex:none;white-space:nowrap}
.pill.folk{background:#e9d8c6;color:#71442f}.pill.prep{background:#eee6d7;color:#6f5944}
.home-utility{grid-template-columns:1fr}
.home-utility .home-record-card{min-height:118px;display:grid;grid-template-columns:1fr auto;column-gap:18px;align-items:center}
.home-record-card .eyebrow,.home-record-card p,.home-record-card button{grid-column:1}
.home-record-card strong{grid-column:2;grid-row:1/4;white-space:nowrap}
.home-utility .home-record-card p{margin:5px 0 6px}
.home-calendar{margin-top:26px}
.home-calendar-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:12px}
.home-calendar-head h2{font:600 23px/1.4 var(--serif);margin:0 0 4px;color:#453424}
.home-calendar-head p{font-size:13px;line-height:1.65;color:#766550;margin:0}
.home-calendar-head button{border:0;background:transparent;white-space:nowrap;cursor:pointer}
.calendar-compact .calendar-cell{min-height:58px}
.home-calendar-selection{padding:15px 17px;background:#fff8ec;border:1px solid #e5d6c0;border-radius:6px}
.home-calendar-selection strong{font-size:15px;color:#513b2b}
.home-calendar-selection p{font-size:13px;color:#6c5845;margin:5px 0 9px}
.home-calendar-selection button{border:0;background:transparent;padding:0;cursor:pointer}
.product-guidance{flex:1;margin:10px 0 16px;display:grid;align-content:start;gap:8px}
.product .product-guidance p{margin:0;display:grid;gap:2px;line-height:1.55;flex:none;font-size:12px;color:#675642}
.product-guidance strong{font-size:11px;color:#8a4d35;font-weight:700}
@media(max-width:760px){.home-calendar-head{align-items:start;flex-direction:column;gap:7px}.home-utility .home-record-card{min-height:105px}.calendar-compact .calendar-cell{min-height:57px}.product .product-guidance p{font-size:11px}}

@media(max-width:760px){.deity-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.home-utility{grid-template-columns:1fr}.home-utility section{min-height:155px}.deity-label strong{font-size:16px}.deity-card p{font-size:13px}.deity-card>a{font-size:12px}}
@media(max-width:420px){.reader-size-tools{gap:6px;padding:10px 8px}.reader-size-tools label{font-size:12px}.reader-size-tools button{min-width:31px}.calendar-card{padding:12px 8px}.calendar-week,.calendar-grid{gap:2px}.calendar-cell{min-height:61px}}

.reader-page-label{display:flex;justify-content:space-between;gap:12px;margin:17px 0 0;color:#856e55;font-size:12px}
.reader-ruby{font:500 var(--reader-size,22px)/2.7 var(--serif);letter-spacing:0;color:#35291f;margin:0;overflow-wrap:anywhere;word-break:normal;text-align:left}
.reader-ruby ruby{ruby-position:over;white-space:nowrap;margin:0 .02em}
.reader-ruby rb{white-space:nowrap}
.reader-ruby rt{font:500 max(12px,calc(var(--reader-size,22px)*.54))/1.25 var(--sans);color:#865235;letter-spacing:0;white-space:nowrap}
.reader-punctuation{white-space:pre-wrap}
.reader-section-title{font:600 18px/1.5 var(--serif);color:#78523d;margin:0 0 15px}
.reader-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;color:#76644f}
.reader-pager button{border:0;background:transparent;color:#874b35;padding:8px 4px;min-height:40px;font-size:13px}
.reader-pager button:disabled{color:#aa9b88}
.source-credit{font-size:12px;color:#7d6c58;line-height:1.7}
@media(max-width:420px){.reader-ruby{line-height:2.65}.reader-paper{padding:16px 14px}}

/* A shared painted backdrop and feathered portraits make selected figures read as one altar scene. */
.deity-mosaic{position:relative;isolation:isolate;display:grid;gap:0;width:100%;height:100%;background-size:cover;background-position:center;overflow:hidden}
.deity-mosaic.count-1{display:grid;grid-template-columns:1fr;grid-template-rows:1fr}
.deity-mosaic.count-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
.deity-mosaic.count-3,.deity-mosaic.count-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.deity-mosaic.count-3 .mosaic-panel:first-child{grid-row:1/3}
.deity-mosaic:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#f9e6c935 0%,transparent 38%,#49301f47 100%);mix-blend-mode:multiply}
.mosaic-panel{min-width:0;min-height:0;margin:-4%;background-size:auto 200%!important;background-color:transparent;filter:saturate(.82) sepia(.09);-webkit-mask-image:radial-gradient(ellipse 88% 88% at 50% 50%,#000 47%,transparent 100%);mask-image:radial-gradient(ellipse 88% 88% at 50% 50%,#000 47%,transparent 100%)}
.deity-mosaic.count-1 .mosaic-panel{margin:0;background-size:200% 200%!important;-webkit-mask-image:none;mask-image:none}
.deity-mosaic.count-2 .mosaic-panel{margin:-6% -17%}
.mosaic-panel:after{display:none}
.mosaic-panel span{top:auto;bottom:15px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#3f2e21ac;padding:3px 9px;border-radius:99px;font-size:13px}
.combo-section{margin-top:18px;padding:17px;background:#fff8ec;border:1px solid #e5d5bd;border-radius:6px}
.combo-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}
.combo-heading h2{font:600 19px var(--serif);margin:0}
.combo-heading button{border:1px solid #9c6a4a;background:#fff6e7;color:#78462f;border-radius:4px;padding:7px 10px;min-height:38px;font-size:12px;white-space:nowrap}
.combo-section>p{margin:10px 0 0;font-size:12px;color:#74614e}
.combo-list{display:grid;gap:7px;margin-top:12px}
.saved-combo{display:flex;align-items:stretch;border:1px solid #e2d2ba;border-radius:4px;background:#fffdf6}
.saved-combo>button:first-child{flex:1;text-align:left;border:0;background:transparent;color:#4e3829;padding:9px 11px;font-size:13px;min-width:0}
.saved-combo span{float:right;color:#96533c;font-size:12px}
.saved-combo .combo-delete{border:0;border-left:1px solid #e2d2ba;background:transparent;color:#8c634e;font-size:19px;width:38px}
.combo-empty{font-size:12px;color:#82705b;margin:0}
.reader-pager button:disabled{color:#756859;opacity:.8}
.reader-ruby ruby{margin:0 .12em}
.reader-ruby rt{font-size:max(13px,calc(var(--reader-size,22px)*.54))}
.deity-mosaic.count-2{display:block}
.deity-mosaic.count-2 .mosaic-panel{position:absolute;top:0;bottom:0;width:68%;height:100%;margin:0;background-size:auto 200%!important}
.deity-mosaic.count-2 .mosaic-panel:first-child{left:-1%;-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 53%,transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 53%,transparent 100%)}
.deity-mosaic.count-2 .mosaic-panel:nth-child(2){right:-1%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 47%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 47%,#000 100%)}

/* Each selected figure has a transparent silhouette over one continuous painted landscape. */
.altar-stage{aspect-ratio:4/3;max-height:690px;background:#e2cfaa}
.altar-composition{position:absolute;inset:0;background-size:cover;background-position:center;overflow:hidden}
.figure-row{position:absolute;inset:4% 2% 13%;z-index:1;display:flex;align-items:flex-end;justify-content:center}
.altar-figure{flex:0 1 25%;height:100%;display:flex;align-items:flex-end;justify-content:center;min-width:0}
.figure-row.count-1 .altar-figure{flex-basis:58%}
.figure-row.count-2 .altar-figure{flex-basis:47%}
.figure-row.count-3 .altar-figure{flex-basis:34%}
.figure-row.count-4 .altar-figure{flex-basis:25%}
.altar-figure img{display:block;width:112%;height:100%;max-width:none;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 4px 4px #38291b35)}
.figure-row.count-3 .altar-figure img{width:118%}
.figure-row.count-4 .altar-figure img{width:126%}
.incense-setup{inset:0;left:0;bottom:0;transform:none;width:100%;height:100%;display:block;pointer-events:none}
.censer-object{position:absolute;z-index:3;left:50%;bottom:-5%;transform:translateX(-50%);width:60%;aspect-ratio:3/2}
.censer-object img{display:block;width:100%;height:100%;object-fit:contain}
.censer-inscription{position:absolute;top:52%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;color:#2f2116;font:700 clamp(12px,3.7vw,21px)/1.2 var(--serif);letter-spacing:.1em;text-shadow:0 1px #ecd49c,0 -1px #301e1488}
.sticks{z-index:2;bottom:42%;height:31%;gap:12px}
.stick{width:4px;background:linear-gradient(to bottom,transparent var(--burn,0%),#5c211b var(--burn,0%),#7b3429 88%,#563324);box-shadow:1px 0 1px #28150d66}
.stick::after{left:-2px;width:8px;height:6px;box-shadow:0 0 6px #ffc072}
.smoke{bottom:auto;top:calc(var(--burn,0%) - 75px)}
@media(max-width:420px){.altar-stage{aspect-ratio:4/3}.censer-object{width:50%}.censer-inscription{font-size:13px}}
.censer-object{width:min(48%,330px);bottom:-8%}
.sticks{left:50%;transform:translateX(-50%);bottom:28%;height:32%}

/* Painted clothbound covers use the actual deities and landscapes, with a quiet title slip. */
.shelf-section{margin:26px 0 34px}
.shelf-section-head{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid #d2bfa5;margin-bottom:17px;padding-bottom:8px}
.shelf-section-head h2{font:600 23px var(--serif);margin:0}
.shelf-section-head span{font-size:12px;color:#826d56}
.filter-row{display:flex;background:#e9ddcb;border-radius:5px;padding:3px;gap:2px}
.filter-row button{border-radius:3px;min-width:70px;font-weight:600}
.cover-painted{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:3/4;background:#bda181;color:#35291f;border:1px solid #bb9c71;border-radius:2px 7px 7px 2px;box-shadow:5px 7px 13px #4733211c,inset 5px 0 6px #45271840}
.cover-painted::before{z-index:3;inset:8px;border:1px solid #e2c79a;opacity:.75;pointer-events:none}
.cover-painted::after{z-index:3;left:6px;border-left:1px solid #563b2a65;opacity:1;pointer-events:none}
.cover-scene{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.78) sepia(.08)}
.cover-scene::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#ead7b3a8 0%,#ead7b322 45%,#6b412624 100%),linear-gradient(0deg,#6b4b2f2b,transparent 35%)}
.cover-scene img{position:absolute;right:-8%;bottom:-2%;width:85%;height:87%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 3px 3px #412d1d45)}
.cover-title-strip{position:absolute;z-index:4;left:11%;top:10%;bottom:10%;width:31%;background:#f6e7cde8;border:1px solid #c8a879;box-shadow:2px 2px 3px #3b241b30;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:12px 3px;color:#40291c;writing-mode:vertical-rl;text-orientation:mixed}
.cover-title-strip small{font:600 10px/1.1 var(--serif);letter-spacing:.14em;color:#876548}
.cover-title-strip strong{font:700 clamp(19px,2.1vw,27px)/1.1 var(--serif);letter-spacing:.12em}
.cover-title-strip em{font:500 10px/1.1 var(--serif);letter-spacing:.1em;font-style:normal;color:#876548}
.cover-edition{position:absolute;z-index:4;right:13px;top:12px;padding:3px 7px;background:#f4e5c9d9;color:#62432d;border:1px solid #cfad7a;font-size:10px;letter-spacing:.1em}
.cover-spine{position:absolute;z-index:4;left:0;top:0;bottom:0;width:8px;background:linear-gradient(90deg,#795138,#cba06a,#7a5034);opacity:.85}
.cover-painted[data-tone='indigo'] .cover-scene::after{background:linear-gradient(90deg,#dfe2d8a8,#7e9ea025 60%,#29465d2a)}
.cover-painted[data-tone='teal'] .cover-scene::after{background:linear-gradient(90deg,#e2dfc6aa,#8cb5a326 60%,#254b482a)}
.cover-painted[data-tone='cinnabar'] .cover-scene::after{background:linear-gradient(90deg,#f2ddbaaa,#b27c5826 60%,#813f322a)}
@media(max-width:760px){.cover-title-strip{left:10%;width:36%;padding:9px 2px}.cover-title-strip strong{font-size:19px}.cover-title-strip small,.cover-title-strip em{font-size:9px}.cover-edition{right:9px;top:9px;font-size:9px;padding:2px 4px}}
.reader-ruby{line-height:2.16}
.ruby-unit{display:inline-block;white-space:nowrap;vertical-align:baseline;margin-right:.07em}
.reader-ruby ruby{margin:0}
.reader-ruby rt{font-size:clamp(13px,calc(var(--reader-size,22px)*.42),18px)}
.shelf-switch button.active,.filter-row button.active{box-shadow:none}
.shelf-head h1{font-size:32px}
.cover-title-strip small,.cover-title-strip em{font-size:11px}
.cover-edition{font-size:11px}
@media(max-width:760px){.shelf-head h1{font-size:28px}.cover-title-strip small,.cover-title-strip em,.cover-edition{font-size:11px}}
.reader-page-label{color:#6e5a44}
.altar-stage{box-shadow:none}
.altar-page>.page-title{font-size:32px}
.censer-inscription{text-shadow:none;color:#332318}
.deity-label small,.deity-card>a,.combo-section>p,.combo-empty{font-size:13px}
@media(max-width:760px){.altar-page>.page-title{font-size:28px}}

/* Incense gallery and panorama: full figures remain in the painted scene; the censer has its own foreground. */
.altar-page{max-width:760px}
.deity-picker{padding:18px 0 14px}
.deity-picker-head{align-items:baseline}
.deity-picker-head h2{font:600 20px/1.4 var(--serif);margin:0}
.deity-count{color:#785b42;font-size:13px;font-variant-numeric:tabular-nums}
.deity-presets{display:flex;gap:8px;overflow-x:auto;margin:12px 0 11px;padding:0 0 3px;scrollbar-width:thin}
.deity-presets button{flex:none;min-height:38px;border:1px solid #baa083;border-radius:4px;background:#fff9ed;color:#674932;padding:7px 11px;font-size:13px;white-space:nowrap}
.deity-presets button span{margin-left:7px;color:#8a7058;font-size:11px}
.deity-presets button:disabled{opacity:.48}
.deity-gallery{display:flex;grid-template-columns:none;gap:9px;overflow-x:auto;scroll-snap-type:x proximity;padding:1px 1px 10px;scrollbar-width:thin;scrollbar-color:#b8946c #eee0c8}
.deity-select{flex:0 0 128px;width:128px;border:1px solid #d7c1a2;border-radius:3px;overflow:hidden;scroll-snap-align:start;background:#fff9ee}
.deity-select.selected{border-color:#8c432b;box-shadow:inset 0 0 0 2px #8c432b}
.deity-select:disabled{opacity:1;cursor:default}
.deity-thumb{height:126px;aspect-ratio:auto;background-color:#dac3a0}
.deity-label{min-height:51px;padding:6px 7px}
.deity-label strong{font-size:14px;line-height:1.25}
.deity-label small{font-size:11px;line-height:1.25}
.deity-check{width:22px;height:22px;font-size:14px}
.picker-hint{font-size:12px!important;line-height:1.5!important;margin:4px 0 0!important;color:#705d49!important}
.altar-stage{display:block;aspect-ratio:auto;max-height:none;border-radius:3px;background:#d4bb92;box-shadow:none;overflow:hidden}
.altar-stage::after{content:none}
.altar-panorama{height:405px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#a1815a #deccae}
.altar-panorama:focus-visible{outline:3px solid #9c5737;outline-offset:-4px}
.altar-composition{position:relative;inset:auto;width:max(100%,calc(var(--figure-count) * 180px));height:100%;background-size:cover;background-position:center;overflow:hidden}
.altar-composition::after{content:'';position:absolute;inset:auto 0 0;height:14%;background:linear-gradient(transparent,#6a4b2b4f);pointer-events:none}
.figure-row{position:absolute;inset:11% 3% 2%;z-index:1;display:grid;grid-template-columns:repeat(var(--figure-count),minmax(0,1fr));gap:14px;align-items:end;justify-content:center}
.altar-figure{height:100%;min-width:0;width:100%;display:flex;align-items:flex-end;justify-content:center;overflow:visible}
.altar-figure img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 4px 5px #3c2b1d35);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.altar-forecourt{height:145px;position:relative;z-index:2;border-top:4px solid #a8875d;background:linear-gradient(180deg,#d9c19b 0%,#e2cfad 34%,#c4a67d 100%)}
.altar-forecourt::before{content:'';position:absolute;left:0;right:0;bottom:0;height:22px;background:linear-gradient(#b79569,#92704c);border-top:1px solid #8b6845;box-shadow:inset 0 5px 8px #6d4b2f38}
.incense-setup{position:absolute;inset:0;left:0;bottom:0;transform:none;width:100%;height:100%;display:block;pointer-events:none}
.censer-object,.censer-front{position:absolute;left:50%;bottom:-19px;transform:translateX(-50%);width:220px;aspect-ratio:3/2}
.censer-object{z-index:1}
.censer-front{z-index:3}
.censer-object img,.censer-front img{width:100%;height:100%;object-fit:contain}
.censer-front img{clip-path:inset(29% 0 0)}
.censer-inscription{top:52%;font-size:17px;letter-spacing:.09em;color:#2f2118}
.sticks{left:50%;bottom:62px;transform:translateX(-50%);height:170px;gap:17px;z-index:2}
.stick{width:4px}
.stick::after{width:10px;height:9px;left:-3px;box-shadow:0 0 4px 2px #ffca7b,0 0 14px #e87339}
.smoke{top:auto;bottom:calc(100% - var(--burn,0%));left:50%;width:24px;height:92px;background:none;filter:none}
.smoke::before,.smoke::after{content:'';position:absolute;display:block;border-left:3px solid #665e55a8;border-radius:52% 42% 50% 48%;filter:blur(.8px)}
.smoke::before{left:6px;bottom:0;width:18px;height:78px;transform:rotate(-8deg)}
.smoke::after{left:13px;bottom:18px;width:14px;height:65px;transform:rotate(14deg);opacity:.68}
.altar-stage.burning .smoke{opacity:.9}
@keyframes smoke-rise{0%{transform:translate(-50%,18px) rotate(-7deg) scale(.65);opacity:0}25%{opacity:.85}65%{opacity:.62}100%{transform:translate(13px,-52px) rotate(12deg) scale(1.65);opacity:0}}
.panorama-hint{font-size:12px;color:#725d48;margin:6px 0 8px}
.altar-controls{border:1px solid #e5d8c4;border-radius:4px;margin-top:0}
.deity-notes{margin:20px 0 12px;border-top:1px solid #d9c9b2;border-bottom:1px solid #d9c9b2;padding:11px 0;color:#644d38}
.deity-notes summary{cursor:pointer;font-size:13px;font-weight:600}
.deity-notes ul{list-style:none;padding:4px 0 0;margin:0}
.deity-notes li{padding:10px 0;border-top:1px solid #e4d6c3;display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:baseline;font-size:12px}
.deity-notes a{color:#8b492f;text-decoration:underline;white-space:nowrap}
@media(max-width:760px){.altar-panorama{height:315px}.altar-composition{width:max(100%,calc(var(--figure-count) * 178px))}.altar-forecourt{height:133px}.censer-object,.censer-front{width:190px;bottom:-16px}.censer-inscription{font-size:15px}.sticks{bottom:57px;height:148px}.deity-notes li{grid-template-columns:1fr;gap:1px}}
@media(max-width:360px){.altar-panorama{height:305px}.deity-select{flex-basis:116px;width:116px}.deity-thumb{height:112px}.censer-object,.censer-front{width:178px}.sticks{bottom:55px;height:140px}}
@media(min-width:900px){.altar-page.wide-altar{max-width:1080px}}

/* Keep preparatory verses, scripture, and the site's own dedication visibly distinct. */
.reader-top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.reader-top-actions>button{border:1px solid #bba58a;background:#fff7e9;border-radius:5px;padding:8px 12px;min-height:40px;color:#724934;font-size:13px;white-space:nowrap;cursor:pointer}
.reader-opening{padding:2px 0 22px;border-bottom:1px solid #d8c7ac;margin-bottom:8px}
.reader-opening summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;padding:10px 0;color:#6e4934}
.reader-opening summary::-webkit-details-marker{display:none}
.reader-opening summary strong{font:600 17px/1.5 var(--serif)}
.reader-opening summary span{font-size:12px;color:#7d6956;flex:1;text-align:right}
.reader-opening summary::after{content:'';width:7px;height:7px;flex:none;border-right:1.5px solid #885d42;border-bottom:1.5px solid #885d42;transform:rotate(45deg);margin:0 4px 4px}
.reader-opening[open] summary::after{transform:rotate(225deg);margin:4px 4px 0}
.reader-opening .opening-verses{padding:16px 0 2px}
.ritual-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px}
.ritual-heading h2{font:600 19px/1.5 var(--serif);color:#563c2f;margin:0}
.ritual-heading span{font-size:11px;color:#806d5a;text-align:right}
.opening-verses{display:grid;gap:3px}
.opening-verses .reader-ruby{margin:0;line-height:2.4}
.ritual-note,.reader-opening .ritual-note{font-size:12px;line-height:1.8;color:#786450;margin:14px 0 0}
.ritual-note a{color:#815039;text-decoration:underline;text-underline-offset:3px}
.opening-self-note{font-size:13px;line-height:1.8;color:#654d3a;border-bottom:1px solid #d8c7ac;padding:0 0 18px;margin:0 0 8px}
.opening-self-note a{color:#8b4d35;text-decoration:underline;text-underline-offset:3px}
.reader-dedication{padding:28px clamp(19px,4vw,36px) 30px;margin-top:36px;background:#efe4d1;border:1px solid #d7c2a3;border-radius:3px;scroll-margin-top:90px}
.ritual-rule{display:block;width:50px;height:1px;background:#a97b58;margin-bottom:25px}
.reader-dedication .dedication-timing{font:13px/1.8 var(--sans);color:#685641;margin:0 0 19px;max-width:62ch}
.dedication-verse{border-top:1px solid #d6c0a1;padding-top:20px}
.dedication-verse p{font:400 clamp(16px,calc(var(--reader-size,22px)*.77),24px)/2 var(--serif);color:#3b3028;margin:0 0 12px}
.daily-dedication-link{display:inline-block;margin-top:14px;color:#8b4d35;font-size:13px;text-decoration:underline;text-underline-offset:4px}
.dedication-page{max-width:760px}
.dedication-page-head h1{font:600 clamp(28px,6vw,42px)/1.4 var(--serif);margin:0 0 10px}
.dedication-page-head p{color:#685641;line-height:1.8;margin:0 0 18px}
.dedication-tabs{display:flex;gap:8px;margin-bottom:18px}
.dedication-tabs button{border:1px solid #bca98c;background:#fff9ef;color:#70523d;border-radius:4px;padding:8px 20px;min-height:40px;cursor:pointer}
.dedication-tabs button.active{background:#744631;border-color:#744631;color:#fff}
.daily-dedication-paper{background:#fffaf1;border:1px solid #dfceb5;border-radius:3px;padding:clamp(22px,5vw,40px);margin:0 0 22px}
.daily-dedication-paper>span{font-size:13px;color:#88563b}
.daily-dedication-paper p{font:400 clamp(18px,4.5vw,23px)/2.1 var(--serif);color:#3c3025;margin:18px 0 0}
.dedication-summary{border-top:1px solid #d7c6af;padding-top:18px}
.dedication-summary h2{font:600 20px var(--serif);margin:0 0 8px}
.dedication-summary p,.dedication-note{font-size:13px;line-height:1.8;color:#675442}
.dedication-summary .tiny-link{margin-top:5px}
.dedication-note{margin:26px 0 10px}
.dedication-callout{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #d4c2a9;border-bottom:1px solid #d4c2a9;padding:18px 0;margin:29px 0 4px}
.dedication-callout h2{font:600 22px var(--serif);margin:0 0 5px}
.dedication-callout p{font-size:13px;color:#6a5644;line-height:1.7;margin:0;max-width:470px}
.dedication-callout button{flex:none}
@media(max-width:420px){.reader-top{flex-wrap:wrap}.reader-top-actions{width:100%;justify-content:flex-start}.ritual-heading{align-items:flex-start}.dedication-callout{align-items:flex-start;flex-direction:column}.dedication-callout button{width:100%}}

/* Wish themes explain the selection without implying a guaranteed result. */
.intent-picker{margin:23px 0 8px;border-top:1px solid #d9c7ad;padding-top:18px}
.intent-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.intent-heading h2,.guide-heading h2{font:600 21px/1.4 var(--serif);margin:0}
.intent-heading p,.guide-heading p{font-size:12px;line-height:1.6;color:#715d49;margin:0}
.deity-presets{margin:14px 0 8px;padding-bottom:11px;scroll-snap-type:x proximity}
.deity-presets .intent-card{flex:0 0 236px;min-height:153px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;white-space:normal;padding:12px 13px;background:#fffaf1;border:1px solid #d9c4a7;scroll-snap-align:start}
.deity-presets .intent-card.selected{border-color:#945136;background:#f3e5d2;box-shadow:inset 0 0 0 1px #945136}
.deity-presets .intent-card:disabled{opacity:1;cursor:default}
.deity-presets .intent-card strong{font:600 17px/1.35 var(--serif);color:#493324}
.deity-presets .intent-card span{font-size:12px;line-height:1.5;color:#5d4b39;white-space:normal;margin:0}
.deity-presets .intent-card small{font-size:11px;line-height:1.5;color:#8a6045;white-space:normal;margin-top:auto;padding-top:5px}
.intent-current{margin:2px 0 0;color:#755b45;font-size:12px;line-height:1.6}
.intent-current strong{color:#81432d}
.deity-picker{padding-top:18px}
.deity-label{min-height:62px}
.deity-label small{line-height:1.35}
.picker-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px}
.picker-actions p{font-size:12px;line-height:1.6;color:#735e49;margin:0}
.picker-actions button{border:0;background:transparent;color:#80472f;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;padding:6px;font-size:12px}
.selected-guide{margin:22px 0 12px}
.guide-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;padding-bottom:10px}
.guide-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.guide-card{border-top:1px solid #dfceb8;padding:12px 0 15px;min-width:0}
.guide-card h4{font:600 16px/1.4 var(--serif);margin:0 0 5px}
.guide-card p{font-size:12px;line-height:1.7;color:#5c4c3b;margin:0 0 6px}
.guide-card div{font-size:12px;line-height:1.6;color:#74583f}
.guide-card div strong{color:#8d5035;margin-right:7px}
.guide-card a{display:inline-block;margin-top:5px;font-size:11px;color:#854a34;text-decoration:underline;text-underline-offset:3px}
.saved-combo-main{flex:1;min-width:0;padding:7px 11px 8px}
.saved-combo-main button{display:flex;justify-content:space-between;width:100%;text-align:left;border:0;background:transparent;color:#4e3829;padding:0;font-size:13px;font-weight:600}
.saved-combo-main button:disabled{opacity:.65}
.saved-combo-main p{margin:3px 0 0;color:#755f4c;font-size:12px;line-height:1.5}
@media(max-width:760px){.intent-heading,.guide-heading{display:block}.intent-heading p,.guide-heading p{margin-top:4px}.deity-presets .intent-card{flex-basis:226px;min-height:151px}.guide-list{grid-template-columns:1fr}}
@media(min-width:361px) and (max-width:480px){.altar-panorama.count-3{height:228px}.altar-composition.count-3{width:100%}}

/* Shared shrine hall: figures stand on one continuous altar rather than on picture tiles. */
.altar-stage{background:#3f2f25;overflow:visible;isolation:isolate}
.altar-panorama{height:480px;background:#6c4c31;overflow-x:auto;overflow-y:hidden}
.altar-composition{width:max(100%,calc(var(--figure-count)*190px));background-size:100% 100%;background-position:center;overflow:hidden}
.altar-composition::before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#51352020,transparent 15% 85%,#51352020),linear-gradient(180deg,#f9dc9b13 30%,#6a381713 75%,#42291842 100%)}
.altar-composition::after{content:'';position:absolute;inset:66% 0 0;z-index:2;pointer-events:none;background:linear-gradient(180deg,transparent,#e4c39217 25%,#2e1c0e22 100%)}
.figure-row{inset:9% 4% 26%;gap:0;align-items:end}
.altar-figure{position:relative;align-items:flex-end;overflow:visible}
.altar-figure::after{content:'';position:absolute;left:7%;right:7%;bottom:-6px;height:14px;border-radius:50%;background:#25130766;filter:blur(9px);z-index:-1}
.altar-figure img{width:112%;max-width:none;height:100%;object-position:center bottom;filter:saturate(.85) sepia(.1) brightness(.94) drop-shadow(0 6px 7px #39250e55);-webkit-mask-image:none;mask-image:none}
.altar-figure:nth-child(even){transform:translateY(3px)}
.altar-figure.figure-wenshu img,.altar-figure.figure-puxian img{width:119%}
.altar-figure.figure-mile img{width:104%}
.altar-forecourt{height:135px;background:linear-gradient(180deg,#664124 0%,#3f281b 17%,#57371e 72%,#2e1d16 100%);border-top:5px solid #a46c37;box-shadow:inset 0 4px 13px #150a0670}
.altar-forecourt::before{height:15px;background:linear-gradient(#704628,#2c1a12);border-top:1px solid #a17447}
.censer-object,.censer-front{width:232px;bottom:-13px;filter:drop-shadow(0 8px 10px #1d1009aa)}
.censer-front img{clip-path:inset(9% 0 0)}
.censer-inscription{top:52%;font-size:17px}
.sticks{bottom:101px;height:163px;gap:17px;z-index:2}
.stick{width:3px;border-radius:1px;background:linear-gradient(to bottom,transparent var(--burn,0%),#4b2520 var(--burn,0%),#7c3d2a 89%,#563524);box-shadow:1px 0 1px #1d100b66}
.stick::before{content:'';position:absolute;left:0;top:calc(var(--burn,0%) - 3px);width:3px;height:3px;border-radius:1px;background:#a9a39a;opacity:1}
.stick::after{left:0;top:calc(var(--burn,0%) - 1px);width:3px;height:2px;border-radius:0;background:#ac5936;box-shadow:0 0 2px #e4975577}
.smoke,.smoke-second{position:absolute;z-index:100;left:50%;top:auto;bottom:calc(100% - var(--burn,0%));width:44px;height:56px;opacity:.78;transform:translateX(-50%);transform-origin:50% 100%;background:none;filter:none;animation:none}
.smoke svg{display:block;width:100%;height:100%;overflow:visible;transform-origin:50% 100%;mask-image:linear-gradient(to top,#000 12%,#000 48%,transparent 100%);animation:incense-sway 5.6s ease-in-out infinite}
.smoke svg path{fill:none;stroke:#66625d;stroke-width:2.1;stroke-linecap:round;opacity:1;filter:none}
.smoke::before{content:'';position:absolute;left:14px;bottom:0;width:18px;height:64px;border:0;background:radial-gradient(ellipse at 46% 82%,#5b5c596b 0 7%,transparent 38%),radial-gradient(ellipse at 64% 48%,#6a6d6966 0 8%,transparent 40%),radial-gradient(ellipse at 35% 18%,#7c807b55 0 8%,transparent 42%);filter:blur(2.8px);animation:incense-haze 5.2s ease-in-out infinite}
.smoke::after{content:none}
.smoke-second::before{animation-delay:2.6s;opacity:.6}
.smoke-second svg{animation-delay:2.8s}
.smoke-second svg path{stroke-width:1.25;opacity:.65}
.stick:nth-child(2) .smoke svg{animation-delay:1s}
.stick:nth-child(2) .smoke-second svg{animation-delay:3.9s}
.stick:nth-child(3) .smoke svg{animation-delay:2s}
.stick:nth-child(3) .smoke-second svg{animation-delay:4.9s}
.altar-stage.burning .smoke{opacity:.78}
@keyframes incense-sway{0%,100%{transform:translate(0,0) rotate(-4deg)}35%{transform:translate(6px,-8px) rotate(4deg)}70%{transform:translate(11px,-14px) rotate(8deg)}}
@keyframes incense-haze{0%,100%{transform:translate(0,0) scale(.75);opacity:.25}40%{transform:translate(6px,-8px) scale(1);opacity:.85}75%{transform:translate(10px,-14px) scale(1.14);opacity:.45}}
@keyframes incense-wisp{0%{opacity:0;transform:translate(-50%,0) scaleX(.65) scaleY(.65)}18%{opacity:.88;transform:translate(calc(-50% + 2px),-1px) scaleX(.8) scaleY(.8)}55%{opacity:.9;transform:translate(calc(-50% + 7px),-7px) scaleX(1) scaleY(1)}85%{opacity:.5;transform:translate(calc(-50% + 13px),-16px) scaleX(1.1) scaleY(1.15)}100%{opacity:0;transform:translate(calc(-50% + 18px),-28px) scaleX(1.2) scaleY(1.25)}}
@media(max-width:760px){.altar-panorama{height:330px}.altar-composition{width:max(100%,calc(var(--figure-count)*158px))}.altar-composition.count-1,.altar-composition.count-2,.altar-composition.count-3{width:100%}.figure-row{inset:9% 3% 25%;gap:0}.altar-forecourt{height:115px}.censer-object,.censer-front{width:198px;bottom:-11px}.censer-inscription{font-size:14px}.sticks{bottom:84px;height:145px;gap:14px}}
@media(max-width:480px){.altar-panorama.count-3{height:330px}.altar-composition.count-3{width:100%}.altar-composition.count-4{width:560px}.altar-figure img{width:114%}.altar-figure.figure-wenshu img,.altar-figure.figure-puxian img{width:120%}}
@media(max-width:360px){.altar-panorama,.altar-panorama.count-3{height:310px}.censer-object,.censer-front{width:182px}.sticks{height:135px;bottom:80px}}
@media(prefers-reduced-motion:reduce){.smoke svg,.smoke-second svg,.smoke::before{animation:none!important}.smoke,.smoke-second{opacity:.45!important}}

/* A deliberate reading mark is separate from completion counts and automatic page history. */
.resume-strip{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:20px 0 26px;padding:17px 20px;background:#ece2d0;border:1px solid #d9c6aa;border-radius:4px}
.resume-strip div{min-width:0}.resume-strip span{display:block;font-size:12px;color:#816447;margin-bottom:3px}.resume-strip strong{display:block;font:600 18px/1.5 var(--serif);color:#3f3125}.resume-strip p{margin:3px 0 0;font-size:13px;color:#665443;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resume-strip button{flex:none}
.reading-progress{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:17px 0 4px;padding:15px 17px;background:#f1e6d4;border:1px solid #dfceb5;border-radius:4px}
.reading-progress strong{display:block;font:600 15px/1.5 var(--serif);color:#483629}.reading-progress p{margin:3px 0 0;font-size:12px;line-height:1.6;color:#6d5945}.reading-progress-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex:none}
.reading-progress-actions button{min-height:38px;padding:6px 10px;border:1px solid #b69475;border-radius:3px;background:#fffaf0;color:#74452f;font-size:12px;cursor:pointer}.reading-progress-actions button[data-action="toggle-mark"]{background:#7e4932;color:#fff;border-color:#7e4932}.reading-progress-actions .quiet{border-color:transparent;background:transparent;color:#775e4a}
.reader-paper.marking .reader-line{background:#fbf3e5}.reader-paper.marking .ruby-unit{cursor:crosshair}.reader-paper.marking .ruby-unit:hover rb{background:#ecd4b2}.reader-paper.marking .ruby-unit:active rb{background:#e6c59a}
.reading-marked rb{text-decoration:underline 2px #ae6040;text-underline-offset:.19em;text-decoration-skip-ink:none;background:#f3dfc2}
.mark-line-button{display:none;border:0;background:none;color:#8b4c35;font-size:12px;padding:9px 0 0;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.reader-paper.marking .mark-line-button{display:inline-block}
.reading-progress button:focus-visible,.resume-strip button:focus-visible,.mark-line-button:focus-visible{outline:2px solid #8c4d32;outline-offset:2px}
@media(max-width:760px){.resume-strip,.reading-progress{align-items:flex-start;flex-direction:column;gap:12px}.resume-strip button{width:100%}.reading-progress-actions{width:100%;justify-content:flex-start}.reading-progress-actions button{flex:1 1 auto}.reader-paper.marking .ruby-unit{touch-action:manipulation}}

/* Fixed themes are complete paintings; free selections keep the open mountain scene. */
.altar-stage{background:#d9c6a4;overflow:visible}
.altar-panorama.painted{height:auto;overflow:hidden;line-height:0;background:#d9c6a4}
.altar-stage .preset-painting{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;user-select:none}
.altar-panorama.free{height:440px;background:#d7c29f}
.altar-panorama.free .altar-composition{background-size:cover;background-position:center;min-width:100%}
.altar-panorama.free .figure-row{inset:8% 4% 23%;gap:0}
.altar-panorama.free .figure-row{grid-template-rows:minmax(0,1fr)}
.altar-panorama.free .altar-figure{height:100%;min-height:0;overflow:hidden}
.altar-panorama.free .altar-figure:nth-child(even){transform:none}
.altar-panorama.free .altar-figure img{width:100%;max-width:100%;height:100%;min-height:0;object-fit:contain;object-position:center bottom;filter:saturate(.91) sepia(.04) brightness(.97) drop-shadow(0 7px 8px #4a351e44)}
.altar-forecourt{height:145px;border-top:0;background-image:linear-gradient(180deg,#d7be9877,#d7bd94bb 55%,#bd9d75d9),var(--ground);background-size:100% 100%,100% auto;background-position:center,center bottom;background-repeat:no-repeat;box-shadow:none}
.altar-forecourt::before{content:none}
.censer-object,.censer-front{width:250px;bottom:-9px;filter:drop-shadow(0 6px 9px #4b321e66)}
.censer-front img{clip-path:inset(20% 0 0)}
.sticks{bottom:125px;height:160px;gap:17px}
.smoke{height:62px}
.smoke svg path{stroke:#4e5652;stroke-width:2.6;opacity:.82}
.reader-marked.resume-focus rb{background:#ecd0a7}
html{scroll-behavior:auto}
@media(max-width:760px){.altar-panorama.free{height:315px}.altar-panorama.free .altar-composition{width:max(100%,calc(var(--figure-count)*168px))}.altar-panorama.free .figure-row{inset:9% 3% 23%}.altar-forecourt{height:130px}.censer-object,.censer-front{width:210px;bottom:-7px}.sticks{bottom:108px;height:87px;gap:14px}.smoke{height:48px}}
@media(max-width:480px){.altar-panorama.free.count-3{height:315px}.altar-panorama.free .altar-composition.count-3{width:504px}.altar-panorama.free .altar-composition.count-4{width:600px}}
@media(max-width:360px){.altar-panorama.free{height:300px}.censer-object,.censer-front{width:198px}.sticks{bottom:106px;height:84px}.smoke{height:40px}}

/* The censer belongs to the same painted scene; there is no second floor image. */
.altar-stage{position:relative}
.altar-stage .altar-forecourt{position:absolute;inset:auto 0 0;height:32%;z-index:4;background:none;border:0;box-shadow:none;pointer-events:none}
.altar-stage.free-mode .altar-forecourt{height:38%}
.altar-stage .censer-object,.altar-stage .censer-front{bottom:-3px;width:250px}
.altar-stage .sticks{bottom:125px;height:155px}
.custom-entry{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:48px;margin:13px 0 0;padding:10px 16px;border:1px solid #a88460;border-radius:3px;background:#eadbc5;color:#5b3f2c;font-weight:600;text-align:left}
.custom-entry:hover{background:#e3cfb1}.custom-entry span{font-size:21px;line-height:1}
.burn-switch-note{font-size:12px;color:#74604e}
#custom-picker{scroll-margin-top:82px}
@media(max-width:760px){.altar-stage .censer-object,.altar-stage .censer-front{width:160px;bottom:-4px}.altar-stage .sticks{bottom:65px;height:78px;gap:12px}.altar-stage .smoke{height:43px}.altar-stage .censer-inscription{font-size:12px}}
@media(max-width:360px){.altar-stage .censer-object,.altar-stage .censer-front{width:152px}.altar-stage .sticks{bottom:62px;height:75px}}
