:root{--paper:#faf9ef;--ink:#253c32;--muted:#4b6155;--green:#304d3d;--line:#bbc6b5;--wash:#e7ecdf;--focus:#90611e;--gap:16px;--radius:6px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;font:14px 'Trebuchet MS',sans-serif;background:#deddd0;color:var(--ink)}canvas{display:block;outline-offset:-4px}button,select,summary{font:inherit;min-height:44px}button,select{border:1px solid var(--line);border-radius:4px;padding:10px 12px;background:var(--paper);color:var(--ink)}button,summary{cursor:pointer}button:hover,summary:hover{background:var(--wash)}button:disabled,select:disabled{opacity:.55;cursor:wait}button:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--focus);outline-offset:3px}canvas:focus-visible{outline-offset:-4px}a{color:var(--green);text-underline-offset:3px}::selection{background:var(--green);color:var(--paper)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
p{line-height:1.5}button,select,a,summary{touch-action:manipulation}.brand{position:fixed;left:20px;top:max(16px,env(safe-area-inset-top));display:flex;gap:10px;align-items:center;z-index:4;background:var(--paper);padding:8px 12px;border-radius:var(--radius);pointer-events:none}.seal{border:1px solid;padding:3px 6px;line-height:1.1;font-family:serif}.brand strong{letter-spacing:.1em;font-size:13px}.brand small{display:block;font-size:11px;letter-spacing:.09em;margin-top:4px}.explore{position:fixed;left:20px;top:94px;display:flex;gap:6px;max-width:calc(100vw - 40px);padding:6px;background:var(--paper);border-radius:var(--radius);z-index:4}.explore select{max-width:210px;background:var(--wash)}#walk,#tour-next{background:var(--green);color:var(--paper);border-color:var(--green)}.tools{position:fixed;right:20px;top:max(16px,env(safe-area-inset-top));display:flex;align-items:flex-start;gap:8px;z-index:5}.tools>details{background:var(--paper);border-radius:var(--radius)}summary{padding:12px;list-style-position:inside}.tool-content{width:280px;max-width:calc(100vw - 24px);padding:0 16px 16px;max-height:calc(100dvh - 190px);overflow:auto;scrollbar-color:var(--muted) var(--wash)}.tool-content label{display:block;margin:10px 0 6px;font-weight:600}.tool-content select{width:100%}.tool-content p{font-size:12px;color:var(--muted)}.diagnostics{margin-top:12px;font-size:11px}.diagnostics summary{padding-left:0}#render-stats{display:block;font-variant-numeric:tabular-nums}.map-content{padding:0 12px 12px;width:210px}.map-content svg{display:block;width:100%;height:280px;background:var(--wash)}#map-shapes polygon{fill:#c6cebd;stroke:#6b7d69;stroke-width:1}#map-shapes .boundary{fill:#eceddf;stroke:#607a53;stroke-width:1.5}#map-heading{fill:#244e38;stroke:#faf9ef;stroke-width:1}#campus-map text{font-size:11px;fill:var(--ink)}.map-content p{font-weight:600;margin-bottom:3px}.map-content small{font-size:11px;color:var(--muted)}
#loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#e9eadd;z-index:3;text-align:center;padding:100px 24px}#loading h1{font:normal clamp(30px,5vw,56px)/1.1 Georgia,serif;letter-spacing:-.025em;margin:0 0 22px}#loading progress{accent-color:var(--green);width:240px;max-width:100%;height:7px;margin:10px 0 24px}#loading a{font-size:13px}#retry{margin-bottom:16px}.visit{position:fixed;left:20px;bottom:76px;z-index:4;background:var(--paper);border-radius:var(--radius);padding:10px 12px;max-width:calc(100vw - 40px)}#location{margin:0 0 5px;font-weight:600}#tour{display:flex;align-items:center;gap:6px;flex-wrap:wrap}#tour button{font-size:12px;min-height:36px;padding:6px 9px}#tour-step{font-size:12px}#walk-help{position:fixed;left:20px;bottom:30px;z-index:4;background:var(--paper);border-radius:4px;padding:8px 12px;margin:0;max-width:calc(100vw - 40px);font-size:12px;pointer-events:none}#notice{position:fixed;left:50%;transform:translateX(-50%);top:154px;z-index:8;background:var(--paper);padding:10px 14px;border-radius:var(--radius);max-width:min(560px,calc(100vw - 24px));font-size:12px}#notice button{margin-left:8px}footer{position:fixed;right:12px;bottom:max(5px,env(safe-area-inset-bottom));z-index:4;font-size:11px;background:var(--paper);padding:3px 6px}.game-joystick-zone{display:none;position:fixed;bottom:70px;left:0;width:42vw;height:min(28vh,210px);touch-action:none;z-index:5}.game-joystick-base{position:absolute;left:50%;top:50%;width:96px;height:96px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid #faf9efbb;background:#253c3266}.game-joystick-knob{position:absolute;left:50%;top:50%;width:38px;height:38px;transform:translate(-50%,-50%);border-radius:50%;background:#faf9efbb}.game-joystick-label{position:absolute;bottom:5px;left:50%;transform:translateX(-50%);color:var(--paper);font-size:11px}.walking .visit{bottom:auto;top:154px}.walking #tour{display:none}.playing .visit,.playing .tools,.playing #walk-help{display:none}.campus-interact{bottom:78px!important;max-width:calc(100vw - 24px)}
@media(pointer:coarse),(max-width:767px){.game-joystick-zone.active{display:block}.walking #walk-help{left:auto;right:12px;max-width:52vw;font-size:12px}.walking .visit{padding:7px 10px}.walking #location{margin:0}}
@media(max-width:700px){.brand{left:12px;padding:6px 9px}.brand strong{font-size:11px}.brand small{font-size:11px}.tools{right:12px;gap:4px}.tools summary{font-size:11px;padding:12px 8px}.tools>details[open]{position:absolute;right:0;top:132px}.tools:has(details[open])>details:not([open]){visibility:hidden}.explore{left:12px;top:84px;max-width:calc(100vw - 24px);right:12px}.explore select{min-width:0;flex:1;max-width:none}.explore button{font-size:11px;padding:8px}.visit{left:12px;bottom:86px;max-width:calc(100vw - 24px)}#walk-help{left:12px;bottom:32px;max-width:calc(100vw - 24px);font-size:11px}.map-content svg{height:240px}.walking .visit{top:144px}#notice{top:190px}.brand .seal{display:none}}
@media(max-width:360px){.brand small{max-width:85px;line-height:1.4}.tools summary{font-size:11px;padding:12px 6px}.brand{max-width:105px}.explore button{padding:6px}.explore{gap:4px}}
@media(max-height:500px){.brand{display:none}.explore{top:12px;right:auto;max-width:65vw}.tools{top:12px}.visit,.walking .visit{top:76px;bottom:auto}.map-content svg{height:150px}.tool-content{max-height:calc(100dvh - 75px)}.game-joystick-zone{bottom:48px;height:150px}.map-content{width:170px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(max-width:700px) and (max-height:500px){.tools>details[open]{top:48px}.tool-content{max-height:calc(100dvh - 110px)}}
/* Keep nearby activities above help and clear of the movement pad on phones. */
@media(max-width:767px){.campus-interact{left:auto!important;right:12px;transform:none!important;bottom:142px!important;max-width:52vw;padding:12px!important;font-size:12px}body:has(#map-panel[open]) .visit{display:none}}

/* Keep the visual style discoverable without opening Settings. */
.scene-style{display:flex;align-items:center;gap:8px;margin-left:8px}
.scene-style label{font-size:12px;white-space:nowrap}
.explore .scene-style select{width:132px;flex:none}
@media(max-width:700px){
 .explore{display:grid;grid-template-columns:minmax(0,1fr) auto auto}
 .scene-style{grid-column:1/-1;justify-content:flex-end;margin-left:0}
 .explore .scene-style select{width:145px;min-height:44px}
 .walking .visit{top:200px}
 .tools>details[open]{top:184px}
 .tool-content{max-height:calc(100dvh - 245px)}
 #notice{top:244px}
}
@media(max-height:500px){.scene-style{margin-left:0}.scene-style label{display:none}.explore{flex-wrap:wrap}.walking .visit{top:126px}}
@media(max-width:700px) and (max-height:500px){.tools>details[open]{top:48px}.tool-content{max-height:calc(100dvh - 110px)}}
