body { letter-spacing: -0.01em; }
.nav-link { transition: opacity 0.15s; }
.nav-link:hover { opacity: 0.5; }

/* ---- Scroll reveal system ---- */
.reveal {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.45s ease, transform 0.45s ease;
}
.reveal-stagger.is-visible > *:nth-child(1)  { opacity: 1; transform: translateY(0); transition-delay: 0.05s; }
.reveal-stagger.is-visible > *:nth-child(2)  { opacity: 1; transform: translateY(0); transition-delay: 0.13s; }
.reveal-stagger.is-visible > *:nth-child(3)  { opacity: 1; transform: translateY(0); transition-delay: 0.21s; }
.reveal-stagger.is-visible > *:nth-child(4)  { opacity: 1; transform: translateY(0); transition-delay: 0.29s; }
.reveal-stagger.is-visible > *:nth-child(5)  { opacity: 1; transform: translateY(0); transition-delay: 0.37s; }
.reveal-stagger.is-visible > *:nth-child(6)  { opacity: 1; transform: translateY(0); transition-delay: 0.45s; }
.reveal-stagger.is-visible > *:nth-child(7)  { opacity: 1; transform: translateY(0); transition-delay: 0.53s; }
.reveal-stagger.is-visible > *:nth-child(8)  { opacity: 1; transform: translateY(0); transition-delay: 0.61s; }

/* Modal */
.modal-overlay { background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); transition: opacity 0.25s ease; }
.modal-overlay.is-open { opacity: 1 !important; pointer-events: auto !important; }
.modal-overlay.is-open .modal-panel { transform: translateY(0) !important; }
.modal-panel { transition: transform 0.3s ease; }

/* Mobile program pill nav */
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }
.scrollbar-hide::-webkit-scrollbar { display: none; }

/* Static image label (desktop discipline rows) */
.img-label { position:absolute; bottom:10px; left:10px; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; background:rgba(255,255,255,0.92); color:#000; padding:2px 8px; pointer-events:none; user-select:none; }

/* Media navigator arrow idle pulse */
@keyframes arrow-idle {
  0%, 55%, 100% { transform: scale(1); box-shadow: 0 2px 8px rgba(0,0,0,0.10); }
  28%            { transform: scale(1.22); box-shadow: 0 5px 16px rgba(0,0,0,0.18); }
}

/* ---- About page: interactive method triangle ---- */
.method-edge { stroke:#111; stroke-width:2; opacity:0.15; transition: opacity 0.25s ease; }
.method-edge.is-active { opacity:0.9; }

#method-center-circle { fill:#fff; stroke:#111; stroke-width:2; opacity:0.2; transition: opacity 0.25s ease; }
#method-center-circle.is-active { opacity:0.9; }

.method-center, .method-node-label {
  width:100%; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; font-family:'Inter',sans-serif;
}
.method-center-title {
  font-size:15px; font-weight:900; letter-spacing:0.02em; text-transform:uppercase; color:#111;
}
.method-center-sub {
  font-size:10px; font-weight:600; letter-spacing:0.03em; text-transform:uppercase; color:rgba(0,0,0,0.5);
  margin-top:3px; line-height:1.3;
}

.method-node { cursor:pointer; transform-box: fill-box; transform-origin: center; transition: transform 0.25s ease, opacity 0.25s ease; }
.method-node:focus { outline:none; }
.method-node-circle { fill:#111; transition: fill 0.25s ease; }
.method-node-title { font-size:13px; font-weight:800; letter-spacing:0.02em; text-transform:uppercase; color:#fff; }
.method-node-sub { font-size:10px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:rgba(255,255,255,0.65); margin-top:2px; }

.method-node:hover, .method-node.is-active { transform: scale(1.08); }
.method-node.is-dimmed { opacity:0.4; }

/* ---- Schedule page: booking wizard ---- */
.sched-card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 116px;
  padding: 1.75rem 1.5rem;
  border: 1.5px solid rgba(0,0,0,0.15);
  border-radius: 1rem;
  font-size: 0.95rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-align: center;
  background: #fff;
  color: #000;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.sched-card:hover, .sched-card:focus-visible { border-color: #000; background: #000; color: #fff; }
.sched-card:active { transform: scale(0.97); }

.sched-select {
  width: 100%;
  padding: 0.9rem 1.1rem;
  border: 1.5px solid rgba(0,0,0,0.15);
  border-radius: 0.75rem;
  font-size: 0.9rem;
  font-weight: 600;
  background: #fff;
  color: #000;
  cursor: pointer;
  transition: border-color 0.2s ease;
}
.sched-select:hover, .sched-select:focus-visible { border-color: #000; outline: none; }

.sched-screen { transition: opacity 0.2s ease; }
.sched-screen.hidden { display: none; }

/* ---- Header nav dropdown (Program) ---- */
.nav-dropdown-panel {
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
.nav-dropdown:hover .nav-dropdown-panel,
.nav-dropdown.is-open .nav-dropdown-panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ---- Mobile nav panel ---- */
.mobile-nav-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.mobile-nav-panel.is-open { max-height: 600px; }
