/* ============================================================
   MARC DE LAUNAY — Cinema Noir + Amber
   Shared stylesheet
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700&display=swap');

:root{
  --black:#0a0a0c;
  --ink:#101015;
  --panel:#15151b;
  --panel-2:#1c1c24;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.18);
  --fog:#9a9aa6;
  --silver:#c9c9d2;
  --cloud:#ececed;
  --amber:#e0a142;
  --amber-bright:#f4b860;
  --amber-deep:#b97a23;
  --ember:#c2542a;
  --glow:rgba(224,161,66,.45);
  --maxw:1180px;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Inter', system-ui, -apple-system, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--black);
  color:var(--silver);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;transition:color .25s ease;}

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

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;color:var(--cloud);line-height:1.08;margin:0 0 .4em;letter-spacing:.01em;}
h1{font-size:clamp(2.6rem,6vw,5rem);}
h2{font-size:clamp(2rem,4vw,3.1rem);}
h3{font-size:clamp(1.4rem,2.4vw,1.9rem);}
p{margin:0 0 1.2em;}
.lead{font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.5;color:var(--cloud);font-weight:400;}
.eyebrow{
  font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.32em;
  text-transform:uppercase;color:var(--amber);margin:0 0 1.2em;display:inline-block;
}
.amber{color:var(--amber-bright);}
em{color:var(--cloud);}
strong{color:var(--cloud);font-weight:600;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.25rem,5vw,3rem);}
section{position:relative;}
.section-pad{padding:clamp(4.5rem,10vw,8rem) 0;}

/* ---------- Top navigation ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem clamp(1.25rem,5vw,3rem);
  background:linear-gradient(180deg,rgba(8,8,10,.92),rgba(8,8,10,0));
  transition:background .4s ease,backdrop-filter .4s ease,padding .4s ease;
}
.nav.scrolled{
  background:rgba(8,8,10,.86);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);padding-top:.8rem;padding-bottom:.8rem;
}
/* Wordmark */
.brand{display:flex;align-items:center;gap:.7rem;}
.brand .glyph{
  width:34px;height:34px;flex:none;border:1px solid var(--amber);
  display:grid;place-items:center;position:relative;border-radius:3px;
  background:radial-gradient(circle at 30% 25%,rgba(224,161,66,.28),transparent 70%);
}
.brand .glyph span{font-family:var(--serif);font-weight:700;font-size:1.05rem;color:var(--amber-bright);line-height:1;}
.brand .glyph::after{content:"";position:absolute;inset:4px;border:1px solid rgba(224,161,66,.25);border-radius:2px;}
.brand .name{font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--cloud);letter-spacing:.04em;}
.brand .name b{color:var(--amber-bright);font-weight:600;}

.nav-links{display:flex;align-items:center;gap:1.9rem;}
.nav-links a{
  font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--silver);position:relative;padding:.2rem 0;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:var(--amber);transition:width .3s ease;
}
.nav-links a:hover,.nav-links a.active{color:var(--cloud);}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;}
.nav-links a.active{color:var(--amber-bright);}

.nav-toggle{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:6px;}
.nav-toggle span{width:24px;height:2px;background:var(--cloud);transition:.3s;}

@media(max-width:860px){
  .nav-toggle{display:flex;}
  .nav-links{
    position:fixed;inset:0 0 0 auto;width:min(78vw,320px);
    flex-direction:column;justify-content:center;gap:2rem;
    background:rgba(10,10,13,.97);backdrop-filter:blur(18px);
    border-left:1px solid var(--line);
    transform:translateX(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);
    padding:2rem;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{font-size:1rem;}
}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);
  animation:kenburns 22s ease-out infinite alternate;}
@keyframes kenburns{from{transform:scale(1.05) translateY(0);}to{transform:scale(1.16) translateY(-2%);}}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,8,10,.55) 0%,rgba(8,8,10,.45) 35%,rgba(8,8,10,.82) 80%,var(--black) 100%),
             radial-gradient(120% 80% at 20% 30%,transparent,rgba(8,8,10,.55));}
.hero-inner{position:relative;z-index:2;width:100%;}
.hero h1{margin-bottom:.25em;}
.hero .lead{max-width:46ch;}
.hero-roles{
  display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;margin:1.6rem 0 2.2rem;
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fog);
}
.hero-roles span{position:relative;padding-left:1.4rem;}
.hero-roles span::before{content:"";position:absolute;left:0;top:50%;width:8px;height:1px;background:var(--amber);}

/* Hero with portrait layout */
.hero-flex{display:grid;grid-template-columns:1.5fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.hero-portrait{position:relative;justify-self:end;width:min(340px,80%);}
.hero-portrait .frame{position:relative;border:1px solid var(--line-strong);padding:.55rem;background:rgba(12,12,15,.45);backdrop-filter:blur(4px);
  box-shadow:0 40px 80px -40px rgba(0,0,0,.9);}
.hero-portrait .frame::before{content:"";position:absolute;inset:-1px;border:1px solid rgba(224,161,66,.35);transform:translate(10px,10px);z-index:-1;}
.hero-portrait img{width:100%;display:block;filter:saturate(.95) contrast(1.02);}
.hero-portrait .cap{margin-top:.7rem;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fog);text-align:center;}
@media(max-width:880px){.hero-flex{grid-template-columns:1fr;}.hero-portrait{display:none;}}

