:root{color-scheme:dark;--ink:#fffaf1;--muted:#dbd9d1;--panel:rgba(18,28,34,.65);--line:rgba(255,255,255,.20);--accent:#e4c99b;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#4c6d83;color:var(--ink)}button{font:inherit;color:inherit;cursor:pointer;border:0;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{transition:background .18s,color .18s,transform .18s}button:hover{background:rgba(255,255,255,.15)}button:active{transform:translateY(1px)}#experience,#scene{width:100%;height:100%;position:absolute;inset:0}#scene{display:block;touch-action:none;outline-offset:-5px}#experience:after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,24,38,.30),transparent 25%,transparent 68%,rgba(10,20,24,.45));z-index:1}.topbar{position:absolute;top:32px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:flex-start;z-index:3;pointer-events:none}.identity{text-shadow:0 2px 20px #14233055}.eyebrow{font-size:10px;letter-spacing:.24em;color:#f0e4cf}.identity h1{font-size:30px;font-weight:550;letter-spacing:-.05em;margin:8px 0 7px}.identity p{font-size:12px;color:#fff7e6e6;margin:0;letter-spacing:.02em}.top-actions{display:flex;align-items:center;gap:10px;pointer-events:auto}.altitude{display:flex;align-items:baseline;gap:5px;font-size:11px;letter-spacing:.03em;margin-right:8px;text-shadow:0 1px 6px #0008}.altitude b{font-size:22px;font-weight:450;font-variant-numeric:tabular-nums}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#d9eccf;margin-right:5px;align-self:center}.icon-button{background:var(--panel);border:1px solid var(--line);border-radius:50%;width:36px;height:36px;font-size:18px;backdrop-filter:blur(14px)}.views{position:absolute;top:34px;left:50%;transform:translateX(-50%);display:flex;align-items:center;padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:8px;z-index:3;backdrop-filter:blur(18px);white-space:nowrap}.views button{padding:10px 17px;background:transparent;border-radius:4px;font-size:12px;letter-spacing:.01em;color:#eee8dccc}.views button.active{background:#f1e6d7;color:#293333}.divider{height:18px;width:1px;background:var(--line);margin:0 4px}.location{position:absolute;left:40px;bottom:118px;z-index:2;pointer-events:none;text-shadow:0 2px 15px #0007}.location-label{font-size:10px;letter-spacing:.23em;color:var(--accent)}.location h2{font-size:26px;letter-spacing:-.04em;font-weight:450;margin:9px 0}.location p{font-size:12px;color:#fff6e9cc;line-height:1.7;margin:0}.bottom-bar{position:absolute;left:40px;right:40px;bottom:33px;z-index:4;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.walk-modes,.flight-controls{display:flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--line);padding:5px;border-radius:8px;backdrop-filter:blur(18px);pointer-events:auto}.walk-modes button,.flight-controls button{border-radius:4px;padding:11px 15px;background:transparent;font-size:12px;white-space:nowrap}.walk-modes button span{margin-right:7px;font-size:14px}.walk-modes button[aria-pressed=true],#cruise[aria-pressed=true]{background:#f1e6d7;color:#293333}#cruise-symbol{font-size:18px;margin-right:9px;vertical-align:-1px}#home{font-size:21px;padding:5px 14px;border-left:1px solid var(--line);border-radius:0}.navigation{position:absolute;right:42px;bottom:115px;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:4;user-select:none;touch-action:none}.navigation div{display:flex;gap:4px;align-items:center}.navigation button{background:rgba(18,28,34,.5);border:1px solid var(--line);border-radius:5px;backdrop-filter:blur(10px);width:37px;height:32px;font-size:16px;touch-action:none}.navigation #step{width:54px;font-size:10px};padding:0 2px}.navigation #btn-v{width:32px;font-size:12px;font-weight:700;color:var(--accent);border-color:rgba(228,201,155,.45)}.navigation #btn-v[aria-pressed=true],.navigation #btn-v.active{background:var(--accent);color:#293333}.hint{position:absolute;z-index:3;left:50%;bottom:50px;transform:translateX(-50%);font-size:10px;color:#ffffffb3;letter-spacing:.04em;pointer-events:none}.hint span{padding:0 10px;color:#fff6}.help-panel{position:absolute;right:40px;top:90px;z-index:6;width:320px;background:rgba(20,31,38,.96);border:1px solid var(--line);border-radius:10px;padding:24px;box-shadow:0 15px 60px #0003}.help-panel h2{font-size:17px;font-weight:500;margin:0 0 16px}.help-panel p{font-size:12px;line-height:1.8;color:#deded8}.help-panel dl{font-size:11px}.help-panel dl div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #fff1}.help-panel dd{margin:0;color:var(--accent)}.help-panel button,#error button{padding:10px 18px;background:#e6d0ae;color:#26333b;border-radius:4px;margin-top:10px}.help-panel[hidden],#error[hidden],#loading[hidden]{display:none}#loading{position:absolute;inset:0;z-index:10;background:#192b36;display:flex;flex-direction:column;justify-content:center;align-items:center}.loading-mark{font-family:Georgia,serif;font-size:46px;letter-spacing:.24em;font-weight:400;color:#e8d3b0}.loading-line{margin-top:20px;width:135px;height:1px;background:linear-gradient(90deg,transparent,#e8d3b0,transparent);animation:breathe 1.8s ease-in-out infinite}#loading p{font-size:12px;color:#c4cbd0;margin-top:18px}#error{position:absolute;inset:0;display:grid;place-content:center;background:#1a2b35e8;text-align:center;z-index:12;padding:30px}#error h2{font-size:22px}#error p{font-size:13px;max-width:500px;line-height:1.7;color:#ddd}#error button{justify-self:center}@keyframes breathe{50%{opacity:.25;transform:scaleX(.65)}}@media(max-width:900px){.topbar{top:23px;left:25px;right:25px}.identity h1{font-size:25px}.identity p{display:none}.views{top:105px}.location{left:25px;bottom:125px}.bottom-bar{left:25px;right:25px;bottom:25px}.hint{display:none}.navigation{right:27px;bottom:115px}.location h2{font-size:23px}.help-panel{right:25px;top:150px}}@media(max-width:580px){.topbar{left:19px;right:19px;top:20px}.eyebrow{font-size:8px}.identity h1{font-size:24px}.altitude{margin-right:0;font-size:9px}.altitude b{font-size:18px}.icon-button{width:30px;height:30px;font-size:15px}.top-actions{gap:6px}.views{top:98px;width:calc(100% - 36px);justify-content:center}.views button{padding:10px 11px;font-size:11px}.location{left:20px;bottom:177px;max-width:70%}.location h2{font-size:21px}.location p{font-size:10px;max-width:200px}.bottom-bar{left:18px;right:18px;bottom:max(20px,env(safe-area-inset-bottom));gap:10px;align-items:flex-end;flex-wrap:wrap}.walk-modes{width:100%;justify-content:center}.walk-modes button{flex:1;padding:12px 10px}.flight-controls{order:-1;margin-left:auto}.flight-controls button{font-size:10px;padding:7px 12px}.navigation{right:20px;bottom:166px}.navigation button{width:33px;height:30px}.navigation #step{width:47px}.help-panel{right:18px;top:154px;width:calc(100% - 36px);max-width:340px}.location-label{font-size:8px}}

.dance{position:absolute;left:50%;bottom:33px;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:12px;width:min(420px,calc(100% - 640px));min-width:300px;padding:7px 14px 7px 7px;background:var(--panel);border:1px solid var(--line);border-radius:8px;backdrop-filter:blur(18px)}
.dance[hidden]{display:none}
#dance-play{flex:none;width:44px;height:44px;border-radius:6px;background:#f1e6d7;color:#293333;font-size:16px}
#dance-play:hover{background:#fff4e4}
#dance-play[aria-pressed=true]{background:var(--accent)}
.dance-body{flex:1;min-width:0}
.dance-head{display:flex;align-items:baseline;gap:8px;font-size:12px;margin-bottom:5px;white-space:nowrap;overflow:hidden}
.dance-head b{font-weight:600;letter-spacing:.02em}
.dance-head span{font-size:11px;color:#eee8dcb3;overflow:hidden;text-overflow:ellipsis}
.dance-track{display:flex;align-items:center;gap:8px;font-size:10px;color:#eee8dccc;font-variant-numeric:tabular-nums}
#dance-seek{flex:1;min-width:0;accent-color:var(--accent);height:16px;margin:0}
#watch[aria-pressed=true]{background:#f1e6d7;color:#293333}
.hint{bottom:96px}
@media(max-width:1100px){.dance{bottom:96px;width:min(420px,calc(100% - 50px))}.hint{display:none}}
@media(max-width:900px){.dance{bottom:88px}.location{bottom:190px}.navigation{bottom:180px}}
@media(max-width:580px){.dance{bottom:132px;width:calc(100% - 36px);min-width:0;gap:10px;padding:6px 12px 6px 6px}#dance-play{width:40px;height:40px}.location{bottom:236px}.navigation{bottom:226px}.walk-modes button{padding:12px 6px;font-size:11px}.walk-modes button span{margin-right:4px}}

.presence{position:absolute;top:134px;left:40px;z-index:3;max-width:calc(100% - 80px);padding:7px 11px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--muted);font-size:11px;backdrop-filter:blur(12px);pointer-events:none}
.presence[data-online=true]{color:#d9eccf}
@media(max-width:900px){.presence{top:165px;left:25px}}
@media(max-width:580px){.presence{top:155px;left:19px;max-width:calc(100% - 38px);font-size:10px}}

.chat-form{flex:none;padding:12px;border-top:1px solid #ffffff20;background:#101b2528}
.chat-row{display:flex;gap:6px}.chat-row input{min-width:0;flex:1;background:#ffffff12;color:#fffaf1;border:1px solid #ffffff24;border-radius:4px;padding:10px;font:inherit;font-size:13px}.chat-row button{background:var(--accent);color:#26333b;padding:8px 12px;border-radius:4px;font-size:12px}.chat-row button:disabled{opacity:.45;cursor:default}
#chat-feedback{font-size:10px;color:var(--muted);line-height:1.5;margin:6px 2px 0}
#speech-layer{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.speech-bubble{position:absolute;width:max-content;max-width:min(240px,70vw);padding:10px 14px;border-radius:15px;background:#fffdf6;color:#293333;box-shadow:0 3px 16px #14233035;font-size:14px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap;transform:translate(-50%,-100%);border:1px solid #d2c4ad}
.speech-bubble:after{content:"";position:absolute;bottom:-9px;left:calc(50% - 8px);border-width:9px 8px 0;border-style:solid;border-color:#fffdf6 transparent transparent}
.speech-bubble[hidden]{display:none}.speech-bubble.self{background:#f9e8c8}.speech-bubble.self:after{border-top-color:#f9e8c8}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

@media(max-width:580px){.chat-row input{font-size:16px}.speech-bubble{font-size:13px}}
.chat-toggle{position:absolute;right:40px;top:96px;z-index:8;width:43px;height:43px;display:grid;place-items:center;border:1px solid #ffffff45;border-radius:9px;background:#14232e66;backdrop-filter:blur(8px)}
.chat-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.chat-toggle[aria-expanded=true]{color:var(--accent);background:#14232eb3}
#chat-unread{position:absolute;top:-5px;right:-5px;min-width:18px;padding:2px 4px;border-radius:10px;background:#e4c99b;color:#26333b;font-size:10px}#chat-unread[hidden]{display:none}
.chat-panel{position:absolute;right:40px;top:150px;bottom:110px;max-height:460px;width:330px;max-width:calc(100% - 38px);z-index:7;display:flex;flex-direction:column;overflow:hidden;border:1px solid #ffffff30;border-radius:9px;background:rgba(13,24,32,.48);backdrop-filter:blur(7px);box-shadow:0 12px 40px #10202b20}.chat-panel[hidden]{display:none}
.chat-header{display:flex;align-items:center;justify-content:space-between;flex:none;padding:10px 12px;border-bottom:1px solid #ffffff20;background:#14232e20}.chat-header>div{display:flex;align-items:center;gap:8px}.chat-header b{font-size:12px;font-weight:550}#chat-count{font-size:10px;color:#e9decd99}.chat-live{width:5px;height:5px;border-radius:50%;background:#c4dfb6}.chat-header button{background:none;font-size:23px;line-height:1;width:28px;height:28px;border-radius:4px}
.chat-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff40 transparent;padding:14px 12px;font-size:12px;line-height:1.6;text-shadow:0 1px 3px #0008}.chat-messages p{margin:0 0 12px;overflow-wrap:anywhere}.chat-messages .chat-sender{color:#b5d8e5;font-weight:550;margin-right:8px}.chat-messages .own .chat-sender{color:var(--accent)}.chat-messages time{color:#ffffff65;font-size:9px;float:right;margin-left:8px}#chat-empty{color:#ffffff80;font-size:11px}.chat-row input::placeholder{color:#ffffff70}
.join-screen{position:absolute;inset:0;z-index:15;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 30% 15%,#526e7e,#152b38 75%);overflow:auto}.join-screen[hidden]{display:none}.join-card{width:min(420px,100%);padding:32px;border:1px solid #ffffff25;border-radius:14px;background:#15263170;box-shadow:0 20px 80px #0002}.join-card h2{font-size:25px;letter-spacing:-.04em;font-weight:500;margin:16px 0 10px}.join-card>p{font-size:12px;color:#d9dedf;line-height:1.6}.join-name{display:flex;flex-direction:column;gap:9px;font-size:12px;margin:26px 0 22px}.join-name input{font:inherit;font-size:16px;padding:12px;border:1px solid #ffffff30;border-radius:6px;background:#ffffff0b;color:#fff}.character-choices{border:0;padding:0;margin:0 0 24px;display:flex;gap:10px}.character-choices legend{font-size:12px;margin-bottom:10px}.character-choices label{flex:1;cursor:pointer}.character-choices input{position:absolute;opacity:0}.character-choices span{display:flex;flex-direction:column;gap:7px;padding:20px 13px;border:1px solid #ffffff28;border-radius:7px;background:#ffffff05}.character-choices input:checked+span{border-color:var(--accent);background:#e4c99b15}.character-choices input:focus-visible+span{outline:2px solid white;outline-offset:3px}.character-choices b{font-size:20px;font-weight:500}.character-choices small{font-size:10px;color:#d9dedf}.join-submit{display:flex;justify-content:space-between;width:100%;padding:14px;background:var(--accent);color:#26333b;border-radius:6px;font-size:14px}.join-card .join-note{font-size:10px;color:#ffffff70;margin:13px 0 0}
@media(max-width:900px){.chat-toggle{right:25px;top:156px}.chat-panel{right:25px;top:208px;bottom:170px}}
@media(max-width:580px){.chat-toggle{right:19px;top:151px;width:36px;height:36px}.chat-panel{right:19px;top:196px;bottom:194px;width:330px;max-height:none}.join-card{padding:25px}.join-card h2{font-size:23px}}
@media(max-height:550px){.chat-toggle{top:85px}.chat-panel{top:130px;bottom:15px}.join-screen{place-items:start center}.join-card{padding:22px}.join-name{margin:14px 0}.character-choices{margin-bottom:14px}.character-choices span{padding:12px}}

.avatar-actions{position:absolute;left:40px;top:178px;z-index:4;width:275px;max-width:calc(100% - 80px);padding:12px;background:rgba(18,28,34,.5);border:1px solid var(--line);border-radius:7px;backdrop-filter:blur(9px)}.avatar-actions[hidden]{display:none}.avatar-actions h2{font-size:10px;letter-spacing:.08em;font-weight:500;margin:0 0 9px;color:#fff8}.action-buttons{display:flex;gap:5px}.action-buttons button{flex:1;padding:9px 7px;border:1px solid #ffffff20;background:#ffffff08;border-radius:4px;font-size:12px}.action-buttons button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#26333b}.avatar-actions p{font-size:10px;line-height:1.5;color:#fff9;margin:9px 0 0}
@media(max-width:900px){.avatar-actions{left:25px;top:204px}}
@media(max-width:580px){.avatar-actions{left:19px;top:196px;width:252px;max-width:calc(100% - 38px);padding:10px}.action-buttons button{padding:9px 5px;font-size:11px}}
@media(max-height:550px){.avatar-actions{top:140px;width:235px;padding:8px}.avatar-actions p{display:none}}

/* Shared stage controls directly below the left chat icon. */
.chat-toggle{left:40px;right:auto;top:134px}
.tv-toggle{position:absolute;left:40px;right:auto;top:184px;z-index:8;width:43px;height:43px;display:grid;place-items:center;border:1px solid #ffffff45;border-radius:9px;background:#14232e66;backdrop-filter:blur(8px);cursor:pointer;color:#f3f4f6}
.tv-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.tv-toggle[aria-expanded=true]{color:var(--accent);background:#14232eb3}
.share-toggle{position:absolute;left:40px;right:auto;top:234px;z-index:8;width:43px;height:43px;display:grid;place-items:center;border:1px solid #ffffff45;border-radius:9px;background:#14232e66;backdrop-filter:blur(8px);cursor:pointer;color:#f3f4f6}
.share-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.share-toggle[aria-expanded=true]{color:var(--accent);background:#14232eb3}
.share-panel{position:absolute;left:40px;top:284px;z-index:9;width:340px;max-width:calc(100% - 48px);border:1px solid #e4c99b55;border-radius:10px;background:#14232ef2;backdrop-filter:blur(14px);box-shadow:0 12px 36px #00000055;padding:16px;color:#f3f4f6}
.share-panel[hidden]{display:none}
.share-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #ffffff20;font-size:14px}
.share-header b{color:var(--accent)}
#share-close{background:none;border:0;color:#fff9;font-size:18px;cursor:pointer;padding:0 4px}
.share-content{display:flex;flex-direction:column;gap:12px}
.share-card{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:8px;background:#ffffff0a;border:1px solid #ffffff18}
.share-card-header{display:flex;align-items:center;justify-content:space-between}
.share-badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}
.share-badge.lan{background:#2a4533;color:#86efac;border:1px solid #4ade8055}
.share-badge.public{background:#3b3252;color:#d8b4fe;border:1px solid #c084fc55}
.share-card-header small{font-size:10px;color:#9ca3af}
.share-input-row{display:flex;gap:6px}
.share-input-row input{flex:1;min-width:0;background:#0d1820;border:1px solid #ffffff22;border-radius:5px;padding:6px 8px;color:#fff;font-size:12px;font-family:monospace}
.share-copy-btn{flex:none;padding:6px 10px;border:1px solid #e4c99b66;border-radius:5px;background:#e4c99b22;color:var(--accent);font-size:11px;cursor:pointer}
.share-copy-btn:hover{background:#e4c99b44}
.share-card-tip{margin:0;font-size:10px;color:#9ca3af;line-height:1.4}
.share-guide{font-size:11px;color:#d1d5db;border-top:1px solid #ffffff18;padding-top:10px}
.share-guide summary{cursor:pointer;color:var(--accent);margin-bottom:6px;outline:none}
.share-guide .guide-body{line-height:1.6;font-size:11px;color:#cbd5e1;background:#00000030;padding:8px 10px;border-radius:6px}
.share-guide ol{margin:0;padding-left:18px}
.share-guide li{margin-bottom:6px}
.share-guide code{background:#ffffff15;padding:1px 4px;border-radius:3px;color:#fde047;font-family:monospace}
.tv-panel{position:absolute;left:40px;top:284px;z-index:9;width:300px;border:1px solid #e4c99b55;border-radius:10px;background:#14232ef2;backdrop-filter:blur(12px);box-shadow:0 12px 36px #00000055;padding:14px;color:#f3f4f6}
.tv-panel[hidden]{display:none}
.tv-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #ffffff20;font-size:14px}
.tv-header b{color:var(--accent)}
#tv-close{background:none;border:0;color:#fff9;font-size:18px;cursor:pointer;padding:0 4px}
.tv-content{display:flex;flex-direction:column;gap:12px}
.tv-row{display:flex;align-items:center;justify-content:space-between;font-size:13px}
.tv-action-btn{padding:6px 12px;border:1px solid #e4c99b80;border-radius:6px;background:#ffffff15;color:var(--accent);font-size:12px;cursor:pointer}
.tv-action-btn:hover{background:#ffffff25}
.tv-section-title{font-size:11px;color:#9ca3af;text-transform:uppercase;letter-spacing:0.5px;margin-top:4px}
.tv-media-list{display:flex;flex-direction:column;gap:6px}
.tv-media-btn,.tv-bg-btn,.tv-extra-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border:1px solid #ffffff22;border-radius:6px;background:#ffffff0a;color:#e5e7eb;text-align:left;cursor:pointer;transition:all .15s ease}
.tv-media-btn:hover,.tv-bg-btn:hover,.tv-extra-btn:hover{background:#ffffff18;border-color:#e4c99b66}
.tv-media-btn.active,.tv-bg-btn.active,.tv-extra-btn.active{background:#e4c99b22;border-color:var(--accent);color:#fff}
.tv-media-btn b,.tv-bg-btn b,.tv-extra-btn b{font-size:12px;color:var(--accent)}
.tv-media-btn small,.tv-bg-btn small,.tv-extra-btn small{font-size:10px;color:#9ca3af}
.presence{left:96px;top:140px;max-width:calc(100% - 200px)}
.dance{left:40px;right:auto;top:288px;bottom:auto;transform:none;flex-direction:column;align-items:stretch;gap:8px;width:190px;min-width:0;padding:10px}
.dance.pov{top:410px}
#dance-play,#pov-play{flex:none;width:100%;height:41px;border-radius:6px;background:#f1e6d7;color:#293333;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;white-space:nowrap}
#dance-play:hover,#pov-play:hover{background:#fff4e4}
#dance-play[aria-pressed=true],#pov-play[aria-pressed=true]{background:var(--accent)}
#dance-play:disabled,#pov-play:disabled{opacity:.5;cursor:default}#dance-play-symbol,#pov-play-symbol{font-size:15px}
.dance-body{width:100%;flex:none}.dance-head{margin:0 0 6px;line-height:1.5;white-space:normal}.dance-head span{font-size:10px;display:block;white-space:normal}.dance-track{gap:5px;font-size:9px}#dance-seek,#pov-seek{flex:1;min-width:0;accent-color:var(--accent);height:22px;margin:0}
#stage-sound,#pov-sound{padding:8px 6px;background:#fff1;border:1px solid #e4c99b70;border-radius:4px;color:var(--accent);font-size:11px}#stage-sound[hidden],#pov-sound[hidden]{display:none}
.pov-progress{appearance:none;border:0 solid;overflow:clip;--progress-bar-radius:1e5px;border-radius:var(--progress-bar-radius);background:rgba(255,255,255,.16);box-shadow:inset 0 1px 2px rgb(0 0 0 / .2);width:100%;height:6px;display:block;margin:0 0 6px}
.pov-progress[hidden]{display:none}
.pov-progress::-webkit-progress-bar{background:transparent}
.pov-progress::-webkit-progress-value{background:var(--accent);border-radius:var(--progress-bar-radius);transition:inline-size .2s}
.pov-progress::-moz-progress-bar{background:var(--accent);border-radius:var(--progress-bar-radius);transition:inline-size .2s}
.avatar-actions{left:auto;right:40px;top:178px}
@media(max-width:900px){.chat-toggle{left:25px;top:156px}.tv-toggle{left:25px;top:206px}.share-toggle{left:25px;top:256px}.presence{left:81px;top:162px}.dance{left:25px;top:308px;width:180px}.dance.pov{top:429px}.avatar-actions{left:auto;right:25px;top:208px}.tv-panel,.share-panel{left:25px;top:308px;width:280px}}
@media(max-width:580px){.chat-toggle{left:19px;top:151px}.tv-toggle{left:19px;top:196px;width:36px;height:36px}.share-toggle{left:19px;top:241px;width:36px;height:36px}.presence{left:65px;top:155px;max-width:calc(100% - 84px)}.dance{left:19px;top:287px;width:124px;padding:8px}.dance.pov{top:403px}.dance-head span{font-size:9px}#dance-play,#pov-play{font-size:11px;gap:5px;padding:0 3px;height:38px}.avatar-actions{left:auto;right:19px;top:196px;width:210px;max-width:calc(100% - 180px)}.action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.chat-open #dance,.chat-open #pov,.chat-open .avatar-actions,.chat-open .tv-toggle,.chat-open .share-toggle,.chat-open #tv-panel,.chat-open #share-panel{visibility:hidden}.tv-panel,.share-panel{left:19px;top:287px;width:calc(100% - 38px)}}
@media(max-height:550px){.chat-toggle{top:90px}.tv-toggle{top:136px}.share-toggle{top:182px}.presence{top:96px}.dance{top:228px}.dance.pov{top:342px}.avatar-actions{top:140px}.tv-panel,.share-panel{top:228px}}

.stage-message{padding:10px;border-left:2px solid var(--accent);border-radius:3px;background:#e4c99b10;color:#f2dfba}.stage-message>span{display:block;clear:both}.stage-message time{float:none;display:block;text-align:right}.stage-view{display:block;margin-top:6px;padding:4px 8px;border:1px solid #e4c99b55;border-radius:4px;background:#ffffff08;color:var(--accent);font-size:11px}
.stage-notice{position:absolute;top:95px;left:50%;transform:translateX(-50%);z-index:9;display:flex;align-items:center;gap:10px;max-width:calc(100% - 80px);width:max-content;padding:12px 38px 12px 16px;border:1px solid #e4c99b55;border-radius:8px;background:#14232ed9;backdrop-filter:blur(10px);box-shadow:0 8px 30px #0002}.stage-notice[hidden]{display:none}.stage-notice p{margin:0;font-size:12px;line-height:1.6;max-width:330px}.stage-notice button{flex:none;padding:7px 10px;border:1px solid #ffffff30;border-radius:4px;background:#ffffff10;color:var(--accent);font-size:11px}#stage-notice-close{position:absolute;right:6px;top:6px;font-size:20px;padding:0 4px;border:0;background:none;color:#fff9}
@media(max-width:900px){.stage-notice{top:auto;bottom:175px;max-width:calc(100% - 38px)}}
@media(max-width:580px){.stage-notice{bottom:200px;gap:8px;padding:10px 28px 10px 12px;width:calc(100% - 38px)}.stage-notice p{font-size:11px}.stage-notice button{padding:6px;font-size:10px}}
@media(max-width:580px){.chat-open .stage-notice{display:none}}
#dome-toggle[aria-pressed=true]{background:#f1e6d7;color:#293333}#dome-toggle span{margin-right:7px}
.navigation #step[aria-pressed=true]{background:var(--accent);color:#293333;font-weight:700}
.navigation.look-mode button[data-key]{background:rgba(228,201,155,.24);color:var(--accent);border-color:var(--accent)}

/* UI Hide Mode (Cinema / Clean view mode) */
body.ui-hidden .topbar,
body.ui-hidden .views,
body.ui-hidden .location,
body.ui-hidden .bottom-bar,
body.ui-hidden .navigation,
body.ui-hidden .chat-toggle,
body.ui-hidden .tv-toggle,
body.ui-hidden .share-toggle,
body.ui-hidden .presence,
body.ui-hidden .dance,
body.ui-hidden .avatar-actions,
body.ui-hidden .chat-panel,
body.ui-hidden .tv-panel,
body.ui-hidden .share-panel,
body.ui-hidden .stage-notice,
body.ui-hidden .hint {
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

/* Single semi-transparent restore button in UI-hidden mode */
.ui-restore-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 9999;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(18, 28, 34, 0.35);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: rgba(255, 255, 255, 0.6);
  font-size: 20px;
  display: grid;
  place-items: center;
  cursor: pointer;
  opacity: 0.45;
  transition: opacity 0.2s ease, background 0.2s ease, transform 0.2s ease;
  user-select: none;
  touch-action: manipulation;
}
.ui-restore-btn:hover,
.ui-restore-btn:active {
  opacity: 0.95;
  color: #fff;
  background: rgba(18, 28, 34, 0.75);
  transform: scale(1.08);
}
@media (max-width: 580px) {
  .ui-restore-btn {
    top: 16px;
    right: 16px;
    width: 38px;
    height: 38px;
    font-size: 17px;
    opacity: 0.4;
  }
}

/* TV & Media Tabs */
.tv-panel { width: 320px; max-height: calc(100vh - 200px); display: flex; flex-direction: column; overflow: hidden; }
.tv-tabs { display: flex; gap: 4px; border-bottom: 1px solid rgba(255,255,255,0.12); padding-bottom: 8px; margin-bottom: 10px; }
.tv-tab-btn { flex: 1; padding: 7px 4px; font-size: 11px; font-weight: 500; border-radius: 6px; border: 1px solid transparent; background: rgba(255,255,255,0.06); color: #cbd5e1; cursor: pointer; text-align: center; white-space: nowrap; transition: all 0.15s ease; }
.tv-tab-btn:hover { background: rgba(255,255,255,0.12); color: #fff; }
.tv-tab-btn.active { background: var(--accent); color: #18232c; font-weight: 700; border-color: var(--accent); }
.tv-tab-pane { display: flex; flex-direction: column; gap: 10px; }
.tv-tab-pane[hidden] { display: none !important; }
.tv-section-desc { font-size: 11px; color: #94a3b8; line-height: 1.4; margin-bottom: 2px; }
.tv-panel .tv-content { min-height: 0; overflow-y: auto; }
.panorama-controls { margin: 10px 0; padding: 12px; border: 1px solid #e4c99b55; border-radius: 8px; background: #e4c99b0a; }
.panorama-controls[hidden] { display: none; }
.panorama-controls legend { padding: 0 5px; color: #e4c99b; font-size: 12px; }
.panorama-modes { display: flex; gap: 6px; margin-bottom: 12px; }
.panorama-modes button { flex: 1; padding: 7px 3px; border: 1px solid #ffffff30; border-radius: 6px; background: transparent; color: #cbd5e1; font: inherit; font-size: 11px; cursor: pointer; }
.panorama-modes button[aria-pressed="true"] { background: #e4c99b; border-color: #e4c99b; color: #18232c; }
.panorama-range { display: flex; justify-content: space-between; font-size: 12px; }
.panorama-controls input[type="range"] { display: block; width: 100%; margin: 8px 0 12px; accent-color: #e4c99b; }
.panorama-check { display: inline-flex; align-items: center; gap: 5px; margin: 0 8px 6px 0; font-size: 11px; cursor: pointer; }
.panorama-check input { accent-color: #e4c99b; }
.panorama-controls p { margin: 5px 0 0; font-size: 11px; color: #aebdcb; line-height: 1.6; }
.tv-media-list.scrollable { max-height: 320px; overflow-y: auto; padding-right: 4px; gap: 6px; }
.tv-media-list.scrollable::-webkit-scrollbar { width: 5px; }
.tv-media-list.scrollable::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 4px; }
.tv-media-list.scrollable::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* TV 화면 탭의 '기타' 묶음(드론 갤러리) */
.tv-extra-title{margin-top:14px;padding-top:10px;border-top:1px solid #ffffff1a}
