/* ============================================================
   VOXIMETA — Shared stylesheet (v4 — dark primary + gold accent)
   ============================================================ */

:root{
  --nero:#000000;
  --avorio:#F4F1EC;
  --grafite:#2B2926;
  --grafite-2:#221F1C;
  --pietra:#8C857B;
  --oro:#A8844A;
  --oro-light:#C6A374;
  --ink:#1C1B19;
  --hairline:rgba(244,241,236,.14);
  --hairline-soft:rgba(244,241,236,.08);
  --white:#ffffff;
  --error:#C96B54;
  --radius-lg:6px;
  --radius-md:4px;
  --radius-sm:3px;
  --max-width:1200px;
  --ease:cubic-bezier(.16,1,.3,1);
  --gradient-premium:linear-gradient(155deg, var(--nero) 0%, var(--grafite) 55%, rgba(168,132,74,.28) 100%);

  --font-sans:"Geist",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --font-serif:"Instrument Serif",Georgia,serif;
  --font-didot:"GFS Didot",Georgia,serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

body{
  font-family:var(--font-sans);
  font-weight:400;
  color:var(--avorio);
  background:var(--grafite);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  line-height:1.5;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
video{max-width:100%;display:block;}

/* ---------- Film grain — ties to the brand's own photography spec
   ("grana leggera da pellicola"); a faint flicker, not a filter. ---------- */
.grain-overlay{
  position:fixed;inset:0;z-index:9999;pointer-events:none;
  opacity:.16;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat:repeat;
  background-size:180px 180px;
  animation:grainShift .8s steps(4) infinite;
}
@keyframes grainShift{
  0%{background-position:0px 0px;}
  25%{background-position:-40px 15px;}
  50%{background-position:20px -25px;}
  75%{background-position:-15px 30px;}
  100%{background-position:0px 0px;}
}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,textarea,select{font-family:inherit;}

.container{max-width:var(--max-width);margin:0 auto;padding:0 48px;}
.accent{color:var(--oro);}

/* Italic accent words: same animated sweep highlight as .underline-sweep
   (applied together in markup: class="accent-serif underline-sweep"). */
.accent-serif{
  font-family:var(--font-serif);font-style:italic;
}

/* ---------- Reveal on scroll ---------- */
.reveal{
  opacity:0;
  transform:translateY(20px) scale(.97);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.is-visible{opacity:1;transform:translateY(0) scale(1);}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}

/* ---------- Letter-by-letter typewriter (section headings) ---------- */
.letters .letter{
  display:inline-block;
  opacity:0;
  transform:translateY(16px);
  transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.letters.is-typing .letter{opacity:1;transform:translateY(0);}

/* ---------- Underline "marker" sweep ---------- */
.underline-sweep{position:relative;display:inline-block;font-weight:500;color:var(--avorio);padding:0 3px;white-space:normal;}
.underline-sweep::after{
  content:"";
  position:absolute;left:-2px;right:-2px;top:-2px;bottom:-2px;
  background:rgba(168,132,74,.3);
  transform:scaleX(.5);transform-origin:left;
  transition:transform .9s var(--ease);z-index:-1;
}
.underline-sweep.is-swept::after{transform:scaleX(1);}
.accent-serif.underline-sweep{font-weight:400;}

/* ============================================================
   NAVBAR — glass pill, fixed centered on viewport
   ============================================================ */
header.navbar{
  position:fixed;
  top:20px;
  left:50%;
  transform:translateX(-50%);
  z-index:300;
  width:100%;
  max-width:620px;
  padding:0 16px;
}
.nav-pill{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  width:100%;
  background:rgba(43,41,38,.5);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--hairline-soft);
  border-radius:50px;
  padding:9px 24px;
  box-shadow:none;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
.nav-pill.scrolled{
  background:rgba(20,19,17,.72);
  padding:7px 22px;
  box-shadow:0 20px 40px -20px rgba(0,0,0,.5);
}

.nav-logo-avatar{
  position:relative;
  width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;
  background:var(--nero);
  display:flex;align-items:center;justify-content:center;
  color:var(--avorio);font-weight:500;font-size:14px;
  cursor:pointer;border:1px solid var(--hairline);
  transition:transform .3s var(--ease);
}
.nav-logo-avatar:hover{transform:scale(1.06);}
.nav-logo-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

.nav-wordmark{
  font-family:var(--font-sans);font-weight:500;font-size:16px;
  letter-spacing:-.055em;color:var(--avorio);text-transform:lowercase;
  margin-right:auto;
}

.nav-links{display:flex;align-items:center;gap:2px;list-style:none;}

.nav-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  height:36px;
  overflow:hidden;
  padding:0 13px;
  border-radius:999px;
}
.nav-link .nl-default,
.nav-link .nl-hover{
  display:flex;
  align-items:center;
  font-size:13.5px;
  line-height:1;
  white-space:nowrap;
  transition:transform .3s ease-out, opacity .3s ease-out;
}
.nav-link .nl-default{color:var(--pietra);font-weight:500;}
.nav-link .nl-hover{
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  padding:0 13px;
  color:var(--oro);font-weight:500;
  opacity:0;transform:translateY(16px);
}
.nav-link:hover .nl-default{opacity:0;transform:translateY(-16px);}
.nav-link:hover .nl-hover{opacity:1;transform:translateY(0);}
.nav-link.denied .nl-default,
.nav-link.denied .nl-hover{color:var(--error)!important;}
.nav-link.denied{animation:denyShake .5s var(--ease);}
@keyframes denyShake{
  0%,100%{transform:translateX(0);}
  20%{transform:translateX(-5px);}
  40%{transform:translateX(5px);}
  60%{transform:translateX(-4px);}
  80%{transform:translateX(4px);}
}

.nav-burger{
  display:none;flex-direction:column;justify-content:center;gap:4px;
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
}
.nav-burger span{width:15px;height:1.5px;background:var(--avorio);border-radius:2px;margin:0 auto;transition:transform .3s var(--ease),opacity .3s var(--ease);}
.nav-burger.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;}
.nav-burger.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}

