/* ===== CAMPUS TOUR ANIMATION ===== */
.campus-tour { padding: 80px 0; background: #0a1628; overflow: hidden; }
.campus-tour .section-title { color: #fff; }
.campus-tour .section-subtitle { color: rgba(255,255,255,0.6); }

.tour-stage {
  position: relative;
  width: 100%;
  height: 520px;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(180deg, #0d2137 0%, #1a3a6b 60%, #2d5a9e 100%);
  border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}

/* Sky */
.tour-sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0a1628 0%, #1a3a6b 50%, #2d5a9e 100%);
}

/* Stars */
.star {
  position: absolute;
  width: 2px; height: 2px;
  background: #fff;
  border-radius: 50%;
  animation: twinkle 3s infinite;
}
@keyframes twinkle { 0%,100%{opacity:0.2;} 50%{opacity:1;} }

/* Ground */
.tour-ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 140px;
  background: linear-gradient(180deg, #1e4d2b 0%, #2d6e3e 40%, #1a3d22 100%);
}
.tour-road {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40px;
  background: #2a2a2a;
}
.tour-road::after {
  content: '';
  position: absolute;
  top: 50%; left: 0; right: 0;
  height: 3px;
  background: repeating-linear-gradient(90deg, #f5c518 0px, #f5c518 40px, transparent 40px, transparent 80px);
  transform: translateY(-50%);
}

/* Clouds */
.cloud {
  position: absolute;
  background: rgba(255,255,255,0.12);
  border-radius: 50px;
  animation: cloudMove linear infinite;
}
.cloud::before, .cloud::after {
  content: '';
  position: absolute;
  background: rgba(255,255,255,0.12);
  border-radius: 50%;
}
@keyframes cloudMove { from{transform:translateX(-200px);} to{transform:translateX(110vw);} }

/* Sun / Moon */
.tour-sun {
  position: absolute;
  top: 30px; right: 80px;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd700, #ff8c00);
  border-radius: 50%;
  box-shadow: 0 0 30px #ffd700, 0 0 60px rgba(255,215,0,0.3);
  animation: sunPulse 4s ease-in-out infinite;
}
@keyframes sunPulse { 0%,100%{box-shadow:0 0 30px #ffd700,0 0 60px rgba(255,215,0,0.3);} 50%{box-shadow:0 0 50px #ffd700,0 0 100px rgba(255,215,0,0.5);} }

/* Buildings container - slides through */
.tour-buildings {
  position: absolute;
  bottom: 140px;
  left: 0;
  display: flex;
  align-items: flex-end;
  gap: 0;
  animation: tourScroll 10s linear infinite;
  width: max-content;
}
@keyframes tourScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Label above each building */
.bld-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 30px;
}
.bld-label {
  color: var(--secondary, #e8a020);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 8px;
  background: rgba(0,0,0,0.4);
  padding: 3px 10px;
  border-radius: 20px;
  white-space: nowrap;
}

/* Trees */
.tree {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  margin: 0 8px;
}
.tree-top {
  width: 0; height: 0;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-bottom: 36px solid #2d8a4e;
  animation: treeSway 3s ease-in-out infinite;
  transform-origin: bottom center;
}
.tree-trunk { width: 8px; height: 16px; background: #6b3a1f; }
@keyframes treeSway { 0%,100%{transform:rotate(-3deg);} 50%{transform:rotate(3deg);} }

/* People walking */
.person {
  position: absolute;
  bottom: 42px;
  animation: walk linear infinite;
}
.person svg { animation: personBob 0.5s ease-in-out infinite alternate; }
@keyframes walk { from{transform:translateX(-60px);} to{transform:translateX(110vw);} }
@keyframes personBob { from{transform:translateY(0);} to{transform:translateY(-3px);} }

/* Flag */
.flag-pole { position:absolute; bottom:140px; }
.flag-pole-stick { width:3px; height:60px; background:#aaa; }
.flag { width:30px; height:18px; background:#e8a020; animation:flagWave 1.5s ease-in-out infinite; transform-origin:left center; }
@keyframes flagWave { 0%,100%{transform:skewY(-5deg) scaleX(1);} 50%{transform:skewY(5deg) scaleX(0.9);} }

/* Tour label overlay */
.tour-overlay-label {
  position: absolute;
  top: 16px; left: 20px;
  background: rgba(0,0,0,0.5);
  color: #fff;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 0.82rem;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,0.2);
  display: flex; align-items: center; gap: 8px;
}
.tour-dot { width:8px; height:8px; background:#e8a020; border-radius:50%; animation:blink 1s infinite; }
@keyframes blink { 0%,100%{opacity:1;} 50%{opacity:0;} }

/* Speed control */
.tour-controls {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 20px;
}
.tour-btn {
  padding: 8px 20px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.08);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}
.tour-btn:hover, .tour-btn.active { background: var(--secondary, #e8a020); border-color: var(--secondary, #e8a020); }
