/* Tommy's own licensed Nexa, served from his Wix account.
   Outfit is the fallback where that host is unreachable. */
@font-face{font-family:"Nexa";font-weight:700;font-display:swap;
  src:url("https://static.wixstatic.com/ufonts/ecbdda_38fe0948fb704d75830a920e8a9c7a49/woff2/file.woff2") format("woff2"),
      url("https://static.wixstatic.com/ufonts/ecbdda_38fe0948fb704d75830a920e8a9c7a49/woff/file.woff") format("woff")}
@font-face{font-family:"Nexa";font-weight:300;font-display:swap;
  src:url("https://static.wixstatic.com/ufonts/ecbdda_d8a485490b69426ca93f5857486afae2/woff2/file.woff2") format("woff2"),
      url("https://static.wixstatic.com/ufonts/ecbdda_d8a485490b69426ca93f5857486afae2/woff/file.woff") format("woff")}

:root{
  --ink:#0D0B0A; --ink-2:#14100E; --ink-3:#1E1815;
  --bone:#EDE6DC; --bone-2:#A2968A; --bone-3:#8A8076;
  --rec:#E01B12;
  --line:rgba(237,230,220,.13); --line-2:rgba(237,230,220,.07);
  --nexa:"Nexa","Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"Jost","Nexa","Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --pad:clamp(20px,5vw,76px); --maxw:1480px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--body);font-weight:300;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--rec);outline-offset:3px}

.lbl{font:700 10px/1 var(--nexa);letter-spacing:.26em;text-transform:uppercase;color:var(--bone-3)}
.tc{font:300 10px/1 var(--nexa);letter-spacing:.18em;color:var(--bone-3);font-variant-numeric:tabular-nums;
  text-transform:uppercase}
.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--rec);
  margin-right:.55em;vertical-align:.08em;flex:none}

.scrub{position:fixed;left:calc(var(--pad)*.42);top:0;bottom:0;width:1px;background:var(--line-2);z-index:60;pointer-events:none}
.scrub b{position:absolute;left:-3px;top:0;width:7px;height:7px;border-radius:50%;background:var(--rec);
  box-shadow:0 0 0 4px rgba(224,27,18,.16);transition:top .08s linear}
.scrub s{position:absolute;left:0;top:0;width:1px;background:rgba(224,27,18,.4);text-decoration:none}
@media(max-width:900px){.scrub{display:none}}

nav{position:fixed;inset:0 0 auto 0;z-index:70;display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:14px var(--pad);transition:background .4s,backdrop-filter .4s,border-color .4s;
  border-bottom:1px solid transparent}
nav.stuck{background:rgba(13,11,10,.88);backdrop-filter:blur(14px);border-bottom-color:var(--line-2)}
.mark{display:flex;align-items:center;gap:11px;white-space:nowrap}
.mark img{width:30px;height:30px;object-fit:contain;flex:none;display:block}
.mark span{font:700 14px/1 var(--nexa);letter-spacing:-.02em;text-transform:lowercase}
.mark span em{font-style:normal;text-transform:uppercase}
.nav-links{display:flex;gap:clamp(15px,2.3vw,32px)}
.nav-links a{font:700 10px/1 var(--nexa);letter-spacing:.22em;text-transform:uppercase;color:var(--bone-2);
  padding:6px 0;position:relative;transition:color .3s}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--rec);
  transition:right .35s cubic-bezier(.4,0,.2,1)}
.nav-links a:hover{color:var(--bone)} .nav-links a:hover::after{right:0}
/* --- mobile nav: burger + full-screen panel --- */
.burger{display:none;position:relative;z-index:71;width:34px;height:34px;padding:0;
  background:none;border:0;cursor:pointer;align-items:center;justify-content:center}
.burger span{position:absolute;left:7px;width:20px;height:1.5px;background:var(--bone);
  transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .2s}
