:root{--ink:#17362e;--muted:#697970;--paper:#f4f3eb;--line:rgba(36,64,51,.13);--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#d8dcd4;color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #bb7d41;outline-offset:4px}button{border:0}#renderCanvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.topbar{position:absolute;top:0;left:0;width:100%;padding:29px 35px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;background:linear-gradient(180deg,rgba(244,243,235,.75),transparent)}.topbar>*{pointer-events:auto}.brand{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:13px;font-size:12px;letter-spacing:2.1px;font-weight:700}.brand-symbol{font-size:39px;line-height:1;font-weight:400}.brand small{display:block;font-size:8px;font-weight:400;letter-spacing:2.5px;margin-top:7px}.header-right{display:flex;gap:11px;align-items:center}.live-chip{display:flex;gap:7px;align-items:center;font-size:8px;letter-spacing:1.6px;padding:9px 12px;background:#f4f3ebcc;border-radius:20px}.live-chip i{height:5px;width:5px;background:#58836b;border-radius:50%}.icon-btn{width:33px;height:33px;border-radius:50%;background:#f4f3ebd9;border:1px solid var(--line);font-family:var(--serif);font-size:19px}.glass{background:rgba(247,246,239,.93);backdrop-filter:blur(18px);box-shadow:0 5px 35px #12382b0a;border:1px solid rgba(255,255,255,.7)}.intro{position:absolute;left:45px;top:145px;max-width:410px;transition:opacity .5s,transform .5s;pointer-events:none;text-shadow:0 1px 20px #f4f3eb99}.intro.hidden{opacity:0;transform:translateY(-12px)}.eyebrow{font-size:8px;letter-spacing:2.5px;font-weight:600;margin:0 0 21px}.intro h1{font-family:var(--serif);font-weight:400;font-size:57px;line-height:1.08;letter-spacing:-2px;margin:0 0 20px}.intro>p:not(.eyebrow){font-size:12px;line-height:1.8;margin-bottom:27px;color:#365448}.primary{display:flex;justify-content:space-between;align-items:center;gap:35px;min-width:166px;padding:14px 18px;background:var(--ink);color:#f7f4e9;font-size:11px;letter-spacing:.3px;pointer-events:auto}.primary span{font-size:18px}.primary:hover{background:#285044}.destinations{position:absolute;left:35px;bottom:152px;width:212px;padding:16px 12px 12px;border-radius:3px}.panel-title{display:flex;justify-content:space-between;padding:0 7px 12px;font-size:8px;letter-spacing:2px}.panel-title span{font-size:8px;color:#89958c;letter-spacing:.7px}.place{display:flex;width:100%;align-items:center;background:transparent;padding:9px 8px;font-size:11px;text-align:left;border-radius:2px;gap:12px}.place-number{font-size:9px;color:#9b9e91;font-family:var(--serif)}.place-arrow{margin-left:auto;font-size:15px;opacity:0}.place.active{background:#e4e8dc}.place.active .place-number{color:#385e49}.place:hover{background:#e8eadf}.place.active .place-arrow,.place:hover .place-arrow{opacity:1}.controls{position:absolute;right:35px;top:120px;width:238px;padding:0 19px 18px;border-radius:3px}.controls-heading{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;padding:18px 0;font-size:8px;letter-spacing:1.8px}.controls-heading>span:last-child{font-size:19px;line-height:.5;font-weight:400}.controls.collapsed{padding-bottom:0}.controls.collapsed #controlsBody{display:none}.slider-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin:8px 0 14px}.slider-heading output{font-size:11px;font-variant-numeric:tabular-nums;font-family:var(--serif)}input[type=range]{width:100%;height:3px;display:block;appearance:none;background:#ced4c4;border-radius:2px;margin:0;accent-color:var(--ink)}input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;background:var(--ink);border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--ink)}.range-labels{display:flex;justify-content:space-between;color:#7f8b7c;font-size:7px;letter-spacing:1px;margin-top:10px}.sun-note{font-size:8px;color:#899085;margin:13px 0 0}.control-divider{height:1px;background:var(--line);margin:19px 0}.toggle-row{display:flex;align-items:center;justify-content:space-between;margin:15px 0;font-size:10px;position:relative;cursor:pointer}.toggle-row small{display:block;color:#8b9487;font-size:8px;margin-top:4px}.toggle-row input{position:absolute;opacity:0;right:0;width:30px;height:16px;cursor:pointer}.switch{width:27px;height:15px;border-radius:20px;background:#d8ddcf;position:relative;pointer-events:none}.switch:after{content:'';position:absolute;top:3px;left:3px;width:9px;height:9px;border-radius:50%;background:#fff;transition:transform .2s}.toggle-row input:checked+.switch{background:#345944}.toggle-row input:checked+.switch:after{transform:translateX(12px)}.toggle-row input:focus-visible+.switch{outline:2px solid #bb7d41;outline-offset:3px}.model-stats{display:flex;justify-content:space-between}.model-stats strong{font-weight:400;font-family:var(--serif);font-size:23px;display:block}.model-stats em{font-size:13px;font-style:normal}.model-stats small{display:block;font-size:6px;letter-spacing:1.1px;color:#7c887b;margin-top:5px}.xr-button{width:100%;margin-top:20px;background:var(--ink);color:#fff;padding:12px;font-size:10px}.bottom-wrap{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);text-align:center;max-width:100%}.location{display:flex;justify-content:center;gap:8px;align-items:center;font-size:11px;margin-bottom:13px;text-shadow:0 0 12px #f8f7ec}.location-dot{width:5px;height:5px;background:#345c43;border-radius:50%}.location-sub{color:#536d5c;font-size:9px;border-left:1px solid #8e9c8d;padding-left:9px;margin-left:2px}.modebar{display:flex;border-radius:5px;padding:5px;gap:3px;white-space:nowrap}.mode{display:flex;gap:8px;align-items:center;background:none;font-size:10px;padding:12px 17px;border-radius:2px}.mode svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.mode.active{background:var(--ink);color:var(--paper)}.mode:hover:not(.active){background:#e6e9dc}.mode kbd{font-family:inherit;font-size:7px;border:1px solid currentColor;opacity:.4;padding:2px 3px;margin-left:3px;border-radius:2px}.interaction-hint{font-size:8px;letter-spacing:.2px;color:#294736;margin-top:11px;text-shadow:0 0 8px #fff;background:rgba(244,243,235,.6);display:inline-block;padding:5px 8px;border-radius:3px}.interaction-hint span{font-size:7px;font-weight:700}.interaction-hint b{font-weight:400;margin:0 6px;opacity:.5}.reset-view{position:absolute;bottom:35px;right:35px}.loading-mark{font-size:65px;line-height:1;margin-bottom:30px;color:#567157}#loading{position:absolute;inset:0;z-index:100;background:#f0f0e6;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .7s}#loading h1{font-family:var(--serif);font-size:46px;font-weight:400;margin:0 0 13px;letter-spacing:-1px}#loading>p:not(.eyebrow){font-size:12px;color:#7a8779}#loading small{font-size:9px;color:#8b9488;margin-top:30px}.load-track{height:1px;width:160px;background:#d6ddcc;margin-top:23px;overflow:hidden}.load-track span{display:block;width:40%;height:100%;background:#426249;animation:loading 1.8s infinite ease-in-out}#loading.done{opacity:0;pointer-events:none}@keyframes loading{from{transform:translateX(-100%)}to{transform:translateX(350%)}}#toast{position:absolute;bottom:150px;left:50%;transform:translate(-50%,10px);background:#16362eea;color:#f0f1e6;padding:12px 20px;font-size:11px;border-radius:4px;pointer-events:none;opacity:0;transition:.25s;max-width:80%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:5px;background:var(--paper);color:var(--ink);padding:45px;max-width:570px;width:calc(100% - 36px);max-height:85vh;box-shadow:0 20px 90px #16362e44}dialog::backdrop{background:#15352b66;backdrop-filter:blur(5px)}dialog h2{font-family:var(--serif);font-size:36px;font-weight:400;letter-spacing:-1px;margin:0 0 18px}dialog p{font-size:12px;line-height:1.8;color:#667365}.dialog-close{position:absolute;right:17px;top:13px;font-size:24px;background:none}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:25px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.about-grid strong{display:block;font-size:11px;font-weight:400}.about-grid span{font-size:9px;line-height:1.5;display:block;margin-top:7px;color:#8a9284}dialog p.small{font-size:10px;line-height:1.8}dialog .primary{margin-top:25px}#joystick{display:none;position:absolute;left:28px;bottom:173px;width:88px;height:88px;border-radius:50%;border:1px solid #ffffff77;background:#f4f3eb44;touch-action:none}#joystickKnob{position:absolute;width:36px;height:36px;top:25px;left:25px;border-radius:50%;background:#f4f3ebbb;border:1px solid #fff;pointer-events:none}#crosshair{display:none;position:absolute;left:50%;top:50%;width:3px;height:3px;background:#fff8;border:1px solid #15352b77;border-radius:50%;pointer-events:none}body.exploring #crosshair{display:block}
@media(min-height:900px){.destinations{bottom:180px}.intro{top:175px}}@media(max-height:780px) and (min-width:901px){.intro{top:120px}.intro h1{font-size:46px}.intro>p:not(.eyebrow){display:none}.intro .eyebrow{margin-bottom:15px}.destinations{bottom:155px}.controls{top:105px}}
@media(max-width:900px){.topbar{padding:23px}.brand{font-size:10px;letter-spacing:1.5px}.brand small{font-size:6px}.intro{left:28px;top:125px}.intro h1{font-size:46px}.controls{right:22px;top:105px;width:215px}.destinations{left:22px;width:190px;bottom:158px}.location-sub{display:none}.mode{padding:12px 14px}.mode kbd{display:none}}@media(max-width:600px){.topbar{padding:20px 19px}.brand{font-size:9px;gap:9px;letter-spacing:1.5px}.brand-symbol{font-size:32px}.brand small{font-size:5.6px;letter-spacing:1.9px}.live-chip{font-size:6px;padding:7px 8px;letter-spacing:.7px}.header-right{gap:6px}.header-right .icon-btn{width:27px;height:27px;font-size:17px}#fullscreenButton{display:none}.intro{left:25px;top:118px}.intro h1{font-size:43px}.intro .eyebrow{font-size:7px;letter-spacing:1.7px;margin-bottom:15px}.intro>p:not(.eyebrow){font-size:11px}.controls{right:16px;top:auto;bottom:151px;width:210px;padding-left:15px;padding-right:15px}.controls:not(.collapsed){z-index:5}.controls.collapsed{width:145px}.controls-heading{font-size:7px;padding:15px 0}.destinations{left:17px;right:17px;bottom:110px;width:auto;display:flex;justify-content:space-between;padding:6px;gap:1px;background:#f4f3ebdc}.panel-title{display:none}.place{padding:9px 7px;font-size:8px;gap:0;justify-content:center;white-space:nowrap;width:auto;flex:1}.place-number,.place-arrow{display:none}.place.active .place-arrow{display:none}.bottom-wrap{bottom:15px;width:calc(100% - 34px)}.modebar{justify-content:space-between;padding:4px}.mode{padding:11px 9px;font-size:9px;gap:5px;flex:1;justify-content:center}.mode svg{width:15px;height:15px}.location{position:absolute;bottom:139px;left:0;justify-content:flex-start;font-size:10px}.interaction-hint{font-size:7px;margin-top:8px}.reset-view{right:18px;bottom:202px;display:none}#joystick{display:block}.intro.hidden{pointer-events:none}.intro.hidden .primary{pointer-events:none}dialog{padding:30px 25px}.about-grid{gap:18px}#toast{bottom:270px;width:max-content;font-size:10px}.sun-note{font-size:7px}#loading h1{font-size:38px}#loading>p:not(.eyebrow){font-size:10px}#loading small{font-size:8px}.intro.hidden~.destinations{background:#f4f3ebeb}}
@media(pointer:coarse) and (min-width:601px){#joystick{display:block;bottom:165px;left:260px}}

.quality-row{display:flex;justify-content:space-between;align-items:center;font-size:9px;margin:0 0 18px}.quality-row select{font-family:inherit;color:var(--ink);font-size:9px;background:#e6e9dd;border:0;padding:5px;border-radius:2px;max-width:105px}

/* R02 controls: compact groups, with scrolling confined to the panel. */
.controls{max-height:calc(100vh - 270px);overflow:auto;scrollbar-width:thin;scrollbar-color:#acb8a3 transparent}.controls-heading{position:sticky;top:0;background:#f5f4ed;z-index:2}.r02-section-title{font-size:8px;letter-spacing:1.5px;margin:0 0 14px}.r02-date{display:flex;align-items:center;justify-content:space-between;font-size:10px;gap:8px}.r02-date input,.r02-coordinates input{border:1px solid #ccd4c5;background:#e9ecdf;border-radius:3px;color:#304f3d;font-family:inherit;font-size:10px;padding:6px;min-width:0}.r02-caption{font-size:8px;line-height:1.7;color:#7b8777;margin:10px 0}.r02-details{border-top:1px solid var(--line);padding:12px 0;font-size:10px}.r02-details summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}.r02-details summary:after{content:'+';font-size:14px}.r02-details[open] summary:after{content:'−'}.r02-details summary span{margin-left:auto;margin-right:12px;color:#82917f;font-size:8px}.r02-details a{display:block;color:#385f4a;font-size:9px;line-height:1.7;margin:9px 0}.r02-coordinates{display:flex;gap:8px;margin-top:12px}.r02-coordinates label{font-size:8px;width:50%;color:#7d8a78}.r02-coordinates input{display:block;width:100%;margin-top:5px}.r02-range{display:grid;grid-template-columns:1fr auto;font-size:9px;margin:19px 0 21px;gap:11px}.r02-range input{grid-column:1/-1}.r02-range output{font-size:9px;color:#6e8069}.r02-layout-title{margin-top:9px}.r02-layouts{display:flex;background:#e6eadc;border-radius:3px;padding:3px;gap:2px}.r02-layouts button{font-size:8px;padding:9px 4px;background:transparent;flex:1}.r02-layouts button.active{background:#244735;color:#f4f1e3;border-radius:2px}.toggle-row input:disabled+.switch{opacity:.4}.r02-profile{position:absolute;left:265px;bottom:151px;max-width:290px;padding:20px;background:#f5f4edee;border:1px solid #fff;border-radius:4px;backdrop-filter:blur(15px);z-index:12}.r02-profile[hidden]{display:none}.r02-profile .npc-tag{font-size:7px;letter-spacing:1.5px;color:#87927d}.r02-profile h3{font:normal 24px Georgia;margin:9px 0 12px}.r02-profile p{font-size:10px;line-height:1.7;color:#697966}.r02-profile-close{position:absolute;right:10px;top:8px;background:none;font-size:18px}.r02-profile small{font-size:8px;line-height:1.6;color:#89947f}.r02-profile .npc-fact{border-top:1px solid #d9dfd0;padding-top:10px;margin-top:12px}.npc-hint{font-size:8px;color:#6f826b;margin-top:14px;line-height:1.6}@media(max-width:600px){.controls{max-height:calc(100vh - 255px)}.r02-profile{left:17px;right:17px;max-width:none;bottom:152px}.controls.collapsed{overflow:hidden}.r02-date input{max-width:123px}}

#loadRecovery{max-width:480px;margin:24px auto 0;padding:0 20px}#loadRecovery[hidden]{display:none}.load-actions{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}.load-actions a{font-size:13px}#diagnosticDetails{margin-top:18px;font-size:12px;text-align:left}#startupDiagnostic{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;background:#e2e4d9;padding:12px;border-radius:6px}#copyDiagnostic{padding:8px 12px;border:1px solid #718071;background:transparent;border-radius:5px;color:inherit}

.performance-details{margin:22px 0;border-top:1px solid #bcc5ba;padding-top:16px}.performance-details summary{cursor:pointer;font-size:13px}.performance-details pre{font:11px/1.5 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto;background:#e9ece4;padding:12px;border-radius:8px}.performance-details button{padding:10px 14px;border:1px solid #a8b4a7;background:transparent;border-radius:6px;color:inherit}
/* R09 walking and visitor controls */
.r09-visit-controls{border-top:1px solid #cdd7c9;margin-top:18px;padding-top:5px}.r09-name{display:flex;flex-direction:column;gap:6px;margin:10px 0;font-size:11px;color:#365448}.r09-name input,.r09-name select{width:100%;max-width:100%;min-height:36px;border:1px solid #b6c2b6;border-radius:5px;background:#edf0e6;color:#294738;padding:7px;font:inherit}.r09-visit-controls>button,.r09-actions button{border:1px solid #ffffff35;border-radius:5px;background:#536a5b;color:#fff;padding:9px;font:inherit;font-size:11px;cursor:pointer;min-height:36px}.r09-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.r02-profile .r09-actions button{background:#536a5b;border-color:#536a5b}.r09-visit-controls button:focus-visible,.r09-actions button:focus-visible{outline:2px solid #ead9a8;outline-offset:3px}

/* Simple visitor controls; technical settings remain off the public panel. */
[hidden]{display:none!important}.visit-label{font-size:13px;margin:8px 0 10px}.visit-light{display:flex;gap:5px;margin-bottom:24px}.visit-light button{flex:1;border:1px solid #cbd5c7;border-radius:6px;padding:10px 5px;background:#edf0e6;color:#294d44;font:12px inherit;cursor:pointer}.visit-light button.active{background:#35594a;color:#fff}.r09-online-button{top:90px}
