:root{
  --bg:#060606;
  --panel:#111111;
  --panel-2:#1a1a1a;
  --white:#ffffff;
  --mute:#8a8a8a;
  --mute-dim:#5c5c5c;
  --line:#232323;
  --accent:#ff3da6;
  --accent-dim:#c22c7c;
  --accent-2:#ff8a3d;
  --maxw:1240px;
  --ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--white);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.55;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;}
::selection{background:var(--accent);color:#000;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,64px);}

.eyebrow{
  font-family:'Space Mono',monospace;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
}

h1,h2,h3{
  font-family:'Quicksand',sans-serif;
  font-weight:700;
  text-transform:uppercase;
  line-height:1.05;
  letter-spacing:.01em;
}

/* noise texture overlay */
body::before{
  content:"";
  position:fixed;inset:0;
  z-index:2000;
  pointer-events:none;
  opacity:.035;
  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");
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Inter',sans-serif;
  font-weight:600;
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:16px 30px;
  border-radius:999px;
  border:1px solid transparent;
  transition:transform .3s var(--ease),background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
  white-space:nowrap;
}
.btn-solid{background:var(--accent);color:#050505;}
.btn-solid:hover{background:var(--white);transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--white);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;}

/* ---------- NAV ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:500;
  background:rgba(6,6,6,.7);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;
  padding:20px clamp(20px,5vw,64px);
  display:flex;align-items:center;justify-content:space-between;
}
.logo{
  font-family:'Quicksand',sans-serif;
  font-size:18px;
  letter-spacing:.04em;
  text-transform:uppercase;
  display:flex;align-items:center;gap:8px;
}
.logo .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);}
.nav-links{display:flex;gap:34px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;}
.nav-links a{opacity:.75;transition:opacity .2s,color .2s;position:relative;}
.nav-links a:hover{opacity:1;color:var(--accent);}
.nav-cta{display:none;}
@media(min-width:760px){.nav-cta{display:inline-flex;}}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:flex-end;
  gap:6px;
  width:34px;height:34px;
  background:none;border:none;
  padding:0;
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  width:100%;height:2px;
  background:var(--white);
  border-radius:2px;
  transition:transform .3s var(--ease), opacity .3s var(--ease), width .3s var(--ease);
}
.nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg);width:100%;}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);width:100%;}

.nav-dropdown{
  display:none;
  flex-direction:column;
  gap:2px;
  padding:6px clamp(20px,5vw,64px) 24px;
  background:rgba(6,6,6,.97);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-dropdown a{
  padding:15px 0;
  font-family:'Space Mono',monospace;
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--white);
  border-bottom:1px solid var(--line);
}
.nav-dropdown a:hover{color:var(--accent);}
.nav-dropdown .btn{
  display:inline-flex;
  border-bottom:none;
  padding:15px 30px;
}
.nav-dropdown.open{display:flex;}

.nav-call{
  display:none;
  align-items:center;
  gap:6px;
  background:var(--accent);
  color:#050505;
  font-family:'Space Mono',monospace;
  font-weight:700;
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:9px 14px;
  border-radius:999px;
}
.nav-call svg{width:14px;height:14px;}

@media(max-width:759px){
  .nav-inner{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
  }
  .logo{grid-column:2;justify-self:center;align-self:center;text-align:center;white-space:nowrap;font-size:clamp(11px,3.6vw,16px);gap:5px;position:relative;top:25px;}
  .nav-links{display:none;}
  .nav-toggle{grid-column:1;display:flex;justify-self:start;}
  .nav-call{grid-column:3;display:inline-flex;justify-self:end;}
}
@media(min-width:760px){
  .nav-dropdown{display:none !important;}
}

/* ---------- HERO SLIDER ---------- */
.hero{
  position:relative;
  min-height:100svh;
  overflow:hidden;
  background:var(--bg);
}
.eq-bg{
  position:absolute;
  left:0;right:0;bottom:0;
  height:34%;
  display:flex;
  align-items:flex-end;
  gap:clamp(3px,.6vw,7px);
  padding:0 clamp(10px,4vw,40px);
  opacity:.16;
  z-index:0;
  pointer-events:none;
}
.eq-bg span{
  flex:1;
  background:linear-gradient(to top,var(--accent),transparent);
  border-radius:3px 3px 0 0;
  animation:eq 2.4s ease-in-out infinite;
  transform-origin:bottom;
}
@keyframes eq{
  0%,100%{transform:scaleY(.15);}
  50%{transform:scaleY(1);}
}
.hero::after{
  content:"";
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 20%, rgba(124,255,112,.08), transparent 55%),
             linear-gradient(180deg, rgba(6,6,6,0) 0%, rgba(6,6,6,.5) 70%, var(--bg) 100%);
  z-index:1;
  pointer-events:none;
}
.slider-track{
  position:relative;z-index:2;
  min-height:100svh;
  display:flex;
}
.slide{
  min-width:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-top:120px;
  padding-bottom:100px;
  opacity:0;
  transition:opacity .8s var(--ease);
  position:absolute;inset:0;
  display:flex;
}
.slide.active{position:relative;opacity:1;}
.slide-bg{
  position:absolute;inset:0;z-index:-1;overflow:hidden;
}
.slide-bg img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(.25) brightness(.55) contrast(1.05);
  transform:scale(1.06);
  transition:transform 8s linear;
}
.slide.active .slide-bg img{transform:scale(1);}
.slide-bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(6,6,6,.55) 0%, rgba(6,6,6,.35) 35%, rgba(6,6,6,.85) 100%),
    linear-gradient(90deg, rgba(6,6,6,.75) 0%, rgba(6,6,6,.15) 55%);
}
.slide-inner{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,64px);width:100%;}
.slide-eyebrow{margin-bottom:18px;}
.slide-title{
  font-size:clamp(46px,9vw,124px);
  margin-bottom:10px;
}
.slide-title .line{display:block;overflow:hidden;}
.slide-title .line span{
  display:inline-block;
  transform:translateY(110%);
  transition:transform .8s var(--ease);
}
.slide.active .slide-title .line span{transform:translateY(0);}
.slide-title .accent{color:var(--accent);}
.nowrap-glue{white-space:nowrap;}
.slide-sub{
  max-width:560px;
  font-size:clamp(15px,1.8vw,18px);
  color:var(--mute);
  margin:22px 0 34px;
  opacity:0;
  transform:translateY(14px);
  transition:opacity .7s var(--ease) .3s, transform .7s var(--ease) .3s;
}
.slide.active .slide-sub{opacity:1;transform:translateY(0);}
.slide-ctas{
  opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--ease) .45s, transform .7s var(--ease) .45s;
}
.slide.active .slide-ctas{opacity:1;transform:translateY(0);}

