:root{color-scheme:light;--ink:#212520;--paper:#f6f5ef;--rule:#d3d2c7;--serif:"Instrument Serif","Yu Mincho","Hiragino Mincho ProN",Georgia,serif;--sans:"Inter","Hiragino Sans",sans-serif;scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid #b88746;outline-offset:5px}
.skip{position:absolute;z-index:4;left:1rem;top:1rem;background:var(--paper);padding:1rem;transform:translateY(-200%)}
.skip:focus{transform:none}
.header{position:absolute;z-index:2;inset:0 0 auto;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:1.8rem 5vw}
.brand{font-size:.86rem;font-weight:650;letter-spacing:.25em;white-space:nowrap}
.header nav,footer div{display:flex;gap:clamp(1rem,3vw,3rem)}
.header nav a{font-size:.66rem;letter-spacing:.17em}
.hero{display:grid;position:relative;isolation:isolate;min-height:max(37rem,100svh);color:#fff;background:#282e23;align-items:center;overflow:hidden}
.hero-photo,.hero::after{position:absolute;inset:0}
.hero-photo{z-index:-2}
.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 47%}
.hero::after{content:"";z-index:-1;background:linear-gradient(90deg,#0a100caf,transparent 64%),linear-gradient(0deg,#080c09ad,transparent 27%,transparent 82%,#080c0966)}
@media(max-width:760px){
  .hero .hero-copy{align-self:start;margin-top:clamp(5.75rem,16svh,10rem);padding-bottom:1rem}
  .hero-photo img{object-position:42% 50%}
  .hero::after{background:linear-gradient(180deg,#0a100ca6,#0a100c8c 32%,transparent 61%,transparent 75%,#080c0980)}
}
.hero-copy{position:relative;margin-left:10.5vw;border-left:1px solid #ffffff77;padding:1rem 0 3rem clamp(1.75rem,7vw,7rem)}
.hero-copy h1{margin:0;font-size:clamp(3.75rem,8.8vw,9rem);line-height:.9;letter-spacing:.13em;font-weight:500}
.hero-copy p{margin:2rem 0 1.1rem;font:clamp(1rem,1.7vw,1.4rem) var(--serif);letter-spacing:.24em}
.hero-copy>span,.feature>span,.scroll{font-size:.62rem;letter-spacing:.18em}
.hero-bottom{position:absolute;inset:auto 5vw 2.3rem;display:flex;justify-content:space-between;align-items:end;gap:1rem}
.scroll span{margin-left:.65rem}
.feature{text-align:right;display:grid;gap:.65rem}
.feature a{font:clamp(.85rem,1.6vw,1.3rem) var(--serif);letter-spacing:.07em}
.feature a span{margin-left:.55rem}
.section{padding:clamp(4rem,9vw,9rem) max(7vw,calc((100% - 1160px)/2))}
.section-head{display:flex;align-items:baseline;gap:1.25rem;margin-bottom:2.8rem}
.section-head h2{font:clamp(3rem,7vw,6rem)/.9 var(--serif);margin:0}
.section-head p{font-size:.72rem;letter-spacing:.14em;margin:0}
.film-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:3.8rem 5vw}
.film:nth-child(even){margin-top:3rem}
.still{position:relative;aspect-ratio:16/9;background:#373c30;overflow:hidden}
.still img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.film:hover img,.film:focus-visible img{transform:scale(1.035)}
.still span{position:absolute;right:.85rem;bottom:.85rem;background:#121811cf;color:white;border:1px solid #ffffff85;border-radius:50%;display:grid;place-items:center;width:2.5rem;height:2.5rem;font-size:.7rem}
.film-meta{font-size:.65rem;letter-spacing:.16em;margin:1.2rem 0 .55rem}
.film h3{font:clamp(1.4rem,3vw,2.25rem) var(--serif);margin:0}
.film p{font-size:.8rem;margin:.5rem 0 0;line-height:1.65}
.line-link{display:inline-flex;gap:2rem;align-items:center;border-bottom:1px solid;padding:0 0 .8rem;font-size:.85rem;line-height:1.6}
.films>.line-link{margin-top:3rem}
.about{background:#e9e9df;border-block:1px solid var(--rule)}
.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
.about-copy h3{font:clamp(2rem,4vw,4rem)/1.5 var(--serif);margin:0}
.about-copy p{font-size:.92rem;line-height:2.25;margin:0;max-width:30rem}
.about-photo{display:block;width:100%;height:auto}
.contact,footer{background:#222922;color:#f6f5ef}
footer{border-top:1px solid #ffffff30;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;padding:2rem 7vw;font-size:.75rem}
dialog{padding:0;width:min(92vw,61rem);max-height:90dvh;border:1px solid #ffffff55;background:#161a16;color:#fff}
dialog::backdrop{background:#000c}
.player-bar{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;gap:1rem}
.player-bar h2{margin:0;font:1.2rem var(--serif)}
.player-bar button{background:transparent;border:0;font-size:1.8rem;width:2.75rem;height:2.75rem}
#embed iframe{display:block;border:0;width:100%;aspect-ratio:16/9;max-height:66dvh}
.player-link{display:block;padding:1rem;text-align:right;text-decoration:underline;font-size:.8rem}
@media(max-width:650px){.header{padding:1.35rem 5vw}.hero-copy{margin-left:7vw}.hero-copy>span{font-size:.53rem}.hero-bottom{bottom:1.5rem}.hero-bottom .scroll{white-space:nowrap}.film-grid,.about-copy{grid-template-columns:1fr}.film:nth-child(even){margin:0}.film-grid{gap:2.5rem}.section-head{margin-bottom:2rem}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

.experience-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2rem 5vw;align-items:start;border-top:1px solid var(--rule);padding:2rem 0}
.experience-copy h3,.experience-upcoming h3{font:clamp(1.35rem,2.5vw,2.2rem)/1.5 var(--serif);margin:0}
.experience-copy p,.experience-upcoming p,.contact-copy,.work-description{max-width:42rem;line-height:2;font-size:.95rem}
.experience-copy .experience-meta{margin:0 0 .7rem;color:#575d53;font-size:.74rem;font-variant-numeric:tabular-nums}
.source-link,.experience-post>a{font-size:.82rem;text-decoration:underline;text-underline-offset:.25em}
.experience-post{margin:0;width:100%;min-width:0}
.experience .instagram-media{min-width:0!important;max-width:100%!important}
.experience-heading{margin-top:3.5rem;margin-bottom:1.75rem}
.experience-upcoming{border-top:1px solid var(--rule);padding-top:1.5rem}
.experience-upcoming p:last-child{margin-bottom:0}
@media(max-width:760px){.experience-detail{grid-template-columns:1fr;gap:1.25rem}.experience-heading{margin-top:2.5rem}}
.contact-copy{margin:0 0 1.5rem}
.work-page .header{position:static;background:#222922}
.work{max-width:72rem;padding:clamp(2rem,6vw,6rem) 7vw;margin:auto}
.work-back{font-size:.8rem;display:inline-block;margin-bottom:2rem}
.work-meta{display:flex;gap:1rem;font-size:.75rem;letter-spacing:.1em;color:#575d53}
.work h1{font:clamp(2rem,6vw,5rem)/1.14 var(--serif);margin:.55rem 0}
.work-subtitle{font-size:.9rem;margin:.65rem 0 1.65rem}
.work-video{display:block;border:0;width:100%;aspect-ratio:16/9;background:#222922}
.work-description{margin:1.65rem 0}
.work-links{display:flex;flex-wrap:wrap;gap:1rem 2rem}

.related-films {
  border-top: 1px solid var(--rule);
  margin-top: clamp(2.75rem, 7vw, 6rem);
  padding-top: 2rem;
}
.related-films h2 {
  font: clamp(1.5rem, 3.2vw, 2.5rem)/1.35 var(--serif);
  margin: 0 0 1.5rem;
}
.related-films-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem 1.5rem;
}
.related-films-grid article {
  display: grid;
  grid-template-rows: 1fr auto auto;
  align-items: end;
  gap: .65rem;
}
.related-films-grid h3 {
  font: 1.15rem/1.45 var(--serif);
  margin: 0;
}
.related-films-grid .source-link {
  justify-self: start;
}
@media (max-width: 650px) {
  .related-films-grid { grid-template-columns: 1fr; }
}
@media(max-width:650px){.header nav{gap:clamp(.4rem,2.5vw,1rem)}.header nav a{font-size:.62rem;letter-spacing:.05em}}

.pricing {
  background: #e9e9df;
  border-top: 1px solid var(--rule);
}
.pricing .section-head h2 {
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1.2;
}
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem 5vw;
}
.pricing-plan {
  border-top: 1px solid var(--rule);
  padding-top: 1.25rem;
}
.pricing-plan h3 {
  font: 1.15rem/1.5 var(--serif);
  margin: 0;
}
.pricing-plan p, .pricing-note {
  font-size: .9rem;
  line-height: 1.8;
}
.pricing-plan .pricing-rate {
  font: clamp(1.7rem, 3vw, 2.5rem)/1.3 var(--serif);
  margin: .5rem 0;
}
.pricing-rate small {
  font: .7rem var(--sans);
}
.pricing-note {
  color: #575d53;
  margin: 2rem 0 0;
}
.consult-trigger {
  position: fixed;
  z-index: 3;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  min-height: 44px;
  padding: .8rem 1.15rem;
  background: #222922;
  color: var(--paper);
  border: 1px solid #ffffff80;
  box-shadow: 0 4px 16px #161a1626;
  font-size: .85rem;
}
body:has(.consult-trigger) .hero-bottom {
  bottom: 5.5rem;
}
body:has(.consult-trigger) footer {
  padding-bottom: 5rem;
}
@media (max-width: 650px) {
  .pricing-grid { grid-template-columns: 1fr; }
  body:has(.consult-trigger) .header {
    flex-wrap: wrap;
    gap: .75rem;
  }
}
