/* ============================================================
   RIVAYATE BY HEXAREEL STUDIOS — "The Premiere" (v2)
   Ivory-first. Black appears only for cinema moments:
   the hero, the screening room, the film strip.
   Type: Brinova/Bebas for structure · Cormorant italic for feeling.
   One accent: champagne gold #C6A15B.
   ============================================================ */

/* ---------- cross-document view transitions (2026): cinematic cut between pages.
   Default crossfade only; degrades to instant nav in older browsers.
   Reduced motion = hard cut (no fade). ---------- */
@view-transition{navigation:auto;}
@media (prefers-reduced-motion:reduce){
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important;}
}


@font-face{
  font-family:'Brinova';
  src:url('../assets/fonts/brinova-regular.woff2') format('woff2'),
      url('../assets/fonts/brinova-regular.ttf') format('truetype');
  font-weight:400;font-display:swap;
}

:root{
  --ivory:#f6f1e9; --paper:#fffdf8; --ink:#181510; --soft:#5c5343;
  --black:#0e0c0a; --gold:#c6a15b; --gold-deep:#a9853f;
  --line:#d9cfbc; --line-soft:#e7dfd0;
  --g4:#8d8375; --g5:#c9bfae;
  --display:'Brinova','Bebas Neue',Impact,sans-serif;
  --body:'Quicksand',-apple-system,BlinkMacSystemFont,sans-serif;
  --serif:'Cormorant Garamond',Georgia,serif;
  --shadow:0 18px 60px rgba(24,21,16,.16);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{background:var(--ivory);color:var(--ink);font-family:var(--body);overflow-x:hidden;}
::selection{background:var(--gold);color:var(--black);}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,.display{font-family:var(--display);font-weight:400;letter-spacing:.02em;}
.serif{font-family:var(--serif);font-style:italic;font-weight:500;letter-spacing:.01em;text-transform:none;}
.wrap{max-width:1440px;margin:0 auto;padding-left:max(5vw,20px);padding-right:max(5vw,20px);}
@media (max-width:880px){.wrap{padding-left:max(7vw,30px);padding-right:max(7vw,30px);}}
section.dark{background:var(--black);color:var(--ivory);}

/* ---------- grain (whisper-quiet on ivory) ---------- */
.grain{position:fixed;inset:-100px;pointer-events:none;z-index:2000;opacity:.033;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 800ms steps(6) infinite;will-change:transform;contain:strict;}
@media (pointer:coarse),(max-width:820px){.grain{animation:none;inset:0;}}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-30px,20px)}40%{transform:translate(20px,-30px)}60%{transform:translate(-20px,-20px)}80%{transform:translate(30px,10px)}100%{transform:translate(0,0)}}

/* ---------- preloader : a focus pull, not a countdown ---------- */
#loader{position:fixed;inset:0;background:var(--ivory);z-index:3000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;transition:opacity .9s ease,visibility .9s;}
#loader.done{opacity:0;visibility:hidden;}
#loader .ringy{width:min(30vmin,190px);height:min(30vmin,190px);border-radius:50%;position:relative;}
#loader .ringy::before{content:'';position:absolute;inset:0;border-radius:50%;border:1px solid var(--line);}
#loader .ringy::after{content:'';position:absolute;inset:0;border-radius:50%;border:1px solid transparent;border-top-color:var(--gold);animation:spin 1.3s cubic-bezier(.6,.15,.4,.85) infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
#loader .word{font-family:var(--serif);font-style:italic;font-size:clamp(22px,3.4vw,36px);color:var(--ink);opacity:0;animation:wordin 1.4s ease .3s forwards;}
@keyframes wordin{to{opacity:1}}
#loader .tagl{display:flex;align-items:baseline;gap:9px;}
#loader .tagl .mark{font-family:var(--display);font-size:16px;letter-spacing:.34em;color:var(--ink);}
#loader .tagl .by{font-family:var(--serif);font-style:italic;font-weight:500;font-size:13px;color:var(--gold-deep);}

/* ---------- cursor : the golden arrow ---------- */
#cursor{position:fixed;top:0;left:0;width:28px;height:28px;pointer-events:none;z-index:2500;will-change:transform;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 2 L4 21 L9.2 16.4 L12.6 23 L15.6 21.5 L12.3 15 L19 14.6 Z' fill='%23C6A15B' stroke='%23F6F1E9' stroke-width='1.1'/%3E%3C/svg%3E") no-repeat center/contain;
  filter:drop-shadow(0 1px 3px rgba(14,12,10,.4));transition:width .25s,height .25s,opacity .3s;}