.slider-nav{
  position:absolute;
  bottom:34px;left:0;right:0;
  z-index:3;
  display:flex;align-items:center;justify-content:center;gap:22px;
}
.slider-arrow{
  width:42px;height:42px;border-radius:50%;
  border:1px solid var(--line);
  background:rgba(255,255,255,.02);
  display:flex;align-items:center;justify-content:center;
  color:var(--white);
  transition:border-color .25s,color .25s;
}
.slider-arrow:hover{border-color:var(--accent);color:var(--accent);}
.slider-dots{display:flex;gap:10px;}
.slider-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--line);
  transition:background .25s,transform .25s;
}
.slider-dot.active{background:var(--accent);transform:scale(1.3);}

.hero-photo{
  position:absolute;
  right:clamp(16px,6vw,80px);
  top:130px;
  width:120px;height:120px;
  border-radius:50%;
  overflow:hidden;
  border:2px solid var(--accent);
  box-shadow:0 0 0 8px rgba(124,255,112,.08), 0 30px 60px rgba(0,0,0,.6);
  z-index:3;
}
.hero-photo img{width:100%;height:100%;object-fit:cover;}
@media(max-width:820px){.hero-photo{display:none;}}

/* ---------- TICKER ---------- */
.ticker{
  position:relative;z-index:2;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  overflow:hidden;
  background:var(--panel);
  padding:16px 0;
}
.ticker-track{display:flex;width:max-content;animation:ticker 34s linear infinite;}
.ticker-item{
  font-family:'Space Mono',monospace;
  font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mute);
  padding:0 28px;white-space:nowrap;
  border-right:1px solid var(--line);
}
.ticker-item .dot{color:var(--accent);margin-right:8px;}
@keyframes ticker{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- SECTION shell ---------- */
section{padding:clamp(70px,10vw,140px) 0;position:relative;}
.section-panel{background:var(--panel);}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}

.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  flex-wrap:wrap;gap:16px;
  margin-bottom:48px;
}
.section-title{font-size:clamp(30px,4.6vw,56px);}
.section-title .accent{color:var(--accent);}

