:root{--motion:cubic-bezier(.22,.68,0,1.01);--nav-offset:88px}
html{scroll-padding-top:calc(var(--nav-offset) + 20px)}
header{position:sticky;top:0;z-index:20;isolation:isolate;background-image:linear-gradient(#f1e9d908 1px,transparent 1px),linear-gradient(90deg,#f1e9d908 1px,transparent 1px);background-size:44px 44px;box-shadow:0 5px 20px #102a2b15}
header::before,footer::before,.contact::before,.booking::before{content:'';position:absolute;inset:0;background-image:url('assets/grain.svg');background-size:180px 180px;pointer-events:none;z-index:-1;opacity:.13;mix-blend-mode:soft-light}
header nav>a{position:relative;transition:color .25s ease,background .25s ease,transform .25s var(--motion)}
header nav>a:not(.nav-book)::after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--motion)}
header nav>a:not(.nav-book):hover::after,header nav>a.current:not(.nav-book)::after{transform:scaleX(1)}
.nav-book{overflow:hidden;box-shadow:inset 0 0 0 1px #102a2b20;border-radius:2px;background-image:repeating-linear-gradient(135deg,transparent 0 5px,#102a2b07 5px 6px)!important}
.nav-book span,.hero-bottom>a span,.submit>span,.contact-links a>span{display:inline-block;transition:transform .3s var(--motion)}
.nav-book:hover span,.hero-bottom>a:hover span,.submit:hover>span,.contact-links a:hover>span{transform:translate(3px,-3px)}
.nav-book:hover,.hero-bottom>a:hover,.submit:hover{transform:translateY(-2px)}
.nav-book:active,.hero-bottom>a:active,.submit:active,button:active{transform:translateY(1px);transition-duration:.09s}
.hero-bottom>a,.submit,#copy-request,#edit-enquiry,.close,.lightbox-inner>button{transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s var(--motion),box-shadow .25s ease}
.hero-bottom>a{border-radius:2px;box-shadow:inset 0 0 0 1px #f1e9d908}
.contact{position:relative;isolation:isolate;overflow:hidden;background-image:linear-gradient(125deg,#f1e9d915,transparent 60%),radial-gradient(#102a2b13 .6px,transparent .9px);background-size:auto,9px 9px}
.contact::before{opacity:.3;mix-blend-mode:multiply}
.contact::after{content:'';position:absolute;right:-140px;top:-210px;width:700px;height:700px;pointer-events:none;z-index:-1;border-radius:50%;background:repeating-radial-gradient(ellipse at center,transparent 0 23px,#102a2b27 24px 25px,transparent 26px 41px);transform:rotate(-15deg) scaleX(.8);opacity:.65}
.contact-top{position:relative}
.contact h2{letter-spacing:-2px}
.contact-links a{padding:22px 0;transition:padding .25s var(--motion),background .25s ease}
.contact-links a:hover{padding-left:12px;padding-right:12px;background:#f1e9d912}
.contact-signoff{margin-top:55px;display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1.6px;opacity:.8}
.contact .circle-link{transition:transform .35s var(--motion),color .25s ease,background-color .25s ease}
.contact .circle-link:hover{transform:rotate(8deg)}
footer{position:relative;isolation:isolate;border-top:1px solid #75b7ae20}
.booking{position:relative;isolation:isolate;overflow:hidden;background-image:linear-gradient(135deg,#f1e9d930,transparent 55%)}
.booking::before{opacity:.22;mix-blend-mode:multiply}
.form-step{display:block;margin-bottom:30px;color:var(--accent-text)}
input,select,textarea{transition:border-color .2s ease,background-color .2s ease;padding:13px 4px}
input:hover,select:hover,textarea:hover{border-color:var(--accent-text)}
input:focus,select:focus,textarea:focus{border-color:var(--accent-text);background:#f1e9d923;outline:2px solid var(--accent-text)!important;outline-offset:4px}
.submit{border-radius:2px;background-image:repeating-linear-gradient(135deg,transparent 0 6px,#f1e9d907 6px 7px);box-shadow:0 3px 0 #102a2b12}
.filter-bar button{transition:background-color .2s ease,color .2s ease,transform .2s var(--motion)}
.photo-wrap,.event-image{border-radius:2px}
.photo-card img,.event-card img{transition:transform .65s var(--motion),filter .4s ease}
.photo-arrow{transition:transform .35s var(--motion),background-color .25s ease}
.photo-card:hover .photo-arrow{transform:rotate(8deg)}
.photo-card,.event-card{animation:frames-in .3s var(--motion) both}
@keyframes frames-in{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
dialog{border-radius:3px;box-shadow:0 22px 80px #102a2b40;animation:dialog-in .24s var(--motion)}
dialog::backdrop{animation:backdrop-in .24s ease}
@keyframes dialog-in{from{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:none}}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
.close:hover,.lightbox-inner>button:hover{background:var(--mauve);color:var(--ink)}
#enquiry-dialog{width:min(620px,94vw);padding:38px;background:var(--paper);background-image:url('assets/grain.svg');background-blend-mode:soft-light}
#enquiry-dialog .eyebrow{color:var(--accent-text)}
#enquiry-dialog h2{font-size:46px;line-height:1.05}
#enquiry-dialog>p{line-height:1.6;font-size:12px}
#enquiry-dialog>p a{text-decoration:underline;text-underline-offset:3px}
.review-label{font-size:9px;letter-spacing:1.5px;display:block;color:var(--accent-text);margin-bottom:10px}
#request-text{height:220px;padding:15px;font-size:12px;line-height:1.6;background:#102a2b06;border:1px solid #102a2b25;resize:vertical;max-height:40vh;color:var(--ink);border-radius:2px}
.enquiry-actions{display:flex;gap:12px;margin-top:20px}
.enquiry-actions .submit{flex:1;min-width:0;color:var(--paper);background-color:var(--ink);align-items:center}
#copy-request{margin:0;padding:14px 17px;color:var(--ink);background:transparent;border:1px solid #102a2b40;border-radius:2px;font-size:12px}
#copy-request:hover{background:var(--mauve)}
#edit-enquiry{font-size:11px;border:0;background:none;color:var(--accent-text);padding:8px 0;text-decoration:underline;text-underline-offset:4px}
#copy-status{min-height:19px;margin:12px 0 4px;color:var(--accent-text);font-size:11px!important}
.enquiry-note{font-size:10px!important;border-top:1px solid var(--line);padding-top:16px;margin-bottom:0!important}
main section[tabindex="-1"]:focus{outline:none}
@media(max-width:600px){:root{--nav-offset:80px}.contact::after{width:450px;height:450px;right:-210px;top:-70px;opacity:.4}.contact-signoff{margin-top:35px;font-size:7px;letter-spacing:1px;flex-direction:column;gap:12px}input,select,textarea{font-size:16px}.form-step{margin-bottom:25px}#enquiry-dialog{padding:24px}#enquiry-dialog h2{font-size:36px}.enquiry-actions{flex-wrap:wrap}.enquiry-actions .submit{padding:16px;font-size:12px}#copy-request{font-size:11px;padding:12px}#request-text{height:200px}.contact-links a{padding-top:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
html{scrollbar-gutter:stable}

/* Direct enquiry feedback */
.bot-field{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden} [hidden]{display:none!important}#send-enquiry{border:0;cursor:pointer;font:inherit;text-align:left}#send-enquiry:disabled{opacity:.7;cursor:wait;transform:none}#edit-enquiry:disabled{opacity:.5;cursor:wait}.receipt-mark{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border:1px solid currentColor;border-radius:50%;font-size:30px;margin:15px 0}#enquiry-receipt h3{font-family:'Oswald',sans-serif;font-size:38px;margin:10px 0}#enquiry-reference{font-size:11px;letter-spacing:2px;margin:25px 0}#copy-status{min-height:1.5em}#enquiry-receipt .submit{border:0;cursor:pointer}
/* Event galleries follow the photographs’ original proportions. */
#album-dialog{max-height:94svh}
#album-dialog .photo-card img{filter:none}
#album-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px;align-items:start}
#album-photos .photo-card{width:100%;align-self:start}
#album-photos .landscape-frame{grid-column:1/-1}
#album-photos .photo-label{font-size:12px;overflow-wrap:anywhere}
#album-photos .photo-label span{font-size:9px}
#album-dialog h2,.real-event .event-title{overflow-wrap:anywhere}
.real-event img{filter:none}
@media(max-width:600px){#album-photos{grid-template-columns:1fr;gap:28px}#album-dialog{max-height:94svh}#album-photos .photo-label{font-size:11px}}

.selections .photo-card img{filter:none}

/* Every photographic preview shows the complete original frame. */
.photo-grid,.event-grid{align-items:start}
.photo-card .photo-wrap,.photo-card:nth-child(3n+2) .photo-wrap,.event-image{height:auto!important}
.photo-card .photo-wrap img,.event-image img{display:block;width:100%;height:auto!important;object-fit:contain!important;position:static}
.photo-card,.event-card{align-self:start}
.hero-backdrop{object-fit:contain!important}
#large-photo{object-fit:contain!important;width:auto;max-width:100%;height:auto;max-height:75svh}

.photo-card img,.event-card img{transform:none!important}

/* Equal image height per row, with widths following each original frame. */
#photo-grid{display:flex;flex-direction:column;gap:30px}
#photo-grid .archive-row{display:flex;gap:24px;align-items:flex-start;width:100%}
#photo-grid .archive-row>.photo-card{flex:var(--frame-ratio) 1 0;width:0;min-width:0;margin:0}
#photo-grid .photo-label{gap:8px;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
#photo-grid .photo-label span{font-size:9px;flex-shrink:0}
@media(max-width:700px){#photo-grid{gap:24px}#photo-grid .archive-row{gap:16px}}

#album-photos.nighttime-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:600px){#album-photos.nighttime-gallery{grid-template-columns:1fr}}

/* An editorial, edge-to-edge photograph viewer. */
#lightbox{box-sizing:border-box;width:100vw;max-width:none;height:100svh;max-height:none;margin:0;padding:24px 38px 22px;border:0;border-radius:0;background:#0c1414;color:#f1e9d9;overflow:hidden;box-shadow:none}
#lightbox[open]{display:grid;grid-template-rows:48px minmax(0,1fr) 66px;gap:18px}
#lightbox::backdrop{background:#0c1414}
#lightbox .viewer-top,#lightbox .viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}
#lightbox .viewer-brand{font:500 22px 'DM Sans',sans-serif;letter-spacing:-1px;display:flex;align-items:center;gap:22px}
#lightbox .viewer-brand>span{font-size:9px;letter-spacing:2px;color:#91aaa5}
#lightbox .close{position:static;display:flex;align-items:center;gap:16px;width:auto;height:40px;padding:0 0 0 18px;border:0;background:transparent;color:#f1e9d9;font:400 12px 'DM Sans',sans-serif}
#lightbox .close span:last-child{font-size:30px;font-weight:300}
#lightbox .viewer-stage{min-width:0;min-height:0;margin:0;display:flex;justify-content:center;align-items:center;overflow:hidden}
#lightbox #large-photo{display:block;width:auto!important;height:auto!important;max-width:100%;max-height:100%;object-fit:contain!important;border-radius:2px;box-shadow:0 16px 60px #0003}
#lightbox .viewer-bottom{border-top:1px solid #ffffff18;padding-top:16px}
#lightbox #viewer-category{font:400 9px 'DM Sans',sans-serif;letter-spacing:2px;color:#91aaa5;text-transform:uppercase}
#lightbox #large-caption{font:400 16px 'DM Sans',sans-serif;letter-spacing:0;margin:7px 0 0;text-align:left;color:#f1e9d9}
#lightbox .viewer-controls{display:flex;align-items:center;gap:24px;flex-shrink:0}
#lightbox .viewer-controls button{position:static;width:42px;height:42px;border:1px solid #ffffff28;border-radius:50%;background:transparent;color:#f1e9d9;font-size:20px;display:grid;place-items:center;transition:background .2s,border-color .2s,transform .2s}
#lightbox .viewer-controls button:hover{background:#75b7ae;color:#0c1414;border-color:#75b7ae}
#lightbox .viewer-controls button:active{transform:scale(.94)}
#lightbox #viewer-count{font:400 11px 'DM Sans',sans-serif;letter-spacing:2px;color:#b4c3bf;min-width:60px;text-align:center}
@media(max-width:600px){#lightbox{padding:14px 18px 18px}#lightbox[open]{grid-template-rows:40px minmax(0,1fr) 82px;gap:12px}#lightbox .viewer-brand>span{display:none}#lightbox .viewer-controls{gap:10px}#lightbox .viewer-controls button{width:36px;height:36px}#lightbox #large-caption{font-size:12px}#lightbox #viewer-category{font-size:8px;letter-spacing:1px}#lightbox #viewer-count{font-size:9px;min-width:44px;letter-spacing:1px}}

/* Preserve the full hero frame and extend its own tones behind the edges. */
body[data-palette] .hero{background:#101412}
body[data-palette] .hero::before{content:'';position:absolute;inset:-30px;z-index:-4;background:url('assets/republica-rock-2026/frame-03.jpg') center/cover no-repeat;filter:blur(24px) brightness(.7);pointer-events:none}
body[data-palette] .hero-backdrop{filter:none;object-fit:contain!important}
body[data-palette] .hero-overlay{background:linear-gradient(180deg,rgba(5,8,7,.08),rgba(5,8,7,.12) 42%,rgba(5,8,7,.32) 78%,rgba(5,8,7,.65));pointer-events:none}
/* Covers share one frame size; photographs retain their own proportions. */
#event-grid .event-image{aspect-ratio:3/2!important;height:auto!important;background:#111a19;display:flex;align-items:center;justify-content:center}
#event-grid .event-image img{width:100%;height:100%!important;object-fit:contain!important;position:absolute;inset:0;filter:none}

/* Homepage crop only: fill the hero edge to edge. */
body[data-palette] .hero{aspect-ratio:16/9;height:auto;min-height:0;max-height:none}
body[data-palette] .hero::before{display:none}
body[data-palette] .hero-backdrop{object-fit:cover!important;object-position:50% 58%}
@media(max-width:900px){body[data-palette] .hero{aspect-ratio:auto;min-height:620px;height:calc(100svh - 88px)}}
@media(max-width:600px){body[data-palette] .hero{min-height:680px;height:calc(100svh - 80px)}}

@media(min-width:901px){
 body[data-palette] .hero{padding:90px 5% 110px}
 body[data-palette] .hero-meta{position:absolute;top:30px;left:5%;right:5%}
 body[data-palette] .hero-meta>span:last-child{padding-top:0}
 body[data-palette] .hero-title{padding:0;margin:auto 0}
 body[data-palette] h1.hero-brand-title{width:min(34vw,650px)}
 body[data-palette] .hero-bottom{position:absolute;left:5%;right:5%;bottom:52px;padding:0}
 body[data-palette] .hero-strip{position:absolute;left:5%;right:5%;bottom:0}
}

/* Services: a photographic card stack, framed by small editorial details. */
.services{background:#0c1515;color:var(--paper);position:relative;overflow:hidden}
.services::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:repeating-linear-gradient(120deg,transparent 0 3px,#ffffff05 3px 4px)}
.service-heading{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:70px}
.service-heading>.eyebrow{flex-basis:100%;color:var(--purple)}
.service-heading h2{margin:0}.services .service-heading h2 em{color:var(--paper)}
.service-heading>p{font-size:13px;line-height:1.7;color:#a6b9b3}
.service-board{display:grid;grid-template-columns:minmax(100px,1fr) minmax(280px,440px) minmax(100px,1fr);align-items:center;gap:6%;position:relative;padding-top:64px}
.service-stack{position:relative;isolation:isolate;width:100%}
.service-stack-layer{position:absolute;border:1px solid #ffffff25;border-radius:20px;background:#102625;pointer-events:none;left:0;right:0;top:0;height:100%;z-index:-1}
.service-stack-layer.layer-back{transform:translateY(-48px) scale(.86);background:#233a36}
.service-stack-layer.layer-mid{transform:translateY(-24px) scale(.93);background:#203130}
.service-feature{border:1px solid #ffffff30;border-radius:20px;padding:14px;background:#0a1111;box-shadow:0 25px 60px #0003}
.service-index{display:block;font-size:9px;letter-spacing:2px;padding:5px 5px 15px;color:#a3c6bd}
.service-photo{border-radius:12px;overflow:hidden;background:#111d1b;max-width:100%}
.services .service-photo img{width:100%;height:auto;display:block;object-fit:contain}
.services .service-photo img[hidden]{display:none}
.service-copy{padding:25px 10px 12px}
.service-copy h3{font:400 clamp(30px,3.5vw,48px)/1.08 Georgia,serif;letter-spacing:-1px;margin:0 0 16px}
.service-copy p{font-size:13px;line-height:1.7;color:#b0bdb7;min-height:66px}
.service-book{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:24px;padding:15px 18px;border-radius:30px;background:var(--purple);color:var(--ink);font-size:12px;font-weight:500;transition:background .2s,transform .2s}
.service-book:hover{background:var(--paper);transform:translateY(-2px)}
.service-book span{font-size:20px}
.service-sides{display:flex;flex-direction:column;gap:110px;align-items:center}
.service-sides figure{position:relative;width:min(100%,185px);margin:0;padding:10px;border:1px solid #ffffff30;border-radius:16px;background:#0b1413;transition:transform .3s}
.service-sides-left figure:first-child{transform:rotate(-5deg)}.service-sides-left figure:last-child{transform:rotate(3deg)}
.service-sides-right figure:first-child{transform:rotate(5deg)}.service-sides-right figure:last-child{transform:rotate(-3deg)}
.service-sides img{width:100%;height:auto;display:block;border-radius:8px}
.service-sides figcaption{position:absolute;left:-8px;right:-8px;top:22px;background:var(--pink);color:var(--ink);padding:9px;font-size:10px;text-align:center;border-radius:4px}
.service-tabs{position:relative;display:flex;gap:8px;max-width:760px;margin:55px auto 0;padding:8px;border:1px solid #ffffff26;border-radius:16px}
.service-tabs button{flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:transparent;color:#b3c3bd;border-radius:10px;padding:17px 20px;font-size:13px;transition:background .25s,color .25s}
.service-tabs button span{font-size:9px;opacity:.6}
.service-tabs button[aria-selected=true]{background:var(--purple);color:var(--ink)}
.service-tabs button:hover:not([aria-selected=true]){background:#ffffff0b;color:var(--paper)}
#birthday-art{min-height:460px;background:radial-gradient(ellipse at 15% 0%,#c5a77c30,transparent 65%),repeating-linear-gradient(135deg,#75b7ae10 0 1px,transparent 1px 18px),#122a29;padding:35px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center}
#birthday-art[hidden]{display:none}#birthday-art>span{font-size:10px;letter-spacing:3px;color:#bad0c8}#birthday-art strong{font:700 160px/1 Oswald,sans-serif;letter-spacing:-8px;color:var(--pink)}
.birthday-service .service-sides{visibility:hidden}
@media(max-width:900px){.service-board{gap:4%;grid-template-columns:minmax(80px,1fr) minmax(260px,380px) minmax(80px,1fr)}.service-sides figure{padding:7px}.service-sides figcaption{font-size:8px;padding:7px}.service-sides{gap:70px}}
@media(max-width:600px){.service-heading{margin-bottom:40px}.service-heading>p{font-size:12px}.service-board{grid-template-columns:1fr;padding-top:50px}.service-sides{display:none}.service-stack{max-width:400px;margin:auto}.service-tabs{gap:4px;padding:5px;margin-top:32px}.service-tabs button{padding:13px 8px;font-size:10px;justify-content:center}.service-tabs button span{display:none}.service-copy h3{font-size:36px}.service-photo img{max-height:none}#birthday-art{min-height:390px}}

.faq{background:#0c1515;color:var(--paper)}
.faq-heading .eyebrow{color:var(--purple)}
.faq-heading h2{font-size:clamp(45px,6vw,86px);margin:22px 0 28px}.faq .faq-heading h2 em{color:var(--paper)}
.faq-heading>p{font-size:15px;color:#b0c1b9;line-height:1.7;margin-bottom:60px}
.faq-list{border-top:1px solid #ffffff38}
.faq-list details{border-bottom:1px solid #ffffff38}
.faq-list summary{display:flex;align-items:center;gap:22px;padding:28px 0;cursor:pointer;list-style:none;font-size:clamp(17px,2vw,25px);font-weight:500}
.faq-list summary::-webkit-details-marker{display:none}
.faq-number{font-size:10px;font-weight:400;color:#83b5aa;letter-spacing:1px;flex:0 0 28px}
.faq-symbol{position:relative;flex:0 0 24px;height:24px;margin-left:auto}
.faq-symbol::before,.faq-symbol::after{content:'';position:absolute;top:11px;left:3px;right:3px;height:1px;background:var(--paper);transition:transform .25s}
.faq-symbol::after{transform:rotate(90deg)}
.faq-list details[open] .faq-symbol::after{transform:rotate(0)}
.faq-answer{padding:0 46px 30px 50px;max-width:950px;animation:faq-reveal .25s ease-out}
.faq-answer p{font-size:15px;line-height:1.8;color:#b3c5bc}
.faq-footer{display:flex;justify-content:space-between;align-items:center;padding-top:34px;font-size:13px;color:#a6b9b3}
.faq-footer a{color:var(--purple);display:flex;gap:30px;align-items:center}.faq-footer a span{font-size:23px}
@keyframes faq-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.faq-heading>p{font-size:13px;margin-bottom:40px}.faq-list summary{gap:12px;padding:23px 0;font-size:17px}.faq-number{flex-basis:22px;font-size:9px}.faq-answer{padding:0 24px 26px 34px}.faq-answer p{font-size:13px}.faq-footer{font-size:11px;gap:20px}}
@media(prefers-reduced-motion:reduce){.faq-answer{animation:none}.faq-symbol::after{transition:none}.service-book,.service-tabs button{transition:none}}

.service-sides figure{transition:translate .4s cubic-bezier(.22,1,.36,1)}
.service-sides figure:hover{translate:0 -7px}
.contact-links a{transition:color .25s,background .25s;padding-bottom:14px}
.contact-links a span,.hero-bottom>a span,.nav-book span,.submit span,.service-book span{display:inline-block;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.contact-links a:hover span,.hero-bottom>a:hover span,.nav-book:hover span,.submit:hover span,.service-book:hover span{transform:translate(4px,-4px)}
.contact-links a:hover{color:#173d37;background:#ffffff0a}
#booking-form input,#booking-form select,#booking-form textarea{transition:border-color .25s,background .25s,box-shadow .25s}
#booking-form input:focus,#booking-form select:focus,#booking-form textarea:focus{border-color:#25615b;background:#ffffff0c;box-shadow:0 2px 0 #25615b;outline-offset:3px}
.faq-list summary{transition:color .25s}.faq-list summary:hover{color:var(--purple)}
@media(prefers-reduced-motion:reduce){.service-sides figure,.contact-links a,.contact-links a span,.hero-bottom>a span,.nav-book span,.submit span,.service-book span,#booking-form input,#booking-form select,#booking-form textarea,.faq-list summary{transition:none}}

.birthday-service .service-sides{visibility:visible}
.birthday-service .service-sides img{display:none}
.birthday-service .service-sides figure{min-height:165px;display:grid;place-items:center;background:repeating-linear-gradient(135deg,#75b7ae10 0 1px,transparent 1px 14px),#132724}
.birthday-service .service-sides figure::before{content:'✳';font-size:64px;color:var(--pink);padding-top:24px}
.birthday-service .service-sides-right figure::before{content:'18';font-family:Oswald,sans-serif;font-size:62px}
.footer-jumps{display:flex;justify-content:center;gap:38px;padding:24px 5%;background:var(--ink);color:var(--paper);border-top:1px solid #ffffff18;border-bottom:1px solid #ffffff18;font-size:12px}
.footer-jumps a{transition:color .2s}.footer-jumps a:hover{color:var(--purple)}
@media(max-width:600px){.footer-jumps{gap:20px;flex-wrap:wrap;font-size:10px}}

.service-stack-layer{transform-origin:top center}

/* A textured, printed interlude directly after the services. */
body[data-palette] .manifesto{position:relative;isolation:isolate;overflow:hidden;background:#102a2b;border-top:1px solid #c5a77c55;border-bottom:1px solid #c5a77c55}
.manifesto::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/print-grain.svg') repeat;mix-blend-mode:soft-light;opacity:.62}
.manifesto::after{content:'';position:absolute;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 88% 18%,#c5a77c19,transparent 54%),radial-gradient(circle,#c5a77c38 .8px,transparent 1px);background-size:auto,7px 7px;mask-image:linear-gradient(110deg,transparent 20%,#000 100%)}
.manifesto>.eyebrow{display:flex;align-items:center;gap:18px;letter-spacing:2px}
.manifesto>.eyebrow::before{content:'';width:38px;height:1px;background:currentColor}
.manifesto-aside{position:relative;padding:30px 0 0;border-top:1px solid #c5a77c66}
.manifesto-aside::before{content:'✳';position:absolute;right:-80px;top:-220px;color:#c5a77c;opacity:.09;font-size:300px;line-height:1;transform:rotate(15deg);pointer-events:none}
.manifesto-aside a{display:inline-block;transition:color .25s,border-color .25s}
.manifesto-aside a:hover{color:var(--purple);border-color:var(--purple)}
@media(max-width:600px){.manifesto-aside::before{font-size:200px;right:-30px;top:-130px}.manifesto::after{background-size:auto,8px 8px}.manifesto-aside{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.manifesto-aside a{transition:none}}

/* Photographs without visible captions; text alternatives remain accessible. */
.photo-wrap img{font-size:0;color:transparent}
#lightbox .viewer-bottom{justify-content:flex-end}

.service-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:920px}
@media(max-width:600px){.service-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Floating glass navigation and a more readable editorial scale. */
body[data-palette] header{position:fixed;top:16px;left:3%;right:3%;height:82px;padding:10px 24px;background:rgba(12,28,29,.48);background-image:none;border:1px solid #f1e9d91c;border-radius:20px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 32px #00000012}
header::before{display:none}
header .brand img{width:108px}
header nav{gap:8px;font-size:17px}
header nav>a{padding:12px 18px;border-radius:999px}
header nav>a:not(.nav-book)::after{display:none}
header nav>a:not(.nav-book):hover,header nav>a.current:not(.nav-book),header nav>a:not(.nav-book):focus-visible{background:var(--pink);color:var(--ink)}
body[data-palette] header .nav-book{border-radius:999px;padding:13px 22px;background-image:none!important}
header .nav-book span{margin-left:18px}
.hero-meta{font-size:13px!important;line-height:1.6}
.hero-strip{font-size:12px!important;letter-spacing:1px}
.hero-bottom p{font-size:17px!important}
.hero-bottom>a{font-size:17px!important}
.eyebrow{font-size:13px!important;letter-spacing:1.6px}
.section-head>p,.booking-intro>p,.service-heading>p,.faq-heading>p{font-size:18px!important;line-height:1.7;max-width:420px}
.filter-bar button{font-size:17px;padding:12px 20px}
.filter-bar button sup{font-size:12px}
.event-card small{font-size:14px;line-height:1.5}
.service-copy p{font-size:18px!important;line-height:1.7}
.service-sides figcaption{font-size:13px!important;letter-spacing:.8px}
.service-tabs button,.service-book{font-size:17px!important}
.service-index{font-size:13px!important}
.manifesto-aside p{font-size:18px!important}
.manifesto-aside a{font-size:17px!important}
#booking-form label{font-size:14px!important;line-height:1.6}
#booking-form input,#booking-form select,#booking-form textarea{font-size:17px!important}
.form-note,.booking-foot,.demo-note,.contact-signoff{font-size:13px!important;line-height:1.6}
.faq-answer p,.faq-footer{font-size:17px!important}
.faq-number{font-size:13px!important}
.contact-links a{font-size:22px!important;line-height:1.5;gap:16px}
.footer-jumps,footer{font-size:15px!important}
.viewer-count{font-size:14px!important}
@media(min-width:901px){.hero-meta{top:120px!important}}
@media(max-width:900px){body[data-palette] header{top:12px;left:2%;right:2%;padding:9px 16px;height:76px}.hero-meta{padding-top:100px}}
@media(max-width:600px){body[data-palette] header{top:10px;left:12px;right:12px;height:68px;padding:8px 10px;border-radius:16px}header .brand img{width:66px}header nav{gap:2px;font-size:14px}header nav>a{padding:10px 9px}body[data-palette] header .nav-book{padding:10px 12px;font-size:14px}header .nav-book span{display:none}.hero-meta{padding-top:85px;font-size:12px!important}.hero-strip{font-size:10px!important;gap:12px}.hero-bottom p,.hero-bottom>a{font-size:15px!important}.eyebrow{font-size:12px!important}.filter-bar{flex-wrap:wrap;gap:4px}.filter-bar button{font-size:15px;padding:10px 13px}.service-tabs button{font-size:15px!important}.service-copy p,.section-head>p,.booking-intro>p,.service-heading>p,.faq-heading>p,.manifesto-aside p{font-size:17px!important}.faq-answer p{font-size:16px!important}.contact-links a{font-size:18px!important}.contact-signoff{flex-direction:column}.footer-jumps{font-size:14px!important;gap:18px}.hero-strip span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){header nav>a{transition:none}}

/* A thinner, clear glass frame with neutral, compact navigation accents. */
body[data-palette] header{top:12px;height:62px;padding:7px 20px;border-radius:999px;background:rgba(12,23,23,.26);backdrop-filter:blur(5px) saturate(120%);-webkit-backdrop-filter:blur(5px) saturate(120%);border-color:#ffffff24;box-shadow:inset 0 1px 1px #ffffff38,inset 0 -1px 1px #ffffff0b,0 5px 18px #00000012}
header .brand img{width:78px}
header nav{font-size:16px;gap:5px}
header nav>a{padding:8px 14px}
header nav>a:not(.nav-book):hover,header nav>a.current:not(.nav-book),header nav>a:not(.nav-book):focus-visible{background:#f1e9d925;color:#fff;box-shadow:inset 0 1px 1px #ffffff25}
body[data-palette] header .nav-book{padding:9px 18px;background:#f1e9d9dc!important;color:#142525;border:0;box-shadow:inset 0 1px 1px #fff8}
.upcoming-cover{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#e3ded3;background:radial-gradient(ellipse at 50% 100%,#ffffff09,transparent 65%),#132626;border:1px solid #ffffff14;border-radius:2px}
.upcoming-cover strong{font:500 70px/1 Oswald,sans-serif}.upcoming-cover .eyebrow{opacity:.6}
@media(min-width:901px){
.services.section{padding:90px 5% 32px}
.service-heading{margin-bottom:20px;gap:12px}
.service-heading h2{font-size:clamp(36px,3.6vw,55px);line-height:1.03}
.service-heading>p{font-size:16px!important;line-height:1.5}
.service-heading>.eyebrow{font-size:12px!important}
.service-board{grid-template-columns:minmax(70px,.6fr) minmax(510px,3fr) minmax(70px,.6fr);gap:3%;padding-top:28px}
.service-feature{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);align-items:center;gap:22px;padding:14px 18px;border-radius:18px;position:relative}
.service-index{position:absolute;top:17px;left:calc(44% + 8px);font-size:11px!important;padding:0}
.service-photo{background:transparent;border-radius:9px;display:flex;align-items:center;justify-content:center}
.services .service-photo img{height:min(34svh,300px);width:auto;max-width:100%;object-fit:contain}
.service-copy{padding:36px 0 8px}
.service-copy h3{font-size:clamp(30px,2.8vw,42px);margin-bottom:12px}
.service-copy p{font-size:16px!important;line-height:1.55;min-height:0}
.service-book{font-size:15px!important;margin-top:20px;padding:12px 15px}
.service-sides{gap:28px}.service-sides figure{width:min(100%,115px);padding:6px;border-radius:12px}
.service-sides figcaption{font-size:11px!important;padding:6px;top:15px;left:-10px;right:-10px}
.service-tabs{margin-top:22px;padding:5px;max-width:880px}
.service-tabs button{padding:11px 16px;font-size:15px!important}
.service-stack-layer.layer-back{transform:translateY(-24px) scale(.92)}
.service-stack-layer.layer-mid{transform:translateY(-12px) scale(.96)}
}
@media(max-width:900px){body[data-palette] header{height:60px;padding:7px 15px}header .brand img{width:75px}.service-photo{display:flex;justify-content:center}.services .service-photo img{max-height:42svh;width:auto;max-width:100%;object-fit:contain}.service-copy{padding:18px 8px 8px}.service-sides{gap:30px}.service-book{margin-top:18px}.service-heading{margin-bottom:25px}}
@media(max-width:600px){body[data-palette] header{height:54px;padding:6px 10px;top:8px}header .brand img{width:56px}header nav{font-size:13px;gap:1px}header nav>a{padding:7px 8px}body[data-palette] header .nav-book{font-size:13px;padding:8px 10px}.service-stack{max-width:350px}.service-copy h3{font-size:32px}.service-copy p{font-size:16px!important}.services.section{padding-top:85px}.service-heading{margin-bottom:18px}.service-board{padding-top:28px}.service-tabs{margin-top:20px}}

@media(min-width:901px){#services{scroll-margin-top:-30px}.services.section{padding-top:24px;padding-bottom:24px}.service-heading{margin-bottom:16px}.service-heading h2{font-size:36px}.service-sides{gap:16px}.service-sides figure{width:82px}.service-sides figcaption{font-size:10px!important;letter-spacing:0;padding:5px}.services .service-photo img{height:min(30svh,270px)}.service-tabs{margin-top:18px}}

/* Upright service cards, with an intentionally cropped service preview. */
@media(min-width:901px){
.services.section{padding-top:16px;padding-bottom:16px}
.service-heading{gap:6px;margin-bottom:8px}.service-heading h2{font-size:30px}
.service-board{grid-template-columns:minmax(100px,1fr) minmax(320px,380px) minmax(100px,1fr);gap:6%;padding-top:24px}
.service-feature{display:block;padding:10px 12px;border-radius:18px}
.service-index{position:static;font-size:10px!important;padding:1px 4px 8px}
.service-photo{display:block;background:#0b1413}
.services .service-photo img{width:100%;height:clamp(140px,22svh,210px);max-width:100%;object-fit:cover;object-position:center 43%}
.service-copy{padding:12px 6px 6px}.service-copy h3{font-size:30px;margin:0 0 8px}.service-copy p{font-size:15px!important;line-height:1.45;min-height:0}
.service-book{font-size:15px!important;padding:10px 14px;margin-top:12px}
.service-sides{gap:34px}.service-sides figure{width:125px}.service-sides img{height:110px;width:100%;object-fit:cover}.service-sides figcaption{font-size:11px!important}
.service-tabs{margin-top:14px}.service-tabs button{padding:10px 14px}
}
@media(max-width:900px){.services .service-photo img{width:100%;height:clamp(180px,30svh,260px);object-fit:cover;object-position:center 43%}}

@media(min-width:901px){
.services.section{min-height:calc(100svh - 78px);display:flex;flex-direction:column;box-sizing:border-box}
.service-heading{flex-shrink:0}.service-board{flex:1;min-height:0;width:100%;align-items:center}
.service-tabs{flex-shrink:0;width:min(880px,100%)}
.service-board{grid-template-columns:minmax(100px,1fr) minmax(320px,420px) minmax(100px,1fr)}
.services .service-photo img{height:clamp(150px,calc(100svh - 560px),480px)}
.service-sides figure{width:145px}.service-sides img{height:clamp(100px,15svh,180px)}
}

/* Keep the lower part of concert and birthday service previews; trim above. */
.services[data-active-service="concerts"] #service-photo,.services[data-active-service="birthdays"] #service-photo{object-position:center bottom}

/* On short screens retain faces as well as the lower action. */
@media(max-height:850px){.services[data-active-service="concerts"] #service-photo{object-position:center 52%}}

/* Read event stories down each column, then move to the next. */
@media(min-width:901px){#event-grid{grid-auto-flow:column;grid-template-rows:repeat(3,auto);grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:601px) and (max-width:900px){#event-grid{grid-auto-flow:column;grid-template-rows:repeat(5,auto);grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#event-grid{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:1fr}}

/* Event order follows rows, from left to right. */
#event-grid{grid-auto-flow:row;grid-template-rows:none}

/* Four record sleeves; photographs unfold in place when a category is chosen. */
.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px 6%;margin-top:42px}
.vinyl-category{--sleeve:#244943;position:relative;isolation:isolate;display:block;width:100%;border:0;background:none;color:var(--paper);text-align:left;padding:0 18% 0 0;cursor:pointer;overflow:visible}
.vinyl-category.portrait{--sleeve:#647369}.vinyl-category.birthday{--sleeve:#9a7852}.vinyl-category.robotics{--sleeve:#325359}
.record{position:absolute;z-index:-1;width:76%;aspect-ratio:1;right:0;top:50%;translate:0 -50%;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at center,#141616 0 25%,transparent 25.4%),repeating-radial-gradient(circle at center,#111414 0 2px,#222626 2.5px 3px,#111414 3.5px 5px);box-shadow:0 6px 16px #0003,inset 0 0 0 2px #ffffff15;transition:translate .65s cubic-bezier(.22,1,.36,1),rotate 1s cubic-bezier(.22,1,.36,1)}
.record::after{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 20deg,transparent,#ffffff0c 12%,transparent 28%,#ffffff0c 50%,transparent 70%);pointer-events:none}
.record-label{width:32%;aspect-ratio:1;border-radius:50%;background:#b2c6bb;color:#102a2b;display:flex;flex-direction:column;align-items:center;justify-content:center;font:500 clamp(22px,3vw,40px)/1 Oswald,sans-serif;letter-spacing:1px;box-shadow:inset 0 0 0 1px #102a2b40}
.record-label small{font:500 10px/1.8 'DM Sans',sans-serif;letter-spacing:1px}.record-label::after{content:'';width:7px;height:7px;border-radius:50%;background:#111;margin-top:7px}
.record-sleeve{position:relative;display:flex;flex-direction:column;gap:18px;padding:22px;background:var(--sleeve);box-shadow:0 9px 20px #102a2b20,inset 0 0 0 1px #ffffff12;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.record-sleeve::after{content:'';position:absolute;inset:0;background:url('assets/print-grain.svg');opacity:.24;pointer-events:none;mix-blend-mode:soft-light}
.sleeve-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sleeve-heading strong{font:500 clamp(24px,2.4vw,38px)/1.1 Oswald,sans-serif;text-transform:uppercase;letter-spacing:-.4px}
.category-toggle{font-size:26px;line-height:1;transition:rotate .3s}
.sleeve-photo{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:#09151535;overflow:hidden}
.sleeve-photo img{width:100%;height:100%;object-fit:contain;display:block}
.sleeve-footer{display:flex;justify-content:space-between;gap:10px;font-size:11px;letter-spacing:1px;line-height:1.5}
.vinyl-category:hover .record,.vinyl-category[aria-expanded=true] .record{translate:6% -50%;rotate:18deg}
.vinyl-category:hover .record-sleeve{transform:translateY(-5px)}
.vinyl-category[aria-expanded=true] .category-toggle{rotate:45deg}
.vinyl-category:focus-visible{outline:2px solid var(--accent-text);outline-offset:10px}
.selected-gallery{grid-column:1/-1;width:100%;margin:0;padding:26px 0 10px;border-top:1px solid #102a2b40;scroll-margin-top:100px}
.selected-gallery[hidden]{display:none}
.selected-gallery-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px}
.selected-gallery-head h3{font:500 32px/1.2 Oswald,sans-serif;text-transform:uppercase}
#close-category{display:flex;align-items:center;gap:22px;background:transparent;border:1px solid #102a2b35;border-radius:999px;padding:10px 18px;color:var(--ink);font-size:15px}
#close-category:hover{background:#102a2b0b}#close-category span{font-size:24px}
@media(max-width:900px){.category-grid{gap:34px 6%}.record-sleeve{padding:16px;gap:14px}.sleeve-heading strong{font-size:25px}.sleeve-footer{font-size:9px}}
@media(max-width:650px){.category-grid{grid-template-columns:1fr;gap:38px}.vinyl-category{max-width:480px;margin:auto}.record-sleeve{padding:20px}.sleeve-heading strong{font-size:30px}.sleeve-footer{font-size:11px}.selected-gallery-head h3{font-size:28px}}
@media(prefers-reduced-motion:reduce){.record,.record-sleeve,.category-toggle{transition:none}}

/* Extract the chosen record, then reveal only its photographs. */
.category-grid[hidden]{display:none}
.category-grid{scroll-margin-top:110px}
.category-grid.is-opening .vinyl-category:not(.opening-record){visibility:hidden;opacity:0}
.opening-record .record{translate:24% -50%!important;rotate:100deg!important}
.opening-record .record-sleeve{transform:translateX(-12%) rotate(-3deg);opacity:0;transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .4s .25s}
.selected-gallery{border-top:0;padding-top:0;min-width:0;scroll-margin-top:100px}
.selected-gallery-head{justify-content:flex-end;margin-bottom:18px}
#selected-category-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#close-category{gap:9px;font-size:14px!important;padding:8px 14px;flex-shrink:0}
#close-category span{font-size:18px}
@media(max-width:650px){.selected-gallery-head{margin-bottom:16px}.opening-record .record{translate:15% -50%!important}.category-grid{scroll-margin-top:90px}}

@media(hover:hover){.vinyl-category:hover .record{translate:12% -50%;rotate:32deg}.vinyl-category:hover .record-sleeve{transform:translateY(-5px) rotate(-1deg)}}

/* Responsive layout follows the browser width, including tablets and split tabs. */
.menu-toggle{display:none}
.section-head>*,.service-heading>*,.booking>*,.contact-top>*,.form-pair>*,.event-card,.service-stack{min-width:0}
.service-tabs button{min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:left}
.hero-brand-title,.hero-brand-logo{max-width:100%}
#album-dialog,#enquiry-dialog{max-height:calc(100dvh - 24px);overscroll-behavior:contain}
.dialog-top>div{min-width:0}.dialog-top h2{overflow-wrap:anywhere}
@media(max-width:1100px){
 .section{padding-left:5%;padding-right:5%}
 .booking{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5%}
 .service-tabs button{padding:12px;font-size:15px!important}
}
@media(max-width:900px){
 .service-board{grid-template-columns:minmax(0,1fr);gap:0;min-width:0}
 .service-sides{display:none}.service-stack{width:100%;max-width:480px;margin:auto}
 .service-heading{display:block}.service-heading h2{font-size:clamp(32px,6vw,50px);overflow-wrap:anywhere}
 .service-heading>p{margin-top:18px;max-width:520px}
 .service-tabs{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));max-width:650px;margin-left:auto;margin-right:auto}
 .services.section{padding-top:42px;padding-bottom:42px;scroll-margin-top:90px}
 .booking{grid-template-columns:1fr;gap:36px}
 .booking-intro>p{max-width:540px}.booking-foot{margin-top:24px}
 .section-head{align-items:start}.section-head>p{max-width:40%}
 .contact-links{gap:24px}.contact-links a{min-width:0;gap:12px}
 .manifesto{grid-template-columns:1fr;gap:32px}.manifesto-aside{justify-self:start;max-width:600px}
}
@media(max-width:650px){
 html{scroll-padding-top:90px;scrollbar-gutter:auto}
 body[data-palette] header{top:max(8px,env(safe-area-inset-top));left:12px;right:12px;height:60px;padding:8px 16px;overflow:visible}
 header .brand img{width:70px;height:42px;object-fit:contain}
 .menu-toggle{display:flex;gap:12px;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:0;border-radius:999px;background:#f1e9d918;color:var(--paper);font-size:15px}
 .menu-toggle span{font-size:20px;transition:rotate .25s}.menu-toggle[aria-expanded=true] span{rotate:45deg}
 header nav{position:absolute;top:calc(100% + 8px);left:0;right:0;display:none;grid-template-columns:1fr 1fr;gap:8px;padding:14px;background:#102322f5;border:1px solid #ffffff25;border-radius:22px;box-shadow:0 12px 32px #0003;font-size:16px}
 header.menu-open nav{display:grid}header nav>a,header nav>a:nth-child(3){display:flex;align-items:center;justify-content:center;min-height:48px;padding:12px}
 body[data-palette] header .nav-book{font-size:16px;padding:12px}.nav-book span{display:none}
 body[data-palette] .hero{height:auto;min-height:100svh;max-height:none;padding:100px 6% 0;aspect-ratio:auto;gap:24px}
 .hero-meta{position:static!important;padding-top:0;gap:20px;font-size:12px!important}
 .hero-meta>span:last-child{font-size:12px;max-width:46%;padding-top:0}
 .hero-title{flex:1;margin:30px 0!important;padding:10px 0}.hero-title>.eyebrow{font-size:10px!important;letter-spacing:1.5px}
 h1.hero-brand-title{width:100%;margin-bottom:20px}.hero-brand-logo{width:100%;height:auto}
 .hero-bottom{flex-wrap:wrap;gap:18px;padding-bottom:12px}.hero-bottom>a{font-size:14px!important;min-height:48px;padding:12px 14px;gap:18px}
 .hero-bottom p{font-size:15px!important;text-align:left}.hero-strip{margin-top:auto;padding:16px 0 max(16px,env(safe-area-inset-bottom));font-size:10px!important}
 .section{padding:54px 6%}.section-head{display:block}.section-head>p{max-width:100%;margin-top:18px}
 .section h2,.faq-heading h2,.booking h2{font-size:clamp(36px,10.5vw,60px);letter-spacing:-.8px;overflow-wrap:normal}
 .service-heading h2{font-size:clamp(32px,9.3vw,48px)}
 .service-tabs{gap:6px;border-radius:18px}.service-tabs button{min-height:50px;padding:12px 10px;font-size:15px!important;justify-content:center;text-align:center}
 .service-copy{padding:18px 8px 8px}.service-copy h3{font-size:32px}.service-book{min-height:48px;font-size:16px!important;padding:13px 15px}
 .services .service-photo img{height:clamp(200px,40svh,360px);width:100%;object-fit:cover}
 .category-grid{gap:32px;margin-top:30px}.record-sleeve{padding:16px;gap:14px}.sleeve-heading strong{font-size:clamp(24px,7vw,32px)}.sleeve-footer{font-size:10px;letter-spacing:.5px}
 #photo-grid{gap:18px}#photo-grid .archive-row{gap:12px}
 #event-grid{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none;gap:30px}
 .real-event .event-title{font-size:clamp(26px,7.2vw,36px);line-height:1.2;padding:17px 0;gap:12px}.event-title span{flex-shrink:0}
 .manifesto{padding:50px 6%}.manifesto>p{font-size:clamp(40px,12vw,70px);line-height:1.06;letter-spacing:-.6px}
 .manifesto>.eyebrow{font-size:11px!important;gap:10px;letter-spacing:1px}.manifesto>.eyebrow::before{width:20px;flex-shrink:0}
 .form-pair{grid-template-columns:1fr;gap:0}input,select,textarea{font-size:16px!important;min-height:48px;max-width:100%}
 form label{font-size:14px!important}.submit{min-height:50px;font-size:16px!important}.booking-foot{line-height:1.8;font-size:11px!important;letter-spacing:.7px}
 .contact-top{align-items:center;gap:12px}.contact h2{font-size:clamp(36px,11vw,60px)}.contact-links{grid-template-columns:1fr;gap:20px}.contact-links a{font-size:17px!important;min-height:48px}
 .faq-list summary{font-size:17px;gap:10px}.faq-answer{padding:0 0 24px 32px}.faq-footer{flex-wrap:wrap;font-size:14px!important}
 .footer-jumps{flex-wrap:wrap;justify-content:center;gap:14px}footer{flex-wrap:wrap;gap:22px;font-size:12px;justify-content:center}footer img{width:76px}
 #album-dialog{width:calc(100vw - 16px);padding:20px 14px;margin:auto;max-height:calc(100dvh - 16px)}
 #album-dialog .dialog-top{gap:10px;align-items:start}#album-dialog h2{font-size:28px;line-height:1.15}.close{min-width:44px;min-height:44px}
 #album-photos,#album-photos.nighttime-gallery{grid-template-columns:1fr;gap:18px}.landscape-frame{grid-column:auto!important}
 #enquiry-dialog{width:calc(100vw - 16px);padding:22px 16px}#enquiry-dialog h2{font-size:32px}.enquiry-actions{flex-direction:column}.enquiry-actions button{min-height:48px;font-size:16px!important}
 #lightbox{height:100dvh;padding: max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom))}
 #lightbox[open]{grid-template-rows:44px minmax(0,1fr) 60px;gap:10px}#lightbox .close{height:44px;font-size:15px}
 #lightbox .viewer-controls button{width:44px;height:44px}#lightbox #viewer-count{font-size:12px;min-width:64px}
}
@media(max-height:500px) and (orientation:landscape){
 body[data-palette] .hero{height:auto;min-height:100svh;padding-top:95px;max-height:none}
 .hero-title{margin:10px auto!important}.hero-brand-title{max-width:380px!important}.hero-meta>span:last-child{padding-top:0}
 #lightbox[open]{grid-template-rows:40px minmax(0,1fr) 48px;gap:6px}#lightbox{padding:8px 18px}
}

#photo-grid .archive-row>.photo-card:only-child{flex:1 1 0;width:100%}

/* The opening frame gives the photograph and logo room to breathe. */
.hero-bottom{justify-content:center;padding-bottom:clamp(24px,4vw,60px)}
@media(max-width:650px){body[data-palette] .hero{min-height:100svh;padding-top:92px;gap:0}.hero-title{margin:auto 0!important}.hero-bottom{padding-bottom:max(32px,env(safe-area-inset-bottom))}}

/* Compact phone navigation: clear contrast and no glass haze. */
@media(max-width:650px){
 body[data-palette] header{height:58px;top:max(10px,env(safe-area-inset-top));left:14px;right:14px;padding:6px 14px;border-radius:18px;background:#0e2020f7!important;background-image:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:0 4px 18px #0002;border:1px solid #f1e9d91c;color:#f1e9d9}
 body[data-palette] header::before,body[data-palette] header::after{display:none!important}
 header .brand img{width:66px;height:40px}
 body[data-palette] header .menu-toggle{background:transparent;color:#f1e9d9;gap:10px;padding:8px 4px;font-size:15px;min-width:76px;min-height:44px}
 .menu-toggle .menu-icon{width:18px;height:18px;display:flex;flex-direction:column;justify-content:center;gap:5px;rotate:none!important}
 .menu-icon i{display:block;width:18px;height:1.5px;background:currentColor;transition:transform .22s ease}
 .menu-toggle[aria-expanded=true] .menu-icon i:first-child{transform:translateY(3.25px) rotate(45deg)}
 .menu-toggle[aria-expanded=true] .menu-icon i:last-child{transform:translateY(-3.25px) rotate(-45deg)}
 body[data-palette] header nav{top:calc(100% + 8px);padding:8px;background:#0e2020;border-radius:18px;gap:4px;box-shadow:0 12px 30px #0003}
 body[data-palette] header nav>a,body[data-palette] header nav>a:nth-child(3){font-size:16px!important;min-height:48px;padding:10px;border-radius:12px;background:transparent;color:#f1e9d9}
 body[data-palette] header nav>a:hover,body[data-palette] header nav>a:focus-visible{background:#f1e9d915;color:#f1e9d9}
 body[data-palette] header nav .nav-book{background:#e9e3d4;color:#102a2b;font-size:16px!important;border-radius:12px}
}

.service-carousel{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:16px;width:min(440px,100%);margin:24px auto 0;padding:6px;border:1px solid #f1e9d92b;border-radius:999px;background:#0e2020}
.service-carousel button{width:48px;height:48px;border:0;border-radius:50%;background:transparent;color:var(--paper);font-size:25px;cursor:pointer;transition:background .2s,transform .2s}
.service-carousel button:hover{background:#f1e9d918}.service-carousel button:active{transform:scale(.94)}
#service-current{text-align:center;font-size:18px;color:var(--paper);line-height:1.3}
@media(max-width:650px){
 body[data-palette] header nav{left:auto;right:0;width:min(240px,calc(100vw - 28px));grid-template-columns:1fr;gap:2px;padding:8px}
 body[data-palette] header nav>a,body[data-palette] header nav>a:nth-child(3){justify-content:flex-start;padding:10px 16px;min-height:44px}
 body[data-palette] header nav .nav-book{justify-content:center;margin-top:4px;min-height:44px}
 .service-carousel{gap:8px;margin-top:18px;padding:4px;grid-template-columns:44px minmax(0,1fr) 44px}
 .service-carousel button{width:44px;height:44px}#service-current{font-size:16px}
}

/* Limit paint work while scrolling; animate opacity and transforms only. */
body[data-palette] .hero::before{display:none!important}
body[data-palette] header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#0e2020ed}
.photo-card,.event-card{animation:none!important}
.photo-card img,.event-card img{transition:opacity .18s ease!important;transform:none!important}
.manifesto::before,.record-sleeve::after{background-image:radial-gradient(#f1e9d933 .6px,transparent .8px)!important;background-size:4px 4px;mix-blend-mode:normal;opacity:.18}
body[data-palette] .hero-backdrop{will-change:auto}
@media(max-width:650px){
 body[data-palette] header{height:50px;padding:4px 12px;left:16px;right:16px;border-radius:15px;box-shadow:0 3px 12px #0002}
 header .brand img{width:56px;height:34px}
 body[data-palette] header .menu-toggle{font-size:14px;min-width:66px;min-height:42px;gap:8px}
 .menu-toggle .menu-icon{width:16px}.menu-icon i{width:16px}
 body[data-palette] header nav{width:188px;padding:6px;border-radius:15px;top:calc(100% + 6px);box-shadow:0 6px 16px #0002}
 body[data-palette] header nav>a,body[data-palette] header nav>a:nth-child(3){font-size:14px!important;min-height:44px;padding:8px 12px;border-radius:10px}
 body[data-palette] header nav .nav-book{font-size:14px!important;margin-top:2px;padding:8px 10px;min-height:44px;border-radius:10px}
 .sleeve-footer{font-size:9px!important;letter-spacing:.5px}.record-sleeve{padding:14px;gap:12px}.category-grid{gap:28px}
 .vinyl-category{width:92%;max-width:370px;padding-right:16%}.sleeve-heading strong{font-size:26px!important}
 .record,.record-sleeve{transition-duration:.3s}.opening-record .record-sleeve{transition:transform .3s ease,opacity .2s .1s}
 .ticker>div{animation:none!important}
 .photo-card:hover img,.event-card:hover img{transform:none!important}
}

.hero-picture{display:contents}
dialog::backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
@media(max-width:650px){.ticker{animation:none!important}}

.category-action{display:flex;align-items:center;gap:12px;flex-shrink:0}.preview-hint{font:400 12px/1.25 'DM Sans',sans-serif;opacity:.85;white-space:nowrap}.touch-hint{display:none}
@media(hover:none){.pointer-hint{display:none}.touch-hint{display:inline}}
@media(max-width:650px){.category-action{flex-direction:column-reverse;gap:4px}.preview-hint{font-size:10px}.sleeve-heading{gap:6px}.sleeve-heading strong{min-width:0}.pointer-hint{display:none}.touch-hint{display:inline}}

/* Balance a final single album into two pairs, keeping room for future stories. */
@media(min-width:901px){#event-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:row;grid-template-rows:none}#event-grid>.event-card{grid-column:span 2}#event-grid.balance-last-four>.event-card:nth-last-child(-n+4){grid-column:span 3}}
