:root{font-family:Arial,Helvetica,sans-serif;color:#283b32;background:#e9e8de;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button,select{font:inherit}button{cursor:pointer;border:0}a{text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #9d7d42;outline-offset:4px}[hidden]{display:none!important}.header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:24px;background:#f6f4ed;border-bottom:1px solid #d8d9cd}.brand{font-family:Georgia,serif;font-size:31px;letter-spacing:-1.7px}.brand span{display:block;font-family:Arial,sans-serif;font-size:8px;letter-spacing:2.6px;margin-top:3px}.title{margin-right:auto;border-left:1px solid #ccd1c7;padding-left:24px;display:flex;gap:10px;flex-direction:column}.title b{font-size:15px;font-weight:500}.title span{font-size:10px;letter-spacing:1px;color:#667267}.header nav{display:flex;align-items:center;gap:23px;font-size:12px}.header nav button{background:transparent;padding:12px 0}.header nav a{padding:11px 16px;border:1px solid #c6cdc2;border-radius:4px}#stage{position:relative;width:100%;height:calc(100dvh - 84px);overflow:hidden}#scene{display:block;width:100%;height:100%;touch-action:none;outline:none}.stage-heading{position:absolute;top:30px;left:32px;pointer-events:none;text-shadow:0 1px 12px #f0f2e6}.stage-heading>span,.eyebrow{font-size:9px;letter-spacing:2px}.stage-heading h1{font-family:Georgia,serif;font-size:36px;line-height:1.05;font-weight:400;letter-spacing:-1px;margin:12px 0}.stage-heading p{font-size:11px;max-width:250px;line-height:1.5}.tools{position:absolute;top:27px;right:30px;display:flex;gap:8px}.tools button{background:#faf9f0e8;width:42px;height:42px;border-radius:50%;font-size:24px;box-shadow:0 2px 8px #30403212}.floating{position:absolute;z-index:10;background:#faf9f1f5;backdrop-filter:blur(16px);border:1px solid #deded0;border-radius:8px;box-shadow:0 16px 50px #273f3320;padding:24px;max-height:calc(100% - 150px);overflow:auto}.floating h2{font-family:Georgia,serif;font-weight:400;margin:0 0 20px;font-size:24px}.floating p{font-size:12px;line-height:1.65}.floating label{display:block;font-size:11px;margin-top:20px;margin-bottom:10px}.floating select{width:100%;padding:10px;background:#efefe4;color:#283b32;border:1px solid #cdd2c5;border-radius:3px;font-size:12px}.floating input[type=range]{width:100%;accent-color:#60765e}.floating .check{display:flex;align-items:center;gap:8px}.floating input[type=checkbox]{accent-color:#526d52;width:16px;height:16px}.time{display:flex!important;justify-content:space-between}.duo{display:flex;gap:8px;margin-top:8px}.duo button{flex:1;padding:8px;background:#e7eadf;font-size:11px;border-radius:3px}#settings{top:82px;right:30px;width:278px}#settings p{font-size:10px;color:#6c776b}.close{float:right;background:transparent;font-size:26px;margin:-13px -10px 0 0}#brief{top:24px;left:25px;width:348px}#brief h2{margin-top:18px}#brief ol{padding:0;list-style:none;counter-reset:z}#brief li{counter-increment:z;position:relative;padding:0 0 18px 30px;font-size:12px;line-height:1.55}#brief li:before{content:counter(z,decimal-leading-zero);position:absolute;left:0;top:0;color:#839079;font-size:10px}#brief li b,#brief li span{display:block}#brief li b{font-weight:500;margin-bottom:5px}#brief li span{color:#687263}#brief a{font-size:11px;text-decoration:underline;text-underline-offset:5px}#brief .small{border-top:1px solid #dddccd;margin-top:24px;padding-top:12px;font-size:10px}.north{position:absolute;right:36px;bottom:138px;font-size:11px;text-align:center;pointer-events:none}.north span{font-size:31px;display:block;transform-origin:50% 55%;margin-bottom:4px}.north b{font-weight:500}.bottom{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 40px);text-align:center}.camera-bar{display:flex;padding:5px;background:#f8f7eeed;backdrop-filter:blur(15px);border-radius:7px;box-shadow:0 4px 30px #30432d20;white-space:nowrap;overflow-x:auto;scrollbar-width:none}.camera-bar button{background:transparent;padding:12px 15px;font-size:11px;border-radius:4px;transition:background .15s}.camera-bar button.active{background:#344b3c;color:#f9faed}.camera-bar button:hover:not(.active){background:#e6e9dd}.bottom p{margin:12px 0 0;font-size:10px;letter-spacing:.2px;color:#3e513e;text-shadow:0 1px 4px #f9ffee}.datum{position:absolute;left:30px;bottom:28px;font-size:8px;letter-spacing:1px;pointer-events:none;writing-mode:vertical-rl;transform:rotate(180deg);color:#435540;text-shadow:0 1px 4px #fff}.datum span{margin:8px}#loading{position:absolute;inset:0;background:#eaeade;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;z-index:30;font-size:12px}#loading b{font-family:Georgia,serif;font-size:28px;font-weight:400}.load-symbol{font-family:Georgia,serif;font-size:54px;width:80px;height:80px;border:1px solid #87977d;border-radius:50%;text-align:center;line-height:72px}#loadText{font-size:11px;color:#728269}#walkpad{position:absolute;bottom:145px;left:32px;text-align:center}#walkpad button{width:42px;height:40px;background:#f7f8eae8;margin:2px;font-size:21px;border-radius:4px;touch-action:none}#exitFullscreen{position:absolute;right:20px;top:20px;background:#f4f5e8df;padding:10px 14px;font-size:11px;border-radius:4px;z-index:60}#stage:fullscreen{height:100dvh}.pseudo-full{position:fixed!important;inset:0!important;height:100dvh!important;z-index:100}#error{position:absolute;inset:0;background:#f1f0e5;padding:24px;z-index:25;text-align:center;overflow:auto}#error img{display:block;max-height:60vh;max-width:100%;margin:20px auto}#error p{font-size:13px}#error a{font-size:13px;text-decoration:underline}
@media(max-width:900px){.header{padding:0 18px;height:72px;gap:18px}.brand{font-size:26px}.brand span{font-size:6px}.title{padding-left:18px}.header nav{gap:13px}#stage{height:calc(100dvh - 72px)}.stage-heading{top:24px;left:22px}.stage-heading h1{font-size:30px}.stage-heading p{max-width:210px}.tools{right:19px;top:22px}.datum{left:15px}.bottom{bottom:20px;max-width:calc(100% - 48px)}.camera-bar button{padding:12px}.bottom p{font-size:9px}.north{right:25px;bottom:128px}}
@media(max-width:600px){.header{height:66px;gap:15px;padding:0 15px}.brand{font-size:23px}.brand span{font-size:5px;letter-spacing:1.8px}.title{padding-left:14px;gap:5px}.title b{font-size:13px}.title span{font-size:8px;max-width:95px;line-height:1.4;letter-spacing:.4px}.header nav{gap:10px;font-size:10px}.header nav a{border:0;padding:6px 0}.header nav button{display:none}#stage{height:calc(100dvh - 66px)}.stage-heading{top:23px;left:20px}.stage-heading>span{font-size:7px;letter-spacing:1.6px}.stage-heading h1{font-size:28px}.stage-heading p{font-size:10px;max-width:170px}.tools{right:16px;gap:5px}.tools button{width:36px;height:36px;font-size:21px}.bottom{width:calc(100% - 28px);max-width:none;bottom:max(19px,env(safe-area-inset-bottom))}.camera-bar{overflow-x:auto}.camera-bar button{padding:12px 11px;flex:1;font-size:10px}.bottom p{font-size:9px;margin-top:9px;max-width:330px;margin-inline:auto;line-height:1.4}.datum{bottom:120px;left:14px;font-size:7px}.north{bottom:117px;right:21px}.north span{font-size:26px}#settings{right:15px;top:72px}#brief{left:15px;top:16px;width:calc(100% - 30px)}#walkpad{left:24px;bottom:135px}.floating{max-height:calc(100% - 125px)}}

/* The model is the focus; keep its caption compact. */
.stage-heading h1{font-size:25px;margin:8px 0}.stage-heading p{max-width:260px;font-size:10px}.camera-bar button{padding:12px 11px}

.time-dock{display:flex;align-items:center;gap:13px;max-width:510px;margin:0 auto 9px;padding:9px 13px;border-radius:7px;background:#f8f7eef2;backdrop-filter:blur(12px);box-shadow:0 3px 20px #25332718}.time-dock input{flex:1;min-width:90px;accent-color:#596d50;height:24px;cursor:ew-resize}.time-dock button{background:transparent;font-size:18px;white-space:nowrap;padding:4px}.time-dock button span{font-size:10px}.time-dock output{font-size:12px;font-variant-numeric:tabular-nums;min-width:36px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.map-credit{position:absolute;right:20px;bottom:8px;font-size:8px;color:#5d6859;background:#f7f5e7bc;padding:2px 5px;border-radius:2px}.north{bottom:194px}#walkpad{bottom:199px}.bottom{max-width:calc(100% - 70px)}
@media(max-width:600px){.time-dock{gap:8px;padding:6px 10px;margin-bottom:7px}.time-dock button span{display:none}.bottom{max-width:none}.north{bottom:165px}#walkpad{bottom:182px}.map-credit{font-size:6px;bottom:3px;right:10px}.datum{bottom:162px}.floating{max-height:calc(100% - 195px)}}

/* Branded loading screen with actual initialization stages. */
#loading{background:#f6f5ef;gap:12px;padding:28px;text-align:center}#loading b{font-size:clamp(23px,4.8vw,34px);line-height:1.25;max-width:440px}.loading-logo{position:relative;width:min(340px,80vw);height:90px;overflow:hidden;margin-bottom:24px;mix-blend-mode:multiply}.loading-logo img{width:100%;height:auto;position:absolute;left:0;top:50%;transform:translateY(-50%)}.loading-place{font-size:10px;letter-spacing:3px;margin:0;color:#728269}.loading-clients{font-size:15px;letter-spacing:.3px;margin:0 0 22px}.load-track{display:flex;align-items:center;gap:16px;width:min(320px,78vw)}#loadProgress{width:100%;height:4px;appearance:none;border:0;background:#dce1d5;border-radius:4px;overflow:hidden}#loadProgress::-webkit-progress-bar{background:#dce1d5}#loadProgress::-webkit-progress-value{background:#587355;transition:width .2s}#loadProgress::-moz-progress-bar{background:#587355}#loadPercent{font-size:11px;min-width:36px;font-variant-numeric:tabular-nums}#loadText{min-height:18px}#retryLight{background:#344b3c;color:#fff;padding:12px 20px;border-radius:6px;margin:12px}#loading[hidden]{display:none}

/* Revision 14: a clear north arrow belongs beside full screen, not behind the dock. */
#compass{display:grid;place-items:center}#northArrow{width:32px;height:32px;display:block;transform-origin:50% 50%;will-change:transform}.time-dock #settingsToggle{display:grid;place-items:center;padding:5px;margin-right:2px}.time-dock #settingsToggle svg{display:block}@media(max-width:600px){#northArrow{width:29px;height:29px}.time-dock{gap:6px}.time-dock #settingsToggle{padding:4px;margin-right:0}}

.access-dock{display:flex;gap:8px;align-items:center;background:#eeeee4ed;border-radius:12px;padding:7px 10px;margin-bottom:8px;max-width:100%;flex-wrap:wrap}.access-dock[hidden]{display:none}.access-dock button{border:1px solid #a6b2a0;border-radius:8px;padding:9px 12px;background:#f5f5ed;color:#304838;font:inherit;cursor:pointer}.access-dock button:disabled{opacity:.55;cursor:wait}.access-dock span{font-size:12px;color:#475b4b}

/* Controls remain available in native and fallback full screen. */
#stage .overlay, #stage .overlay *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#walkpad button{display:inline-grid;place-items:center}#walkpad svg{pointer-events:none}
#stage.immersive .tools{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}
#stage.immersive .bottom{bottom:max(22px,env(safe-area-inset-bottom))}
#stage.immersive #settings{top:max(70px,calc(env(safe-area-inset-top) + 54px))}
.access-dock{max-width:560px;margin-inline:auto;gap:6px 10px;justify-content:center}
.access-dock>button{font-size:12px}.access-dock>span{flex:1;text-align:left;font-size:11px;min-width:140px}
.vehicle-slider{display:flex;align-items:center;gap:10px;width:100%}.vehicle-slider input{flex:1;min-width:60px;height:28px;accent-color:#596d50;cursor:ew-resize;touch-action:pan-y}
.vehicle-slider button{width:38px;height:34px;padding:0;font-size:22px;touch-action:none}.vehicle-labels{display:flex;justify-content:space-between;width:100%;padding-inline:48px}.vehicle-labels span{font-size:10px}
.access-dock button:disabled,.vehicle-slider input:disabled{cursor:default;opacity:.5}
@media(max-height:500px) and (orientation:landscape){.bottom{bottom:max(10px,env(safe-area-inset-bottom));max-width:calc(100% - 42px)}.bottom p{display:none}.time-dock{padding:3px 10px;margin-bottom:5px}.camera-bar button{padding:9px 11px}.access-dock{padding:5px 10px;margin-bottom:5px}.vehicle-labels{display:none}#stage.immersive .bottom{bottom:max(10px,env(safe-area-inset-bottom))}#walkpad button{width:40px;height:36px}.floating{max-height:calc(100% - 90px)}}
