*{box-sizing:border-box}body{margin:0;background:#10161c;color:#eef1f3;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:16px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:1px solid #35414b;background:#1b252dd9;border-radius:7px;padding:12px 17px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s}button:hover{background:#34424c;border-color:#788993}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #d4f779;outline-offset:4px}button.primary{background:#d4f779;border-color:#d4f779;color:#1a251a}button.primary:hover{background:#e1ff9d}button.primary span{margin-left:18px}button[aria-pressed=true]{border-color:#b1c0c9;background:#34424c}#app{height:100dvh;min-height:620px;position:relative;overflow:hidden}#viewport{position:absolute;inset:0}#viewport canvas{width:100%;height:100%;display:block;touch-action:none}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:22px;padding:25px 30px;background:linear-gradient(#10161cf2,#10161c00);z-index:3}.brand{display:flex;align-items:center;gap:16px;min-width:280px}.brandmark{font-size:22px;font-weight:800;letter-spacing:-1px}.brandmark span{color:#d4f779;font-weight:300}h1{font-size:19px;letter-spacing:-.4px;margin:0 0 5px}.brand p{font-size:10px;letter-spacing:2px;color:#9aaab6;margin:0}nav{display:flex;gap:8px;margin:auto}.icon-button{margin-left:auto;font-size:23px;padding:6px 12px}.specs{position:absolute;top:126px;left:30px;width:245px;max-height:calc(100dvh - 215px);overflow:auto;padding:2px 8px 10px 0;scrollbar-width:thin;scrollbar-color:#4f626e transparent}.eyebrow{font-size:11px;letter-spacing:2px;color:#c5ed83;margin-bottom:18px}.specs h2{font-size:28px;font-weight:500;line-height:1.16;letter-spacing:-1px;margin:0 0 16px}.intro{font-size:14px;line-height:1.7;color:#a6b6c2;margin:0 0 28px}.dimensions{display:flex;flex-direction:column;padding-bottom:24px;border-bottom:1px solid #3e505c80}.dimensions strong{font-size:36px;letter-spacing:-1.5px;font-weight:500}.dimensions strong span{color:#748694;font-weight:300}.dimensions small{font-size:20px;letter-spacing:0;color:#a6b6c2}.dimensions>span{font-size:13px;color:#a6b6c2;margin-top:7px}dl{font-size:14px;margin:18px 0 24px}dl>div{display:flex;justify-content:space-between;padding:8px 0}dt{color:#a6b6c2}dd{margin:0;font-variant-numeric:tabular-nums}.settings{border-top:1px solid #3e505c80;padding-top:22px;display:grid;gap:13px}.settings label{font-size:14px;color:#c4d0d8;display:flex;justify-content:space-between}.settings output{color:#e5f5d0}.settings input{accent-color:#d4f779;width:100%;margin:0 0 10px}.settings select{background:#19252e;color:#ecf3f7;border:1px solid #40515d;border-radius:5px;padding:9px;width:100%;font-size:14px}.model-note{font-size:12px;line-height:1.65;color:#98aab7;margin-top:22px}.download{font-size:12px;color:#d4f779;text-decoration:none;display:inline-block;margin-top:3px}.view-label{position:absolute;top:110px;left:320px;display:flex;align-items:center;gap:12px;font-size:11px;color:#b6c7d1;letter-spacing:1.1px;pointer-events:none}.divider{height:12px;width:1px;background:#4f606c}#viewHint{font-size:12px;letter-spacing:0;color:#8ea3b1}.minimap-panel{position:absolute;right:28px;bottom:88px;width:255px;padding:14px;background:#121d25ed;border:1px solid #3a4b57;border-radius:10px;box-shadow:0 8px 30px #0003}.mini-header{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.2px;color:#adbdc8}.mini-header button{padding:3px 0;border:0;font-size:11px;background:none;color:#cfdfca;letter-spacing:0}.minimap-panel canvas{display:block;width:100%;height:auto;margin-top:12px;cursor:crosshair;border:1px solid #4c626f}.minimap-panel p{font-size:11px;color:#97aab8;margin:10px 0 0}footer{position:absolute;bottom:0;left:0;right:0;min-height:65px;padding:20px 30px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#101820ed;border-top:1px solid #2c3b46;color:#a4b6c3;font-size:12px}.controls{display:flex;gap:25px;flex-wrap:wrap}.controls>span{display:flex;gap:5px;align-items:center}kbd{display:inline-block;min-width:21px;padding:3px 5px;border:1px solid #465864;border-radius:4px;color:#d9e3e9;font:11px inherit;text-align:center}#position{font-variant-numeric:tabular-nums;white-space:nowrap;color:#c2d7c1}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#ffffff90;font:22px monospace;pointer-events:none}#resume{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;padding:28px;background:#111c26e8;border:1px solid #41525e;border-radius:12px}#resume p{font-size:12px;color:#9fb1c0;margin-bottom:0}#toast{position:absolute;bottom:92px;left:50%;transform:translateX(-50%);max-width:80%;padding:12px 20px;background:#d4f779;color:#18211a;border-radius:6px;font-size:14px;z-index:10}#error{position:absolute;inset:35% 20%;height:fit-content;padding:32px;background:#273642;border:1px solid #d4f779;border-radius:10px;z-index:20;line-height:1.7}dialog{width:min(1150px,94vw);max-height:94dvh;padding:22px;background:#131e27;color:#f0f4f7;border:1px solid #526572;border-radius:12px}dialog::backdrop{background:#02070cce;backdrop-filter:blur(8px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}.dialog-head h2{margin:0;font-size:21px}.dialog-head p,.dialog-note{font-size:13px;color:#afc0cb}.dialog-head button{padding:8px 12px}dialog img{width:100%;display:block;max-height:70dvh;object-fit:contain}.dialog-note{line-height:1.6;margin-bottom:0}.walking .specs{display:none}.walking .view-label{left:30px}.walking .minimap-panel{opacity:.86}.walking .brand{min-width:unset}.walking .topbar{opacity:.9}#touchControls{position:absolute;bottom:100px;left:25px;right:25px;pointer-events:none;align-items:end;justify-content:space-between}#touchControls:not([hidden]){display:flex}#touchControls>span{max-width:140px;font-size:12px;text-align:right;color:#c3d2de}.dpad{display:grid;grid-template-columns:44px 44px 44px;gap:5px;pointer-events:auto}.dpad button{padding:10px;touch-action:none;background:#314554bb}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.dpad button.pressed{background:#d4f779;color:#18221b}[hidden]{display:none!important}@media(max-width:1100px){.brand{min-width:225px}.specs{width:200px}.specs h2{font-size:25px}.view-label{left:260px}.minimap-panel{width:210px}nav button{padding:11px}.topbar{gap:12px}.controls{gap:14px}}@media(max-height:780px) and (min-width:761px){.specs h2{font-size:22px}.intro{margin-bottom:14px}.dimensions{padding-bottom:12px}.dimensions strong{font-size:30px}dl{margin:10px 0}.settings{padding-top:12px;gap:8px}.model-note{margin-top:12px}}@media(max-width:760px){#app{min-height:560px}.topbar{padding:16px;flex-wrap:wrap;gap:12px}.brand{min-width:0;flex:1}.brandmark{font-size:20px}h1{font-size:17px}.brand p{font-size:9px}.icon-button{order:1}nav{order:2;width:100%;margin:0;justify-content:space-between}nav button{font-size:12px;padding:11px 10px}.primary span{display:none}.specs{top:137px;left:16px;width:150px;max-height:calc(100dvh - 230px)}.eyebrow,.specs h2,.intro,.specs dl,.model-note,.download{display:none}.dimensions{padding-bottom:10px}.dimensions strong{font-size:26px}.dimensions>span{font-size:11px}.settings{border:0;padding-top:15px;gap:10px}.settings label,.settings select{font-size:12px}.view-label{left:auto;right:16px;top:143px;flex-direction:column;align-items:end;gap:6px}.view-label .divider{display:none}#viewHint{max-width:140px;text-align:right;font-size:11px}.minimap-panel{width:170px;right:16px;bottom:90px;padding:9px}.mini-header{font-size:9px}.mini-header button{font-size:10px}.minimap-panel p{font-size:10px}.controls{gap:8px}.controls>span:nth-child(n+3){display:none}footer{padding:14px 16px;font-size:11px;min-height:68px}#position{font-size:10px}.walking .view-label{left:16px;right:auto;align-items:start}.walking .minimap-panel{bottom:240px;width:135px}.walking .minimap-panel p{display:none}#resume{width:240px}.dialog-head p{font-size:11px}}@media(prefers-reduced-motion:reduce){button{transition:none}}

/* Same visual language as the small arena, adapted to the long floor plan. */
.dimensions strong {font-size:29px}
.minimap-panel {width:300px}
.plan-tabs {display:flex;gap:8px;margin-bottom:12px}
dialog #planImage {background:#0c131a}
@media(max-width:1100px){.minimap-panel{width:250px}.dimensions strong{font-size:25px}}
@media(max-width:760px){.minimap-panel{width:195px}.dimensions strong{font-size:21px}.walking .minimap-panel{width:170px}.plan-tabs button{font-size:12px;padding:9px}}
