:root{font-family:'Segoe UI',Arial,sans-serif;color:#112e37;background:#fff;font-synthesis:none}
/* The canvas is shared with the transparent walkthrough frame. */
.brand-header,.walk-heading,.project-link{position:relative;z-index:2;background:#fff}
#campus-render{z-index:2;cursor:grab}#campus-labels{z-index:3}#campus-status{z-index:3}
#luma-walkthrough{position:relative;z-index:2;background:transparent!important}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,canvas:focus-visible{outline:3px solid #208b92;outline-offset:4px}
/* Original vector microscope and live Manrope wordmark from render-chrome.mjs. */
@font-face{font-family:Manrope;src:url('/brand-assets/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{--landing-header-height:clamp(52px,9.32vw,128px)}
.brand-header{height:var(--landing-header-height);max-width:1600px;margin:auto;padding:0 clamp(14px,2.6vw,36px);display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff}
.brand-logo{display:inline-flex;align-items:center;gap:clamp(9px,1.4vw,20px);flex-shrink:0;line-height:1;text-decoration:none;color:#071e30;font:800 clamp(20px,3.15vw,44px)/1 Manrope,Arial,sans-serif;letter-spacing:-.052em}
.brand-logo strong{font:inherit;white-space:nowrap}.brand-logo strong>span{font-weight:400}.brand-logo b{color:#087b7b}
.brand-header .brand-mark{display:block;width:clamp(30px,4.08vw,56px);height:clamp(30px,4.08vw,56px);flex-shrink:0}
.brand-header .brand-institute{display:block;width:clamp(105px,17vw,228px);height:auto;flex-shrink:0;object-fit:contain}
.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 4vw 18px;border-top:1px solid #edf1ec}.intro-title{display:flex;align-items:center;gap:13px;min-width:0}.intro h1{font-size:clamp(21px,2.1vw,29px);font-weight:500;line-height:1.22;letter-spacing:-.035em;margin:0}.intro-hint{display:flex;flex-direction:column;gap:5px;text-align:right;font-size:11px;line-height:1.3;color:#658078;flex-shrink:0}.intro-hint b{font:500 10px/1.2 Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:#345e59}.campus-symbol{width:35px;height:35px;border:1px solid #b6d0c6;border-radius:10px;background:#f0f5ef;display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:8px;flex-shrink:0}.campus-symbol i{border:1px solid #739c90;border-radius:1px}.campus-symbol i:nth-child(2){background:#dceaf0}.campus-symbol i:nth-child(3){background:#eee6cf}
.campus-shell{position:relative}
.intro h1{text-wrap:balance}
.campus-stage{position:relative;width:100%;height:clamp(380px,42vw,620px);min-height:0;overflow:hidden;background:radial-gradient(ellipse at 50% 43%,#f3f1e7,#e2e6d9)}
#campus-render,#campus-labels{position:absolute;inset:0}#campus-render canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#campus-render canvas:active{cursor:grabbing}#campus-labels{pointer-events:none}
.room-label{position:absolute;left:0;top:0;transform-origin:top left;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:160px;height:108px;padding:5px 6px 7px;background:var(--paper);border:1px solid var(--rim);border-radius:8px;color:#17353d;box-shadow:0 2px 5px #17352e1a;pointer-events:auto;font:500 18px/1 'Segoe UI',Arial,sans-serif;text-align:center;cursor:pointer;will-change:transform}
.room-label .label-number{font:600 14px/1 Consolas,monospace;color:var(--ink);padding:1px 6px;border-radius:4px;background:#ffffff91;border:1px solid #ffffffb0}.room-label .label-name{display:block;white-space:nowrap}.room-label[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px #fff,0 3px 8px #15392d33}.room-label:hover{filter:brightness(1.035)}
#campus-status{position:absolute;left:24px;top:18px;max-width:calc(100% - 48px);padding:8px 12px;border-radius:6px;background:#ffffffdf;color:#486258;font-size:12px;margin:0;pointer-events:none}#campus-status:empty{display:none}.gesture-note{position:absolute;bottom:12px;left:0;right:0;margin:0;text-align:center;font-size:12px;color:#536b5f;pointer-events:none}
.walk-section{max-width:1520px;margin:auto;padding:38px 4vw 34px}.walk-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}.eyebrow{font:500 11px/1.5 Consolas,monospace;letter-spacing:.12em;color:#438082;margin:0 0 8px}.walk-heading h2{font-weight:500;font-size:clamp(28px,3vw,42px);letter-spacing:-.035em;line-height:1.15;margin:0 0 9px}.walk-description{color:#57706a;font-size:15px;margin:0}.enter-walk{background:#123e48;color:white;text-decoration:none;border-radius:4px;padding:15px 21px;font-size:14px;white-space:nowrap}.enter-walk:hover{background:#1a535b}.walk-image{position:relative;display:block;overflow:hidden}.walk-image img{width:100%;height:clamp(280px,32vw,460px);object-fit:cover;display:block}.walk-image span{position:absolute;left:18px;top:18px;background:#fffffff0;padding:8px 12px;border-radius:3px;font-size:13px;color:#2c4c43}.project-link{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:30px;padding-top:24px;border-top:1px solid #dfe8e4;color:#21474b;font-size:16px;text-decoration:none}.project-link small{display:block;font-size:10px;letter-spacing:.04em;margin-bottom:6px}
@media(max-width:700px){.intro{padding:12px 18px 14px;align-items:start;flex-direction:column;gap:9px}.intro-title{gap:10px}.intro h1{font-size:22px;max-width:300px}.intro-hint{flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 10px;text-align:left;font-size:10px;padding-left:39px}.intro-hint b{font-size:9px}.campus-symbol{width:29px;height:29px;padding:6px;border-radius:8px}.campus-stage{min-height:0;height:370px}.walk-section{padding:28px 20px}.walk-heading{align-items:start;flex-direction:column;gap:18px}.walk-description{font-size:14px}.gesture-note{font-size:11px}}
.luma-map-label{position:absolute;top:0;left:0;padding:3px 7px;border-radius:12px;background:#163e49e8;border:1px solid #8ae6e7;color:#ceffff;font:600 9px/1.2 'Segoe UI',sans-serif;letter-spacing:.08em;pointer-events:none;z-index:31}
.walk-section{max-width:none;padding:30px 0 28px}
.walk-heading{padding:0 4vw;margin-bottom:20px}
#walk-location{color:#3b686b;font-size:13px;padding:9px 13px;background:#eef4f0;border-radius:20px;max-width:300px}
#luma-walkthrough{width:100%;height:clamp(520px,70svh,820px);border:0;display:block;background:#e2e9df}
.walk-keyboard{font-size:12px;text-align:center;color:#557371;margin:13px 20px 0}
.walk-section .project-link{margin:28px 4vw 0}
@media(max-width:700px){.walk-heading{padding-inline:20px;gap:12px}#luma-walkthrough{height:590px}.walk-keyboard{font-size:11px;line-height:1.6}#walk-location{font-size:12px;padding:7px 11px}.walk-section .project-link{margin-inline:20px}}

/* One compact set of Luma's notes; the selected room remains visible beside it. */
.balloon-connector{position:absolute;inset:0;width:100%;height:100%;z-index:40;pointer-events:none;overflow:hidden}.balloon-connector path{fill:none;stroke:currentColor;stroke-width:1.25;stroke-linejoin:round;opacity:.7}.balloon-connector circle{fill:currentColor;stroke:#fff;stroke-width:2}
.lab-balloon{position:absolute;z-index:50;width:318px;max-width:calc(100% - 32px);max-height:calc(100% - 32px);overflow:auto;overscroll-behavior:contain;padding:17px 20px 15px;border:1px solid color-mix(in srgb,var(--balloon-ink) 35%,white);border-radius:18px;background:linear-gradient(150deg,#fffffff7,var(--balloon-paper));color:#24423e;box-shadow:0 10px 35px #193e2824,0 2px 8px #14372c0d;scrollbar-width:thin;scrollbar-color:#a9beb0 transparent}
.lab-balloon[hidden],.balloon-connector[hidden]{display:none}
.balloon-top{display:flex;align-items:center;gap:9px;min-height:29px;margin-bottom:6px}.balloon-number{border:1px solid #ffffffc7;border-radius:6px;padding:4px 6px;background:var(--balloon-paper);color:var(--balloon-ink);font:700 10px/1 Consolas,monospace;white-space:nowrap}.balloon-source{font:500 9px/1.2 Consolas,monospace;letter-spacing:.11em;color:var(--balloon-ink)}
.balloon-close{margin:-5px -8px -5px auto;flex-shrink:0;width:36px;height:36px;padding:0;border:0;border-radius:50%;color:var(--balloon-ink);background:transparent;font:400 25px/1 'Segoe UI',sans-serif;cursor:pointer}.balloon-close:hover{background:#ffffffc7}
.lab-balloon h2{font-size:23px;font-weight:550;line-height:1.1;letter-spacing:-.035em;margin:0 12px 11px 0}.balloon-summary{font-size:12px;line-height:1.55;margin:0 0 13px;color:#42615a}.lab-balloon h3{margin:0 0 6px;font:650 9px/1.2 'Segoe UI',sans-serif;letter-spacing:.07em;text-transform:uppercase;color:var(--balloon-ink)}
.balloon-equipment{list-style:none;display:flex;flex-wrap:wrap;gap:5px;margin:0 0 13px;padding:0}.balloon-equipment li{border:1px solid #ffffffd9;border-radius:6px;background:#ffffff94;padding:5px 7px;font-size:10px;line-height:1.2}
.balloon-try{border-top:1px solid #6b8c772b;padding-top:11px}.balloon-try h3{display:flex;justify-content:space-between}.balloon-activity{font-size:12px;line-height:1.5;margin:0}.balloon-detail{font-size:10px;line-height:1.4;color:#5a756b;margin:11px 0 0}
@media(max-width:700px){.has-lab-balloon{padding-bottom:2px;background:#edf0e7}.lab-balloon{position:relative;width:auto;max-width:none;max-height:none;margin:12px 16px 0;padding:15px 17px;border-radius:16px;box-shadow:0 4px 15px #193e2810}.lab-balloon h2{font-size:23px}.balloon-summary,.balloon-activity{font-size:13px}.balloon-equipment li{font-size:11px}.balloon-close{width:44px;height:44px}.balloon-top{margin-bottom:3px}.balloon-detail{font-size:11px}}
