:root{
  --bg:#0a0b08;
  --bg-2:#12140f;
  --olive:#3d4a2c;
  --olive-2:#5a6b3d;
  --accent:#ff7a1a;
  --accent-2:#ffb347;
  --ink:#eef0e6;
  --ink-dim:#a8ac9c;
  --line:rgba(238,240,230,0.1);
  --radius:16px;
  --ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  line-height:1.5;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{margin:0 0 .4em;font-family:'Anton','Segoe UI',Arial,sans-serif;font-weight:400;letter-spacing:.01em;text-transform:uppercase;}
.kicker,.tag,.links a,.btn,.nav .brand span{font-family:'Oswald',Arial,sans-serif;}

::selection{background:var(--accent);color:#0a0b08;}
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--olive-2);border-radius:6px;}
::-webkit-scrollbar-thumb:hover{background:var(--accent);}

.spotlight{
  position:fixed;inset:0;pointer-events:none;z-index:150;
  background:radial-gradient(600px circle at var(--x,50%) var(--y,50%), rgba(255,178,71,.06), transparent 60%);
  transition:opacity .3s;
}
@media (hover:none){.spotlight{display:none;}}

.grain{
  position:fixed;inset:0;pointer-events:none;z-index:200;opacity:.04;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(10,11,8,0);
  border-bottom:1px solid transparent;
  transition:background .3s var(--ease),border-color .3s var(--ease),backdrop-filter .3s;
}
.nav.scrolled{
  background:rgba(10,11,8,0.75);
  backdrop-filter:blur(14px) saturate(1.2);
  border-color:var(--line);
}
.nav-inner{
  max-width:1200px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;
}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.05rem;letter-spacing:.02em;}
.brand img{width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5));}
.brand em{display:block;font-style:normal;color:var(--accent);font-size:.7em;letter-spacing:.15em;}
.links{display:flex;align-items:center;gap:28px;}
.links a{font-size:.92rem;color:var(--ink-dim);transition:color .2s;}
.links a:hover{color:var(--ink);}
.links a.cta{
  color:#0a0b08;background:var(--accent);padding:9px 18px;border-radius:999px;font-weight:700;
  box-shadow:0 6px 20px -6px rgba(255,122,26,.7);
}
.links a.cta:hover{background:var(--accent-2);}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.burger span{width:24px;height:2px;background:var(--ink);display:block;transition:transform .25s,opacity .25s;}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;
  perspective:1200px;
}
.hero-bg{
  position:absolute;inset:-5%;background-size:cover;background-position:center;
  transform:scale(1.08);will-change:transform;
}
.hero-particles{
  position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:screen;
}
.hero-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(10,11,8,.55) 0%, rgba(10,11,8,.35) 40%, rgba(10,11,8,.95) 100%),
    linear-gradient(90deg, rgba(10,11,8,.9) 0%, rgba(10,11,8,.15) 55%);
}
.hero-soldier{
  position:absolute;right:-40px;bottom:0;height:88%;max-height:800px;width:auto;
  filter:drop-shadow(0 30px 40px rgba(0,0,0,.6));
  will-change:transform;
  animation:float 6s ease-in-out infinite;
  z-index:2;
}
@keyframes float{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-18px) rotate(-1.2deg);}
}
.hero-content{position:relative;z-index:3;max-width:1200px;margin:0 auto;padding:0 24px;width:100%;}
.kicker{
  color:var(--accent-2);text-transform:uppercase;letter-spacing:.25em;font-size:.78rem;font-weight:700;margin:0 0 14px;
}
.hero h1{font-size:clamp(3rem,9vw,6.5rem);line-height:.92;text-transform:uppercase;}
.hero h1 .line{display:block;transform-style:preserve-3d;}
.hero h1 .accent{color:var(--accent);text-shadow:0 0 40px rgba(255,122,26,.5);}
.hero-sub{max-width:520px;color:var(--ink-dim);font-size:1.1rem;margin:18px 0 32px;}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;}

