/* Campus Core World Map · visual revision r2. Native-PC hierarchy, restored CTA affordance.
   Preserve all map IDs, route edges, markers, filters, pan and zoom behavior. */
:root,html[data-theme="tactical"]{--bg:#0b0b0b;--panel:#181818;--steel:#262626;--line:#656565;--text:#ededed;--muted:#bfc0bc;--gold:#e6cd8a;--accent:#b6323c;--cyan:#cfb882;--shadow:rgba(147,45,49,.24);--hero-opacity:1}
body{background:#0b0b0b;color:#e8e8e8;font-family:Tahoma,Arial,"Noto Sans Thai","Noto Sans TC",sans-serif}
.site-header{height:76px;background:#151515;border-bottom:1px solid #666}
.site-header a:hover,.global-nav a:hover{color:#f3d9aa}
.site-header :is(a,select,button):focus-visible,.atlas-frame :is(a,button):focus-visible{outline:2px solid #e6cd8a;outline-offset:3px}
.masthead{min-height:215px;padding-top:35px;padding-bottom:30px;background:#111;border-bottom:3px solid #5e5e5e}
.masthead:before{opacity:1;background:linear-gradient(90deg,#0b0b0bfc 0%,#0b0b0be9 36%,#0b0b0ba0 63%,#10101075 100%),url('./assets/campus-live.png') center 46%/cover no-repeat}
.masthead:after{opacity:.24}
.mast-copy h1{font-family:Tahoma,Arial,"Noto Sans Thai",sans-serif;font-size:clamp(31px,3.15vw,49px);font-weight:900;line-height:1.13;letter-spacing:-.025em;text-shadow:0 3px 12px #000}
.mast-copy h1 em{color:#e6cd8a}
.mast-copy p{max-width:660px;color:#dedede;font-size:clamp(12px,1vw,15px);line-height:1.7}
.mast-metrics{border:1px solid #625f56;background:#141414a8;padding:10px 14px}
.mast-metrics strong{color:#e6cd8a}
.atlas-frame{border:1px solid #676767;background:#101010}
.map-column{background:#111}
.atlas-bar{min-height:55px;background:#1d1d1d;border-bottom:1px solid #646464}
.view-tabs button{font-family:Tahoma,Arial,sans-serif;color:#dedede;font-size:12px;min-height:55px}
.view-tabs button.active,.view-tabs button[aria-selected=true]{color:#fff;border-bottom:3px solid #ba3a43;background:linear-gradient(0deg,#78252c3d,transparent)}
.filters{padding:11px 15px;background:#1b1b1b;gap:7px;border-bottom:1px solid #606060}
.filters button{min-height:40px;border:1px solid #777;background:#292929;color:#e1e1e1;font-size:12px;padding:8px 13px}
.filters button.active,.filters button:hover{color:#fff;background:#65252ccf;border-color:#e27d83}
.map-viewport{background:radial-gradient(ellipse at 50% 46%,#35352e 0%,#1d2021 50%,#0d0d0d 100%);border-bottom:1px solid #575757}
.world-texture{filter:saturate(.97) brightness(1.28) contrast(1.10);opacity:1}
.world-surface{background:linear-gradient(90deg,#12121214,#17171920),radial-gradient(circle at 50% 65%,transparent 15%,#0707072d 97%)}
.world-grid{opacity:.23}
.landmark,.sector-marker{border-radius:2px;border:1px solid #8e8e87;background:linear-gradient(140deg,#2e2b29f7,#141414f9);box-shadow:0 9px 22px #000b;color:#f5f5f5}
.landmark:before,.sector-marker:before{background:#b9a370;border-color:#393225}
.landmark .marker-icon{background:#28241e;border:1px solid #a99164;color:#f1da9d}
.marker-copy strong{font-family:Tahoma,Arial,sans-serif;font-size:16px;font-weight:800;line-height:1.28;text-shadow:0 2px 4px #000}
.marker-copy small{font-size:11px;letter-spacing:.02em;color:#d0d0d0}
.landmark:hover,.landmark:focus-visible,.sector-marker:hover{border-color:#f4d196;background:#3c3530;box-shadow:0 0 0 3px #d7b57445,0 10px 30px #000a}
.landmark.active,.sector-marker.active{background:#4a2626;border-color:#e3767a;box-shadow:0 0 0 3px #ba3a4457,0 12px 28px #000b;z-index:5}
.landmark.active:before,.sector-marker.active:before{background:#ef9191}
.landmark.active:after{border-color:#d5646b}
.sector-marker{border-color:#b9aa86;background:linear-gradient(150deg,#38332c,#1d1d1d)}
.sector-marker .marker-copy strong{font-size:23px}
.map-controls button,.map-controls output{min-width:40px;height:40px;background:#242424ef;border:1px solid #8e8e8e;color:#f5f5f5;border-radius:2px}
.map-controls button:hover{border-color:#e8b8aa;background:#653238}
.map-hint{background:#141414dc;border:1px solid #8b7c66;color:#efefef;font-size:12px}
.map-bottom{background:#181818;color:#ddd}
.inspector{background:#171717;border-left:1px solid #676767}
.detail-art{height:180px;border-bottom:2px solid #99805b}
.detail-body{background:#191919;color:#e8e8e8}
.detail-overline,.section-label{color:#e6cd8a}
.detail-actions .cta{color:#fff;border:1px solid #d67e84;border-radius:2px;background:linear-gradient(180deg,#b3323be5,#661b24e8),url('./assets/button40_focus.png') center/100% 100% no-repeat;box-shadow:0 6px 19px #0008;font:800 12px/1.5 Tahoma,Arial,sans-serif}
.detail-actions .cta:hover{filter:brightness(1.17)}
.detail-actions .secondary-link{color:#e8e8e8;border-color:#838383;background:#2b2b2b}
.disclaimer{background:#151515;border-top:1px solid #636363;color:#bdbdbd}
@media(max-width:980px){.site-header{height:auto}.masthead{min-height:205px}.inspector{border-left:0;border-top:2px solid #8e7762}.detail-art{min-height:260px}}
@media(max-width:640px){.masthead{min-height:194px;padding:24px 15px}.mast-copy h1{font-size:clamp(29px,8vw,39px)}.mast-copy p{font-size:12px;line-height:1.65}.global-nav a{min-height:44px;display:inline-flex;align-items:center}.atlas-bar{min-height:50px}.view-tabs button{font-size:11px;min-height:50px}.filters{gap:7px;padding:8px}.filters button{font-size:11px;min-height:42px;padding:9px 12px}.map-viewport{height:clamp(420px,68vh,540px)}.map-controls button,.map-controls output{min-width:40px;height:40px}.map-hint{font-size:10px;line-height:1.5}.inspector{display:block}.detail-art{height:155px;min-height:0}.detail-body{padding:18px}.map-bottom{padding:10px}}
@media(prefers-reduced-motion:reduce){.landmark,.sector-marker{transition:none}.landmark.active:after{animation:none}}