/* page header (interior pages) */
.page-hero{position:relative;min-height:62vh;display:flex;align-items:flex-end;overflow:hidden;}
.page-hero .hero-bg img{animation:kenburns 26s ease-out infinite alternate;}
.page-hero .hero-inner{padding-bottom:clamp(2.5rem,6vw,5rem);}
.page-hero .crumb{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--fog);margin-bottom:1rem;}
.page-hero .crumb .amber{color:var(--amber-bright);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;
  font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  padding:.95rem 1.7rem;border:1px solid var(--amber);color:var(--amber-bright);
  background:transparent;position:relative;overflow:hidden;transition:color .3s ease;
}
.btn::before{content:"";position:absolute;inset:0;background:var(--amber);transform:translateY(101%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:-1;}
.btn:hover{color:#120c02;}
.btn:hover::before{transform:translateY(0);}
.btn.solid{background:var(--amber);color:#120c02;border-color:var(--amber);}
.btn.solid::before{background:var(--amber-bright);}
.btn.ghost{border-color:var(--line-strong);color:var(--cloud);}
.btn.ghost::before{background:rgba(255,255,255,.08);}
.btn.ghost:hover{color:var(--cloud);}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.6rem;}
.arrow{font-size:1.1em;line-height:1;}

/* ---------- Two-area split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.split-panel{position:relative;min-height:520px;display:flex;align-items:flex-end;padding:clamp(2rem,4vw,3.5rem);overflow:hidden;}
.split-panel .pbg{position:absolute;inset:0;z-index:0;}
.split-panel .pbg img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease;filter:grayscale(.2) brightness(.7);}
.split-panel:hover .pbg img{transform:scale(1.07);filter:grayscale(0) brightness(.85);}
.split-panel::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,8,10,.2),rgba(8,8,10,.9));}
.split-panel:first-child{border-right:1px solid var(--line);}
.split-panel .pcontent{position:relative;z-index:2;max-width:34ch;}
.split-panel h3{font-size:clamp(1.7rem,3vw,2.4rem);}
.split-panel .num{font-family:var(--serif);font-size:1rem;color:var(--amber);letter-spacing:.3em;margin-bottom:1rem;display:block;}
@media(max-width:760px){.split{grid-template-columns:1fr;}.split-panel:first-child{border-right:0;border-bottom:1px solid var(--line);}.split-panel{min-height:420px;}}

/* ---------- Generic grid cards ---------- */
.grid{display:grid;gap:1.5rem;}
.grid.cols-2{grid-template-columns:repeat(2,1fr);}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
@media(max-width:900px){.grid.cols-3{grid-template-columns:1fr 1fr;}}
@media(max-width:680px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr;}}

.card{
  background:linear-gradient(180deg,var(--panel),var(--ink));
  border:1px solid var(--line);padding:2rem;position:relative;
  transition:border-color .35s ease,transform .35s ease,box-shadow .35s ease;
}
.card:hover{border-color:rgba(224,161,66,.4);transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(0,0,0,.9);}
.card .kicker{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--amber);margin-bottom:.8rem;display:block;}
.card h3{color:var(--cloud);margin-bottom:.5rem;}
.card p{font-size:.96rem;color:var(--silver);margin-bottom:1rem;}
.card .links a{display:inline-flex;align-items:center;gap:.4rem;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--amber-bright);font-weight:600;margin-right:1.2rem;}
.card .links a:hover{color:var(--amber);}
.card .links a::after{content:"↗";font-size:.85em;}

/* feature row (image + text alternating) */
.feature{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;margin:clamp(3rem,7vw,6rem) 0;}
.feature.reverse{direction:rtl;}
.feature.reverse>*{direction:ltr;}
.feature .media{position:relative;overflow:hidden;border:1px solid var(--line);}
.feature .media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform .8s ease;}
.feature:hover .media img{transform:scale(1.05);}
.feature .media .tag{position:absolute;left:1rem;bottom:1rem;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cloud);background:rgba(8,8,10,.7);padding:.4rem .8rem;border:1px solid var(--line);backdrop-filter:blur(6px);}
@media(max-width:780px){.feature{grid-template-columns:1fr;}.feature.reverse{direction:ltr;}}

/* video embeds (Vimeo) */
.vid{position:relative;padding-top:56.25%;margin:1.6rem 0;border:1px solid var(--line);background:#000;overflow:hidden;}
.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.vid-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;margin:1.6rem 0;}
@media(max-width:760px){.vid-grid{grid-template-columns:1fr;}}
.cap{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fog);margin:.5rem 0 0;}