.btn{
  display:inline-block;padding:15px 28px;border-radius:999px;font-weight:700;font-size:.95rem;
  transition:transform .2s var(--ease),box-shadow .3s var(--ease),background .2s;
  transform:translate(calc(var(--mx,0) * 1px), calc(var(--my,0) * 1px));
}
.btn-primary{background:var(--accent);color:#0a0b08;box-shadow:0 10px 30px -8px rgba(255,122,26,.6);}
.btn-primary:hover{transform:translate(calc(var(--mx,0) * 1px), calc(var(--my,0) * 1px)) translateY(-3px) scale(1.03);box-shadow:0 16px 36px -8px rgba(255,122,26,.8);}
.btn-ghost{border:1px solid var(--line);color:var(--ink);backdrop-filter:blur(6px);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent-2);transform:translate(calc(var(--mx,0) * 1px), calc(var(--my,0) * 1px)) translateY(-3px);}

.scroll-hint{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  color:var(--ink-dim);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
}
.scroll-hint span{
  width:1px;height:34px;background:linear-gradient(var(--accent),transparent);
  animation:scrolldown 1.8s ease-in-out infinite;
}
@keyframes scrolldown{
  0%{opacity:0;transform:scaleY(0);transform-origin:top;}
  50%{opacity:1;transform:scaleY(1);transform-origin:top;}
  100%{opacity:0;transform:scaleY(1);transform-origin:bottom;}
}

/* ---------- stats ---------- */
.stats{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.stats-inner{
  max-width:1200px;margin:0 auto;padding:40px 24px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center;
}
.stat strong{display:block;font-size:2.4rem;color:var(--accent);font-weight:800;font-variant-numeric:tabular-nums;}
.stat strong small{font-size:1rem;color:var(--ink-dim);margin-left:2px;}
.stat span{color:var(--ink-dim);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;}

/* ---------- sections ---------- */
.section{max-width:1200px;margin:0 auto;padding:110px 24px;}
.section-head{max-width:640px;margin:0 auto 56px;text-align:center;}
.section-head h2{font-size:clamp(1.9rem,4vw,2.8rem);}
.section-sub{color:var(--ink-dim);font-size:1.05rem;}
.tag{
  display:inline-block;background:rgba(255,122,26,.14);color:var(--accent-2);
  padding:4px 12px;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
}

/* ---------- tilt cards (terreinen) ---------- */
.tilt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;}
.tilt-card{perspective:1400px;}
.tilt-card-inner{
  position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  transform-style:preserve-3d;transition:transform .15s ease-out,box-shadow .3s;
  box-shadow:0 20px 50px -20px rgba(0,0,0,.7);
}
.tilt-card-inner::after,.price-card::after,.testi-card::after{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(280px circle at var(--gx,50%) var(--gy,50%), rgba(255,255,255,.14), transparent 60%);
}
.tilt-card:hover .tilt-card-inner::after,.price-card:hover::after,.testi-card:hover::after{opacity:1;}
.tilt-card-inner img{height:280px;width:100%;object-fit:cover;transform:translateZ(30px) scale(1.02);}
.tilt-card-body{padding:26px 26px 30px;transform:translateZ(40px);}
.tilt-card-body h3{font-size:1.5rem;}
.tilt-card-body p{color:var(--ink-dim);}

/* ---------- festival ---------- */
.festival{
  position:relative;max-width:none;background:var(--bg-2);
  clip-path:polygon(0 4vw,100% 0,100% calc(100% - 4vw),0 100%);
  padding-top:calc(110px + 4vw);padding-bottom:calc(110px + 4vw);margin:-4vw 0;
}
.festival > *{max-width:1200px;margin-left:auto;margin-right:auto;}
.festival .festival-badge-wrap{max-width:none;}
.festival-badge-wrap{text-align:center;margin-bottom:10px;}
.festival-sticker{max-width:280px;margin:0 auto;filter:drop-shadow(0 12px 24px rgba(0,0,0,.5));}
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-bottom:60px;}
.price-card{
  position:relative;overflow:hidden;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;
  perspective:1000px;transform-style:preserve-3d;transition:transform .15s ease-out,border-color .3s;
}
.price-card.highlight{background:linear-gradient(160deg,rgba(255,122,26,.18),var(--bg-2) 60%);border-color:rgba(255,122,26,.4);}
.price-card h3{font-size:1.15rem;}
.price-card .muted{color:var(--ink-dim);font-size:.85rem;margin:0 0 14px;}
.price-card .price{font-size:2.2rem;color:var(--accent-2);font-weight:800;}
.extras li{display:flex;justify-content:space-between;color:var(--ink-dim);padding:6px 0;border-bottom:1px dashed var(--line);}
.extras li span{color:var(--accent-2);font-weight:700;}

