/* WeekendVibe digital design tokens v1.0 — official brand tokens */
@import url('https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&display=swap');
:root {
 --wv-bg:#06122F; --wv-surface:#0A2054; --wv-blue:#086BFF; --wv-cyan:#00D9FF;
 --wv-gold:#FFC928; --wv-amber:#FF981A; --wv-violet:#8B36F5;
 --wv-white:#FFFFFF; --wv-muted:#C6D4EE; --wv-line:#28406A;
 --wv-font:'Onest',system-ui,-apple-system,sans-serif;
 --wv-radius-card:18px; --wv-radius-pill:999px;
 --wv-space-1:4px; --wv-space-2:8px; --wv-space-3:12px; --wv-space-4:16px;
 --wv-space-6:24px; --wv-space-8:32px; --wv-space-12:48px; --wv-space-16:64px;
 --wv-container:1200px;
 --wv-h1:clamp(42px,5.8vw,72px); --wv-h2:clamp(28px,3.4vw,40px);
 --wv-h3:clamp(23px,2.4vw,28px); --wv-h4:clamp(19px,1.9vw,22px);
 --wv-body-lg:clamp(16px,1.5vw,18px); --wv-body:16px; --wv-body-sm:14px;
}
body{font-family:var(--wv-font);background:var(--wv-bg);color:var(--wv-white);}
.wv-h1{font-size:var(--wv-h1);font-weight:800;line-height:.96;letter-spacing:-.035em;}
.wv-h2{font-size:var(--wv-h2);font-weight:700;line-height:1.12;letter-spacing:-.025em;}
.wv-h3{font-size:var(--wv-h3);font-weight:700;line-height:1.18;letter-spacing:-.02em;}
.wv-h4{font-size:var(--wv-h4);font-weight:700;line-height:1.25;}
.wv-body-lg{font-size:var(--wv-body-lg);font-weight:400;line-height:1.5;}
.wv-body{font-size:var(--wv-body);font-weight:400;line-height:1.6;}
.wv-body-sm{font-size:var(--wv-body-sm);line-height:1.5;}
.wv-eyebrow{font-size:13px;font-weight:700;line-height:1.4;letter-spacing:.16em;text-transform:uppercase;}
.wv-highlight{color:var(--wv-gold);}
.wv-highlight-cyan{color:var(--wv-cyan);}
.wv-muted{color:var(--wv-muted);}
.wv-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:12px 24px;border-radius:var(--wv-radius-pill);font:700 15px/1.2 var(--wv-font);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease;}
.wv-btn-primary{background:var(--wv-gold);color:var(--wv-bg);}
.wv-btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 26px rgba(255,201,40,.45);}
.wv-btn-outline{border:1.5px solid var(--wv-white);color:var(--wv-white);background:transparent;}
.wv-btn-outline:hover{border-color:var(--wv-cyan);color:var(--wv-cyan);box-shadow:0 0 20px rgba(0,217,255,.3);}
.wv-card-experiences{border:1.5px solid var(--wv-gold);border-radius:var(--wv-radius-card);box-shadow:0 0 30px rgba(255,201,40,.28),inset 0 0 20px rgba(255,201,40,.08);transition:box-shadow .3s ease,transform .3s ease;}
.wv-card-experiences:hover{box-shadow:0 0 45px rgba(255,201,40,.55),0 0 16px rgba(255,152,26,.3);transform:translateY(-3px);}
.wv-card-academy{border:1.5px solid var(--wv-cyan);border-radius:var(--wv-radius-card);box-shadow:0 0 30px rgba(0,217,255,.32),inset 0 0 20px rgba(0,217,255,.08);transition:box-shadow .3s ease,transform .3s ease;}
.wv-card-academy:hover{box-shadow:0 0 45px rgba(0,217,255,.6),0 0 16px rgba(8,107,255,.35);transform:translateY(-3px);}
.wv-gradient-atmosphere{background:radial-gradient(ellipse at 45% 0%,rgba(8,107,255,.35),transparent 60%),var(--wv-bg);}
.wv-container{width:min(calc(100% - 40px),var(--wv-container));margin-inline:auto;}
@media(max-width:600px){.wv-eyebrow{font-size:12px}.wv-container{width:calc(100% - 32px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* WeekendVibe semantic treatments */
.wv-text-gold{color:var(--wv-gold)}
.wv-text-cyan{color:var(--wv-cyan)}
.wv-text-amber{color:var(--wv-amber)}
.wv-label-city{font:800 clamp(24px,2.6vw,36px)/1 var(--wv-font);letter-spacing:-.025em;text-transform:uppercase}
.wv-nav{font:600 15px/1.3 var(--wv-font)}
.wv-special-date{font:800 clamp(36px,4.2vw,56px)/1.05 var(--wv-font);letter-spacing:-.035em;color:var(--wv-gold)}
.wv-icon{width:28px;height:28px;flex:none;color:var(--wv-gold)}
.wv-icon svg{width:100%;height:100%;stroke:currentColor}
:focus-visible{outline:3px solid var(--wv-cyan);outline-offset:3px}

/* Ambient glow & accents */
.wv-glow-gold{box-shadow:0 0 24px rgba(255,201,40,.35)}
.wv-glow-cyan{box-shadow:0 0 24px rgba(0,217,255,.4)}
.wv-glow-violet{box-shadow:0 0 24px rgba(139,54,245,.35)}
.wv-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,201,40,.5),transparent)}
.wv-vert-divider{width:1px;height:22px;background:rgba(198,212,238,.28)}

/* Entrance animation package */
@keyframes wvFadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes wvFade{from{opacity:0}to{opacity:1}}
@keyframes wvPulse{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes wvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.wv-fade-up{animation:wvFadeUp .85s cubic-bezier(.16,1,.3,1) both}
.wv-fade{animation:wvFade .9s ease both}
.wv-pulse{animation:wvPulse 3.5s ease-in-out infinite}
.wv-float{animation:wvFloat 8s ease-in-out infinite}
.wv-delay-1{animation-delay:.12s}
.wv-delay-2{animation-delay:.24s}
.wv-delay-3{animation-delay:.36s}
.wv-delay-4{animation-delay:.48s}
