:root { --frame:1320px; --shell:min(1200px,calc(100% - 64px)); }
body { background:#181b24; font-size:1rem; }
.site-frame { width:min(var(--frame),100%); margin-inline:auto; background:var(--paper); box-shadow:0 0 90px #0004; }
.site-header { width:min(var(--frame),100%); left:50%; right:auto; transform:translateX(-50%); background:#fff; color:var(--ink); border-bottom-color:rgba(10,12,16,.08); }
.site-header:not(.scrolled) .nav-actions .button-primary { background:var(--blue); color:#fff; }
.site-header .menu-toggle { background:#eff1f5; }
.site-header .brand,.site-header .desktop-nav,.site-header .menu-toggle { color:#0a0c10; }
.about-mix { margin:28px 0; padding:24px 0; border-top:1px solid #ffffff30; border-bottom:1px solid #ffffff30; }
.about-mix-heading { display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:space-between; margin-bottom:16px; }
.about-mix-heading>span:first-child { font-size:1.05rem; font-weight:600; color:#fff; }
.about-mix-heading>span:last-child { font-size:.875rem; color:#c4c9e3; }
.about-mix iframe { display:block; width:100%; height:60px; border:0; }
.cinema-section { background:#fff; }
.cinema-layout { display:grid; grid-template-columns:1.25fr 1fr; gap:55px; align-items:center; }
.film-poster { display:block; width:100%; position:relative; aspect-ratio:16/9; overflow:hidden; border:0; border-radius:18px; background:#141820; color:#fff; padding:0; cursor:pointer; }
.film-poster>img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.film-poster:after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 35%,#0009); }
.film-poster:hover>img { transform:scale(1.035); }
.film-play { position:absolute; z-index:1; left:50%; top:50%; transform:translate(-50%,-50%); width:68px; height:68px; display:grid; place-items:center; border:1px solid #ffffffa0; border-radius:50%; background:#ffffffec; color:#101420; padding-left:4px; font-size:1.5rem; }
.film-poster-label { position:absolute; z-index:1; bottom:22px; left:24px; font-size:.875rem; font-weight:600; }
.cinema-credit { display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:space-between; padding-top:18px; font-size:.875rem; }
.cinema-credit>span:last-child { color:var(--muted); }
.cinema-copy h2 { font-size:clamp(2.5rem,4.5vw,3.8rem); line-height:1.06; letter-spacing:-.04em; }
.cinema-copy h2>span { color:var(--blue); }
.cinema-copy>p:not(.eyebrow) { margin:24px 0; color:var(--muted); line-height:1.8; }
.cinema-secondary { display:flex; align-items:center; gap:16px; width:100%; text-align:left; color:var(--ink); margin-top:30px; padding:22px 0 0; background:none; border:0; border-top:1px solid var(--line); cursor:pointer; }
.cinema-secondary>img { width:100px; height:76px; object-fit:cover; border-radius:8px; }
.cinema-secondary>span:nth-child(2) { display:grid; gap:6px; flex:1; }
.cinema-secondary small,.cinema-secondary>span>span { font-size:.8125rem; color:var(--muted); }
.cinema-secondary strong { font-size:1rem; }
.secondary-play { font-size:1.2rem; }
.film-dialog { width:min(1050px,calc(100% - 28px)); max-height:90vh; max-height:90dvh; padding:20px; border:1px solid #ffffff30; border-radius:20px; background:#10131a; color:#fff; margin:auto; }
.film-dialog::backdrop { background:#05070cdd; backdrop-filter:blur(8px); }
.film-dialog-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:18px; }
.film-dialog-bar h2 { font-size:1.125rem; }
.film-close { background:none; color:#fff; border:1px solid #ffffff50; border-radius:7px; padding:12px 16px; font-size:.875rem; cursor:pointer; }
.film-player-mount { aspect-ratio:16/9; background:#000; }
.film-player-mount iframe { width:100%; height:100%; display:block; border:0; }
.film-gallery { padding-bottom:65px; }
.gallery-feature-film { max-width:1020px; }
.gallery-film-caption { display:flex; justify-content:space-between; gap:25px; padding:24px 0 35px; }
.gallery-film-caption h2 { font-size:1.8rem; line-height:1.15; }
.gallery-film-caption>p { font-size:.9375rem; line-height:1.7; color:var(--muted); }
.gallery-film-caption>p>span { display:block; margin-top:8px; }
.gallery-film-pair { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:25px; }
.gallery-film-pair>article:last-child { padding-top:65px; }
.gallery-film-pair .gallery-film-caption { display:block; }
.gallery-film-pair .gallery-film-caption>p { margin-top:15px; }
@media(max-width:900px) { .cinema-layout { grid-template-columns:1fr; gap:32px; } }
@media(max-width:620px) { .gallery-film-pair { grid-template-columns:1fr; } .gallery-film-pair>article:last-child { padding-top:0; } .gallery-film-caption { display:block; } .gallery-film-caption>p { margin-top:15px; } .film-dialog { padding:12px; } .film-play { width:56px; height:56px; } }
.nav-shell { grid-template-columns:auto 1fr auto; gap:24px; }
.desktop-nav { justify-content:center; gap:22px; }
.services-menu { position:relative; }
.services-menu summary { cursor:pointer; font-size:.875rem; font-weight:720; list-style:none; padding:15px 0; }
.services-menu summary::-webkit-details-marker { display:none; }
.services-menu summary::after { content:"⌄"; margin-left:6px; }
.services-menu>div { position:absolute; top:100%; left:-20px; min-width:220px; padding:12px; border:1px solid #ddd; border-radius:14px; background:#fff; color:var(--ink); box-shadow:0 15px 35px #0002; }
.services-menu>div>a { display:block; padding:12px; border-radius:7px; }
.services-menu>div>a:hover { background:var(--blue-soft); }
.desktop-nav .services-menu a::after { display:none; }
.extra-services { background:var(--paper); }
.extra-services h2,.booth-style-section h2 { font-size:clamp(2.4rem,4.5vw,3.6rem); line-height:1.05; }
.extra-services h2 span,.booth-style-section h2 span { color:var(--blue); }
.extra-services-pair { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:42px; }
.extra-service-card { display:block; position:relative; overflow:hidden; min-height:460px; border-radius:26px; color:#fff; background:#151923; }
.extra-service-card>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.extra-service-card:after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 10%,#0a0c10b0 65%,#0a0c10ef); }
.extra-service-card>div { position:absolute; z-index:1; bottom:32px; left:32px; right:32px; }
.extra-service-card h3 { font-size:2.3rem; line-height:1.08; margin:14px 0 24px; }
.extra-service-card>div>span:last-child { font-size:.9375rem; }
.service-editorial-intro { padding-top:calc(var(--header) + 70px); padding-bottom:45px; }
.service-editorial-intro h1 { font-size:clamp(3.5rem,7vw,6rem); line-height:1.02; letter-spacing:-.05em; }
.service-editorial-intro h1 span { color:var(--blue); }
.service-intro-bottom { display:flex; align-items:center; justify-content:space-between; gap:35px; margin-top:28px; }
.service-intro-bottom>p { font-size:1.2rem; line-height:1.7; max-width:650px; }
.service-intro-bottom .button { flex-shrink:0; }
.service-wide-image { margin:0 auto; }
.service-wide-image img { display:block; width:100%; height:auto; border-radius:28px; }
.cocktail-wide img { max-height:600px; object-fit:cover; }
.service-editorial-details { display:grid; grid-template-columns:1fr 1.2fr; gap:70px; padding:85px 0 50px; }
.service-editorial-details h2,.service-closing h2,.cocktail-choice h2 { font-size:clamp(2.5rem,4.5vw,3.75rem); line-height:1.06; letter-spacing:-.035em; }
.service-editorial-details article { padding:0 0 28px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.service-editorial-details h3 { font-size:1.4rem; }
.service-editorial-details article p { margin-top:16px; color:var(--muted); line-height:1.8; }
.service-closing { padding:55px 0 85px; border-top:1px solid var(--line); }
.service-closing>p { max-width:700px; line-height:1.8; margin:24px 0; }
.service-closing>div { display:flex; flex-wrap:wrap; gap:16px; }
.service-option-pair { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:38px; }
.service-option-pair article { background:#fff; border:1px solid var(--line); border-radius:24px; padding:34px; }
.service-option-pair article>span { font-size:.875rem; color:var(--blue); }
.service-option-pair h3 { font-size:1.8rem; line-height:1.12; margin-top:24px; }
.service-option-pair p { line-height:1.8; margin:20px 0 25px; color:var(--muted); }
.cocktail-choice { padding-bottom:75px; }
.booth-style-section { background:var(--blue-soft); }
.inline-service-link { text-decoration:underline; color:var(--blue); text-underline-offset:3px; }
.event-video-frame { position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:18px; background:#0a0c10; }
.event-video-frame iframe { display:block; width:100%; height:100%; border:0; }
.wedding-videos { background:#151923; color:#fff; }
.wedding-videos h2,.mirror-video-section h2 { font-size:clamp(2.4rem,4.5vw,3.6rem); line-height:1.08; letter-spacing:-.035em; }
.wedding-videos h2 span { color:var(--lavender); }
.wedding-videos .section-copy { color:#c9cddd; }
.wedding-video-pair { display:grid; grid-template-columns:1.1fr 1fr; gap:28px; margin-top:40px; align-items:start; }
.event-video-caption { padding-top:20px; }
.event-video-caption h3 { font-size:1.35rem; }
.event-video-caption p { color:#c9cddd; margin-top:8px; font-size:.9375rem; }
.mirror-video-section { background:#fff; }
.mirror-video-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:44px; align-items:center; }
.mirror-video-section h2 span { color:var(--blue); }
.mirror-video-layout>div>p:not(.eyebrow) { margin:24px 0; line-height:1.8; color:var(--muted); }
.mirror-watch-link { display:block; width:fit-content; margin-top:20px; font-size:.9375rem; text-decoration:underline; text-underline-offset:4px; }
.couple-video { display:grid; grid-template-columns:.8fr 1.2fr; gap:44px; align-items:center; padding-bottom:55px; }
.couple-video h2 { font-size:clamp(2rem,3.8vw,3rem); line-height:1.12; letter-spacing:-.03em; }
.couple-video>div>p:last-child { margin-top:20px; line-height:1.8; color:var(--muted); }
@media(max-width:900px) { .wedding-video-pair,.mirror-video-layout,.couple-video { grid-template-columns:1fr; gap:32px; } }
@media(max-width:900px) { .service-intro-bottom { flex-direction:column; align-items:flex-start; } .service-editorial-details { grid-template-columns:1fr; gap:35px; } }
@media(max-width:620px) { .extra-services-pair,.service-option-pair { grid-template-columns:1fr; } .extra-service-card { min-height:400px; } .extra-service-card>div { left:25px; right:25px; } .service-editorial-intro { padding-top:calc(var(--header) + 40px); } .service-option-pair article { padding:28px; } }
.desktop-nav a { font-size:.875rem; letter-spacing:0; text-transform:none; opacity:.85; }
.brand-copy strong { font-size:.875rem; letter-spacing:.08em; }
.brand-copy span { font-size:.75rem; }
.brand-symbol { font-size:.875rem; flex-shrink:0; }
.button { font-size:.875rem; letter-spacing:.015em; text-transform:none; min-height:52px; }
.hero { min-height:0; padding:calc(var(--header) + 48px) 0 64px; }
.hero-layout { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); min-height:600px; gap:46px; }
.hero h1 { font-size:clamp(3.4rem,6.5vw,5.5rem); line-height:.98; letter-spacing:-.055em; }
.hero-copy { padding:20px 0; }
.hero-kicker { font-size:.75rem; letter-spacing:.05em; line-height:1.6; }
.hero-lead { font-size:1.1875rem; line-height:1.65; margin-top:27px; }
.hero-meta { font-size:.8125rem; letter-spacing:.025em; margin-top:32px; }
.hero-visual { min-height:590px; }
.visual-shell { aspect-ratio:.9; border-radius:32px; }
.visual-topline { font-size:.75rem; letter-spacing:.05em; }
.product-tag { font-size:.75rem; letter-spacing:.015em; }
.eyebrow { font-size:.75rem; letter-spacing:.1em; }
.section { padding:90px 0; }
.section-copy { font-size:1.125rem; line-height:1.65; }
.statement h2,.experience h2,.packages-head h2,.gallery-head h2,.room-copy h2,.contact-copy h2,.section-title { font-size:clamp(2.8rem,5vw,4.6rem); line-height:1.03; letter-spacing:-.05em; }
.statement-head { grid-template-columns:1.25fr .75fr; gap:55px; }
.signal-inner { min-height:104px; }
.signal-title,.signal-item { font-size:.8125rem; letter-spacing:.025em; }
.signal-item strong { font-size:1.5rem; color:var(--blue); letter-spacing:-.05em; }
.dj-visual:before { display:none; }
.dj-visual:after { z-index:1; background:linear-gradient(180deg,#080b1438,transparent 25%,transparent 45%,#080b14dd); }
.dj-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center bottom; transform:scale(1.27); transform-origin:center bottom; }
.dj-visual-caption { position:absolute; z-index:5; inset:auto 28px 30px; color:#fff; }
.dj-visual-caption span { display:block; font-size:.8125rem; color:#ffffffb8; margin-bottom:9px; }
.dj-visual-caption strong { display:block; font-size:1.55rem; font-weight:600; letter-spacing:-.025em; line-height:1.2; }
.dj-experience-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:20px; margin-top:55px; }
.dj-experience-photo { position:relative; grid-row:span 2; min-height:600px; overflow:hidden; border-radius:28px; background:var(--ink); }
.dj-experience-photo>img { position:absolute; width:100%; height:100%; object-fit:cover; }
.dj-experience-photo>img { object-position:70% center; }
.dj-experience-photo:after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 10%,#0a0c1020 30%,#0a0c10ea); }
.dj-experience-photo>div { position:absolute; z-index:1; inset:auto 32px 34px; color:white; }
.mini-label { display:block; font-size:.75rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; margin-bottom:20px; }
.dj-experience-photo .mini-label { color:#ffffffb3; }
.dj-experience-photo h3,.dj-feature h3 { font-size:2rem; line-height:1.08; }
.dj-experience-photo p { margin-top:18px; color:#ffffffbf; line-height:1.7; }
.dj-feature { padding:32px; border-radius:28px; }
.dj-feature p { margin-top:18px; line-height:1.7; max-width:440px; }
.dj-feature-blue { background:var(--blue-soft); }
.dj-feature-blue .mini-label { color:var(--blue-dark); }
.dj-feature-blue p { color:#555c77; }
.dj-feature-dark { background:#151923; color:white; }
.dj-feature-dark .mini-label { color:var(--lavender); }
.dj-feature-dark p { color:#ffffffb3; }
.feature-footnote { display:block; margin-top:26px; padding-top:20px; border-top:1px solid #858bb045; font-size:.8125rem; }
.dj-about { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:65px; position:relative; z-index:2; }
.dj-about-photo { position:relative; border-radius:30px; overflow:hidden; min-height:560px; background:#191f2f; }
.dj-about-photo>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.dj-about-photo:after { content:""; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,#080b14bb); }
.dj-about-photo>span { position:absolute; z-index:1; bottom:28px; left:28px; right:28px; font-size:.875rem; }
.dj-about .accent { color:var(--lavender); }
.dj-about .section-copy { margin-top:26px; color:#e0e3f7; }
.dj-about p:not(.eyebrow):not(.section-copy) { margin-top:20px; color:#ffffffa6; line-height:1.8; }
.dj-credentials { padding:0; margin:28px 0; list-style:none; }
.dj-credentials li { padding:11px 0; border-top:1px solid #ffffff24; font-size:.9375rem; color:#ffffffc9; }
.dj-listen { background:#151923; color:#fff; padding:36px 0 44px; }
.dj-listen-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; }
.dj-listen-heading h2 { font-size:clamp(1.5rem,3vw,2rem); line-height:1.2; letter-spacing:-.025em; }
.dj-listen-heading a { color:#d5d9ff; font-size:.875rem; text-decoration:underline; text-underline-offset:4px; }
.dj-listen iframe { display:block; width:100%; height:60px; border:0; }
.lighting-teaser { background:#151923; color:#fff; }
.lighting-teaser-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:center; }
.lighting-teaser h2 { font-size:clamp(2.5rem,5vw,4rem); line-height:1.05; }
.lighting-teaser p:not(.eyebrow) { margin:24px 0; color:#c9cddd; line-height:1.8; }
.lighting-teaser-photo { display:block; border-radius:26px; overflow:hidden; }
.lighting-teaser-photo img { width:100%; height:auto; display:block; }
.lighting-intro,.pricing-intro { padding-top:calc(var(--header) + 80px); padding-bottom:70px; }
.lighting-intro h1,.pricing-intro h1 { font-size:clamp(3rem,6vw,5.2rem); line-height:1.03; letter-spacing:-.05em; max-width:1000px; }
.lighting-intro h1 span,.pricing-intro h1 span { color:var(--blue); }
.lighting-intro>p:not(.eyebrow) { max-width:600px; font-size:1.2rem; margin:28px 0; }
.lighting-story { padding-bottom:90px; }
.lighting-story-heading { max-width:670px; margin-bottom:35px; }
.lighting-story h2,.lighting-end h2,.pricing-details h2,.pricing-enhancements h2 { font-size:clamp(2rem,4vw,3.3rem); line-height:1.1; letter-spacing:-.035em; }
.lighting-story-heading>p:last-child { margin-top:20px; color:var(--muted); line-height:1.8; }
.lighting-composition { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:32px 24px; align-items:start; }
.lighting-shot { margin:0; grid-column:span 6; min-width:0; }
.lighting-shot a { display:block; overflow:hidden; border-radius:18px; background:#151923; }
.lighting-shot img { display:block; width:100%; height:auto; transition:transform .3s; }
.lighting-shot a:hover img { transform:scale(1.025); }
.lighting-shot figcaption { font-size:.875rem; color:var(--muted); margin-top:12px; line-height:1.5; }
.lighting-shot.shot-0 { grid-column:1/11; }
.lighting-shot.shot-1 { grid-column:1/6; margin-top:40px; }
.lighting-shot.shot-2 { grid-column:7/13; }
.lighting-shot.shot-3 { grid-column:3/11; }
.lighting-shot.shot-4 { grid-column:1/8; }
.lighting-shot.shot-5 { grid-column:8/13; margin-top:65px; }
.lighting-shot.shot-6 { grid-column:1/6; margin-top:40px; }
.lighting-shot.shot-7 { grid-column:6/13; }
.lighting-end { padding:55px 0 80px; border-top:1px solid var(--line); }
.lighting-end p { max-width:650px; line-height:1.8; margin:22px 0; }
.pricing-intro { display:grid; grid-template-columns:1.2fr 1fr; gap:55px; align-items:center; }
.pricing-intro>div>p:not(.eyebrow) { margin-top:25px; font-size:1.125rem; line-height:1.8; }
.pricing-card { background:#151923; color:#fff; padding:42px; border-radius:28px; }
.price-prefix { display:block; font-size:1.125rem; margin-top:35px; color:#c9cddd; }
.price-amount { display:block; font-size:clamp(3.5rem,6vw,5.5rem); line-height:1.2; letter-spacing:-.05em; }
.pricing-card .button { margin-top:28px; }
.pricing-details { display:grid; grid-template-columns:1fr 1.2fr; gap:60px; padding:65px 0; border-top:1px solid var(--line); }
.pricing-details article { padding:0 0 28px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.pricing-details h3 { font-size:1.4rem; }
.pricing-details p,.pricing-enhancements>p:not(.eyebrow) { color:var(--muted); margin-top:16px; line-height:1.8; }
.pricing-enhancements { padding-bottom:90px; }
.pricing-enhancements>p { max-width:680px; }
.pricing-enhancements>div { display:flex; gap:16px; flex-wrap:wrap; margin-top:28px; }
@media(max-width:900px) { .lighting-teaser-layout,.pricing-intro,.pricing-details { grid-template-columns:1fr; gap:32px; } }
@media(max-width:620px) { .lighting-composition { display:block; } .lighting-shot { margin:0 0 30px!important; } .lighting-intro,.pricing-intro { padding-top:calc(var(--header) + 45px); } .pricing-card { padding:28px; } }
.dj-booth-section { background:#fff; }
.dj-booth-card { display:grid; grid-template-columns:.55fr 1.45fr; background:var(--paper); border:1px solid var(--line); border-radius:28px; overflow:hidden; min-height:340px; }
.dj-booth-card>img { width:100%; height:100%; max-height:370px; object-fit:cover; object-position:50% 39%; }
.dj-booth-card>div { padding:40px 46px; align-self:center; }
.dj-booth-card h2 { font-size:clamp(2rem,3.5vw,3rem); line-height:1.04; }
.dj-booth-card h2 span { color:var(--blue); }
.dj-booth-card p:not(.eyebrow) { margin:20px 0 25px; color:var(--muted); max-width:560px; }
.dj-reviews { background:var(--blue-soft); }
.dj-reviews h2 { font-size:clamp(2.8rem,5vw,4.6rem); line-height:1.03; }
.dj-reviews h2 span { color:var(--blue); }
.dj-review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:50px 0 35px; }
.dj-review-grid article { padding:30px; border-radius:24px; background:#fff; display:flex; flex-direction:column; }
.review-stars { display:inline-block; color:#fbaf00; font-size:1.25rem; letter-spacing:.06em; line-height:1.25; }
.reviews-preview { background:#fff; }
.reviews-preview-top { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.reviews-preview h2 { font-size:clamp(2rem,4vw,3.25rem); line-height:1.12; letter-spacing:-.035em; }
.reviews-score { display:flex; gap:18px; align-items:center; flex-shrink:0; }
.reviews-score>strong { font-size:3.6rem; letter-spacing:-.05em; line-height:1; }
.reviews-score p { font-size:.875rem; margin-top:8px; color:#555; }
.reviews-excerpts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin:35px 0; }
.reviews-excerpts article { border-top:1px solid #ddd; padding-top:24px; }
.reviews-excerpts blockquote { margin:18px 0; font-size:1.2rem; line-height:1.6; font-weight:500; }
.reviews-excerpts article>p { color:#555; font-size:.875rem; }
.reviews-page-intro { padding-top:calc(var(--header) + 70px); padding-bottom:55px; }
.reviews-page-intro h1 { font-size:clamp(3rem,6vw,5rem); line-height:1.04; letter-spacing:-.05em; }
.reviews-page-intro h1 span { color:var(--blue); }
.reviews-page-intro>p:last-child { max-width:650px; margin-top:26px; font-size:1.125rem; line-height:1.8; color:var(--muted); }
.reviews-page-layout { display:grid; grid-template-columns:310px minmax(0,1fr); gap:60px; padding-bottom:90px; align-items:start; }
.review-summary { position:sticky; top:calc(var(--header) + 28px); padding:28px; border:1px solid #ddd; background:#fff; border-radius:18px; }
.review-summary .reviews-score { display:block; }
.review-summary .reviews-score>div { margin-top:15px; }
.rating-distribution { margin:30px 0; }
.rating-distribution>div { display:flex; align-items:center; gap:12px; margin:14px 0; font-size:.875rem; }
.rating-distribution>div>span:first-child { width:40px; flex-shrink:0; }
.rating-distribution>div>span:last-child { width:36px; text-align:right; }
.rating-track { flex:1; background:#e8e8e8; height:8px; overflow:hidden; border-radius:5px; }
.rating-track>span { display:block; height:100%; background:#fbaf00; }
.review-source-note { font-size:.875rem; line-height:1.7; color:#666; margin-bottom:24px; }
.review-list-heading { display:flex; gap:15px; flex-wrap:wrap; justify-content:space-between; align-items:center; padding-bottom:24px; border-bottom:1px solid #ddd; }
.review-list-heading h2 { font-size:1.5rem; }
.review-list-heading>span { font-size:.875rem; color:#666; }
.review-entry { padding:26px 0; border-bottom:1px solid #ddd; }
.review-entry-top { display:flex; gap:16px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-bottom:16px; }
.review-author { display:flex; align-items:center; gap:12px; }
.review-avatar { width:40px; height:40px; display:grid; place-items:center; background:#ededf1; border-radius:50%; font-size:.875rem; }
.review-author h3 { font-size:1rem; font-weight:600; }
.review-entry time { font-size:.875rem; color:#666; }
.review-entry>p { font-size:1.0625rem; line-height:1.7; margin-top:12px; }
.review-full-text { margin:16px 0 0; font-size:1.0625rem; line-height:1.8; font-weight:400; letter-spacing:normal; overflow-wrap:anywhere; }
.review-full-text p { margin:0; white-space:pre-wrap; }
.social-connect { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; padding:25px 0; border-top:1px solid #ffffff25; }
.social-connect>span { color:#c9cddd; font-size:1rem; }
.social-connect>div { display:flex; gap:12px; flex-wrap:wrap; }
.social-connect a { border:1px solid #ffffff50; border-radius:8px; padding:12px 20px; font-size:.9375rem; color:#fff; }
.social-connect a:hover { background:#ffffff15; }
@media(max-width:900px) { .reviews-preview-top { align-items:flex-start; flex-direction:column; } .reviews-page-layout { grid-template-columns:1fr; gap:35px; } .review-summary { position:static; } }
@media(max-width:620px) { .reviews-excerpts { grid-template-columns:1fr; gap:22px; } .reviews-page-intro { padding-top:calc(var(--header) + 40px); } }
.dj-review-grid blockquote { margin:25px 0 30px; font-size:1.4rem; font-weight:600; letter-spacing:-.025em; line-height:1.45; }
.dj-review-grid cite { margin-top:auto; font-size:.8125rem; font-style:normal; color:var(--muted); }
.service-area-layout { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:48px; }
.service-area-copy h2 { font-size:clamp(3.3rem,5.5vw,5.5rem); line-height:.97; }
.service-area-lead { font-size:1.0625rem; }
.service-fact strong,.service-fact small { font-size:.875rem; }
.service-city-list span { font-size:.75rem; letter-spacing:0; text-transform:none; }
.service-map-card figcaption { font-size:.75rem; color:#ffffffad; }
.contact-panel { gap:42px; padding:42px; grid-template-columns:.9fr 1.1fr; }
.contact-copy h2 { font-size:clamp(2.8rem,4.6vw,4.3rem); }
.contact-form { padding:28px; }
.field span { font-size:.875rem; letter-spacing:0; text-transform:none; }
.field input,.field select,.field textarea { min-width:0; font-size:1rem; }
.form-grid { min-width:0; }
.field { min-width:0; }
.form-bottom { flex-wrap:wrap; }
.form-status,.form-note { font-size:.8125rem; line-height:1.6; }
.form-note a { color:var(--blue-dark); text-decoration:underline; overflow-wrap:anywhere; }
.contact-points span { font-size:.75rem; letter-spacing:0; text-transform:none; }
.direct-contact { grid-column:1/-1; position:relative; z-index:2; font-size:.9375rem; color:#fff; }
.direct-contact a { text-decoration:underline; text-underline-offset:4px; }
.footer-brand p { font-size:.9375rem; color:#ffffffa3; }
.footer-col h3,.footer-bottom { font-size:.75rem; }
.footer-col a { font-size:.875rem; }
.footer-bottom { color:#ffffff99; }
.footer-grid { gap:35px; }
.bento-card .mini-label,.step-number,.package-label,.popular-label { font-size:.75rem; letter-spacing:.035em; }
.step p { font-size:1rem; }
.gallery-track { width:var(--shell); margin-inline:auto; padding-inline:0; }
.gallery-card { flex-basis:65%; height:470px; }
.gallery-card.small { flex-basis:40%; }
.gallery-caption span { font-size:.75rem; }
.proof-score span,.proof-quote footer span { font-size:.8125rem; }
.faq-question { font-size:1.125rem; line-height:1.4; }
.faq-answer p { font-size:1rem; }
.lightbox-image { background-size:contain; background-repeat:no-repeat; }
.photo-booth-page .desktop-nav { gap:20px; }
.photo-booth-page .nav-shell { gap:18px; }
:focus-visible { outline:3px solid #94a0ff; outline-offset:5px; }
.js .reveal { opacity:0; }
.js .reveal.visible { opacity:1; }
html:not(.js) .reveal { opacity:1; transform:none; }
html:not(.js) .faq-item .faq-answer { grid-template-rows:1fr; }
@media(max-width:1180px) {
  .nav-shell { grid-template-columns:1fr auto; }
  .hero-layout { gap:30px; }
  .hero-visual { min-height:540px; }
  .contact-panel { padding:32px; gap:25px; }
  .dj-about { gap:35px; }
}
@media(max-width:900px) {
  :root { --shell:calc(100% - 44px); }
  .hero-layout { grid-template-columns:1fr; min-height:auto; }
  .hero { padding-top:calc(var(--header) + 40px); }
  .hero-copy { max-width:700px; }
  .hero h1 { font-size:clamp(3.8rem,9vw,5.4rem); }
  .hero-visual { min-height:0; width:100%; margin-top:15px; }
  .visual-shell { width:100%; aspect-ratio:1.25; }
  .photo-booth-page .visual-shell { max-width:620px; aspect-ratio:.85; }
  .section { padding:72px 0; }
  .statement-head,.dj-about,.service-area-layout,.contact-panel { grid-template-columns:1fr; }
  .signal-inner { grid-template-columns:repeat(3,1fr); }
  .signal-title { grid-column:1/-1; }
  .signal-item { text-align:center; padding:20px 10px; }
  .dj-experience-grid { grid-template-columns:1fr 1fr; }
  .dj-experience-photo { grid-column:1/-1; min-height:480px; grid-row:auto; }
  .dj-about-photo { min-height:440px; }
  .dj-review-grid { grid-template-columns:1fr; }
  .dj-review-grid article { padding:28px; }
  .dj-booth-card { grid-template-columns:.7fr 1.3fr; }
  .dj-booth-card>div { padding:30px; }
  .service-area-copy { max-width:720px; }
  .service-area-copy h2 { max-width:12ch; }
  .service-map-card { max-width:760px; }
  .contact-copy { max-width:700px; }
  .contact-panel { gap:30px; }
}
@media(max-width:620px) {
  :root { --shell:calc(100% - 36px); }
  .hero h1 { font-size:clamp(2.8rem,12vw,4.5rem); line-height:1; }
  .hero-kicker { font-size:.75rem; text-transform:none; letter-spacing:0; }
  .hero-lead { font-size:1.0625rem; }
  .hero-meta { font-size:.75rem; gap:18px; }
  .hero-visual { min-height:0; margin-top:6px; }
  .visual-shell { aspect-ratio:.94; border-radius:26px; }
  .visual-topline { left:20px; right:20px; font-size:.75rem; }
  .dj-visual-caption { left:20px; right:20px; bottom:25px; }
  .dj-visual-caption strong { font-size:1.4rem; }
  .brand-copy strong { font-size:.875rem; }
  .product-tag { font-size:.75rem; max-width:75%; }
  .signal-inner { grid-template-columns:1fr; }
  .signal-title { padding:22px 0; }
  .signal-item { min-height:65px; font-size:.875rem; }
  .section { padding:62px 0; }
  .statement h2,.experience h2,.packages-head h2,.gallery-head h2,.room-copy h2,.contact-copy h2,.dj-reviews h2 { font-size:clamp(2.5rem,10vw,3.8rem); }
  .dj-experience-grid { grid-template-columns:1fr; margin-top:35px; }
  .dj-experience-photo { min-height:530px; }
  .dj-experience-photo>div { inset:auto 25px 27px; }
  .dj-feature { padding:27px; }
  .dj-about-photo { min-height:400px; }
  .dj-booth-card { grid-template-columns:1fr; }
  .dj-booth-card>img { height:290px; object-position:50% 35%; }
  .dj-booth-card>div { padding:28px; }
  .service-area-copy h2 { font-size:3.2rem; }
  .service-city-list span { font-size:.75rem; }
  .service-area-section { padding:62px 0; }
  .service-map-card figcaption { font-size:.75rem; }
  .contact { padding:55px 0; }
  .contact-panel { padding:20px; border-radius:26px; }
  .contact-copy { padding:5px; }
  .contact-form { padding:22px; }
  .form-grid { grid-template-columns:1fr; }
  .gallery-card,.gallery-card.small { flex-basis:90%; height:420px; }
  .mobile-panel nav a { font-size:2.3rem; }
  .mobile-panel { overflow-y:auto; align-content:start; }
  .footer-grid { gap:30px; }
  .site-footer { padding-bottom:95px; }
}
@media(prefers-reduced-motion:reduce) { .js .reveal { opacity:1; transform:none; } }

/* Illuminated-letter editorial gallery */
.letter-gallery { padding-top:85px; }
.letter-gallery-heading { max-width:680px; margin-bottom:38px; }
.letter-gallery-heading h2 { font-size:clamp(2.5rem,4.5vw,3.75rem); line-height:1.06; letter-spacing:-.035em; }
.letter-gallery-heading>p:last-child { color:var(--muted); line-height:1.8; margin-top:22px; }
.letter-scene { margin:0; }
.letter-scene img { display:block; width:100%; height:auto; border-radius:26px; }
.letter-scene figcaption { padding:24px 0 0; max-width:550px; }
.letter-scene figcaption>span { font-size:.875rem; color:var(--blue); }
.letter-scene h3 { font-size:2rem; margin:9px 0; letter-spacing:-.025em; }
.letter-scene figcaption p { color:var(--muted); line-height:1.7; }
.letter-scene-feature { width:90%; }
.letter-scene-pair { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:60px; align-items:start; }
.letter-scene-offset { margin-top:95px; }
@media(max-width:700px) { .letter-gallery { padding-top:55px; } .letter-scene-feature { width:100%; } .letter-scene-pair { grid-template-columns:1fr; gap:40px; margin-top:40px; } .letter-scene-offset { margin-top:0; } }

/* Personal introduction and full biography */
.bill-home-portrait { min-height:0; align-self:center; }
.bill-home-portrait>img { position:relative; display:block; height:auto; width:100%; }
.bill-home-portrait:after { display:none; }
.bill-intro { padding-top:calc(var(--header) + 65px); padding-bottom:75px; display:grid; grid-template-columns:1.1fr 1fr; gap:65px; align-items:center; }
.bill-intro h1 { font-size:clamp(3rem,5vw,5rem); line-height:1.04; letter-spacing:-.045em; }
.bill-intro h1 span { color:var(--blue); }
.bill-lead { font-size:1.4rem; line-height:1.5; margin:28px 0; }
.bill-intro-copy>p:not(.eyebrow):not(.bill-lead) { color:var(--muted); line-height:1.85; margin-bottom:28px; }
.bill-main-portrait { margin:0; }
.bill-main-portrait img { display:block; width:100%; height:auto; border-radius:28px; }
.bill-story { padding-top:75px; padding-bottom:75px; display:grid; grid-template-columns:1fr 1.25fr; gap:70px; }
.bill-story h2,.bill-atmosphere h2 { font-size:clamp(2.4rem,4vw,3.5rem); line-height:1.1; letter-spacing:-.035em; }
.bill-prose p { color:var(--muted); line-height:1.85; margin-bottom:25px; }
.bill-atmosphere { background:#0b1020; color:#fff; padding:70px 0; }
.bill-atmosphere-layout { display:grid; grid-template-columns:1fr 1.1fr; gap:65px; align-items:center; }
.bill-atmosphere figure { margin:0; }
.bill-atmosphere img { display:block; width:100%; max-height:660px; object-fit:cover; border-radius:28px; }
.bill-atmosphere p:not(.eyebrow) { color:#c7cddd; line-height:1.85; margin:25px 0; }
@media(max-width:800px) { .bill-intro { grid-template-columns:1fr; gap:35px; padding-top:calc(var(--header) + 40px); padding-bottom:35px; } .bill-main-portrait { max-width:470px; } .bill-story,.bill-atmosphere-layout { grid-template-columns:1fr; gap:30px; } .bill-story { padding-top:50px; padding-bottom:50px; } .bill-atmosphere { padding:50px 0; } .bill-atmosphere img { max-height:620px; } }

.form-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.contact-form button:disabled { opacity:.65; cursor:wait; }

.reception-section { padding-bottom:80px; }
.reception-heading { margin-bottom:30px; }
.reception-heading h2,.reception-film-heading h2 { font-size:clamp(2rem,3.8vw,3.2rem); line-height:1.12; letter-spacing:-.03em; }
.reception-film-heading { margin-bottom:35px; }
.reception-mosaic { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:22px; }
.reception-photo { position:relative; grid-column:span 4; height:340px; border:0; border-radius:22px; overflow:hidden; padding:0; background:#10131c; cursor:zoom-in; }
.reception-photo:nth-child(1),.reception-photo:nth-child(4) { grid-column:span 8; }
.reception-photo:nth-child(5),.reception-photo:nth-child(6) { grid-column:span 6; }
.reception-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.reception-photo:hover img { transform:scale(1.035); }
.reception-photo>span { position:absolute; right:16px; bottom:16px; padding:8px 12px; border-radius:30px; color:#fff; background:#111a; font-size:.875rem; }
.reception-photo:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
.reception-dialog { border:0; border-radius:18px; padding:18px; background:#0b1020; color:#fff; width:min(1150px,94vw); max-height:94dvh; }
.reception-dialog::backdrop { background:#000d; }
.reception-dialog-bar,.reception-controls { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.reception-dialog button { color:#fff; border:1px solid #ffffff55; background:transparent; border-radius:8px; padding:10px 16px; font:inherit; cursor:pointer; }
.reception-dialog button:focus-visible { outline:2px solid #74aaff; outline-offset:3px; }
.reception-large { display:block; width:100%; height:72dvh; object-fit:contain; margin:12px 0; }
@media(max-width:800px) { .reception-photo { height:260px; } }
@media(max-width:580px) { .reception-mosaic { grid-template-columns:1fr; gap:18px; } .reception-photo,.reception-photo:nth-child(n) { grid-column:auto; height:auto; } .reception-photo img { height:auto; } .reception-large { height:65dvh; } }
@media(prefers-reduced-motion:reduce) { .reception-photo img { transition:none; } }

.bill-atmosphere-wide { grid-template-columns:1fr; gap:40px; }
.bill-atmosphere-wide img { height:auto; max-height:none; }
.bill-atmosphere-wide>div { max-width:850px; }

.gig-log { display:grid; grid-template-columns:1fr minmax(250px,360px); gap:70px; align-items:center; padding-top:35px; padding-bottom:80px; }
.gig-log h2 { font-size:clamp(2.4rem,4vw,3.8rem); line-height:1.08; letter-spacing:-.035em; margin:0 0 25px; }
.gig-log-copy p:not(.eyebrow) { max-width:550px; color:var(--muted); font-size:1.1rem; line-height:1.8; }
.gig-log-film { margin:0; }
.gig-log video { display:block; width:100%; height:auto; aspect-ratio:9/16; background:#090b12; border-radius:22px; box-shadow:0 20px 55px #0b102022; }
.gig-log figcaption { margin-top:14px; font-size:.9rem; color:var(--muted); text-align:center; }
@media(max-width:700px) { .gig-log { grid-template-columns:1fr; gap:28px; padding-bottom:55px; } .gig-log-film { width:min(100%,360px); justify-self:center; } }

/* Clear contact details and persistent submission feedback. */
.form-note,.direct-contact { font-size:1rem; line-height:1.7; }
.form-note a[href^="tel:"],.direct-contact a[href^="tel:"] { display:inline-block; font-size:clamp(1.375rem,2.5vw,1.75rem); font-weight:800; white-space:nowrap; text-underline-offset:5px; padding:4px 0; }
.form-bottom .form-status:not(:empty) { flex:0 0 100%; width:100%; margin:8px 0 0; padding:18px 20px; border-radius:14px; font-size:1rem; line-height:1.6; background:#f2f5fa; }
.form-bottom .form-status[data-state="success"] { padding:24px; border:2px solid #28734d; background:#edf8f0; color:#164c31!important; box-shadow:0 8px 24px rgba(20,80,45,.10); }
.form-status[data-state="success"]::before { content:"✓  Inquiry submitted successfully"; display:block; margin-bottom:8px; font-size:clamp(1.25rem,2.5vw,1.5rem); line-height:1.3; font-weight:800; }
.form-status[data-state="error"]:not(:empty) { border:1px solid #b34242; background:#fff3f3; }
.form-status:focus-visible { outline:3px solid #28734d; outline-offset:4px; }
/* Exact supplied camera image, without the previous dark overlay. */
.photo-booth-page .visual-shell { aspect-ratio:auto; background:#fff; transform:none!important; border:1px solid #d9dee6; }
.photo-booth-page .visual-shell::before,.photo-booth-page .visual-shell::after { display:none; }
.photo-booth-page .camera-product { position:relative; inset:auto; width:100%; aspect-ratio:.95; animation:none; filter:none; }
.photo-booth-page .camera-product .hero-booth-render { display:block; width:100%; height:100%; object-fit:cover; object-position:center top; filter:none; transform:none; }
.booth-feature-labels { display:flex; flex-wrap:wrap; gap:12px 20px; justify-content:center; padding:20px 16px; background:#fff; }
.photo-booth-page .booth-feature-labels .product-tag { position:static; padding:0; border:0; border-radius:0; background:none; box-shadow:none; backdrop-filter:none; color:#172b3c; font-size:.9375rem; letter-spacing:0; text-transform:none; max-width:100%; }
.booth-feature-labels .product-tag::before { background:#2e9664; flex-shrink:0; }
.dj-booth-card>img { object-position:center top; filter:none; }

/* Full-length supplied booth photography with anchored feature callouts. */
.booth-annotated { position:relative; margin:0; width:100%; line-height:0; overflow:hidden; }
.booth-annotated>img { display:block; width:100%; height:auto; max-height:none; object-fit:contain; filter:none; }
.booth-feature-lines { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.booth-feature-lines path { fill:none; stroke:#207747; stroke-width:1.5px; vector-effect:non-scaling-stroke; }
.booth-feature-lines circle { fill:#2da466; stroke:#fff; stroke-width:.3; }
.booth-feature-note { position:absolute; z-index:2; display:flex; align-items:center; gap:7px; padding:9px 10px; border-radius:10px; background:rgba(255,255,255,.96); color:#172b3c; box-shadow:0 3px 12px #0002; font-size:.875rem; font-weight:700; line-height:1.25; width:39%; }
.booth-feature-note i { width:8px; height:8px; flex-shrink:0; border-radius:50%; background:#2da466; }
.vintage-note { left:2%; top:17%; }
.dslr-note { right:2%; top:47%; }
.photo-booth-page .visual-shell { aspect-ratio:auto; }
.photo-booth-page .hero-visual { min-height:0; }
.dj-booth-card.booth-pair-card { grid-template-columns:1fr 1.15fr 1fr; align-items:center; }
.booth-pair-card .booth-pair-copy { padding:30px; }
.booth-pair-card h2 { font-size:clamp(1.8rem,2.8vw,2.8rem); }
.mirror-booth-photo { margin:0; width:100%; background:#201a39; }
.mirror-booth-photo img { display:block; width:100%; height:auto; }
@media(max-width:900px) {
 .dj-booth-card.booth-pair-card { grid-template-columns:1fr 1fr; }
 .booth-pair-card .booth-pair-copy { grid-column:1/-1; grid-row:1; padding:32px; }
}
@media(max-width:620px) {
 .dj-booth-card.booth-pair-card { grid-template-columns:1fr; }
 .booth-pair-card .booth-pair-copy { padding:28px; }
 .booth-pair-card .booth-annotated,.booth-pair-card .mirror-booth-photo { grid-column:1; }
 .booth-annotated>img { width:100%; height:auto; max-height:none; }
 .booth-feature-note { font-size:.875rem; }
}

/* Reference-matched equipment details: clear photographs below the copy. */
#experience .bento-grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:auto; }
#experience .bento-card { grid-column:auto!important; grid-row:auto!important; min-height:0; }
#experience .equipment-card { display:flex; flex-direction:column; padding:0; background:#fff; background-image:none; color:var(--ink); border:1px solid var(--line); }
#experience .equipment-card::before { display:none; }
#experience .equipment-copy { padding:28px; flex:1; }
#experience .equipment-card h3 { max-width:none; font-size:clamp(1.6rem,2.4vw,2.1rem); line-height:1.12; }
#experience .equipment-card .mini-label,#experience .equipment-card p { max-width:none; color:var(--muted); }
#experience .equipment-view { display:block; width:100%; height:auto; object-fit:contain; filter:none; }
@media(max-width:900px) { #experience .bento-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { #experience .bento-grid { grid-template-columns:1fr; } #experience .equipment-copy { padding:26px; } }

/* Matching full-length booth portraits on the homepage. */
.booth-pair-card .booth-annotated, .booth-pair-card .mirror-booth-photo { aspect-ratio:1122 / 1402; }
.booth-pair-card .booth-annotated>img, .booth-pair-card .mirror-booth-photo>img { width:100%; height:100%; object-fit:contain; }
