*{box-sizing:border-box} :root{--ink:#38453c;--muted:#6c7569;--paper:#f3f1e5;--border:#ffffff75}body{margin:0;overflow:hidden;background:#a8b9b1;font-family:'Apple SD Gothic Neo','Malgun Gothic',Arial,sans-serif;color:var(--ink);height:100svh;touch-action:none}button,textarea,input{font:inherit}button{color:inherit;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #93815a;outline-offset:4px}button:disabled{opacity:.5}button,button svg{transition:background .2s,transform .2s}button:hover{background:#fff3}#world,#world canvas{position:fixed;inset:0;width:100%;height:100%;display:block}#world canvas{touch-action:none}.glass{background:linear-gradient(135deg,#f8f8ebad,#edf0d56b);border:1px solid var(--border);backdrop-filter:blur(18px);box-shadow:0 6px 22px #33403012,inset 0 1px #fff6}header{position:fixed;top:27px;left:30px;right:30px;display:flex;align-items:center;gap:12px;z-index:5;pointer-events:none}header>*{pointer-events:auto}.home{width:52px;height:52px;border-radius:50%;font-size:30px;font-weight:300}.place{display:flex;align-items:center;gap:13px;border-radius:28px;padding:10px 20px;text-align:left;height:56px}.brand-cross{font-size:26px;font-weight:200;color:#66735b}.place strong{font-size:15px;font-weight:500;letter-spacing:1px;display:block}.place small{font-size:9px;letter-spacing:1px;display:block;margin-top:4px;color:#6d7666}.chevron{margin-left:16px;font-size:17px}.utilities{margin-left:auto;display:flex;align-items:center;padding:9px 13px;gap:12px;border-radius:28px;height:52px}.utilities button{position:relative;width:29px;height:32px;font-size:25px;line-height:30px}.solo{font-size:11px;letter-spacing:.5px;margin:0 11px;display:flex;align-items:center;gap:8px}.solo i{width:5px;height:5px;background:#7c8d6b;border-radius:50%}.sound-off{position:absolute;font-size:12px;top:-1px;right:-3px}.utilities button[aria-pressed=true] .sound-off{display:none}.side-controls{position:fixed;right:30px;top:106px;display:flex;flex-direction:column;gap:9px}.side-controls button{width:40px;height:40px;border-radius:50%;font-size:23px}.scene-label{position:fixed;top:132px;left:42px;pointer-events:none;text-shadow:0 1px 14px #f7f5e066;transition:opacity 1s}.eyebrow{font-size:8px;letter-spacing:3px;color:#657463}.scene-label h1{font-size:22px;font-family:Georgia,'Batang',serif;font-weight:400;letter-spacing:1px;margin:11px 0}.scene-label p{font-size:11px;color:#687362;letter-spacing:.4px}.avatar-label{position:fixed;top:0;left:0;will-change:transform;pointer-events:none;white-space:nowrap;background:#f2efdcf2;border:1px solid #ffffff80;box-shadow:0 3px 12px #39473320;padding:7px 12px 7px 6px;border-radius:22px;font-size:11px;z-index:2;transition:opacity .3s}.avatar-label>span{display:inline-grid;place-items:center;background:#8a9276;color:white;width:22px;height:22px;border-radius:50%;margin-right:5px;font-size:10px}.action-dock{position:fixed;bottom:62px;left:50%;transform:translateX(-50%);padding:12px 22px;display:flex;gap:8px;border-radius:35px;background:linear-gradient(120deg,#eff1dca6,#e4e8ce73);z-index:5}.action-dock button{width:104px;border-radius:20px;display:flex;align-items:center;flex-direction:column;gap:8px;padding:7px 3px;color:#3b483b}.action-dock svg{width:29px;height:29px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none}.action-dock span{font-size:11px;letter-spacing:.5px}.action-dock button:hover{transform:translateY(-2px);background:#ffffff47}.action-dock .active{background:#ffffff78}.walk-hint{position:fixed;bottom:183px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;color:#fffef1;background:#3646357d;padding:9px 10px 9px 15px;border-radius:25px;font-size:10px;white-space:nowrap;backdrop-filter:blur(8px);z-index:4}.hint-dot{height:5px;width:5px;background:#eff2ce;border-radius:50%}.walk-hint button{font-size:16px;padding:0 5px;color:#f8f8e8}footer{position:fixed;bottom:23px;left:35px;right:35px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.2px;color:#eef0db;text-shadow:0 1px 6px #334533}footer b{font-weight:400;margin:0 5px}footer button{font-size:10px;letter-spacing:.5px;color:#f3f4e4}#joystick{position:fixed;left:45px;bottom:80px;width:102px;height:102px;border-radius:50%;border:1px solid #f8f7df66;background:#edf0d61f;backdrop-filter:blur(6px);touch-action:none;z-index:4;display:flex;align-items:center;justify-content:center;user-select:none}#joystickKnob{height:43px;width:43px;background:#f7f4df8c;border:1px solid #fefdf2b0;border-radius:50%;box-shadow:0 3px 15px #323f3822;pointer-events:none}#joystick>span{position:absolute;bottom:-23px;font-size:9px;letter-spacing:2px;color:#f1f2de;text-shadow:0 1px 4px #243a26}.near-action{position:fixed;bottom:225px;left:50%;transform:translateX(-50%);padding:12px 22px;border-radius:25px;font-size:12px;z-index:4;white-space:nowrap;background:#f5f1dfe3}#timerBadge{position:fixed;top:108px;left:50%;transform:translateX(-50%);padding:11px 20px;display:flex;gap:15px;align-items:center;border-radius:30px;font-size:11px}#timerBadge strong{font-variant-numeric:tabular-nums;font-size:17px;font-weight:400}#timerBadge button{font-size:22px}dialog{width:395px;max-width:calc(100vw - 32px);max-height:80svh;overflow:auto;margin:auto;border:1px solid #ffffffba;background:#f4f3e9f5;color:#38453c;border-radius:24px;padding:32px 28px;box-shadow:0 30px 100px #22352744;backdrop-filter:blur(20px);touch-action:pan-y}dialog::backdrop{background:#23332945;backdrop-filter:blur(4px)}.close{position:absolute;right:15px;top:10px;font-size:26px;color:#7e8775;padding:3px 7px}.kicker{display:block;font-size:9px;letter-spacing:3px;color:#88917e}dialog h2{font-family:Georgia,'Batang',serif;font-weight:400;font-size:24px;margin:16px 0}dialog p{font-size:13px;line-height:1.9;color:#6d7768}dialog label{font-size:12px;display:block;margin:17px 0 9px}textarea{width:100%;height:105px;border:1px solid #c8cdba;background:#fff7;border-radius:10px;padding:12px;color:#3c493b;resize:vertical;font-size:13px;line-height:1.7;touch-action:auto}.primary{width:100%;padding:14px;border-radius:12px;background:#5d705a;color:#fcf9e8;margin-top:18px;font-size:13px}.primary:hover{background:#4d624b}.fine{display:block;font-size:10px;line-height:1.8;color:#8a917f;margin-top:12px}.choices{display:flex;gap:8px;margin:18px 0}.choices button,.secondary{padding:11px 13px;border-radius:10px;border:1px solid #c6cdbb;font-size:12px;background:#fff4}.choices button{flex:1}.selected{background:#65775e!important;color:#fffce9!important}.destinations{display:flex;flex-direction:column;gap:10px}.destinations button{display:flex;align-items:center;gap:15px;text-align:left;padding:15px;background:#e7eadc77;border:1px solid #d7ddca;border-radius:13px}.destinations button>b{font-size:24px;font-weight:400;width:28px}.destinations strong{display:block;font-size:13px;font-weight:500}.destinations small{display:block;font-size:10px;margin-top:6px;color:#8a927f}.counter{text-align:center;font-size:33px;font-family:Georgia,serif;margin:25px 0}.counter small{font-family:Arial,sans-serif;font-size:12px;color:#89927e}.beads{display:flex;justify-content:center;gap:8px;margin:20px 0}.bead{width:18px;height:18px;border-radius:50%;border:1px solid #adb59c;background:#d9dfcd}.bead.done{background:#778a67;border-color:#687b58;box-shadow:0 0 8px #6b886522}.saved-note{padding:14px;border-radius:10px;background:#e6eadc;white-space:pre-wrap;overflow-wrap:anywhere}.range{width:100%;accent-color:#7b8d6e}.switch-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;font-size:12px;gap:20px}.prayer-text{font-family:Georgia,'Batang',serif;font-size:16px!important;line-height:2!important}#toast{position:fixed;bottom:210px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;background:#eff2e4f5;color:#3c4a37;padding:12px 20px;border-radius:22px;box-shadow:0 6px 20px #1c301e22;font-size:12px;opacity:0;pointer-events:none;z-index:15;transition:opacity .3s}#toast.show{opacity:1}#loading{position:fixed;inset:0;background:#e6eadf;z-index:30;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity 1s}#loading.done{opacity:0;pointer-events:none}.load-cross{font-size:35px;color:#798b6f}#loading h1{font-family:Georgia,'Batang',serif;font-size:36px;font-weight:400;letter-spacing:10px;margin:17px 0 8px}#loading p{font-size:12px;color:#7c8974;letter-spacing:.8px}.load-line{width:80px;height:2px;background:#c5cfb8;margin-top:22px;position:relative;overflow:hidden}.load-line:after{content:'';position:absolute;inset:0;background:#8f9c80;animation:load 1.5s infinite}@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(100%)}}body.clean header,body.clean .side-controls,body.clean .scene-label,body.clean nav,body.clean footer,body.clean #joystick,body.clean #walkHint,body.clean #avatarLabel,body.clean #nearAction{display:none}#restore{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:11px 20px;border-radius:25px;font-size:11px;z-index:10}body.night .scene-label{color:#e6ead8;text-shadow:0 1px 10px #0005}body.night .scene-label p,body.night .eyebrow{color:#e3e9d4} [hidden]{display:none!important}@media(max-width:700px){header{top:calc(17px + env(safe-area-inset-top));left:16px;right:16px;gap:8px}.home{width:42px;height:42px;font-size:26px;flex-shrink:0}.place{height:46px;padding:8px 13px;gap:8px}.place strong{font-size:12px;letter-spacing:.5px}.place small{font-size:8px;letter-spacing:.5px}.brand-cross{font-size:22px}.chevron{margin-left:4px}.utilities{height:44px;padding:7px 10px;gap:8px}.utilities button{font-size:23px;width:23px}.solo{display:none}.side-controls{right:18px;top:calc(84px + env(safe-area-inset-top));gap:8px}.side-controls button{width:35px;height:35px;font-size:21px}.desktop{display:none}.scene-label{top:108px;left:23px}.eyebrow{font-size:7px;letter-spacing:2px}.scene-label h1{font-size:17px;letter-spacing:0;margin:10px 0}.scene-label p{font-size:10px;letter-spacing:0}.action-dock{width:calc(100% - 36px);max-width:425px;bottom:calc(40px + env(safe-area-inset-bottom));padding:11px 8px;border-radius:30px;gap:0;justify-content:space-around}.action-dock button{width:25%;padding:5px 2px;gap:8px}.action-dock svg{height:26px;width:26px}.action-dock span{font-size:10px;letter-spacing:0}footer{bottom:calc(12px + env(safe-area-inset-bottom));left:23px;right:23px;font-size:7px;letter-spacing:.6px}footer button{font-size:8px}#joystick{left:25px;bottom:calc(155px + env(safe-area-inset-bottom));height:80px;width:80px}#joystickKnob{width:34px;height:34px}#joystick>span{bottom:-20px;font-size:8px}.walk-hint{font-size:8px;gap:5px;bottom:calc(135px + env(safe-area-inset-bottom));padding:7px 7px 7px 11px}.walk-hint button{font-size:12px}.avatar-label{font-size:10px;padding:5px 10px 5px 5px}.avatar-label>span{width:20px;height:20px;font-size:9px}.near-action{bottom:calc(245px + env(safe-area-inset-bottom));font-size:11px;padding:10px 17px}#toast{bottom:calc(245px + env(safe-area-inset-bottom));font-size:11px;text-align:center}#timerBadge{top:80px;padding:9px 13px;font-size:9px;gap:10px;white-space:nowrap}#timerBadge strong{font-size:14px}dialog{padding:32px 24px 25px}.bead{width:17px;height:17px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.action-dock{padding-left:14px;padding-right:14px;gap:4px}.action-dock button{width:95px}.scene-label{background:#f5eddb39;padding:13px 17px;border-radius:15px;backdrop-filter:blur(5px)}@media(max-width:700px){.action-dock{width:calc(100% - 24px);padding:11px 4px}.action-dock button{width:20%;gap:8px}.action-dock span{font-size:9px}.action-dock svg{width:24px;height:24px}.scene-label{left:17px;max-width:255px;padding:10px 12px}}

.visitor-label{position:fixed;top:0;left:0;z-index:8;pointer-events:none;border:1px solid #fffc;background:#edf0dcd9;border-radius:16px;padding:5px 10px;color:#354d42;font-size:12px;white-space:nowrap;box-shadow:0 3px 14px #26312720}.visitor-label[hidden]{display:none}.clean .visitor-label{display:none}#roomStatus{white-space:nowrap}#roomStatus[data-connection=connected]{color:#334f3d}#roomStatus:not([data-connection=connected]){color:#896e41}