/* ---------- ABOUT ---------- */
.about-grid{
  display:grid;
  grid-template-columns:300px 1fr;
  gap:clamp(32px,6vw,80px);
  align-items:start;
}
@media(max-width:800px){.about-grid{grid-template-columns:1fr;}}
.about-photo-frame{
  position:relative;
  aspect-ratio:1;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  max-width:300px;
}
.about-photo-frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15) contrast(1.05);}
.about-photo-frame::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%, rgba(6,6,6,.7));
}
.about-bio{
  font-size:17px;
  color:#b9b9b9;
  max-width:62ch;
  margin-bottom:28px;
}
.services-row{
  font-family:'Space Mono',monospace;
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  display:flex;flex-wrap:wrap;gap:10px 0;
  margin-bottom:30px;padding-top:18px;
  border-top:1px solid var(--line);
}
.services-row span:not(:last-child)::after{content:" / ";color:var(--accent);}
.social-row{display:flex;gap:16px;margin-bottom:30px;}
.social-row a{
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  border-bottom:1px solid var(--white);padding-bottom:2px;
}
.social-row a:hover{color:var(--accent);border-color:var(--accent);}

/* ---------- STATS ---------- */
.stats-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:40px;
  border-top:1px solid var(--line);padding-top:50px;
}
@media(max-width:720px){
  .stats-grid{grid-template-columns:1fr;gap:36px;}
  .stat-num{font-size:clamp(24px,7vw,34px);}
}
.stat-item{
  position:relative;
  padding-left:28px;
}
.stat-item::before{
  content:"";
  position:absolute;left:0;top:6px;bottom:6px;
  width:1px;background:var(--line);
}
.stats-grid .stat-item:first-child::before{display:none;}
@media(max-width:720px){.stat-item::before{display:none;}}
.stat-icon{
  width:30px;height:30px;
  color:var(--accent);
  margin-bottom:18px;
}
.stat-num{
  font-family:'Quicksand',sans-serif;
  font-size:clamp(14px,2vw,28px);
  white-space:nowrap;
  overflow:hidden;
  color:var(--accent);
  margin-bottom:10px;
}
.stat-label{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);}

/* ---------- VIDEO CAROUSEL ---------- */
.video-carousel-wrap{position:relative;}
.video-carousel{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding-bottom:8px;
  scrollbar-width:none;
}
.video-carousel::-webkit-scrollbar{display:none;}
.video-card{
  position:relative;
  flex:0 0 auto;
  width:min(220px,68vw);
  aspect-ratio:9/16;
  border-radius:16px;
  overflow:hidden;
  background:var(--panel-2);
  border:1px solid var(--line);
  scroll-snap-align:start;
}
.video-card video{
  width:100%;height:100%;object-fit:cover;
  background:#000;
}
.video-card .vc-label{
  position:absolute;left:12px;right:12px;bottom:12px;z-index:2;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.06em;
  color:var(--white);text-transform:uppercase;
  display:flex;align-items:center;gap:6px;
  pointer-events:none;
  text-shadow:0 2px 8px rgba(0,0,0,.8);
}
.video-card .vc-label .dot{color:var(--accent);}
.carousel-arrows{display:flex;gap:12px;justify-content:flex-end;margin-top:22px;}

/* ---------- GALLERY STRIP ---------- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}
.gallery-grid a{
  position:relative;
  overflow:hidden;
  border-radius:10px;
  aspect-ratio:16/9;
}
.gallery-grid img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(.3) brightness(.8);
  transition:transform .5s var(--ease), filter .5s var(--ease);
}
.gallery-grid a:hover img{transform:scale(1.07);filter:grayscale(0) brightness(1);}
@media(max-width:640px){
  .gallery-grid{grid-template-columns:1fr;}
}

/* ---------- SERVICES / OFFER GRID ---------- */
.offer-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1px;background:var(--line);border:1px solid var(--line);
}
.offer-card{background:var(--bg);padding:38px 28px;transition:background .3s;}
.offer-card:hover{background:var(--panel);}
.offer-num{font-family:'Space Mono',monospace;font-size:12px;color:var(--accent);margin-bottom:22px;display:block;}
.offer-card h3{font-size:24px;margin-bottom:12px;}
.offer-card p{color:var(--mute);font-size:14.5px;line-height:1.6;}

/* ---------- FINAL CTA ---------- */
.cta-banner{text-align:center;padding:clamp(80px,12vw,150px) 0;}
.cta-banner h2{font-size:clamp(38px,7.5vw,96px);margin-bottom:34px;}
.cta-banner h2 .accent{color:var(--accent);}
.cta-note{margin-top:22px;font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);}

