*{box-sizing:border-box} :root{--bg:#050608;--fg:#f3f0e9;--muted:#a8aaad;--ease:cubic-bezier(.22,.78,.2,1)}
html{background:var(--bg);scroll-behavior:auto;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;overflow-x:hidden;min-height:100%;}body.modalOpen{overflow:hidden}button,a{font:inherit;color:inherit}.top{position:fixed;z-index:50;top:0;left:0;right:0;padding:22px 3vw;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#050608ed 30%,transparent);pointer-events:none}.top>*{pointer-events:auto}.brand{border:0;background:none;padding:0;color:inherit;text-align:left;font-size:clamp(16px,2vw,28px);font-weight:300;letter-spacing:.28em;cursor:pointer}.brand small{display:block;font-size:7px;letter-spacing:.48em;color:#aaa;margin-top:8px}.top nav{display:flex;gap:24px}.top nav button{border:0;background:none;padding:5px 0;text-transform:uppercase;letter-spacing:.17em;font-size:10px;cursor:pointer;opacity:.72;position:relative}.top nav button:hover,.top nav button.active{opacity:1}.top nav button:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .35s var(--ease)}.top nav button:hover:after,.top nav button.active:after{transform:scaleX(1)}
.scrollProgress{position:fixed;z-index:90;left:0;top:0;width:100%;height:2px;background:var(--fg);transform:scaleX(0);transform-origin:left;pointer-events:none;opacity:.75}
.homeView{display:block}.hero{height:100svh;min-height:680px;position:relative;overflow:hidden}.slides,.slide{position:absolute;inset:0}.slide{opacity:0;transition:opacity 1.15s ease;overflow:hidden}.slide.active{opacity:1}.slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.035);transition:transform 8s linear}.slide.active img{transform:scale(1.075)}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#000c,transparent 64%),linear-gradient(0deg,#000d 0,transparent 44%)}.heroWatermark{position:absolute;left:22px;bottom:calc(22vh + 26px);z-index:4}.heroCopy{position:absolute;z-index:6;left:3.2vw;top:25%;max-width:720px}.kicker{font-size:9px;letter-spacing:.29em;text-transform:uppercase;color:#cfd0d1}.heroCopy h1{font-size:clamp(58px,7vw,110px);font-weight:200;line-height:.86;letter-spacing:.003em;margin:24px 0 20px}.heroCopy p{font:italic clamp(18px,1.6vw,24px)/1.45 Georgia,serif}.cta,.mailButton{padding:13px 18px;border:1px solid #ffffff72;background:#0002;text-transform:uppercase;letter-spacing:.18em;font-size:9px;cursor:pointer;text-decoration:none;display:inline-block}.cta{margin-top:12px}.heroArrows{position:absolute;z-index:7;right:4vw;bottom:27%;display:flex;align-items:center;gap:15px;font-size:9px;letter-spacing:.16em}.heroArrows button{border:0;background:none;font-size:28px;cursor:pointer}.filmstrip{position:absolute;z-index:7;left:1vw;right:1vw;bottom:2.2vh;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.film{height:20vh;min-height:135px;position:relative;overflow:hidden;padding:0;border:1px solid transparent;background:#111;cursor:pointer;transform:translateZ(0);transition:transform .35s var(--ease),border-color .3s}.film:hover{border-color:#fff;transform:translateY(-3px)}.film img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease),filter .4s}.film:hover img{transform:scale(1.035);filter:saturate(1.06)}.film:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(0,0,0,.68));pointer-events:none}.filmLabel{position:absolute;left:13px;bottom:11px;z-index:4;text-transform:uppercase;letter-spacing:.22em;font-size:9px}.film .watermark{bottom:31px;font-size:7px;color:#ffffff80}.film:nth-child(1) img{object-position:50% 20%}.film:nth-child(2) img{object-position:50% 35%}.film:nth-child(3) img{object-position:50% 50%}
.watermark{position:absolute;left:12px;bottom:10px;z-index:5;color:rgba(255,255,255,.64);font-size:clamp(8px,.58vw,11px);font-weight:300;letter-spacing:.045em;line-height:1;text-shadow:0 1px 4px #000c;pointer-events:none;white-space:nowrap;user-select:none}.photoFrame{position:relative;margin:0;overflow:hidden}.photoFrame>img{display:block;width:100%;height:auto}
.page{display:none;min-height:100vh;padding-top:112px}.page.active{display:block}.sectionHead{padding:64px 4vw 64px;display:grid;grid-template-columns:1fr .75fr;gap:50px;align-items:end}.sectionHead>div{display:flex;align-items:flex-start;gap:18px}.sectionNo{font-size:8px;letter-spacing:.2em;color:#777;margin-top:11px;border-top:1px solid #555;padding-top:8px}.sectionHead h2{font-size:clamp(64px,9.5vw,145px);font-weight:200;line-height:.78;letter-spacing:-.055em;margin:0}.sectionHead p{font:clamp(19px,1.7vw,24px)/1.55 Georgia,serif;color:#bbb;max-width:580px;margin:0}.gallery{padding:0 2vw 8vw;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:start}.shot{position:relative;margin:0;overflow:hidden;background:#090a0b;cursor:zoom-in;align-self:start}.shot img{display:block;width:100%;height:auto;transition:transform .65s var(--ease),filter .4s ease}.shot:hover img{transform:scale(1.012);filter:brightness(1.025)}
/* Editorial width rhythm only — never force image heights, so no crops and watermark always remains on-image. */
.performanceGrid .shot:nth-child(5n+1){grid-column:1/span 12}.performanceGrid .shot:nth-child(5n+2){grid-column:2/span 5}.performanceGrid .shot:nth-child(5n+3){grid-column:7/span 5}.performanceGrid .shot:nth-child(5n+4){grid-column:1/span 7}.performanceGrid .shot:nth-child(5n){grid-column:8/span 5}
.portraitGrid{padding-left:4vw;padding-right:4vw;gap:24px}.portraitGrid .shot:nth-child(5n+1){grid-column:1/span 5}.portraitGrid .shot:nth-child(5n+2){grid-column:7/span 5;margin-top:8vh}.portraitGrid .shot:nth-child(5n+3){grid-column:2/span 4}.portraitGrid .shot:nth-child(5n+4){grid-column:7/span 4}.portraitGrid .shot:nth-child(5n){grid-column:3/span 8}
.lifeGrid{padding-left:3vw;padding-right:3vw;gap:16px}.lifeGrid .shot:nth-child(7n+1){grid-column:1/span 8}.lifeGrid .shot:nth-child(7n+2){grid-column:9/span 4}.lifeGrid .shot:nth-child(7n+3){grid-column:2/span 5}.lifeGrid .shot:nth-child(7n+4){grid-column:7/span 6}.lifeGrid .shot:nth-child(7n+5){grid-column:1/span 12}.lifeGrid .shot:nth-child(7n+6){grid-column:1/span 5}.lifeGrid .shot:nth-child(7n){grid-column:7/span 6}
.aboutEditorial{min-height:calc(100vh - 112px);padding:7vw 5vw 8vw;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(380px,1fr);gap:7vw;align-items:center;max-width:1500px;margin:auto}.aboutCopy h2{font-size:clamp(72px,9vw,138px);font-weight:200;line-height:.82;letter-spacing:-.05em;margin:18px 0 42px}.aboutCopy p{font:clamp(19px,1.55vw,23px)/1.6 Georgia,serif;color:#c4c5c6;max-width:660px}.eyebrow{text-transform:uppercase;letter-spacing:.26em;font-size:8px;color:#858a8e}.signature{font:10px/1.4 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif!important;text-transform:uppercase;letter-spacing:.25em;color:#8e9398!important;margin-top:36px}.contactPage{min-height:calc(100vh - 112px);padding:10vw 8vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:760px}.contactPage h2{font-size:clamp(38px,5vw,72px);font-weight:200;line-height:.9;letter-spacing:-.035em;margin:14px 0 24px}.contactPage p{font:clamp(14px,1.2vw,17px)/1.55 Georgia,serif;color:#9fa3a6;max-width:530px;margin:0 0 24px}.email{font:italic clamp(18px,2.4vw,31px) Georgia,serif;text-decoration:none;border-bottom:1px solid #ffffff38;padding-bottom:5px}.mailButton{margin-top:26px;padding:11px 15px;font-size:8px;border-color:#ffffff42}
/* Motion is progressive enhancement only; it never controls layout or visibility. */
.revealBlock,.shot{opacity:1;transform:none}.motionReady .revealBlock,.motionReady .shot{opacity:0;transform:translateY(24px)}.motionReady .revealed{opacity:1;transform:none;transition:opacity .65s var(--ease),transform .75s var(--ease)}
.lightbox{position:fixed;z-index:120;inset:0;background:#020304f8;display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .22s ease}.lightbox.open{display:flex}.lightbox.visible{opacity:1}.lightboxFrame{position:relative;margin:0;max-width:94vw;max-height:92vh}.lightboxFrame img{display:block;max-width:94vw;max-height:92vh;width:auto;height:auto;object-fit:contain}.lightbox button{position:absolute;background:#0009;border:1px solid #ffffff44;cursor:pointer}.lbClose{right:20px;top:20px;width:44px;height:44px;border-radius:50%}.lbPrev,.lbNext{top:50%;width:44px;height:58px;font-size:27px}.lbPrev{left:12px}.lbNext{right:12px}
/* Transition signatures: visual overlays only, never touch document scrolling. */
.transitionFx{position:fixed;z-index:110;inset:0;visibility:hidden;pointer-events:none;overflow:hidden}.transitionFx.active{visibility:visible}.transitionFx:before,.transitionFx:after,.transitionFx i,.transitionFx b{content:"";position:absolute;inset:0}.transitionFx.performance:before{background:#050506}.transitionFx.performance:after{background:conic-gradient(from 202deg at 18% -15%,transparent 0 15deg,rgba(93,135,255,.34) 22deg,transparent 32deg),conic-gradient(from 153deg at 52% -18%,transparent 0 18deg,rgba(216,91,255,.28) 24deg,transparent 36deg),conic-gradient(from 128deg at 82% -12%,transparent 0 14deg,rgba(255,191,91,.24) 21deg,transparent 31deg);filter:blur(7px);animation:concertFx .9s var(--ease) both}.transitionFx.portraits:before{background:#fff;animation:flashFx .48s ease-out both}.transitionFx.life:before{background:#07101222;backdrop-filter:blur(18px) saturate(.8);animation:dreamFx .8s ease-in-out both}.transitionFx.life:after{background:radial-gradient(circle at 26% 38%,#d2ebff2b,transparent 18%),radial-gradient(circle at 71% 59%,#ffdab21f,transparent 20%);filter:blur(18px);animation:dreamBokeh .8s ease-in-out both}.transitionFx.default:before{background:#08090a;animation:fadeFx .55s ease both}@keyframes concertFx{0%{opacity:0;transform:translateX(-12%) rotate(-6deg)}30%{opacity:1}100%{opacity:0;transform:translateX(20%) rotate(8deg)}}@keyframes flashFx{0%{opacity:0}36%{opacity:1}100%{opacity:0}}@keyframes dreamFx{0%{opacity:0;backdrop-filter:blur(0)}55%{opacity:1;backdrop-filter:blur(22px) saturate(.72)}100%{opacity:0;backdrop-filter:blur(0)}}@keyframes dreamBokeh{0%{opacity:0;transform:scale(.85)}55%{opacity:.9}100%{opacity:0;transform:scale(1.15)}}@keyframes fadeFx{0%,100%{opacity:0}45%{opacity:1}}
.ambientFlare{--fy:36%;--tilt:-7deg;position:absolute;z-index:5;inset:0;pointer-events:none;overflow:hidden;opacity:0}.ambientFlare:before{content:"";position:absolute;left:-38vw;top:var(--fy);width:34vw;height:2px;background:linear-gradient(90deg,transparent,#fff7d6b8,#a5d6ff6b,transparent);filter:blur(1px);transform:rotate(var(--tilt));box-shadow:0 0 28px #c8e6ff3b}.ambientFlare i,.ambientFlare b{position:absolute;left:-15vh;top:calc(var(--fy) - 6vh);border-radius:50%}.ambientFlare i{width:12vh;height:12vh;background:radial-gradient(circle,#fff6e08c,#87c2ff29 28%,transparent 69%)}.ambientFlare b{width:5vh;height:5vh;top:calc(var(--fy) + 4vh);background:radial-gradient(circle,#73b9ff52,transparent 68%)}.ambientFlare.run{animation:flareShell 2.45s ease-in-out both}.ambientFlare.run:before{animation:flareSweep 2.45s var(--ease) both}.ambientFlare.run i{animation:flareOrb 2.45s var(--ease) both}.ambientFlare.run b{animation:flareOrb2 2.45s var(--ease) both}@keyframes flareShell{0%,100%{opacity:0}20%{opacity:.45}45%{opacity:.72}75%{opacity:.22}}@keyframes flareSweep{0%{transform:translateX(0) rotate(var(--tilt))}45%{transform:translateX(105vw) rotate(var(--tilt))}100%{transform:translateX(170vw) rotate(var(--tilt))}}@keyframes flareOrb{0%{opacity:0;transform:translateX(0) scale(.5)}40%{opacity:.4}100%{opacity:0;transform:translateX(135vw) scale(1.2)}}@keyframes flareOrb2{0%{opacity:0;transform:translateX(8vw) scale(.4)}45%{opacity:.27}100%{opacity:0;transform:translateX(112vw) scale(.9)}}
@media(max-width:820px){.top{padding:15px 14px 10px;display:block;background:linear-gradient(#050608f7 70%,transparent)}.brand{font-size:15px;letter-spacing:.22em;white-space:nowrap}.brand small{display:none}.top nav{width:100%;display:flex;justify-content:space-between;gap:0;margin-top:8px}.top nav button{font-size:7px;letter-spacing:.11em;padding:4px 2px}.page{padding-top:92px}.heroCopy{left:18px;right:18px;top:20%}.heroCopy h1{font-size:52px}.heroArrows{bottom:22%}.filmstrip{left:6px;right:6px;gap:4px}.film{height:14vh;min-height:100px}.filmLabel{font-size:6px;left:6px}.film .watermark{display:none}.heroWatermark{left:8px;bottom:calc(14vh + 20px);font-size:7px}.sectionHead{grid-template-columns:1fr;padding:42px 18px;gap:26px}.sectionHead h2{font-size:62px}.sectionHead p{font-size:18px}.gallery,.portraitGrid,.lifeGrid{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 7px 60px;gap:7px}.performanceGrid .shot:nth-child(n),.portraitGrid .shot:nth-child(n),.lifeGrid .shot:nth-child(n){grid-column:span 1!important;margin-top:0!important}.performanceGrid .shot:nth-child(5n+1),.portraitGrid .shot:nth-child(5n+1),.lifeGrid .shot:nth-child(5n+1){grid-column:span 2!important}.aboutEditorial{grid-template-columns:1fr;padding:42px 18px 70px;gap:38px}.aboutCopy h2{font-size:65px;margin-bottom:28px}.contactPage{padding:70px 22px}.ambientFlare{display:none}}
@media(max-width:520px){.hero{min-height:620px}.heroCopy h1{font-size:46px}.film{min-height:88px}.sectionHead h2{font-size:52px}.watermark{font-size:7px;left:8px;bottom:8px}.lightbox .watermark{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.motionReady .revealBlock,.motionReady .shot{opacity:1!important;transform:none!important}.ambientFlare,.transitionFx,.scrollProgress{display:none!important}.film:hover,.shot:hover img,.film:hover img{transform:none!important}}
/* QA correction: watermark remains visible on mobile homepage previews. */
@media(max-width:820px){.film .watermark{display:block;font-size:5.5px;left:6px;bottom:22px;letter-spacing:.02em}}

/* v6.1 — broader edit + quieter Contact */
.contactEditorial{
  min-height:calc(100vh - 112px);
  padding:7vw 7vw 8vw;
  display:grid;
  grid-template-columns:minmax(240px,.68fr) minmax(320px,.8fr);
  align-items:center;
  gap:7vw;
  max-width:1180px;
}
.contactImage{max-width:420px;justify-self:end}
.contactImage img{width:100%;height:auto}
.contactEditorial .contactPage{
  min-height:0;
  padding:0;
  max-width:520px;
}
.contactEditorial .contactPage h2{font-size:clamp(30px,4vw,54px);margin:12px 0 18px}
.contactEditorial .contactPage p{font-size:clamp(13px,1vw,15px);margin-bottom:20px}
.contactEditorial .email{font-size:clamp(17px,2vw,25px)}
.contactEditorial .mailButton{margin-top:22px}

/* Keep portrait pacing elegant as the collection grows. */
.portraitGrid .shot{align-self:start}
.portraitGrid .shot img{width:100%;height:auto;object-fit:contain}

@media(max-width:820px){
  .contactEditorial{grid-template-columns:1fr;padding:42px 18px 70px;gap:28px}
  .contactImage{justify-self:start;max-width:300px}
}

/* V6.8 refinement — homepage framing + lighter editorial copy */
.heroCopy p,
.sectionHead p,
.aboutCopy p,
.contactPage p,
.email{
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  font-style:normal;
  font-weight:300;
  letter-spacing:.012em;
}
.heroCopy p{font-size:clamp(15px,1.25vw,19px);line-height:1.5;color:#e5e5e5}
.sectionHead p{font-size:clamp(15px,1.25vw,18px);line-height:1.62;color:#aeb1b4;max-width:560px}
.aboutCopy p{font-size:clamp(15px,1.22vw,18px);line-height:1.7;color:#b9bdc0;max-width:650px}
.contactPage p{font-size:clamp(12px,.9vw,14px);line-height:1.6;color:#969b9f}
.email{font-size:clamp(15px,1.7vw,22px);font-weight:300;letter-spacing:.01em}

/* Show the complete homepage section selects instead of cropping them */
.film{background:#050608;display:flex;align-items:center;justify-content:center}
.film img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center!important;
  transform:none!important;
}
.film:hover img{transform:scale(1.012)!important;filter:saturate(1.04)}

@media(max-width:820px){
  .heroCopy p{font-size:15px}
  .sectionHead p{font-size:15px}
  .aboutCopy p{font-size:15px}
}

/* v6.9 — homepage framing correction: show the photograph, don't crop into it. */
.hero{background:#050608}
.slide{display:flex;align-items:center;justify-content:center;background:#050608}
.slide img{width:100%;height:100%;object-fit:contain;object-position:center center;transform:none!important;transition:opacity 1.15s ease}
.slide.active img{transform:none!important}
/* Keep the cinematic shading, but do not let it imply a cropped canvas. */
.shade{background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.48) 27%,transparent 62%),linear-gradient(0deg,rgba(0,0,0,.78) 0%,transparent 38%)}
/* Homepage section cards: preserve each complete image inside its card. */
.film{background:#08090a}
.film img{object-fit:contain!important;object-position:center center!important;transform:none!important}
.film:hover img{transform:scale(1.01)!important}
/* More breathing room so the title never kisses or falls beyond the viewport edge. */
.heroCopy{left:max(34px,3.2vw);max-width:min(720px,58vw)}
.heroCopy h1{font-size:clamp(54px,6.5vw,104px)}

/* v7.0 — restrained social links on Contact */
.socialLinks{display:flex;gap:18px;align-items:center;margin-top:34px;padding-top:15px;border-top:1px solid #ffffff18}
.socialLinks a{display:flex;align-items:center;gap:6px;color:#8f9498;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font:500 7px/1 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;transition:color .25s ease,transform .25s ease}
.socialLinks a:hover{color:#fff;transform:translateY(-1px)}
.socialIcon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;font-size:11px;letter-spacing:0;text-transform:none;color:currentColor}
.socialLinks a:last-child .socialIcon{font-size:9px;font-weight:700;border:1px solid currentColor;border-radius:2px}
@media(max-width:820px){.socialLinks{gap:13px;margin-top:28px;flex-wrap:wrap}.socialLinks a{font-size:6px}}