#cursor.big{width:38px;height:38px;}
#cursor.off{opacity:0;}
@media (hover:hover) and (pointer:fine){
  body,a,button,.tile,summary,.btn{cursor:none;}
  input,textarea,select{cursor:text;}
  select{cursor:auto;}
}
@media (hover:none),(pointer:coarse){#cursor{display:none;}}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:1500;display:flex;align-items:center;justify-content:space-between;padding:22px max(5vw,20px);transition:background .5s;}
nav .logo{display:flex;align-items:baseline;gap:11px;}
nav .logo .mark{font-family:var(--display);font-size:25px;letter-spacing:.15em;line-height:1;color:inherit;}
nav .logo .by{font-family:var(--serif);font-style:italic;font-weight:500;font-size:14px;letter-spacing:.01em;color:var(--gold);white-space:nowrap;}
nav .links{display:flex;gap:clamp(18px,2.6vw,38px);font-size:11.5px;letter-spacing:.28em;font-weight:600;}
nav .links a{position:relative;padding:4px 0;white-space:nowrap;}
nav .links a::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .35s;}
nav .links a:hover::after,nav .links a[aria-current]::after{width:100%;}
#burger{display:none;background:none;border:none;color:inherit;font-family:var(--body);font-size:12px;letter-spacing:.3em;font-weight:700;cursor:pointer;padding:8px 0;}
/* light pages: ink text on soft ivory gradient */
body.light nav{background:linear-gradient(180deg,rgba(246,241,233,.94) 0%,rgba(246,241,233,.6) 60%,rgba(246,241,233,0) 100%);color:var(--ink);}
/* .logo .mark inherits nav colour (ivory over the hero, ink on light pages); .by stays gold */
/* cinema hero pages: ivory text over the film */
body.cinema-top nav{background:linear-gradient(180deg,rgba(14,12,10,.6) 0%,rgba(14,12,10,.22) 55%,rgba(14,12,10,0) 100%);color:var(--ivory);}
#menu{position:fixed;inset:0;background:var(--ivory);z-index:1400;display:flex;flex-direction:column;justify-content:center;padding:0 8vw;gap:2px;transform:translateY(-101%);transition:transform .6s cubic-bezier(.77,0,.18,1);color:var(--ink);}
#menu.open{transform:translateY(0);}
#menu a{font-family:var(--display);font-size:clamp(40px,11vw,90px);line-height:1.05;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;}
#menu a span{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--gold-deep);}
@media (max-width:880px){nav .links{display:none;}#burger{display:block;}}
@media (max-width:600px){nav .logo{gap:8px;}nav .logo .mark{font-size:21px;letter-spacing:.12em;}nav .logo .by{font-size:12px;}}
@media (max-width:360px){nav .logo .by{display:none;}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--ink);color:var(--ink);background:transparent;padding:16px 34px;font-family:var(--body);font-size:11.5px;letter-spacing:.28em;font-weight:700;cursor:pointer;transition:background .35s,color .35s,border-color .35s;will-change:transform;text-align:center;}
.btn:hover{background:var(--ink);color:var(--ivory);}
.btn.solid{background:var(--ink);color:var(--ivory);}
.btn.solid:hover{background:transparent;color:var(--ink);}
.btn.gold{border-color:var(--gold-deep);color:var(--gold-deep);}
.btn.gold:hover{background:var(--gold);border-color:var(--gold);color:var(--black);}
.dark .btn,.btn.onfilm{border-color:var(--ivory);color:var(--ivory);}
.dark .btn:hover,.btn.onfilm:hover{background:var(--ivory);color:var(--black);}
.dark .btn.solid,.btn.onfilm.solid{background:var(--ivory);color:var(--black);}
.dark .btn.solid:hover,.btn.onfilm.solid:hover{background:transparent;color:var(--ivory);}

/* ---------- section heading ---------- */
.num-head{display:flex;align-items:baseline;gap:20px;margin-bottom:6vh;flex-wrap:wrap;}

.num-head .no{font-size:clamp(15px,1.6vw,22px);color:var(--gold-deep);line-height:1;}
.num-head h2{font-size:clamp(38px,6vw,96px);line-height:.95;}
.num-head .side{margin-left:auto;font-size:12px;opacity:.6;max-width:280px;line-height:1.7;}
@media (max-width:700px){.num-head .side{display:none;}}

/* ---------- home hero : the opening frame ---------- */
#hero{position:relative;height:100svh;min-height:540px;background:var(--black);overflow:hidden;color:var(--ivory);}
#hero video,#hero .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.94;transform:scale(1.05);animation:heroDrift 30s ease-in-out infinite alternate;}
@keyframes heroDrift{from{transform:scale(1.05)}to{transform:scale(1.12) translate3d(0,-1.2%,0)}}
#hero .vig{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,12,10,.5) 0%,rgba(14,12,10,.15) 30%,rgba(14,12,10,.2) 62%,rgba(14,12,10,.82) 100%);}
#hero .hcopy{position:absolute;left:0;right:0;bottom:9vh;z-index:6;text-align:center;padding:0 20px;}
#hero .hcopy .over{font-family:var(--serif);font-style:italic;font-size:clamp(17px,2vw,26px);color:var(--g5);display:block;margin-bottom:14px;opacity:0;animation:rise 1.6s cubic-bezier(.2,.8,.2,1) .4s forwards;}
#hero .hcopy h1{font-size:clamp(52px,9.6vw,170px);line-height:.92;opacity:0;animation:rise 1.6s cubic-bezier(.2,.8,.2,1) .7s forwards;}
#hero .hcopy h1 .gl{display:block;color:transparent;-webkit-text-stroke:1.5px var(--ivory);}
#hero .hcopy .under{margin-top:22px;font-size:10.5px;letter-spacing:.4em;color:var(--gold);opacity:0;animation:rise 1.6s ease 1.1s forwards;}
@keyframes rise{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
#hero .label{position:absolute;top:92px;left:max(5vw,20px);z-index:6;font-size:10px;letter-spacing:.35em;display:flex;align-items:center;gap:8px;}
#hero .label::before{content:'\25B6';font-size:9px;color:var(--gold);}
#tc{position:absolute;top:92px;right:max(5vw,20px);z-index:6;font-size:11px;letter-spacing:.25em;display:flex;gap:10px;align-items:center;}
#tc .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);animation:blink 1.1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}
.scrolldown{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:6;width:1px;height:46px;background:rgba(246,241,233,.3);overflow:hidden;}
.scrolldown::after{content:'';position:absolute;top:-50%;left:0;width:100%;height:50%;background:var(--gold);animation:drop 1.7s ease-in-out infinite;}
@keyframes drop{to{top:110%;}}
@media (max-width:860px){#hero{height:92svh;min-height:460px;}}

/* ---------- inner page hero (ivory) ---------- */
.page-hero{padding-top:24vh;padding-bottom:9vh;position:relative;overflow:hidden;}
.page-hero .kick{font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.9vw,24px);color:var(--gold-deep);display:block;margin-bottom:14px;}
.page-hero h1{font-size:clamp(52px,10.5vw,180px);line-height:.9;}
.page-hero h1 .ghost{display:block;color:transparent;-webkit-text-stroke:1px var(--g4);}
.page-hero .lede{margin-top:26px;max-width:600px;color:var(--soft);line-height:1.85;font-size:clamp(14px,1.2vw,17px);}

/* ---------- vow line (serif statement, word by word) ---------- */
.vowsec{padding:15vh 0 11vh;}
.vow{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(30px,4.6vw,72px);line-height:1.22;max-width:1150px;}
.vow .w{opacity:.1;transition:opacity .5s ease;}
.vow .w.on{opacity:1;}
.vow .gold{color:var(--gold-deep);}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:2vw;margin-top:9vh;}
.stat{border-left:1px solid var(--line);padding-left:clamp(16px,1.8vw,28px);}
.stat .num{font-family:var(--display);font-size:clamp(44px,6vw,96px);line-height:1;}
.stat .num em{font-family:var(--serif);font-style:italic;font-size:.55em;color:var(--gold-deep);}
.stat .lbl{font-size:10.5px;letter-spacing:.26em;color:var(--soft);margin-top:8px;}
@media (max-width:700px){.stats{grid-template-columns:repeat(2,1fr);gap:36px 4vw;}}