.mobile-menu{
  position:fixed;top:84px;left:50%;transform:translateX(-50%);
  width:calc(100% - 32px);max-width:340px;
  background:rgba(43,41,38,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--hairline-soft);border-radius:var(--radius-lg);
  max-height:0;opacity:0;overflow:hidden;padding:0 16px;
  transition:max-height .5s var(--ease), opacity .4s var(--ease), padding .5s var(--ease);
  z-index:299;
}
.mobile-menu.open{max-height:340px;opacity:1;padding:14px 16px;}
.mobile-menu a{display:block;font-size:14.5px;font-weight:500;color:var(--avorio);padding:14px 12px;border-radius:var(--radius-sm);transition:background .25s var(--ease);}
.mobile-menu a:hover{background:rgba(244,241,236,.06);}
.mobile-menu a.denied{color:var(--error)!important;animation:denyShake .5s var(--ease);}

@media (max-width:640px){
  .nav-links{display:none;}
  .nav-burger{display:flex;}
  .nav-pill{justify-content:space-between;padding:8px 8px 8px 14px;}
}

/* ============================================================
   HERO
   ============================================================ */
#hero{
  position:relative;padding:220px 0 180px;overflow:hidden;
  min-height:100vh;min-height:100dvh;min-height:var(--vh100, 100dvh);
  display:flex;align-items:center;
  background:
    radial-gradient(ellipse 70% 60% at 50% -10%, rgba(168,132,74,.16), transparent 60%),
    var(--grafite);
}
.hero-inner{position:relative;z-index:1;max-width:920px;min-width:0;width:100%;text-align:left;}

h1.hero-title{
  font-family:var(--font-sans);
  font-size:clamp(28px, 5.2vw, 68px);
  font-weight:500;
  letter-spacing:-.035em;
  line-height:1.12;
  color:var(--avorio);
  margin-bottom:80px;
}
@media (max-width:768px){
  h1.hero-title{font-size:clamp(20px, 7vw, 42px);}
}
@media (max-width:360px){
  h1.hero-title{font-size:clamp(17px, 6.4vw, 42px);}
}
.hero-line{
  display:block;white-space:nowrap;
  opacity:0;transform:translateY(18px);
  animation:heroLineIn 1s var(--ease) forwards;
}
.hero-line:nth-child(1){animation-delay:.1s;}
.hero-line:nth-child(2){animation-delay:.28s;}
@keyframes heroLineIn{to{opacity:1;transform:translateY(0);}}

.hero-actions{
  display:flex;align-items:center;gap:24px;flex-wrap:wrap;
  opacity:0;transform:translateY(12px);
  animation:fadeIn .8s var(--ease) forwards;
  animation-delay:.95s;
}
@keyframes fadeIn{to{opacity:1;transform:translateY(0);}}