.burger span:nth-child(1){transform:translateY(-4px)}
.burger span:nth-child(2){transform:translateY(4px)}
nav.open .burger span:nth-child(1){transform:rotate(45deg)}
nav.open .burger span:nth-child(2){transform:rotate(-45deg)}
@media(max-width:760px){
  .burger{display:flex}
  /* backdrop-filter on an ancestor makes it the containing block for
     position:fixed children, which pinned the panel to the nav bar.
     Solid black instead -- no filter, no containing block. */
  nav,nav.stuck{background:#000;backdrop-filter:none;-webkit-backdrop-filter:none}
  nav.open{background:#000}
  .nav-links{position:fixed;inset:0;z-index:69;flex-direction:column;justify-content:center;
    align-items:flex-start;gap:0;padding:88px var(--pad) 32px;background:#000;
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    opacity:0;visibility:hidden;transform:translateY(-14px);
    transition:opacity .34s ease,transform .4s cubic-bezier(.4,0,.2,1),visibility 0s .4s}
  nav.open .nav-links{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .nav-links a{width:100%;padding:16px 0;font-size:clamp(1.5rem,7.5vw,2.3rem);
    letter-spacing:-.04em;color:#fff;border-bottom:1px solid rgba(255,255,255,.14)}
  .nav-links a::after{display:none}
  .nav-links a:last-child{border-bottom:0}
}

/* ---- hero with video ---- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 var(--pad) clamp(28px,5vh,56px);overflow:hidden;background:#000}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media video{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  min-width:100%;min-height:100%;width:auto;height:auto;object-fit:cover;
  opacity:0;transition:opacity 1.2s ease;pointer-events:none}
.hero.playing .hero-media video{opacity:1}
.hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:54% 46%;transition:opacity 1.4s ease .3s}
.hero.playing .hero-poster{opacity:0}
.hero-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,11,10,.88) 0%,rgba(13,11,10,.62) 14%,rgba(13,11,10,.26) 36%,rgba(13,11,10,.74) 72%,var(--ink) 100%)}
.hero > *{position:relative;z-index:2}
.hero .hero-media{position:absolute;z-index:0}
.hero .hero-top{position:absolute;top:clamp(88px,14vh,140px);left:var(--pad);display:flex;align-items:center;gap:10px;z-index:3}
/* Sits over a photo/video rather than flat ground, so it needs more weight than
   the section markers -- and a shadow, since video brightness varies frame to frame. */
.hero .hero-top .tc{color:#fff;text-shadow:0 1px 8px rgba(13,11,10,.9)}
.rec-dot{width:8px;height:8px;border-radius:50%;background:var(--rec);animation:blink 1.9s steps(1) infinite}
@keyframes blink{0%,55%{opacity:1}56%,100%{opacity:.22}}
h1{font-family:var(--nexa);font-weight:700;margin:0;text-transform:uppercase;
  font-size:clamp(2.5rem,9.6vw,9.2rem);line-height:.9;letter-spacing:-.05em;text-wrap:balance}
h1 em{display:block;font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;
  color:var(--bone-2);font-size:clamp(1.15rem,3.4vw,3rem);letter-spacing:-.005em;margin-top:.24em}
.hero-foot{display:flex;flex-wrap:wrap;gap:14px 40px;align-items:baseline;
  margin-top:clamp(24px,4.5vh,48px);padding-top:22px;border-top:1px solid var(--line)}
.hero-foot p{margin:0;max-width:38ch;font-size:14px;line-height:1.66;color:var(--bone-2)}

section{padding:clamp(74px,11vh,142px) var(--pad);max-width:var(--maxw);margin:0 auto}
.head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;
  padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:clamp(30px,5vh,58px)}
.head h2{font-family:var(--nexa);font-weight:700;margin:0;text-transform:uppercase;
  font-size:clamp(1.5rem,4.2vw,3.2rem);line-height:1;letter-spacing:-.045em}

.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(9px,1.1vw,17px)}
.film{position:relative;display:block;overflow:hidden;background:var(--ink-2);aspect-ratio:16/10}
.w4{grid-column:span 4} .w5{grid-column:span 5} .w6{grid-column:span 6}
.w7{grid-column:span 7} .w12{grid-column:span 12;aspect-ratio:21/8} .t{aspect-ratio:4/3.1}
.film-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.05s cubic-bezier(.2,.7,.2,1),filter .6s;filter:saturate(.66) brightness(.82)}
.film-scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(13,11,10,.9) 100%);transition:opacity .5s}
.film:hover .film-img,.film:focus-visible .film-img{transform:scale(1.055);filter:saturate(1) brightness(1)}
.film-meta{position:absolute;left:0;right:0;bottom:0;padding:clamp(13px,1.5vw,22px);display:flex;flex-direction:column;gap:7px}
.film-name{font-family:var(--serif);font-size:clamp(1.08rem,1.9vw,1.78rem);line-height:1.06;letter-spacing:0}
.film-sub{display:flex;align-items:center;font:300 10px/1 var(--nexa);letter-spacing:.18em;
  text-transform:uppercase;color:var(--bone-2);font-variant-numeric:tabular-nums}