/* ---------- the album : photos as prints ---------- */
.album{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(84px,9vw,140px) clamp(20px,3.4vw,54px);align-items:start;}
@media (max-width:860px){.album{grid-template-columns:repeat(2,1fr);}}
@media (max-width:540px){.album{grid-template-columns:1fr;max-width:340px;margin:0 auto;}}
.print{background:var(--paper);padding:12px 12px 44px;box-shadow:var(--shadow);transform:rotate(var(--tilt,0deg));transition:transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .7s;position:relative;}
.print:hover{transform:rotate(0deg) translateY(-8px);box-shadow:0 30px 80px rgba(24,21,16,.24);}
.print img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.print .plabel{position:absolute;left:14px;bottom:12px;right:14px;display:flex;justify-content:space-between;align-items:baseline;}
.print .plabel .serif{font-size:clamp(14px,1.3vw,19px);color:var(--soft);}
.print .plabel .no{font-size:9px;letter-spacing:.28em;color:var(--gold-deep);}
.print.t-l{--tilt:-2.2deg;}
.print.t-r{--tilt:1.8deg;}
.print.t-s{--tilt:-1deg;}
.print.down{transform:rotate(var(--tilt,0deg)) translateY(clamp(20px,4vw,64px));}
.print.down:hover{transform:rotate(0deg) translateY(clamp(12px,3.5vw,56px));}

/* reserved print (awaiting real stills — never fake imagery) */
.print .empty{width:100%;aspect-ratio:4/5;background:linear-gradient(160deg,#efe8db,#e6dcc9);display:flex;align-items:center;justify-content:center;text-align:center;}
.print .empty span{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--g4);padding:0 18px;line-height:1.6;}

/* ---------- full-bleed frame ---------- */
.gpanel{position:relative;display:block;height:100svh;min-height:480px;overflow:hidden;background:var(--black);}
.gpanel img{position:absolute;inset:0;width:100%;height:112%;object-fit:cover;will-change:transform;}
.gpanel .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,12,10,.3),rgba(14,12,10,0) 35%,rgba(14,12,10,0) 62%,rgba(14,12,10,.62));}
.gpanel .cap{position:absolute;left:max(5vw,20px);right:max(5vw,20px);bottom:6vh;z-index:3;color:var(--ivory);}
.gpanel .cap .tcx{font-size:10px;letter-spacing:.3em;color:var(--gold);display:block;margin-bottom:12px;}
.gpanel .cap .line{font-family:var(--serif);font-style:italic;font-size:clamp(22px,3vw,42px);line-height:1.25;max-width:720px;display:block;}
.gpanel .cap .tiny{display:block;margin-top:12px;font-size:9px;letter-spacing:.3em;color:rgba(246,241,233,.6);}

/* ---------- collage (gallery) : editorial masonry, no crops ---------- */
.collage{columns:3 300px;column-gap:clamp(16px,1.8vw,28px);}
.citem{position:relative;display:inline-block;width:100%;margin-bottom:clamp(16px,1.8vw,28px);break-inside:avoid;background:var(--paper);padding:10px;box-shadow:0 12px 40px rgba(24,21,16,.12);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s;}
.citem:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(24,21,16,.2);}
.citem img{width:100%;height:auto;display:block;}
.citem .fr{position:absolute;top:18px;left:20px;font-size:9px;letter-spacing:.28em;color:rgba(246,241,233,.85);z-index:2;text-shadow:0 0 10px rgba(0,0,0,.6);}

/* ---------- the screening room (cinema moment) ---------- */
#projector{padding:15vh 0;overflow:hidden;position:relative;}
.proj-head{text-align:center;margin-bottom:7vh;}
.proj-head h2{font-size:clamp(40px,6.5vw,100px);line-height:1;}
.proj-head .sub{font-family:var(--serif);font-style:italic;color:var(--g5);max-width:520px;margin:16px auto 0;line-height:1.7;font-size:clamp(16px,1.6vw,21px);}
.proj-stage{position:relative;max-width:1100px;margin:0 auto;}
.beam{position:absolute;left:-6%;top:50%;transform:translateY(-50%);width:112%;height:82%;
  background:radial-gradient(ellipse at left center,rgba(198,161,91,.16),rgba(198,161,91,0) 62%);pointer-events:none;z-index:2;}
