/* Spatial campus presentation. All navigation and evidence remain ordinary accessible controls. */
:root{--navy:#091727;--panel:#142c43;--gold:#f0c779;--paper:#f4f6fa;--muted:#b9cbdc;--line:#365775;--cyan:#38d7ff}
body{font-size:20px;background:radial-gradient(ellipse at 80% 0,#17496366,transparent 55%),radial-gradient(ellipse at 0 65%,#17375866,transparent 55%),#091727}
header,main,footer{max-width:1840px}header{padding:18px 3.5vw;background:#091727a8}main{padding:32px 3.5vw 64px;min-height:76vh}
.brand-logo{width:150px}.brand-label{font-size:30px}.brand-label small{font-size:11px;max-width:220px}.edition{font-size:14px;color:var(--cyan)}
h1,h2,h3{font-family:Bahnschrift,'Arial Narrow','Trebuchet MS',sans-serif;font-weight:700;letter-spacing:-.035em}h1{font-size:clamp(54px,6.2vw,108px);line-height:.98;max-width:1200px}.intro h1{font-size:clamp(52px,5.8vw,98px)}h1 em{font-style:normal;color:var(--gold)}h2{font-size:42px;line-height:1.12}h3{font-size:32px}.lead{font-size:23px;max-width:980px;line-height:1.5}.eyebrow{font-size:15px;letter-spacing:.18em}.intro{margin-bottom:30px;align-items:center}.account{font-size:16px;padding:15px 20px;border-left:3px solid var(--cyan);background:#17344c88;text-align:left}.account strong{font-size:20px;font-weight:bold}
button{min-height:54px;font-size:18px;font-weight:600;padding:14px 23px;border-radius:9px;border-color:#496b87;transition:transform .18s,box-shadow .18s,background .18s}button:hover:enabled{background:#244861;box-shadow:0 6px 20px #0005}button:active:enabled{transform:translateY(2px)}.primary{min-height:60px;background:linear-gradient(135deg,#ffdf9f,#e7b355);box-shadow:0 5px 0 #876126,0 12px 26px #0005;border:1px solid #ffdf9f;color:#102030;font-size:20px}.primary:hover:enabled{background:#ffe1a4;box-shadow:0 7px 0 #876126,0 15px 28px #0006;transform:translateY(-2px)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}
.steps{gap:12px;margin-bottom:30px}.steps button{font-size:17px;padding:12px 22px;border:1px solid var(--line);background:#12293c;min-height:50px}.steps button[aria-current=step]{background:#f0c779;color:#142133;border-color:#ffdf9f;box-shadow:0 4px 0 #876126}.steps button:disabled{opacity:.65}
.grid{gap:28px;align-items:stretch}.card{--accent:var(--cyan);min-height:350px;padding:30px;border-radius:16px;border:1px solid #497694;background:linear-gradient(150deg,#21435c,#102438 70%);box-shadow:0 10px 0 #06101c,0 25px 38px #0007;overflow:hidden;isolation:isolate}.card:before{height:5px;width:100%;left:0;top:0;background:var(--accent);box-shadow:0 0 28px var(--accent)}.card:hover:enabled{background:linear-gradient(150deg,#2a526c,#142d45 70%);transform:translateY(-7px);box-shadow:0 14px 0 #06101c,0 30px 45px #0008;border-color:var(--accent)}.card .number{font:700 70px/.95 Bahnschrift,'Trebuchet MS',sans-serif;color:var(--accent);margin:5px 0 25px;text-shadow:0 4px 0 #04101d}.card h2{font-size:clamp(32px,2.7vw,48px);color:#fff;margin-bottom:15px}.card p{font-size:19px;line-height:1.55}.card .action{font-size:20px;color:var(--accent);padding-top:23px}.card .arrow{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--accent);border-radius:50%;font-size:28px}.card[data-track]{min-height:590px}.card[data-track=ai]{--accent:#80e2bb}.card[data-track=forensics-ir]{--accent:var(--gold)}.card:disabled{box-shadow:0 5px 0 #06101c;opacity:.67}
.room-art{display:block;height:215px;width:100%;margin:-55px 0 6px;pointer-events:none}.room-art svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 16px 9px #0008)}.availability{display:block;font-size:15px;letter-spacing:.04em;color:var(--accent);font-weight:bold;margin-bottom:16px}.path-pack{display:block;font-size:17px;font-weight:bold;color:var(--gold);margin:0 0 18px}.tag{font-size:14px;line-height:1.7;color:var(--gold)}.campus-wayfinding{font-size:19px;padding:18px 24px;background:#142b40;border:1px solid #365b79;border-left:5px solid var(--cyan);margin:32px 0 0}.campus-wayfinding strong{color:var(--gold)}
.login{gap:6vw;padding-top:25px;align-items:center}.login h1{font-size:clamp(60px,6.3vw,108px)}.login .lead{font-size:24px}.lines{margin-top:30px}.lines div{font-size:23px;padding:18px 0}.lines span{font:700 30px Bahnschrift,sans-serif}.form-panel{padding:40px;border-radius:16px;border-top:6px solid var(--gold);box-shadow:0 12px 0 #756442,0 30px 50px #0006;background:#f3efe5;color:#102030}.form-panel h2{font-size:44px}.form-panel p{font-size:17px}.form-panel .eyebrow{font-size:15px}label{font-size:18px;margin-top:22px}input,select,textarea{font-size:20px!important;min-height:54px;padding:14px;border-radius:7px}input[type=checkbox],input[type=radio]{min-height:0;width:22px;height:22px;accent-color:#e8ba62;vertical-align:middle;flex-shrink:0}textarea{min-height:165px}.note,.notice,.muted{font-size:17px;line-height:1.6}.note{max-width:1200px;border-radius:6px}.empty{padding:40px;border-radius:16px;background:#152f44;max-width:1100px}.empty h2{font-size:42px}footer{font-size:14px;padding:25px 3.5vw}.top{gap:20px}#staff-link{font-size:18px;color:var(--cyan);font-weight:bold}#message{font-size:17px}
/* Open-roof room maps, with raised stations and a visible active desk. */
.room-head h1{font-size:clamp(58px,6.5vw,108px)}.room-head{border-bottom:0;padding-bottom:12px}.room-head .lead{max-width:1200px}.room-map{position:relative;border:2px solid #496b86;border-top:12px solid #365a75;border-bottom:16px solid #07111e;border-radius:20px;padding:38px;gap:30px;background:linear-gradient(125deg,#1e486180,#152c4166),repeating-linear-gradient(0deg,transparent 0 55px,#79b8df12 56px 57px),repeating-linear-gradient(90deg,transparent 0 55px,#79b8df12 56px 57px),#10283b;box-shadow:inset 0 15px 30px #0005,0 25px 40px #0005}.station{min-height:210px;border-radius:12px;padding:26px;border:1px solid #60849c;border-top:5px solid var(--gold);background:linear-gradient(135deg,#2b526d,#112c42);box-shadow:8px 10px 0 #061725,12px 18px 16px #0006;position:relative}.station:before{content:'';display:block;width:40px;height:7px;background:var(--cyan);margin-bottom:20px;box-shadow:0 0 15px #38d7ff88}.station small{font-size:15px;margin-bottom:12px}.station strong{display:block;font:700 clamp(27px,2.2vw,38px)/1.12 Bahnschrift,'Trebuchet MS',sans-serif}.station .read{font-size:17px;margin-top:20px;color:#d4e6ef}.station:hover:enabled{transform:translateY(-5px);box-shadow:8px 15px 0 #061725,12px 22px 20px #0006}.station[aria-pressed=true]{background:linear-gradient(130deg,#355b67,#1a475c);border-color:var(--cyan);box-shadow:0 0 0 2px var(--cyan),8px 12px 0 #051320,0 0 35px #38d7ff25}.station[aria-pressed=true] .read{color:#87e9ff}#count{font-size:20px;font-weight:bold;color:var(--gold)}.sheet{padding:38px;border-radius:16px;box-shadow:0 9px 0 #77643e,0 20px 30px #0005;background:#f3efe5;color:#12283c}.sheet h2{font-size:42px}.sheet pre{font-size:20px;line-height:1.75}.sheet label{color:#14334a}.sheet .actions button{background:#16374b;color:white;border:1px solid #16374b}.panel,.desk-panel{border-radius:15px;padding:34px;background:linear-gradient(135deg,#1b354c,#10283c);box-shadow:0 8px 0 #071421,0 16px 28px #0003;margin-bottom:30px}.panel h2,.desk-panel h2{font-size:40px}.panel p,.record p{font-size:19px}.decision legend{font:700 27px/1.35 Bahnschrift,'Trebuchet MS',sans-serif}.decision label,.question label{font-size:19px;font-weight:normal;padding:14px;border:1px solid #365670;border-radius:8px;margin:10px 0;line-height:1.5}.decision label:has(input:checked),.question label:has(input:checked){background:#2d4955;border-color:var(--gold)}.question legend{font-size:25px;font-weight:bold}.score{font:700 clamp(74px,7vw,112px)/1 Bahnschrift,'Trebuchet MS',sans-serif;color:var(--gold);text-shadow:0 6px 0 #06101c}.feedback-row{font-size:20px;padding:22px 0}.scene{min-height:560px;padding:44px;border-radius:20px;box-shadow:0 12px 0 #061522,0 25px 40px #0006;border:1px solid #5c778e}.scene h1{font-size:clamp(68px,6.5vw,110px)}.scene p{font-size:22px}.exhibits{gap:18px}.exhibits button{min-height:64px;font-size:19px;background:#142e44ed;border-width:2px;box-shadow:0 5px 0 #061421}.record h3{font-size:30px}.hash,pre{font-size:16px;line-height:1.7}.desk-panel .muted{font-size:17px}table{font-size:18px}th{font-size:14px}th,td{padding:18px 14px}.badge{font-size:17px;padding:10px 16px}.review-entry{font-size:20px}.desk-panel pre{font-size:16px}.desk-panel input[type=checkbox]{width:22px;height:22px}
@media(min-width:1100px){.grid:has(>article:only-child){grid-template-columns:minmax(0,1100px)}.grid>article:only-child{min-height:320px;padding:44px}.grid>article:only-child h2{font-size:62px}.grid>article:only-child p{font-size:23px;max-width:800px}.grid>article:only-child .primary{min-width:300px}}
@media(max-width:1100px){.grid{gap:22px}.card[data-track]{min-height:540px}.room-map{padding:24px;gap:24px}.intro{align-items:start}.brand-logo{width:130px}.top{gap:12px}.edition{display:none}}
@media(max-width:760px){body{font-size:18px}main{padding:26px 20px 50px}header{padding:16px 20px}.brand-logo{width:110px}.brand-label{font-size:25px}.brand-label small{font-size:9px}.steps{gap:8px}.steps button{font-size:15px;padding:10px 12px}.intro h1{font-size:58px}.lead{font-size:21px}.grid{grid-template-columns:1fr}.card[data-track]{min-height:440px}.room-art{height:170px;margin-top:-45px}.card h2{font-size:40px}.card .number{font-size:60px}.account{width:100%}.login{grid-template-columns:1fr}.form-panel{padding:28px}.form-panel h2{font-size:38px}.room-map{grid-template-columns:1fr 1fr;padding:20px;gap:22px}.station{padding:19px;min-height:190px}.station strong{font-size:28px}.sheet,.panel,.desk-panel{padding:24px}.sheet h2,.panel h2,.desk-panel h2{font-size:34px}.sheet pre{font-size:18px}.scene{padding:25px;min-height:540px}.scene h1{font-size:72px}.scene p{font-size:20px}.decision label,.question label{font-size:18px}.desk-grid{grid-template-columns:1fr}.wide{grid-column:auto}.room-head h1{font-size:62px}footer{padding:24px 20px}}
@media(max-width:460px){.room-map{grid-template-columns:1fr;padding:18px}.station{min-height:170px}.card{padding:25px}.card h2{font-size:36px}.room-head h1,.intro h1{font-size:52px}.steps{flex-direction:column;align-items:stretch}.steps button{text-align:left}.top{width:100%;justify-content:space-between}.login h1{font-size:58px}.brand-logo{width:100px}.scene h1{font-size:62px}.room-map{margin-inline:0}.actions button{max-width:100%;width:100%}.decision legend{font-size:23px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.card:hover:enabled,.station:hover:enabled,.primary:hover:enabled{transform:none}}

/* Illustrated room access is duplicated by the large station controls below. */
.spatial-room{margin:36px 0 24px;border:1px solid #486a82;border-radius:22px;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#28485b,#091c30 74%);box-shadow:0 16px 0 #051320,0 24px 60px #0006}.spatial-caption{padding:30px 36px 0}.spatial-caption h2{font:700 clamp(32px,4vw,58px)/1.1 Bahnschrift,sans-serif;margin:12px 0}.spatial-caption p{max-width:830px}.spatial-room svg{display:block;width:100%;max-height:820px}.scene-desk{cursor:pointer;outline:none}.scene-desk:hover .desk-top,.scene-desk:focus .desk-top,.scene-desk.selected .desk-top{fill:#417888;stroke:#49deff;stroke-width:6}.scene-desk:focus .desk-top{stroke-dasharray:9 4}.spatial-note{margin:0;padding:0 36px 25px;color:#c0d0da;font-size:17px}.card:not([data-track]) .room-art{height:170px;margin:10px 0 15px}.form-panel .primary{display:inline-block;text-decoration:none;margin-top:18px}.spatial-room text{font-family:Bahnschrift,'Trebuchet MS',sans-serif}@media(max-width:600px){.spatial-caption{padding:22px}.spatial-room svg{min-width:580px}.spatial-room{overflow-x:auto}.spatial-caption,.spatial-note{position:sticky;left:0}.spatial-note{padding:15px 22px;font-size:15px}}

.business-link{display:block;color:var(--gold);text-decoration:none;font-size:18px;font-weight:bold;padding:12px 18px;border:1px solid #7f7053;border-radius:9px}.business-link span{display:block;color:#c1d3df;font-size:14px;font-weight:normal;margin-top:4px}.business-link:hover{border-color:var(--cyan);color:var(--cyan)}.form-panel a.primary{padding:18px 24px}.form-panel a.primary+.notice{margin-top:28px}

.portfolio-text{white-space:pre-wrap;overflow-wrap:anywhere}#portfolio-report article,#portfolio-list article{padding:20px;border-bottom:1px solid #365b79}#portfolio-list{margin-bottom:40px}
#feedback .score{font:700 clamp(48px,5vw,80px)/1.1 Bahnschrift,'Trebuchet MS',sans-serif!important;text-shadow:none;margin:18px 0;color:var(--gold)}
.campus-activity{max-width:1320px;margin:18px auto;padding:16px 24px;background:#112d40;border-left:4px solid var(--gold);border-radius:8px;color:#edf5f7}.campus-activity p{margin:6px 0}.campus-activity small{font-size:15px;color:#bed2dd}.campus-activity button{margin:10px 0 0;min-height:48px}.device-inspection{margin:22px 0;padding:18px;border:1px solid #70828c;border-radius:10px}.device-inspection .toolbar{display:flex;flex-wrap:wrap;gap:10px}.device-inspection p{line-height:1.5}.device-inspection canvas{max-width:100%}#follow-supervision{width:auto;margin-right:12px}

/* Keep quoted source and remembered exchange boundaries readable under CSP. */
#staff-history .staff-reply { white-space: pre-wrap; overflow-wrap: anywhere; }