.film-sub em{font-style:normal;margin:0 .6em;color:var(--bone-3)}
@media(max-width:880px){.w4,.w5,.w6,.w7{grid-column:span 6} .w12{grid-column:span 12;aspect-ratio:16/9}}
@media(max-width:560px){.w4,.w5,.w6,.w7,.w12{grid-column:span 12;aspect-ratio:16/10}}
/* --- mobile: the grid becomes a horizontal reel --- */
.reel-nav{display:none;align-items:center;gap:16px;margin-top:20px}
.reel-count{font:300 10px/1 var(--nexa);letter-spacing:.18em;color:var(--bone-2);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.reel-count b{font-weight:700;color:var(--bone)}
.reel-track{position:relative;flex:1;height:1px;background:var(--line)}
.reel-track i{position:absolute;left:0;top:-1px;height:3px;background:var(--rec);
  width:0;transition:width .12s linear,left .12s linear}
@media(max-width:760px){
  .grid{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);
    scrollbar-width:none;-ms-overflow-style:none}
  .grid::-webkit-scrollbar{display:none}
  .grid .film{flex:0 0 84%;scroll-snap-align:center;aspect-ratio:4/3}
  .grid .film:last-child{margin-right:var(--pad)}
  .reel-nav{display:flex}
}

.band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;
  grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:1px;background:var(--line-2);
  max-width:var(--maxw);margin:0 auto}
.band div{background:var(--ink);padding:clamp(24px,4vw,42px) clamp(16px,2.4vw,30px)}
.band b{display:block;font-family:var(--nexa);font-weight:700;font-size:clamp(1.9rem,4.3vw,3.2rem);
  line-height:.94;letter-spacing:-.05em;margin-bottom:9px}

.about{display:grid;grid-template-columns:1fr;gap:clamp(30px,4.5vw,58px)}
.portrait{position:relative;margin:0;width:100%;aspect-ratio:16/9;background:var(--ink-3);
  border:1px solid var(--line);overflow:hidden;display:flex;align-items:center;justify-content:center}
.portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:64% 38%;
  filter:saturate(.88) brightness(.95)}
.portrait::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 42%,rgba(13,11,10,.5) 74%,rgba(13,11,10,.92) 100%)}
/* Placeholder only when the photo genuinely fails. Never hide the <img> by
   default: a display:none image with loading="lazy" is never fetched, so its
   load event never fires. */
.portrait .ph{display:none}
.portrait.noimg img{display:none}
.portrait.noimg::after{display:none}
.portrait.noimg .ph{display:flex}
.portrait.noimg figcaption{display:none}
.ph{position:relative;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;text-align:center;padding:26px}
.ph::before{content:"";position:absolute;inset:-24px;border:1px dashed var(--line);pointer-events:none}
.ph svg{width:38px;height:38px;stroke:var(--bone-3);fill:none;stroke-width:1.2}
.ph p{margin:0;max-width:38ch;font-size:11.5px;line-height:1.6;color:var(--bone-3)}
.ph code{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--bone-2)}
.portrait figcaption{position:absolute;left:0;bottom:0;z-index:2;padding:clamp(14px,1.6vw,22px);
  display:flex;align-items:center;font:300 10px/1 var(--nexa);letter-spacing:.18em;
  text-transform:uppercase;color:var(--bone);text-shadow:0 1px 6px rgba(13,11,10,.9)}
.about-body{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(22px,4vw,64px);align-items:start}
.about-body p{font-size:clamp(15px,1.45vw,17px);line-height:1.75;color:var(--bone-2);max-width:60ch;margin:0 0 1.15em}
.about-body p.lede{font-family:var(--serif);font-size:clamp(1.35rem,2.9vw,2.2rem);line-height:1.28;
  color:var(--bone);margin:0;max-width:22ch}
.about-copy p:last-of-type{margin-bottom:0}
.sig{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:11px}
.sig b{font-family:var(--nexa);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:860px){.about-body{grid-template-columns:1fr;gap:20px}
  .about-body p.lede{max-width:none} .portrait{aspect-ratio:4/3}}

.revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr));gap:1px;background:var(--line-2);border:1px solid var(--line-2)}
.rev{margin:0;background:var(--ink);padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:16px}
.rev blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.22rem,2.05vw,1.7rem);line-height:1.3;text-wrap:balance}
.rev p{margin:0;font-size:13.5px;line-height:1.75;color:var(--bone-3);flex:1}
.rev figcaption{display:flex;align-items:center;font:700 10px/1 var(--nexa);letter-spacing:.2em;
  text-transform:uppercase;color:var(--bone-2);padding-top:14px;border-top:1px solid var(--line-2)}

