/* 기존 후보의 작은 화면 덮어쓰기를 뒤에서 정리하는 타이틀·로비 화면 레이아웃.
 * 저장된 방향 값은 보존한다. 실제 작은 화면은 안전 배치로 표시하며 data-layout별 legacy 특이성도 덮는다. */
html,body { height:100%; overflow:hidden; }
.game-viewport[data-layout][data-title-lobby-v12] { width:100%; height:100svh; max-width:1800px; margin-inline:auto; }
.game-viewport[data-layout][data-title-lobby-v12] .screen { height:100%; min-height:0; padding-inline:max(var(--oa-gut),env(safe-area-inset-left)); padding-top:max(8px,env(safe-area-inset-top)); padding-bottom:env(safe-area-inset-bottom); }
.game-viewport[data-layout][data-title-lobby-v12] .scene-backdrop { z-index:-2; }
.game-viewport[data-layout][data-title-lobby-v12] .scene-backdrop::after { content:""; position:absolute; inset:0; pointer-events:none; }
[data-time-of-day="dawn"] .scene-backdrop::after { background:linear-gradient(135deg,rgba(240,211,154,.12),transparent 70%); }
[data-time-of-day="dusk"] .scene-backdrop::after { background:linear-gradient(135deg,rgba(138,95,37,.16),transparent 75%); }
[data-time-of-day="night"] .scene-backdrop::after { background:rgba(5,8,11,.15); }
.game-viewport[data-layout][data-title-lobby-v12] .start-backdrop { background-image:linear-gradient(0deg,var(--oa-bg) 0%,rgba(11,18,24,.25) 48%,rgba(11,18,24,.35) 100%),var(--oa-title-background,url('/resource/ui/runtime-v5/start-backdrop-mobile.webp')); background-position:center; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-backdrop { background-image:linear-gradient(0deg,rgba(11,18,24,.94),rgba(11,18,24,.20) 55%,rgba(11,18,24,.65)),var(--oa-lobby-background,url('/resource/ui/runtime-v5/lobby-backdrop-mobile.webp')); background-position:center; }
.game-viewport[data-layout][data-title-lobby-v12] .title-screen { display:grid; grid-template-columns:1fr; grid-template-rows:var(--oa-top-h) minmax(0,1fr) auto 30px; row-gap:8px; align-items:stretch; }
.game-viewport[data-layout][data-title-lobby-v12] .start-header { min-width:0; align-self:start; height:var(--oa-top-h); gap:8px; }
.game-viewport[data-layout][data-title-lobby-v12] .server-status { min-width:0; max-width:46%; line-height:1.3; color:var(--oa-ink-2); }
.game-viewport[data-layout][data-title-lobby-v12] .server-status i { flex:none; background:var(--oa-ink-accent); width:8px; height:8px; }
.game-viewport[data-layout][data-title-lobby-v12] .header-actions { gap:8px; margin-inline-start:auto; }
.game-viewport[data-layout][data-title-lobby-v12] .start-brand { align-self:start; justify-self:center; z-index:2; width:100%; margin:clamp(20px,5svh,60px) 0 0; padding:0; color:var(--oa-ink-strong); text-align:center; text-shadow:0 3px 0 var(--oa-p-brass-900),0 1px 2px var(--oa-p-iron-1000); }
.game-viewport[data-layout][data-title-lobby-v12] .brand-crest { display:block; width:clamp(58px,10svh,90px); height:clamp(58px,10svh,90px); margin:0 auto 8px; object-fit:contain; }
.game-viewport[data-layout][data-title-lobby-v12] .start-brand h1 { font:900 clamp(44px,12vw,72px)/1.08 var(--oa-font-display); letter-spacing:-.01em; color:var(--oa-ink-strong); }
.game-viewport[data-layout][data-title-lobby-v12] .start-brand p { margin-top:10px; color:var(--oa-ink-2); font-size:var(--oa-fs-body); letter-spacing:0; text-shadow:var(--oa-text-on-art); }
.game-viewport[data-layout][data-title-lobby-v12] .title-cast { position:absolute; inset:31% 6% 158px; width:auto; height:auto; max-width:none; transform:none; z-index:1; pointer-events:none; }
.game-viewport[data-layout][data-title-lobby-v12] .title-cast .start-character,.game-viewport[data-layout][data-title-lobby-v12] .title-cast .title-hero-main { position:absolute; inset:auto; bottom:0; left:51%; width:70%; max-width:430px; height:100%; transform:translateX(-50%); margin:0; z-index:2; }
.game-viewport[data-layout][data-title-lobby-v12] .title-cast .title-hero-companion { position:absolute; bottom:0; left:24%; width:56%; height:84%; transform:translateX(-50%); z-index:1; }
.game-viewport[data-layout][data-title-lobby-v12] .title-cast img { width:100%; height:100%; object-fit:contain; object-position:bottom; filter:drop-shadow(0 5px 0 rgba(5,8,11,.8)); }
.game-viewport[data-layout][data-title-lobby-v12] .start-actions { align-self:end; justify-self:center; width:min(390px,100%); padding:0; margin:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:8px; z-index:3; }
.game-viewport[data-layout][data-title-lobby-v12] .start-cta { grid-row:2; grid-column:2; position:relative; }
.game-viewport[data-layout][data-title-lobby-v12] .title-sign-in { grid-row:2; grid-column:1; height:var(--oa-primary-h); min-height:var(--oa-primary-h); font-size:var(--oa-fs-emph); }
.game-viewport[data-layout][data-title-lobby-v12] .title-status { grid-row:1; grid-column:1/-1; }
.game-viewport[data-layout][data-title-lobby-v12] .start-test-link { grid-row:3; grid-column:1/-1; }
.game-viewport[data-layout][data-title-lobby-v12] .start-actions:has(.title-sign-in[hidden]) .start-cta { grid-column:1/-1; }
.game-viewport[data-layout][data-title-lobby-v12] .start-cta>.icon { position:absolute; right:12px; top:calc(50% - 12px); width:24px; height:24px; opacity:.8; }
body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .start-actions { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .start-actions .start-cta { grid-column:1; }
body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .start-actions .title-sign-in { grid-column:2; }
body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .start-actions:has(.title-sign-in[hidden]) .start-cta { grid-column:1/-1; }
.game-viewport[data-layout][data-title-lobby-v12] .title-status { display:flex; align-items:center; gap:8px; min-height:0; padding:8px 12px; color:var(--oa-ink-2); background:var(--oa-status-info-bg); border:1px solid var(--oa-status-info-line); font-size:var(--oa-fs-caption); line-height:1.35; }
.game-viewport[data-layout][data-title-lobby-v12] .title-status[data-kind="error"] { color:var(--oa-ink); border-color:var(--oa-status-error-line); background:var(--oa-status-error-bg); }
.game-viewport[data-layout][data-title-lobby-v12] .start-cta { display:flex; justify-content:center; align-items:center; flex-direction:column; gap:4px; min-height:var(--oa-primary-h); height:var(--oa-primary-h); padding:10px 16px; font-size:var(--oa-fs-primary); line-height:1.15; text-align:center; }
.game-viewport[data-layout][data-title-lobby-v12] .start-cta>span { font-weight:900; }
.game-viewport[data-layout][data-title-lobby-v12] .start-cta small { display:block; max-width:100%; color:var(--oa-ink-on-action); font-size:var(--oa-fs-caption); line-height:1.3; font-weight:500; text-shadow:var(--oa-text-on-primary); }
.game-viewport[data-layout][data-title-lobby-v12] .start-footer { align-self:center; justify-content:center; flex-wrap:wrap; padding:0; gap:6px; font-size:13px; color:var(--oa-ink-2); line-height:1.2; }
.game-viewport[data-layout][data-title-lobby-v12] .start-footer .connection-retry { position:absolute; bottom:190px; right:12px; background-color:var(--oa-status-error-bg); }
.game-viewport[data-layout][data-title-lobby-v12] .invite-banner { font-size:var(--oa-fs-caption); background:var(--oa-status-info-bg); color:var(--oa-ink); border:1px solid var(--oa-status-info-line); padding:8px; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-screen { display:grid; grid-template-columns:1fr; grid-template-rows:var(--oa-top-h) 48px var(--oa-bubble-h) minmax(0,1fr) var(--oa-tab-h); gap:8px; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-header { min-width:0; padding:0; gap:8px; }
.game-viewport[data-layout][data-title-lobby-v12] .profile { flex:1; gap:8px; min-width:0; }
.game-viewport[data-layout][data-title-lobby-v12] .profile>span:last-child { min-width:0; overflow:hidden; }
.game-viewport[data-layout][data-title-lobby-v12] .profile strong { max-width:min(150px,27vw); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.game-viewport[data-layout][data-title-lobby-v12] .profile-mark .icon { width:calc(var(--oa-top-h) - 8px); height:calc(var(--oa-top-h) - 8px); }
.game-viewport[data-layout][data-title-lobby-v12] .profile-mark { flex:none; }
.game-viewport[data-layout][data-title-lobby-v12] .profile small { white-space:nowrap; }
.game-viewport[data-layout][data-title-lobby-v12] .resource-hud { gap:8px; flex:none; }
.game-viewport[data-layout][data-title-lobby-v12] .resource-chip { gap:4px; padding:6px 8px; }
.game-viewport[data-layout][data-title-lobby-v12] .supply-button { display:flex; align-items:center; justify-content:center; gap:4px; position:relative; padding:6px 8px; font-size:var(--oa-fs-caption); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-menu-button { display:grid; place-items:center; width:var(--oa-top-h); height:var(--oa-top-h); padding:10px!important; }
.game-viewport[data-layout][data-title-lobby-v12] .room-shelf { min-height:0; height:48px; position:relative; }
.game-viewport[data-layout][data-title-lobby-v12] .room-shelf:has(#current-room-banner[hidden]):has(#lobby-idle-status[hidden]) { display:none; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-screen:has(#current-room-banner[hidden]):has(#lobby-idle-status[hidden]) { grid-template-rows:var(--oa-top-h) var(--oa-bubble-h) minmax(0,1fr) var(--oa-tab-h); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-screen:has(#lobby-advice[hidden]) { grid-template-rows:var(--oa-top-h) 48px minmax(0,1fr) var(--oa-tab-h); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-screen:has(#current-room-banner[hidden]):has(#lobby-idle-status[hidden]):has(#lobby-advice[hidden]) { grid-template-rows:var(--oa-top-h) minmax(0,1fr) var(--oa-tab-h); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-idle-status { display:flex; align-items:center; justify-content:space-between; height:48px; gap:8px; font-size:var(--oa-fs-caption); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-idle-status button { min-height:48px; font-size:var(--oa-fs-caption); padding:6px 10px; }
.game-viewport[data-layout][data-title-lobby-v12] #progression-goals-entry { min-height:48px; height:48px; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-idle-status>span { color:var(--oa-ink-2); white-space:nowrap; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-idle-status strong { color:var(--oa-ink-accent); margin:0; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-idle-status button>.icon { width:18px; height:18px; }
.game-viewport[data-layout][data-title-lobby-v12] .current-room-banner { height:48px; min-height:48px; padding:8px 12px; width:100%; font-size:var(--oa-fs-caption); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-advice { display:grid; grid-template-columns:minmax(0,1fr) auto 48px; align-items:stretch; gap:8px; min-height:0; height:var(--oa-bubble-h); padding:0; background:linear-gradient(180deg,#282116,#16130e); border:1px solid var(--oa-line-brass-soft); border-radius:var(--oa-r-3); box-shadow:var(--oa-e1); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-advice>button { min-height:48px; box-shadow:none; padding:5px 10px; font-size:var(--oa-fs-caption); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-advice>button:first-child { background:none!important; text-align:start; line-height:1.3; color:var(--oa-ink); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-advice>button:last-child { width:48px; background:none!important; padding:10px; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-advice>button:nth-child(2) { align-self:center; border:1px solid var(--oa-line-brass); margin-inline-end:0; font-weight:800; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-content,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .lobby-content { display:grid; grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) auto; gap:8px; align-items:stretch; min-height:0; width:min(660px,100%); max-width:660px; justify-self:center; }
.game-viewport[data-layout][data-title-lobby-v12] .character-stage,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .character-stage { min-height:0; height:100%; overflow:hidden; }
.game-viewport[data-layout][data-title-lobby-v12] .hero-dais { position:absolute; width:65%; height:18%; left:18%; bottom:calc(var(--oa-chip-h) + 24px); border:0; background:radial-gradient(ellipse,rgba(199,154,82,.24),transparent 70%); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-character,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .lobby-character { position:absolute; width:58%; height:calc(100% - var(--oa-chip-h) - 8px); max-height:none; bottom:calc(var(--oa-chip-h) + 8px); left:50%; top:auto; object-fit:contain; object-position:bottom; transform:translateX(-50%); filter:drop-shadow(0 4px 0 rgba(5,8,11,.7)); z-index:2; transform-origin:center bottom; }
.game-viewport[data-layout][data-title-lobby-v12] .stage-companion { position:absolute; left:14%; bottom:calc(var(--oa-chip-h) + 18px); width:36%; height:58%; object-fit:contain; object-position:bottom; z-index:1; transform-origin:center bottom; }
.game-viewport[data-layout][data-title-lobby-v12] .stage-companion::after { border-color:var(--oa-action-secondary-mid); }
.game-viewport[data-layout][data-title-lobby-v12] .stage-supports { position:absolute; left:19%; right:9%; top:0; height:58%; display:flex; justify-content:space-between; z-index:0; opacity:.65; }
.game-viewport[data-layout][data-title-lobby-v12] .stage-supports img { object-fit:contain; object-position:bottom; width:32%; height:100%; }
.game-viewport[data-layout][data-title-lobby-v12] .character-caption,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .character-caption { position:absolute; bottom:calc(var(--oa-chip-h) + 8px); left:50%; top:auto; transform:translateX(-50%); width:max-content; max-width:85%; min-height:48px; text-align:center; padding:4px 12px; background:linear-gradient(180deg,rgba(40,33,22,.96),rgba(16,13,9,.92)); border:1px solid var(--oa-line-brass-soft); z-index:3; text-shadow:var(--oa-text-on-art); }
.game-viewport[data-layout][data-title-lobby-v12] .character-caption h2 { font:900 var(--oa-fs-display-name)/1.2 var(--oa-font-display); color:var(--oa-ink-strong); margin:0; }
.game-viewport[data-layout][data-title-lobby-v12] .hero-profession { font-size:var(--oa-fs-caption); color:var(--oa-ink-2); }
.game-viewport[data-layout][data-title-lobby-v12] .character-meta { font-size:var(--oa-fs-caption); color:var(--oa-ink-2); margin:2px 0 0; }
.game-viewport[data-layout][data-title-lobby-v12] .character-caption .hero-detail { position:absolute; inset:0; width:100%; height:100%; min-height:48px; margin:0; background:none!important; border:0; box-shadow:none; color:transparent!important; text-shadow:none; font-size:0; padding:0; }
.game-viewport[data-layout][data-title-lobby-v12] .character-caption .hero-detail .icon { position:absolute; right:4px; top:calc(50% - 8px); color:var(--oa-ink); width:16px; height:16px; }
.game-viewport[data-layout][data-title-lobby-v12] .character-caption .role-markers { position:absolute; bottom:100%; left:50%; transform:translateX(-50%); padding-bottom:4px; }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .support-dock { position:absolute; bottom:0; top:auto; left:0; right:0; width:100%; height:var(--oa-chip-h); display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:stretch; gap:8px; z-index:4; }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock>span { display:none; }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock>button { position:relative; inset:auto; transform:none; margin:0; width:100%; min-width:48px; min-height:var(--oa-chip-h); height:var(--oa-chip-h); padding:4px!important; display:grid; place-items:center; gap:0; font-size:13px; }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock>button>img { position:absolute; left:5px; top:5px; width:calc(100% - 10px); height:calc(100% - 10px); object-fit:contain; padding:0; border-radius:0; }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock>button>span,.game-viewport[data-layout][data-title-lobby-v12] .support-dock>button>small { position:absolute; left:0; right:0; top:auto; bottom:2px; width:100%; max-width:none; font-size:13px; line-height:1.2; background:var(--oa-surface-chip); color:var(--oa-ink); z-index:2; text-align:center; }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock .companion-selector { border:2px solid var(--oa-action-secondary-mid); }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock .companion-selector>small { display:none; }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock .main-slot { border:2px solid var(--oa-action-selected-edge); }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock .support-slot>.icon { width:24px; height:24px; }
.game-viewport[data-layout][data-title-lobby-v12] .support-dock .support-slot[data-slot]>span { display:none; }
.game-viewport[data-layout][data-title-lobby-v12] .command-panel,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .command-panel { align-self:stretch; min-width:0; padding:0; margin:0; border:0; border-image:none; background:none; box-shadow:none; display:grid; grid-template-columns:1fr; gap:8px; }
.game-viewport[data-layout][data-title-lobby-v12] .mode-options,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .mode-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:var(--oa-mode-h); gap:8px; }
.game-viewport[data-layout][data-title-lobby-v12] .mode-card,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .mode-card { min-width:0; width:100%; min-height:var(--oa-mode-h); height:var(--oa-mode-h); padding:5px 8px; display:grid; grid-template-columns:var(--oa-icon-m) minmax(0,1fr); align-items:center; text-align:start; gap:0 6px; }
.game-viewport[data-layout][data-title-lobby-v12] .mode-card>.icon,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .mode-card>.icon { grid-row:1/3; width:var(--oa-icon-m); height:var(--oa-icon-m); }
.game-viewport[data-layout][data-title-lobby-v12] .mode-card strong,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .mode-card strong { font-size:var(--oa-fs-caption); line-height:1.15; align-self:end; word-break:keep-all; overflow-wrap:anywhere; }
.game-viewport[data-layout][data-title-lobby-v12] .mode-card small { font-size:13px; line-height:1.15; align-self:start; color:var(--oa-ink-2); }
.game-viewport[data-layout][data-title-lobby-v12] .mode-selection { top:2px; right:2px; }
.game-viewport[data-layout][data-title-lobby-v12] .mode-selection .icon { width:12px; height:12px; }
.game-viewport[data-layout][data-title-lobby-v12] .mode-detail { padding:0 4px; font-size:var(--oa-fs-caption); min-height:20px; gap:5px; line-height:1.2; color:var(--oa-ink-2); }
.game-viewport[data-layout][data-title-lobby-v12] .mode-detail #mode-description { display:block; font-size:var(--oa-fs-caption); color:var(--oa-ink-2); }
.game-viewport[data-layout][data-title-lobby-v12] .mode-capacity { font-size:var(--oa-fs-caption); color:var(--oa-ink-2); }
.game-viewport[data-layout][data-title-lobby-v12] .quick-target { display:grid; grid-template-columns:minmax(0,1fr) calc(3 * var(--oa-touch-min) + 8px); grid-template-rows:var(--oa-target-h); gap:8px; min-width:0; }
.game-viewport[data-layout][data-title-lobby-v12] #target-choice { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:4px; min-width:0; min-height:var(--oa-target-h); padding:8px 12px; text-align:start; font-size:var(--oa-fs-body); line-height:1.25; }
.game-viewport[data-layout][data-title-lobby-v12] #target-choice small { font-size:var(--oa-fs-caption); line-height:1.2; }
.game-viewport[data-layout][data-title-lobby-v12] .quick-difficulties { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; align-items:stretch; }
.game-viewport[data-layout][data-title-lobby-v12] .quick-difficulties button { min-width:0; min-height:var(--oa-touch-min); padding:4px; font-size:var(--oa-fs-caption); }
.game-viewport[data-layout][data-title-lobby-v12] .compact-mode-toggle,.game-viewport[data-layout][data-title-lobby-v12] .compact-difficulty-toggle { display:none; }
.game-viewport[data-layout][data-title-lobby-v12] .departure-actions,.game-viewport[data-layout][data-title-lobby-v12][data-layout="landscape"] .departure-actions { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); grid-template-rows:var(--oa-primary-h); gap:8px; }
.game-viewport[data-layout][data-title-lobby-v12] .departure-actions button { width:100%; height:var(--oa-primary-h); min-height:var(--oa-primary-h); display:flex; flex-direction:column; justify-content:center; gap:4px; font-size:var(--oa-fs-primary); padding:8px 12px; text-align:center; line-height:1.15; }
.game-viewport[data-layout][data-title-lobby-v12] .departure-actions .icon { width:var(--oa-icon-m); height:var(--oa-icon-m); }
.game-viewport[data-layout][data-title-lobby-v12] .departure-actions button>span { display:block; width:100%; }
.game-viewport[data-layout][data-title-lobby-v12] .departure-actions button strong { display:block; }
.game-viewport[data-layout][data-title-lobby-v12] .departure-actions button small { display:block; color:var(--oa-ink-on-action); font-size:var(--oa-fs-caption); line-height:1.2; margin-top:3px; }
.game-viewport[data-layout][data-title-lobby-v12] .departure-actions .coop-button { font-size:var(--oa-fs-emph); }
body[data-control-hand="right"] .game-viewport[data-layout][data-title-lobby-v12] .departure-actions,body[data-control-hand="both"] .game-viewport[data-layout][data-title-lobby-v12] .departure-actions { grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); }
body[data-control-hand="right"] .game-viewport[data-layout][data-title-lobby-v12] .departure-actions .solo-button,body[data-control-hand="both"] .game-viewport[data-layout][data-title-lobby-v12] .departure-actions .solo-button { grid-column:2; grid-row:1; }
body[data-control-hand="right"] .game-viewport[data-layout][data-title-lobby-v12] .departure-actions .coop-button,body[data-control-hand="both"] .game-viewport[data-layout][data-title-lobby-v12] .departure-actions .coop-button { grid-column:1; grid-row:1; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-nav { width:100%; max-width:660px; min-height:var(--oa-tab-h); height:var(--oa-tab-h); grid-template-columns:repeat(5,minmax(0,1fr)); justify-self:center; align-self:end; padding:0; border:0; border-top:2px solid var(--oa-line-brass); border-image:none; border-radius:0; background:var(--oa-surface-0); box-shadow:var(--oa-e3); gap:0; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-nav button { min-width:0; min-height:calc(var(--oa-tab-h) - 2px); height:calc(var(--oa-tab-h) - 2px); padding:6px 2px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; box-shadow:none; color:var(--oa-ink-2); font-size:var(--oa-fs-tab); border:0; border-image:none!important; background:none!important; text-shadow:none; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-nav .icon { width:var(--oa-icon-l); height:var(--oa-icon-l); }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-nav button[aria-current="page"] { color:var(--oa-ink-strong); background:var(--oa-action-selected-base)!important; box-shadow:inset 0 3px var(--oa-action-selected-edge); font-weight:900; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-nav button:active { transform:none; }
.game-viewport[data-layout][data-title-lobby-v12] .lobby-retry { top:calc(var(--oa-top-h) + 16px); right:12px; left:auto; transform:none; font-size:var(--oa-fs-caption); min-height:48px; border-color:var(--oa-status-error-line); background-color:var(--oa-status-error-bg); }
.status-message { top:calc(env(safe-area-inset-top) + var(--oa-top-h) + 16px); bottom:auto; max-width:calc(100% - 24px); z-index:var(--oa-z-status); }
.detail-dialog .status-message { position:absolute; top:var(--oa-status-dialog-top,calc(var(--oa-close-h) + 28px)); left:50%; bottom:auto; max-width:calc(100% - 24px); z-index:50; }
.title-lobby-wipe { position:fixed; inset:0; z-index:var(--oa-z-wipe); pointer-events:none; visibility:hidden; opacity:0; background:linear-gradient(100deg,transparent 29%,var(--oa-brand-brass-shade) 30%,var(--oa-brand-brass-light) 46%,var(--oa-brand-brass) 57%,transparent 58%); }
.title-lobby-wipe.active { visibility:visible; animation:oa-metal-wipe var(--oa-dur-base) var(--oa-ease-in) both; }
body[data-control-hand="left"] .title-lobby-wipe.active { animation-name:oa-metal-wipe-left; }
.game-viewport[data-layout][data-title-lobby-v12] .title-cast .title-hero-main,.game-viewport[data-layout][data-title-lobby-v12] .lobby-character { animation:oa-breathe var(--oa-dur-ambient-breath) var(--oa-ease-breath) infinite; }
.game-viewport[data-layout][data-title-lobby-v12] .title-cast .title-hero-companion,.game-viewport[data-layout][data-title-lobby-v12] .stage-companion { animation:oa-breathe 4600ms var(--oa-ease-breath) 1300ms infinite; }
@keyframes oa-breathe { 0%,100% { scale:1 1; } 50% { scale:1 1.004; } }
@keyframes oa-metal-wipe { 0% { transform:translateX(100%); opacity:1; } 100% { transform:translateX(-100%); opacity:1; } }
@keyframes oa-metal-wipe-left { 0% { transform:translateX(-100%); opacity:1; } 100% { transform:translateX(100%); opacity:1; } }
[data-motion="bg-off"] .title-cast>*,[data-motion="bg-off"] .lobby-character,[data-motion="bg-off"] .stage-companion,
[data-motion="reduced"] .title-cast>*,[data-motion="reduced"] .lobby-character,[data-motion="reduced"] .stage-companion,
[data-background-motion="off"] .title-cast>*,[data-background-motion="off"] .lobby-character,[data-background-motion="off"] .stage-companion { animation:none!important; }
[data-animation-paused="true"] *,[data-ambient-paused="true"] * { animation-play-state:paused!important; }
[data-motion="reduced"] .title-lobby-wipe.active { background:var(--oa-bg); animation:none; transition:opacity 150ms linear; }
@media (max-width:350px) {
  .game-viewport[data-layout][data-title-lobby-v12] .profile { gap:4px; }.game-viewport[data-layout][data-title-lobby-v12] .profile-mark { width:48px; height:48px; }.game-viewport[data-layout][data-title-lobby-v12] .profile strong { max-width:60px; font-size:13px; }
  .game-viewport[data-layout][data-title-lobby-v12] .profile small { font-size:13px; }.game-viewport[data-layout][data-title-lobby-v12] .resource-hud { gap:6px; }.game-viewport[data-layout][data-title-lobby-v12] .resource-chip { padding:4px; }.game-viewport[data-layout][data-title-lobby-v12] .resource-chip .item-icon { width:18px; height:18px; }
  .game-viewport[data-layout][data-title-lobby-v12] .supply-button { width:48px; padding:4px; }.game-viewport[data-layout][data-title-lobby-v12] .supply-button span { display:none; }.game-viewport[data-layout][data-title-lobby-v12] .resource-chip strong { font-size:13px; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-idle-status button { padding-inline:8px; }.game-viewport[data-layout][data-title-lobby-v12] .lobby-idle-status { gap:4px; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-advice { grid-template-columns:minmax(0,1fr) auto 48px; gap:4px; }.game-viewport[data-layout][data-title-lobby-v12] .lobby-advice>button { padding-inline:6px; }
  .game-viewport[data-layout][data-title-lobby-v12] .support-dock { gap:6px; --oa-chip-h:49px; }.game-viewport[data-layout][data-title-lobby-v12] .mode-card { grid-template-columns:1fr; text-align:center; }.game-viewport[data-layout][data-title-lobby-v12] .mode-card>.icon { display:none; }
}
@media (orientation:portrait) and (max-width:430px) {
  .game-viewport[data-layout][data-title-lobby-v12] .supply-button { width:var(--oa-top-h); padding:6px; }
  .game-viewport[data-layout][data-title-lobby-v12] .supply-button>span { display:none; }
  .game-viewport[data-layout][data-title-lobby-v12] .profile strong { width:100%; max-width:100%; }
  .game-viewport[data-layout][data-title-lobby-v12] .mode-card,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .mode-card { grid-template-columns:1fr; text-align:center; gap:0; }
  .game-viewport[data-layout][data-title-lobby-v12] .mode-card>.icon,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .mode-card>.icon { display:none; }
  .game-viewport[data-layout][data-title-lobby-v12] .mode-card small { line-height:1.15; }
  .game-viewport[data-layout][data-title-lobby-v12] .character-caption,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .character-caption { max-width:58%; }
}
@media (max-height:699px) and (orientation:portrait) {
  .game-viewport[data-layout][data-title-lobby-v12] .start-brand { margin-top:14px; }.game-viewport[data-layout][data-title-lobby-v12] .brand-crest { width:48px; height:48px; margin-bottom:4px; }.game-viewport[data-layout][data-title-lobby-v12] .start-brand h1 { font-size:44px; }.game-viewport[data-layout][data-title-lobby-v12] .start-brand p { font-size:13px; margin-top:6px; }
  .game-viewport[data-layout][data-title-lobby-v12] .title-cast { inset:32% 5% 166px; }.game-viewport[data-layout][data-title-lobby-v12] .title-cast .start-character { width:76%; }.game-viewport[data-layout][data-title-lobby-v12] .title-cast .title-hero-companion { width:59%; left:24%; }
  .game-viewport[data-layout][data-title-lobby-v12] .mode-options,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .mode-options,.game-viewport[data-layout][data-title-lobby-v12] .mode-detail { display:none; }
  .game-viewport[data-layout][data-title-lobby-v12] .command-panel,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .command-panel { grid-template-columns:112px minmax(0,1fr); grid-template-rows:64px 92px; gap:8px; }
  .game-viewport[data-layout][data-title-lobby-v12] .compact-mode-toggle { display:flex; align-items:center; justify-content:center; gap:6px; grid-column:1; grid-row:1; min-height:64px; font-size:14px; line-height:1.2; font-weight:900; box-shadow:inset 0 -3px var(--oa-action-selected-edge); }
  .game-viewport[data-layout][data-title-lobby-v12] .quick-target { grid-column:2; grid-row:1; grid-template-columns:minmax(0,1fr) 48px; grid-template-rows:64px; gap:0; }
  .game-viewport[data-layout][data-title-lobby-v12] #target-choice { grid-column:1; height:64px; min-height:64px; font-size:14px; padding:6px 8px; }
  .game-viewport[data-layout][data-title-lobby-v12] #target-choice small { font-size:13px; }
  .game-viewport[data-layout][data-title-lobby-v12] .quick-difficulties { display:none; }.game-viewport[data-layout][data-title-lobby-v12] .compact-difficulty-toggle { grid-column:2; display:block; min-width:48px; min-height:64px; padding:4px; font-size:13px; }
  .game-viewport[data-layout][data-title-lobby-v12] .departure-actions { grid-column:1/-1; grid-row:2; }
  .game-viewport[data-layout][data-title-lobby-v12] .character-caption,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .character-caption { bottom:auto; top:8px; left:auto; right:0; width:52%; max-width:52%; transform:none; min-height:48px; padding:6px 10px; text-align:start; }
  .game-viewport[data-layout][data-title-lobby-v12] .character-caption h2 { font-size:var(--oa-fs-emph); }.game-viewport[data-layout][data-title-lobby-v12] .character-caption .role-markers { display:none; }.game-viewport[data-layout][data-title-lobby-v12] .hero-profession { display:block; font-size:13px; }.game-viewport[data-layout][data-title-lobby-v12] .character-meta { font-size:13px; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-character,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .lobby-character { top:0; left:21%; width:48%; height:240px; bottom:auto; object-position:top; transform:translateX(-50%); transform-origin:center 45px; }
  .game-viewport[data-layout][data-title-lobby-v12] .stage-companion,.game-viewport[data-layout][data-title-lobby-v12] .stage-supports,.game-viewport[data-layout][data-title-lobby-v12] .hero-dais { display:none; }
}
@media (orientation:landscape) {
  .game-viewport[data-layout][data-title-lobby-v12] .start-backdrop { background-image:linear-gradient(0deg,rgba(11,18,24,.70),transparent 65%),var(--oa-title-background-landscape,url('/resource/ui/runtime-v5/start-backdrop.webp')); }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-backdrop { background-image:linear-gradient(0deg,rgba(11,18,24,.8),rgba(11,18,24,.20) 65%,rgba(11,18,24,.60)),var(--oa-lobby-background-landscape,url('/resource/ui/runtime-v5/lobby-backdrop.webp')); }
  .game-viewport[data-layout][data-title-lobby-v12] .title-screen { grid-template-columns:1fr minmax(290px,36%); grid-template-rows:var(--oa-top-h) minmax(0,1fr) auto 30px; gap:8px 20px; }
  .game-viewport[data-layout][data-title-lobby-v12] .start-header { grid-column:1/-1; }.game-viewport[data-layout][data-title-lobby-v12] .start-brand { grid-column:1; grid-row:2; align-self:start; justify-self:start; margin-top:clamp(12px,4svh,36px); padding-left:4%; width:100%; text-align:left; }
  .game-viewport[data-layout][data-title-lobby-v12] .brand-crest { margin:0 0 10px; }.game-viewport[data-layout][data-title-lobby-v12] .start-brand h1 { font-size:clamp(44px,6vw,72px); }.game-viewport[data-layout][data-title-lobby-v12] .start-brand p { font-size:var(--oa-fs-body); }
  .game-viewport[data-layout][data-title-lobby-v12] .start-actions { grid-column:2; grid-row:3; width:100%; }.game-viewport[data-layout][data-title-lobby-v12] .start-footer { grid-column:2; grid-row:4; font-size:13px; }
  .game-viewport[data-layout][data-title-lobby-v12] .title-cast { inset:17% 31% 4% 25%; }.game-viewport[data-layout][data-title-lobby-v12] .title-cast .start-character { width:95%; height:95%; }.game-viewport[data-layout][data-title-lobby-v12] .title-cast .title-hero-companion { width:77%; height:83%; left:27%; }
  body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .title-screen { grid-template-columns:minmax(290px,36%) 1fr; }
  body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .start-brand { grid-column:2; padding-left:12%; }body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .start-actions,body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .start-footer { grid-column:1; }body[data-control-hand="left"] .game-viewport[data-layout][data-title-lobby-v12] .title-cast { inset-inline:31% 25%; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-screen { grid-template-columns:minmax(0,1fr) minmax(330px,48%); grid-template-rows:var(--oa-top-h) var(--oa-bubble-h) minmax(0,1fr) var(--oa-tab-h); gap:8px 16px; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-screen:has(#lobby-advice[hidden]) { grid-template-rows:var(--oa-top-h) 48px minmax(0,1fr) var(--oa-tab-h); }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-screen:has(#current-room-banner[hidden]):has(#lobby-idle-status[hidden]):has(#lobby-advice[hidden]) { grid-template-rows:var(--oa-top-h) minmax(0,1fr) var(--oa-tab-h); }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-header { grid-column:1/-1; }.game-viewport[data-layout][data-title-lobby-v12] .room-shelf { grid-column:1; grid-row:2; align-self:center; }.game-viewport[data-layout][data-title-lobby-v12] .lobby-advice { grid-column:2; grid-row:2; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-content,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .lobby-content { grid-column:1/-1; grid-row:3; width:100%; max-width:none; grid-template-columns:minmax(0,1fr) minmax(330px,48%); grid-template-rows:1fr; gap:16px; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-nav { grid-column:1/-1; grid-row:4; max-width:800px; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-screen:has(#current-room-banner[hidden]):has(#lobby-idle-status[hidden]):has(#lobby-advice[hidden]) .lobby-content { grid-row:2; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-screen:has(#current-room-banner[hidden]):has(#lobby-idle-status[hidden]):has(#lobby-advice[hidden]) .lobby-nav { grid-row:3; }
  .game-viewport[data-layout][data-title-lobby-v12] .character-caption { max-width:80%; }
  .game-viewport[data-layout][data-title-lobby-v12] .profile strong { max-width:230px; }
}
@media (orientation:landscape) and (max-height:429px) {
  .game-viewport[data-layout][data-title-lobby-v12] .brand-crest { width:48px; height:48px; margin-bottom:4px; }.game-viewport[data-layout][data-title-lobby-v12] .start-brand { margin-top:5px; }.game-viewport[data-layout][data-title-lobby-v12] .start-brand h1 { font-size:44px; }.game-viewport[data-layout][data-title-lobby-v12] .start-brand p { margin-top:6px; font-size:13px; }
  .game-viewport[data-layout][data-title-lobby-v12] .title-screen { column-gap:12px; }.game-viewport[data-layout][data-title-lobby-v12] .title-cast { inset:23% 31% 3% 25%; }
  .game-viewport[data-layout][data-title-lobby-v12] .command-panel,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .command-panel { grid-template-columns:112px minmax(0,1fr); grid-template-rows:64px 92px; gap:8px; align-content:center; }
  .game-viewport[data-layout][data-title-lobby-v12] .mode-options,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .mode-options,.game-viewport[data-layout][data-title-lobby-v12] .mode-detail { display:none; }
  .game-viewport[data-layout][data-title-lobby-v12] .compact-mode-toggle { grid-column:1; grid-row:1; display:flex; align-items:center; justify-content:center; gap:4px; font-size:14px; font-weight:900; min-height:64px; box-shadow:inset 0 -3px var(--oa-action-selected-edge); }
  .game-viewport[data-layout][data-title-lobby-v12] .quick-target { grid-column:2; grid-row:1; grid-template-columns:minmax(0,1fr) 48px; grid-template-rows:64px; gap:0; }
  .game-viewport[data-layout][data-title-lobby-v12] #target-choice { grid-column:1; height:64px; min-height:64px; padding:5px 8px; font-size:14px; }.game-viewport[data-layout][data-title-lobby-v12] .quick-difficulties { display:none; }.game-viewport[data-layout][data-title-lobby-v12] .compact-difficulty-toggle { grid-column:2; display:block; min-width:48px; min-height:64px; padding:4px; font-size:13px; }
  .game-viewport[data-layout][data-title-lobby-v12] .departure-actions { grid-column:1/-1; grid-row:2; }
  .game-viewport[data-layout][data-title-lobby-v12] .character-caption { bottom:auto; top:8px; left:auto; right:0; transform:none; width:55%; max-width:55%; text-align:start; padding:5px 8px; }.game-viewport[data-layout][data-title-lobby-v12] .character-caption h2 { font-size:var(--oa-fs-emph); }.game-viewport[data-layout][data-title-lobby-v12] .hero-profession { display:block; font-size:13px; }.game-viewport[data-layout][data-title-lobby-v12] .character-meta { font-size:13px; }.game-viewport[data-layout][data-title-lobby-v12] .character-caption .role-markers { display:none; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-character,.game-viewport[data-layout][data-title-lobby-v12][data-layout="portrait"] .lobby-character { top:0; bottom:auto; left:21%; width:48%; height:260px; object-position:top; transform:translateX(-50%); transform-origin:center 45px; }
  .game-viewport[data-layout][data-title-lobby-v12] .stage-companion,.game-viewport[data-layout][data-title-lobby-v12] .stage-supports,.game-viewport[data-layout][data-title-lobby-v12] .hero-dais { display:none; }
  .game-viewport[data-layout][data-title-lobby-v12] .lobby-nav button { flex-direction:row; gap:6px; }.game-viewport[data-layout][data-title-lobby-v12] .lobby-nav .icon { width:24px; height:24px; }
}
@media (prefers-reduced-motion:reduce) {
  .title-cast>*,.lobby-character,.stage-companion,.title-lobby-wipe { animation:none!important; }
}
/* 압축 무대에서 이름판과 제단의 별도 터치 영역을 겹치지 않는다. 성소는 상단 자재·하단 탭에서 연다. */
@media (max-height:699px) and (orientation:portrait), (max-height:429px) and (orientation:landscape) {
  .game-viewport[data-layout][data-title-lobby-v12] .character-stage .shrine-monument { display:none; }
}
