:root{color-scheme:dark;font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:#eee9da;background:#171610}*{box-sizing:border-box}body{margin:0}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #ead5a3;outline-offset:5px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}#temple,#scene{position:fixed;inset:0}#scene{background:#211d16}canvas{width:100%;height:100%;display:block;touch-action:none}.hud{position:fixed;z-index:10;top:max(22px,env(safe-area-inset-top));display:flex;align-items:center;height:48px;gap:12px}.top-left{left:max(22px,env(safe-area-inset-left))}.top-right{right:max(22px,env(safe-area-inset-right));background:#25251fc7;border:1px solid #eee5c726;border-radius:28px;gap:0;padding:0 7px}.exit,#room-switch{height:48px;background:#25251fd9;border:1px solid #eee5c733;border-radius:26px;display:flex;align-items:center;justify-content:center}.exit{width:48px;font-size:24px}.hud button{border:0;background:transparent;height:44px;min-width:42px;display:flex;align-items:center;justify-content:center;gap:9px;color:#eee9da}.hud #room-switch{padding:0 18px;border:1px solid #eee5c733;background:#25251fd9;font-size:14px;gap:12px}.hud #room-switch i{height:15px;border-left:1px solid #eee5c740}#room-name{font-size:12px;color:#d2cbb9}.hud svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.hud small{font-size:10px;color:#cec7b5}#people{display:flex;align-items:center;gap:7px;padding:0 13px;font-size:14px;font-variant-numeric:tabular-nums}#people>small{font-size:10px;color:#c6c0ae}.hud #help{font-family:Georgia,serif;font-size:20px}.hint{position:fixed;z-index:10;top:102px;left:0;right:0;text-align:center;font-size:11px;color:#f4edd8c9;text-shadow:0 1px 4px #000;pointer-events:none;margin:0}.action-dock{position:fixed;z-index:10;bottom:calc(30px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;padding:6px 16px;border:1px solid #f2e6c84d;border-radius:40px;background:#26271fd9;box-shadow:0 5px 24px #0002}.action-dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:106px;height:64px;padding:5px 12px;color:#f5f0e3;border:0;background:transparent;font-size:11px;border-radius:25px}.action-dock button:hover:not(:disabled),.hud button:hover{background:#ffffff0c}.action-dock button[aria-pressed=true]{color:#e9cc91}.action-dock svg{width:28px;height:28px;stroke:currentColor;stroke-width:1.4;fill:none;stroke-linecap:round;stroke-linejoin:round}.action-dock i{height:26px;border-left:1px solid #eee5c72b;margin:0 10px}.quiet-note{position:fixed;right:25px;bottom:30px;font-size:10px;color:#e0d8c291;margin:0;pointer-events:none}.notice{position:fixed;z-index:20;bottom:142px;left:50%;transform:translateX(-50%);max-width:calc(100% - 40px);background:#25271ee8;color:#eee9da;border:1px solid #eee5c72b;padding:9px 18px;border-radius:25px;font-size:12px;text-align:center;pointer-events:none}.notice:empty{display:none}.arrival{position:fixed;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#1a1a16;gap:18px}.arrival p{font-size:14px;color:#d1c39f}.arrival h1{font:400 28px "Songti SC",serif;text-wrap:balance;margin:0}.arrival span{font-size:12px;color:#a39e8f}.arrival button{padding:10px 20px;border:1px solid #8d866d;color:#ece3cd;background:transparent;border-radius:4px}.sitting-status{position:fixed;z-index:10;left:max(24px,env(safe-area-inset-left));top:92px;display:flex;align-items:center;gap:10px;white-space:nowrap;text-align:center;text-shadow:0 2px 6px #000;pointer-events:none}.sitting-status>span{font-size:11px;display:block;color:#e0d7be}.sitting-status output{font:20px Georgia,serif;display:block;margin:0;font-variant-numeric:tabular-nums}.sitting-status small{font-size:10px;color:#e0d7be}dialog{position:fixed;z-index:30;color:#e7dfca;background:#292a22;border:1px solid #a49a754f;border-radius:14px;padding:30px;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;line-height:1.9;box-shadow:0 20px 90px #0006}dialog::backdrop{background:#090b087d}dialog .close{float:right;background:none;border:0;color:#ddd6c3;font-size:26px;line-height:1}.eyebrow{color:#b7ac90;font-size:11px;margin:0 0 10px}dialog h2{font:400 24px/1.5 "Songti SC",serif;text-wrap:balance;margin:0 0 20px}dialog p{font-size:12px;color:#c1baa8;text-wrap:pretty}dialog details{font-size:12px;margin-top:22px}dialog summary{cursor:pointer}.room-choice{display:flex;width:100%;align-items:center;justify-content:space-between;padding:16px;margin:10px 0;color:#eee4cf;border:1px solid #d0c29840;background:transparent;border-radius:7px}.room-choice[aria-pressed=true]{background:#5e604442}.room-choice span{font-family:"Songti SC",serif;font-size:20px}.room-choice small{font-size:11px;color:#c1baa8}.dialog-note{font-size:10px!important;margin:20px 0 0}.audio-label{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;margin:15px 0}.audio-label select{max-width:220px;background:#33372b;border:1px solid #8b856b;padding:7px}.audio-label input{max-width:190px;accent-color:#bdad7e}#audio-credit{font-size:10px}
@media(max-width:600px){.hud{top:calc(14px + env(safe-area-inset-top));height:42px;gap:6px}.top-left{left:12px}.top-right{right:12px;padding:0 3px}.exit{width:36px;height:40px;font-size:20px}.hud #room-switch{height:42px;gap:7px;padding:0 10px;font-size:12px}.hud #room-switch>span:first-of-type{display:none}.hud #room-switch i{display:none}#room-name{font-size:11px}.hud button{height:38px;min-width:34px}.hud svg{width:18px;height:18px}#people{padding:0 8px;font-size:12px;gap:4px}#people>small{display:none}.hint{top:84px;font-size:10px;padding:0 35px;line-height:1.8}.action-dock{bottom:calc(22px + env(safe-area-inset-bottom));padding:5px 12px}.action-dock button{min-width:94px;height:58px}.quiet-note{display:none}.arrival h1{font-size:24px}.notice{font-size:11px;bottom:130px;width:max-content}.sitting-status{top:112px;left:16px;gap:8px}.sitting-status small{font-size:9px}}

/* Two real character previews, selected before a visitor joins a room. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.arrival{overflow-y:auto;padding:32px 20px;gap:0;background:radial-gradient(ellipse at 50% 35%,#37382d 0,#20231c 55%,#151912 100%)}
.arrival .arrival-brand{font-size:12px;letter-spacing:.2em;color:#c5b58f;margin:0 0 18px}.arrival h1{font-size:30px;line-height:1.5;color:#f0e8d6}.arrival .arrival-note{font-size:12px;line-height:1.8;color:#c4bda9;margin:12px 0 24px;text-align:center}
.character-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:min(490px,100%);padding:0;margin:0 0 20px;border:0}.character-card{position:relative;min-width:0;border:1px solid #b6ac8740;border-radius:12px;background:linear-gradient(160deg,#ffffff08,#00000012);cursor:pointer;overflow:hidden;transition:border-color .18s,background .18s}.character-card:has(input:checked){border-color:#d0bd8e;background:linear-gradient(160deg,#cbbc8c1c,#b5a37208);box-shadow:inset 0 0 0 1px #d0bd8e38}.character-card:has(input:focus-visible){outline:2px solid #f0d8a1;outline-offset:5px}.character-card input{position:absolute;left:12px;top:12px;width:18px;height:18px;margin:0;accent-color:#c8b581;z-index:1}.character-preview{display:block;height:250px;width:100%;pointer-events:none;mask-image:linear-gradient(#000 88%,#0000)}.character-preview canvas{pointer-events:none}.arrival .character-caption{display:grid;grid-template-columns:1fr auto;padding:0 18px 17px;gap:5px}.arrival .character-caption>span{font:20px/1.4 "Songti SC",serif;color:#f1e7d0}.character-caption small{grid-row:2;font-size:10px;letter-spacing:.12em;color:#b7b29e}.character-caption i{grid-column:2;grid-row:1/3;align-self:center;display:none;font-style:normal;color:#ead3a0}.character-card:has(input:checked) .character-caption i{display:block}.arrival #load-state{font-size:11px;color:#c3baa2;min-height:18px;text-align:center}.arrival .enter-temple{display:flex;justify-content:space-between;align-items:center;width:min(490px,100%);min-height:48px;margin:14px 0 0;padding:13px 20px;background:#d2c095;color:#25291e;border:1px solid #d2c095;border-radius:7px;font-size:14px}.arrival .enter-temple span{color:inherit;font-size:18px}.arrival .enter-temple:hover:not(:disabled){background:#dfcea6}.arrival .arrival-etiquette{font-size:10px;letter-spacing:.12em;color:#a8a58e;margin:20px 0 0}
@media(max-width:600px){.arrival{padding:24px 18px}.arrival h1{font-size:25px}.arrival .arrival-brand{margin-bottom:14px}.arrival .arrival-note{margin:10px 0 20px;font-size:11px}.character-options{gap:12px}.character-preview{height:215px}.arrival .character-caption{padding:0 13px 15px}.arrival .character-caption>span{font-size:19px}}
@media(max-height:680px){.arrival{justify-content:flex-start;padding-top:22px}.character-preview{height:180px}.arrival .arrival-note{margin-bottom:14px}.arrival .arrival-etiquette{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.character-card{transition:none}}

.scene-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:0 0 18px;width:min(490px,100%)}
.scene-options label{display:grid;grid-template-columns:auto 1fr;column-gap:9px;row-gap:4px;align-items:center;padding:11px 14px;border:1px solid #b6ac8740;border-radius:8px;cursor:pointer;background:#ffffff04}
.scene-options label:has(:checked){border-color:#d0bd8e;background:#d0bd8e0d}.scene-options input{grid-row:1/3;accent-color:#c8b581}.scene-options span{font:15px/1.5 "Songti SC",serif}.scene-options small{font-size:10px;color:#aab1b8;letter-spacing:.05em}.realm-note{font-size:11px;line-height:1.9;text-align:center;margin:0 0 18px;color:#b8c8d9}.realm-note[hidden]{display:none}
body[data-realm=sky] .arrival{background:radial-gradient(ellipse at 50% 0%,#425361 0,#1b2c3e 45%,#0b1524 100%)}
body[data-realm=sky] .arrival-brand{color:#d5bc8f}body[data-realm=sky] .character-card{background:linear-gradient(155deg,#c4dbed0a,#040c1850)}
body[data-realm=sky] .character-card:has(input:checked){background:linear-gradient(155deg,#afcce619,#040c1850)}
body[data-realm=sky] .quiet-note{color:#bccbdb}body[data-realm=sky] .hud{background:#102032b8}body[data-realm=sky] .action-dock{background:#102032d9}
@media(max-width:600px){.scene-options{margin-bottom:14px}.scene-options label{padding:8px}.scene-options span{font-size:13px}.realm-note{margin-bottom:14px}.arrival:has(.realm-note:not([hidden])) .character-preview{height:170px}}
.arrival:has(.scene-options){justify-content:flex-start;padding-top:24px;padding-bottom:24px}
.arrival:has(.scene-options) .character-preview{height:210px}
@media(max-width:600px){.arrival:has(.scene-options){padding-top:22px}.arrival:has(.scene-options) .character-preview{height:165px}}

/* Keep walking instructions away from the monumental image's face. */
body[data-realm=sky] .hint{top:auto;bottom:calc(122px + env(safe-area-inset-bottom))}
@media(max-width:600px){body[data-realm=sky] .hint{bottom:calc(106px + env(safe-area-inset-bottom))}}
body[data-realm=sky] .sitting-status{top:auto;left:50%;bottom:calc(122px + env(safe-area-inset-bottom));transform:translateX(-50%)}
body[data-realm=sky] .notice{bottom:calc(159px + env(safe-area-inset-bottom))}
@media(max-width:600px){body[data-realm=sky] .sitting-status{bottom:calc(106px + env(safe-area-inset-bottom))}body[data-realm=sky] .notice{bottom:calc(142px + env(safe-area-inset-bottom))}}
/* Three quiet actions share the dock; support uses the site's existing dialog. */
#temple-support{color:#d8d2c1}
#sound-dialog .audio-label{display:flex;align-items:center;gap:12px;margin:20px 0;font-size:13px}
#sound-dialog select{flex:1;min-width:0;max-width:none;min-height:44px;width:100%;background:#252a28;color:#eee9da;border:1px solid #8b856b;border-radius:4px;padding:8px}
#sound-dialog input{flex:1;min-width:0;max-width:none;min-height:44px;accent-color:#bdad7e}
#volume-value{font-variant-numeric:tabular-nums;min-width:38px;text-align:right}
.sound-playback{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
#sound-play{min-height:44px;border:1px solid #8b856b;border-radius:4px;background:#30382d;padding:8px 16px}
#sound-status,.sound-note{font-size:12px;color:#c6c0ae;line-height:1.8}
#sound-dialog #audio-credit{font-size:12px;line-height:1.9}
#sound-dialog #audio-credit a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.action-dock{width:min(350px,calc(100% - 24px));padding:5px 8px}.action-dock button{flex:1;min-width:0;padding:5px 6px}.action-dock i{margin:0 5px}}

/* A lotus and measured preparation progress share the room's quiet gold. */
.temple-loading{width:min(490px,100%);margin:8px 0 4px;color:#d2c095}
.loading-heading{display:flex;align-items:center;gap:13px;min-height:52px;margin-bottom:12px}
.loading-lotus{width:48px;height:38px;flex:none;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.loading-heading>div{flex:1;min-width:0}
.arrival .loading-title{font:16px/1.5 "Songti SC",serif;color:#e4d6b5;margin:0 0 4px;text-wrap:balance}
.arrival #load-state{display:block;font-size:11px;line-height:1.7;text-align:left;text-wrap:pretty}
#load-percent{font:16px/1 Georgia,serif;font-variant-numeric:tabular-nums;min-width:42px;text-align:right;color:#e4d6b5}
.load-progress{height:3px;border-radius:3px;background:#c5b58f26;overflow:hidden}
.load-progress i{display:block;height:100%;background:#d2c095;transform:scaleX(0);transform-origin:left;transition:transform 180ms ease-out}
.temple-loading[data-state=ready] .loading-lotus{fill:#d2c09518}
.temple-loading[data-state=error] #load-percent{display:none}
.temple-loading[data-state=error] #load-state{color:#edc3a8}
@media(max-width:600px){.loading-lotus{width:40px;height:32px}.loading-heading{gap:10px}.arrival .loading-title{font-size:15px}}
@media(prefers-reduced-motion:reduce){.load-progress i{transition:none}}
@media(max-height:800px){
  .arrival:has(.scene-options) .character-preview{height:130px}
  .arrival .arrival-brand{margin-bottom:12px}
  .arrival .arrival-note{margin:8px 0 16px}
  .character-options{margin-bottom:12px}
  .loading-heading{min-height:42px;margin-bottom:8px}
}

/* The wealth sanctuary is a separate folk / Daoist space with a copper palette. */
.wealth-scene-choice{grid-column:1/-1}
body[data-default-room=caishen] .scene-options{display:none}
body[data-realm=wealth] .arrival{background:#18201d;color:#efe4ca}
body[data-realm=wealth] .arrival-brand{color:#c9a96d}
body[data-realm=wealth] .arrival h1{font-size:34px;color:#f1dfb8}
body[data-realm=wealth] .realm-note{color:#c7b58e;line-height:2}
body[data-realm=wealth] .character-card{background:#c5a15f08;border-color:#bc9a5b40}
body[data-realm=wealth] .character-card:has(input:checked){background:#c5a15f10;border-color:#c5a15f}
body[data-realm=wealth] .arrival .enter-temple{background:#d3b579;border-color:#d3b579;color:#252b21}
body[data-realm=wealth] .hint{top:auto;bottom:calc(122px + env(safe-area-inset-bottom))}
body[data-realm=wealth] .sitting-status{top:auto;left:50%;bottom:calc(122px + env(safe-area-inset-bottom));transform:translateX(-50%)}
body[data-realm=wealth] .action-dock{background:#25291ee8;border-color:#c5a15f66}
body[data-realm=wealth] .notice{bottom:calc(159px + env(safe-area-inset-bottom))}
body[data-realm=wealth] .quiet-note{color:#dbc58b99}
body[data-realm=wealth] #incense-action{color:#e8c786}
@media(max-width:600px){
  body[data-realm=wealth] .arrival h1{font-size:27px}
  body[data-realm=wealth] .hint,body[data-realm=wealth] .sitting-status{bottom:calc(106px + env(safe-area-inset-bottom))}
  body[data-realm=wealth] .notice{bottom:calc(142px + env(safe-area-inset-bottom))}
  body[data-realm=wealth] .action-dock{width:min(410px,calc(100% - 20px));padding-inline:5px}
  body[data-realm=wealth] .action-dock i{margin-inline:2px}
  body[data-realm=wealth] .action-dock button{font-size:10px;padding-inline:2px}
}

body[data-default-room=wenchang] .scene-options{display:none}
body[data-default-room=wenchang] .arrival{background:radial-gradient(ellipse at 50% 0%,#3c6159,#172e31 48%,#0c1922)}
body[data-default-room=wenchang] .arrival-brand{color:#c8b885}

.entry-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:16px}.entry-actions button,.entry-actions a{background:transparent;border:0;color:#c8c6b3;font:12px/1.6 system-ui;padding:6px;cursor:pointer}.entry-actions button:focus-visible,.entry-actions a:focus-visible{outline:2px solid #d0bd8e;outline-offset:2px}.entry-help p{font-size:13px;line-height:1.8}.entry-help input{width:100%;padding:10px;background:#17241e;color:#eee7d4;border:1px solid #7c8f7e}.entry-help button{margin-top:16px;padding:10px 18px}#rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#rooms .room-choice{display:grid;gap:5px;padding:12px 8px;min-width:0}#rooms .room-choice span{font-size:12px}#rooms .room-choice small{font-variant-numeric:tabular-nums}.scene-options{display:none!important}

body[data-default-room=yaoshi] .arrival{background:radial-gradient(ellipse at 50% 0%,#23598b,#112c51 52%,#081627)}
body[data-default-room=yaoshi] .arrival-brand{color:#dac792}
body[data-default-room=yaoshi] .scene-options{display:none}
body[data-default-room=yaoshi] .quiet-note{color:#c9dcee}

body[data-zodiac] .arrival{background:radial-gradient(ellipse at 50% 0%,var(--zodiac-sky,#304b57),#142b37 52%,#081a26)}
body[data-zodiac] .arrival-brand{color:#dec991;letter-spacing:.3em}
body[data-zodiac] .quiet-note{color:#c5ba94}
.zodiac-presence{position:absolute;left:25px;bottom:24px;margin:0;color:#d6c394;font:11px/1.8 system-ui;letter-spacing:.08em;pointer-events:none}
@media(max-width:600px){.zodiac-presence{bottom:calc(170px + env(safe-area-inset-bottom));right:0;left:0;text-align:center;font-size:10px}body[data-zodiac] .quiet-note{display:none}}