.pkg{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2)}
.pkg > div{background:var(--ink);padding:clamp(26px,3.4vw,48px)}
.price{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:6px 0 26px}
.price b{font-family:var(--nexa);font-weight:700;font-size:clamp(2.8rem,7.2vw,5.2rem);line-height:.86;letter-spacing:-.055em}
.pkg h3{font-family:var(--nexa);font-weight:700;text-transform:uppercase;font-size:clamp(.95rem,1.5vw,1.15rem);
  margin:0 0 20px;letter-spacing:-.02em}
.pkg ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.pkg li{font-size:14px;line-height:1.55;color:var(--bone-2);padding:13px 0 13px 22px;position:relative;border-bottom:1px solid var(--line-2)}
.pkg li:last-child{border-bottom:0}
.pkg li::before{content:"";position:absolute;left:0;top:20px;width:9px;height:1px;background:var(--rec)}
.adds li{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding-left:0}
.adds li::before{display:none}
.adds b{font-family:var(--nexa);font-weight:700;font-size:11.5px;letter-spacing:.06em;color:var(--bone);
  white-space:nowrap;font-variant-numeric:tabular-nums;text-transform:uppercase}
.note{margin:22px 0 0;font-size:12px;line-height:1.6;color:var(--bone-3);font-family:var(--serif);font-style:italic}
@media(max-width:860px){.pkg{grid-template-columns:1fr}}

.faq{max-width:900px}
details{border-bottom:1px solid var(--line-2)}
summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;position:relative;
  font-family:var(--serif);font-size:clamp(1.1rem,1.85vw,1.45rem);line-height:1.3;transition:color .3s}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--bone-2)}
.chev{position:absolute;right:4px;top:50%;width:11px;height:11px;margin-top:-7px;
  border-right:1px solid var(--rec);border-bottom:1px solid var(--rec);transform:rotate(45deg);transition:transform .3s}
details[open] .chev{transform:rotate(225deg);margin-top:-2px}
details p{margin:0 0 24px;max-width:64ch;font-size:14.5px;line-height:1.76;color:var(--bone-2)}

.contact{text-align:center;border-top:1px solid var(--line)}
.contact .lbl{display:block;margin-bottom:20px}
.contact h2{font-family:var(--nexa);font-weight:700;text-transform:uppercase;margin:0 0 14px;
  font-size:clamp(2rem,7.6vw,6.2rem);line-height:.9;letter-spacing:-.055em}
.contact h2 em{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:lowercase;
  color:var(--rec);letter-spacing:-.01em}
.contact > p{margin:0 auto 40px;max-width:44ch;font-size:15px;line-height:1.7;color:var(--bone-2)}
.cta{display:inline-flex;align-items:center;gap:11px;padding:17px 34px;border:1px solid var(--bone);
  font:700 11px/1 var(--nexa);letter-spacing:.24em;text-transform:uppercase;
  transition:background .35s,color .35s,border-color .35s}
.cta:hover{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.lines{display:flex;justify-content:center;gap:clamp(16px,3vw,44px);flex-wrap:wrap;margin-top:42px;
  padding-top:26px;border-top:1px solid var(--line-2)}
.lines a,.lines span{font-size:13px;color:var(--bone-2);transition:color .3s}
.lines a:hover{color:var(--bone)}

footer{padding:30px var(--pad) 44px;border-top:1px solid var(--line-2);display:flex;justify-content:space-between;
  align-items:center;gap:18px;flex-wrap:wrap;max-width:var(--maxw);margin:0 auto}

/* ---- inquiry modal ---- */
.inq{position:fixed;inset:0;z-index:210;display:flex;align-items:flex-start;justify-content:center;
  overflow-y:auto;padding:clamp(52px,7vh,90px) clamp(16px,5vw,40px) clamp(32px,6vh,64px);
  background:rgba(8,7,6,.97);opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility 0s .3s}
.inq.open{opacity:1;visibility:visible;transition-delay:0s}
.inq-box{width:100%;max-width:560px;margin:auto}
.inq-box>.lbl{display:block;margin-bottom:14px}
.inq-box h2{margin:0 0 10px;font-family:var(--nexa);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.6rem,4.6vw,2.6rem);line-height:.95;letter-spacing:-.05em}
.inq-lede{margin:0 0 30px;font-size:14.5px;line-height:1.7;color:var(--bone-2);max-width:46ch}
.fields{display:grid;gap:22px}
.f{display:flex;flex-direction:column;gap:7px}
.f label{font:700 10px/1 var(--nexa);letter-spacing:.2em;text-transform:uppercase;color:var(--bone-2)}
.f label span{color:var(--bone-3);font-weight:300;letter-spacing:.12em}
.f input,.f textarea{width:100%;padding:11px 2px;color:var(--bone);background:transparent;
  border:0;border-bottom:1px solid var(--line);font:300 16px/1.5 var(--body);
  color-scheme:dark;transition:border-color .3s}
