:root{--ink:#f5efe2;--ink-soft:#cfc6b3;--ink-mute:#9d9583;--paper:#161411c7;--paper-strong:#12100eeb;--line:#ffe9b438;--gold:#e7b75a;--gold-soft:#e7b75a2e;--jade:#6fb59a;--danger:#e6785a;--radius:14px;--gutter:16px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:#15130f;margin:0;font-family:Be Vietnam Pro,Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden}#scene{outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}.hidden{display:none!important}.muted{color:var(--ink-mute)}.fine{color:var(--ink-mute);margin:14px 0 0;font-size:12px;line-height:1.5}.overlay{padding:var(--gutter);z-index:10;background:radial-gradient(#0c0a0840,#080706b8);place-items:center;display:grid;position:fixed;inset:0}.card{width:min(520px,100%);max-height:calc(100vh - 2 * var(--gutter));background:var(--paper-strong);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:28px 28px 24px;overflow:auto;box-shadow:0 24px 60px #00000073}.card.wide{width:min(600px,100%)}.card h1{letter-spacing:.01em;margin:4px 0 12px;font-size:clamp(28px,4.5vw,40px);font-weight:700}.card h2{margin:0 0 14px;font-size:22px;font-weight:600}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;margin:0;font-size:12px}.lede{color:var(--ink-soft);margin:0 0 22px;font-size:15px;line-height:1.6}.loader-card{text-align:center}.bar{background:#ffffff1a;border-radius:999px;height:6px;margin:22px 0 12px;overflow:hidden}#bar-fill{background:linear-gradient(90deg, var(--gold), #f3d89a);width:0%;height:100%;transition:width .25s}.actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}button{font:inherit;color:var(--ink);border:1px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:10px;padding:10px 16px;transition:background .15s,border-color .15s}button:hover{background:#ffffff1f;border-color:#ffe9b466}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button.primary{color:#1d1408;background:linear-gradient(#e9bf6c,#c99238);border-color:#0000;font-weight:600}button.primary:hover{background:linear-gradient(#f1cc7d,#d6a04a)}button.ghost{background:0 0}.chip{background:var(--paper);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:7px 12px;font-size:13px}button.close{background:0 0;border:none;padding:2px 10px;font-size:22px;line-height:1}.row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;font-size:15px;display:flex}.row select,.row input[type=range]{min-width:160px}select{font:inherit;color:var(--ink);border:1px solid var(--line);background:#00000059;border-radius:8px;padding:7px 10px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--gold)}input[type=range]{accent-color:var(--gold)}.keys{grid-template-columns:max-content 1fr;gap:12px 18px;margin:0;font-size:15px;line-height:1.5;display:grid}.keys dt{color:var(--ink);white-space:nowrap}.keys dd{color:var(--ink-soft);margin:0}kbd{min-width:26px;color:var(--ink);border:1px solid var(--line);text-align:center;background:#ffffff14;border-bottom-width:2px;border-radius:6px;margin-right:4px;padding:2px 7px;font:600 12px/1.6 Be Vietnam Pro,system-ui,sans-serif;display:inline-block}#hud{pointer-events:none;z-index:5;position:fixed;inset:0}#hud button,#hud select,#hud input{pointer-events:auto}.zone-label{letter-spacing:.04em;color:var(--ink);background:var(--paper);border:1px solid var(--line);opacity:0;white-space:nowrap;border-radius:999px;padding:8px 18px;font-size:15px;font-weight:500;transition:opacity .6s;position:absolute;top:26px;left:50%;transform:translate(-50%)}.zone-label.show{opacity:1}#minimap{top:var(--gutter);right:var(--gutter);border:1px solid var(--line);border-radius:12px;position:absolute;box-shadow:0 8px 20px #00000059}.hud-buttons{top:calc(var(--gutter) + 180px + 10px);right:var(--gutter);flex-direction:column;align-items:stretch;gap:6px;display:flex;position:absolute}.prompt{background:var(--paper-strong);border:1px solid var(--gold);white-space:nowrap;box-shadow:0 0 0 4px var(--gold-soft);border-radius:12px;padding:10px 18px;font-size:15px;position:absolute;bottom:132px;left:50%;transform:translate(-50%)}.prompt kbd{color:#1d1408;background:var(--gold);border-color:#0000}.toast{background:var(--paper);color:var(--ink-soft);border-radius:10px;padding:8px 14px;font-size:14px;position:absolute;bottom:186px;left:50%;transform:translate(-50%)}.info{left:var(--gutter);width:min(420px, calc(100vw - 2 * var(--gutter)));pointer-events:auto;background:var(--paper-strong);border:1px solid var(--line);border-radius:var(--radius);max-height:min(56vh,520px);padding:18px 20px 16px;position:absolute;bottom:96px;overflow:auto;box-shadow:0 18px 40px #00000073}.info h2{margin:2px 0 10px;font-size:20px}.info-head{justify-content:space-between;align-items:center;display:flex}.info #info-body p{color:var(--ink-soft);margin:0 0 10px;font-size:14.5px;line-height:1.6}.badge{letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;padding:3px 9px;font-size:11px}.badge.sourced{color:#bfe8d6;background:#6fb59a29;border-color:#6fb59a73}.badge.illustrative{color:#f0d7a6;background:var(--gold-soft);border-color:#e7b75a73}.sources{margin:8px 0 0;padding:0;font-size:13px;list-style:none}.sources a{color:var(--gold);border-bottom:1px dotted #e7b75a80;text-decoration:none}.debug{bottom:64px;left:var(--gutter);color:#d9f5e6;white-space:pre;background:#0009;border-radius:10px;margin:0;padding:10px 12px;font:12px/1.5 ui-monospace,Consolas,monospace;position:absolute}.hint{color:var(--ink-mute);white-space:nowrap;background:#00000059;border-radius:999px;margin:0;padding:6px 12px;font-size:12.5px;transition:opacity .6s;position:absolute;bottom:92px;left:50%;transform:translate(-50%)}.hint.fade-out{opacity:0}.errbox{white-space:pre-wrap;word-break:break-word;color:#ffd6c7;background:#0006;border:1px solid #e6785a66;border-radius:10px;padding:10px;font-size:12px}@media (max-width:720px){.hud-buttons{top:auto;bottom:100px;right:var(--gutter);flex-direction:row}#minimap{width:120px!important;height:120px!important}.hud-buttons{top:calc(var(--gutter) + 120px + 8px)}.info{max-height:46vh}.hint{display:none}}.quest{top:var(--gutter);left:var(--gutter);width:min(300px, calc(100vw - 2 * var(--gutter) - 140px));background:var(--paper);border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:12px;padding:12px 14px 10px;font-size:13.5px;position:absolute}.quest:empty{display:none}.quest-title{color:var(--gold);justify-content:space-between;margin:0 0 6px;font-weight:600;display:flex}.quest ol{color:var(--ink-soft);margin:0;padding-left:20px;line-height:1.55}.quest li.done{color:var(--jade);-webkit-text-decoration:line-through #6fb59a99;text-decoration:line-through #6fb59a99}.banner{text-align:center;background:var(--paper-strong);border:1px solid var(--gold);box-shadow:0 0 0 6px var(--gold-soft), 0 20px 50px #00000073;opacity:0;border-radius:14px;padding:16px 28px;transition:opacity .5s,transform .5s;position:absolute;top:22%;left:50%;transform:translate(-50%,-8px)}.banner.show{opacity:1;transform:translate(-50%)}.banner-title{margin:0;font-size:22px;font-weight:700}.banner-sub{color:var(--ink-soft);margin:6px 0 0;font-size:14px}@media (max-width:720px){.quest{width:calc(100vw - 2 * var(--gutter) - 130px);font-size:12px}}.practice-bar{background:var(--paper);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:6;max-width:calc(100vw - 2 * var(--gutter));border-radius:22px;gap:4px;padding:6px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.practice-btn{min-width:66px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:3px;padding:8px 8px 6px;font-size:12px;transition:background .15s,color .15s;display:flex;position:relative}.practice-btn svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.practice-btn:hover{color:var(--ink);background:#ffffff0f}.practice-btn.active{background:var(--gold-soft);color:var(--gold)}.practice-btn kbd{color:var(--ink-mute);opacity:.7;font:600 9px/1 inherit;position:absolute;top:4px;right:7px}@media (max-width:520px){.practice-btn{min-width:52px;padding:7px 4px 5px;font-size:11px}.practice-btn kbd{display:none}}.bow-counter{border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;z-index:6;width:132px;padding:12px 10px 10px;position:fixed;bottom:110px;right:20px}.bow-counter svg{width:92px;height:92px;position:absolute;top:8px;left:50%;transform:translate(-50%)rotate(-90deg)}.bow-counter circle{fill:none;stroke-width:5px}.bow-counter .track{stroke:#ffffff14}.bow-counter .ring{stroke:var(--gold);stroke-linecap:round;transition:stroke-dashoffset .6s}.bow-num{flex-direction:column;justify-content:center;align-items:center;height:92px;display:flex}.bow-num b{color:var(--ink);font-size:30px;font-weight:700;line-height:1}.bow-num small{color:var(--ink-mute)}.bow-sub{color:var(--ink-soft);margin:4px 0 8px;font-size:13px}.bow-stop{padding:5px 14px;font-size:13px}.room-chip{left:var(--gutter);background:var(--paper);border:1px solid var(--line);color:var(--ink-soft);z-index:6;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex;position:fixed;bottom:22px}.room-chip .dot{background:var(--ink-mute);border-radius:50%;width:8px;height:8px}.room-chip[data-status=online] .dot{background:var(--jade);box-shadow:0 0 8px var(--jade)}.room-chip[data-status=connecting] .dot{background:var(--gold)}@media (max-width:760px){.room-chip{top:60px;bottom:auto}}.chip.active{background:var(--gold-soft);color:var(--gold);border-color:var(--gold)}.focus{z-index:6;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);text-align:center;width:210px;padding:12px 12px 10px;animation:.25s focus-in;position:fixed;bottom:110px;right:20px}@keyframes focus-in{0%{opacity:0;transform:translateY(6px)}}.focus-info{pointer-events:none}.focus-count b{color:var(--ink);font-size:34px;font-weight:700}.focus-count small{color:var(--ink-mute);margin-left:4px;font-size:14px}.focus-sub{color:var(--gold);margin:0 0 4px;font-size:13px}.focus-hint{color:var(--ink-mute);margin:0 0 8px;font-size:12px}.focus-controls{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.focus-tap{font-weight:600}.focus-auto[aria-pressed=true]{background:var(--gold-soft);color:var(--gold);border-color:var(--gold)}.focus-mantra{color:var(--ink);letter-spacing:.06em;opacity:0;pointer-events:none;white-space:nowrap;font-size:20px;position:fixed;top:14%;left:50%;transform:translate(-50%)}.focus-mantra.pulse{animation:1.6s mantra}@keyframes mantra{0%{opacity:0;transform:translate(-50%,6px)}25%{opacity:.85}to{opacity:0;transform:translate(-50%,-6px)}}.name-tag{color:var(--ink);white-space:nowrap;pointer-events:none;z-index:4;will-change:transform;background:#12100e9e;border-radius:999px;padding:2px 8px;font-size:12px;position:fixed;top:0;left:0}.name-tag.me{color:var(--gold)}.temple-pick{color:var(--ink-mute);align-items:center;gap:10px;margin:14px 0 4px;font-size:14px;display:flex}.temple-pick select{border:1px solid var(--line);background:var(--paper);min-width:0;color:var(--ink);font:inherit;border-radius:10px;flex:1;padding:8px 10px}.pick-row{flex-wrap:wrap;gap:12px;display:flex}.pick-row .temple-pick{flex:200px}.about{color:var(--ink-soft);margin:14px 0 6px;font-size:.92rem}.about summary{cursor:pointer;color:var(--gold);font-weight:600}.about p{margin:8px 0;line-height:1.55}.site-links{color:var(--ink-mute);font-size:.85rem}.site-links p{margin:4px 0}.site-links a,.doc a{color:var(--gold)}.creator .cc-grid{grid-template-columns:minmax(0,1fr) 220px;align-items:start;gap:18px;display:grid}@media (max-width:640px){.creator .cc-grid{grid-template-columns:1fr}.creator .cc-preview{order:-1;justify-self:center;width:160px;height:210px}}.cc-label{color:var(--ink-soft);margin:12px 0 6px;font-size:.85rem;font-weight:600}.cc-name{flex-wrap:wrap;gap:8px;display:flex}.cc-name input[type=text]{font:inherit;border:1px solid var(--line);color:var(--ink);background:#00000040;border-radius:10px;flex:200px;padding:8px 10px}.cc-name select{flex:110px}.seg{flex-wrap:wrap;gap:8px;display:flex}.seg button{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:7px 14px}.seg button[aria-checked=true]{background:var(--gold);color:#2a1d10;border-color:var(--gold);font-weight:600}.swatches{gap:10px;display:flex}.swatches button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:34px;height:34px;box-shadow:inset 0 0 0 2px #00000026}.swatches button[aria-checked=true]{border-color:var(--gold);outline:2px solid var(--gold-soft)}.cc-more{margin-top:12px}.cc-more summary{cursor:pointer;color:var(--ink-soft)}.cc-agree{align-items:flex-start;gap:8px;margin-top:14px;font-size:.9rem;display:flex}.cc-agree a{color:var(--gold)}.cc-error{color:var(--danger);font-size:.9rem}.cc-preview{border-radius:var(--radius);background:radial-gradient(circle at 50% 35%,#4a3a28,#1c1712);width:220px;height:290px}body.doc-page{color:var(--ink);background:#16130f;overflow:auto}.doc{max-width:760px;padding:32px var(--gutter) 64px;margin:0 auto;line-height:1.65}.doc h1{color:var(--gold)}.doc h2{color:var(--gold);margin-top:28px;font-size:1.15rem}.doc-toc{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.doc-toc a{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:.88rem;text-decoration:none}.stats-list{grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;margin:12px 0;display:grid}.stats-list dt{color:var(--ink-soft)}.stats-list dd{text-align:right;color:var(--gold);font-variant-numeric:tabular-nums;margin:0;font-weight:600}