.btn{
  display:inline-flex;align-items:center;gap:9px;
  padding:15px 26px;border-radius:999px;
  font-size:14px;font-weight:500;letter-spacing:-.01em;
  transition:transform .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--avorio);color:var(--ink);}
.btn-primary:hover{background:var(--oro);color:var(--white);transform:scale(1.03);}
.btn-primary svg{transition:transform .35s var(--ease);}
.btn-primary:hover svg{transform:translate(2px,-2px);}
.btn-secondary{background:transparent;color:var(--avorio);border:1px solid var(--hairline);}
.btn-secondary:hover{border-color:var(--oro);color:var(--oro);}
.btn-gold{background:var(--oro);color:var(--white);}
.btn-gold:hover{background:var(--oro-light);transform:scale(1.03);}

/* ---------- Gold sheen: a soft diagonal light sweep on hover, shared
   by every solid-gold control. ---------- */
.btn-gold,
.fs-next,
.fs-success .btn-close-modal,
.cookie-btn-accept{position:relative;overflow:hidden;}
.btn-gold::after,
.fs-next::after,
.fs-success .btn-close-modal::after,
.cookie-btn-accept::after{
  content:"";position:absolute;top:0;left:-60%;width:35%;height:100%;
  background:linear-gradient(115deg, transparent, rgba(255,255,255,.4), transparent);
  transform:skewX(-18deg);
  transition:left .7s var(--ease);
  pointer-events:none;
}
.btn-gold:hover::after,
.fs-next:hover::after,
.fs-success .btn-close-modal:hover::after,
.cookie-btn-accept:hover::after{left:130%;}

/* ============================================================
   Section shell
   ============================================================ */
section{padding:220px 0;position:relative;}
.section-title{font-family:var(--font-sans);font-size:clamp(28px,4.2vw,46px);font-weight:500;letter-spacing:-.03em;line-height:1.1;margin-bottom:32px;color:var(--avorio);}
.section-sub{font-size:16.5px;color:var(--pietra);max-width:620px;line-height:1.6;}

/* ============================================================
   SCARSITÀ
   ============================================================ */
#scarcity{background:var(--grafite);}
.scarcity-copy{font-size:16.5px;color:var(--pietra);line-height:1.7;max-width:740px;margin-bottom:130px;}

.scarcity-grid{display:grid;grid-template-columns:1fr 1fr;gap:130px;}
.scarcity-label,.cycle-title{
  font-family:var(--font-mono);
  font-size:11.5px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--pietra);margin-bottom:32px;
}

.slots-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.slot-avatar{
  position:relative;
  width:76px;height:76px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  transition:transform .3s var(--ease);
}
.slot-avatar:hover{transform:scale(1.05);}
.slot-photo{
  background:var(--nero);
  color:var(--avorio);font-weight:500;font-size:15px;overflow:hidden;
  border:1px solid var(--hairline);
}
.slot-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;}

.slot-libero{
  background:transparent;color:var(--pietra);
  display:flex;align-items:center;justify-content:center;
  text-align:center;padding:6px;
  border:1px dashed var(--hairline);
}
.slot-libero span{
  font-family:var(--font-mono);
  font-size:9px;font-weight:400;letter-spacing:.03em;text-transform:uppercase;line-height:1.25;
}

.countdown-plain{display:flex;align-items:baseline;gap:10px;margin-bottom:24px;}
.cd-unit{display:flex;flex-direction:column;align-items:center;gap:6px;}
.cd-num{
  font-family:var(--font-mono);
  font-size:clamp(28px,5.6vw,58px);font-weight:400;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;color:var(--avorio);display:inline-block;
}
.cd-num.tick{animation:numTick .35s var(--ease);}
@keyframes numTick{0%{opacity:.4;}100%{opacity:1;}}
.cd-label{font-family:var(--font-mono);font-size:9.5px;font-weight:400;letter-spacing:.07em;text-transform:uppercase;color:var(--pietra);}
.cd-colon{font-family:var(--font-mono);font-size:clamp(22px,4.2vw,44px);font-weight:400;color:var(--hairline);align-self:flex-start;margin-top:2px;}

