.map-explorer { padding-top: clamp(4rem, 8vw, 7rem); }
.map-container-wide { max-width: 1450px; }
.compact-tabs { display:flex;width:fit-content;margin-inline:auto;border:1px solid var(--line);background:rgba(5,9,21,.72); }
.compact-tab { min-height:3.15rem;padding:.65rem clamp(1.15rem,3vw,2.2rem);border:0;border-right:1px solid var(--line);color:var(--paper-soft);background:transparent;font:inherit;cursor:pointer; }
.compact-tab:last-child { border-right:0; }.compact-tab.active { color:var(--navy);background:var(--gold-bright);font-weight:700; }
.floor-map-panels { margin-top:1.4rem; }.floor-map-panel[hidden] { display:none; }
.floor-map-panel { overflow:hidden;border:1px solid var(--line);background:rgba(5,9,21,.84);box-shadow:var(--shadow); }
.floor-map-title { display:flex;align-items:center;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--line);background:rgba(237,208,139,.06); }
.floor-map-title>span { display:grid;place-items:center;width:3rem;height:3rem;flex:0 0 auto;color:var(--navy);background:var(--gold-bright);font-family:var(--f-display);font-weight:700; }
.floor-map-title h3 { margin:0;font-size:clamp(1rem,2vw,1.3rem); }.floor-map-title small { color:var(--muted);font-size:.68rem; }
.floor-map-scroll { width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:var(--gold) rgba(238,230,211,.08); }
.floor-map-canvas { position:relative;width:100%;min-width:1120px;aspect-ratio:1200/500;overflow:hidden;background-color:#07102a;background-image:linear-gradient(rgba(237,208,139,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(237,208,139,.035) 1px,transparent 1px);background-size:24px 24px; }
.plan-shape,.source-room { position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);display:grid;place-items:center;border:1px solid rgba(238,230,211,.2);color:rgba(238,230,211,.62);font-size:.63rem;letter-spacing:.04em;text-align:center;overflow:hidden; }
.building-mass,.upper-wing { background:rgba(238,230,211,.08); }.map-block-label { font-size:.72rem; }
.vertical-link,.main-corridor { background:repeating-linear-gradient(90deg,rgba(238,230,211,.02) 0 2rem,rgba(238,230,211,.075) 2rem 2.06rem); }
.vertical-link { writing-mode:vertical-rl; }.closed-route { z-index:3;border-color:rgba(194,55,67,.8);color:#ffd5d7;background:rgba(194,55,67,.78); }
.utility { color:var(--navy);background:var(--gold); }.large-room,.map-label-box { color:var(--paper);background:rgba(34,51,90,.88);font-size:.78rem; }
.floor-room { position:absolute;left:var(--x);top:var(--y);z-index:4;width:var(--w);height:var(--h);display:grid;place-items:center;min-width:0;padding:.14rem;border:1px solid rgba(237,208,139,.54);color:var(--paper);background:rgba(25,43,88,.98);text-align:center;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.floor-room.club-room { background:rgba(24,74,65,.98); }.floor-room b { max-width:100%;font-family:var(--f-display);font-size:clamp(.52rem,.9vw,.74rem);line-height:1.12;overflow-wrap:anywhere; }
.floor-room span { position:absolute;left:50%;bottom:calc(100% + .35rem);z-index:10;width:max-content;max-width:17rem;padding:.4rem .58rem;border:1px solid var(--gold);color:var(--paper);background:rgba(5,9,21,.98);font-size:.7rem;line-height:1.4;opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition:opacity .16s ease,transform .16s ease; }
.floor-room:hover,.floor-room:focus-visible { z-index:8;border-color:var(--gold-bright);box-shadow:0 0 20px rgba(237,208,139,.28);outline:none;transform:scale(1.035); }
.floor-room:hover span,.floor-room:focus-visible span { opacity:1;transform:translate(-50%,0); }.floor-room-empty { opacity:.42; }
.map-legend { display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 1.3rem;margin-top:1.1rem;color:var(--muted);font-size:.76rem; }.map-legend span { display:inline-flex;align-items:center;gap:.4rem; }.map-legend i { width:.9rem;height:.9rem;border:1px solid var(--line); }
.legend-class { background:#dceaf2; }.legend-club { background:#dcebd2; }.legend-route { background:#d7d9dc; }
.map-note,.schedule-note { margin:1rem 0 0;color:var(--muted);font-size:.78rem;text-align:center; }
.food-special-location { display:grid;grid-template-columns:minmax(12rem,.45fr) 7rem minmax(0,1fr);gap:clamp(1rem,3vw,2rem);align-items:center;margin-top:clamp(1.5rem,4vw,2.5rem);padding:clamp(1.15rem,3vw,2rem);border:1px solid rgba(237,208,139,.55);background:linear-gradient(110deg,rgba(237,208,139,.11),rgba(8,14,42,.94));box-shadow:var(--shadow); }
.food-special-location img { width:7rem;height:7rem;border:1px solid var(--gold);border-radius:50%;background:#fff;object-fit:cover; }
.food-special-location h3 { margin:.2rem 0 .5rem;font-size:clamp(1.25rem,3vw,2rem); }.food-special-location p { color:var(--paper-soft); }.food-special-location .section-tag { margin:0;color:var(--gold); }
.food-special-map { position:relative;display:grid;place-items:center;min-height:9rem;border:1px solid var(--line);background:rgba(7,16,42,.88);overflow:hidden; }
.food-special-map::before,.food-special-map::after { content:"";position:absolute;background:rgba(237,208,139,.18); }.food-special-map::before { left:12%;right:12%;top:50%;height:1px; }.food-special-map::after { top:12%;bottom:12%;left:35%;width:1px; }
.food-special-map span { position:absolute;left:.65rem;top:.55rem;color:var(--muted);font-size:.68rem; }.food-special-map b { padding:.6rem 1rem;border:1px solid var(--gold);color:var(--gold-bright);background:rgba(25,43,88,.96); }.food-special-map i { position:absolute;right:.65rem;bottom:.55rem;color:var(--paper);font-family:var(--f-display);font-style:normal; }
@media (max-width:760px){.map-explorer .container{padding-inline:0}.map-explorer .section-head,.map-floor-tabs,.map-note,.map-legend,.food-special-location{margin-inline:1.25rem}.floor-map-canvas{min-width:1080px}.compact-tab{padding-inline:1.2rem}.food-special-location{grid-template-columns:1fr 5rem}.food-special-location img{width:5rem;height:5rem}.food-special-location>div:last-child{grid-column:1/-1}.food-special-map{min-height:7.5rem}}

.food-map-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1.2rem,3vw,2rem); }
.campus-floor { overflow: hidden; border: 1px solid var(--line); background: rgba(5,9,21,.8); box-shadow: var(--shadow); }
.campus-floor > header { display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:rgba(237,208,139,.06); }
.campus-floor > header span { display:grid;place-items:center;width:3rem;height:3rem;color:var(--navy);background:var(--gold-bright);font-family:var(--f-display);font-weight:700; }
.campus-floor > header h3 { margin:0;font-size:clamp(1rem,2vw,1.35rem); }
.ground-plan { display:grid;grid-template-columns:minmax(7rem,1fr) minmax(7rem,.72fr) minmax(7rem,1fr);gap:1rem;min-height:38rem;padding:1.4rem; }
.booth-column { display:flex;flex-direction:column;justify-content:center;gap:.5rem; }
.map-room { position:relative;display:grid;place-items:center;min-height:4.2rem;padding:.65rem;border:1px solid rgba(237,208,139,.42);color:var(--paper);background:rgba(25,57,82,.94);text-align:center;text-decoration:none; }
.map-room span { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0); }
.ground-corridor { display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:2rem .5rem;border-inline:1px solid var(--line);color:var(--muted); }
.ground-corridor b { padding:.75rem .5rem;color:var(--navy);background:var(--gold-bright);writing-mode:vertical-rl; }
.entrance-plan { min-width:560px;min-height:38rem;padding:1.4rem; }
.entrance-label { width:fit-content;margin-bottom:2rem;padding:.45rem .8rem;border:1px solid var(--paper); }
.room-row { display:grid;grid-template-columns:repeat(auto-fit,minmax(5.2rem,1fr));gap:.45rem; }
.map-corridor { display:flex;align-items:center;justify-content:space-between;min-height:2.5rem;margin:.65rem 0;padding:.35rem 1rem;border-block:1px solid rgba(237,208,139,.24);color:var(--muted); }
.entrance-buildings { display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:7rem; }
.entrance-buildings span { min-height:7rem;display:grid;place-items:center;border:1px solid var(--line);color:var(--muted); }
@media (max-width:900px){.food-map-grid{grid-template-columns:1fr}.campus-floor{overflow-x:auto}}
@media (max-width:700px){.map-explorer .container{padding-inline:0}.map-explorer .section-head,.map-floor-tabs,.map-note,.map-legend{margin-inline:1.25rem}.floor-map-canvas{min-width:920px}.compact-tab{padding-inline:1.2rem}}


/* Exact source-map image overlays */
.floor-map-canvas.blueprint-canvas {
  width: 100%; min-width: 1040px; aspect-ratio: auto; overflow: hidden;
  background: #02030b;
}
.map-blueprint { display: block; width: 100%; height: auto; }
.map-hotspot,.food-hotspot {
  position: absolute; left: var(--x); top: var(--y); z-index: 5;
  width: var(--w); height: var(--h); min-width: 0;
  border: 1px solid rgba(237,208,139,.28); background: rgba(237,208,139,.035);
  text-decoration: none; transition: background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.map-hotspot:hover,.map-hotspot:focus-visible,.food-hotspot:hover,.food-hotspot:focus-visible {
  z-index: 8; border-color: var(--gold-bright); outline: none;
  background: rgba(237,208,139,.24); box-shadow: 0 0 0 2px rgba(5,9,21,.72),0 0 24px rgba(237,208,139,.32);
}
.map-hotspot span,.food-hotspot span {
  position: absolute; left: 50%; bottom: calc(100% + .38rem); z-index: 12;
  display: flex; gap: .45rem; align-items: baseline; width: max-content; max-width: 19rem;
  padding: .45rem .62rem; border: 1px solid var(--gold); color: var(--paper);
  background: rgba(5,9,21,.98); font-size: .72rem; line-height: 1.4;
  opacity: 0; pointer-events: none; transform: translate(-50%,.25rem);
  transition: opacity .16s ease,transform .16s ease;
}
.map-hotspot span b,.food-hotspot span b { color: var(--gold-bright); white-space: nowrap; }
.map-hotspot:hover span,.map-hotspot:focus-visible span,.food-hotspot:hover span,.food-hotspot:focus-visible span { opacity: 1; transform: translate(-50%,0); }
.campus-floor > header small { display:block; margin-top:.12rem; color:var(--muted); font-size:.66rem; }
.food-blueprint-scroll { width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.food-blueprint-wrap { position:relative; width:100%; min-width:520px; overflow:hidden; background:#05091d; }
.food-map-base { display:block; width:100%; height:auto; }
.food-hotspot { border-color:rgba(237,208,139,.2); background:rgba(237,208,139,.025); }
@media (max-width:760px){
  .floor-map-canvas.blueprint-canvas{min-width:980px}
  .food-map-grid{padding-inline:1.25rem}
  .food-blueprint-wrap{min-width:560px}
}

.map-blueprint[src$=".svg"] { image-rendering:auto; background:#05091d; }