/* ---------- BOOKING FORM ---------- */
.book-form{
  max-width:640px;
  margin:0 auto;
  text-align:left;
}
.book-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
@media(max-width:560px){.book-form-row{grid-template-columns:1fr;}}
.book-field{margin-bottom:18px;}
.book-field label{
  display:block;
  font-family:'Space Mono',monospace;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mute);margin-bottom:8px;
}
.book-field input,
.book-field select,
.book-field textarea{
  width:100%;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:8px;
  padding:14px 16px;
  color:var(--white);
  font-family:'Inter',sans-serif;
  font-size:14.5px;
  transition:border-color .25s;
}
.book-field textarea{resize:vertical;min-height:100px;}
.book-field input:focus,
.book-field select:focus,
.book-field textarea:focus{
  outline:none;
  border-color:var(--accent);
}
.book-field select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%238a8a8a'%3E%3Cpath d='M5.5 7.5l4.5 5 4.5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:38px;
}
.form-status{
  margin-top:16px;
  font-family:'Space Mono',monospace;
  font-size:12.5px;
  color:var(--accent);
  text-align:center;
}

/* ---------- FLOATING BOOK BUTTON ---------- */
.float-book{
  position:fixed;
  right:0;
  top:50%;
  transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;
  z-index:400;
  background:var(--accent);
  color:#050505;
  font-family:'Space Mono',monospace;
  font-weight:700;
  font-size:12.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:20px 10px;
  border-radius:10px 0 0 10px;
  box-shadow:-6px 0 24px rgba(0,0,0,.4);
  transition:padding .25s var(--ease), background .25s;
}
.float-book:hover{background:var(--white);padding-right:16px;}
@media(max-width:760px){
  .float-book{
    top:auto;bottom:16px;right:16px;left:auto;
    transform:none;
    writing-mode:horizontal-tb;
    border-radius:999px;
    padding:14px 22px;
    font-size:11px;
    box-shadow:0 10px 30px rgba(0,0,0,.5);
  }
  .float-book:hover{padding:14px 22px;}
}

/* ---------- FOOTER ---------- */
footer{background:var(--bg);border-top:1px solid var(--line);padding:56px 0 30px;}
.footer-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:36px;margin-bottom:46px;}
.footer-links{display:flex;gap:24px;flex-wrap:wrap;font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;}
.footer-links a{color:var(--mute);}
.footer-links a:hover{color:var(--accent);}
.footer-contact{font-family:'Space Mono',monospace;font-size:13px;color:var(--mute);}
.footer-contact .copy-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;cursor:pointer;}
.footer-contact .copy-row:hover{color:var(--white);}
.copy-btn{font-size:10px;border:1px solid var(--line);border-radius:2px;padding:2px 7px;background:none;color:var(--mute);font-family:inherit;}
.footer-bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  padding-top:24px;border-top:1px solid var(--line);
  font-family:'Space Mono',monospace;font-size:11px;color:var(--mute-dim);
  text-transform:uppercase;letter-spacing:.06em;
}
.footer-legal{display:flex;gap:18px;flex-wrap:wrap;}
.footer-legal a:hover{color:var(--accent);}

/* ---------- COOKIE BANNER ---------- */
.cookie-banner{
  position:fixed;left:16px;right:16px;bottom:16px;
  max-width:520px;
  margin:0 auto;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:22px 24px;
  z-index:900;
  box-shadow:0 20px 50px rgba(0,0,0,.5);
  transform:translateY(140%);
  transition:transform .5s var(--ease);
}
.cookie-banner.show{transform:translateY(0);}
.cookie-banner p{font-size:13.5px;color:var(--mute);line-height:1.55;margin-bottom:16px;}
.cookie-banner a{color:var(--white);text-decoration:underline;}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;}
.cookie-actions .btn{padding:11px 20px;font-size:11px;}

/* ---------- LEGAL PAGES ---------- */
.legal-page{padding-top:150px;padding-bottom:100px;}
.legal-page h1{font-size:clamp(32px,5vw,52px);margin-bottom:10px;}
.legal-page .updated{font-family:'Space Mono',monospace;font-size:12px;color:var(--mute);margin-bottom:44px;}
.legal-page h2{font-family:'Inter',sans-serif;font-weight:700;text-transform:none;font-size:19px;letter-spacing:0;margin:38px 0 12px;color:var(--white);}
.legal-page p, .legal-page li{color:#b9b9b9;font-size:15px;line-height:1.75;margin-bottom:14px;}
.legal-page ul{padding-left:22px;margin-bottom:14px;}
.legal-page a{color:var(--accent);text-decoration:underline;}
.legal-note{
  margin-top:50px;padding:20px 22px;
  border:1px dashed var(--line);border-radius:10px;
  font-family:'Space Mono',monospace;font-size:12px;color:var(--mute);line-height:1.7;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .ticker-track{animation:none;}
  .eq-bg span{animation:none;transform:scaleY(.5);}
  .reveal{opacity:1;transform:none;transition:none;}
  .slide-title .line span{transition:none;}
  .slide-sub,.slide-ctas{transition:none;}
}