.screen{position:relative;aspect-ratio:16/9;background:#151210;overflow:hidden;box-shadow:0 50px 140px rgba(0,0,0,.7);}
.screen .reel-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity 1.4s ease,transform 4s ease;}
.screen .reel-img.on{opacity:1;transform:scale(1);}
.screen .flicker{position:absolute;inset:0;background:rgba(246,241,233,.05);opacity:0;pointer-events:none;animation:flick 2.6s steps(2) infinite;}
@keyframes flick{8%{opacity:.4}9%{opacity:0}54%{opacity:.3}55%{opacity:0}}
.screen .svig{position:absolute;inset:0;box-shadow:inset 0 0 150px rgba(0,0,0,.8);pointer-events:none;}
.screen .sc-lb{position:absolute;bottom:16px;left:18px;font-size:10px;letter-spacing:.3em;color:rgba(246,241,233,.6);z-index:4;}
.proj-strip{display:flex;justify-content:center;gap:8px;margin-top:28px;}
.proj-strip button{width:34px;height:3px;background:#3a332a;border:none;cursor:pointer;transition:background .3s;padding:0;}
.proj-strip button.on{background:var(--gold);}
.sprockets{height:12px;max-width:1100px;margin:0 auto;background-image:repeating-linear-gradient(90deg,#241f19 0 16px,transparent 16px 40px);}

/* ---------- film strip (dark ribbon) ---------- */
.stripwrap{background:var(--black);color:var(--ivory);padding:9vh 0;overflow:hidden;}
.stripwrap .mq-head{color:var(--ivory);}
.strip{display:flex;gap:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:18px 5vw;
  background-image:repeating-linear-gradient(90deg,#241f19 0 16px,transparent 16px 40px),repeating-linear-gradient(90deg,#241f19 0 16px,transparent 16px 40px);
  background-size:100% 10px,100% 10px;background-position:top,bottom;background-repeat:no-repeat;}
.strip::-webkit-scrollbar{display:none;}
.strip .cell{flex:0 0 clamp(340px,44vw,600px);aspect-ratio:3/2;position:relative;overflow:hidden;background:#151210;}
.strip-ctl{display:inline-flex;gap:10px;align-items:center;}
.strip-ctl button{width:38px;height:38px;border-radius:50%;border:1px solid rgba(246,241,233,.4);background:transparent;color:var(--ivory);font-size:12px;line-height:1;cursor:pointer;transition:border-color .3s,background .3s,color .3s;font-family:var(--body);}
.strip-ctl button:hover{border-color:var(--gold);}
.strip-ctl button.on{background:var(--gold);color:var(--black);border-color:var(--gold);}
.strip .cell img{width:100%;height:100%;object-fit:cover;transition:transform .8s;}
.strip .cell:hover img{transform:scale(1.04);}
.strip .cell .fr{position:absolute;bottom:10px;right:12px;font-size:9px;letter-spacing:.28em;color:rgba(246,241,233,.8);}
.strip .cell.slotc{display:flex;align-items:center;justify-content:center;text-align:center;}
.strip .cell.slotc span{font-family:var(--serif);font-style:italic;font-size:15px;color:#6d6353;padding:0 18px;line-height:1.6;}

/* ---------- take forever (home: the name, explained) ---------- */
.takesec{text-align:center;}
.takesec .tf-kick{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.4vw,18px);color:var(--gold-deep);margin-bottom:20px;}
.takesec h2{font-family:var(--display);font-size:clamp(44px,6.4vw,96px);line-height:.98;letter-spacing:.02em;}
.takesec h2 .ghost{display:block;color:transparent;-webkit-text-stroke:1px var(--g4);}
.takesec .tf-copy{max-width:540px;margin:36px auto 0;}
.takesec .tf-copy p{font-size:15px;line-height:1.9;color:var(--soft);margin-bottom:16px;}
.takesec .tf-line{font-family:var(--serif);font-style:italic;font-size:clamp(32px,3.6vw,48px);line-height:1.2;color:var(--ink);margin-top:34px;}
.takesec .tf-line::after{content:'';display:block;width:56px;height:1px;background:var(--gold);margin:26px auto 0;}

/* ---------- service rows ---------- */
.rows-section{padding:13vh 0;}
.srow{position:relative;display:block;border-top:1px solid var(--line);padding:4.4vh 0;overflow:hidden;}
.srow:last-of-type{border-bottom:1px solid var(--line);}
.srow .inner{display:flex;align-items:baseline;gap:clamp(12px,2vw,24px);}
.srow .idx{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--gold-deep);min-width:44px;flex-shrink:0;}
.srow .name{font-family:var(--display);font-size:clamp(30px,5.6vw,96px);line-height:.95;transition:transform .5s cubic-bezier(.2,.8,.2,1),color .4s;overflow-wrap:anywhere;}
.srow:hover .name{transform:translateX(16px);color:var(--gold-deep);}
.srow .tag{font-size:12.5px;color:var(--soft);max-width:300px;text-align:right;line-height:1.7;margin-left:auto;flex-shrink:0;}
.srow .peek{position:absolute;top:50%;left:56%;width:min(270px,32vw);aspect-ratio:4/3;object-fit:cover;transform:translate(-50%,-50%) scale(0) rotate(3deg);transition:transform .5s cubic-bezier(.2,.8,.2,1);pointer-events:none;z-index:2;box-shadow:var(--shadow);border:8px solid var(--paper);}
.srow:hover .peek{transform:translate(-50%,-50%) scale(1) rotate(-2deg);}
@media (max-width:760px){.srow .tag{display:none;}.srow .peek{display:none;}}

/* ---------- serif marquee ---------- */
.credits{padding:8vh 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);overflow:hidden;}
.mq{display:flex;white-space:nowrap;will-change:transform;align-items:baseline;}
.mq span{font-family:var(--serif);font-style:italic;font-size:clamp(30px,4.6vw,70px);line-height:1.3;padding:0 2.4vw;color:var(--ink);}
.mq span.out{color:transparent;-webkit-text-stroke:1px var(--g4);font-family:var(--display);font-style:normal;font-size:clamp(34px,5.2vw,80px);}
.mq.a{animation:mqa 46s linear infinite;}
.mq.b{animation:mqb 42s linear infinite;}
@keyframes mqa{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mqb{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.mq-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:5vh;font-size:clamp(28px,4.2vw,60px);line-height:1;}
.mq-head span{font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:.05em;color:var(--gold-deep);font-weight:500;}

/* ---------- masterminds ---------- */
.minds{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,70px);}
@media (max-width:820px){.minds{grid-template-columns:1fr;gap:56px;}}
.mind .ph{position:relative;background:var(--paper);padding:12px 12px 16px;box-shadow:var(--shadow);}
.mind .ph img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:sepia(.38) saturate(.72) contrast(1.04);transition:filter .8s ease;}
.mind:hover .ph img{filter:sepia(0) saturate(1) contrast(1.02);}
.mind h3{font-size:clamp(30px,3vw,46px);margin-top:26px;}
.mind .role{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--gold-deep);margin-top:6px;}
.mind p.about{font-size:14.5px;line-height:1.9;color:var(--soft);margin-top:16px;max-width:520px;}

/* ---------- masterminds + team : living prints ---------- */
.mind .ph{transform:rotate(-1.6deg);transition:transform .8s cubic-bezier(.2,.8,.2,1),box-shadow .8s;}
.mind:nth-child(even) .ph{transform:rotate(1.4deg);}
.mind:hover .ph{transform:rotate(0deg) translateY(-8px);box-shadow:0 30px 80px rgba(24,21,16,.24);}
.team-grid .member .ph{transform:rotate(-1.2deg);transition:transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .7s;}
.team-grid .member:nth-child(even) .ph{transform:rotate(1.1deg);}
.team-grid .member:hover .ph{transform:rotate(0deg) translateY(-6px);box-shadow:0 20px 50px rgba(24,21,16,.2);}
.team-grid .member:nth-child(2){transition-delay:.08s;}
.team-grid .member:nth-child(3){transition-delay:.16s;}
.team-grid .member:nth-child(4){transition-delay:.24s;}
.team-grid .member:nth-child(5){transition-delay:.32s;}
.team-grid .member:nth-child(6){transition-delay:.4s;}
.team-grid .member:nth-child(7){transition-delay:.48s;}
.team-grid .member:nth-child(8){transition-delay:.56s;}

/* ---------- team ---------- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(18px,2.4vw,40px);}
@media (max-width:520px){.team-grid{grid-template-columns:repeat(2,1fr);gap:16px;}}
.member{position:relative;}
.member .ph{aspect-ratio:3/4;overflow:hidden;background:var(--paper);padding:8px;box-shadow:0 10px 34px rgba(24,21,16,.12);}
.member .ph img{width:100%;height:100%;object-fit:cover;filter:sepia(.38) saturate(.72) contrast(1.04);transition:transform .7s,filter .8s ease;}
.member:hover .ph img{transform:scale(1.04);filter:sepia(0) saturate(1) contrast(1.02);}
.member h4{font-family:var(--display);font-size:clamp(18px,1.8vw,26px);margin-top:16px;letter-spacing:.04em;}
.member p{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--gold-deep);margin-top:3px;}
.member .bio{font-family:var(--body);font-style:normal;font-size:12.5px;color:var(--soft);margin-top:8px;line-height:1.75;}

/* ---------- reviews / kind words ---------- */
.kfeat{text-align:center;max-width:980px;margin:0 auto 8vh;}
.kfeat .stars{color:var(--gold-deep);font-size:15px;letter-spacing:.4em;display:block;margin-bottom:26px;}
.kfeat .q{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(26px,3.6vw,52px);line-height:1.3;color:var(--ink);}
.kfeat .who{display:block;margin-top:26px;font-size:10.5px;letter-spacing:.3em;color:var(--soft);text-transform:uppercase;}
.kmore{text-align:center;margin-top:7vh;}
.kmore a{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--gold-deep);border-bottom:1px solid var(--g5);padding-bottom:3px;transition:border-color .3s;}
.kmore a:hover{border-color:var(--gold-deep);}
.kind{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,32px);}
@media (max-width:860px){.kind{grid-template-columns:1fr;}}
.kcard{background:var(--paper);padding:36px 32px;box-shadow:0 10px 40px rgba(24,21,16,.1);display:flex;flex-direction:column;gap:18px;}
.kcard .stars{color:var(--gold-deep);font-size:13px;letter-spacing:.3em;}
.kcard .q{font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.5vw,21px);line-height:1.55;color:var(--ink);flex:1;}
.kcard .who{font-size:10.5px;letter-spacing:.24em;color:var(--soft);text-transform:uppercase;}

