:root{color-scheme:dark;--bg:#050505;--fg:#f5f5f2;--muted:#999;--line:#303030}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid white;outline-offset:6px}img{display:block;max-width:100%}h1,h2,p{margin-top:0}header{padding:30px 4vw 22px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:5;background:var(--bg)}.brand{font-size:19px;font-weight:600;letter-spacing:-.5px}.brand small{display:block;font-size:9px;letter-spacing:1.9px;font-weight:400;margin-top:6px;text-transform:uppercase}nav{display:flex;gap:26px;font-size:13px}nav a{color:#aaa;transition:color .2s}nav a:hover,nav a[aria-current]{color:#fff}.menu-toggle{display:none;background:none;border:0;padding:8px}.skip{position:fixed;top:-100px;left:10px;padding:12px;background:white;color:black;z-index:100}.skip:focus{top:10px}footer{padding:60px 4vw 34px;display:flex;justify-content:space-between;gap:28px;font-size:12px;color:var(--muted);line-height:1.8}footer .socials{display:flex;gap:20px}footer a:hover{color:white}.home header{position:absolute;top:0;left:0;right:0;background:transparent}.home{scroll-snap-type:y proximity}.home .feature{min-height:100svh;display:grid;place-items:center;scroll-snap-align:start;padding:110px 0 70px}.feature-link{display:block;position:relative;width:min(62vw,1280px);aspect-ratio:2.4;background:#111;overflow:hidden}.feature-link video,.feature-link>img{width:100%;height:100%;object-fit:cover}.feature-title{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:25px;text-align:center;background:#0004;font-size:22px;font-weight:500;opacity:0;transition:opacity .25s}.feature-link:hover .feature-title,.feature-link:focus-visible .feature-title{opacity:1}.home-bottom{min-height:40vh;display:grid;place-items:center;text-align:center}.more-link{font-size:clamp(30px,5vw,64px);font-weight:500;letter-spacing:-2px}.more-link span{display:inline-block;transition:transform .2s}.more-link:hover span{transform:translate(8px,-8px)}.intro{position:fixed;inset:0;z-index:30;background:#050505;display:grid;place-content:center;text-align:center;pointer-events:none;animation:intro-out .8s 1.6s both}.intro strong{font-size:clamp(26px,3vw,40px);font-weight:500;letter-spacing:-1px;animation:intro-in .8s both}.intro span{font-size:10px;letter-spacing:3px;margin-top:17px;animation:intro-in .8s .15s both}.intro[hidden]{display:none}@keyframes intro-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes intro-out{to{opacity:0;visibility:hidden}}.wrap{max-width:1500px;margin:auto;padding:55px 5vw 70px}.page-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:38px;gap:25px}.page-heading h1{font-size:28px;font-weight:600;letter-spacing:-.7px;margin:0}.page-heading>a{font-size:13px;color:var(--muted)}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.work-card{display:block;position:relative;aspect-ratio:2/1;overflow:hidden;background:#101010}.work-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.work-card span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:21px;font-weight:600;background:#0006;opacity:0;transition:opacity .25s}.work-card:hover span,.work-card:focus-visible span{opacity:1}.work-card:hover img{transform:scale(1.025)}.project-header{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin:20px 0 55px}.project-header h1{font-size:clamp(32px,5vw,65px);line-height:1.03;letter-spacing:-2px;font-weight:500}.credits{font-size:14px;line-height:1.8;color:#b7b7b7}.credits h1,.credits h2,.credits h3{font-size:18px;color:#fff}.credits p{margin-bottom:10px}.film{margin-bottom:30px;aspect-ratio:16/9;background:#101010}.film iframe{width:100%;height:100%;border:0}.stills{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:60px 0}.stills img{width:100%;height:auto}.project-next{border-top:1px solid var(--line);padding:35px 0;display:flex;justify-content:space-between;align-items:center;gap:30px}.project-next small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:2px;margin-bottom:12px}.project-next strong{font-size:24px;font-weight:500}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.about-text{font-size:17px;line-height:1.7}.about-text>div:first-child{font-size:clamp(25px,3vw,38px);line-height:1.25;letter-spacing:-1px;margin-bottom:35px}.about-text h1,.about-text h2,.about-text h3{font-size:inherit}.about-text>div:last-child{font-size:13px;color:#aaa;margin-top:45px}.about-photos{display:grid;gap:25px}.about-photos img{width:100%;height:auto}.rental{max-width:1220px;position:relative}.rental:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.13;background-image:url('/assets/grain.svg')}.rental-intro{max-width:570px;margin-bottom:65px;font-size:17px;line-height:1.7;color:#aaa}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:11px;margin-bottom:25px}.rental h1{font-size:clamp(35px,5vw,65px);letter-spacing:-2px;font-weight:600;margin-bottom:25px}.equipment-group{border-top:1px solid #444}.equipment-group:last-child{border-bottom:1px solid #444}.equipment-group summary{list-style:none;cursor:pointer;font-size:26px;font-weight:700;padding:29px 0;display:flex;justify-content:space-between}.equipment-group summary::-webkit-details-marker{display:none}.equipment-group summary:after{content:'+';font-weight:400}.equipment-group[open] summary:after{content:'−'}.equipment-items{padding:0 0 30px}.equipment-row{display:grid;grid-template-columns:1fr auto;gap:30px;padding:14px 0;border-top:1px solid #222;align-items:baseline;font-size:16px;line-height:1.5}.equipment-row strong{font-weight:700}.equipment-row em{font-weight:700;white-space:nowrap}.contact{min-height:65vh;display:flex;flex-direction:column;justify-content:center}.contact h1{font-size:clamp(44px,7vw,96px);letter-spacing:-3px;line-height:1.05;font-weight:500;margin-bottom:40px}.contact p{font-size:18px;line-height:1.7;color:#aaa;max-width:550px}.contact .email{font-size:clamp(22px,4vw,42px);letter-spacing:-1px;border-bottom:1px solid #555;width:fit-content;padding-bottom:9px;margin:25px 0}.contact .phone{font-size:18px;color:#aaa}.not-found{min-height:60vh;display:grid;place-content:center;text-align:center}.not-found h1{font-size:72px}.not-found a{text-decoration:underline}
@media(max-width:767px){header{padding:25px 6vw}.brand{font-size:17px}.menu-toggle{display:block;font-size:12px;letter-spacing:1px}nav{display:none;position:absolute;left:0;right:0;top:80px;padding:30px 6vw;background:#050505;flex-direction:column;gap:22px;font-size:21px}nav.open{display:flex}.feature-link{width:88vw}.feature-title{font-size:17px;align-items:flex-end;justify-content:flex-start;text-align:left;opacity:1;background:linear-gradient(transparent 50%,#0008);padding:16px}.home .feature{min-height:85svh;padding:95px 0 55px}.wrap{padding:38px 6vw 50px}.page-heading{margin-bottom:26px}.page-heading h1{font-size:24px}.work-grid{grid-template-columns:1fr;gap:24px}.work-card span{font-size:17px;opacity:1;align-items:flex-end;justify-content:flex-start;text-align:left;padding:16px;background:linear-gradient(transparent 45%,#0009)}.project-header{grid-template-columns:1fr;gap:20px;margin:5px 0 35px}.project-header h1{margin-bottom:0}.stills{gap:15px;grid-template-columns:1fr;margin:35px 0}.film{margin-bottom:20px}.about-layout{grid-template-columns:1fr;gap:35px}.about-text{font-size:16px}.about-photos{grid-template-columns:1fr 1fr;gap:15px}.about-photos img:first-child{grid-column:1/-1}.rental-intro{margin-bottom:35px}.equipment-group summary{font-size:22px}.equipment-row{font-size:14px;gap:15px}.contact h1{letter-spacing:-1.5px}footer{padding:45px 6vw 28px;flex-direction:column;gap:20px}.project-next strong{font-size:18px}.home-bottom{min-height:25vh}}
@media(hover:none){.work-card span,.feature-title{opacity:1;align-items:flex-end;justify-content:flex-start;background:linear-gradient(transparent 45%,#0009)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.intro{display:none}}
.film video{width:100%;height:100%;display:block;object-fit:contain}
/* Local edition: retain the current portfolio's quiet, film-led layout. */
body{background:#080808 url('/assets/grain.svg') repeat;background-size:180px;color:#f5f5f5}
header{background:transparent;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:25px 5vw 18px;min-height:106px}.brand{font-size:20px;font-weight:700;letter-spacing:-.5px}.header-socials{position:absolute;left:4vw;top:43px;display:flex;gap:18px;font-size:12px}nav{font-size:16px;gap:24px}nav a{color:#eee}nav a[aria-current]{text-decoration:underline;text-underline-offset:6px}.wrap{max-width:1500px;padding-top:40px}.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.work-card{aspect-ratio:2.4}.work-card video{width:100%;height:100%;object-fit:cover;display:block}.work-card span{font-size:16px;font-weight:500}.work-card:hover img{transform:none}.feature-title{font-size:20px}.rental:before{display:none}.project-header{display:block;max-width:960px;margin:30px auto 55px}.project-header h1{font-size:clamp(26px,3.2vw,44px);font-weight:700;letter-spacing:-1px;line-height:1.15}.credits{font-size:16px;color:#eee;line-height:1.65}.film{max-width:960px;margin:0 auto 30px}.stills{gap:16px}.page-heading>a{font-size:14px}.eyebrow,.project-next small{font-size:12px}.intro span{font-size:12px}footer{font-size:14px}.brand small{font-size:12px}
@media(max-width:900px){.header-socials{display:none}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){header{flex-direction:row;justify-content:space-between;min-height:85px;padding:22px 6vw}.menu-toggle{font-size:14px}nav{font-size:20px;gap:22px}.work-grid{grid-template-columns:1fr;gap:20px}.work-card span{font-size:16px}.feature-title{font-size:16px}.project-header h1{letter-spacing:-.6px}.credits{font-size:15px}}
/* Black background; keep texture subtle and behind all media. */
:root{--bg:#070707;--fg:#f5f5f5}
body{background:#070707;position:relative;isolation:isolate}
body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('/assets/grain.svg') repeat;background-size:180px;opacity:.12}
.intro{background:#070707}
.feature-link,.work-card,.film{background:#000}
@media(max-width:767px){nav{background:#070707}}
/* Pointer cue for desktop project browsing. */
.portfolio-cursor{position:fixed;top:0;left:0;z-index:60;width:70px;height:70px;border:1px solid rgba(255,255,255,.55);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.12);font-size:10px;font-weight:500;letter-spacing:1.4px;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .18s,background .2s,border-color .2s;will-change:left,top;backdrop-filter:blur(2px)}
.portfolio-cursor.is-visible{opacity:1}.portfolio-cursor.is-view{background:rgba(255,255,255,.92);color:#080808;border-color:transparent}
@media(hover:hover) and (pointer:fine){body.has-portfolio-cursor,body.has-portfolio-cursor .feature-link,body.has-portfolio-cursor .work-card{cursor:none}body.has-portfolio-cursor a:not(.feature-link):not(.work-card),body.has-portfolio-cursor button,body.has-portfolio-cursor summary{cursor:pointer}}
@media(hover:none),(pointer:coarse){.portfolio-cursor{display:none}}
/* One project per scroll stop on the selected-work page. */
html.home{scroll-snap-type:y mandatory;scroll-padding-top:0}
.home .feature{height:100svh;min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always}
.home .home-bottom{scroll-snap-align:start;scroll-snap-stop:always}
@media(prefers-reduced-motion:reduce){html.home{scroll-behavior:auto}}
/* Quiet pointer labels inspired by Sensor's restrained typography. */
.portfolio-cursor{width:auto;height:auto;border:0;border-radius:0;padding:0;background:transparent;backdrop-filter:none;transform:translate(18px,20px);font-size:12px;line-height:1;font-weight:400;letter-spacing:.02em;text-transform:lowercase;color:white;mix-blend-mode:difference;transition:opacity .18s;will-change:left,top}
.portfolio-cursor.is-view{background:transparent;color:white;border:0}
@media(hover:hover) and (pointer:fine){body.has-portfolio-cursor{cursor:auto}body.has-portfolio-cursor .feature-link,body.has-portfolio-cursor .work-card{cursor:pointer}}
/* Preview title study: bold type without dimming the film. */
.feature-title,.work-card span{font-weight:700;letter-spacing:-.025em;background:transparent;text-shadow:0 1px 14px rgba(0,0,0,.65);transition:opacity .2s ease}
.feature-title{font-size:clamp(18px,1.65vw,28px)}
.work-card span{font-size:clamp(16px,1.2vw,20px)}
@media(max-width:767px){.feature-title,.work-card span{font-size:16px;letter-spacing:-.015em}}
/* Separate project labels with hierarchy rather than punctuation. */
.feature-title,.work-card span{flex-direction:column;gap:7px}
.title-primary{display:block;font-size:inherit;font-weight:700;line-height:1.15}
.title-secondary{display:block;font-size:.7em;font-weight:500;line-height:1.35;letter-spacing:0}
.project-header .title-secondary{margin-top:10px;font-size:.6em}
.project-next strong .title-secondary{text-transform:none;margin:7px 0 0;color:inherit;letter-spacing:0;font-size:.7em}
@media(hover:none){.feature-title,.work-card span{align-items:flex-start;justify-content:flex-end}}
@media(max-width:767px){.feature-title,.work-card span{align-items:flex-start;justify-content:flex-end;gap:4px}}
/* Consistent role/name layout across all project pages. */
.project-credits{margin:0;display:grid;gap:8px;font-size:16px;line-height:1.5}
.project-credits>div{display:grid;grid-template-columns:90px 1fr;gap:20px}
.project-credits dt{font-weight:400;color:#aaa}.project-credits dd{margin:0;font-weight:700;color:#f5f5f5}
@media(max-width:767px){.project-credits{font-size:15px}.project-credits>div{grid-template-columns:75px 1fr;gap:14px}}
/* Reveal each selected film as its section enters the viewport. */
@media(prefers-reduced-motion:no-preference){
 html.home.reveals-ready .feature-link{opacity:0;filter:blur(16px);transform:translateY(24px);transition:opacity .9s ease,filter 1.1s ease,transform 1.1s cubic-bezier(.22,1,.36,1)}
 html.home.reveals-ready .feature.is-revealed .feature-link{opacity:1;filter:blur(0);transform:translateY(0)}
}
.work-filters{display:flex;flex-wrap:wrap;gap:12px 28px;margin:-10px 0 32px}.work-filters[hidden],.work-card[hidden]{display:none!important}.work-filters button{border:0;background:none;padding:8px 0;color:#999;font-size:14px;cursor:pointer;transition:color .2s}.work-filters button:hover,.work-filters button[aria-pressed="true"]{color:#fff}.work-filters button[aria-pressed="true"]{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:767px){.work-filters{gap:8px 22px;margin:0 0 26px}}
