html,body{height:100%;overflow:hidden}#stage{touch-action:none;width:100vw;height:100vh;position:fixed;inset:0}.hud{z-index:10;align-items:center;gap:8px;display:flex;position:fixed}.hud.tl{top:16px;left:16px}.hud.tr{top:16px;right:16px}.hud.bc{bottom:18px;left:50%;transform:translate(-50%)}.glass{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#1c1e1e9e;border:1px solid #f5f5f724;border-radius:999px;box-shadow:0 6px 24px #0000004d}.icon-btn{width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:16px;display:grid}.icon-btn:hover{background:#f5f5f71a}.icon-btn.on{color:var(--amber)}.pill{align-items:center;gap:10px;height:46px;padding:0 14px 0 6px;display:flex}.pill .title{font-size:15px;font-weight:700}.pill .sep{background:var(--line-2);width:1px;height:16px}.pill small{color:var(--muted);font-size:12px}.actionbar{border-radius:999px;gap:4px;padding:6px 10px;display:flex}.act{color:#e9e6df;cursor:pointer;min-width:62px;font:500 11px var(--sans);background:0 0;border:0;border-radius:16px;justify-items:center;gap:2px;padding:6px 8px;display:grid}.act .ic{font-size:20px;line-height:1.1}.act:hover{background:#f5f5f714}.act.on{color:var(--amber);background:var(--amber-glow)}.panel{z-index:12;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#1c1e1edb;border:1px solid #f5f5f724;border-radius:20px;gap:14px;width:min(340px,100vw - 32px);max-height:calc(100vh - 170px);padding:18px;display:grid;position:fixed;top:74px;right:16px;overflow:auto}.panel h4{letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin:0;font-size:13px}.palette{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.palette button{border:1px solid var(--line);background:var(--ink-2);color:var(--text);cursor:pointer;border-radius:12px;justify-items:center;gap:4px;padding:10px 6px;font-size:12px;display:grid}.palette button.on{border-color:var(--amber);background:var(--amber-glow)}.palette .em{font-size:22px}.peer-row{align-items:center;gap:10px;font-size:13px;display:flex}.peer-row .grow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chatbox{z-index:11;width:min(420px,100vw - 32px);position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.chatbox input{background:#1c1e1edb;border-radius:999px}.lobby{z-index:30;background:radial-gradient(#191a1c8c,#191a1ceb);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.lobby .card{background:#202124eb;width:min(480px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.avatar-pick{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.avatar-pick button{border:1px solid var(--line);background:var(--ink-3);color:var(--text);cursor:pointer;border-radius:14px;justify-items:center;gap:6px;padding:10px 6px;font-size:12px;display:grid}.avatar-pick button.on{border-color:var(--amber);background:var(--amber-glow)}.swatch{border-radius:50%;width:34px;height:34px;position:relative;overflow:hidden}.swatch i{position:absolute;inset:0 55% 0 25%;transform:skew(-12deg)}.feed{z-index:12;width:min(320px,100vw - 32px);max-height:calc(100vh - 180px);position:fixed;top:74px;left:16px;overflow:auto}.feed iframe,.feed video{aspect-ratio:16/9;background:#000;border:0;border-radius:12px;width:100%}.hint{z-index:9;color:#f5f5f7bf;text-shadow:0 1px 6px #0009;pointer-events:none;font-size:12px;position:fixed;top:22px;left:50%;transform:translate(-50%)}.status-banner{z-index:20;padding:8px 16px;font-size:13px;position:fixed;top:72px;left:50%;transform:translate(-50%)}@media (width<=640px){.act{min-width:48px;padding:6px 4px;font-size:10px}.pill small,.pill .sep,.hint{display:none}.hud.tr .icon-btn{width:36px;height:36px}}.chatlog{z-index:11;border-radius:18px;width:min(320px,100vw - 32px);position:fixed;bottom:18px;left:16px;overflow:hidden}.chatlog-head{text-align:left;width:100%;color:var(--text);font:600 13px var(--sans);cursor:pointer;background:0 0;border:0;padding:10px 14px}.chatlog.unread:not(.open) .chatlog-head:after{content:"";background:var(--amber);border-radius:50%;width:8px;height:8px;margin-left:8px;display:inline-block}.chatlog-list{max-height:34vh;padding:0 14px 12px;font-size:13px;display:none;overflow-y:auto}.chatlog.open .chatlog-list{gap:6px;display:grid}.chatlog .line{overflow-wrap:anywhere;line-height:1.4}.chatlog .line.sys{color:var(--muted);font-style:italic}.panel.emotes .palette button{font-size:11px}.letter p{color:var(--text)}@media (width<=640px){.chatlog{width:calc(100vw - 32px);bottom:92px}.hud.tr{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 120px)}}.hud.sanct{bottom:92px;left:50%;transform:translate(-50%)}.hud.sanct .actionbar{background:#281c3c8c;border-color:#c8aaff40}.in-sanctuary .hint,.in-sanctuary .chatlog{display:none}button.mood{border:1px solid var(--line);background:var(--ink-3);color:var(--text);min-width:62px;font:500 11px var(--sans);cursor:pointer;border-radius:14px;justify-items:center;gap:2px;padding:8px 10px;display:grid}button.mood span{font-size:26px}button.mood:hover{border-color:var(--amber)}.meditate-overlay{z-index:300;background:0 0;place-items:center;transition:background 3.5s;display:grid;position:fixed;inset:0}.meditate-overlay.dark{background:#020204f7}.meditate-breath{border:1px solid #e0a96d40;border-radius:50%;width:120px;height:120px;animation:10s ease-in-out infinite breath;position:absolute}@keyframes breath{0%,to{opacity:.25;transform:scale(.7)}45%{opacity:.6;transform:scale(1.35)}}.meditate-timer{color:#f5f5f761;font:300 72px var(--display);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;border-radius:24px;padding:20px 40px;position:relative}.meditate-timer:hover{color:#f5f5f7d9;background:#ffffff0a}.meditate-hint{text-align:center;color:#f5f5f759;width:min(520px,90vw);font-size:14px;position:absolute;bottom:18%}.meditate-cancel{color:#f5f5f740;cursor:pointer;background:0 0;border:0;font-size:22px;position:absolute;top:18px;right:18px}.voice-panel{z-index:120;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#140e22db;border:1px solid #c8aaff47;border-radius:22px;gap:12px;width:min(560px,100vw - 32px);padding:18px 20px;display:grid;position:fixed;bottom:168px;left:50%;transform:translate(-50%);box-shadow:0 0 60px #a078ff2e}.voice-head{color:#cdb8ff;letter-spacing:.08em;align-items:center;gap:8px;font-size:13px;display:flex}.voice-head span{flex:1}.voice-line{font:500 21px/1.5 var(--display);color:var(--text);margin:0}:lang(ko) .voice-line{font-family:"Noto Serif KR", var(--display);font-size:19px}.voice-choices{flex-wrap:wrap;gap:8px;display:flex}.voice-choices textarea{min-height:80px}.orb-css{border-radius:50%;width:150px;height:150px;animation:12s linear infinite orb-spin;box-shadow:0 0 60px #b4a0ff73,inset -20px -30px 60px #00000059}@keyframes orb-spin{to{filter:hue-rotate(40deg)}}@media (width<=640px){.hud.sanct{bottom:86px}.hud.sanct .act{min-width:46px}.voice-panel{bottom:160px}.meditate-timer{font-size:56px}}.in-memorial .hud.bc{display:none}.in-memorial .hud.sanct{bottom:22px}.music-sheet{max-height:72vh;overflow-y:auto}.music-row{border:1px solid var(--line);border-radius:12px;align-items:center;gap:6px;padding:4px;display:flex}.music-row.on{border-color:var(--amber)}.music-row>button.grow{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;gap:2px;padding:6px 8px;display:grid}.music-row small{color:var(--muted);font-size:12px}.chip[aria-pressed=true]{border-color:var(--amber);color:var(--amber)}.icon-btn.talking{box-shadow:0 0 0 2px var(--ok);background:#7fc89a59!important}.modal:has(.decor-sheet){width:min(720px,100%)}.decor-sheet{width:100%;min-width:0}.decor-sheet input,.decor-sheet button.btn{box-sizing:border-box;max-width:100%}.decor-sheet input[type=file]{width:100%}.decor-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.decor-tile{background:var(--ink-3);cursor:pointer;text-align:left;color:var(--text);border:2px solid #0000;border-radius:10px;padding:0;display:grid;position:relative;overflow:hidden}.decor-tile img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.decor-tile small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;padding:4px 6px;font-size:11px;overflow:hidden}.decor-tile.on{border-color:var(--amber)}.decor-tile.on:after{content:"✓";background:var(--amber);color:#191a1c;border-radius:50%;place-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:grid;position:absolute;top:6px;right:6px}.cave-motto{color:#f3e2c4;max-width:min(560px,100% - 32px);font-family:var(--display);text-align:center;pointer-events:none;z-index:5;background:linear-gradient(#3c2816d1,#24180ed1);border:1px solid #e0a96d73;border-radius:6px;padding:8px 18px;font-size:18px;position:fixed;top:64px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000059}.cave-motto[hidden]{display:none}.wall-canvas{aspect-ratio:16/10;touch-action:none;cursor:crosshair;background:#e9dfcf;border-radius:10px;width:100%}.swatch{cursor:pointer;border:2px solid #ffffff59;border-radius:50%;width:26px;height:26px}.modal:has(.cave-habit){width:min(700px,100%)}.cm-panel{z-index:30;width:270px;color:var(--text,#f2ede6);border-radius:16px;gap:8px;padding:12px 14px;display:grid;position:fixed;bottom:96px;left:14px}.cm-panel.folded .cm-body,.cm-panel.folded .cm-tag{display:none}@media (width<=640px){.cm-panel{width:auto;bottom:88px;left:8px;right:8px}}.cm-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cm-head .icon-btn{width:28px;height:28px;font-size:16px}.cm-tag{font-size:12px;line-height:1.45}.cm-body{gap:10px;display:grid}.cm-chips{flex-wrap:wrap;gap:6px}.cm-chips .chip.on{border-color:var(--amber);color:var(--amber)}.cm-left{color:var(--muted,#a9a39a);min-height:16px;font-size:12.5px}.cm-breath{place-items:center;height:128px;display:grid;position:relative}.cm-breath-ring{background:radial-gradient(circle,#aaa0ff73,#aaa0ff0d 70%);border-radius:50%;width:112px;height:112px;position:absolute;transform:scale(.45);box-shadow:0 0 40px #a096ff59}.cm-breath[data-breath=calm] .cm-breath-ring{background:radial-gradient(circle,#7fd0ff73,#7fd0ff0d 70%)}.cm-breath-word{text-shadow:0 1px 4px #0009;font-size:14px;font-weight:600;position:relative}.cm-clock{letter-spacing:.02em;font-variant-numeric:tabular-nums;text-align:center;font-size:40px;font-weight:700}.cm-phase{text-align:center;color:var(--amber,#e0a96d);font-size:13.5px}.cm-prompt{margin:0;font-size:13px;line-height:1.5}.cm-steps{color:var(--muted,#a9a39a);gap:3px;margin:0;padding-left:18px;font-size:12.5px;display:grid}.cm-steps li.on{color:var(--text,#f2ede6);font-weight:600}.cm-shade{opacity:0;pointer-events:none;z-index:20;background:#02030a;transition:opacity 4s;position:fixed;inset:0}body.cm-sleeping .hud,body.cm-sleeping .hint{opacity:.15;transition:opacity 3s}body.cm-sleeping .cm-panel{z-index:31;background:#0a0a168c}.cm-night{z-index:40;text-align:center;color:#8a86b8;cursor:pointer;background:#000;place-items:center;display:none;position:fixed;inset:0}.cm-night.on{animation:4s cmfade;display:grid}.cm-night div{font-size:42px}.cm-night p{margin:8px 0 4px;font-size:18px}@keyframes cmfade{0%{opacity:0}to{opacity:1}}body.cm-focusing .hint{opacity:0}.paid-set{background:linear-gradient(#e0a96d14,#e0a96d05);border:1px solid #e0a96d59;border-radius:14px;gap:8px;padding:10px;display:grid}.paid-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.paid-item{border:1px solid var(--line);cursor:pointer;background:#0d0d10;border-radius:10px;place-items:center;padding:4px 2px;display:grid;position:relative}.paid-item img{aspect-ratio:64/250;object-fit:contain;width:100%;max-width:38px;height:auto}.paid-item.on{border-color:var(--amber);box-shadow:0 0 0 2px var(--amber-glow)}.paid-item.locked img{filter:saturate(.55)brightness(.7)}.paid-item i{font-size:11px;font-style:normal;position:absolute;bottom:2px;right:2px}.paid-head{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.pass-plans{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pass-plan{border:1px solid var(--line-2);background:var(--ink-3,#26272b);border-radius:14px;gap:4px;padding:12px;display:grid}.pass-plan .price{color:var(--amber);font-size:22px;font-weight:700}.disc-invite{z-index:30;border:1px solid #e0a96d99;border-radius:16px;gap:6px;width:min(300px,100vw - 32px);padding:14px 16px;display:grid;position:fixed;bottom:92px;right:16px}