/* ---------- coverage timeline (the wedding week) ---------- */
.tl{position:relative;max-width:1080px;margin:0 auto;padding:3vh 0;}
.tl::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--gold) 12%,var(--gold) 88%,transparent);}
.tl-item{position:relative;width:50%;padding:26px 56px 26px 0;text-align:right;}
.tl-item:nth-child(even){margin-left:50%;padding:26px 0 26px 56px;text-align:left;}
.tl-item .dot{position:absolute;top:38px;right:-6px;width:11px;height:11px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--gold-deep);z-index:2;}
.tl-item:nth-child(even) .dot{right:auto;left:-6px;}
.tl-item .when{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--gold-deep);display:block;margin-bottom:6px;}
.tl-item h4{font-family:var(--display);font-size:clamp(22px,2.4vw,34px);letter-spacing:.03em;line-height:1;}
.tl-item p{font-size:13.5px;line-height:1.75;color:var(--soft);margin-top:8px;max-width:380px;display:inline-block;}
@media (max-width:720px){
  .tl::before{left:8px;}
  .tl-item,.tl-item:nth-child(even){width:100%;margin-left:0;padding:20px 0 20px 40px;text-align:left;}
  .tl-item .dot,.tl-item:nth-child(even) .dot{left:3px;right:auto;top:30px;}
}

/* ---------- add-on cards ---------- */
.addons{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,26px);}
@media (max-width:760px){.addons{grid-template-columns:1fr;}}
.acard{background:var(--paper);border:1px solid var(--line-soft);padding:32px 26px;box-shadow:0 8px 30px rgba(24,21,16,.06);transition:transform .35s,border-color .35s;}
.acard:hover{transform:translateY(-5px);border-color:var(--gold);}
.acard svg{width:34px;height:34px;stroke:var(--gold-deep);fill:none;stroke-width:1.4;margin-bottom:18px;}
.acard h4{font-family:var(--display);font-size:clamp(18px,1.7vw,24px);letter-spacing:.03em;margin-bottom:8px;}
.acard p{font-size:13px;line-height:1.75;color:var(--soft);}

/* ---------- experience: tiers ---------- */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:2vw;align-items:stretch;}
@media (max-width:900px){.tiers{grid-template-columns:1fr;gap:26px;}}
.tier{border:1px solid var(--line);background:var(--paper);padding:46px 38px;display:flex;flex-direction:column;position:relative;box-shadow:0 10px 40px rgba(24,21,16,.07);}
.tier.feature{border-color:var(--gold);box-shadow:0 24px 70px rgba(169,133,63,.2);}
.tier .pick{position:absolute;top:-1px;left:38px;transform:translateY(-50%);background:var(--paper);padding:0 14px;font-family:var(--serif);font-style:italic;font-size:14px;color:var(--gold-deep);}
.tier h3{font-size:clamp(24px,2.2vw,34px);letter-spacing:.04em;white-space:nowrap;}
.tier .crew{margin-top:8px;font-size:10.5px;letter-spacing:.24em;color:var(--soft);min-height:2.6em;}
.tier .price{margin:18px 0 6px;font-family:var(--display);font-size:clamp(34px,3.4vw,54px);line-height:1;}
.tier .price .per{font-family:var(--serif);font-style:italic;font-size:16px;letter-spacing:.04em;color:var(--gold-deep);}
.tier .pnote{font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.55;color:var(--soft);margin-bottom:24px;min-height:4.7em;}
.tier li{min-height:3.3em;display:flex;align-items:center;}
@media (max-width:900px){.tier .crew,.tier .pnote{min-height:0;}.tier li{min-height:0;display:block;}}
.tier ul{list-style:none;border-top:1px solid var(--line-soft);flex:1;}
.tier li{padding:13px 0 13px 26px;border-bottom:1px solid var(--line-soft);font-size:13.5px;line-height:1.65;color:var(--soft);position:relative;}
.tier li::before{content:'';position:absolute;left:2px;top:50%;width:12px;height:1px;background:var(--gold);}
@media (max-width:900px){.tier li::before{top:23px;}}
.tier .btn{margin-top:30px;align-self:flex-start;}
/* the social cut: full-width band under the three film tiers */
.tier.social{grid-column:1/-1;flex-direction:row;align-items:flex-start;gap:clamp(28px,4vw,72px);padding:40px 38px;}
.tier.social .lead{flex:0 0 clamp(220px,24vw,300px);}
.tier.social .crew,.tier.social .pnote{min-height:0;}
.tier.social .pnote{margin-bottom:0;margin-top:14px;}
.tier.social ul{flex:1;border-top:0;display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(20px,2.4vw,40px);align-content:start;}
.tier.social ul li:nth-child(-n+2){border-top:1px solid var(--line-soft);}
.tier.social .btn{margin-top:0;align-self:center;}
@media (max-width:900px){
  .tier.social{flex-direction:column;}
  .tier.social .lead{flex:none;}
  .tier.social ul{grid-template-columns:1fr;width:100%;}
  .tier.social ul li:nth-child(2){border-top:0;}
  .tier.social .btn{align-self:flex-start;margin-top:26px;}
}

