@font-face{font-family:TempleSerif;src:local("Iowan Old Style"),local("Palatino Linotype"),local("Palatino")}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{color:#263831;background:#d4dfd7;font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang TC","Microsoft JhengHei",sans-serif}button,select,input{font:inherit}button,select{color:inherit;cursor:pointer}button{border:0;background:none}button:disabled{opacity:.45;cursor:default}button:focus-visible,select:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #8f582b;outline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}a{color:inherit}svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}#temple{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:0}.edge-wash{position:fixed;inset:0;background:linear-gradient(90deg,rgba(232,237,225,.94),rgba(232,237,225,.6) 25%,transparent 54%),linear-gradient(0deg,rgba(224,231,216,.85),transparent 20%);pointer-events:none;transition:opacity 1.2s}.entered .edge-wash{background:linear-gradient(180deg,rgba(229,236,224,.30),transparent 12%,transparent 90%,rgba(229,236,224,.18));opacity:.65}.topbar{position:fixed;top:0;left:0;right:0;padding:28px 38px;display:flex;justify-content:space-between;align-items:center;z-index:10;pointer-events:none}.topbar>*{pointer-events:auto}.identity{display:flex;align-items:center;gap:13px;text-decoration:none}.seal{font:27px "Songti SC",serif;display:grid;place-items:center;width:43px;height:47px;background:#873d30;color:#f4e8c9;border-radius:3px;box-shadow:inset 0 0 0 4px #873d30,inset 0 0 0 5px #cfa281;transform:rotate(-2deg)}.entered .identity{background:#f3f4e8e6;border-radius:6px;padding:7px 12px 7px 8px;box-shadow:0 1px 12px #17231c10}.entered .top-actions select{background:#f3f4e8e6;border:1px solid #40544720;border-radius:24px;padding:10px}.identity strong{display:block;font:25px/1.2 TempleSerif,"Songti TC",serif;font-weight:500;letter-spacing:.04em}.identity small{display:block;font-size:10px;letter-spacing:.03em;margin-top:3px;opacity:.65}.top-actions{display:flex;align-items:center;gap:14px}.top-actions select{border:0;background:transparent;font-size:12px;padding:10px 5px;max-width:105px}.round-button{display:grid;place-items:center;background:#f3f4e8a8;width:38px;height:38px;border-radius:50%;border:1px solid #40544720}.account-button{display:flex;gap:9px;align-items:center;padding:8px 16px;border:1px solid #40544755;border-radius:25px;background:#f3f4e8a8;font-size:12px}.person-dot{width:8px;height:8px;background:#657b58;border-radius:50%}.welcome{position:absolute;left:7%;top:27%;width:330px}.fine-line{width:35px;height:2px;background:#8d6f45;margin-bottom:24px}.welcome h1{font:58px/1.14 TempleSerif,"Songti TC","Songti SC",serif;font-weight:400;letter-spacing:-.04em;white-space:pre-line;margin:0 0 24px}.welcome p{max-width:285px;font-size:14px;color:#566555;line-height:1.9;margin:0 0 30px}.primary{display:flex;align-items:center;justify-content:space-between;gap:35px;background:#344c40;color:#f7f4e7;padding:15px 22px;border-radius:4px;min-width:205px;font-size:13px;box-shadow:0 7px 16px #344c4015;transition:background .2s}.primary:hover{background:#425d4b}.welcome small{display:block;font-size:11px;color:#6e7967;margin-top:15px}.location{position:fixed;top:104px;left:39px;display:flex;align-items:center;gap:9px;font-size:12px;background:#f6f4eae6;padding:6px 13px;border-radius:20px;z-index:5}.location small{opacity:.55;border-left:1px solid #66715b44;padding-left:10px}.location-dot{width:5px;height:5px;border-radius:50%;background:#7c6540}.panel{background:#f6f4eaf5;border:1px solid #fff8;box-shadow:0 10px 60px #25382c22;backdrop-filter:blur(15px);border-radius:8px;padding:25px}.ritual{position:fixed;right:32px;top:27%;width:294px;z-index:8}.ritual h2{font:27px/1.3 TempleSerif,"Songti TC",serif;font-weight:400;margin:0 0 6px}.ritual .eyeline{color:#938363;font-size:10px;margin-bottom:10px}.ritual p{font-size:12px;color:#6a7363;line-height:1.7}.ritual .action{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:13px 4px;border-bottom:1px solid #344c4018;font-size:13px}.action .action-icon{font:22px TempleSerif,serif;color:#9a7e4d;width:25px;text-align:center}.action:hover{background:#e6e7d95e}.ritual .leave{font-size:11px;color:#73806a;margin-top:16px;padding:4px 0}.ritual .close{right:10px;top:8px}.allowance{font-size:12px;color:#8a7857;border-top:1px solid #344c4018;padding-top:13px;margin-top:15px}.ritual .primary{width:100%;min-width:0;justify-content:center;margin-top:16px}.quantities{display:flex;gap:10px;margin:18px 0}.quantities button{border:1px solid #c7c9b9;border-radius:4px;flex:1;height:43px;background:#fbfaf4}.quantities button[aria-pressed=true]{background:#344c40;color:#fff;border-color:#344c40}.count{display:flex;gap:8px;margin:20px 0}.count i{height:4px;flex:1;background:#c4aa6c}.count i.used{background:#deded2}.footer-intro{position:fixed;left:39px;bottom:28px;display:flex;align-items:center;gap:25px;font-size:11px;color:#6c7763}.footer-intro button{padding:0;text-decoration:underline;text-underline-offset:4px;font-size:11px}.preview-tag{position:fixed;right:38px;bottom:27px;font-size:10px;display:flex;gap:7px;align-items:center;opacity:.65}.live-dot{background:#829470;width:5px;height:5px;border-radius:50%}#visit-tools{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);text-align:center;min-width:390px;z-index:7}.destinations{display:flex;align-items:center;justify-content:center;background:#f6f4eae8;border:1px solid #fff7;backdrop-filter:blur(15px);border-radius:30px;box-shadow:0 4px 20px #26383112;padding:5px;gap:2px}.destinations button{padding:10px 15px;font-size:12px;border-radius:24px;white-space:nowrap}.destinations button:hover{background:#e0e5d8}.nav-divider{height:18px;border-left:1px solid #8e99814a;margin:0 2px}.keyboard-help{font-size:10px;color:#69735d;margin:8px 0 0}.movement-hint{font-size:11px;margin:0 0 9px;color:#596b50;text-shadow:0 1px 9px #fff}.entered .footer-intro>span{display:none}.entered .footer-intro{bottom:30px}.entered .welcome{display:none}#toast{position:fixed;left:50%;top:120px;transform:translate(-50%,-12px);max-width:min(90vw,440px);text-align:center;background:#344c40eb;color:#f7f4e9;padding:10px 20px;border-radius:30px;font-size:12px;opacity:0;transition:.25s;pointer-events:none;z-index:30}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #fff9;border-radius:10px;background:#f7f5ec;color:#263831;padding:0;max-width:440px;width:calc(100% - 32px);box-shadow:0 20px 90px #203b3244;max-height:90dvh}dialog::backdrop{background:#213b334d;backdrop-filter:blur(5px)}.dialog-inner{padding:34px;position:relative}dialog h2{font:31px/1.3 TempleSerif,"Songti TC",serif;font-weight:400;margin:8px 0 16px}dialog p{font-size:13px;color:#65715e;line-height:1.85}dialog .small{font-size:11px;color:#77806f}dialog .primary{width:100%;justify-content:center;margin-top:24px}.close{position:absolute;right:14px;top:10px;font-size:25px;font-weight:200;color:#77806f;width:32px;height:32px;line-height:1}.secondary{display:block;padding:12px 0;text-decoration:underline;text-underline-offset:4px;font-size:12px}.sound-row{padding:18px 0;border-bottom:1px solid #2638311b;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:13px}.sound-row input{width:135px;accent-color:#526c4b}.chant-block{margin-top:20px;padding-top:2px}.chant-block strong{font-size:13px;font-weight:500}.chant-block a{font-size:12px;text-underline-offset:4px}.chant-block p{margin:7px 0}.provider-names{display:flex;gap:7px;font-size:11px;color:#6c7564;margin-top:16px}.provider-names span{border:1px solid #c9cebd;padding:7px 10px;border-radius:4px}.balance-line{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #26383118;font-size:13px}.balance-line strong{font-weight:500;color:#8a6b39}#scene-error,.no-script{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);max-width:400px;padding:30px;background:#f7f4e9;border-radius:6px}#touch-controls{position:fixed;bottom:100px;left:20px;right:20px;pointer-events:none;z-index:6}.dpad{display:grid;grid-template-columns:40px 40px 40px;grid-template-rows:40px 40px;gap:3px;width:max-content}.dpad button,.look-controls button{background:#f6f4eac9;border:1px solid #344c4022;border-radius:50%;font-size:19px;pointer-events:auto;touch-action:none;user-select:none}.dpad .up{grid-column:2}.dpad .left{grid-row:2;grid-column:1}.dpad .down{grid-row:2;grid-column:2}.dpad .right{grid-row:2;grid-column:3}.look-controls{position:absolute;right:0;bottom:0;display:flex;gap:6px}.look-controls button{width:40px;height:40px}
@media(pointer:fine){#touch-controls{display:none!important}}
@media(max-width:700px){.topbar{padding:20px 18px}.identity{gap:9px}.seal{width:34px;height:38px;font-size:23px}.entered .identity{background:#f3f4e8e6;border-radius:6px;padding:7px 12px 7px 8px;box-shadow:0 1px 12px #17231c10}.entered .top-actions select{background:#f3f4e8e6;border:1px solid #40544720;border-radius:24px;padding:10px}.identity strong{font-size:22px}.identity small{display:none}.top-actions{gap:7px}.top-actions select{font-size:11px;max-width:83px}.account-button{padding:7px 10px;font-size:11px}.round-button{width:34px;height:34px}.welcome{left:26px;top:auto;bottom:130px;width:280px}.welcome h1{font-size:46px;margin-bottom:18px}.welcome p{font-size:13px;max-width:255px;margin-bottom:23px}.fine-line{margin-bottom:20px}.edge-wash{background:linear-gradient(0deg,rgba(232,237,225,.98),rgba(232,237,225,.85) 30%,rgba(232,237,225,.12) 75%)}.footer-intro{left:26px;bottom:27px;gap:14px}.footer-intro>span{max-width:160px;font-size:10px}.preview-tag{right:20px;bottom:65px}.location{top:80px;left:20px;font-size:11px}.location small{display:none}.entered .preview-tag{display:none}.entered .footer-intro{display:none}#visit-tools{bottom:17px;min-width:0;width:calc(100% - 28px)}.destinations button{padding:9px 10px;font-size:11px;flex:1}.keyboard-help{display:none}.movement-hint{font-size:10px;margin-bottom:8px}.ritual{left:auto;right:14px;top:auto;bottom:105px;width:min(288px,calc(100% - 28px));padding:21px}.ritual h2{font-size:24px}.ritual p{font-size:11px}.ritual .action{padding:11px 2px}.ritual .leave{margin-top:10px}.panel-open #touch-controls{visibility:hidden}#toast{top:92px;font-size:11px;width:max-content}.dialog-inner{padding:28px}.sound-row input{width:110px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-height:520px){.welcome{top:95px;bottom:auto;left:24px;width:55%}.welcome h1{font-size:28px;margin:0 0 8px}.welcome .fine-line,.welcome p,.welcome small{display:none}.welcome .primary{margin-top:16px;min-width:160px;padding:10px 16px}.topbar{padding:18px 20px}.identity small{display:none}}
@media(max-height:520px){.ritual{top:86px;bottom:66px;max-height:calc(100dvh - 152px);overflow-y:auto;padding:14px 18px}.ritual h2{font-size:22px}.ritual .action{padding:9px 4px}}
.topbar,.location,.ritual,#visit-tools,#touch-controls,.footer-intro,.preview-tag{transition:opacity 1.2s,visibility 1.2s}
.quiet-prayer .topbar,.quiet-prayer .location,.quiet-prayer .ritual,.quiet-prayer #visit-tools,.quiet-prayer #touch-controls,.quiet-prayer .footer-intro,.quiet-prayer .preview-tag{opacity:0;visibility:hidden;pointer-events:none}
#prayer-controls{position:fixed;z-index:12;bottom:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;white-space:nowrap;background:#f6f4eae6;border-radius:30px;padding:4px 18px;box-shadow:0 4px 25px #213a2514;font-size:12px}
#prayer-controls button{padding:10px 4px}#prayer-controls span{opacity:.4}
#chant-dock{position:fixed;left:24px;bottom:62px;z-index:11;width:360px;max-width:calc(100vw - 32px);background:#f6f4eaf5;border:1px solid #ffffff70;border-radius:7px;box-shadow:0 8px 40px #172c2629;overflow:hidden}
.chant-heading{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;font-size:12px}.chant-heading strong{font-weight:500}.chant-heading button{text-decoration:underline;text-underline-offset:3px;font-size:11px;padding:4px}
#chant-player iframe{display:block;border:0;width:100%;height:203px;background:#161e1a}
.chant-credit{margin:0;padding:8px 12px;font-size:10px;color:#65715e}#chant-error{font-size:12px;padding:0 13px}.chant-block .primary{margin:12px 0}
@media(max-width:700px){#chant-dock{left:16px;bottom:110px;width:calc(100vw - 32px)}.chant-open .ritual{bottom:410px;max-height:calc(100dvh - 500px);overflow-y:auto}.quiet-prayer #chant-dock{bottom:85px}#prayer-controls{bottom:22px}}
@media(max-height:520px){#chant-dock{left:16px;bottom:12px;width:300px}.chant-open #visit-tools{left:auto;right:14px;transform:none;width:auto;min-width:0}.chant-open .movement-hint,.chant-open .keyboard-help{display:none}.chant-open .destinations{flex-wrap:wrap;max-width:200px}.chant-open.quiet-prayer #prayer-controls{left:auto;right:14px;transform:none}.chant-open .footer-intro{display:none}}
@media(max-height:520px) and (min-width:480px){.chant-open .ritual{top:82px;bottom:78px;right:14px;width:calc(100vw - 346px);max-width:280px;max-height:calc(100dvh - 160px);padding:12px 14px}.chant-open .ritual h2{font-size:20px}.chant-open .ritual p{margin:5px 0}.chant-open .ritual .action{padding:8px 0}}
@media(max-height:520px) and (max-width:479px){#chant-dock{left:8px;width:220px;bottom:8px}.chant-open .ritual{top:78px;bottom:64px;right:8px;width:calc(100vw - 244px);max-height:calc(100dvh - 142px);padding:12px}.chant-open .ritual h2{font-size:18px}.chant-open .destinations{max-width:190px}.chant-open .identity{visibility:hidden}.chant-open #prayer-controls{right:8px;padding:2px 10px;gap:5px;font-size:11px}}
@media(max-height:300px){#chant-player iframe{height:200px}.chant-credit{padding:2px 8px;font-size:9px;line-height:12px}.chant-credit>span{display:none}.chant-heading{padding:3px 8px}.chant-heading button{font-size:10px}.chant-open .topbar{padding:10px}.chant-open .ritual{top:58px;max-height:calc(100dvh - 122px)}#chant-dock:has(#chant-error:not([hidden])){max-height:calc(100dvh - 16px);overflow-y:auto}}
/* Six destinations remain readable on a phone without covering the whole scene. */
@media(max-width:700px){.destinations{flex-wrap:wrap;border-radius:18px}.destinations button{flex:1 0 29%;padding:8px 6px}.destinations .nav-divider{display:none}}
@media(max-width:700px) and (min-height:521px){#touch-controls{bottom:135px}.ritual{bottom:135px}#chant-dock{bottom:142px}}
