/* Original town base presentation copied verbatim; companion-specific adjustments follow. */
*{box-sizing:border-box}html,body{margin:0;height:100%;background:#080c13;color:#eee6d2;font-family:system-ui,sans-serif}body{display:flex;flex-direction:column}header{padding:14px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #393845;gap:12px}header p{margin:0 0 4px;font-size:10px;letter-spacing:.15em;color:#d6b66c}h1{font:24px Georgia,serif;margin:0}#status{font-size:12px;color:#b7bdcb}main{display:flex;flex:1;min-height:0;flex-direction:column}.viewport{flex:1;min-height:240px;position:relative;overflow:hidden}canvas{width:100%;height:100%;display:block}nav{padding:10px 16px;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;border-top:1px solid #393845}.controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}button,select{background:#161e2d;border:1px solid #434a59;color:#efe6ce;padding:10px 12px;border-radius:5px;font:13px system-ui;min-height:44px;cursor:pointer}button:hover,button[aria-pressed=true]{border-color:#e0bf72;background:#35312b}button:focus-visible,select:focus-visible{outline:3px solid #f9cc67;outline-offset:2px}.view-label{display:flex;align-items:center;gap:8px;font-size:12px}footer{padding:8px 16px;display:flex;gap:20px;justify-content:space-between;font-size:10px;color:#9ca6b5}footer p{margin:0}#hotspots{position:absolute;inset:0;pointer-events:none}#hotspots button{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);background:#111827d9;font-size:12px;border-color:#a98b46;max-width:170px;box-shadow:0 2px 12px #0008}button[hidden]{display:none}dialog{max-width:min(460px,90vw);background:#161e2d;color:#efe6ce;border:1px solid #d6b66c;border-radius:8px;padding:24px}dialog::backdrop{background:#0009}dialog h2{font:22px Georgia;margin:0}dialog p{line-height:1.6}@media(max-width:650px){header{padding:10px 12px;display:block}h1{font-size:20px}#status{display:block;margin-top:4px;font-size:10px}footer{display:block;padding:6px 12px}#metrics{display:none}nav{gap:6px;padding:8px}.view-label{flex:1;justify-content:center}select{max-width:235px}.controls{gap:4px}button{padding:8px 10px}.controls button[data-control]{min-width:44px}.viewport{min-height:220px}}@media(max-height:500px){header{padding:5px 12px;display:flex}header p,#status,footer{display:none}h1{font-size:16px}nav{padding:5px;gap:5px}.viewport{min-height:140px}}
body.immersive-town{height:100dvh;overflow:hidden;background:var(--bg,#080c13);color:var(--text,#eee6d2)}.immersive-town main{max-width:none;padding:0;margin:0;overflow:hidden}.immersive-town header{position:static;background:#080c13;flex-shrink:0}.immersive-town header h1{color:#eee6d2}.immersive-town #scene{height:100%;width:100%;border:0;border-radius:0;position:relative;touch-action:pan-y}.immersive-town .viewport{margin:0}.immersive-town nav{flex-shrink:0;background:#080c13}.immersive-town .view-label select{min-width:190px}.immersive-town footer{flex-shrink:0;background:#080c13}.immersive-town footer a{color:#d6b66c}.immersive-town dialog{max-width:min(600px,calc(100vw - 24px));max-height:82dvh;overflow:auto;background:var(--panel,#161e2d);color:var(--text,#efe6ce);margin:auto;padding:24px}.immersive-town dialog aside{border:0;padding:0;background:transparent}.immersive-town #town-entrances{position:absolute;inset:0;pointer-events:none}.immersive-town #town-entrances button{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);background:#111827d9;font-size:12px;border-color:#a98b46;max-width:170px;box-shadow:0 2px 12px #0008}.immersive-town .selection{grid-template-columns:1fr;gap:12px}.immersive-town .selection select{width:100%;max-width:none}.immersive-town #hotspots button.physical-object{background:transparent;box-shadow:none;border:0}.immersive-town #room-settings label{min-height:44px}.immersive-town [hidden]{display:none!important}@media(max-width:650px){.immersive-town .viewport{min-height:140px}.immersive-town nav{gap:6px}.immersive-town .view-label{flex-basis:100%;flex-shrink:0}.immersive-town .controls{gap:4px}.immersive-town .controls button{min-width:44px}.immersive-town dialog{padding:18px;max-height:78dvh}.immersive-town header{padding:10px 12px}.immersive-town #room-settings .room-navigation{flex-wrap:wrap}}@media(max-height:500px){.immersive-town .viewport{min-height:100px}.immersive-town nav{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto}.immersive-town .view-label{flex-basis:auto}.immersive-town .controls{flex-wrap:nowrap}.immersive-town nav button,.immersive-town .view-label{flex-shrink:0}}