.cycle-note{font-size:14px;color:var(--pietra);margin-bottom:36px;}
.progress-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.progress-head span:first-child{font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--pietra);}
.progress-pct{font-family:var(--font-mono);font-size:13px;font-weight:400;color:var(--oro);font-variant-numeric:tabular-nums;}
.progress-bar{width:100%;height:2px;background:var(--hairline);overflow:hidden;margin-bottom:16px;}
.progress-fill{height:100%;width:0%;background:var(--oro);transition:width .2s linear;}
.cycle-next{font-size:13.5px;font-weight:400;color:var(--avorio);}
.cycle-next span{color:var(--oro);font-family:var(--font-mono);}

/* ============================================================
   AUDIT / VIDEO PAGE
   ============================================================ */
#audit{text-align:center;padding-top:220px;background:var(--grafite);}
.audit-head{max-width:680px;margin:0 auto 80px;}
.video-wrap{position:relative;max-width:880px;margin:0 auto 56px;}
.video-frame{
  position:relative;overflow:hidden;
  border:1px solid var(--hairline);
  aspect-ratio:4/3;background:var(--nero);
}
.video-frame mux-player{width:100%;height:100%;display:block;--media-object-fit:cover;}

/* ============================================================
   MODAL — multi-step form
   ============================================================ */
.modal-backdrop{
  position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.65);
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease);
}
.modal-backdrop.open{opacity:1;pointer-events:auto;}
.modal-card{
  position:relative;background:linear-gradient(165deg, var(--grafite) 0%, var(--grafite-2) 100%);
  border:1px solid var(--hairline-soft);border-radius:var(--radius-lg);
  padding:52px;max-width:520px;width:100%;max-height:88vh;overflow-y:auto;
  color:var(--avorio);
  transform:translateY(16px);transition:transform .4s var(--ease);
}
.modal-backdrop.open .modal-card{transform:translateY(0);}

.fs-page-indicator{font-family:var(--font-mono);text-align:center;font-size:11px;color:var(--pietra);font-weight:400;letter-spacing:.05em;margin-bottom:28px;}
.fs-step{display:none;opacity:0;transition:opacity .2s ease;}
.fs-step.active{display:block;opacity:1;}
.fs-step label{display:block;font-size:18px;font-weight:500;margin-bottom:20px;line-height:1.4;letter-spacing:-.01em;}
.fs-step input,.fs-step textarea,.fs-step select{
  width:100%;background:transparent;border:none;border-bottom:1px solid rgba(244,241,236,.2);
  color:var(--avorio);padding:10px 2px;font-size:16px;border-radius:0;
  transition:border-color .3s var(--ease);
}
.fs-step input::placeholder,.fs-step textarea::placeholder{color:var(--pietra);}
.fs-step input:focus,.fs-step textarea:focus,.fs-step select:focus{outline:none;border-bottom-color:var(--oro);}
.fs-step textarea{resize:vertical;min-height:90px;}
.fs-step select{cursor:pointer;}
.fs-step select option{background:var(--grafite);color:var(--avorio);}

.fs-error{color:var(--error);font-size:13px;font-weight:500;margin-top:14px;min-height:0;line-height:1.5;}

