:root{color-scheme:light;--green:#174a32;--line:#d6dadd;--muted:#373c37;--pad:2vw;--gap:2.2vw;--control:clamp(48px,4.1vw,158px);font-family:Arial,Helvetica,sans-serif;color:#000;background:#fff;font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#fff}body{overscroll-behavior:contain}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,a,input{font:inherit}button{color:#000;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.32;cursor:default}button:focus-visible,a:focus-visible{outline:clamp(3px,.2vw,7px) solid var(--green);outline-offset:4px}h1,h2,p{margin:0}img{display:block;max-width:100%;user-select:none}button{background:none}h1:focus{outline:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:#fff;border:2px solid var(--green);padding:16px}.skip-link:focus{top:16px}.icon{width:1.35em;height:1.35em;flex-shrink:0;color:var(--green)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.8vw;min-height:var(--control);padding:.7vw 1.35vw;border:clamp(1.5px,.12vw,4px) solid var(--green);border-radius:.62vw;background:#fff;font-size:clamp(18px,1.55vw,60px);font-weight:600;line-height:1.15;color:#000;white-space:nowrap}.button:hover{background:#f0f6ed}.button.compact{min-height:clamp(44px,2.9vw,114px);padding:.5vw 1.1vw;font-size:clamp(15px,1.2vw,46px)}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:clamp(46px,3vw,116px);height:clamp(46px,3vw,116px);padding:.55vw;border:0;border-radius:50%;background:#eff0f1;font-size:clamp(19px,1.55vw,60px)}.icon-button .icon{color:#000}.icon-button:not(:disabled):hover{background:#e4edde}.notice{position:fixed;z-index:60;left:50%;bottom:24px;transform:translateX(-50%);width:max-content;max-width:90vw;padding:18px 26px;background:#fff;border:2px solid var(--green);border-radius:8px;box-shadow:0 6px 30px #0002;font-size:20px}
/* The approved campus artwork stays fitted, uncropped and precisely registered. */
.campus-page{width:100%;height:100vh;height:100svh;position:relative}.campus-fit{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.campus-art{position:relative;flex-shrink:0}.campus-image{width:100%;height:100%;max-width:none}.campus-donate{position:absolute;left:56.519139%;top:.850159%;width:42.22488%;height:11.158342%;min-height:44px;border-radius:18px;z-index:3}.map-hotspot{position:absolute;transform:translate(-50%,-50%);width:max(48px,2.65%);height:auto;aspect-ratio:1;display:block;border-radius:50%;z-index:2}.hotspot-ring{position:absolute;inset:5%;border-radius:50%;border:3px solid transparent;transition:border-color .12s,box-shadow .12s}.map-hotspot:hover .hotspot-ring,.map-hotspot:focus-visible .hotspot-ring{border-color:var(--green);box-shadow:0 0 0 6px #75b54645}.map-hotspot:focus-visible{outline:0}.legend-hotspot{position:absolute;left:80.35%;width:18.3%;z-index:1;border-radius:6px}.legend-hotspot:hover,.legend-hotspot:focus-visible{background:#78b15112;box-shadow:inset 0 0 0 2px var(--green)}.campus-tools{position:absolute;left:29%;right:26%;bottom:1%;display:flex;align-items:center;justify-content:center;gap:1.5vw;height:4.2%;white-space:nowrap;background:#fff}.campus-tools p{font-size:clamp(14px,1.05vw,42px)}.campus-tools .button{font-size:clamp(13px,.95vw,38px);min-height:0;height:100%;padding:.3vw .8vw}.mobile-locations{display:none}
/* One reusable template, sized to the original complete-screen concept. */
.building-page{height:100vh;height:100svh;display:flex;flex-direction:column;padding:0 var(--pad) 1.6vw;overflow:hidden}.building-header{flex-shrink:0;display:grid;grid-template-columns:minmax(18vw,max-content) minmax(0,1fr) auto;align-items:center;gap:3.1vw;padding:1vw 0 .8vw;border-bottom:1px solid var(--line)}.back-campus{width:100%;justify-content:flex-start;padding-left:1.6vw;background:var(--green);color:#fff;box-shadow:0 3px 8px #174a3226;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .1s}.back-campus .icon{width:2.2vw;height:2.2vw;min-width:26px;min-height:26px;color:inherit}.back-campus:hover{background:var(--green)}@media(hover:hover){.back-campus:hover{background:#216342;border-color:#216342;box-shadow:0 4px 10px #174a3233}}.back-campus:active{background:#103824;border-color:#103824;box-shadow:inset 0 2px 4px #0003;transform:translateY(1px)}.building-heading h1{font-size:clamp(28px,3.0vw,118px);font-weight:700;line-height:1.02;letter-spacing:-.055vw}.building-heading p{font-size:clamp(14px,1.38vw,53px);line-height:1.2;margin-top:.22vw;letter-spacing:-.025vw}.wordmark{font-size:clamp(16px,1.73vw,68px);font-weight:700;letter-spacing:-.06vw;white-space:nowrap}.long-title .building-heading h1{font-size:clamp(25px,2.2vw,88px)}.long-title .wordmark{display:none}.long-title .building-header{grid-template-columns:minmax(18vw,max-content) minmax(0,1fr)}
.building-body{display:grid;grid-template-columns:minmax(0,.36fr) minmax(0,.64fr);gap:var(--gap);flex:1;min-height:0;padding-top:1.1vw}.plan-panel{display:flex;flex-direction:column;min-height:0;min-width:0;padding-right:1.7vw;border-right:1px solid var(--line)}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1vw;flex-shrink:0;min-height:3.2vw;margin-bottom:.8vw}.panel-header h2{font-size:clamp(26px,2.4vw,94px);font-weight:700;line-height:1.04;letter-spacing:-.04vw}.panel-header p{font-size:clamp(15px,1.3vw,51px);line-height:1.25;margin-top:.28vw;white-space:nowrap}.panel-header .button{align-self:flex-start}.plan-fit{position:relative;min-height:0;flex:1;display:flex;align-items:center;justify-content:center}.plan-art{position:relative;flex-shrink:0}.plan-art>img{width:100%;height:100%;max-width:none}.room-hotspot{position:absolute;padding:0;border:clamp(3px,.26vw,10px) solid transparent;border-radius:.4vw;background:transparent;transition:border-color .12s,background .12s}.room-hotspot:hover{background:#174a320c;border-color:#174a3260}.room-hotspot.is-selected{border-color:var(--green);background:#174a3205}.room-hotspot:focus-visible{outline-offset:0}
.gallery-panel{display:flex;flex-direction:column;min-width:0;min-height:0}.gallery-panel .panel-header{align-items:center}.photo-stage{display:flex;align-items:center;justify-content:center;min-height:0;flex:1;width:100%;padding:0;border:0;overflow:hidden;border-radius:.55vw;background:#fff}.selected-photo{width:100%;height:100%;object-fit:contain;border-radius:.55vw}.gallery-rail{display:flex;align-items:center;gap:.8vw;padding-top:1.25vw;flex-shrink:0}.thumbnails{min-width:0;flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8vw}.thumbnail{min-width:0;padding:0;border:0;display:flex;flex-direction:column;align-items:center;gap:.35vw;border-radius:.4vw}.thumbnail-image{display:block;width:100%;aspect-ratio:1.48;border:clamp(3px,.22vw,8px) solid transparent;border-radius:.5vw;padding:.13vw;overflow:hidden}.thumbnail-image img{width:100%;height:100%;object-fit:cover;border-radius:.25vw}.thumbnail.is-selected .thumbnail-image{border-color:var(--green)}.thumbnail-label{font-size:clamp(16px,1.2vw,47px);font-weight:500;line-height:1.15;white-space:normal;text-align:center}.thumbnail.is-selected .thumbnail-label{font-weight:600}.gallery-count{font-size:clamp(13px,.95vw,38px);white-space:nowrap;flex-shrink:0}.gallery-arrow{width:clamp(44px,2.9vw,112px);height:clamp(44px,2.9vw,112px)}.thumbnails:only-child{max-width:50%}
/* Viewer keeps the original image intact, with touch zoom and panning. */
.viewer-open{overflow:hidden}.viewer{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;background:#fff;padding:1.2vw 2vw}.viewer-header{display:flex;align-items:center;justify-content:space-between;gap:1.5vw;padding-bottom:1vw;border-bottom:1px solid var(--line);flex-shrink:0}.viewer-header .button{font-size:clamp(16px,1.3vw,52px);min-height:clamp(52px,3.6vw,140px)}.viewer-title{font-size:clamp(24px,2.2vw,88px);font-weight:700;min-width:0;text-align:center}.zoom-controls{display:flex;align-items:center;gap:.7vw;flex-shrink:0}.zoom-value{font-size:clamp(15px,1.25vw,48px);min-width:3.8vw;text-align:center;font-variant-numeric:tabular-nums}.viewer-stage{position:relative;flex:1;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:1vw 0;touch-action:none}.viewer-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transform-origin:center;pointer-events:none}.viewer-stage.is-zoomed{cursor:grab}.viewer-stage.is-zoomed:active{cursor:grabbing}.viewer-footer{display:flex;align-items:center;justify-content:center;gap:1.5vw;padding-top:.5vw;flex-shrink:0}.viewer-count{font-size:clamp(17px,1.25vw,50px);min-width:5vw;text-align:center}
@media(min-width:2300px){.building-header{border-bottom-width:2px}.plan-panel{border-right-width:2px}.viewer-header{border-bottom-width:2px}}
@media(max-width:1250px){.wordmark{display:none}.building-header,.long-title .building-header{grid-template-columns:minmax(230px,max-content) minmax(0,1fr);gap:28px}.building-heading h1{font-size:36px}.building-heading p{font-size:18px}.back-campus{min-height:60px}.plan-panel .panel-header{flex-wrap:wrap;gap:10px}.plan-panel .panel-header .button{margin-left:auto}.panel-header p{white-space:normal}.thumbnails{gap:6px}.gallery-rail{gap:6px}.gallery-count{display:none}}
@media(max-width:820px){:root{--pad:20px;--gap:24px}.button{border-radius:8px;gap:10px;padding:10px 16px}.button.compact{border-radius:8px;padding:10px 12px;gap:8px}.icon-button{padding:10px}.campus-page{height:auto;min-height:100vh}.campus-fit{height:56.28vw}.map-hotspots,.legend-hotspots,.campus-tools{display:none}.mobile-locations{display:block;padding:12px 20px 30px}.mobile-locations h2{font-size:26px;margin:10px 0 18px}.mobile-locations a{display:flex;align-items:center;gap:14px;padding:14px 2px;border-bottom:1px solid var(--line);font-size:18px;min-height:68px}.mobile-locations a>.icon{margin-left:auto;width:24px;height:24px}.location-number{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:1.5px solid #000;border-radius:50%;font-weight:600}.building-page{height:auto;min-height:100vh;padding:0 18px 30px;overflow:visible}.building-header,.long-title .building-header{display:flex;flex-wrap:wrap;gap:15px;padding:16px 0 20px}.back-campus{width:auto;min-height:48px;font-size:18px;padding:10px 14px}.building-heading{width:100%}.building-heading h1,.long-title .building-heading h1{font-size:34px;letter-spacing:-.6px}.building-heading p{font-size:17px;margin-top:7px;line-height:1.3}.building-body{display:flex;flex-direction:column;gap:32px;padding-top:20px}.plan-panel{order:2;border:0;border-top:1px solid var(--line);padding:24px 0 0;height:760px;max-height:110vh;flex-shrink:0}.gallery-panel{order:1;flex-shrink:0}.panel-header{min-height:48px;margin-bottom:12px;gap:12px;align-items:center}.panel-header h2{font-size:28px;letter-spacing:-.5px}.panel-header p{font-size:16px;margin-top:5px}.plan-panel .panel-header{flex-wrap:nowrap}.plan-panel .panel-header .button{margin-left:0}.photo-stage{flex:none;aspect-ratio:1.5;border-radius:8px;max-height:72vh}.selected-photo{border-radius:8px}.gallery-rail{padding-top:16px;gap:8px}.thumbnails{gap:6px}.thumbnail-image{padding:2px;border-radius:6px;border-width:3px;aspect-ratio:1.35}.thumbnail-image img{border-radius:2px}.thumbnail-label{font-size:14px;white-space:normal;overflow-wrap:anywhere;line-height:1.25}.gallery-arrow{display:none}.room-hotspot{border-radius:5px;border-width:3px}.viewer{padding:12px}.viewer-header{flex-wrap:wrap;gap:12px;padding-bottom:14px}.viewer-header .button{min-height:46px;font-size:16px}.viewer-title{font-size:25px;order:2}.zoom-controls{width:100%;justify-content:center;gap:10px;order:3}.zoom-value{font-size:17px;min-width:48px}.zoom-controls .button{font-size:15px;padding:8px 12px}.viewer-stage{padding:12px 0}.viewer-footer{padding-top:12px;gap:25px}.viewer-count{font-size:18px}.viewer-header>.button{max-width:100%;white-space:normal}.notice{font-size:16px;width:calc(100% - 32px);bottom:16px;padding:16px}.skip-link{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Long galleries keep four readable previews in a single swipeable row. */
.has-many .thumbnails{--thumb-gap:.8vw;position:relative;display:flex;gap:var(--thumb-gap);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#9ba99e #f1f3f0;padding-bottom:.5vw;touch-action:pan-x pan-y}
.has-many .thumbnail{flex:0 0 calc((100% - 3 * var(--thumb-gap))/4);scroll-snap-align:start;align-self:flex-start}
.has-many .thumbnail-label{white-space:normal;min-height:2.5em;text-align:center}
.has-many .gallery-count{display:block}
@media(max-width:820px){.gallery-rail.has-many{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px}.has-many .thumbnails{--thumb-gap:6px;grid-column:1/-1;grid-row:1;padding-bottom:6px}.has-many .thumbnail-label{min-height:3.75em}.has-many .gallery-arrow{display:inline-flex;grid-row:2}.has-many [data-previous]{grid-column:1}.has-many [data-next]{grid-column:3}.has-many .gallery-count{display:block;grid-row:2;grid-column:2;text-align:center;font-size:15px}}