.f textarea{resize:vertical;min-height:82px;line-height:1.65}
.f input::placeholder,.f textarea::placeholder{color:var(--bone-3);opacity:1}
.f input:focus,.f textarea:focus{outline:0;border-bottom-color:var(--rec)}
.f .err{font:300 11.5px/1.4 var(--body);color:var(--rec);min-height:0}
.f.invalid input,.f.invalid textarea{border-bottom-color:var(--rec)}
.inq-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:32px;
  padding-top:24px;border-top:1px solid var(--line-2)}
.inq-submit{display:inline-flex;align-items:center;gap:11px;padding:16px 32px;cursor:pointer;
  background:transparent;color:var(--bone);border:1px solid var(--bone);
  font:700 11px/1 var(--nexa);letter-spacing:.24em;text-transform:uppercase;
  transition:background .35s,color .35s}
.inq-submit:hover{background:var(--bone);color:var(--ink)}
.inq-submit[disabled]{opacity:.5;cursor:default}
.inq-note{font:300 11.5px/1.55 var(--body);color:var(--bone-3);max-width:30ch}
.inq-done{display:none;padding:20px 0}
.inq-done h3{margin:0 0 12px;font-family:var(--serif);font-size:clamp(1.4rem,3.2vw,2rem);
  line-height:1.2;color:var(--bone)}
.inq-done p{margin:0;font-size:14.5px;line-height:1.7;color:var(--bone-2);max-width:44ch}
.inq.sent form{display:none} .inq.sent .inq-done{display:block}
.inq-close{position:fixed;top:clamp(14px,2.4vw,26px);right:clamp(14px,2.4vw,26px);
  width:42px;height:42px;padding:0;background:none;border:0;cursor:pointer;z-index:2}
.inq-close::before,.inq-close::after{content:"";position:absolute;left:11px;top:20px;
  width:20px;height:1.5px;background:var(--bone);transition:background .25s}
.inq-close::before{transform:rotate(45deg)} .inq-close::after{transform:rotate(-45deg)}
.inq-close:hover::before,.inq-close:hover::after{background:var(--rec)}

/* ---- film lightbox ---- */
.lb{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:clamp(14px,2vw,24px);
  padding:clamp(44px,6vw,72px) clamp(16px,5vw,64px);
  background:rgba(8,7,6,.97);opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility 0s .3s}
.lb.open{opacity:1;visibility:visible;transition-delay:0s}
.lb-frame{position:relative;width:100%;max-width:min(1180px,calc((100svh - 190px) * 1.7778));
  aspect-ratio:16/9;background:#000;border:1px solid var(--line-2)}
.lb-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lb-meta{display:flex;align-items:baseline;gap:clamp(10px,2vw,22px);flex-wrap:wrap;
  width:100%;max-width:min(1180px,calc((100svh - 190px) * 1.7778))}
.lb-meta h3{margin:0;font-family:var(--serif);font-weight:400;
  font-size:clamp(1.15rem,2.2vw,1.75rem);line-height:1.1;color:var(--bone)}
.lb-sub{font:300 10px/1 var(--nexa);letter-spacing:.18em;text-transform:uppercase;
  color:var(--bone-3);font-variant-numeric:tabular-nums}
.lb-out{margin-left:auto;font:700 10px/1 var(--nexa);letter-spacing:.2em;text-transform:uppercase;
  color:var(--bone-2);border-bottom:1px solid var(--line);padding-bottom:4px;transition:color .3s,border-color .3s}
.lb-out:hover{color:var(--bone);border-color:var(--rec)}
.lb-close{position:absolute;top:clamp(14px,2.4vw,26px);right:clamp(14px,2.4vw,26px);
  width:42px;height:42px;padding:0;background:none;border:0;cursor:pointer;z-index:2}
.lb-close::before,.lb-close::after{content:"";position:absolute;left:11px;top:20px;
  width:20px;height:1.5px;background:var(--bone);transition:background .25s}
.lb-close::before{transform:rotate(45deg)} .lb-close::after{transform:rotate(-45deg)}
.lb-close:hover::before,.lb-close:hover::after{background:var(--rec)}
@media(max-width:760px){
  .lb{padding:64px 16px 24px}
  .lb-meta{flex-direction:column;gap:8px}
  .lb-out{margin-left:0}
}

.rise{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rise.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .rise{opacity:1;transform:none}
  .hero-poster{opacity:1!important} .hero-media video{display:none}
  .lb,.inq{transition-duration:.01ms}
}

/* Honeypot: off-screen rather than display:none, which some bots skip. */
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