/* poster / artwork gallery (contain, never crop) */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.8rem 0;}
@media(max-width:820px){.gallery{grid-template-columns:1fr 1fr;}}
.gallery figure{margin:0;border:1px solid var(--line);background:#0d0d11;padding:.55rem;transition:border-color .3s ease,transform .3s ease;}
.gallery figure:hover{border-color:rgba(224,161,66,.4);transform:translateY(-3px);}
.gallery img{width:100%;height:230px;object-fit:contain;background:#0d0d11;}
.gallery figcaption{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog);margin-top:.55rem;text-align:center;}

/* chips / tags */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.2rem 0;}
.chip{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);border:1px solid var(--line);padding:.4rem .8rem;border-radius:40px;}
.chip.amber{color:var(--amber-bright);border-color:rgba(224,161,66,.4);}
a.chip{cursor:pointer;transition:color .25s ease,border-color .25s ease,background .25s ease;}
a.chip:hover{color:var(--amber-bright);border-color:rgba(224,161,66,.55);background:rgba(224,161,66,.08);}

/* stat band */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.stats .stat{background:var(--ink);padding:2rem 1.5rem;text-align:center;}
.stats .stat .big{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);color:var(--amber-bright);line-height:1;}
.stats .stat .lbl{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--fog);margin-top:.6rem;}
@media(max-width:680px){.stats{grid-template-columns:1fr 1fr;}}

/* pull quote / watermark */
.quote-band{position:relative;padding:clamp(4rem,9vw,7rem) 0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.quote-band .watermark{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-style:italic;
  font-size:clamp(4rem,18vw,16rem);color:rgba(255,255,255,.025);white-space:nowrap;pointer-events:none;letter-spacing:.02em;}
.quote-band blockquote{position:relative;z-index:2;max-width:60ch;margin:0 auto;text-align:center;
  font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,3vw,2.2rem);line-height:1.45;color:var(--cloud);}
.quote-band .attrib{display:block;margin-top:1.4rem;font-family:var(--sans);font-style:normal;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--amber);}

/* timeline list */
.tl{border-left:1px solid var(--line);margin:2rem 0;padding-left:0;}
.tl li{list-style:none;position:relative;padding:0 0 2rem 2rem;}
.tl li::before{content:"";position:absolute;left:-5px;top:.55rem;width:9px;height:9px;background:var(--amber);border-radius:50%;box-shadow:0 0 0 4px rgba(224,161,66,.12);}
.tl li .yr{font-family:var(--serif);color:var(--amber-bright);font-size:1.1rem;margin-right:.6rem;}
.tl li h4{display:inline;font-family:var(--sans);font-size:1rem;font-weight:600;color:var(--cloud);}
.tl li p{font-size:.92rem;margin:.4rem 0 0;color:var(--fog);}

/* simple prose blocks */
.prose{max-width:70ch;}
.prose p{font-size:1.05rem;}
.prose .first::first-letter{font-family:var(--serif);float:left;font-size:4.4rem;line-height:.8;padding:.1em .12em 0 0;color:var(--amber-bright);}

/* link list (contact) */
.linklist{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
@media(max-width:680px){.linklist{grid-template-columns:1fr;}}
.linklist a{background:var(--ink);padding:1.4rem 1.6rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;transition:background .3s ease;}
.linklist a:hover{background:var(--panel-2);}
.linklist a .l-main{display:flex;flex-direction:column;}
.linklist a .l-name{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--amber-bright);font-weight:600;}
.linklist a .l-sub{font-size:.85rem;color:var(--fog);margin-top:.2rem;}
.linklist a .l-arrow{color:var(--fog);font-size:1.2rem;transition:transform .3s ease,color .3s ease;}
.linklist a:hover .l-arrow{transform:translate(3px,-3px);color:var(--amber);}

/* ---------- Footer ---------- */
.footer{border-top:1px solid var(--line);padding:clamp(3rem,6vw,4.5rem) 0 2.5rem;background:var(--ink);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;margin-bottom:3rem;}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr;gap:1.8rem;}}
.footer h5{font-family:var(--sans);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--fog);margin:0 0 1.1rem;}
.footer .fcol a{display:block;font-size:.92rem;color:var(--silver);margin-bottom:.6rem;}
.footer .fcol a:hover{color:var(--amber-bright);}
.footer .blurb{font-family:var(--serif);font-size:1.15rem;color:var(--silver);max-width:34ch;line-height:1.5;}
.footer .motto{color:var(--amber);font-style:italic;}
.footer-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.8rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--fog);letter-spacing:.04em;}

/* reveal on scroll — progressive enhancement.
   Content is hidden ONLY when JS is active (html.js). If JS is missing
   or fails, .reveal stays fully visible, so nothing can get stuck invisible. */
.reveal{transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);}
.js .reveal{opacity:0;transform:translateY(26px);}
.reveal.in,.js .reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .reveal,.js .reveal{opacity:1;transform:none;}
  .hero-bg img,.page-hero .hero-bg img{animation:none;}
}