/* ---------- steps ---------- */
.steps{counter-reset:st;display:grid;grid-template-columns:repeat(4,1fr);gap:2vw;}
@media (max-width:860px){.steps{grid-template-columns:repeat(2,1fr);gap:32px 4vw;}}
@media (max-width:480px){.steps{grid-template-columns:1fr;}}
.step{counter-increment:st;}
.step::before{content:counter(st,decimal-leading-zero);font-family:var(--serif);font-style:italic;font-size:clamp(30px,3.4vw,48px);display:block;color:var(--gold-deep);margin-bottom:12px;}
.step h4{font-family:var(--display);font-size:clamp(20px,2vw,28px);margin-bottom:10px;letter-spacing:.03em;}
.step p{font-size:13px;line-height:1.75;color:var(--soft);}

/* ---------- content blocks ---------- */
.block{padding:12vh 0;}
.split{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start;}
.split .stick{position:sticky;top:120px;}
@media (max-width:820px){.split{grid-template-columns:1fr;gap:48px;}.split .stick{position:static;}}
.split h3{font-size:clamp(30px,4vw,60px);line-height:1;margin-bottom:20px;}
.split p{line-height:1.9;font-size:15px;color:var(--soft);margin-bottom:18px;}
.split .serifline{font-family:var(--serif);font-style:italic;font-size:clamp(19px,1.9vw,26px);color:var(--ink);line-height:1.5;margin-bottom:22px;}
.checklist{list-style:none;}
.checklist li{padding:18px 0 18px 40px;border-bottom:1px solid var(--line-soft);position:relative;font-size:15px;line-height:1.65;color:#453e30;}
.checklist li::before{content:'';position:absolute;left:4px;top:27px;width:16px;height:1px;background:var(--gold);}
.checklist li strong{font-weight:700;color:var(--ink);}

/* ---------- films ---------- */
.films-grid{display:grid;grid-template-columns:1fr 1fr;gap:3vw;}
.film.featured{grid-column:1/-1;}
@media (max-width:860px){.films-grid{grid-template-columns:1fr;gap:44px;}}
.film .emb{position:relative;aspect-ratio:16/9;background:var(--black);overflow:hidden;box-shadow:var(--shadow);}
.film .emb iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.film .fmeta{display:flex;justify-content:space-between;margin-top:14px;font-size:10px;letter-spacing:.25em;color:var(--soft);}
.film .fmeta .k{color:var(--gold-deep);}
.film .slotf{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;}
.film .slotf span{font-family:var(--serif);font-style:italic;font-size:17px;color:#6d6353;line-height:1.6;padding:0 22px;}

/* ---------- film posters (click to enter the theatre) ---------- */
.fplay{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:var(--black);cursor:pointer;display:block;overflow:hidden;}
.fplay img{width:100%;height:100%;object-fit:cover;filter:sepia(.38) saturate(.72);transition:filter .6s,transform .9s;}
.fplay:hover img,.fplay:focus-visible img{filter:none;transform:scale(1.035);}
.fplay .ring{position:absolute;top:50%;left:50%;width:78px;height:78px;margin:-39px 0 0 -39px;border:1px solid rgba(246,241,233,.9);border-radius:50%;transition:transform .4s,border-color .4s;background:rgba(14,12,10,.25);}
.fplay .ring::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-38%,-50%);border-left:17px solid rgba(246,241,233,.95);border-top:11px solid transparent;border-bottom:11px solid transparent;}
.fplay:hover .ring,.fplay:focus-visible .ring{transform:scale(1.12);border-color:var(--gold);}

