:root {
  --ink:#0b0d12; --ink-2:#12151c; --line:rgba(255,255,255,.1);
  --text:#eef0f4; --muted:#9aa1ad;
  --accent:#ff6a3d; --gold:#ffc94a; --leaf:#7bd35a; --sea:#45d0ff;
  --max:1200px; --gut:clamp(20px,5vw,56px);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ink); color:var(--text); font:400 16px/1.65 Inter,system-ui,sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
h1,h2,h3,h4 { font-family:Outfit,sans-serif; letter-spacing:-.02em; margin:0; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
.wrap { max-width:var(--max); margin:0 auto; padding:0 var(--gut); }
.mono { font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase; }

/* nav */
.nav { position:fixed; inset:0 0 auto; z-index:50; transition:background .35s, border-color .35s; border-bottom:1px solid transparent; }
.nav.scrolled { background:rgba(11,13,18,.72); backdrop-filter:blur(14px) saturate(1.4); -webkit-backdrop-filter:blur(14px) saturate(1.4); border-color:var(--line); }
.nav .wrap { display:flex; align-items:center; justify-content:space-between; height:72px; }
.brand { display:flex; align-items:center; gap:10px; font-family:Outfit; font-weight:800; font-size:20px; color:#fff; }
.brand .mark { width:30px; height:30px; border-radius:8px; background:var(--accent); display:grid; place-items:center; color:var(--ink); font-size:12px; font-weight:800; }
.links { display:flex; gap:30px; align-items:center; font-size:14px; font-weight:500; color:#c9ced8; }
.links a:not(.btn):hover, .links a.active { color:#fff; }
.links a.active { box-shadow:0 2px 0 var(--accent); }
@media (max-width:760px) { .links a.hide-sm { display:none; } .links { gap:18px; } }

.btn { display:inline-flex; align-items:center; gap:10px; font:600 14px Inter,sans-serif; padding:12px 20px; border-radius:10px; background:var(--accent); color:#16100c; border:0; cursor:pointer; transition:transform .2s, box-shadow .2s, background .2s; }
.btn:hover { transform:translateY(-2px); box-shadow:0 10px 30px -10px var(--accent); }
.btn.ghost { background:transparent; color:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.28); }
.btn.ghost:hover { box-shadow:inset 0 0 0 1px currentColor; }
.btn svg { width:16px; height:16px; }
.ctas { display:flex; gap:12px; flex-wrap:wrap; }

/* trailer */
.trailer { position:relative; aspect-ratio:16/9; border-radius:16px; overflow:hidden; background:#000; cursor:pointer; }
.trailer img, .trailer video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.trailer .play { position:absolute; inset:0; display:grid; place-items:center; background:linear-gradient(transparent 40%,rgba(0,0,0,.55)); transition:background .3s; }
.trailer .play span { width:84px; height:84px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.14); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:inset 0 0 0 1px rgba(255,255,255,.4); transition:transform .3s; }
.trailer:hover .play span { transform:scale(1.08); }
.trailer .play svg { width:28px; height:28px; margin-left:4px; fill:#fff; }
.trailer .label { position:absolute; left:20px; bottom:16px; font-size:13px; color:#fff; }
.trailer.playing .play, .trailer.playing .label, .trailer.playing img { display:none; }

/* gallery + lightbox */
.gal { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.gal button { all:unset; cursor:zoom-in; border-radius:12px; overflow:hidden; grid-column:span 2; position:relative; }
.gal button:nth-child(5n+1) { grid-column:span 4; grid-row:span 2; }
.gal img { width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1), filter .4s; }
.gal button:hover img { transform:scale(1.05); }
.gal button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media (max-width:760px) { .gal { grid-template-columns:1fr 1fr; } .gal button, .gal button:nth-child(5n+1) { grid-column:span 1; grid-row:auto; } .gal button:nth-child(3n+1) { grid-column:span 2; } }
.lb { position:fixed; inset:0; z-index:100; background:rgba(5,6,10,.92); display:none; align-items:center; justify-content:center; padding:4vw; }
.lb.open { display:flex; }
.lb img { max-height:88vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.6); }
.lb button { position:absolute; background:rgba(255,255,255,.1); color:#fff; border:0; width:48px; height:48px; border-radius:50%; font-size:22px; cursor:pointer; }
.lb .x { top:20px; right:20px; } .lb .p { left:20px; } .lb .n { right:20px; }

.widget iframe { display:block; width:100%; max-width:646px; height:190px; border:0; border-radius:12px; }

/* footer */
footer.site { border-top:1px solid var(--line); padding:28px 0; font-size:13px; color:var(--muted); background:var(--ink); }
footer.site .wrap { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
footer.site a:hover { color:#fff; }
footer.site .fl { display:flex; gap:24px; flex-wrap:wrap; }

/* reveal */
.rv { opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1); transition-delay:var(--d,0s); }
.rv.in { opacity:1; transform:none; }
.progress { position:fixed; top:0; left:0; height:2px; background:var(--accent); z-index:60; width:0; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .rv { opacity:1; transform:none; }
}