.fs-nav{display:flex;align-items:center;justify-content:space-between;margin-top:32px;}
.fs-prev{
  width:38px;height:38px;border-radius:50%;background:transparent;color:var(--pietra);
  border:1px solid rgba(244,241,236,.15);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  visibility:hidden;
}
.fs-prev.show{visibility:visible;}
.fs-next{
  padding:14px 28px;border-radius:999px;background:var(--oro);color:var(--white);
  font-size:14px;font-weight:500;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.fs-next:hover{background:var(--oro-light);transform:scale(1.02);}
.fs-nav.final .fs-next{width:100%;padding:17px;}
.fs-nav.final .fs-prev{position:absolute;left:40px;bottom:40px;}
.fs-nav.final .fs-prev:not(.show){display:none;}

.fs-success{display:none;text-align:center;padding:20px 0;}
.fs-success p{font-size:16.5px;line-height:1.6;margin-bottom:28px;color:var(--avorio);}
.fs-success .btn-close-modal{
  padding:15px 34px;border-radius:999px;background:var(--oro);color:var(--white);font-weight:500;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.fs-success .btn-close-modal:hover{background:var(--oro-light);transform:scale(1.02);}

/* ============================================================
   PROJECTS
   ============================================================ */
#projects{background:var(--grafite);border-top:1px solid var(--hairline);padding-top:220px;}
.projects-head{margin-bottom:96px;}
.projects-head h1{font-family:var(--font-sans);font-size:clamp(30px,4.4vw,50px);font-weight:500;letter-spacing:-.035em;color:var(--avorio);}

.embed-fill{position:absolute;inset:0;width:100%;height:100%;border:0;}

.projects-group{margin-bottom:0;}
.projects-group + .projects-group{margin-top:170px;padding-top:130px;border-top:1px solid var(--hairline);}

.reels-label{font-family:var(--font-mono);font-size:11.5px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--pietra);margin:0 0 36px;}

/* Infinite ribbon: the track's content is duplicated once in the markup;
   animating exactly -50% of its own width loops seamlessly forever. */
.reels-marquee{
  width:100vw;margin-left:50%;transform:translateX(-50%);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0, #000 64px, #000 calc(100% - 64px), transparent 100%);
}
.reels-track{
  display:flex;gap:28px;width:max-content;padding:10px 28px 26px;
  animation:reelsMarquee 50s linear infinite;
  perspective:1000px;
}
.reels-marquee:hover .reels-track{animation-play-state:paused;}
@keyframes reelsMarquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

.reel-item{
  display:flex;flex-direction:column;flex:0 0 auto;width:280px;
  --rx:0deg;--ry:0deg;
  transition:transform .4s var(--ease), opacity .4s var(--ease);
}
.reel-item.lifted{transform:translateY(-20px) scale(1.05) rotateX(var(--rx)) rotateY(var(--ry));z-index:5;}
.reel-item.dimmed{opacity:.4;}
.reel-tile{
  position:relative;overflow:hidden;
  aspect-ratio:9/16;background:var(--nero);border:1px solid var(--hairline);
  transition:box-shadow .4s var(--ease);
}
.reel-item.lifted .reel-tile{box-shadow:0 30px 50px -16px rgba(0,0,0,.55);border-color:rgba(244,241,236,.28);}
.reel-tile mux-player,
.reel-tile video{width:100%;height:100%;display:block;pointer-events:none;object-fit:cover;--media-object-fit:cover;transition:transform .6s var(--ease);}
.reel-item.lifted .reel-tile mux-player,
.reel-item.lifted .reel-tile video{transform:scale(1.08);}
.reel-shield{position:absolute;inset:0;z-index:2;cursor:pointer;background:transparent;}
.reel-shield::after{
  content:"";
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:42px;height:42px;border-radius:50%;
  background:rgba(244,241,236,.16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%23F4F1EC'%3E%3Cpolygon points='6 4 20 12 6 20'/%3E%3C/svg%3E") center/15px no-repeat;
  backdrop-filter:blur(6px);
  transition:background-color .3s var(--ease);
}
.reel-item.lifted .reel-shield::after{background-color:rgba(244,241,236,.26);}
.reel-caption{
  font-family:var(--font-mono);
  margin-top:10px;color:var(--avorio);font-size:11.5px;font-weight:400;letter-spacing:.01em;
}

.showcase-video-wrap{margin:0 auto;max-width:640px;}
.showcase-video-frame{
  position:relative;overflow:hidden;aspect-ratio:16/9;background:var(--nero);
  border:1px solid var(--hairline);
}
.showcase-video-frame mux-player{width:100%;height:100%;display:block;}
.showcase-video-wrap .reel-caption{margin-top:14px;text-align:center;color:var(--pietra);}

.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);}
.project-card.full{grid-column:1 / -1;}
.project-card.full .project-media{height:320px;}
.project-card.full h3,
.project-card.full .project-desc{max-width:640px;}
.project-card{
  position:relative;padding:80px;min-height:520px;
  display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;
  --mx:50%;--my:50%;
}
.project-card.card-light,
.project-card.card-dark{
  background:radial-gradient(ellipse 90% 70% at 20% 100%, rgba(168,132,74,.13), transparent 60%), var(--nero);
  color:var(--avorio);
}
.project-card::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(circle 260px at var(--mx) var(--my), rgba(168,132,74,.16), transparent 70%);
  opacity:0;transition:opacity .5s var(--ease);
}
.project-card:hover::before{opacity:1;}
.project-media{position:relative;z-index:1;margin-bottom:28px;height:200px;}
.project-img{position:relative;width:100%;height:100%;overflow:hidden;border:1px solid var(--hairline);}
.project-img mux-player{width:100%;height:100%;display:block;pointer-events:none;--media-object-fit:cover;transition:transform .6s var(--ease);}
.project-card:hover .project-img mux-player{transform:scale(1.06);}
.project-card h3{position:relative;z-index:1;font-family:var(--font-sans);font-size:23px;font-weight:500;letter-spacing:-.015em;line-height:1.3;max-width:420px;margin-bottom:8px;}
.project-card .project-subtitle{position:relative;z-index:1;font-family:var(--font-mono);font-size:12.5px;font-weight:400;opacity:.7;margin-bottom:14px;}
.project-card .project-desc{position:relative;z-index:1;font-size:14.5px;line-height:1.6;opacity:.85;max-width:420px;margin-bottom:14px;}
.project-card p.tag{position:relative;z-index:1;font-family:var(--font-mono);font-size:11.5px;font-weight:400;text-transform:uppercase;letter-spacing:.06em;opacity:.6;}