/* ---------- the theatre (fullscreen viewing room) ---------- */
#theatre{position:fixed;inset:0;z-index:300;background:#060504;display:none;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .55s ease;}
#theatre.lit{opacity:1;}
#theatre .t-beam{position:absolute;left:50%;top:-12%;width:150vmax;height:70vmax;transform:translateX(-50%);background:radial-gradient(ellipse at 50% 0%,rgba(198,161,91,.13),transparent 62%);pointer-events:none;}
#theatre .sprockets{width:min(1100px,92vw);position:relative;}
#theatre .t-stage{position:relative;width:min(1100px,92vw);aspect-ratio:16/9;background:#000;margin:12px 0;box-shadow:0 30px 120px rgba(0,0,0,.9);}
#theatre .t-stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
#theatre .t-flick{position:absolute;inset:0;background:rgba(246,241,233,.05);opacity:0;pointer-events:none;animation:flick 2.6s steps(2) infinite;}
#theatre .t-leader{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0b0908;}
#theatre .t-leader::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(246,241,233,.14);}
#theatre .t-leader::after{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:rgba(246,241,233,.14);}
#theatre .t-ring{position:absolute;width:34vmin;height:34vmin;border:1px solid rgba(246,241,233,.35);border-radius:50%;}
#theatre .t-sweep{position:absolute;width:34vmin;height:34vmin;border-radius:50%;background:conic-gradient(rgba(246,241,233,.10) 0 var(--p,0%),transparent var(--p,0%));}
#theatre .t-num{font-family:var(--display);font-size:clamp(90px,16vmin,180px);color:var(--ivory);line-height:1;position:relative;}
#theatre .t-cap{display:flex;gap:18px;align-items:baseline;margin-top:22px;}
#theatre .t-cap .n{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.4vw,30px);color:var(--gold);}
#theatre .t-cap .kk{font-size:10px;letter-spacing:.28em;color:rgba(246,241,233,.55);}
#theatre .t-close{position:absolute;top:26px;right:30px;background:transparent;border:1px solid rgba(246,241,233,.4);color:var(--ivory);font-family:var(--body);font-size:10px;letter-spacing:.24em;padding:12px 18px;cursor:pointer;transition:border-color .3s,color .3s;}
#theatre .t-close:hover{border-color:var(--gold);color:var(--gold);}
body.theatre-open{overflow:hidden;}
@media (max-width:820px){#theatre .t-beam{display:none;}#theatre .t-close{top:14px;right:14px;}}
@media (prefers-reduced-motion:reduce){#theatre{transition:none;}#theatre .t-flick{animation:none;}}

/* ---------- contact : the call sheet (no boxes) ---------- */
.csheet{border-bottom:1px solid rgba(198,161,91,.45);}
.crow{display:grid;grid-template-columns:clamp(150px,22vw,260px) 1fr;gap:24px;padding:38px 0;border-top:1px solid rgba(198,161,91,.45);align-items:baseline;}
.crow .clabel{font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.5vw,20px);color:var(--gold-deep);}
.crow h3{font-family:var(--display);font-size:clamp(24px,2.6vw,40px);letter-spacing:.03em;line-height:1;}
.crow p{font-size:13.5px;color:var(--soft);line-height:1.85;margin-top:10px;max-width:560px;}
.crow .cline{display:inline-block;margin:14px 28px 0 0;border-bottom:1px solid var(--g5);padding-bottom:3px;font-size:13px;letter-spacing:.06em;transition:border-color .3s,color .3s;}
.crow .cline:hover{border-color:var(--gold-deep);color:var(--gold-deep);}
@media (max-width:640px){.crow{grid-template-columns:1fr;gap:8px;padding:30px 0;}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2vw;}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;gap:20px;}}
.ccard{background:var(--paper);border:1px solid var(--line-soft);padding:38px 32px;transition:border-color .35s,transform .35s;box-shadow:0 8px 30px rgba(24,21,16,.06);}
.ccard:hover{border-color:var(--gold);transform:translateY(-4px);}
.ccard h3{font-size:clamp(24px,2.4vw,34px);margin-bottom:12px;}
.ccard p{font-size:13.5px;color:var(--soft);line-height:1.85;}
.ccard a.line{display:inline-block;margin-top:16px;border-bottom:1px solid var(--g5);padding-bottom:3px;font-size:13px;letter-spacing:.06em;transition:border-color .3s;}
.ccard a.line:hover{border-color:var(--gold-deep);}

/* ---------- enquiry form ---------- */
.enq{max-width:760px;}
.enq .row2{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media (max-width:640px){.enq .row2{grid-template-columns:1fr;}}
.enq label{display:block;font-size:10px;letter-spacing:.3em;color:var(--soft);margin:28px 0 8px;text-transform:uppercase;}
.enq input,.enq select,.enq textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);font-family:var(--serif);font-style:italic;font-size:17px;padding:10px 2px;outline:none;transition:border-color .3s;border-radius:0;-webkit-appearance:none;}
.enq input:focus,.enq select:focus,.enq textarea:focus{border-color:var(--gold-deep);}
.enq select option{background:var(--paper);color:var(--ink);}
.enq textarea{min-height:90px;resize:vertical;}
.enq .btn{margin-top:38px;}

/* ---------- FAQ ---------- */
.faq{max-width:920px;}
.faq details{border-top:1px solid var(--line);}
.faq details:last-of-type{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px 0;font-family:var(--display);font-size:clamp(17px,2.1vw,26px);line-height:1.15;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+';font-family:var(--serif);font-style:italic;font-size:26px;color:var(--gold-deep);flex-shrink:0;transition:transform .3s;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq .a{padding:0 0 26px;color:var(--soft);line-height:1.9;font-size:14px;max-width:720px;}

/* ---------- cta ---------- */
#cta{padding:8vh 0 16vh;text-align:center;position:relative;overflow:hidden;}
#cta .pre{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2vw,26px);color:var(--gold-deep);display:block;margin-bottom:16px;}
#cta h2{font-size:clamp(44px,9vw,150px);line-height:.95;}
#cta h2 .ghost{color:transparent;-webkit-text-stroke:1px var(--g4);display:block;}
#cta .after{color:var(--soft);margin-top:26px;font-size:14px;padding:0 20px;}
#cta .row{margin-top:44px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;padding:0 20px;}

/* ---------- footer (ivory, serif signature) ---------- */
footer{border-top:1px solid var(--line);padding:9vh 0 0;overflow:hidden;}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:5vw;padding-bottom:7vh;font-size:13px;color:var(--soft);}
.fgrid h4{font-size:10px;letter-spacing:.4em;color:var(--gold-deep);margin-bottom:18px;font-family:var(--body);font-weight:700;text-transform:uppercase;}
.fbrand{margin-bottom:16px;}
.fbrand .mark{display:block;font-family:var(--display);font-size:clamp(27px,3vw,35px);letter-spacing:.13em;line-height:1;color:var(--ink);}
.fbrand .by{display:block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:15px;letter-spacing:.01em;color:var(--gold-deep);margin-top:7px;}
.fgrid a{display:block;margin-bottom:10px;transition:color .3s;}
.fgrid a:hover{color:var(--ink);}
.fgrid .sig{font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.7;color:var(--soft);max-width:320px;}
.fwordmark{font-family:var(--serif);font-style:italic;font-size:clamp(56px,12.5vw,210px);line-height:.9;text-align:center;color:transparent;-webkit-text-stroke:1px var(--g5);letter-spacing:.01em;transform:translateY(14%);user-select:none;white-space:nowrap;}
.fbar{display:flex;justify-content:space-between;padding:18px 0;border-top:1px solid var(--line-soft);font-size:10px;letter-spacing:.22em;color:var(--soft);gap:10px;flex-wrap:wrap;}
@media (max-width:820px){.fgrid{grid-template-columns:1fr 1fr;gap:40px 6vw;}}

/* ---------- reveal : soft focus pull ---------- */
.rv{opacity:0;transform:translateY(30px);filter:blur(7px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.8,.2,1),filter 1.1s ease;}
.rv.in{opacity:1;transform:none;filter:blur(0);}

