/* ════════════════════════════════
   GLOBAL.CSS — shared across all pages
════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;700&family=Cormorant+Garamond:ital,wght@0,300;0,600;1,300;1,600&family=Space+Mono:ital@0;1&family=Bebas+Neue&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { width: 100%; height: 100%; }
body { font-family: 'Space Grotesk', sans-serif; cursor: none; }

/* ── CUSTOM CURSOR ── */
#cur {
  position: fixed; width: 10px; height: 10px; border-radius: 50%;
  pointer-events: none; z-index: 99999;
  transform: translate(-50%, -50%);
  transition: width .2s, height .2s, background .3s;
}
#cur-ring {
  position: fixed; width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.4);
  pointer-events: none; z-index: 99998;
  transform: translate(-50%, -50%);
  transition: width .35s, height .35s, border-color .3s;
}
body.hov #cur { width: 18px; height: 18px; }
body.hov #cur-ring { width: 60px; height: 60px; }

/* ── WORLD NAV ── */
.world-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 48px;
  backdrop-filter: blur(12px);
}
.wn-back {
  display: flex; align-items: center; gap: 10px;
  font-family: 'Space Mono', monospace; font-size: 10px;
  letter-spacing: .15em; text-transform: uppercase;
  background: none; border: none; cursor: none;
  text-decoration: none; transition: opacity .2s;
}
.wn-back:hover { opacity: .6; }
.wn-logo { font-family: 'Space Mono', monospace; font-size: 11px; letter-spacing: .2em; }
.wn-switcher { display: flex; gap: 8px; }
.wn-dot {
  width: 8px; height: 8px; border-radius: 50%;
  border: 1px solid currentColor; opacity: .3;
  cursor: none; transition: all .25s; display: block;
}
.wn-dot.active { opacity: 1; }
.wn-dot:hover { opacity: .7; transform: scale(1.3); }

/* ── SCROLL REVEAL ── */
.rv {
  opacity: 0; transform: translateY(32px);
  transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
}
.rv.in { opacity: 1; transform: none; }

/* ── ANIMATIONS ── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes orbFloat {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(40px,-50px) scale(1.1); }
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

/* ── LIGHTBOX ── */
#lightbox {
  position: fixed; inset: 0; z-index: 999;
  background: rgba(0,0,0,.92);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .35s; backdrop-filter: blur(8px);
}
#lightbox.open { opacity: 1; pointer-events: all; }
.lb-inner { position: relative; width: 90%; max-width: 960px; }
.lb-close {
  position: absolute; top: -48px; right: 0;
  background: none; border: none; color: #fff; cursor: none;
  opacity: .6; transition: opacity .2s;
  font-family: 'Space Mono', monospace; font-size: 10px;
  letter-spacing: .15em; text-transform: uppercase;
  display: flex; align-items: center; gap: 8px;
}
.lb-close:hover { opacity: 1; }
.lb-embed { aspect-ratio: 16/9; }
.lb-embed iframe { width: 100%; height: 100%; border: none; }

/* ════ TABLET ≤1024px ════ */
@media(max-width:1024px) {
  .world-nav { padding: 16px 32px; }
}
/* ════ MOBILE ≤768px ════ */
@media(max-width:768px) {
  #cur,#cur-ring { display: none; }
  body { cursor: auto; }
  a,button { cursor: pointer; }
  .world-nav { padding: 14px 20px; }
  .wn-back { font-size: 9px; }
  .wn-logo { font-size: 10px; }
  .lb-inner { width: 96%; }
  .lb-close { font-size: 9px; top: -36px; }
}