/* ---------- Lightbox (full-screen, unmuted audio) ---------- */
.lightbox{
  position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.94);
  display:flex;align-items:center;justify-content:center;padding:32px;
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease);
}
.lightbox.open{opacity:1;pointer-events:auto;}
.lightbox-inner{
  position:relative;overflow:hidden;
  max-width:min(92vw,420px);width:100%;aspect-ratio:9/16;
  background:var(--nero);
  transform:scale(.97);transition:transform .4s var(--ease);
}
.lightbox-inner.wide{max-width:min(92vw,860px);aspect-ratio:16/9;}
.lightbox-inner mux-player,
.lightbox-inner video{width:100%;height:100%;display:block;}
.lightbox.open .lightbox-inner{transform:scale(1);}
.lightbox-close{
  position:fixed;top:28px;right:28px;z-index:601;
  width:42px;height:42px;border-radius:50%;background:rgba(244,241,236,.1);color:var(--avorio);font-size:22px;
  display:flex;align-items:center;justify-content:center;
  transition:background .25s var(--ease);
}
.lightbox-close:hover{background:rgba(244,241,236,.2);}

/* ============================================================
   Underline-style form fields (waitlist page reuse)
   ============================================================ */
.hp-field{position:absolute;left:-9999px;opacity:0;pointer-events:none;}
.field-u{margin-bottom:22px;}
.field-u label{display:block;font-family:var(--font-mono);font-size:10.5px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--pietra);margin-bottom:10px;}
.field-u input,.field-u select,.field-u textarea{
  width:100%;background:transparent;border:none;border-bottom:1px solid rgba(244,241,236,.2);
  color:var(--avorio);padding:10px 2px;font-size:15px;border-radius:0;
  transition:border-color .3s var(--ease);
}
.field-u select{cursor:pointer;}
.field-u select option{background:var(--grafite);color:var(--avorio);}
.field-u input::placeholder,.field-u textarea::placeholder{color:var(--pietra);}
.field-u input:focus,.field-u select:focus,.field-u textarea:focus{outline:none;border-bottom-color:var(--oro);}
.field-u textarea{resize:vertical;min-height:60px;}
.form-error{color:var(--error);font-size:13px;font-weight:500;margin-bottom:14px;min-height:0;line-height:1.5;}
.form-success{
  display:none;background:rgba(168,132,74,.08);border:1px solid rgba(168,132,74,.3);
  color:var(--avorio);padding:22px;border-radius:var(--radius-md);font-size:14.5px;line-height:1.6;text-align:center;
}
.submit-btn{
  width:100%;background:var(--oro);color:var(--white);padding:17px;border-radius:var(--radius-sm);
  font-size:14.5px;font-weight:500;letter-spacing:.01em;margin-top:6px;
  transition:background .3s var(--ease), transform .3s var(--ease), opacity .3s var(--ease);
}
.submit-btn:hover{background:var(--oro-light);transform:scale(1.01);}
.submit-btn:active{transform:scale(.98);}
.submit-btn:disabled{opacity:.6;pointer-events:none;}

/* ============================================================
   Waitlist private page
   ============================================================ */
