/* BALENCIAGA eyewear demo - brutalist minimal, ink on white */
:root{
  --white:#ffffff;
  --paper:#f2f1ef;      /* product well grey, matches balenciaga.com */
  --ink:#0c0c0c;
  --ink-soft:#6a6a6a;
  --hairline:rgba(0,0,0,.16);
  --font: "Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:var(--white);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
body{overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* ---------- Loader ---------- */
#loader{position:fixed;inset:0;z-index:1000;background:var(--white);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1.4rem;transition:opacity .7s ease}
#loader.hidden{opacity:0;pointer-events:none}
.loader-word{font-weight:800;letter-spacing:.16em;font-size:1.1rem}
.loader-track{width:200px;height:1px;background:var(--hairline);position:relative;overflow:hidden}
.loader-bar{position:absolute;left:0;top:0;height:100%;width:0;background:var(--ink)}
.loader-pct{font-size:.7rem;letter-spacing:.2em;color:var(--ink-soft)}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;width:100%;z-index:60;display:flex;align-items:center;
  justify-content:space-between;padding:1.25rem 1.75rem;border-bottom:1px solid var(--hairline);
  background:transparent;mix-blend-mode:normal;transition:color .4s ease,border-color .4s ease}
.site-header .wordmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-weight:800;letter-spacing:.18em;font-size:1.15rem}
.nav-left,.nav-right{display:flex;gap:1.5rem}
.site-header a,.nav-bag{font-size:.66rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.site-header.on-video{color:#fff;border-color:rgba(255,255,255,.28)}
.site-header:not(.on-video){color:var(--ink)}

/* ---------- Hero overlay (over video) ---------- */
.hero-overlay{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;
  justify-content:center;pointer-events:none;color:#fff;text-align:center;will-change:opacity,transform}
.hero-kicker{font-size:.72rem;font-weight:700;letter-spacing:.42em;text-transform:uppercase;margin-bottom:1.2rem;opacity:.9}
.hero-title{font-weight:900;line-height:.9;text-transform:uppercase;font-size:clamp(4rem,15vw,13rem);
  letter-spacing:.02em;display:flex;gap:.06em}
.hero-title .word{display:inline-block}
.hero-scroll{position:absolute;bottom:2.2rem;font-size:.62rem;letter-spacing:.4em;opacity:.8}

/* ---------- Canvas ---------- */
.canvas-wrap{position:fixed;inset:0;z-index:10;background:#fff}
#canvas{width:100%;height:100%;display:block}

/* ---------- Veil (bottom-to-top white wipe) ---------- */
#veil{position:fixed;inset:0;z-index:15;background:var(--white);clip-path:inset(100% 0 0 0);pointer-events:none}

/* ---------- Marquee ---------- */
.marquee-wrap{position:fixed;top:46%;left:0;width:100%;z-index:20;overflow:hidden;pointer-events:none;
  opacity:0;transform:translateY(-50%)}
.marquee-track{white-space:nowrap;font-weight:900;text-transform:uppercase;font-size:9vw;
  color:rgba(0,0,0,.05);letter-spacing:.02em;will-change:transform}

/* ---------- Scroll container + sections ---------- */
#scroll-container{position:relative;width:100%;height:1100vh;z-index:25}
.scroll-section{position:absolute;left:0;width:100%;height:100vh;transform:translateY(-50%);
  display:flex;flex-direction:column;justify-content:center;padding:6vh 1.75rem;pointer-events:none;visibility:hidden}
.scroll-section *{pointer-events:auto}
.section-hero-product,.section-statement,.section-finale{height:114vh;background:var(--white)}
.section-grid{height:120vh;background:var(--white)}

/* labels + headings */
.grid-head,.hp-label{text-align:center}
.grid-label,.hp-label{display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:.34em;
  text-transform:uppercase;color:var(--ink);margin-bottom:.5rem}
.hp-label{width:100%;margin-bottom:3vh}
.grid-title{font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(1.3rem,2.4vw,2.1rem);
  margin-bottom:3.4vh}
.grid-head{margin-bottom:1vh}

/* Hero product */
.hp-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:center;max-width:1200px;margin:0 auto;width:100%}
.hp-media{background:var(--paper);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;padding:8%}
.hp-media img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.hp-name{font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(2rem,4vw,3.6rem);line-height:1}
.hp-price{font-size:1rem;font-weight:500;margin:1rem 0 1.6rem}
.hp-desc{font-size:.9rem;line-height:1.8;color:var(--ink-soft);max-width:42ch;margin-bottom:2rem}

/* Product grids */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem 1.1rem;max-width:1320px;margin:0 auto;width:100%}
.product-grid.grid-4{grid-template-columns:repeat(4,1fr)}
.product{text-align:center}
.product .well{background:var(--paper);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  padding:12%;overflow:hidden;position:relative}
.product .well img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;
  transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.product:hover .well img{transform:scale(1.07)}
.product .p-name{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:.9rem 0 .3rem}
.product .p-price{font-size:.68rem;color:var(--ink)}

/* Statement */
.section-statement{align-items:center;text-align:center}
.statement-line{font-weight:900;text-transform:uppercase;line-height:.94;letter-spacing:.01em;
  font-size:clamp(2.6rem,8vw,7.5rem)}
.statement-line em{font-style:normal;-webkit-text-stroke:1.4px var(--ink);color:transparent}

/* Finale */
.section-finale{align-items:center;text-align:center;gap:0}
.finale-kicker{font-size:.7rem;font-weight:700;letter-spacing:.4em;text-transform:uppercase;margin-bottom:1.6rem}
.finale-title{font-weight:900;text-transform:uppercase;line-height:.92;font-size:clamp(2.6rem,7vw,6.5rem);margin-bottom:2.4rem}

/* Buttons */
.btn{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  padding:1rem 2.2rem;background:var(--ink);color:#fff;border:1px solid var(--ink);transition:.35s ease}
.btn:hover{background:transparent;color:var(--ink)}
.btn-lg{padding:1.15rem 3rem;font-size:.74rem}

/* ---------- Mobile ---------- */
@media(max-width:820px){
  .nav-left a:not(:first-child),.nav-right a:not(.nav-bag){display:none}
  #scroll-container{height:820vh}
  .hp-grid{grid-template-columns:1fr;gap:2rem}
  .product-grid,.product-grid.grid-4{grid-template-columns:repeat(2,1fr)}
  .hero-title{font-size:22vw}
  .marquee-track{font-size:16vw}
}
