:root {
  --black:#050608; --black-2:#0a0c10; --white:#f5f3ed; --paper:#f1efe8; --ink:#11120f;
  --electric:#4ee8ff; --violet:#7e5cff; --line-dark:rgba(255,255,255,.14); --line-light:rgba(17,18,15,.18);
  --muted-dark:#a8abb2; --muted-light:#66675f; --pad:clamp(1.2rem,4vw,4.8rem); --max:1600px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--black);color:#fff;overflow-x:hidden} body.menu-open{overflow:hidden}
img{display:block;max-width:100%} a{color:inherit;text-decoration:none} button,input,textarea,select{font:inherit} button{color:inherit} h1,h2,h3,p{margin-top:0} ::selection{background:var(--electric);color:#000}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:10000;left:1rem;top:-5rem;padding:.8rem 1rem;background:#fff;color:#000}.skip-link:focus{top:1rem}

/* Opening split */
.chooser{position:fixed;inset:0;z-index:500;display:grid;grid-template-columns:1fr 1fr;background:#000;transition:opacity .45s ease,visibility .45s ease}.chooser.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.chooser-panel{position:relative;border:0;padding:0;overflow:hidden;cursor:pointer;text-align:left;isolation:isolate}.chooser-panel:focus-visible{outline:3px solid var(--electric);outline-offset:-3px}.chooser-panel::after{content:"";position:absolute;inset:0;border:1px solid transparent;transition:border-color .35s ease;z-index:8}.chooser-panel:hover::after{border-color:rgba(255,255,255,.35)}
.chooser-dj{background:#050608;color:#fff}.chooser-image{position:absolute;inset:0;background:url('assets/dj/hero-magnet.webp') center/cover;filter:saturate(.9) contrast(1.08);transform:scale(1.03);transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .5s}.chooser-dj:hover .chooser-image{transform:scale(1.075);filter:saturate(1.25) contrast(1.1)}.chooser-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,3,5,.45),rgba(2,3,5,.15)),linear-gradient(0deg,rgba(2,3,5,.9),transparent 58%)}
.chooser-photo{background:var(--paper);color:var(--ink)}.chooser-grid{position:absolute;inset:0;background-image:linear-gradient(var(--line-light) 1px,transparent 1px),linear-gradient(90deg,var(--line-light) 1px,transparent 1px);background-size:80px 80px;opacity:.5}.chooser-photo::before{content:"";position:absolute;width:55vw;height:55vw;border-radius:50%;right:-28vw;top:-18vw;background:radial-gradient(circle,#fff 0 30%,transparent 70%);opacity:.9}.chooser-mark{position:absolute;width:min(44vw,720px);right:-11%;bottom:3%;opacity:.05;transform:rotate(-9deg);transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .5s}.chooser-photo:hover .chooser-mark{transform:rotate(-4deg) scale(1.06);opacity:.09}
.chooser-content{position:absolute;inset:auto var(--pad) clamp(2.5rem,7vh,6rem);z-index:4;display:grid;gap:1.5rem}.chooser-content img{width:min(78%,720px);max-height:230px;object-fit:contain;object-position:left center}.chooser-photo .chooser-content img{width:min(70%,620px)}.chooser-kicker{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;opacity:.75}.chooser-action{display:flex;gap:.7rem;align-items:center;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase}.chooser-action b{font-size:1.1rem;transition:transform .25s}.chooser-panel:hover .chooser-action b{transform:translate(4px,-4px)}
.chooser-divider{position:absolute;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-90deg);display:flex;align-items:center;gap:1rem;white-space:nowrap;color:#fff;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 5px #000}.chooser-divider i{display:block;width:45px;height:1px;background:rgba(255,255,255,.65)}

/* Flip transition */
.flip-overlay{position:fixed;inset:0;z-index:900;display:grid;place-items:center;perspective:1300px;pointer-events:none;opacity:0;visibility:hidden;background:rgba(0,0,0,.22);backdrop-filter:blur(2px)}.flip-overlay.active{opacity:1;visibility:visible}.flip-card{width:100vw;height:100vh;position:relative;transform-style:preserve-3d}.flip-overlay.to-photo .flip-card{animation:flipToPhoto .82s cubic-bezier(.65,.05,.25,1)}.flip-overlay.to-dj .flip-card{animation:flipToDj .82s cubic-bezier(.65,.05,.25,1)}.flip-face{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden;overflow:hidden}.flip-face img{width:min(65vw,1000px)}.flip-face-dj{background:var(--black)}.flip-face-photo{background:var(--paper);transform:rotateY(180deg)}.flip-face-photo img{width:min(48vw,720px)}
@keyframes flipToPhoto{0%{transform:rotateY(0)}100%{transform:rotateY(180deg)}}@keyframes flipToDj{0%{transform:rotateY(180deg)}100%{transform:rotateY(360deg)}}

.site-shell{min-height:100vh}.world{min-height:100vh}.world[hidden]{display:none!important}.world-dj{background:var(--black);color:#fff}.world-photo{background:var(--paper);color:var(--ink)}

/* Shared header */
.site-header{position:fixed;z-index:200;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:1.2rem var(--pad);transition:padding .3s,background .3s,border-color .3s;will-change:background}.site-header.scrolled{padding-block:.78rem;backdrop-filter:blur(18px)}.header-dj{border-bottom:1px solid transparent}.header-dj.scrolled{background:rgba(5,6,8,.82);border-color:var(--line-dark)}.header-photo{border-bottom:1px solid transparent}.header-photo.scrolled{background:rgba(241,239,232,.88);border-color:var(--line-light)}
.header-logo{width:clamp(145px,15vw,230px)}.header-logo img{width:100%}.header-logo-photo{width:clamp(150px,14vw,220px)}.desktop-nav{display:flex;align-items:center;gap:clamp(1.1rem,2.4vw,2.8rem)}.desktop-nav a{font-size:.67rem;letter-spacing:.16em;text-transform:uppercase;opacity:.72;transition:opacity .2s,color .2s}.desktop-nav a:hover{opacity:1}.header-dj .desktop-nav a:hover{color:var(--electric)}.header-actions{display:flex;align-items:center;gap:.8rem}.side-switch{height:42px;padding:0 5px 0 1rem;border-radius:999px;display:flex;align-items:center;gap:.9rem;cursor:pointer;font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;transition:transform .25s}.side-switch:hover{transform:translateY(-2px)}.side-switch b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.side-switch-dj{border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.25)}.side-switch-dj b{background:#fff;color:#000}.side-switch-photo{border:1px solid var(--line-light);background:rgba(255,255,255,.42);color:var(--ink)}.side-switch-photo b{background:var(--ink);color:#fff}.menu-button{display:none;width:43px;height:43px;border:0;background:transparent;position:relative;cursor:pointer}.menu-button span{position:absolute;left:10px;right:10px;height:1px;background:#fff;transition:.25s}.menu-button span:first-child{top:17px}.menu-button span:nth-child(2){top:25px}.menu-button-photo span{background:var(--ink)}.menu-button[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.mobile-nav{display:none;position:fixed;inset:0;z-index:-1;padding:8rem var(--pad) 3rem;flex-direction:column;justify-content:center;gap:1.25rem;opacity:0;visibility:hidden;transition:.25s}.mobile-nav.open{opacity:1;visibility:visible}.mobile-nav a{font-size:clamp(2rem,9vw,4rem);line-height:1;text-transform:uppercase;font-weight:800;letter-spacing:-.04em}.mobile-nav button{margin-top:1.5rem;align-self:flex-start;border:1px solid currentColor;background:none;padding:.9rem 1rem;text-transform:uppercase;font-size:.68rem;letter-spacing:.13em}.mobile-nav-dj{background:#07090d}.mobile-nav-photo{background:var(--paper);color:var(--ink)}

.button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:52px;padding:0 1.35rem;border:1px solid transparent;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;font-weight:700;cursor:pointer;transition:transform .25s,background .25s,color .25s,border-color .25s}.button:hover{transform:translateY(-3px)}.button-electric{background:var(--electric);color:#020609}.button-electric:hover{background:#fff}.button-ink{background:var(--ink);color:#fff}.button-ink:hover{background:#35362f}.text-link{display:inline-flex;gap:.65rem;align-items:center;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:.35rem}.text-link span{transition:transform .25s}.text-link:hover span{transform:translateY(4px)}.text-link-ink{border-color:var(--line-light)}
.section-pad{padding:clamp(5rem,11vw,11rem) var(--pad);max-width:var(--max);margin:0 auto}.section-pad-light{padding:clamp(5rem,11vw,11rem) var(--pad);max-width:var(--max);margin:0 auto}.micro-label,.photo-kicker{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase}.micro-label{color:var(--electric)}.photo-kicker{color:var(--muted-light)}.section-index{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:#777b84}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.25,1)}.reveal.visible{opacity:1;transform:none}

/* DJ */
.dj-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:9rem var(--pad) clamp(4rem,9vh,8rem);overflow:hidden;isolation:isolate}.dj-hero-media{position:absolute;inset:0;z-index:-2}.hero-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-frame-a{animation:heroA 14s infinite ease-in-out}.hero-frame-b{animation:heroB 14s infinite ease-in-out}.hero-noise{position:absolute;inset:0;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.hero-vignette{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,4,7,.8),rgba(3,4,7,.05) 70%),linear-gradient(0deg,rgba(3,4,7,.94),transparent 60%),radial-gradient(circle at 75% 20%,transparent,rgba(0,0,0,.25))}
@keyframes heroA{0%,42%{opacity:1;transform:scale(1.02)}50%,92%{opacity:0;transform:scale(1.08)}100%{opacity:1;transform:scale(1.02)}}@keyframes heroB{0%,42%{opacity:0;transform:scale(1.08)}50%,92%{opacity:1;transform:scale(1.02)}100%{opacity:0;transform:scale(1.08)}}
.dj-hero-topline{position:absolute;top:7.2rem;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.68)}.dj-hero-content{width:min(920px,90vw)}.dj-hero-logo{width:min(820px,78vw);margin-bottom:1.5rem}.dj-hero-content>p{max-width:680px;font-size:clamp(1rem,1.5vw,1.35rem);color:#d6d8dc}.hero-buttons{display:flex;align-items:center;gap:1.4rem;margin-top:2rem;flex-wrap:wrap}.dj-scroll{position:absolute;right:var(--pad);bottom:4rem;display:flex;align-items:center;gap:.8rem;font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;transform:rotate(90deg);transform-origin:right bottom}.dj-scroll span{width:55px;height:1px;background:#fff;display:block}
.ticker{overflow:hidden;border-block:1px solid var(--line-dark);white-space:nowrap}.ticker-track{display:flex;width:max-content;animation:ticker 28s linear infinite}.ticker-group{display:block;flex:none;padding:1.05rem 0;font-size:.7rem;letter-spacing:.2em}.ticker i{font-style:normal;color:var(--electric);padding:0 1.2rem}@keyframes ticker{to{transform:translateX(-50%)}}
.dj-intro{display:grid;grid-template-columns:.45fr 1.4fr;gap:clamp(2rem,7vw,8rem);border-bottom:1px solid var(--line-dark)}.dj-intro-copy h2,.section-heading-dark h2,.services-title h2,.booking-heading h2{font-size:clamp(3rem,7.4vw,8rem);line-height:.92;letter-spacing:-.06em;text-transform:uppercase;margin:.7rem 0 2rem}.dj-intro-copy h2 em,.booking-heading h2 em{font-family:Georgia,serif;text-transform:none;font-weight:400;color:var(--electric)}.large-copy{font-size:clamp(1.2rem,2.1vw,2rem);line-height:1.35;color:#e7e8ea;max-width:900px}.dj-intro-copy>p:last-child{color:var(--muted-dark);max-width:720px}.dj-intro-images{grid-column:2;display:grid;grid-template-columns:1fr 1.3fr;gap:1rem;margin-top:1.5rem}.image-card{position:relative;overflow:hidden;margin:0}.image-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.image-card:hover img{transform:scale(1.035)}.image-card-tall{height:500px}.image-card-wide{height:370px;align-self:end}.image-card figcaption{display:none}
.dj-sets{border-bottom:1px solid var(--line-dark)}.section-heading-dark{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:4rem}.section-heading-dark>p{max-width:390px;color:var(--muted-dark)}.set-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:1rem}.set-card{position:relative;display:block;min-height:520px;overflow:hidden;background:#11141b;border:1px solid var(--line-dark);cursor:pointer}.set-card:focus-visible{outline:2px solid var(--electric);outline-offset:4px}.set-card .set-thumbnail{object-fit:contain;background:#050608}.set-cta{display:inline-block;margin-top:1.25rem;border-bottom:1px solid var(--electric);padding-bottom:.2rem;font-size:.67rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600}.set-card-featured{grid-row:span 2;min-height:820px}.set-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s}.set-card:hover img{transform:scale(1.04)}.set-card-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,3,5,.95),transparent 67%)}.set-number{position:absolute;right:1rem;top:1rem;font-size:.6rem;letter-spacing:.18em;border:1px solid rgba(255,255,255,.35);padding:.5rem}.set-copy{position:absolute;left:clamp(1.3rem,3vw,2.7rem);right:1.5rem;bottom:clamp(1.3rem,3vw,2.7rem)}.set-copy p{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--electric);margin-bottom:.7rem}.set-copy h3{font-size:clamp(2rem,4vw,4.5rem);line-height:.95;text-transform:uppercase;letter-spacing:-.04em;margin-bottom:.6rem}.set-copy span{color:#bbbfc7}.set-copy a{display:inline-block;margin-top:1.25rem;border-bottom:1px solid var(--electric);font-size:.67rem;text-transform:uppercase;letter-spacing:.12em}.set-card-info{min-height:285px;padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;background:radial-gradient(circle at 80% 10%,rgba(78,232,255,.15),transparent 45%),#0d1016}.set-card-info h3{font-size:clamp(1.8rem,3vw,3.5rem);line-height:1;text-transform:uppercase;margin:.6rem 0 1rem}.set-card-info>p:not(.micro-label){color:var(--muted-dark);max-width:530px}.equaliser{position:absolute;right:2rem;top:2rem;height:80px;display:flex;align-items:flex-end;gap:5px}.equaliser i{display:block;width:4px;background:var(--electric);animation:eq 1.2s ease-in-out infinite alternate}.equaliser i:nth-child(2n){animation-delay:.2s}.equaliser i:nth-child(3n){animation-delay:.45s}@keyframes eq{from{height:12%}to{height:100%}}.config-links{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.4rem}.config-links a{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;border-bottom:1px solid var(--electric);padding-bottom:.25rem}
.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:3rem}.gallery-heading h2{font-size:clamp(3rem,7vw,7.5rem);text-transform:uppercase;letter-spacing:-.055em;margin:.4rem 0 0}.gallery-heading>span{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-dark)}.masonry-gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:95px;gap:1rem}.gallery-shot{border:0;padding:0;background:#111;overflow:hidden;cursor:zoom-in}.gallery-shot img{width:100%;height:100%;object-fit:cover;transition:transform .55s,filter .55s}.gallery-shot:hover img{transform:scale(1.04);filter:saturate(1.18)}.shot-a{grid-column:span 7;grid-row:span 5}.shot-b{grid-column:span 5;grid-row:span 6}.shot-c{grid-column:span 4;grid-row:span 5}.shot-d{grid-column:span 8;grid-row:span 5}.shot-e{grid-column:span 5;grid-row:span 5}.shot-f{grid-column:span 7;grid-row:span 5}.shot-g{grid-column:1/-1;grid-row:span 5}
.dj-services{border-top:1px solid var(--line-dark);display:grid;grid-template-columns:.45fr 1.4fr;gap:clamp(2rem,7vw,8rem)}.services-title{grid-column:2}.service-rows{grid-column:2;border-top:1px solid var(--line-dark)}.service-row{display:grid;grid-template-columns:60px minmax(220px,.9fr) 1fr;gap:2rem;align-items:start;padding:2rem 0;border-bottom:1px solid var(--line-dark)}.service-row>span{color:var(--electric);font-size:.63rem}.service-row h3{font-size:clamp(1.5rem,2.8vw,3rem);text-transform:uppercase;line-height:1;margin:0}.service-row p{color:var(--muted-dark);margin:0;max-width:520px}
.booking-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,9rem);border-top:1px solid var(--line-dark);background:radial-gradient(circle at 5% 50%,rgba(126,92,255,.13),transparent 37%)}.booking-heading>p:last-child{color:var(--muted-dark);max-width:480px}.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-content:start}.enquiry-form label{display:grid;gap:.55rem}.enquiry-form label>span{font-size:.61rem;letter-spacing:.15em;text-transform:uppercase}.enquiry-form input,.enquiry-form textarea,.enquiry-form select{width:100%;border-radius:0;padding:.85rem 0;border:0;border-bottom:1px solid;background:transparent;outline:0}.enquiry-form textarea{resize:vertical}.enquiry-form-dark label>span{color:#9fa3aa}.enquiry-form-dark input,.enquiry-form-dark textarea,.enquiry-form-dark select{color:#fff;border-color:#454a54}.enquiry-form-dark select option{background:#0b0d11}.enquiry-form-dark input:focus,.enquiry-form-dark textarea:focus,.enquiry-form-dark select:focus{border-color:var(--electric)}.form-full{grid-column:1/-1}.form-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:start!important;gap:.8rem!important}.form-check input{width:17px;height:17px;margin:.1rem 0 0;accent-color:var(--electric)}.form-check span{text-transform:none!important;letter-spacing:0!important;font-size:.78rem!important;line-height:1.5}.enquiry-form .button{justify-self:start}.form-status{min-height:1.5em;margin:0;font-size:.75rem;line-height:1.5}.form-status.success{color:#76ffb3}.form-status.error{color:#ff8f8f}.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}

/* Photography */
.photo-hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:9rem var(--pad) 5rem;overflow:hidden;isolation:isolate}.photo-grid-bg{position:absolute;inset:0;z-index:-3;background-image:linear-gradient(var(--line-light) 1px,transparent 1px),linear-gradient(90deg,var(--line-light) 1px,transparent 1px);background-size:clamp(50px,7vw,110px) clamp(50px,7vw,110px);opacity:.5}.photo-hero::after{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 75% 45%,rgba(255,255,255,.95),transparent 35%),linear-gradient(90deg,var(--paper) 0 48%,rgba(241,239,232,.28) 75%)}.photo-hero-mark{position:absolute;z-index:-1;width:min(68vw,1100px);right:-15vw;top:50%;transform:translateY(-45%) rotate(-7deg);opacity:.06}.photo-hero-content{width:min(860px,75vw)}.photo-hero h1{font-size:clamp(3.5rem,8.3vw,9rem);line-height:.91;letter-spacing:-.065em;text-transform:uppercase;margin:.7rem 0 2rem}.photo-hero h1 em{font-family:Georgia,serif;text-transform:none;font-weight:400}.photo-hero-content>p:not(.photo-kicker){max-width:650px;color:var(--muted-light);font-size:clamp(1rem,1.6vw,1.35rem)}.photo-hero-logo-lockup{position:absolute;right:var(--pad);bottom:2.5rem;width:clamp(160px,20vw,300px)}.photo-side-note{position:absolute;right:1rem;top:50%;transform:rotate(90deg) translateX(50%);transform-origin:right center;font-size:.56rem;letter-spacing:.17em;text-transform:uppercase;color:#77786f}
.photo-statement{display:grid;grid-template-columns:.25fr 1.8fr .7fr;gap:clamp(2rem,6vw,7rem);align-items:start;border-top:1px solid var(--line-light)}.photo-section-number{font-size:.63rem;letter-spacing:.2em;color:#898a81}.photo-statement h2,.photo-heading h2,.photo-about-copy h2,.photo-contact-heading h2{font-size:clamp(2.8rem,6.5vw,7.2rem);line-height:.96;letter-spacing:-.06em;margin:.6rem 0 0}.photo-statement h2 em,.photo-contact-heading h2 em{font-family:Georgia,serif;font-weight:400}.photo-statement-note{color:var(--muted-light);font-size:1.05rem;margin-top:2rem}
.photo-work,.photo-services,.photo-process{border-top:1px solid var(--line-light)}.photo-heading{display:flex;justify-content:space-between;gap:3rem;align-items:flex-end;margin-bottom:4rem}.photo-heading>p{max-width:420px;color:var(--muted-light)}.outlined-link{display:inline-block;border-bottom:1px solid var(--ink);padding-bottom:.35rem;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase}.photo-work-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem}.photo-work-card{position:relative;min-height:460px;overflow:hidden;background:#deddd6}.photo-work-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.88);transition:transform .7s,filter .7s}.photo-work-card:hover img{transform:scale(1.035);filter:saturate(1)}.photo-work-card>div{position:absolute;left:1.3rem;right:1.3rem;bottom:1.3rem;background:rgba(241,239,232,.92);padding:1.1rem}.photo-work-card span{font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;color:#6d6e66}.photo-work-card h3{font-size:clamp(1.5rem,2.6vw,3rem);line-height:1;margin:.6rem 0 0;letter-spacing:-.03em}.work-card-large{grid-row:span 2;min-height:940px}.work-card-text{display:flex;align-items:flex-end;padding:2rem;background:var(--ink);color:#fff}.work-card-text>div{position:relative;left:auto;right:auto;bottom:auto;background:none;padding:0}.work-card-text p{color:#b7b8b1;max-width:420px}.giant-hh{position:absolute!important;right:-.05em;top:-.2em;font-size:clamp(10rem,24vw,27rem)!important;font-weight:900;letter-spacing:-.16em!important;line-height:1;color:rgba(255,255,255,.055)!important}
.photo-service-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-light);border-left:1px solid var(--line-light)}.photo-service{min-height:360px;padding:clamp(1.5rem,4vw,3.5rem);border-right:1px solid var(--line-light);border-bottom:1px solid var(--line-light);display:flex;flex-direction:column}.photo-service>span{font-size:.6rem;letter-spacing:.15em;color:#85867e}.photo-service h3{font-size:clamp(2rem,4vw,4.5rem);line-height:.94;letter-spacing:-.05em;margin:auto 0 1rem}.photo-service p{color:var(--muted-light);max-width:520px}.photo-service b{font-size:.57rem;letter-spacing:.14em;text-transform:uppercase;margin-top:1.5rem}
.photo-about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,9rem);align-items:center;border-top:1px solid var(--line-light)}.photo-about-visual{position:relative}.photo-about-frame{aspect-ratio:4/5;overflow:hidden;background:#222}.photo-about-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.02)}.photo-about-mark{position:absolute;width:58%;right:-10%;bottom:-8%;filter:drop-shadow(0 12px 25px rgba(0,0,0,.25))}.photo-about-copy p:not(.photo-kicker){color:var(--muted-light);font-size:1.03rem;max-width:650px}.photo-about-copy .outlined-link{margin-top:1.2rem}
.process-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-light)}.process-list li{display:grid;grid-template-columns:100px 1fr;padding:2rem 0;border-bottom:1px solid var(--line-light)}.process-list li>span{font-size:.6rem;letter-spacing:.16em;color:#85867e}.process-list h3{font-size:clamp(2rem,4vw,4rem);letter-spacing:-.04em;margin:0 0 .6rem}.process-list p{margin:0;color:var(--muted-light);max-width:650px}
.photo-contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,9rem);border-top:1px solid var(--line-light);background:linear-gradient(120deg,rgba(255,255,255,.55),transparent 45%)}.photo-contact-heading>p:last-child{color:var(--muted-light);max-width:500px;margin-top:1.5rem}.enquiry-form-light label>span{color:#66675f}.enquiry-form-light input,.enquiry-form-light textarea,.enquiry-form-light select{color:var(--ink);border-color:#aaa99f}.enquiry-form-light input:focus,.enquiry-form-light textarea:focus,.enquiry-form-light select:focus{border-color:var(--ink)}.enquiry-form-light .form-check input{accent-color:var(--ink)}.enquiry-form-light .form-status.success{color:#147a42}.enquiry-form-light .form-status.error{color:#b02929}

/* Footer and lightbox */
.footer{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:clamp(1.5rem,4vw,4rem);padding:2.2rem var(--pad);font-size:.59rem;letter-spacing:.13em;text-transform:uppercase}.footer img{width:clamp(130px,13vw,200px)}.footer>div{display:flex;gap:1.2rem;flex-wrap:wrap}.footer>div span{opacity:.55}.footer button{border:0;background:none;text-transform:uppercase;letter-spacing:.13em;font-size:inherit;cursor:pointer;padding:.3rem 0;border-bottom:1px solid currentColor}.footer p{margin:0;opacity:.55}.footer-dj{border-top:1px solid var(--line-dark)}.footer-photo{border-top:1px solid var(--line-light)}
.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:clamp(1rem,4vw,4rem);background:rgba(0,0,0,.94);overflow:hidden}.lightbox::backdrop{background:rgba(0,0,0,.7)}.lightbox img{width:100%;height:100%;object-fit:contain}.lightbox-close{position:absolute;right:1rem;top:.5rem;width:48px;height:48px;border:0;background:none;color:#fff;font-size:2.2rem;cursor:pointer;z-index:2}

@media (max-width:1000px){
  .desktop-nav{display:none}.menu-button{display:block}.mobile-nav{display:flex}.side-switch span{display:none}.side-switch{padding-left:5px}
  .dj-intro,.dj-services{grid-template-columns:1fr}.dj-intro-copy,.dj-intro-images,.services-title,.service-rows{grid-column:1}.booking-section,.photo-contact{grid-template-columns:1fr}.photo-statement{grid-template-columns:60px 1fr}.photo-statement-note{grid-column:2}.photo-work-grid{grid-template-columns:1fr 1fr}.work-card-large{grid-row:auto;grid-column:1/-1;min-height:650px}.photo-about{grid-template-columns:1fr}.photo-about-visual{max-width:650px}.footer{grid-template-columns:1fr 1fr}.footer>div{justify-content:flex-end}.footer button,.footer p{justify-self:start}
}
@media (max-width:760px){
  .chooser{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.chooser-divider{left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.8);padding:.45rem .7rem;border-radius:999px}.chooser-photo::before{width:100vw;height:100vw;right:-45vw;top:-40vw}.chooser-mark{width:70vw;right:-15%;bottom:-20%}.chooser-content{bottom:1.5rem;gap:.8rem}.chooser-content img{max-height:100px;width:min(70%,470px)}.chooser-photo .chooser-content img{width:min(55%,340px)}
  .dj-hero{padding-bottom:4rem}.dj-hero-topline{top:6.2rem}.dj-hero-topline span:last-child{display:none}.dj-scroll{display:none}.dj-hero-logo{width:90vw}.hero-vignette{background:linear-gradient(0deg,rgba(3,4,7,.96),rgba(3,4,7,.12) 75%)}
  .dj-intro-images{grid-template-columns:1fr}.image-card-tall,.image-card-wide{height:430px}.set-grid{grid-template-columns:1fr}.set-card-featured{grid-row:auto;min-height:620px}.set-card{min-height:500px}.set-card-info{min-height:330px}.masonry-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.gallery-shot[class]{grid-column:auto;grid-row:span 2}.shot-a,.shot-g{grid-column:1/-1!important;grid-row:span 3!important}.service-row{grid-template-columns:45px 1fr}.service-row p{grid-column:2}.enquiry-form{grid-template-columns:1fr}.enquiry-form>*{grid-column:1/-1}.section-heading-dark,.gallery-heading,.photo-heading{align-items:flex-start;flex-direction:column}.section-heading-dark h2{font-size:clamp(3rem,15vw,5.5rem)}
  .photo-hero{align-items:flex-end;padding-bottom:7rem}.photo-hero-content{width:100%}.photo-hero h1{font-size:clamp(3.4rem,16vw,6.2rem)}.photo-hero-logo-lockup{left:var(--pad);right:auto;bottom:1.8rem;width:150px}.photo-side-note{display:none}.photo-hero-mark{width:110vw;right:-40vw}.photo-statement{grid-template-columns:1fr}.photo-statement-note{grid-column:1}.photo-work-grid{grid-template-columns:1fr}.work-card-large{grid-column:1;min-height:560px}.photo-work-card{min-height:480px}.photo-service-grid{grid-template-columns:1fr}.photo-service{min-height:320px}.process-list li{grid-template-columns:55px 1fr}.footer{grid-template-columns:1fr;align-items:start}.footer>div{justify-content:flex-start;flex-direction:column;gap:.5rem}.footer button,.footer p{justify-self:start}
}
@media (max-width:480px){.side-switch{display:none}.site-header{padding-top:.85rem}.header-logo{width:145px}.header-logo-photo{width:140px}.dj-hero-content>p{font-size:.95rem}.hero-buttons{align-items:flex-start;flex-direction:column}.section-pad,.section-pad-light{padding-block:4.5rem}.masonry-gallery{display:block}.gallery-shot{display:block;width:100%;height:340px;margin-bottom:.8rem}.photo-work-card,.work-card-large{min-height:430px}.photo-about-mark{right:-3%;bottom:-6%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.hero-frame-b{display:none}}
.footer-links{display:flex;gap:1rem;align-items:center}.footer-links a,.footer-links button{font-size:.59rem;letter-spacing:.13em;text-transform:uppercase;border:0;border-bottom:1px solid currentColor;background:none;padding:.3rem 0;cursor:pointer}

/* v12 corrections — correct v8 gallery base */
.image-card figcaption{display:none!important}
.set-grid{align-items:stretch}
.set-card{isolation:isolate}
.set-card .set-thumbnail{object-fit:cover;object-position:center center;background:#050608}
.set-card-featured{min-height:780px}
.set-card-overlay{z-index:1}
.set-number,.set-copy{z-index:2}
.set-copy{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;max-width:calc(100% - 3rem)}
.set-copy p,.set-copy h3,.set-copy span,.set-copy .set-cta{margin:0}
.set-copy span{display:block;line-height:1.35;max-width:100%}
.set-cta{display:inline-block;margin-top:.55rem!important;line-height:1.25;white-space:normal;max-width:100%}
.set-card-featured .set-copy{left:2rem;right:2rem;bottom:2rem}
.set-card-info{overflow:hidden}
.set-card-info>p:not(.micro-label){max-width:calc(100% - 7rem)}
@media (max-width:1200px){.set-grid{grid-template-columns:1fr}.set-card-featured{grid-row:auto;min-height:680px}.set-card{min-height:430px}.set-card-info>p:not(.micro-label){max-width:100%}}
@media (max-width:700px){.set-copy{max-width:calc(100% - 2rem)}.set-card-featured .set-copy{left:1.35rem;right:1.35rem;bottom:1.35rem}}

/* v13 polish fixes */
.set-card-info .set-cta{align-self:flex-start}