.waitlist-page{min-height:100vh;}
.waitlist-section{padding:220px 0 160px;}
.private-badge{
  display:inline-block;border:1px solid rgba(168,132,74,.4);color:var(--oro);
  background:rgba(168,132,74,.06);font-family:var(--font-mono);font-size:10.5px;font-weight:400;letter-spacing:.05em;
  padding:10px 18px;border-radius:999px;margin-bottom:40px;line-height:1.5;max-width:560px;text-transform:uppercase;
}
.waitlist-section > .container{max-width:640px;}
.waitlist-section .video-wrap{
  max-width:880px;width:90vw;
  margin-left:50%;transform:translateX(-50%);
  margin-top:16px;
}
.waitlist-intro{color:var(--pietra);font-size:15px;line-height:1.7;margin-bottom:52px;}
.waitlist-section h1{font-family:var(--font-sans);font-size:clamp(26px,3.8vw,38px);font-weight:500;letter-spacing:-.03em;margin-bottom:18px;color:var(--avorio);}
.waitlist-sub{color:var(--pietra);font-size:14px;margin-bottom:64px;}
.underline-form{margin-top:10px;}

/* ============================================================
   Footer
   ============================================================ */
footer{
  border-top:1px solid var(--hairline);padding:140px 0 96px;
  background:radial-gradient(ellipse 60% 100% at 50% 120%, rgba(168,132,74,.1), transparent 60%), var(--grafite);
}
.footer-inner-new{text-align:center;max-width:480px;margin:0 auto;}
.footer-cta{display:inline-block;font-size:15.5px;font-weight:500;color:var(--oro);margin-bottom:10px;transition:opacity .25s var(--ease);}
.footer-cta:hover{opacity:.75;}
.footer-email{display:block;font-size:13.5px;color:var(--pietra);margin-bottom:28px;transition:color .25s var(--ease);}
.footer-email:hover{color:var(--avorio);}
.footer-credit{font-family:var(--font-didot);font-size:12.5px;color:var(--pietra);letter-spacing:.01em;}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:900px){
  .scarcity-grid{grid-template-columns:1fr;gap:48px;}
  .projects-grid{grid-template-columns:1fr;}
}

@media (max-width:760px){
  section{padding:130px 0;}
  #hero{padding-top:150px;}
  #audit{padding-top:150px;}
  #projects{padding-top:150px;}
  .waitlist-section{padding-top:150px;}
  .container{padding:0 24px;}
  .modal-card{padding:32px;}
  .fs-nav.final .fs-prev{left:32px;bottom:32px;}
  .countdown-plain{gap:6px;}
  .project-card{padding:36px;min-height:auto;}
  .projects-group + .projects-group{margin-top:100px;padding-top:72px;}
  .reel-item{width:190px;}
  .reels-track{gap:18px;}
}

/* ============================================================
   Toast (waitlist notice)
   ============================================================ */
.toast{
  position:fixed;bottom:28px;left:50%;
  transform:translate(-50%,10px);
  background:rgba(20,19,17,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid var(--hairline-soft);border-left:2px solid var(--oro);
  border-radius:var(--radius-md);
  padding:14px 22px;color:var(--avorio);
  font-size:13.5px;font-weight:500;letter-spacing:-.005em;
  max-width:min(420px,calc(100vw - 32px));
  box-shadow:0 24px 50px -20px rgba(0,0,0,.55);
  z-index:1000;opacity:0;pointer-events:none;
  transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.toast.show{opacity:1;transform:translate(-50%,0);}

/* ============================================================
   Cookie consent banner
   ============================================================ */
.cookie-banner{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:900;
  max-width:640px;margin:0 auto;
  background:rgba(20,19,17,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid var(--hairline-soft);border-radius:var(--radius-lg);
  padding:22px 24px;color:var(--avorio);
  flex-direction:column;gap:16px;
  display:none;
}
.cookie-banner.show{display:flex;}
.cookie-banner p{font-size:13px;line-height:1.6;color:var(--pietra);}
.cookie-banner a{color:var(--oro);text-decoration:underline;}
.cookie-banner-actions{display:flex;gap:10px;flex-wrap:wrap;}
.cookie-banner-actions button{
  flex:1;padding:12px 18px;border-radius:999px;font-size:13px;font-weight:500;
  transition:transform .25s var(--ease), background .25s var(--ease);white-space:nowrap;
}
.cookie-btn-accept{background:var(--oro);color:var(--white);}
.cookie-btn-accept:hover{background:var(--oro-light);}
.cookie-btn-reject{background:rgba(244,241,236,.08);color:var(--avorio);}
.cookie-btn-reject:hover{background:rgba(244,241,236,.15);}

@media (max-width:480px){
  .cookie-banner{padding:18px;}
  .cookie-banner-actions{flex-direction:column;}
}