.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.info-block{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:26px;}
.info-block h4{color:var(--accent-2);font-size:1rem;text-transform:uppercase;letter-spacing:.06em;}
.info-block p{color:var(--ink-dim);font-size:.95rem;}
.fps-list li{display:flex;justify-content:space-between;color:var(--ink-dim);padding:6px 0;border-bottom:1px dashed var(--line);}
.fps-list li span{color:var(--accent-2);font-weight:700;}

/* ---------- gallery ---------- */
.gallery-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.gallery-grid img{
  width:100%;height:220px;object-fit:cover;border-radius:10px;cursor:pointer;
  transition:transform .4s var(--ease),filter .4s;
  filter:grayscale(.15) contrast(1.05);
}
.gallery-grid img:hover{transform:scale(1.05) translateY(-4px) rotate(-0.5deg);filter:grayscale(0) contrast(1.1);box-shadow:0 20px 40px -12px rgba(0,0,0,.7);}

/* ---------- testimonials ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.testi-card{
  position:relative;overflow:hidden;margin:0;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:32px;
  perspective:1000px;transform-style:preserve-3d;transition:transform .15s ease-out;
}
.testi-card p{font-size:1.15rem;font-style:italic;margin:0 0 16px;}
.testi-card footer{color:var(--accent-2);font-weight:700;font-size:.9rem;}

/* ---------- partners ---------- */
.partner-row{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;}
.partner-row a{
  color:var(--ink-dim);font-weight:700;font-size:1.05rem;padding:14px 26px;border:1px solid var(--line);border-radius:999px;
  transition:all .25s var(--ease);
}
.partner-row a:hover{color:var(--accent-2);border-color:var(--accent);transform:translateY(-3px);}

/* ---------- cta band ---------- */
.cta-band{
  position:relative;text-align:center;padding:120px 24px 100px;background:
    radial-gradient(ellipse at 50% 0%,rgba(255,122,26,.14),transparent 60%),var(--bg-2);
  clip-path:polygon(0 4vw,100% 0,100% 100%,0 100%);margin-top:-4vw;
}
.cta-band h2{font-size:clamp(1.8rem,4vw,2.6rem);}
.cta-band p{color:var(--ink-dim);margin-bottom:30px;}
.cta-band .hero-actions{justify-content:center;}
.social-row{display:flex;justify-content:center;gap:24px;margin-top:36px;}
.social-row a{color:var(--ink-dim);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;transition:color .2s;}
.social-row a:hover{color:var(--accent-2);}

.footer{text-align:center;padding:30px 24px;color:var(--ink-dim);font-size:.8rem;}
.ask-your-mom{opacity:.4;margin-top:4px;}

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed;inset:0;background:rgba(5,6,4,.94);z-index:300;display:none;align-items:center;justify-content:center;padding:40px;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:90vw;max-height:85vh;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.8);}
.lightbox-close{
  position:absolute;top:24px;right:32px;background:none;border:0;color:var(--ink);font-size:2.4rem;cursor:pointer;line-height:1;
}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(40px) rotateX(6deg);transform-origin:top center;transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0) rotateX(0);}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .links{
    position:fixed;top:64px;left:0;right:0;background:rgba(10,11,8,.97);backdrop-filter:blur(14px);
    flex-direction:column;padding:20px;gap:6px;transform:translateY(-130%);transition:transform .3s var(--ease);border-bottom:1px solid var(--line);
  }
  .links.open{transform:translateY(0);}
  .links a{padding:12px 8px;width:100%;}
  .burger{display:flex;}
  .tilt-grid,.testi-grid,.price-grid,.info-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .stats-inner{grid-template-columns:repeat(2,1fr);}
  .hero-soldier{opacity:.35;right:-80px;}
}
