@font-face{font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;src:url('assets/fonts/montserrat-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/montserrat-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/montserrat-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Nothing You Could Do';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/nothing-you-could-do-latin-400-normal.woff2') format('woff2')}
:root{--ink:#2c2a56;--rose:#b77e83;--max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:300 15px/1.55 Montserrat,Arial,sans-serif}a{color:inherit}img{display:block;max-width:100%}.nav{position:absolute;z-index:20;top:0;left:0;right:0;height:54px;background:rgba(44,42,86,.48);color:#fff}.nav nav{height:100%;max-width:950px;margin:auto;display:flex;align-items:center;justify-content:space-between}.nav a{text-decoration:none}.nav a:hover{color:#d4a0a4}.hamb{display:none}.hero{height:100vh;min-height:720px;position:relative;background:url('assets/hero-v26.webp') center/cover no-repeat;color:#fff;display:grid;place-items:center;text-align:center}.shade{position:absolute;inset:0;background:rgba(24,23,48,.39)}.hero-inner{position:relative;width:min(760px,90%);padding-top:25px}.main-logo{width:min(440px,75vw);margin:0 auto 50px;filter:brightness(0) invert(1)}.hero p{font-size:15px;margin-bottom:52px}.btn{display:inline-block;min-width:180px;border:0;background:var(--ink);color:#fff;padding:12px 24px;text-decoration:none;text-align:center;font:300 13px Montserrat;cursor:pointer;transition:.3s}.btn:hover{background:var(--rose)}.social{margin-top:58px;display:flex;justify-content:center;gap:24px;font-size:38px}.social a{text-decoration:none}.section{max-width:var(--max);margin:auto;padding:92px 30px;text-align:center}.label{text-transform:uppercase;letter-spacing:.28em;font-size:11px;color:var(--rose);margin:0 0 14px}.section h2,.contact h2{font-weight:300;font-size:36px;margin:0 0 25px}.intro{min-height:880px;position:relative;background:#fff;overflow:hidden;display:grid;place-items:center}.intro-art{position:absolute;inset:0;background:url('assets/intro-overlay-v26.webp') center/cover no-repeat;opacity:.98}.intro-copy{position:relative;text-align:center;width:min(850px,90%);padding:70px 30px}.intro h2{font-size:30px;font-weight:300}.features{display:flex;flex-wrap:wrap;justify-content:center;gap:15px 34px;margin:45px 0}.features span{min-width:280px}.team>p:not(.label){margin-bottom:50px}.dj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.portrait{position:relative;border-radius:50%;overflow:hidden;aspect-ratio:1}.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .65s,transform .8s}.portrait img:last-child{opacity:0}.portrait:hover img:first-child{opacity:0;transform:scale(1.04)}.portrait:hover img:last-child{opacity:1;transform:scale(1.04)}.dj-grid h2{font-size:14px;font-weight:300;min-height:68px;margin:22px 0 8px}.dj-grid h3{font-size:22px;font-weight:300;margin:0}.dj-grid small{font-size:12px}.team>.btn{margin-top:50px}.parallax{background-attachment:fixed;background-position:center;background-size:cover}.day-photo{height:470px;background-image:url('assets/day-bg-v26.webp')}.timeline{padding-top:100px}.time-line{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:65px}.time-line:before{content:"";position:absolute;top:35px;left:7%;right:7%;height:2px;background:#d5a0a4}.time-line article{position:relative}.time-line b{font:400 25px 'Nothing You Could Do',cursive;color:var(--rose)}.time-line h3{font-size:15px;margin-top:35px}.time-line p{font-size:11px}.services-photo{height:520px;background-image:url('assets/services-bg-v26.webp')}.services>p:not(.label){margin-bottom:55px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.cards article{background:#fff;transition:.35s}.cards article:hover{transform:translateY(-8px);box-shadow:0 18px 45px #2c2a5622}.cards img{width:100%;height:180px;object-fit:cover}.cards h3{font-size:17px;font-weight:400}.cards p{font-size:12px;padding:0 16px}.services>.btn{margin-top:45px}.music{height:540px;background-image:linear-gradient(#24224788,#24224788),url('assets/services-bg-v26.webp');display:grid;place-items:center;align-content:center;color:#fff;text-align:center}.music h2{font-size:30px;font-weight:300}.music iframe{width:min(700px,86vw);height:152px;border:0;border-radius:10px}.slider{position:relative;max-width:820px;margin:55px auto 0;overflow:hidden}.slides{display:flex;transition:transform .7s ease}.slides article{min-width:100%;padding:0 85px}.slides img{width:220px;height:220px;object-fit:cover;border-radius:50%;margin:auto}.slides blockquote{margin:30px 0;font-size:15px}.slides h3{font-size:28px;font-weight:300}.prev,.next{position:absolute;top:40%;border:0;background:none;color:var(--ink);font-size:50px;cursor:pointer}.prev{left:12px}.next{right:12px}.dots{display:flex;justify-content:center;gap:8px}.dots button{width:8px;height:8px;border:0;border-radius:50%;background:#ccc;padding:0}.dots button.active{background:var(--ink)}.contact{background:#f5f2ef}.contact h2{font-size:34px;font-weight:300}.contact form{max-width:830px;margin:50px auto;display:grid;grid-template-columns:1fr 1fr;gap:22px}.contact input,.contact select,.contact textarea{width:100%;border:0;border-bottom:1px solid #888;background:transparent;padding:14px;font:300 14px Montserrat}.contact textarea,.privacy,.contact button{grid-column:1/-1}.contact textarea{height:110px}.privacy{text-align:left;font-size:12px}.privacy input{width:auto}.office{margin-top:55px}.office a{text-decoration:none}footer{text-align:center;padding:48px 20px}footer img{width:235px;margin:0 auto 25px}footer nav{display:flex;justify-content:center;gap:25px;margin-bottom:22px}footer nav a{font-size:11px}.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){.nav{position:fixed}.hamb{display:block;position:absolute;right:20px;top:12px;background:none;border:0;color:#fff;font-size:24px}.nav nav{display:none;position:absolute;top:54px;left:0;right:0;height:auto;background:var(--ink);padding:25px;flex-direction:column;gap:22px}.nav nav.open{display:flex}.hero{min-height:700px}.main-logo{margin-bottom:38px}.intro{min-height:720px}.dj-grid{grid-template-columns:1fr 1fr}.time-line{grid-template-columns:1fr 1fr}.time-line:before{display:none}.time-line h3{margin-top:8px}.cards{grid-template-columns:1fr 1fr}.parallax{background-attachment:scroll}}
@media(max-width:520px){.section{padding:70px 20px}.section h2,.contact h2{font-size:30px}.hero{height:100svh}.hero p{font-size:12px}.intro-art{opacity:.35}.features span{min-width:0;width:100%}.dj-grid,.cards,.time-line{grid-template-columns:1fr}.dj-grid article{max-width:280px;margin:auto}.cards article{max-width:340px;margin:auto}.day-photo,.services-photo{height:330px}.contact form{grid-template-columns:1fr}.contact form>*{grid-column:1!important}.slides article{padding:0 42px}.slides img{width:170px;height:170px}.prev{left:0}.next{right:0}footer nav{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}.slides{transition:none}}

/* V5: Originalnahe Ebenen, Hover-Zustände und Ergänzungen */
.hero{background-attachment:fixed}.intro,.team,.timeline,.services,.testimonials,.contact{position:relative;z-index:2;background:#fff;box-shadow:0 -18px 35px rgba(24,23,48,.06)}.intro{min-height:620px;margin-top:0}.intro-art{display:none}.intro-copy{padding:105px 30px}.features{max-width:980px;margin:55px auto;display:grid;grid-template-columns:repeat(5,1fr);gap:28px}.features span{min-width:0;font-size:12px;display:flex;flex-direction:column;align-items:center;gap:15px}.features i{display:grid;place-items:center;width:62px;height:62px;border:1px solid var(--rose);border-radius:50%;color:var(--rose);font:normal 30px/1 Georgia}.social a{display:grid;place-items:center;width:44px;height:44px;border:2px solid currentColor;border-radius:50%;font-size:30px;line-height:1;text-decoration:none}.social .wa{font-size:26px;transform:rotate(-35deg)}.social .ig{margin-top:-3px}.social.dark{margin-top:20px;color:#111}.social.dark a{width:38px;height:38px;font-size:25px}
.portrait{border-radius:0;height:390px;aspect-ratio:auto;background:#eee}.portrait img:first-child{opacity:1;transform:scale(1.7);transform-origin:50% 22%;filter:none}.portrait img:last-of-type{opacity:0;transform:scale(1.03)}.portrait p{position:absolute;z-index:4;left:12px;right:12px;bottom:10px;margin:0;padding:10px 8px;background:rgba(44,42,86,.82);color:#fff;font-size:11px;opacity:0;transform:translateY(16px);transition:.5s}.portrait:hover img:first-child{opacity:0;transform:scale(1.45)}.portrait:hover img:last-of-type{opacity:1;transform:scale(1)}.portrait:hover p{opacity:1;transform:none}.dj-grid h3{margin-top:16px}.dj-grid h2{display:none}
.day-photo,.services-photo,.music{position:relative;z-index:1;height:72vh;min-height:520px;background-attachment:fixed}.timeline,.services{margin-top:0}.timeline:before,.services:before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:#fff}.time-line{grid-template-columns:repeat(3,1fr);gap:55px 30px;max-width:950px;margin-left:auto;margin-right:auto}.time-line:before{top:40px}.time-line article:before{content:"";display:block;width:12px;height:12px;margin:18px auto 25px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 8px #fff,0 0 0 9px var(--rose)}.time-line h3{margin-top:0}.time-line article:nth-child(n+4):before{margin-top:5px}.cards{grid-template-columns:repeat(4,1fr)}.cards article{position:relative;height:250px;overflow:hidden;background:#f6f4f2;display:grid;place-items:center;align-content:center;padding:24px}.cards img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .55s,transform .7s}.cards h3,.cards p{position:relative;z-index:2;transition:.45s}.cards h3{font-size:17px}.cards p{font-size:11px}.cards article:hover img{opacity:1;transform:scale(1)}.cards article:hover h3,.cards article:hover p{background:rgba(255,255,255,.87);padding:8px 12px;margin:2px 0}.cards article:hover{transform:none;box-shadow:none}.slides img{object-position:center}.partners{max-width:850px;margin:55px auto 15px;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:45px}.partners img{max-height:125px;margin:auto;filter:grayscale(1);opacity:.5;transition:.3s}.partners a:hover img{opacity:1}.gallery{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;background:#fff}.gallery img{width:100%;height:100%;object-fit:cover}.gallery img:nth-child(3n+1){grid-column:span 2}.gallery img:nth-child(5){grid-row:span 2}footer img{width:455px;max-width:80vw}
@media(max-width:850px){.features{grid-template-columns:repeat(2,1fr)}.portrait{height:370px}.day-photo,.services-photo,.music{height:420px;min-height:0;background-attachment:scroll}.time-line{grid-template-columns:1fr 1fr}.time-line:before{display:none}.cards{grid-template-columns:1fr 1fr}.partners{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.gallery img:nth-child(n){grid-column:auto;grid-row:auto}}
@media(max-width:520px){.features{grid-template-columns:1fr}.portrait{height:410px}.time-line,.cards{grid-template-columns:1fr}.partners{gap:25px}.gallery{grid-auto-rows:130px}.hero{background-attachment:scroll}}

/* V6 – closer proportions and interactions of the original site */
.hero{position:sticky;top:0}
.hero-inner{transform:translateY(-78px);width:min(840px,92%);padding-top:0}
.main-logo{width:min(680px,86vw);margin-bottom:20px}
.hero p{margin:0 auto 42px;max-width:760px;line-height:1.75}
.hero .social{margin-top:48px}
.social a{border:0;width:38px;height:38px}
.social svg{width:34px;height:34px;overflow:visible;fill:currentColor;stroke:none}
.social svg rect,.social svg circle:not(.fill){fill:none;stroke:currentColor;stroke-width:1.8}
.social svg .fill{fill:currentColor;stroke:none}
.intro{min-height:560px}
.intro-copy{padding:76px 25px}
.intro h2{font-size:32px;font-weight:500;margin:0 0 18px}
.features{margin:48px auto 44px;gap:24px}
.features i{border:0;border-radius:0;width:58px;height:58px}
.features i svg{width:52px;height:52px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.features span:nth-child(even) i svg{stroke:var(--rose)}
.team{padding-top:112px;padding-bottom:125px}
.team>.label{display:none}
.team h2{color:var(--rose);font-size:40px;font-weight:500;margin-bottom:24px}
.team>p:not(.label){margin-bottom:62px}
.dj-grid{gap:55px;align-items:start}
.portrait{width:205px;height:205px;margin:auto;border-radius:50%;background:#eee;box-shadow:none;transition:width .55s,height .55s,border-radius .55s}
.portrait img:first-child{opacity:0;transform:scale(1);object-position:center 24%;filter:none}
.portrait img:last-of-type{opacity:1;transform:scale(1.1);object-position:center 22%;filter:grayscale(1)}
.portrait p{left:8px;right:8px;bottom:9px;padding:8px 7px;border-radius:2px;font-size:9px;line-height:1.35}
.portrait:hover{width:230px;height:315px;border-radius:115px}
.portrait:hover img:first-child{opacity:1;transform:scale(1);object-position:center top}
.portrait:hover img:last-of-type{opacity:0;transform:scale(1.06)}
.portrait:hover p{opacity:1;transform:none}
.dj-grid h3{color:var(--rose);font-size:23px;font-weight:500;margin-top:22px}
.dj-grid small{color:#777;font-size:11px}
.team>.btn{margin-top:64px}
.timeline h2,.services h2,.testimonials h2{font-weight:400}
.time-line{grid-template-columns:repeat(6,1fr);gap:8px;margin-top:72px}
.time-line:before{top:42px;left:4%;right:4%}
.time-line article:before{margin:21px auto 28px}
.time-line article:nth-child(n+4):before{margin-top:21px}
.time-line b{font-size:22px}
.time-line h3{font-size:13px}
.time-line p{font-size:10px}
@media(max-width:850px){.hero-inner{transform:translateY(-28px)}.main-logo{width:min(590px,92vw)}.dj-grid{gap:34px}.portrait{width:210px;height:210px}.time-line{grid-template-columns:1fr 1fr}.time-line article:nth-child(n):before{margin-top:18px}}
@media(max-width:520px){.hero-inner{transform:translateY(-12px)}.main-logo{width:92vw;margin-bottom:8px}.hero p{line-height:1.55;margin-bottom:30px}.hero .social{margin-top:32px}.intro h2{font-size:26px}.team{padding-top:76px}.portrait,.portrait:hover{width:230px;height:300px;border-radius:115px}.portrait img:first-child{opacity:1}.portrait img:last-of-type{opacity:0}.portrait p{opacity:1;transform:none}.dj-grid{gap:55px}}

/* Each photo owns its clipped layer. No fixed image can leak behind another section. */
body{overflow-x:clip;background:#fff}
main{isolation:isolate}
.hero.scene,.scene{position:relative;top:auto;isolation:isolate;overflow:hidden;overflow:clip;background:none;background-attachment:scroll;z-index:0}
.scene-image{position:absolute;inset:-100px 0;z-index:-1;pointer-events:none;background-position:center;background-repeat:no-repeat;background-size:cover;transform:translate3d(0,var(--scene-y,0px),0);will-change:transform}
.hero .scene-image{background-image:url('assets/hero-v26.webp')}
.robert-photo .scene-image{background-image:url('assets/robert-headphones-v26.webp')}
.day-photo .scene-image{background-image:url('assets/day-bg-v26.webp')}
.services-photo .scene-image{background-image:url('assets/services-bg-v26.webp')}
.group-photo .scene-image{background-image:url('assets/group-bg-v26.webp');background-position:50% 42%}
.music .scene-image{background-image:linear-gradient(#24224788,#24224788),url('assets/services-bg-v26.webp')}
.robert-photo,.group-photo{height:68vh;min-height:400px;max-height:780px}
.team.section,.timeline.section,.services.section,.testimonials.section{max-width:none;width:100%;padding-left:max(30px,calc((100% - 1060px)/2));padding-right:max(30px,calc((100% - 1060px)/2))}
.intro,.team,.timeline,.services,.testimonials,.contact{z-index:1;box-shadow:none;background:#fff}
footer{position:relative;background:#fff}
.dj-grid{gap:24px;min-height:382px}
.portrait p{left:24px;right:24px;bottom:55px;font-size:12px;font-weight:400;line-height:1.5;padding:12px 10px;background:rgba(35,32,65,.94);border-radius:7px;text-wrap:pretty}
.time-note{position:relative;margin:18px auto 0;max-width:160px;color:var(--rose);font:16px/1.4 'Nothing You Could Do',cursive}
.time-note svg{display:block;width:55px;height:35px;margin:0 auto 5px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform:rotate(180deg)}
.partners{max-width:980px;grid-template-columns:1.45fr 1fr 1fr 1fr;gap:35px}
.partners img{opacity:1;filter:none;max-height:155px}
.partners a:first-child img{width:100%;max-height:190px;object-fit:contain}
.gallery-item{border:0;padding:0;background:none;overflow:hidden;cursor:zoom-in;min-width:0}
.gallery-item:nth-child(3n+1){grid-column:span 2}
.gallery-item:nth-child(5){grid-row:span 2}
.gallery-item img{transition:transform .4s;width:100%;height:100%;object-fit:cover}
.gallery-item:hover img{transform:scale(1.035)}
.gallery-item:focus-visible{outline:4px solid var(--rose);outline-offset:-4px}
.lightbox{border:0;padding:55px 65px;background:#161521;color:white;width:96vw;max-width:1500px;max-height:94dvh;overflow:hidden}
.lightbox::backdrop{background:rgba(10,9,18,.9)}
.lightbox figure{margin:0;display:grid;justify-items:center;gap:12px}
.lightbox figure img{max-width:100%;height:auto;max-height:76dvh;object-fit:contain}
.lightbox figcaption{font-size:13px}
.lightbox button{position:absolute;color:white;border:0;background:transparent;font:40px/1 Arial;cursor:pointer;width:44px;height:44px}
.lightbox-close{right:8px;top:6px}
.lightbox-prev{left:10px;top:45%}.lightbox-next{right:10px;top:45%}
body.gallery-open{overflow:hidden}
@media(max-width:1000px){.dj-grid{grid-template-columns:repeat(2,1fr);row-gap:45px}}
@media(max-width:600px){.team.section,.timeline.section,.services.section,.testimonials.section{padding-left:20px;padding-right:20px}.dj-grid{grid-template-columns:1fr}.robert-photo,.group-photo{height:48svh;min-height:300px}.scene-image{inset:-55px 0}.portrait p{bottom:55px;font-size:12px}.partners{grid-template-columns:1fr 1fr;gap:28px}.gallery-item:nth-child(n){grid-column:auto;grid-row:auto}.lightbox{padding:50px 38px}.lightbox-prev{left:0}.lightbox-next{right:0}}
@media(prefers-reduced-motion:reduce){.scene-image{transform:none!important;will-change:auto}.portrait,.portrait img,.gallery-item img{transition:none}}

/* Swap only the two requested scenes; Robert above the team stays unchanged. */
.day-photo .scene-image{background-image:url('assets/group-bg-v26.webp');background-position:50% 42%}
.group-photo .scene-image{background-image:url('assets/day-bg-v26.webp');background-position:center}
/* Original gallery proportions: portraits stay complete, not cropped into landscape tiles. */
.gallery-section{position:relative;z-index:1;background:#fff;padding:20px 0}
.gallery-controls{display:flex;justify-content:center;align-items:center;gap:22px;margin:0 20px 18px;text-align:center;font-size:12px}
.gallery-controls button{border:1px solid #d0cbd3;border-radius:50%;width:44px;height:44px;flex-shrink:0;background:#fff;color:var(--ink);font-size:30px;cursor:pointer}
.gallery-controls button:disabled{opacity:.3;cursor:default}
.gallery{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-behavior:smooth;overscroll-behavior-x:contain;padding:0 20px 14px;scrollbar-color:var(--rose) #f2efef;scrollbar-width:thin;cursor:grab;touch-action:pan-x pan-y}
.gallery .gallery-item:nth-child(n){display:block;flex:0 0 auto;grid-column:auto;grid-row:auto;height:360px;width:auto;scroll-snap-align:start;background:#f4f1ef}
.gallery .gallery-item img{height:100%;width:auto;max-width:none;object-fit:contain;object-position:center top;transform:none;user-select:none}
.gallery.is-dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none}
.gallery.is-dragging .gallery-item{cursor:grabbing}
.cards img{object-position:center}
.cards article{isolation:isolate}
@media(max-width:600px){.gallery .gallery-item:nth-child(n){height:280px}.gallery{gap:8px;padding-left:12px;padding-right:12px}.gallery-controls{gap:12px;font-size:11px}.day-photo .scene-image{background-position:54% center}}
@media(prefers-reduced-motion:reduce){.gallery{scroll-behavior:auto}}

/* Uploaded group image, unchanged. */
.day-photo .scene-image{background-image:url('assets/group-v9-v26.webp');background-position:50% 35%}
/* Five profiles, in the requested order; reserve space for hover expansion. */
.team.section{padding-left:max(24px,calc((100% - 1200px)/2));padding-right:max(24px,calc((100% - 1200px)/2))}
.dj-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.dj-grid .portrait{width:185px;height:185px}
.dj-grid .portrait:hover,.dj-grid .portrait:focus-visible{width:210px;height:315px}
.portrait-new{background:#e6e2df}
.portrait-new .new-photo{position:absolute;inset:0;filter:grayscale(1);background-image:url('assets/group-v9-v26.webp');background-repeat:no-repeat;background-size:900% auto;background-position:76% 0%;transition:filter .55s,background-size .55s,height .55s;}
/* A wider real upper-body crop, not a generated reconstruction of hidden body parts. */
.portrait-new:hover .new-photo,.portrait-new:focus-visible .new-photo{height:220px;bottom:auto;background-size:560% auto;background-position:76% 0%;filter:none}
.portrait-new p{bottom:28px;left:22px;right:22px}
.portrait-new:hover p,.portrait-new:focus-visible p{opacity:1;transform:none}
.portrait-new:focus-visible{outline:2px solid var(--rose);outline-offset:5px}
/* Keep the heading, remove explanatory copy from the photo on hover/focus. */
.cards article:hover p,.cards article:focus p{opacity:0;visibility:hidden;pointer-events:none}
.cards article:hover h3,.cards article:focus h3{position:absolute;left:10px;right:10px;bottom:10px;margin:0;padding:7px 9px;font-size:14px;background:rgba(255,255,255,.88)}
.cards article:focus img{opacity:1;transform:scale(1)}
/* Two-row horizontal mosaic. Portrait tiles span both rows. */
.gallery{display:grid;grid-template-rows:repeat(2,220px);grid-auto-columns:130px;grid-auto-flow:column dense;gap:10px;align-items:stretch}
.gallery .gallery-item:nth-child(n){width:auto;height:auto;min-width:0;grid-column:span 3;grid-row:span 1}
.gallery .gallery-item:nth-child(2),.gallery .gallery-item:nth-child(5),.gallery .gallery-item:nth-child(7),.gallery .gallery-item:nth-child(9),.gallery .gallery-item:nth-child(11),.gallery .gallery-item:nth-child(13),.gallery .gallery-item:nth-child(17){grid-column:span 2;grid-row:span 2}
.gallery .gallery-item img{width:100%;height:100%;max-width:100%;object-fit:contain;object-position:center;background:#f3f0ed}
@media(max-width:1150px){.dj-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:45px}}
@media(max-width:750px){.dj-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 15px}.dj-grid .portrait{width:170px;height:170px}.dj-grid .portrait:hover,.dj-grid .portrait:focus-visible{width:180px;height:300px}.gallery{grid-template-rows:repeat(2,170px);grid-auto-columns:100px;gap:8px}}
@media(max-width:520px){.dj-grid{grid-template-columns:1fr}.dj-grid .portrait,.dj-grid .portrait:hover{width:230px;height:300px}.portrait-new .new-photo{height:215px;bottom:auto;background-size:560% auto;filter:none}.portrait-new p{opacity:1;transform:none;bottom:22px}.gallery{grid-template-rows:repeat(2,145px);grid-auto-columns:86px}}
@media(prefers-reduced-motion:reduce){.portrait-new .new-photo{transition:none}}

/* Daniel: loosen the face crop to retain hair, chin and shoulders. */
.portrait-new .new-photo{background-size:560% auto;background-position:77% 0%}
.portrait-new:hover .new-photo,.portrait-new:focus-visible .new-photo{background-size:560% auto;background-position:76% 0%}
/* Restore parallax with head-safe positioning calculated from the actual frame. */
.day-photo .scene-image{inset:0 0 -180px;background-position:center top;transform:translate3d(0,var(--group-y,0px),0);will-change:transform}
.google-reviews{margin:65px auto 0;padding:45px 28px 40px;max-width:850px;border-top:1px solid #e7dadd;background:linear-gradient(180deg,#faf6f5,#fff);border-radius:0 0 20px 20px}
.google-word{font:500 31px/1.2 Arial,sans-serif;letter-spacing:-1.5px;margin-bottom:16px}
.google-word span:nth-child(1),.google-word span:nth-child(4){color:#4285f4}
.google-word span:nth-child(2),.google-word span:nth-child(6){color:#ea4335}
.google-word span:nth-child(3){color:#fbbc05}.google-word span:nth-child(5){color:#34a853}
.google-stars{width:160px;height:28px;fill:#e9b44c;display:block;margin:0 auto 20px}
.google-reviews h2{font-size:25px;font-weight:400;margin:0 auto 18px;color:var(--ink)}
.google-reviews p{font-size:14px;line-height:1.8;margin-bottom:25px}
.google-reviews small{display:block;font-size:10px;color:#777;margin:18px auto 0;max-width:500px}
@media(max-width:520px){.portrait-new .new-photo{background-size:560% auto}.google-reviews{padding:35px 15px}.google-reviews h2{font-size:22px}.day-photo.scene{height:70vw;min-height:0;max-height:none}.day-photo .scene-image{background-size:cover;background-position:center top}}
@media(prefers-reduced-motion:reduce){.day-photo .scene-image{transform:none!important;will-change:auto}}

/* Individual edit only: group photo remains the supplied original. */
.portrait-new .new-photo{background-image:url('assets/daniel-black-v12-v26.webp');background-size:125% auto;background-position:center top}
.portrait-new:hover .new-photo,.portrait-new:focus-visible .new-photo{background-size:100% auto;background-position:center top;height:245px}
.portrait-new::after{content:"";position:absolute;inset:0;background:#76509a;mix-blend-mode:multiply;opacity:0;transition:opacity .55s;pointer-events:none;z-index:1}
.portrait-new:hover::after,.portrait-new:focus-visible::after{opacity:.48}
.portrait-new p{z-index:4}
.dj-grid{min-height:0}
.team>.btn{margin-top:32px}
.team{padding-bottom:70px}
/* Content-sized hero removes the excess space below the social links. */
.hero.scene{display:block;height:auto;min-height:0;padding:85px 20px 42px}
.hero-inner{transform:none;margin:0 auto;padding:0;width:min(840px,100%)}
.main-logo{width:min(620px,86vw);margin:0 auto 10px}
.hero p{margin-bottom:28px}
.hero .social{margin-top:30px}
@media(max-width:850px){
  .hero.scene{padding:78px 18px 34px}
  .hero-inner{transform:none}
  .day-photo.scene,.services-photo.scene,.music.scene{height:55svh;min-height:320px;max-height:480px}
  .robert-photo.scene,.group-photo.scene{height:52svh;min-height:300px;max-height:460px}
  .scene-image{inset:-64px 0;backface-visibility:hidden}
  .day-photo .scene-image{inset:0 0 -96px}
}
@media(max-width:520px){
  .hero.scene{padding:70px 16px 28px}
  .hero p{margin-bottom:24px}
  .hero .social{margin-top:24px}
  .main-logo{margin-bottom:12px}
  .portrait-new .new-photo{background-size:100% auto;height:245px}
  .portrait-new::after{opacity:.48}
  .day-photo.scene{height:70vw;min-height:0;max-height:none}
  .team>.btn{margin-top:28px}
}
@media(prefers-reduced-motion:reduce){.portrait-new::after{transition:none}}

/* Preview framing, with the original hover portraits preserved. */
.dj-grid .portrait img[src="assets/nina-b-v26.webp"]{object-position:30% 22%}
.dj-grid .portrait img[src="assets/andre-b-v26.webp"]{object-position:15% 22%}
.portrait-new .new-photo{background-size:110% auto}
/* Remove skin colours before tinting, as in the monochrome source portraits. */
.portrait-new:hover .new-photo,.portrait-new:focus-visible .new-photo{filter:grayscale(1)}
.portrait-new::after{background:#4d278d;mix-blend-mode:normal;bottom:auto;height:245px}
.portrait-new:hover::after,.portrait-new:focus-visible::after{opacity:.58}
@media(max-width:520px){
  .portrait-new .new-photo{background-size:100% auto;filter:grayscale(1)}
  .portrait-new::after{opacity:.58}
}

/* Fixed image geometry: only the mask opens and the colour layer fades in. */
.portrait-steady.portrait-nina{--photo-width:282.95px;--face-x:73%}
/* The violet source is darker after desaturation than the other preview photos. */
.dj-grid .portrait.portrait-nina img:last-of-type{filter:grayscale(1) brightness(1.5)}
.portrait-steady.portrait-andre{--photo-width:472.42px;--face-x:36%}
.dj-grid .portrait.portrait-steady img,
.dj-grid .portrait.portrait-steady:hover img,
.dj-grid .portrait.portrait-steady:focus-visible img{
  inset:0 auto auto 50%;width:var(--photo-width);max-width:none;height:315px;
  object-fit:fill;object-position:center;transform:translateX(calc(-1 * var(--face-x)));
  transform-origin:center;transition:opacity .65s;
}
.dj-grid .portrait.portrait-steady:focus-visible{width:210px;height:315px;border-radius:115px}
.dj-grid .portrait.portrait-steady:focus-visible img:first-child{opacity:1}
.dj-grid .portrait.portrait-steady:focus-visible img:last-of-type{opacity:0}
.dj-grid .portrait.portrait-steady:focus-visible p{opacity:1;transform:none}
.dj-grid .portrait.portrait-steady:focus-visible{outline:2px solid var(--rose);outline-offset:5px}
@media(max-width:750px){.dj-grid .portrait.portrait-steady:focus-visible{width:180px;height:300px}}
@media(max-width:520px){.dj-grid .portrait.portrait-steady:focus-visible{width:230px;height:300px}}
@media(prefers-reduced-motion:reduce){.dj-grid .portrait.portrait-steady img{transition:none}}

@font-face{font-family:'Dancing Script';font-style:normal;font-weight:700;font-display:swap;src:url('assets/dancing-script-700.ttf') format('truetype')}
.contact .contact-title{font-family:Montserrat,Arial,sans-serif;font-size:36px;font-weight:700;line-height:1.35;color:#2c2a56;margin:0 0 8px;text-align:center}
.contact .contact-subtitle{font-family:'Dancing Script',cursive;font-size:40px;font-weight:700;line-height:1.35;color:#cacad5;margin:0;text-align:center}
.contact .contact-heading{margin-bottom:42px}
.contact form{margin-top:0}
@media(max-width:600px){.contact .contact-title{font-size:28px}.contact .contact-subtitle{font-size:34px}.contact .contact-heading{margin-bottom:32px}}