/* ---------- perf ---------- */
.rows-section,.credits,#projector,#cta,footer,.block,.stripwrap{content-visibility:auto;contain-intrinsic-size:auto 800px;}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  html{scroll-behavior:auto;}
  .grain,#cursor,.scrolldown,.screen .flicker{display:none;}
  .rv{opacity:1;transform:none;filter:none;}
  .vow .w{opacity:1;}
  #hero .hero-img{animation:none;transform:none;}
  #hero .hcopy .over,#hero .hcopy h1,#hero .hcopy .under{opacity:1;animation:none;}
}

/* ---------- mobile ---------- */
@media (max-width:600px){
  .wrap{padding-left:max(8vw,32px);padding-right:max(8vw,32px);}
  #hero .hcopy{bottom:7vh;}
  #hero .hcopy h1{font-size:clamp(44px,13vw,64px);}
  .page-hero{padding-top:19vh;padding-bottom:7vh;}
  .page-hero h1{font-size:clamp(40px,12.5vw,64px);}
  .vowsec{padding:11vh 0 8vh;}
  .vow{font-size:clamp(24px,7vw,36px);}
  .stats{margin-top:6vh;gap:30px 5vw;}
  .stat .num{font-size:clamp(38px,11vw,56px);}
  .num-head{margin-bottom:5vh;gap:12px;}
  .num-head h2{font-size:clamp(32px,8.6vw,44px);}
  .rows-section,.block{padding:9vh 0;}
  .srow{padding:3.2vh 0;}
  .srow .name{font-size:clamp(26px,7.4vw,40px);}
  .mq-head{font-size:clamp(24px,6.4vw,34px);margin-bottom:4vh;}
  #cta h2{font-size:clamp(36px,10.5vw,56px);}
  #cta{padding:12vh 0;}
  .gpanel{height:74svh;min-height:400px;}
  .gpanel .cap .line{font-size:19px;}
  .proj-head h2{font-size:clamp(34px,9.5vw,48px);}
  #projector{padding:10vh 0;}
  .tier{padding:36px 26px;}
  .fwordmark{font-size:clamp(40px,11vw,80px);}
  .fgrid{gap:32px 6vw;font-size:12.5px;}
  .split h3{font-size:clamp(28px,8vw,40px);}
  .album{gap:26px;}
  .print.down{transform:rotate(var(--tilt,0deg));}
}

/* ---------- designed keyboard focus (2026): gold frame, keyboard only.
   Deep gold on ivory (3:1 WCAG), bright gold on cinema-dark surfaces. ---------- */
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;}
.dark :focus-visible,.stripwrap :focus-visible,.emb :focus-visible,#theatre :focus-visible,
body.cinema-top nav :focus-visible{outline-color:var(--gold);}

/* mixed-orientation prints on the gallery wall (HXW S11) */
.print.tall img{aspect-ratio:3/4;}
.print.land img{aspect-ratio:3/2;}
/* consent note under gallery + films heros (HXW S11) */
.consent{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--soft);margin-top:18px;max-width:620px;}
/* limewash plaster wall behind the gallery SELECTS prints (HXW S11, Ibrahim's pick A) */
.wallsec{
  background-color:var(--ivory);
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='900' height='900'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='.006 .008' numOctaves='4' seed='11'/><feColorMatrix type='matrix' values='0 0 0 0 .34 0 0 0 0 .30 0 0 0 0 .23 0 0 0 .09 0'/></filter><rect width='900' height='900' filter='url(%23f)'/></svg>"),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='900' height='900'><filter id='w'><feTurbulence type='fractalNoise' baseFrequency='.007 .009' numOctaves='3' seed='4'/><feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 .98 0 0 0 .12 0'/></filter><rect width='900' height='900' filter='url(%23w)'/></svg>"),
    linear-gradient(115deg, rgba(255,255,255,.16), transparent 45%, rgba(169,133,63,.03) 80%);
}
/* gold pins on the prints (HXW S11): brass tack head, top centre, above the mat */
.print::before{
  content:"";position:absolute;top:9px;left:50%;transform:translateX(-50%);
  width:13px;height:13px;border-radius:50%;z-index:2;
  background:radial-gradient(circle at 35% 30%, #ecd7a8, var(--gold) 45%, var(--gold-deep) 72%, #7a5f2c);
  box-shadow:0 2px 5px rgba(24,21,16,.38), inset 0 -1px 2px rgba(0,0,0,.18);
}
.print.t-l::before{left:47%;}
.print.t-r::before{left:53%;}
/* subtle tier-card pop on hover (HXW S11) */
.tier{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s;}
.tier:hover{transform:translateY(-5px);box-shadow:0 20px 55px rgba(24,21,16,.13);}
.tier.feature:hover{box-shadow:0 30px 80px rgba(169,133,63,.26);}
/* BTS prints float OVER the next section, pinned-to-the-wall 3D (HXW S11) */
.bts{position:relative;z-index:2;}
/* crew carousel (HXW S11): same cards, slow continuous roll */
.team-strip{display:flex;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.team-strip::-webkit-scrollbar{display:none;}
.team-strip .member{flex:0 0 clamp(230px,23vw,300px);}
/* Pune studio map card on contact (HXW S11) */
.mapcard{display:block;margin-top:16px;max-width:240px;border:1px solid var(--line);background:var(--paper);transition:border-color .35s,transform .45s cubic-bezier(.2,.8,.2,1);}
.mapcard svg{display:block;width:100%;height:auto;}
.mapcard span{display:block;padding:10px 12px;font-size:9.5px;letter-spacing:.26em;font-weight:700;color:var(--gold-deep);border-top:1px solid var(--line);}
.mapcard:hover{border-color:var(--gold-deep);transform:translateY(-3px);}
/* SCREENING ROOM film reel (HXW S11): YouTube facades interim, mp4 cells later */
.filmreel{display:flex;gap:clamp(14px,1.8vw,28px);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.filmreel::-webkit-scrollbar{display:none;}
.filmreel .fcell{flex:0 0 clamp(280px,42vw,560px);position:relative;}
.filmreel .fplay{position:relative;inset:auto;width:100%;aspect-ratio:16/9;height:auto;}
.filmreel .fname{display:block;margin-top:12px;font-family:var(--serif);font-style:italic;font-size:clamp(15px,1.4vw,19px);color:var(--gold);}
.reel-note{text-align:center;margin-top:4vh;font-family:var(--serif);font-style:italic;color:var(--g5);font-size:15px;}
