
:root{
  --bg:#000000;
  --orange:#f39800;
  --orange2:#ffab18;
  --soft:#ffd089;
  --line:#303030;
  --line2:#1e1e1e;
  --white:#f5f5f5;
  --muted:#9a9a9a;
  --purple:#5d55ff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--orange);
  font-family:Arial, Helvetica, sans-serif;
  line-height:1.55;
}
a{color:var(--orange); text-decoration:underline}
img{max-width:100%; display:block}
.site{
  width:min(1128px, calc(100% - 32px));
  margin:0 auto;
}
.topbar{
  position:sticky;
  top:0;
  z-index:10;
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line2);
}
.nav{
  width:min(1128px, calc(100% - 32px));
  margin:0 auto;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.nav-brand{
  color:var(--orange);
  text-decoration:none;
  font-weight:800;
  letter-spacing:.03em;
  white-space:nowrap;
}
.nav-links{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:15px;
  flex-wrap:wrap;
}
.nav-links a{
  color:var(--orange);
  text-decoration:none;
  font-size:14px;
  opacity:.95;
}
.nav-links a:hover{text-decoration:underline}
.nav-cta{
  border:1px solid var(--orange);
  border-radius:999px;
  padding:6px 10px;
}
.logo-hero{
  padding:54px 0 30px;
  text-align:center;
}
.main-logo-wrap{
  border:0;
  padding:0;
  margin-bottom:30px;
}
.main-logo{
  width:min(1040px, 100%);
  margin:0 auto;
}
.section{
  padding:42px 0;
  border-top:1px solid var(--line);
}
.section.no-border{border-top:0}
.center{text-align:center}
.copy{
  max-width:1040px;
  margin:0 auto;
  color:var(--orange);
  font-size:20px;
  text-align:center;
}
.copy p{margin:0 0 22px}
.copy strong{color:var(--orange2)}
h1,h2,h3{
  color:var(--orange);
  margin:0 0 20px;
  line-height:1.12;
}
h1{
  font-size:clamp(36px, 5.8vw, 78px);
  text-align:center;
  font-weight:800;
  letter-spacing:-.02em;
}
h2{
  font-size:clamp(28px, 4vw, 42px);
  text-align:center;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}
h3{
  font-size:24px;
  text-align:center;
}
.kicker{
  text-transform:uppercase;
  letter-spacing:.24em;
  font-size:12px;
  color:var(--soft);
  text-align:center;
  font-weight:800;
  margin-bottom:12px;
}
.button-row{
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  margin-top:26px;
}
.button{
  border:1px solid var(--orange);
  color:var(--orange);
  text-decoration:none;
  font-weight:800;
  padding:10px 15px;
  border-radius:0;
}
.button:hover{background:var(--orange); color:#000; text-decoration:none}
.button.filled{background:var(--orange); color:#000}
.grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.grid-2{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:34px;
}
.project-card{
  text-align:center;
  min-width:0;
}
.project-logo{
  width:100%;
  max-width:360px;
  margin:0 auto 22px;
}
.project-photo{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:50 / 49;
  object-fit:cover;
  margin-bottom:17px;
}
.project-card p{
  color:var(--orange);
  font-size:18px;
  text-align:center;
  margin:0 0 20px;
}
.project-card strong{color:var(--orange2)}
.service-card{
  border:1px solid var(--line);
  padding:24px;
  text-align:center;
}
.service-card p{
  font-size:18px;
  margin:0;
  color:var(--orange);
}
.photo-band{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:28px;
  align-items:stretch;
}
.photo-band img{
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:cover;
}
.feature-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:1px solid var(--line);
  padding:28px;
}
.feature-copy p{
  color:var(--orange);
  font-size:19px;
  text-align:center;
}
.details-block{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
details{
  border-bottom:1px solid var(--line);
  padding:0;
}
details:last-child{border-bottom:0}
summary{
  cursor:pointer;
  list-style:none;
  padding:28px 18px;
  text-align:center;
  color:var(--orange);
  font-size:28px;
  font-weight:800;
  text-decoration:underline;
  position:relative;
}
summary::-webkit-details-marker{display:none}
summary:after{
  content:"";
  position:absolute;
  right:20px;
  top:50%;
  width:0;
  height:0;
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-top:10px solid currentColor;
  transform:translateY(-35%);
  color:var(--muted);
  text-decoration:none;
}
details[open] summary:after{
  border-top:0;
  border-bottom:10px solid currentColor;
  transform:translateY(-65%);
}
.event-list{
  max-width:900px;
  margin:0 auto 28px;
}
.event-row{
  display:grid;
  grid-template-columns:80px 1fr auto;
  gap:14px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--line2);
  color:var(--orange);
}
.event-date{
  font-size:24px;
  font-weight:800;
}
.event-meta{
  font-size:14px;
  color:var(--orange);
  text-transform:uppercase;
  letter-spacing:.12em;
}

.event-title a{
  color:inherit;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}
.event-title a:hover{
  color:var(--orange);
}

.event-title{
  font-size:19px;
  font-weight:800;
}
.event-place{
  font-size:22px;
  font-weight:800;
  text-align:right;
}

.count-note{
  font-size:.55em;
  color:var(--soft);
  text-decoration:none;
}
.small-copy{
  max-width:760px;
  margin:0 auto 24px;
}
.small-copy p{
  font-size:16px;
}
.past-year{
  max-width:900px;
  margin:0 auto 30px;
}
.past-year h3{
  color:var(--orange);
  text-align:center;
  font-size:24px;
  margin:24px 0 8px;
}
.event-meta:empty{
  display:none;
}

.filters{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:28px;
}
.filter-btn{
  background:#000;
  color:var(--orange);
  border:1px solid var(--orange);
  padding:9px 12px;
  cursor:pointer;
  font-weight:800;
}
.filter-btn.active,
.filter-btn:hover{
  background:var(--orange);
  color:#000;
}
.gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.gallery img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
}
.gallery .tall{grid-row:span 2}
.gallery .wide{grid-column:span 2}
.media-embed{
  background:#111;
  min-height:280px;
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--muted);
  padding:24px;
}

.gallery-puzzle{
  display:grid;
  grid-template-columns:1fr 1.08fr 1fr;
  grid-template-rows:290px 210px 190px;
  gap:28px;
  align-items:stretch;
}
.gallery-puzzle img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.gallery-puzzle .puzzle-a{grid-column:1; grid-row:1;}
.gallery-puzzle .puzzle-b{grid-column:2; grid-row:1 / span 2;}
.gallery-puzzle .puzzle-c{grid-column:3; grid-row:1;}
.gallery-puzzle .puzzle-d{grid-column:1; grid-row:2 / span 2;}
.gallery-puzzle .puzzle-e{grid-column:2; grid-row:3;}
.gallery-puzzle .puzzle-f{grid-column:3; grid-row:2 / span 2;}

.gallery-puzzle .puzzle-a{object-position:center center;}
.gallery-puzzle .puzzle-b{object-position:center center;}
.gallery-puzzle .puzzle-c{object-position:center center;}
.gallery-puzzle .puzzle-d{object-position:center center;}
.gallery-puzzle .puzzle-e{object-position:center center;}
.gallery-puzzle .puzzle-f{object-position:center center;}



.about-layout{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:34px;
  align-items:start;
}
.about-portrait{
  border:1px solid var(--line);
}
.about-portrait img{
  width:100%;
  height:auto;
  object-fit:cover;
}
.about-copy{
  border:1px solid var(--line);
  padding:28px;
}
.about-copy p{
  color:var(--orange);
  font-size:19px;
  text-align:left;
}
.production-mini{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:20px;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding:22px 0;
}
.production-mini:last-child{
  border-bottom:0;
}
.production-mini img{
  width:120px;
  height:120px;
  object-fit:cover;
}
.production-mini p{
  color:var(--orange);
  margin:0 0 10px;
}
.production-mini h3{
  text-align:left;
  margin-bottom:8px;
}


.single-feature-image{
  max-width:980px;
  margin:0 auto;
}
.single-feature-image img{
  width:100%;
  max-height:720px;
  object-fit:cover;
  object-position:center;
}


.photo img.poster-image{
  object-fit:contain;
  background:#000;
  max-height:760px;
}

.contact-line{
  text-align:center;
  font-size:20px;
  padding:30px 0;
}
.footer{
  border-top:1px solid var(--line);
  padding:28px 0 36px;
  text-align:center;
  color:var(--orange);
}
.footer-icons{
  margin-top:18px;
  color:#fff;
  font-size:14px;
  letter-spacing:1em;
}
.page-hero{
  padding:58px 0 40px;
}
.page-logo{
  max-width:720px;
  margin:0 auto 34px;
}
.form{
  max-width:760px;
  margin:0 auto;
  display:grid;
  gap:14px;
}
.input{
  width:100%;
  background:#050505;
  border:1px solid var(--line);
  color:var(--orange);
  padding:13px;
  font:inherit;
}
textarea.input{min-height:150px}
.small-note{
  color:var(--muted);
  text-align:center;
  font-size:14px;
}

.video-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:34px;
}
.video-card{
  border:1px solid var(--line);
  background:#050505;
  padding:14px;
}
.video-card h3{
  font-size:20px;
  text-align:left;
  margin:0 0 12px;
}
.video-frame{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  background:#111;
  overflow:hidden;
}
.video-frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

@media(max-width:880px){
  .grid-3,.grid-2,.photo-band,.gallery,.video-grid,.gallery-puzzle,.about-layout{
    grid-template-columns:1fr;
  }
  .gallery .tall,.gallery .wide{grid-row:auto; grid-column:auto}
  .gallery-puzzle{grid-template-columns:1fr; grid-template-rows:auto; gap:22px;}
  .gallery-puzzle .puzzle-a,.gallery-puzzle .puzzle-b,.gallery-puzzle .puzzle-c,.gallery-puzzle .puzzle-d,.gallery-puzzle .puzzle-e,.gallery-puzzle .puzzle-f{grid-column:auto; grid-row:auto; height:auto; min-height:0;}
  .production-mini{grid-template-columns:1fr; text-align:center;}
  .production-mini h3{text-align:center;}
  .production-mini img{margin:0 auto;}
  .event-row{grid-template-columns:1fr}
  .nav{align-items:flex-start; flex-direction:column; padding:12px 0}
  .nav-links{justify-content:flex-start}
  .logo-hero{padding-top:30px}
  .main-logo-wrap{padding:10px}
  .copy{font-size:18px}
}

.watch-link{
  margin:10px 0 0;
  text-align:left;
  font-size:15px;
}
.watch-link a{
  color:var(--orange);
}


.single-photo img{
  width:100%;
  min-height:420px;
  max-height:760px;
  object-fit:cover;
  object-position:center;
}

/* v33 palette override: Sade Black Gold with solid black and pale pink text.
   Layout unchanged. */
:root{
  --bg:#000000;
  --orange:#f39800;
  --orange2:#f39800;
  --soft:#d8b8c2;
  --line:rgba(243,152,0,.30);
  --line2:rgba(255,228,236,.12);
  --white:#ffe4ec;
  --muted:#d8b8c2;
  --purple:#5d55ff;
  --panel:#0a0a0a;
  --panel2:#111111;
  --accent:#f39800;
  --accent2:#f39800;
  --card-bg:#0a0a0a;
  --card-bg2:#111111;
}

body{
  background:#000000;
  color:var(--white);
}

.topbar{
  background:rgba(0,0,0,.92);
  border-bottom:1px solid var(--line2);
}

.nav-brand,
.nav-links a,
h1,
h2,
.copy,
.project-card p,
.service-card p,
.feature-copy p,
.about-copy p,
.production-mini p,
.contact-line,
.event-title{
  color:var(--white);
}

.nav-brand,
h3,
.kicker,
.copy strong,
.project-card strong,
.service-card h3,
.project-card h3,
.feature-copy h2,
.about-copy h2,
.past-year h3{
  color:var(--orange);
}

.nav-links a:hover,
.nav-brand:hover,
.event-title a:hover,
.footer a:hover{
  color:var(--orange);
}

h2,
summary,
.event-title a{
  text-decoration-color:var(--orange);
}

.nav-cta,
.button{
  color:var(--orange);
  border-color:var(--orange);
}

.nav-cta:hover,
.button:hover,
.button.filled{
  background:var(--orange);
  color:#000000;
  border-color:var(--orange);
}

.section,
.footer{
  border-top-color:var(--line);
}

.service-card,
.project-card,
.feature-copy,
.about-copy,
.production-mini,
.video-card,
.media-embed,
.details-block,
details{
  background:linear-gradient(145deg, var(--card-bg), var(--card-bg2));
  border:1px solid var(--line);
  box-shadow:0 22px 70px rgba(0,0,0,.24);
}

.filter-btn{
  background:#000000;
  color:var(--orange);
  border-color:var(--orange);
}

.filter-btn.active,
.filter-btn:hover{
  background:var(--orange);
  color:#000000;
  border-color:var(--orange);
}

.event-row{
  color:var(--white);
  border-bottom-color:var(--line2);
}

.event-date,
.event-place{
  color:var(--orange);
}

.event-meta{
  color:var(--muted);
}

.event-title{
  color:var(--white);
}

.event-title a{
  color:var(--white);
  text-decoration-color:var(--orange);
}

.event-title a:hover{
  color:var(--orange);
}

summary{
  color:var(--white);
}

summary:after,
.footer,
.footer a,
.footer-icons,
.small-note,
.media-embed{
  color:var(--muted);
}

.input,
textarea,
select{
  background:#080808;
  color:var(--white);
  border-color:var(--line);
}

.input:focus,
textarea:focus,
select:focus{
  border-color:var(--orange);
  outline:1px solid rgba(243,152,0,.45);
}

.photo img.poster-image{
  background:#000000;
}

/* v34 header color refinement: make bold headers consistently orange. */
h1,
h2,
h3,
.page-title,
.hero-title,
.section-title,
.service-card h3,
.project-card h3,
.feature-copy h2,
.about-copy h2,
.production-mini h3,
.past-year h3,
.kicker,
.copy strong,
.project-card strong{
  color:var(--orange) !important;
}

/* v37 header refinement: remove underlines from headers. */
h1,
h2,
h3,
.page-title,
.hero-title,
.section-title,
.service-card h3,
.project-card h3,
.feature-copy h2,
.about-copy h2,
.production-mini h3,
.past-year h3,
.kicker{
  text-decoration:none !important;
  border-bottom:0 !important;
}

/* v40 centered background logo watermark / slow parallax layer. */
body{
  position:relative;
  overflow-x:hidden;
}

.site-watermark{
  position:fixed;
  left:50%;
  top:50%;
  width:min(104vw, 1320px);
  aspect-ratio:1 / 1;
  background-image:url("../images/tender-style-watermark-hires.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  opacity:.50;
  pointer-events:none;
  z-index:-1;
  will-change:transform, opacity;
}

.topbar,
main,
.footer{
  position:relative;
  z-index:1;
}

@media(max-width:760px){
  .site-watermark{
    width:132vw;
    opacity:.36;
  }
}

/* v41 neon watermark refinement. */
.site-watermark{
  top:74vh !important;
  background-image:url("../images/tender-style-watermark-neon-pink.png") !important;
  opacity:.78;
  filter:drop-shadow(0 0 16px rgba(255,67,190,.42)) drop-shadow(0 0 34px rgba(255,67,190,.20));
}

@media(max-width:760px){
  .site-watermark{
    top:70vh !important;
    opacity:.58;
  }
}

/* v43 palette refinement: orange accents restored; main text changed to sky blue. */
:root{
  --orange:#f39800;
  --orange2:#f39800;
  --accent:#f39800;
  --accent2:#f39800;
  --white:#79dcff;
  --soft:#b8ddec;
  --muted:#b8ddec;
  --line:rgba(243,152,0,.30);
  --line2:rgba(255,228,236,.12);
}

body,
.nav-links a,
.copy,
.project-card p,
.service-card p,
.feature-copy p,
.about-copy p,
.production-mini p,
.contact-line,
.event-title,
.event-title a,
summary{
  color:var(--white) !important;
}

h1,
h2,
h3,
.page-title,
.hero-title,
.section-title,
.service-card h3,
.project-card h3,
.feature-copy h2,
.about-copy h2,
.production-mini h3,
.past-year h3,
.kicker,
.copy strong,
.project-card strong,
.nav-brand,
.event-date,
.event-place,
.nav-cta,
.button,
.filter-btn{
  color:var(--orange) !important;
}

.nav-cta,
.button,
.filter-btn{
  border-color:var(--orange) !important;
}

.nav-cta:hover,
.button:hover,
.button.filled,
.filter-btn.active,
.filter-btn:hover{
  background:var(--orange) !important;
  color:#000000 !important;
  border-color:var(--orange) !important;
}

h2,
summary,
.event-title a{
  text-decoration-color:var(--orange) !important;
}

.event-meta,
summary:after,
.footer,
.footer a,
.footer-icons,
.small-note,
.media-embed{
  color:var(--muted) !important;
}

.input,
textarea,
select{
  color:var(--white) !important;
}

.input:focus,
textarea:focus,
select:focus{
  border-color:var(--orange) !important;
  outline:1px solid rgba(243,152,0,.45) !important;
}

/* v45 footer link refinement: email + Linktree are sky blue at rest, neon pink on hover. */
.footer a[href^="mailto:"],
.footer a[href*="linktr.ee"]{
  color:var(--white) !important;
  text-decoration-color:var(--white) !important;
  text-shadow:none;
}

/* v44 footer hover refinement: email + Linktree glow neon pink on hover. */
.footer a[href^="mailto:"]:hover,
.footer a[href*="linktr.ee"]:hover{
  color:#FF43BE !important;
  text-decoration-color:#FF43BE !important;
  text-shadow:
    0 0 6px rgba(255,67,190,.88),
    0 0 16px rgba(255,67,190,.62),
    0 0 34px rgba(255,67,190,.36);
}

/* v47 homepage production card refinement: give the lower dark area enough room for the buttons. */
.project-card{
  padding-bottom:34px !important;
}

.project-card .button{
  margin-bottom:0 !important;
}

/* v48 calendar section spacing: give the Full Calendar button breathing room above Past Events. */
.details-block .button-row{
  margin-top:28px !important;
  margin-bottom:36px !important;
}

.details-block .button-row .button{
  margin-bottom:0 !important;
}

/* v49 footer social icons: real Instagram and YouTube links. */
.footer-icons{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  margin-top:22px;
}

.social-icon{
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--white) !important;
  text-decoration:none !important;
}

.social-icon svg{
  width:24px;
  height:24px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.social-icon[href*="youtube"] svg{
  fill:none;
}

.social-icon[href*="youtube"] .youtube-play{
  fill:currentColor;
  stroke:none;
}

.social-icon:hover{
  color:#FF43BE !important;
  filter:
    drop-shadow(0 0 6px rgba(255,67,190,.88))
    drop-shadow(0 0 16px rgba(255,67,190,.58))
    drop-shadow(0 0 30px rgba(255,67,190,.32));
}

/* v51 footer social icon refinement: Instagram and YouTube are sky blue at rest. */
.footer .social-icon{
  color:var(--white) !important;
  text-decoration:none !important;
  text-shadow:none;
}

.footer .social-icon:hover{
  color:#FF43BE !important;
}

/* v54 Ben Meyer Signature Productions refinement. */
.production-mini{
  grid-template-columns:160px 1fr !important;
  align-items:center !important;
  gap:24px !important;
  padding:28px 24px !important;
}

.production-mini:last-child{
  border-bottom:1px solid var(--line) !important;
}

.production-mini img{
  width:148px !important;
  height:148px !important;
  max-width:148px !important;
  object-fit:contain !important;
  justify-self:center !important;
  align-self:center !important;
  margin:0 auto !important;
}

@media(max-width:760px){
  .production-mini{
    grid-template-columns:1fr !important;
    text-align:center !important;
  }

  .production-mini img{
    width:118px !important;
    height:118px !important;
    max-width:118px !important;
  }
}

/* v55 homepage intro animation.
   Black screen -> main logo fades in -> neon emblem fades/rises in -> page content fades in. */
body.intro-sequence{
  background:#000;
}

body.intro-sequence .main-logo{
  opacity:0;
  transform:translateY(6px) scale(.992);
  animation:tspLogoIntro 5.70s cubic-bezier(.3,.5,.4,1) .08s forwards;
}

body.intro-sequence .site-watermark{
  opacity:0;
  transform:translate3d(-50%, calc(-50% + 58px), 0);
  animation:none;
}

body.intro-sequence .topbar,
body.intro-sequence main.site > section:not(.logo-hero),
body.intro-sequence .footer{
  opacity:0;
  transform:translateY(8px);
  animation:tspContentIntro 4.90s cubic-bezier(.3,.5,.4,1) 1.65s forwards;
}

@keyframes tspLogoIntro{
  from{
    opacity:0;
    transform:translateY(6px) scale(.992);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

@keyframes tspWatermarkIntro{
  from{
    opacity:0;
    transform:translate3d(-50%, calc(-50% + 58px), 0);
  }
  to{
    opacity:.78;
    transform:translate3d(-50%, -50%, 0);
  }
}

@keyframes tspContentIntro{
  from{
    opacity:0;
    transform:translateY(8px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media(prefers-reduced-motion:reduce){
  body.intro-sequence .main-logo,
  body.intro-sequence .site-watermark,
  body.intro-sequence .topbar,
  body.intro-sequence main.site > section:not(.logo-hero),
  body.intro-sequence .footer{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
  }
}

/* v57 intro/scroll fix: release the neon emblem animation after intro so scroll fading works. */
body.intro-sequence.intro-complete .site-watermark{
  animation:none !important;
}


/* v92 practical navigation system:
   desktop dropdowns + mobile slide-out menu. */
.topbar{
  z-index:40 !important;
}

.nav{
  min-height:64px;
}

.nav-panel{
  display:flex;
  align-items:center;
  margin-left:auto;
}

.nav-panel-header,
.nav-toggle,
.nav-backdrop{
  display:none;
}

.nav-links{
  flex-wrap:nowrap;
  gap:8px;
}

.nav-links > a,
.nav-dropdown-toggle{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:8px 10px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--white) !important;
  font:inherit;
  font-size:14px;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  opacity:.96;
}

.nav-dropdown-toggle:hover,
.nav-dropdown-toggle:focus-visible,
.nav-links > a:hover,
.nav-links > a:focus-visible,
.nav-links > a[aria-current="page"],
.nav-dropdown.active-parent > .nav-dropdown-toggle{
  color:var(--orange) !important;
  background:rgba(243,152,0,.08);
  text-decoration:none;
  outline:none;
}

.nav-dropdown{
  position:relative;
}

.nav-caret{
  display:inline-block;
  font-size:15px;
  transform:translateY(-1px);
  transition:transform .2s ease;
}

.nav-dropdown.is-open .nav-caret,
.nav-dropdown.hover-open .nav-caret{
  transform:rotate(180deg) translateY(1px);
}

.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  min-width:238px;
  padding:9px;
  border:1px solid rgba(243,152,0,.30);
  border-radius:14px;
  background:rgba(6,6,6,.98);
  box-shadow:0 22px 60px rgba(0,0,0,.62);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.nav-dropdown-menu a{
  display:block;
  padding:10px 11px;
  border-radius:9px;
  color:var(--white) !important;
  font-size:14px;
  line-height:1.25;
  text-decoration:none;
}

.nav-dropdown-menu a:hover,
.nav-dropdown-menu a:focus-visible,
.nav-dropdown-menu a[aria-current="page"]{
  color:var(--orange) !important;
  background:rgba(243,152,0,.10);
  outline:none;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu,
.nav-dropdown.is-open .nav-dropdown-menu,
.nav-dropdown.hover-open .nav-dropdown-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}

.nav-cta{
  min-height:38px !important;
  padding:7px 13px !important;
  margin-left:2px;
  border-radius:999px !important;
}

@media(max-width:880px){
  .nav{
    min-height:62px;
    padding:0 !important;
    flex-direction:row !important;
    align-items:center !important;
  }

  .nav-brand{
    max-width:calc(100% - 64px);
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .nav-toggle{
    width:44px;
    height:44px;
    margin-left:auto;
    padding:10px;
    border:1px solid rgba(243,152,0,.34);
    border-radius:12px;
    background:rgba(0,0,0,.72);
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    cursor:pointer;
  }

  .nav-toggle span{
    width:100%;
    height:2px;
    border-radius:999px;
    background:var(--orange);
    transition:transform .2s ease, opacity .2s ease;
  }

  body.nav-open{
    overflow:hidden;
  }

  body.nav-open .nav-toggle span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
  }

  body.nav-open .nav-toggle span:nth-child(2){
    opacity:0;
  }

  body.nav-open .nav-toggle span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
  }

  .nav-backdrop{
    position:fixed;
    inset:0;
    z-index:48;
    display:block;
    background:rgba(0,0,0,.66);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s ease, visibility .22s ease;
  }

  .nav-panel{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    z-index:49;
    width:min(88vw, 390px);
    display:block;
    padding:18px 18px 32px;
    background:rgba(5,5,5,.985);
    border-left:1px solid rgba(243,152,0,.30);
    box-shadow:-26px 0 70px rgba(0,0,0,.66);
    overflow-y:auto;
    transform:translateX(105%);
    transition:transform .26s cubic-bezier(.22,.8,.25,1);
  }

  body.nav-open .nav-backdrop{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  body.nav-open .nav-panel{
    transform:translateX(0);
  }

  .nav-panel-header{
    min-height:48px;
    margin-bottom:14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:var(--orange);
    font-weight:800;
    letter-spacing:.03em;
  }

  .nav-close{
    width:42px;
    height:42px;
    border:1px solid rgba(243,152,0,.30);
    border-radius:12px;
    background:transparent;
    color:var(--orange);
    font-size:30px;
    line-height:1;
    cursor:pointer;
  }

  .nav-links{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
  }

  .nav-links > a,
  .nav-dropdown-toggle{
    width:100%;
    min-height:48px;
    justify-content:space-between;
    padding:11px 12px;
    border-radius:10px;
    font-size:16px;
    text-align:left;
  }

  .nav-dropdown{
    width:100%;
  }

  .nav-dropdown-menu{
    position:static;
    min-width:0;
    max-height:0;
    padding:0 0 0 13px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    overflow:hidden;
    transform:none;
    transition:max-height .28s ease, padding .28s ease;
  }

  .nav-dropdown:hover .nav-dropdown-menu,
  .nav-dropdown:focus-within .nav-dropdown-menu{
    max-height:0;
    padding-top:0;
    padding-bottom:0;
  }

  .nav-dropdown.is-open .nav-dropdown-menu{
    max-height:340px;
    padding-top:4px;
    padding-bottom:8px;
  }

  .nav-dropdown-menu a{
    padding:10px 12px;
    color:var(--soft) !important;
    font-size:15px;
  }

  .nav-cta{
    margin-top:8px;
    margin-left:0;
    justify-content:center !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .nav-panel,
  .nav-backdrop,
  .nav-dropdown-menu,
  .nav-caret,
  .nav-toggle span{
    transition:none !important;
  }
}


/* v106 streamlined site structure */
.homepage-lead-band{
  width:100%;
}
.homepage-lead-photo{
  border:0;
  box-sizing:border-box;
  object-position:center;
}
.homepage-lead-copy p{
  max-width:34ch;
  margin-left:auto;
  margin-right:auto;
}
.compact-cta{
  text-align:center;
}
.project-card{
  display:flex;
  flex-direction:column;
}
.project-card .button{
  margin-top:auto;
  align-self:center;
}
.de-dream-wide{
  max-width:1120px;
}
.de-dream-wide img{
  max-height:none;
  aspect-ratio:auto;
  object-fit:contain;
}
.about-copy .button-row{
  justify-content:flex-start;
}
@media(max-width:880px){
  .about-copy .button-row{
    justify-content:center;
  }
}


/* v108 homepage lead image + What We Do column */
.homepage-lead-band{
  display:grid;
  grid-template-columns:minmax(0,1.24fr) minmax(360px,.76fr);
  gap:28px;
  align-items:stretch;
  width:100%;
  min-height:760px;
}
.homepage-lead-photo-wrap{
  border:1px solid var(--line);
  background:#000;
  box-shadow:0 22px 70px rgba(0,0,0,.24);
  min-width:0;
}
.homepage-lead-photo{
  display:block;
  width:100%;
  height:100%;
  min-height:760px;
  object-fit:cover;
  object-position:center;
}
.homepage-services-panel{
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  background:linear-gradient(145deg, var(--card-bg), var(--card-bg2));
  box-shadow:0 22px 70px rgba(0,0,0,.24);
  padding:28px 26px;
  min-width:0;
}
.homepage-services-panel > h2{
  margin-bottom:10px;
  text-align:left;
}
.homepage-service-list{
  display:flex;
  flex-direction:column;
  flex:1;
}
.homepage-service-item{
  padding:18px 0;
  border-top:1px solid var(--line);
}
.homepage-service-item:first-child{
  border-top:0;
}
.homepage-service-item h3{
  margin-bottom:7px;
  font-size:21px;
  text-align:left;
}
.homepage-service-item p{
  margin:0;
  font-size:16px;
  line-height:1.52;
  text-align:left;
}
.homepage-services-panel .button-row{
  justify-content:flex-start;
  margin-top:18px;
}
@media(max-width:880px){
  .homepage-lead-band{
    grid-template-columns:1fr;
  }
  .homepage-lead-band{
    min-height:0;
  }
  .homepage-lead-photo{
    height:auto;
    min-height:0;
  }
  .homepage-services-panel > h2,
  .homepage-service-item h3,
  .homepage-service-item p{
    text-align:center;
  }
  .homepage-services-panel .button-row{
    justify-content:center;
  }
}


/* v111 homepage tagline and revised What We Do copy */
.homepage-tagline-section{
  padding-top:10px;
  padding-bottom:46px;
  text-align:center;
}
.homepage-tagline{
  margin:0;
  color:var(--orange);
  font-size:clamp(30px, 4.7vw, 62px);
  line-height:1.08;
  font-weight:800;
  letter-spacing:.01em;
}
.homepage-services-intro{
  padding:4px 0 16px;
}
.homepage-services-intro p{
  margin:0 0 10px;
  color:var(--white);
  font-size:18px;
  line-height:1.5;
  text-align:left;
}
.homepage-services-intro p:last-child{
  margin-bottom:0;
}
.homepage-service-item{
  padding:14px 0;
}
.homepage-service-item h3{
  font-size:20px;
}
.homepage-service-item p{
  font-size:18px;
  line-height:1.5;
}
.homepage-services-panel .button-row{
  margin-top:14px;
}
@media(max-width:880px){
  .homepage-tagline-section{
    padding-bottom:34px;
  }
  .homepage-services-intro p{
    text-align:center;
  }
}


/* v114 elegant editorial heading typography */
h1,
h2,
h3,
.page-title,
.hero-title,
.section-title,
.service-card h3,
.project-card h3,
.feature-copy h2,
.about-copy h2,
.production-mini h3,
.past-year h3,
.homepage-tagline,
.nav-brand{
  font-family:Baskerville, "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
}

h1,
.page-title,
.hero-title{
  font-weight:600;
  letter-spacing:-.012em;
}

h2,
.section-title,
.feature-copy h2,
.about-copy h2,
.past-year h3{
  font-weight:600;
  letter-spacing:-.006em;
}

h3,
.service-card h3,
.project-card h3,
.production-mini h3{
  font-weight:600;
  letter-spacing:0;
}

.homepage-tagline{
  font-weight:400;
  letter-spacing:.018em;
}

.nav-brand{
  font-weight:600;
  letter-spacing:.006em;
}


/* v115 modern, elegant heading typography */
h1,
h2,
h3,
.page-title,
.hero-title,
.section-title,
.service-card h3,
.project-card h3,
.feature-copy h2,
.about-copy h2,
.production-mini h3,
.past-year h3,
.homepage-tagline,
.nav-brand{
  font-family:"Avenir Next", Avenir, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif;
  font-kerning:normal;
  text-rendering:optimizeLegibility;
}

h1,
.page-title,
.hero-title{
  font-weight:500;
  letter-spacing:.035em;
}

h2,
.section-title,
.feature-copy h2,
.about-copy h2,
.past-year h3{
  font-weight:500;
  letter-spacing:.025em;
}

h3,
.service-card h3,
.project-card h3,
.production-mini h3{
  font-weight:500;
  letter-spacing:.018em;
}

.homepage-tagline{
  font-weight:400;
  letter-spacing:.065em;
}

.nav-brand{
  font-weight:500;
  letter-spacing:.035em;
}


/* v116 center the Signature Productions heading vertically between dividers */
.signature-productions-section > h2{
  position:relative;
  top:-10px;
}
@media(max-width:880px){
  .signature-productions-section > h2{
    top:-6px;
  }
}


/* v117 keep the divider beneath each Signature Productions logo black */
.signature-productions-section .project-logo{
  display:block;
  margin-bottom:0;
  padding-bottom:17px;
  background:#000;
}



/* v120 homepage finishing adjustments */
.homepage-tagline{
  font-size:clamp(26px, 3.4vw, 48px);
  white-space:nowrap;
}
@media(max-width:700px){
  .homepage-tagline{
    font-size:clamp(24px, 7vw, 34px);
    white-space:normal;
  }
}


/* v121 navigation and booking CTA refinements */
.nav-links > a.nav-cta:hover,
.nav-links > a.nav-cta:focus-visible{
  background:var(--orange) !important;
  color:#000 !important;
  border-color:var(--orange) !important;
}


/* v122 desktop dropdown hover grace period */
@media(min-width:881px){
  .nav-dropdown.hover-open .nav-dropdown-menu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }
}


/* v123 solid Signature Productions caret and nested past-year accordions */
.nav-caret{
  width:0;
  height:0;
  font-size:0;
  line-height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:6px solid currentColor;
  transform:translateY(1px);
  transition:transform .2s ease;
}

.nav-dropdown.is-open .nav-caret,
.nav-dropdown.hover-open .nav-caret{
  transform:translateY(1px) rotate(180deg);
}

[data-past-events]{
  max-width:900px;
  margin:0 auto 28px;
  padding:0 18px 18px;
}

.past-year{
  max-width:none;
  margin:0;
  border:0 !important;
  border-top:1px solid var(--line2) !important;
  background:transparent !important;
  box-shadow:none !important;
}

.past-year:first-child{
  border-top:0 !important;
}

.past-year > .past-year-summary{
  padding:16px 42px 16px 0;
  text-align:left;
  color:var(--orange) !important;
  font-family:Arial, Helvetica, sans-serif;
  font-size:24px;
  font-weight:800;
  line-height:1.2;
  letter-spacing:0;
  text-decoration:none !important;
}

.past-year > .past-year-summary:after{
  right:10px;
  border-left-width:6px;
  border-right-width:6px;
  border-top-width:9px;
}

.past-year[open] > .past-year-summary:after{
  border-top:0;
  border-bottom:9px solid currentColor;
}

.past-year > .past-event-list{
  padding-bottom:14px;
}

.past-year > .past-event-list .event-row:last-child{
  border-bottom:0;
}

@media(max-width:880px){
  [data-past-events]{
    padding-left:14px;
    padding-right:14px;
  }

  .past-year > .past-year-summary{
    padding-right:38px;
  }
}


/* v124 keep past-event year labels centered */
.past-year > .past-year-summary{
  padding-left:42px;
  padding-right:42px;
  text-align:center;
}

@media(max-width:880px){
  .past-year > .past-year-summary{
    padding-left:38px;
    padding-right:38px;
  }
}


/* v127 Djingo / Wax Attacks page title and full-width lower image */
.djingo-bottom-image{
  width:100%;
  max-width:none;
}

.djingo-bottom-image img{
  display:block;
  width:100%;
  max-height:none;
  height:auto;
  object-fit:contain;
}


/* v128 full-width lower Djingo image with the earlier cropped framing */
.djingo-bottom-image{
  width:100%;
  max-width:none;
  aspect-ratio:49 / 36;
  overflow:hidden;
}

.djingo-bottom-image img{
  display:block;
  width:100%;
  height:100%;
  max-height:none;
  object-fit:cover;
  object-position:center;
}


/* v129 expanded Djingo game explanation */
.photo-band .feature-copy p{
  margin:0 0 18px;
}

.photo-band .feature-copy p:last-of-type{
  margin-bottom:24px;
}


/* v130 Services page What We Do and Hotel Leo photograph */
.services-photo-section{
  padding-top:42px;
  padding-bottom:42px;
}

.services-feature-photo{
  display:block;
  width:100%;
  height:auto;
  border:1px solid var(--line);
  box-sizing:border-box;
}


/* v131 Smile Aisle description, signature line, and yacht jazz section */
.smile-aisle-tagline{
  max-width:900px;
  margin:-4px auto 30px;
  color:var(--orange);
  font-family:"Avenir Next", Avenir, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif;
  font-size:clamp(24px, 3.2vw, 42px);
  font-weight:400;
  line-height:1.2;
  letter-spacing:.055em;
  text-align:center;
}

.smile-yacht-jazz-section .copy{
  max-width:900px;
}

@media(max-width:880px){
  .smile-aisle-tagline{
    margin-bottom:24px;
    font-size:clamp(22px, 7vw, 32px);
    letter-spacing:.035em;
  }
}


/* v132 transparent Smile Aisle logo header and refined signature line */
.visually-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0, 0, 0, 0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.smile-aisle-page-logo{
  display:block;
  width:min(360px, 76vw);
  height:auto;
  margin:0 auto 24px;
}

.smile-aisle-tagline{
  max-width:none;
  margin:0 auto 28px;
  padding:0 8px;
  font-size:clamp(21px, 2.25vw, 27px);
  line-height:1.25;
  letter-spacing:.045em;
  white-space:nowrap;
}

@media(max-width:760px){
  .smile-aisle-page-logo{
    width:min(300px, 78vw);
    margin-bottom:20px;
  }

  .smile-aisle-tagline{
    font-size:21px;
    letter-spacing:.025em;
    white-space:normal;
  }
}


/* v134 supplied Smile Aisle wordmark-only header */
.smile-aisle-page-logo{
  width:min(720px, 88vw);
  margin-bottom:26px;
}

@media(max-width:760px){
  .smile-aisle-page-logo{
    width:min(620px, 92vw);
  }
}


/* v135 Smile Aisle photo refresh */
.smile-feature-image{
  width:100%;
  max-width:none;
  margin:0;
}
.smile-feature-image img{
  display:block;
  width:100%;
  max-height:none;
  aspect-ratio:4 / 3;
  object-fit:cover;
  object-position:center;
}
.smile-gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  grid-template-rows:330px 330px;
  gap:28px;
}
.smile-gallery-grid img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.smile-gallery-wide{grid-column:span 2;}
.smile-gallery-patio{object-position:center 47%;}
.smile-gallery-artwall{object-position:center 48%;}
.smile-gallery-orange{object-position:center 48%;}
.smile-gallery-waterfront{object-position:center 52%;}
.smile-gallery-blue{object-position:center 38%;}
.smile-gallery-rooftop{object-position:center 55%;}

@media(max-width:880px){
  .smile-gallery-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:repeat(3, 280px);
    gap:22px;
  }
  .smile-gallery-wide{grid-column:span 1;}
}
@media(max-width:620px){
  .smile-gallery-grid{
    grid-template-columns:1fr;
    grid-template-rows:none;
  }
  .smile-gallery-grid img{
    height:auto;
    aspect-ratio:4 / 3;
  }
}


/* v136 swap Smile Aisle rooftop images */
.smile-feature-image .smile-hero-rooftop-night{
  object-position:center 55%;
}

.smile-gallery-rooftop{
  object-position:center 50%;
}


/* v137 lower the crop of the swapped rooftop-sunset collage image */
.smile-gallery-rooftop{
  object-position:center 72%;
}


/* v141 Smile Aisle video-led page sequence */
.smile-logo-hero{
  padding-bottom:28px;
}

.smile-logo-hero .smile-aisle-page-logo{
  margin-bottom:0;
}

.smile-video-section{
  padding-top:18px;
  padding-bottom:50px;
}

.smile-video-frame{
  width:min(430px, 88vw);
  margin:0 auto;
  border:1px solid var(--line);
  background:#000;
  overflow:hidden;
}

.smile-video-frame video{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:9 / 16;
  background:#000;
}

.smile-intro-section{
  padding-top:24px;
  text-align:center;
}

.smile-intro-section .smile-aisle-tagline{
  margin-bottom:28px;
}

.smile-intro-section .copy{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}

.smile-intro-section .button-row{
  justify-content:center;
}

.smile-yacht-jazz-section{
  padding-top:50px;
  padding-bottom:50px;
}

@media(max-width:760px){
  .smile-logo-hero{
    padding-bottom:18px;
  }

  .smile-video-section{
    padding-top:10px;
    padding-bottom:38px;
  }

  .smile-video-frame{
    width:min(430px, 92vw);
  }

  .smile-intro-section{
    padding-top:18px;
  }
}


/* v143 Signature Production booking labels and Smile Aisle video divider */
.smile-video-section{
  border-top:0;
}


/* v144 centered Djingo booking button and featured audio */
.djingo-book-row{
  justify-content:center;
}

.djingo-audio-player{
  width:100%;
  max-width:1040px;
  margin:0 auto;
}

.djingo-audio-player h2{
  margin-bottom:24px;
}

.djingo-audio-player audio{
  display:block;
  width:100%;
}


/* v145 Smile Aisle custom audio player */
.smile-audio-section{
  padding-top:38px;
  padding-bottom:38px;
}

.smile-audio-player{
  position:relative;
  width:100%;
  max-width:1040px;
  margin:0 auto;
  padding:22px 24px 24px;
  background:#000;
  border:1px solid var(--line);
}

.smile-audio-title{
  margin:0 0 18px;
  color:var(--orange);
  font-size:clamp(20px, 2.3vw, 26px);
  font-weight:500;
  letter-spacing:.025em;
  text-decoration:none;
}

.smile-audio-player audio{
  display:none;
}

.smile-audio-controls{
  display:grid;
  grid-template-columns:auto auto minmax(150px, 1fr) auto auto minmax(72px, 118px) auto;
  align-items:center;
  gap:13px;
  width:100%;
}

.smile-audio-icon{
  display:inline-grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--orange);
  font:inherit;
  cursor:pointer;
}

.smile-audio-icon:hover,
.smile-audio-icon:focus-visible{
  color:var(--orange2);
  outline:1px solid var(--orange);
  outline-offset:2px;
}

.smile-audio-play{
  font-size:22px;
}

.smile-audio-volume-button svg{
  width:24px;
  height:24px;
  fill:currentColor;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.smile-audio-time{
  min-width:40px;
  color:#79dcff;
  font-size:14px;
  font-variant-numeric:tabular-nums;
  text-align:center;
}

.smile-audio-progress,
.smile-audio-volume{
  width:100%;
  height:5px;
  margin:0;
  border-radius:999px;
  appearance:none;
  -webkit-appearance:none;
  background:linear-gradient(
    to right,
    #FF43BE 0%,
    #FF43BE var(--audio-progress, 0%),
    #303030 var(--audio-progress, 0%),
    #303030 100%
  );
  cursor:pointer;
}

.smile-audio-volume{
  --audio-progress:100%;
  background:linear-gradient(
    to right,
    var(--orange) 0%,
    var(--orange) var(--audio-progress, 100%),
    #303030 var(--audio-progress, 100%),
    #303030 100%
  );
}

.smile-audio-progress::-webkit-slider-thumb,
.smile-audio-volume::-webkit-slider-thumb{
  width:14px;
  height:14px;
  border:0;
  border-radius:50%;
  appearance:none;
  -webkit-appearance:none;
  background:var(--orange);
}

.smile-audio-progress::-moz-range-thumb,
.smile-audio-volume::-moz-range-thumb{
  width:14px;
  height:14px;
  border:0;
  border-radius:50%;
  background:var(--orange);
}

.smile-audio-menu-wrap{
  position:relative;
}

.smile-audio-menu-button{
  font-size:28px;
  line-height:1;
}

.smile-audio-menu{
  position:absolute;
  right:0;
  bottom:46px;
  z-index:4;
  min-width:150px;
  padding:8px;
  border:1px solid var(--line);
  background:#050505;
}

.smile-audio-menu a{
  display:block;
  padding:8px 10px;
  color:#79dcff;
  text-decoration:none;
  white-space:nowrap;
}

.smile-audio-menu a:hover,
.smile-audio-menu a:focus-visible{
  color:var(--orange);
  background:#111;
}

@media(max-width:720px){
  .smile-audio-player{
    padding:20px 16px 22px;
  }

  .smile-audio-controls{
    grid-template-columns:auto 1fr auto;
    gap:12px;
  }

  .smile-audio-current{
    grid-column:1;
    grid-row:2;
  }

  .smile-audio-progress{
    grid-column:2;
    grid-row:2;
  }

  .smile-audio-duration{
    grid-column:3;
    grid-row:2;
  }

  .smile-audio-volume-button{
    grid-column:1;
    grid-row:3;
  }

  .smile-audio-volume{
    grid-column:2;
    grid-row:3;
  }

  .smile-audio-menu-wrap{
    grid-column:3;
    grid-row:3;
    justify-self:end;
  }
}


/* v146 amber audio progress and traditional pause icon */
.smile-audio-progress{
  background:linear-gradient(
    to right,
    var(--orange) 0%,
    var(--orange) var(--audio-progress, 0%),
    #303030 var(--audio-progress, 0%),
    #303030 100%
  );
}

.smile-audio-play{
  position:relative;
}

.smile-audio-play-icon{
  display:block;
  line-height:1;
}

.smile-audio-pause-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:18px;
  height:22px;
}

.smile-audio-pause-icon span{
  display:block;
  width:4px;
  height:20px;
  background:currentColor;
  border-radius:1px;
}


/* v147 ensure only one audio transport icon is visible at a time */
.smile-audio-play-icon[hidden],
.smile-audio-pause-icon[hidden]{
  display:none !important;
}


/* v148 remove the Past Events card's bottom color shift */
.details-block,
.details-block > details{
  background:var(--card-bg) !important;
}


/* v149 Past Events background and nested caret correction */
.details-block,
.details-block > details,
.details-block > details[open],
.details-block [data-past-events]{
  background:#0a0a0a !important;
  background-image:none !important;
  box-shadow:none !important;
}

/* Keep top-level accordion arrows consistent: closed down, open up. */
.details-block > details > summary:after{
  border-top:10px solid currentColor !important;
  border-bottom:0 !important;
  transform:translateY(-35%) !important;
}

.details-block > details[open] > summary:after{
  border-top:0 !important;
  border-bottom:10px solid currentColor !important;
  transform:translateY(-65%) !important;
}

/* Prevent the open parent accordion from forcing every year arrow upward. */
.past-year > .past-year-summary:after{
  border-top:9px solid currentColor !important;
  border-bottom:0 !important;
  transform:translateY(-35%) !important;
}

.past-year[open] > .past-year-summary:after{
  border-top:0 !important;
  border-bottom:9px solid currentColor !important;
  transform:translateY(-65%) !important;
}


/* v150 keep one consistent border around the entire events card */
.details-block{
  border:1px solid var(--line) !important;
}

.details-block > details{
  border:0 !important;
}

.details-block > details + details{
  border-top:1px solid var(--line) !important;
}


/* v151 De Dream page-specific background emblem */
body.de-dream-page .site-watermark{
  background-image:url("../images/de-dream-watermark-neon-pink.png") !important;
}


/* v152 standardized Signature Production background emblems */
body.de-dream-page .site-watermark{
  background-image:url("../images/watermark-de-dream-neon-pink.png") !important;
}

body.djingo-page .site-watermark{
  background-image:url("../images/watermark-wax-attacks-neon-pink.png") !important;
}


/* v153 watermark glow increase:
   Boost the neon bloom so all emblems match the stronger Smile Aisle reference feel. */
.site-watermark{
  filter:
    drop-shadow(0 0 12px rgba(255,67,190,.72))
    drop-shadow(0 0 30px rgba(255,67,190,.50))
    drop-shadow(0 0 62px rgba(255,67,190,.34))
    drop-shadow(0 0 110px rgba(255,67,190,.18)) !important;
}


/* v154 De Dream page layout and supplied photography */
.de-dream-logo-hero{
  padding-bottom:28px;
}

.de-dream-page-logo{
  display:block;
  width:min(720px, 88vw);
  height:auto;
  margin:0 auto;
}

.de-dream-video-section{
  padding-top:18px;
  padding-bottom:50px;
  border-top:0;
}

.de-dream-video-placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:min(960px, 92vw);
  aspect-ratio:16 / 9;
  margin:0 auto;
  border:1px solid var(--line);
  background:#000;
  color:var(--white);
  text-align:center;
}

.de-dream-video-placeholder p{
  margin:20px 18px 0;
  color:var(--white);
  font-size:18px;
  letter-spacing:.025em;
}

.de-dream-placeholder-play{
  width:0;
  height:0;
  border-top:20px solid transparent;
  border-bottom:20px solid transparent;
  border-left:32px solid var(--orange);
  filter:drop-shadow(0 0 12px rgba(243,152,0,.28));
}

.de-dream-intro-section{
  padding-top:24px;
  text-align:center;
}

.de-dream-intro-section .copy{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}

.de-dream-intro-section .button-row{
  justify-content:center;
}

.de-dream-feature-image{
  width:100%;
  max-width:none;
  margin:0;
}

.de-dream-feature-image img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  object-position:center 55%;
}

.de-dream-gallery-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:28px;
}

.de-dream-gallery-grid img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
}

.de-dream-gallery-closeup{
  object-position:center 38%;
}

.de-dream-gallery-eleven{
  object-position:center 48%;
}

.de-dream-gallery-stage{
  object-position:center 48%;
}

.de-dream-gallery-hotel{
  object-position:center 35%;
}

@media(max-width:760px){
  .de-dream-logo-hero{
    padding-bottom:18px;
  }

  .de-dream-page-logo{
    width:min(620px, 92vw);
  }

  .de-dream-video-section{
    padding-top:10px;
    padding-bottom:38px;
  }

  .de-dream-intro-section{
    padding-top:18px;
  }

  .de-dream-gallery-grid{
    grid-template-columns:1fr;
    gap:22px;
  }
}


/* v155 De Dream wide 16 Eleven feature photograph */
.de-dream-feature-image img{
  aspect-ratio:16 / 9;
  object-position:center;
}

.de-dream-gallery-rooftop{
  object-position:center 48%;
}


/* v156 De Dream photo framing refinements */
.de-dream-feature-image img{
  aspect-ratio:4 / 3;
  object-position:center;
}

/*
  Balanced collage:
  - Ben and Sage retain their portrait composition on the tall left side.
  - The stage photograph runs wide across the upper right.
  - The rooftop and Hotel Leo photographs remain tall below it.
*/
.de-dream-gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  grid-template-rows:220px 220px 220px;
  gap:28px;
}

.de-dream-gallery-grid img{
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:cover;
}

.de-dream-gallery-closeup{
  grid-column:1 / span 2;
  grid-row:1 / span 3;
  object-position:center;
}

.de-dream-gallery-stage{
  grid-column:3 / span 2;
  grid-row:1;
  object-position:center 48%;
}

.de-dream-gallery-rooftop{
  grid-column:3;
  grid-row:2 / span 2;
  object-position:center 48%;
}

.de-dream-gallery-hotel{
  grid-column:4;
  grid-row:2 / span 2;
  object-position:center 42%;
}

@media(max-width:900px){
  .de-dream-gallery-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:420px 280px 420px;
    gap:22px;
  }

  .de-dream-gallery-closeup{
    grid-column:1;
    grid-row:1 / span 2;
  }

  .de-dream-gallery-stage{
    grid-column:2;
    grid-row:1;
  }

  .de-dream-gallery-rooftop{
    grid-column:2;
    grid-row:2;
  }

  .de-dream-gallery-hotel{
    grid-column:1 / span 2;
    grid-row:3;
    object-position:center 35%;
  }
}

@media(max-width:620px){
  .de-dream-gallery-grid{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:none;
  }

  .de-dream-gallery-grid img{
    grid-column:auto;
    grid-row:auto;
    height:auto;
  }

  .de-dream-gallery-closeup,
  .de-dream-gallery-rooftop{
    aspect-ratio:3 / 4;
  }

  .de-dream-gallery-stage{
    aspect-ratio:16 / 9;
  }

  .de-dream-gallery-hotel{
    aspect-ratio:4 / 5;
    object-position:center 35%;
  }
}


/* v157 De Dream collage proportions */
.de-dream-gallery-grid{
  display:grid;
  grid-template-columns:minmax(300px, 1fr) minmax(0, 1.25fr);
  gap:28px;
  align-items:stretch;
}

.de-dream-gallery-grid > img,
.de-dream-gallery-right img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.de-dream-gallery-closeup{
  grid-column:1;
  grid-row:1;
  object-position:center;
}

.de-dream-gallery-right{
  grid-column:2;
  grid-row:1;
  display:grid;
  grid-template-rows:auto auto;
  gap:28px;
}

.de-dream-gallery-stage{
  aspect-ratio:3 / 2;
  object-position:center 55%;
}

.de-dream-gallery-rooftop{
  aspect-ratio:3 / 2;
  object-position:center 50%;
}

.de-dream-gallery-hotel{
  grid-column:1 / -1;
  grid-row:2;
  aspect-ratio:6 / 5;
  object-position:center 35%;
}

@media(max-width:900px){
  .de-dream-gallery-grid{
    grid-template-columns:minmax(240px, .9fr) minmax(0, 1.1fr);
    gap:22px;
  }

  .de-dream-gallery-right{
    gap:22px;
  }
}

@media(max-width:620px){
  .de-dream-gallery-grid{
    grid-template-columns:1fr;
    gap:22px;
  }

  .de-dream-gallery-closeup,
  .de-dream-gallery-right,
  .de-dream-gallery-hotel{
    grid-column:1;
    grid-row:auto;
  }

  .de-dream-gallery-closeup{
    height:auto !important;
    aspect-ratio:825 / 1260;
    object-fit:cover;
  }

  .de-dream-gallery-stage,
  .de-dream-gallery-rooftop{
    height:auto !important;
    aspect-ratio:3 / 2;
  }

  .de-dream-gallery-hotel{
    height:auto !important;
    aspect-ratio:4 / 5;
  }
}


/* v158 clean De Dream collage rebuild */
.de-dream-gallery-grid{
  display:grid !important;
  grid-template-columns:minmax(330px, .62fr) minmax(0, 1fr) !important;
  grid-template-rows:auto auto !important;
  gap:28px !important;
  align-items:start !important;
}

.de-dream-gallery-closeup{
  grid-column:1 !important;
  grid-row:1 !important;
  display:block !important;
  width:100% !important;
  height:738px !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
  object-position:center !important;
}

.de-dream-gallery-right{
  grid-column:2 !important;
  grid-row:1 !important;
  display:grid !important;
  grid-template-rows:355px 355px !important;
  gap:28px !important;
  min-width:0 !important;
  overflow:hidden !important;
}

.de-dream-gallery-right img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
}

.de-dream-gallery-stage{
  object-position:center 62% !important;
}

.de-dream-gallery-rooftop{
  object-position:center !important;
}

.de-dream-gallery-hotel{
  grid-column:1 / -1 !important;
  grid-row:2 !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center !important;
}

@media(max-width:900px){
  .de-dream-gallery-grid{
    grid-template-columns:minmax(290px, .72fr) minmax(0, 1fr) !important;
    gap:22px !important;
  }

  .de-dream-gallery-closeup{
    height:658px !important;
  }

  .de-dream-gallery-right{
    grid-template-rows:318px 318px !important;
    gap:22px !important;
  }
}

@media(max-width:680px){
  .de-dream-gallery-grid{
    display:flex !important;
    flex-direction:column !important;
    gap:22px !important;
  }

  .de-dream-gallery-closeup,
  .de-dream-gallery-stage,
  .de-dream-gallery-rooftop,
  .de-dream-gallery-hotel{
    width:100% !important;
    height:auto !important;
  }

  .de-dream-gallery-closeup{
    aspect-ratio:793 / 1260 !important;
  }

  .de-dream-gallery-right{
    display:flex !important;
    flex-direction:column !important;
    gap:22px !important;
    overflow:visible !important;
  }

  .de-dream-gallery-stage,
  .de-dream-gallery-rooftop{
    aspect-ratio:16 / 9 !important;
  }
}


/* v159 De Dream collage arranged from the supplied mock-up */
.de-dream-gallery-grid{
  display:grid !important;
  grid-template-columns:minmax(300px, .92fr) minmax(0, 1fr) minmax(150px, .46fr) !important;
  grid-template-rows:310px 320px !important;
  gap:24px !important;
  align-items:stretch !important;
  overflow:hidden !important;
}

.de-dream-gallery-grid img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  object-fit:cover !important;
  aspect-ratio:auto !important;
}

.de-dream-gallery-audience{
  grid-column:1 !important;
  grid-row:1 / span 2 !important;
  object-position:center 48% !important;
}

.de-dream-gallery-rooftop{
  grid-column:2 !important;
  grid-row:1 !important;
  object-position:center !important;
}

.de-dream-gallery-closeup{
  grid-column:3 !important;
  grid-row:1 !important;
  object-position:center !important;
}

.de-dream-gallery-stage{
  grid-column:2 / span 2 !important;
  grid-row:2 !important;
  object-position:center 64% !important;
}

@media(max-width:900px){
  .de-dream-gallery-grid{
    grid-template-columns:minmax(250px, .9fr) minmax(0, 1fr) minmax(130px, .45fr) !important;
    grid-template-rows:280px 290px !important;
    gap:20px !important;
  }
}

@media(max-width:680px){
  .de-dream-gallery-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    grid-template-rows:auto !important;
    gap:20px !important;
    overflow:visible !important;
  }

  .de-dream-gallery-grid img{
    height:auto !important;
  }

  .de-dream-gallery-audience{
    grid-column:1 !important;
    grid-row:1 / span 2 !important;
    aspect-ratio:57 / 100 !important;
  }

  .de-dream-gallery-rooftop{
    grid-column:2 !important;
    grid-row:1 !important;
    aspect-ratio:16 / 9 !important;
  }

  .de-dream-gallery-closeup{
    grid-column:2 !important;
    grid-row:2 !important;
    aspect-ratio:61 / 100 !important;
  }

  .de-dream-gallery-stage{
    grid-column:1 / span 2 !important;
    grid-row:3 !important;
    aspect-ratio:16 / 9 !important;
  }
}

@media(max-width:480px){
  .de-dream-gallery-grid{
    grid-template-columns:1fr !important;
  }

  .de-dream-gallery-audience,
  .de-dream-gallery-rooftop,
  .de-dream-gallery-closeup,
  .de-dream-gallery-stage{
    grid-column:1 !important;
    grid-row:auto !important;
  }

  .de-dream-gallery-audience{
    aspect-ratio:4 / 5 !important;
  }

  .de-dream-gallery-rooftop,
  .de-dream-gallery-stage{
    aspect-ratio:16 / 9 !important;
  }

  .de-dream-gallery-closeup{
    aspect-ratio:3 / 4 !important;
  }
}


/* v160 rooftop framing matched more closely to the supplied mock-up */
.de-dream-gallery-rooftop{
  object-position:center !important;
}


/* v161 lower the rooftop crop to retain legs and the front edge of the stage */
.de-dream-gallery-rooftop{
  object-position:center !important;
}


/* v162 exact supplied De Dream feature image */
.de-dream-feature-image{
  width:100%;
  max-width:none;
  margin:0;
}

.de-dream-feature-image img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
}


/* v163 embedded De Dream performance video */
.de-dream-video-embed{
  width:min(960px, 92vw);
  margin:0 auto;
  aspect-ratio:16 / 9;
  border:1px solid var(--line);
  background:#000;
  overflow:hidden;
}

.de-dream-video-embed iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#000;
}


/* v164 local De Dream performance video */
.de-dream-video-player{
  width:min(960px, 92vw);
  margin:0 auto;
  aspect-ratio:16 / 9;
  border:1px solid var(--line);
  background:#000;
  overflow:hidden;
}

.de-dream-video-player video{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#000;
}


/* v166 navigation, page media, production events, and footer refinements */
:root{
  --topbar-height:58px;
}

body{
  padding-top:var(--topbar-height) !important;
}

.topbar{
  position:fixed !important;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:1000 !important;
}

.nav-links > a.nav-cta{
  margin:0 !important;
  padding:8px 10px !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:var(--white) !important;
}

.nav-links > a.nav-cta:hover,
.nav-links > a.nav-cta:focus-visible{
  background:transparent !important;
  color:var(--orange) !important;
  border:0 !important;
}

.nav-brand{
  display:inline-block;
  transition:
    color .18s ease,
    text-shadow .22s ease,
    transform .18s ease,
    letter-spacing .22s ease;
}

.nav-brand:hover,
.nav-brand:focus-visible{
  color:var(--orange) !important;
  text-decoration:none !important;
  text-shadow:
    0 0 8px rgba(243,152,0,.88),
    0 0 22px rgba(243,152,0,.48),
    0 0 42px rgba(243,152,0,.24);
  transform:translateY(-1px);
  letter-spacing:.055em;
  outline:none;
}

.footer .contact-line a:hover,
.footer .contact-line a:focus-visible,
.footer .social-icon:hover,
.footer .social-icon:focus-visible{
  color:var(--orange) !important;
  text-decoration-color:var(--orange) !important;
  text-shadow:none !important;
  filter:none !important;
  outline:none;
}

.ben-video-player{
  width:min(960px, 92vw);
  margin:0 auto;
  aspect-ratio:16 / 9;
  border:1px solid var(--line);
  background:#000;
  overflow:hidden;
}

.ben-video-player video{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#000;
}

.wax-attacks-logo-hero{
  text-align:center;
}

.wax-attacks-page-logo{
  display:block;
  width:min(720px, 88vw);
  height:auto;
  margin:0 auto 28px;
}

.production-upcoming-section .event-list{
  margin-bottom:0;
}

.production-upcoming-section .event-empty{
  max-width:900px;
  margin:0 auto;
  padding:20px 0;
  color:var(--white);
  text-align:center;
  border-bottom:1px solid var(--line2);
}

@media(max-width:880px){
  .nav-links > a.nav-cta{
    width:100%;
    min-height:48px;
    padding:11px 12px !important;
    justify-content:space-between !important;
  }
}

@media(max-width:760px){
  .wax-attacks-page-logo{
    width:min(620px, 92vw);
    margin-bottom:22px;
  }
}


/* v167 footer phone and filtered-calendar refinements */
.footer .contact-phone{
  color:inherit;
  text-decoration:none;
  text-shadow:none;
  filter:none;
  cursor:default;
}


/* v168 Ben Meyer page logo and descriptor */
.ben-meyer-logo-hero{
  text-align:center;
  padding-bottom:36px;
}

.ben-meyer-page-logo{
  display:block;
  width:min(720px, 88vw);
  height:auto;
  margin:0 auto 26px;
}

.ben-meyer-logo-hero .copy{
  max-width:900px;
}

@media(max-width:760px){
  .ben-meyer-page-logo{
    width:min(620px, 92vw);
    margin-bottom:22px;
  }
}


/* v171 Contact, Ben Meyer CTA, and Services gallery refinements */
.contact-form-section{
  padding-top:18px;
}

.contact-form{
  max-width:760px;
}

.contact-submit-row{
  margin-top:8px;
  justify-content:center;
}

.contact-submit-button{
  width:auto;
  justify-self:center;
  background:transparent;
  color:var(--orange);
  cursor:pointer;
  font:inherit;
}

.contact-submit-button:hover,
.contact-submit-button:focus-visible{
  background:var(--orange);
  color:#000;
}

.about-copy .button-row{
  justify-content:center;
}

.services-gallery-section{
  margin-top:0;
  padding-top:42px;
  padding-bottom:52px;
}


/* v172 standardized Signature Production header-logo scale */
.smile-aisle-page-logo,
.de-dream-page-logo,
.wax-attacks-page-logo{
  display:block;
  width:min(720px, 88vw) !important;
  height:auto !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

@media(max-width:760px){
  .smile-aisle-page-logo,
  .de-dream-page-logo,
  .wax-attacks-page-logo{
    width:min(620px, 92vw) !important;
  }
}


/* v173 standardize Ben Meyer header-logo size with Signature Productions */
.ben-meyer-page-logo{
  display:block;
  width:min(720px, 88vw) !important;
  height:auto !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

@media(max-width:760px){
  .ben-meyer-page-logo{
    width:min(620px, 92vw) !important;
  }
}


/* v174 visibly reduce the Ben Meyer header logo */
.ben-meyer-page-logo{
  width:min(600px, 78vw) !important;
}

@media(max-width:760px){
  .ben-meyer-page-logo{
    width:min(520px, 84vw) !important;
  }
}


/* v175 preserve the shared source-canvas scale for all page header logos */
.smile-aisle-page-logo,
.de-dream-page-logo,
.wax-attacks-page-logo,
.ben-meyer-page-logo{
  display:block;
  width:min(720px, 88vw) !important;
  height:auto !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

@media(max-width:760px){
  .smile-aisle-page-logo,
  .de-dream-page-logo,
  .wax-attacks-page-logo,
  .ben-meyer-page-logo{
    width:min(620px, 92vw) !important;
  }
}


/* v177 tighten Ben Meyer logo-to-descriptor spacing only */
.ben-meyer-page-logo{
  margin-bottom:8px !important;
}

.ben-meyer-logo-hero{
  padding-bottom:54px !important;
}


/* v178 overlap the Ben Meyer descriptor into the logo's transparent lower canvas */
.ben-meyer-logo-hero .copy{
  position:relative;
  transform:translateY(-92px);
  margin-bottom:-92px;
}

@media(max-width:760px){
  .ben-meyer-logo-hero .copy{
    transform:translateY(-72px);
    margin-bottom:-72px;
  }
}


/* v180 gold glisten for the Tender Style Productions home link */
.nav-brand{
  position:relative;
  display:inline-block;
  transform-origin:center;
}

.nav-brand:hover,
.nav-brand:focus-visible{
  color:transparent !important;
  background-image:
    linear-gradient(
      110deg,
      var(--orange) 0%,
      var(--orange) 38%,
      #ffd36a 45%,
      #fff8d6 49%,
      #ffffff 50%,
      #fff0a8 52%,
      #f7b42b 57%,
      var(--orange) 64%,
      var(--orange) 100%
    );
  background-size:240% 100%;
  background-position:135% 0;
  -webkit-background-clip:text;
  background-clip:text;
  text-shadow:
    0 0 8px rgba(243,152,0,.72),
    0 0 22px rgba(243,152,0,.34);
  animation:
    tspNavBrandGlisten .92s cubic-bezier(.2,.7,.25,1) 1,
    tspNavBrandPulse .58s ease-in-out 1;
}

@keyframes tspNavBrandGlisten{
  0%{ background-position:135% 0; }
  100%{ background-position:-35% 0; }
}

@keyframes tspNavBrandPulse{
  0%{ transform:translateY(0) scale(1); }
  46%{ transform:translateY(-1px) scale(1.055); }
  100%{ transform:translateY(0) scale(1); }
}

@media(prefers-reduced-motion:reduce){
  .nav-brand:hover,
  .nav-brand:focus-visible{
    animation:none;
    color:var(--orange) !important;
    background:none;
    transform:none;
  }
}


/* v182 Calendar Past Events Easter egg */
.calendar-bottom-glow{
  position:fixed;
  left:50%;
  bottom:-92px;
  width:min(1500px, 128vw);
  height:250px;
  transform:translateX(-50%);
  pointer-events:none;
  z-index:0;
  opacity:0;
  visibility:hidden;
  background:
    radial-gradient(
      ellipse at 50% 100%,
      rgba(255,67,190,.50) 0%,
      rgba(255,67,190,.31) 24%,
      rgba(255,67,190,.16) 43%,
      rgba(255,67,190,.06) 60%,
      rgba(255,67,190,0) 76%
    );
  filter:blur(22px);
  transition:opacity .7s ease, visibility 0s linear .7s;
}

body.calendar-page.calendar-easter-egg-active .calendar-bottom-glow{
  visibility:visible;
  opacity:.88;
  transition:opacity .7s ease;
  animation:calendarBottomGlowPulse 5.8s ease-in-out infinite;
}

@keyframes calendarBottomGlowPulse{
  0%,100%{
    opacity:.58;
    transform:translateX(-50%) scaleX(.94) scaleY(.90);
    filter:blur(24px);
  }
  50%{
    opacity:.96;
    transform:translateX(-50%) scaleX(1.04) scaleY(1.06);
    filter:blur(18px);
  }
}

@media(max-width:760px){
  .calendar-bottom-glow{
    bottom:-74px;
    width:150vw;
    height:210px;
  }
}

@media(prefers-reduced-motion:reduce){
  body.calendar-page.calendar-easter-egg-active .calendar-bottom-glow{
    animation:none;
    opacity:.76;
  }
}


/* v183 Contact Send button typography and true negative-space hover */
.contact-submit-button{
  position:relative;
  display:inline-block;
  width:78px;
  height:42px;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:var(--orange) !important;
  font-family:inherit;
  font-size:16px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  overflow:visible;
}

.contact-submit-svg{
  display:block;
  width:78px;
  height:42px;
  overflow:visible;
}

.contact-submit-outline{
  fill:transparent;
  stroke:currentColor;
  stroke-width:1.5;
  transition:opacity .18s ease;
}

.contact-submit-visible-text,
.contact-submit-mask-text{
  font-family:"Avenir Next", Avenir, Futura, "Century Gothic", sans-serif;
  font-size:15px;
  font-weight:800;
  letter-spacing:.01em;
}

.contact-submit-visible-text{
  fill:currentColor;
  transition:opacity .18s ease;
}

.contact-submit-knockout-fill{
  fill:var(--orange);
  opacity:0;
  transition:opacity .18s ease;
}

.contact-submit-button:hover,
.contact-submit-button:focus-visible{
  background:transparent !important;
  color:var(--orange) !important;
  outline:none;
}

.contact-submit-button:hover .contact-submit-outline,
.contact-submit-button:hover .contact-submit-visible-text,
.contact-submit-button:focus-visible .contact-submit-outline,
.contact-submit-button:focus-visible .contact-submit-visible-text{
  opacity:0;
}

.contact-submit-button:hover .contact-submit-knockout-fill,
.contact-submit-button:focus-visible .contact-submit-knockout-fill{
  opacity:1;
}

.contact-submit-button:focus-visible{
  filter:drop-shadow(0 0 7px rgba(243,152,0,.42));
}


/* v184 make Send use the exact standard .button typography and spacing */
.contact-submit-button{
  position:relative;
  display:inline-block;
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  padding:10px 15px !important;
  border:1px solid var(--orange) !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--orange) !important;
  font:inherit !important;
  font-weight:800 !important;
  line-height:inherit !important;
  letter-spacing:normal !important;
  text-decoration:none !important;
  overflow:hidden;
  cursor:pointer;
}

.contact-submit-label{
  position:relative;
  z-index:1;
  display:block;
  opacity:1;
  transition:opacity .16s ease;
}

.contact-submit-hover-svg{
  position:absolute;
  inset:-1px;
  z-index:2;
  display:block;
  width:calc(100% + 2px);
  height:calc(100% + 2px);
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease;
}

.contact-submit-hover-text{
  font-family:"Avenir Next", Avenir, Futura, "Century Gothic", "Trebuchet MS", Arial, sans-serif;
  font-size:16px;
  font-weight:800;
  letter-spacing:0;
}

.contact-submit-hover-fill{
  fill:var(--orange);
}

.contact-submit-hover-border{
  fill:none;
  stroke:var(--orange);
  stroke-width:1.5;
}

.contact-submit-button:hover,
.contact-submit-button:focus-visible{
  border-color:transparent !important;
  background:transparent !important;
  color:var(--orange) !important;
  outline:none;
}

.contact-submit-button:hover .contact-submit-label,
.contact-submit-button:focus-visible .contact-submit-label{
  opacity:0;
}

.contact-submit-button:hover .contact-submit-hover-svg,
.contact-submit-button:focus-visible .contact-submit-hover-svg{
  opacity:1;
}

.contact-submit-button:focus-visible{
  filter:drop-shadow(0 0 7px rgba(243,152,0,.42));
}


/* v185 Ben Meyer natural-frame performance collage */
.ben-photo-collage-section{
  padding-top:46px;
  padding-bottom:56px;
}

.ben-photo-collage{
  columns:3 280px;
  column-gap:22px;
}

.ben-photo-collage-item{
  display:inline-block;
  width:100%;
  margin:0 0 22px;
  break-inside:avoid;
  vertical-align:top;
  border:1px solid var(--line);
  background:#000;
  overflow:hidden;
}

.ben-photo-collage-item img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  background:#000;
}

@media(max-width:880px){
  .ben-photo-collage{
    columns:2 250px;
    column-gap:18px;
  }

  .ben-photo-collage-item{
    margin-bottom:18px;
  }
}

@media(max-width:560px){
  .ben-photo-collage{
    columns:1;
  }
}


/* v186 exact five-photo Ben Meyer collage arrangement */
.ben-photo-collage{
  display:grid !important;
  grid-template-columns:30.7fr 28.7fr 40.6fr;
  grid-template-rows:57.4fr 42.6fr;
  grid-template-areas:
    "red purple green"
    "eight purple bw";
  gap:20px;
  width:100%;
  aspect-ratio:1.42 / 1;
  columns:auto !important;
}

.ben-photo-collage-item{
  display:block !important;
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  break-inside:auto !important;
  border:1px solid var(--line);
  background:#000;
  overflow:hidden;
}

.ben-photo-collage-item img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#000;
}

.ben-collage-red{ grid-area:red; }
.ben-collage-eight{ grid-area:eight; }
.ben-collage-purple{ grid-area:purple; }
.ben-collage-green{ grid-area:green; }
.ben-collage-bw{ grid-area:bw; }

.ben-collage-red img{ object-position:50% 43%; }
.ben-collage-eight img{ object-position:50% 48%; }
.ben-collage-purple img{ object-position:50% 52%; }
.ben-collage-green img{ object-position:50% 47%; }
.ben-collage-bw img{ object-position:50% 50%; }

@media(max-width:760px){
  .ben-photo-collage{
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
    grid-template-areas:
      "red green"
      "purple purple"
      "eight bw";
    aspect-ratio:auto;
    gap:14px;
  }

  .ben-collage-red,
  .ben-collage-green{
    aspect-ratio:3 / 4;
  }

  .ben-collage-purple{
    aspect-ratio:4 / 5;
  }

  .ben-collage-eight,
  .ben-collage-bw{
    aspect-ratio:4 / 3;
  }
}

@media(max-width:480px){
  .ben-photo-collage{
    grid-template-columns:1fr;
    grid-template-areas:
      "red"
      "purple"
      "green"
      "eight"
      "bw";
  }

  .ben-photo-collage-item{
    aspect-ratio:auto !important;
  }

  .ben-photo-collage-item img{
    height:auto;
    object-fit:contain;
  }
}


/* v187 consistent one-pixel orange outlines for production photography */
.smile-feature-image,
.de-dream-feature-image,
.djingo-bottom-image{
  border:1px solid var(--line);
  box-sizing:border-box;
  overflow:hidden;
}

.smile-gallery-grid img,
.de-dream-gallery-grid img,
.poster-image{
  border:1px solid var(--line);
  box-sizing:border-box;
}

/* Keep only the gold shimmer on the upper-left home link. */
.nav-brand:hover,
.nav-brand:focus-visible{
  animation:tspNavBrandGlisten .92s cubic-bezier(.2,.7,.25,1) 1 !important;
  transform:none !important;
}


/* v188 center Ben more closely in the tall middle collage photo */
.ben-collage-purple img{
  object-position:40% 52% !important;
}


/* v189 smooth reversible Tender Style Productions shimmer */
.nav-brand{
  color:transparent !important;
  background-image:
    linear-gradient(
      110deg,
      var(--orange) 0%,
      var(--orange) 38%,
      #ffd36a 45%,
      #fff8d6 49%,
      #ffffff 50%,
      #fff0a8 52%,
      #f7b42b 57%,
      var(--orange) 64%,
      var(--orange) 100%
    );
  background-size:240% 100%;
  background-position:135% 0;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:none !important;
  transform:translateY(0) scale(1);
  text-shadow:none;
  transition:
    background-position .92s cubic-bezier(.2,.7,.25,1),
    transform .58s ease-in-out,
    text-shadow .28s ease;
}

.nav-brand:hover,
.nav-brand:focus-visible{
  color:transparent !important;
  background-position:-35% 0;
  animation:none !important;
  transform:translateY(-1px) scale(1.045) !important;
  text-shadow:
    0 0 8px rgba(243,152,0,.72),
    0 0 22px rgba(243,152,0,.34);
}

@media(prefers-reduced-motion:reduce){
  .nav-brand{
    transition:none;
  }

  .nav-brand:hover,
  .nav-brand:focus-visible{
    transform:none !important;
  }
}


/* v190 subtler, faster, smoother home-link motion */
.nav-brand{
  transition:
    background-position .78s cubic-bezier(.22,.61,.36,1),
    transform .32s cubic-bezier(.22,.61,.36,1),
    text-shadow .24s ease !important;
}

.nav-brand:hover,
.nav-brand:focus-visible{
  transform:translateY(-0.5px) scale(1.022) !important;
}


/* v191 stacked Services photography */
.services-photo-section{
  display:flex;
  flex-direction:column;
  gap:22px;
}

.services-secondary-photo{
  margin-top:0;
}


/* v192 two smaller Smile Aisle videos below the photo gallery */
.smile-secondary-videos-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
  align-items:start;
}

.smile-secondary-video-player{
  width:100%;
  aspect-ratio:16 / 9;
  border:1px solid var(--line);
  background:#000;
  overflow:hidden;
}

.smile-secondary-video-player video{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#000;
}

@media(max-width:760px){
  .smile-secondary-videos-grid{
    grid-template-columns:1fr;
  }
}


/* v195 expandable editorial A Life in Music section */
.ben-life-section{
  padding-top:48px;
  padding-bottom:58px;
}

.ben-life-toggle-wrap{
  width:min(960px, 92vw);
  margin:0 auto 26px;
}

.ben-life-toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px 24px;
  border:1px solid var(--line);
  border-radius:0;
  background:rgba(0,0,0,.68);
  color:var(--orange);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:
    background-color .26s ease,
    box-shadow .26s ease,
    transform .26s cubic-bezier(.22,.61,.36,1);
}

.ben-life-toggle:hover,
.ben-life-toggle:focus-visible{
  background:rgba(243,152,0,.075);
  box-shadow:0 0 22px rgba(243,152,0,.15);
  outline:none;
  transform:translateY(-1px);
}

.ben-life-toggle-copy{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.ben-life-toggle-title{
  font-size:clamp(25px, 3.2vw, 38px);
  font-weight:800;
  line-height:1.05;
  letter-spacing:-.015em;
}

.ben-life-toggle-subtitle{
  color:var(--orange);
  font-size:clamp(14px, 1.6vw, 18px);
  line-height:1.4;
  opacity:.82;
}

.ben-life-toggle-caret{
  flex:0 0 auto;
  font-size:38px;
  line-height:1;
  transform:translateY(-3px) rotate(0deg);
  transform-origin:center;
  transition:transform .42s cubic-bezier(.22,.61,.36,1);
}

.ben-life-section.is-open .ben-life-toggle-caret{
  transform:translateY(3px) rotate(180deg);
}

.ben-life-stage{
  position:relative;
  overflow:visible;
  transition:height .86s cubic-bezier(.22,.61,.36,1);
}

.ben-life-editorial[hidden]{
  display:none !important;
}

.ben-life-editorial{
  display:grid;
  gap:28px;
}

.ben-life-section.is-open .ben-photo-collage{
  display:none !important;
}

.ben-life-chapter{
  display:grid;
  gap:28px;
  align-items:stretch;
  opacity:0;
  transform:translateY(18px);
  transition:
    opacity .58s ease calc(120ms + var(--chapter-index) * 70ms),
    transform .68s cubic-bezier(.22,.61,.36,1) calc(120ms + var(--chapter-index) * 70ms);
}

.ben-life-section.is-revealed .ben-life-chapter{
  opacity:1;
  transform:translateY(0);
}

.ben-life-chapter-copy{
  border:1px solid var(--line);
  padding:clamp(24px, 3.2vw, 42px);
  background:linear-gradient(145deg, rgba(243,152,0,.045), rgba(0,0,0,.86) 46%);
}

.ben-life-chapter-copy h2{
  margin-bottom:24px;
  text-align:left;
  text-decoration:none;
  font-size:clamp(30px, 4.2vw, 50px);
}

.ben-life-chapter-copy p{
  margin:0 0 1.2em;
  color:var(--orange);
  font-size:clamp(17px, 1.75vw, 20px);
  line-height:1.68;
  text-align:left;
}

.ben-life-chapter-copy p:last-of-type{
  margin-bottom:0;
}

.ben-life-photo-slot{
  min-width:0;
  background:#000;
}

.ben-life-editorial .ben-photo-collage-item{
  grid-area:auto !important;
  width:100% !important;
  height:100% !important;
  min-height:100%;
  aspect-ratio:auto !important;
  margin:0 !important;
  will-change:transform;
}

.ben-life-editorial .ben-photo-collage-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.ben-life-chapter-born{
  grid-template-columns:minmax(0, 1.42fr) minmax(280px, .58fr);
}

.ben-life-photo-slot-red{
  min-height:600px;
}

.ben-life-chapter-learning{
  grid-template-columns:minmax(300px, .72fr) minmax(0, 1.28fr);
}

.ben-life-photo-slot-eight{
  min-height:390px;
  align-self:start;
}

.ben-life-chapter-direction{
  grid-template-columns:minmax(0, 1.5fr) minmax(270px, .5fr);
}

.ben-life-photo-slot-purple{
  min-height:760px;
}

.ben-life-chapter-sustainable{
  grid-template-columns:minmax(300px, .64fr) minmax(0, 1.36fr);
}

.ben-life-photo-slot-green{
  min-height:520px;
  align-self:center;
}

.ben-life-chapter-tender{
  grid-template-columns:minmax(0, 1.34fr) minmax(300px, .66fr);
}

.ben-life-photo-slot-bw{
  min-height:500px;
  align-self:start;
}

.ben-life-pullquote{
  margin:34px 0 0;
  padding:24px 0 4px;
  border-top:1px solid rgba(243,152,0,.58);
  color:var(--orange);
  font-size:clamp(24px, 3.7vw, 44px);
  font-weight:800;
  line-height:1.16;
  letter-spacing:-.02em;
}

.ben-life-collapse-row{
  margin-top:34px;
  text-align:center;
}

.ben-life-collapse-row[hidden]{
  display:none !important;
}

.ben-life-collapse{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

@media(max-width:900px){
  .ben-life-chapter-born,
  .ben-life-chapter-learning,
  .ben-life-chapter-direction,
  .ben-life-chapter-sustainable,
  .ben-life-chapter-tender{
    grid-template-columns:1fr;
  }

  .ben-life-chapter-learning .ben-life-photo-slot,
  .ben-life-chapter-sustainable .ben-life-photo-slot{
    order:2;
  }

  .ben-life-photo-slot-red,
  .ben-life-photo-slot-purple{
    min-height:min(760px, 105vw);
  }

  .ben-life-photo-slot-eight,
  .ben-life-photo-slot-green,
  .ben-life-photo-slot-bw{
    min-height:min(520px, 70vw);
  }
}

@media(max-width:560px){
  .ben-life-section{
    padding-top:34px;
  }

  .ben-life-toggle-wrap{
    width:100%;
    margin-bottom:18px;
  }

  .ben-life-toggle{
    padding:18px;
    gap:14px;
  }

  .ben-life-toggle-subtitle{
    font-size:14px;
  }

  .ben-life-toggle-caret{
    font-size:30px;
  }

  .ben-life-editorial{
    gap:18px;
  }

  .ben-life-chapter{
    gap:18px;
  }

  .ben-life-chapter-copy{
    padding:22px 19px;
  }

  .ben-life-chapter-copy p{
    font-size:17px;
    line-height:1.62;
  }

  .ben-life-photo-slot-red,
  .ben-life-photo-slot-purple,
  .ben-life-photo-slot-eight,
  .ben-life-photo-slot-green,
  .ben-life-photo-slot-bw{
    min-height:0;
  }

  .ben-life-editorial .ben-photo-collage-item{
    height:auto !important;
    min-height:0;
  }

  .ben-life-editorial .ben-photo-collage-item img{
    height:auto;
    object-fit:contain;
  }
}

@media(prefers-reduced-motion:reduce){
  .ben-life-toggle,
  .ben-life-toggle-caret,
  .ben-life-stage,
  .ben-life-chapter{
    transition:none !important;
  }
}


/* v196 full-width toggle, solid triangle, and no-resize editorial photo flow */
.ben-life-toggle-wrap{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

.ben-life-toggle-caret{
  width:0;
  height:0;
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-top:15px solid var(--orange);
  font-size:0 !important;
  line-height:0 !important;
  transform:rotate(0deg) !important;
  transform-origin:50% 46%;
  transition:transform .42s cubic-bezier(.22,.61,.36,1) !important;
}

.ben-life-section.is-open .ben-life-toggle-caret{
  transform:rotate(180deg) !important;
}

.ben-life-editorial{
  display:grid;
  gap:28px;
}

.ben-life-chapter{
  display:block !important;
}

.ben-life-chapter-copy{
  display:flow-root;
  min-height:0;
}

.ben-life-photo-slot{
  width:var(--ben-life-photo-width);
  height:var(--ben-life-photo-height);
  min-width:0;
  min-height:0 !important;
  background:#000;
}

.ben-life-photo-float-right{
  float:right;
  margin:4px 0 22px 30px;
}

.ben-life-photo-float-left{
  float:left;
  margin:4px 30px 22px 0;
}

.ben-life-editorial .ben-photo-collage-item{
  display:block !important;
  width:var(--ben-life-photo-width) !important;
  height:var(--ben-life-photo-height) !important;
  min-width:var(--ben-life-photo-width) !important;
  min-height:var(--ben-life-photo-height) !important;
  max-width:none !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  margin:0 !important;
  grid-area:auto !important;
  will-change:transform;
  opacity:1 !important;
}

.ben-life-editorial .ben-photo-collage-item img{
  display:block;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  /* Existing per-photo object-position rules remain unchanged. */
}

.ben-life-collapse-row{
  display:none !important;
}

@media(max-width:760px){
  .ben-life-photo-float-right,
  .ben-life-photo-float-left{
    float:none;
    margin:0 0 22px;
  }

  .ben-life-photo-slot{
    max-width:100%;
  }

  .ben-life-editorial .ben-photo-collage-item{
    max-width:100% !important;
  }
}

@media(max-width:560px){
  .ben-life-toggle-caret{
    border-left-width:8px;
    border-right-width:8px;
    border-top-width:12px;
  }
}


/* v197 preserve photos during expansion and rotate event accordion triangles */
.ben-life-chapter{
  opacity:1 !important;
  transform:none !important;
}

/* Fade only the biography text; photographs remain continuously visible
   while moving from the collage into their editorial positions. */
.ben-life-chapter-copy > h2,
.ben-life-chapter-copy > p,
.ben-life-chapter-copy > .ben-life-pullquote{
  opacity:0;
  transform:translateY(18px);
  transition:
    opacity .58s ease calc(120ms + var(--chapter-index) * 70ms),
    transform .68s cubic-bezier(.22,.61,.36,1)
      calc(120ms + var(--chapter-index) * 70ms);
}

.ben-life-section.is-revealed .ben-life-chapter-copy > h2,
.ben-life-section.is-revealed .ben-life-chapter-copy > p,
.ben-life-section.is-revealed .ben-life-chapter-copy > .ben-life-pullquote{
  opacity:1;
  transform:translateY(0);
}

/* Homepage and Calendar accordions now use one solid triangle that pivots,
   matching Signature Productions and A Life in Music. */
.details-block > details > summary:after{
  border-left:7px solid transparent !important;
  border-right:7px solid transparent !important;
  border-top:10px solid currentColor !important;
  border-bottom:0 !important;
  transform:translateY(-35%) rotate(0deg) !important;
  transform-origin:50% 45%;
  transition:transform .42s cubic-bezier(.22,.61,.36,1) !important;
}

.details-block > details[open] > summary:after{
  border-top:10px solid currentColor !important;
  border-bottom:0 !important;
  transform:translateY(-35%) rotate(180deg) !important;
}

.past-year > .past-year-summary:after{
  border-left:6px solid transparent !important;
  border-right:6px solid transparent !important;
  border-top:9px solid currentColor !important;
  border-bottom:0 !important;
  transform:translateY(-35%) rotate(0deg) !important;
  transform-origin:50% 45%;
  transition:transform .42s cubic-bezier(.22,.61,.36,1) !important;
}

.past-year[open] > .past-year-summary:after{
  border-top:9px solid currentColor !important;
  border-bottom:0 !important;
  transform:translateY(-35%) rotate(180deg) !important;
}

@media(prefers-reduced-motion:reduce){
  .ben-life-chapter-copy > h2,
  .ben-life-chapter-copy > p,
  .ben-life-chapter-copy > .ben-life-pullquote,
  .details-block > details > summary:after,
  .past-year > .past-year-summary:after{
    transition:none !important;
  }
}


/* v198 equal-height About Ben card */
.ben-meyer-page .about-layout{
  align-items:stretch;
}

.ben-meyer-page .about-copy{
  height:100%;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
}

.ben-meyer-page .about-copy .button-row{
  margin-top:auto;
}


/* v199 tighten the About Ben card to match the portrait naturally */
.ben-meyer-page .about-layout{
  align-items:start;
}

.ben-meyer-page .about-portrait{
  align-self:start;
  line-height:0;
}

.ben-meyer-page .about-portrait img{
  display:block;
  width:100%;
  height:auto;
}

.ben-meyer-page .about-copy{
  height:auto;
  padding:22px 24px;
}

.ben-meyer-page .about-copy h2{
  margin:0 0 14px;
  font-size:24px;
  line-height:1.12;
  text-align:center;
}

.ben-meyer-page .about-copy p{
  margin:0 0 14px;
  font-size:18px;
  line-height:1.48;
}

.ben-meyer-page .about-copy p:last-of-type{
  margin-bottom:0;
}

.ben-meyer-page .about-copy .button-row{
  margin-top:18px;
}


/* v200 make the About Ben card exactly match the portrait height */
@media(min-width:881px){
  .ben-meyer-page .about-layout{
    align-items:stretch !important;
  }

  .ben-meyer-page .about-portrait{
    align-self:start;
  }

  .ben-meyer-page .about-copy{
    align-self:stretch;
    height:100% !important;
    min-height:100%;
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
  }

  .ben-meyer-page .about-copy .button-row{
    margin-top:auto;
  }
}


/* v201 evenly distribute the About Ben content within the fixed-height card */
@media(min-width:881px){
  .ben-meyer-page .about-copy{
    justify-content:space-between;
  }

  .ben-meyer-page .about-copy h2,
  .ben-meyer-page .about-copy p{
    margin-top:0;
    margin-bottom:0;
  }

  .ben-meyer-page .about-copy .button-row{
    margin-top:0;
  }
}


/* v202 refine the About Ben heading within the existing spacing */
@media(min-width:881px){
  .ben-meyer-page .about-copy h2{
    font-size:28px;
    transform:translateY(6px);
  }
}


/* v203 mobile and narrow-tablet presentation foundation.
   Desktop behavior at 881px and above remains unchanged. */
@media(max-width:880px){
  :root{
    --mobile-gutter:16px;
    --mobile-section-space:36px;
  }

  body{
    overflow-x:hidden;
  }

  .site,
  .nav{
    width:calc(100% - (var(--mobile-gutter) * 2));
  }

  /* A solid mobile header prevents backdrop-filter from containing and
     clipping the fixed navigation drawer. */
  .topbar{
    background:rgba(0,0,0,.98) !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    filter:none !important;
    transform:none !important;
    contain:none !important;
  }

  .nav{
    min-height:62px;
  }

  .nav-brand{
    max-width:calc(100% - 58px);
    font-size:15px;
    line-height:1.15;
  }

  .nav-toggle,
  .nav-close{
    flex:0 0 44px;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
  }

  .nav-backdrop{
    width:100vw;
    height:100dvh;
  }

  .nav-panel{
    top:0;
    bottom:auto;
    height:100dvh;
    max-height:100dvh;
    padding-top:max(18px, env(safe-area-inset-top));
    padding-bottom:max(32px, env(safe-area-inset-bottom));
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .nav-panel-header{
    position:sticky;
    top:0;
    z-index:2;
    margin:-2px 0 10px;
    padding:2px 0 8px;
    background:rgba(5,5,5,.985);
  }

  .nav-links > a,
  .nav-dropdown-toggle,
  .nav-dropdown-menu a{
    min-height:48px;
  }

  .section{
    padding-top:var(--mobile-section-space);
    padding-bottom:var(--mobile-section-space);
  }

  .page-hero{
    padding-top:42px;
    padding-bottom:30px;
  }

  .logo-hero{
    padding-top:32px;
    padding-bottom:20px;
  }

  .main-logo-wrap{
    margin-bottom:18px;
    padding:0;
  }

  h1{
    font-size:clamp(38px, 10vw, 58px);
  }

  h2{
    font-size:clamp(29px, 7.5vw, 38px);
    margin-bottom:18px;
  }

  h3{
    font-size:22px;
  }

  .copy{
    max-width:44rem;
    font-size:18px;
    text-align:left;
  }

  .copy p{
    text-align:left;
  }

  .compact-cta .copy,
  .compact-cta .copy p,
  .ben-meyer-logo-hero .copy,
  .ben-meyer-logo-hero .copy p{
    text-align:center;
  }

  .button,
  .filter-btn,
  summary,
  .input,
  .social-icon,
  .smile-audio-icon,
  .smile-audio-menu-button{
    min-height:44px;
  }

  .button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 16px;
  }

  .filter-btn{
    padding:10px 14px;
    border-radius:0;
  }

  summary{
    display:flex;
    align-items:center;
    justify-content:center;
    padding-top:20px;
    padding-bottom:20px;
  }

  .details-block > details > summary:after{
    right:16px;
  }

  .event-list{
    width:100%;
    margin-bottom:24px;
  }

  .event-row{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "date time"
      "details details";
    gap:4px 14px;
    align-items:start;
    padding:17px 0;
  }

  .event-row > :nth-child(1){
    grid-area:date;
  }

  .event-row > :nth-child(2){
    grid-area:details;
    min-width:0;
  }

  .event-row > :nth-child(3){
    grid-area:time;
  }

  .event-date{
    font-size:22px;
    line-height:1.15;
  }

  .event-place{
    font-size:18px;
    line-height:1.25;
    white-space:nowrap;
  }

  .event-meta{
    margin-bottom:3px;
    font-size:12px;
    line-height:1.35;
  }

  .event-title{
    font-size:18px;
    line-height:1.35;
  }

  [data-past-events]{
    padding-bottom:12px;
  }

  .past-year > .past-year-summary{
    min-height:54px;
    font-size:22px;
  }

  .input{
    min-height:48px;
    padding:13px 14px;
  }

  textarea.input{
    min-height:170px;
  }

  .footer{
    padding-top:26px;
    padding-bottom:max(34px, env(safe-area-inset-bottom));
  }

  .contact-line{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:8px 12px;
    padding:22px 0 18px;
    font-size:17px;
  }

  .footer-icons{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:6px;
    letter-spacing:0;
  }

  .footer .social-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    padding:10px;
  }

  .footer .social-icon svg{
    width:24px;
    height:24px;
  }

  .homepage-services-intro p,
  .homepage-service-item p,
  .homepage-service-item h3,
  .photo-band .feature-copy p{
    text-align:left;
  }

  .homepage-services-panel > h2{
    text-align:center;
  }

  .homepage-services-panel{
    padding:24px 22px;
  }

  .service-card{
    padding:22px;
  }

  .service-card p{
    text-align:left;
  }

  .feature-copy{
    padding:24px 22px;
  }

  .feature-copy p{
    font-size:18px;
  }

  .about-copy{
    padding:22px;
  }

  .ben-meyer-page .about-copy p{
    font-size:17px;
    line-height:1.55;
  }

  .smile-audio-icon,
  .smile-audio-menu-button{
    min-width:44px;
  }

  .smile-audio-progress,
  .smile-audio-volume{
    min-height:24px;
  }

  .ben-life-toggle{
    min-height:72px;
  }

  .ben-life-photo-slot,
  .ben-life-editorial .ben-photo-collage-item{
    max-width:100% !important;
  }
}

@media(min-width:621px) and (max-width:880px){
  :root{
    --mobile-gutter:24px;
    --mobile-section-space:42px;
  }

  .page-hero{
    padding-top:48px;
    padding-bottom:34px;
  }

  .grid-2{
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:22px;
  }

  .signature-productions-section .grid-3{
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:22px;
  }

  .signature-productions-section .project-card:last-child{
    grid-column:1 / -1;
    width:calc(50% - 11px);
    justify-self:center;
  }

  .homepage-lead-band{
    grid-template-columns:minmax(0,.82fr) minmax(380px,1.18fr);
    gap:22px;
    min-height:0;
  }

  .homepage-lead-photo{
    height:100%;
    min-height:100%;
  }

  .homepage-services-panel{
    padding:24px 22px;
  }

  .homepage-services-panel > h2{
    font-size:34px;
  }

  .homepage-services-intro p,
  .homepage-service-item p{
    font-size:16px;
    line-height:1.45;
  }

  .homepage-service-item{
    padding:11px 0;
  }

  .homepage-service-item h3{
    font-size:18px;
  }

  .photo-band{
    grid-template-columns:minmax(250px,.82fr) minmax(0,1.18fr);
    gap:22px;
    align-items:stretch;
  }

  .photo-band img{
    min-height:100%;
  }

  .about-layout{
    grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);
    gap:22px;
    align-items:start;
  }

  .ben-meyer-page .about-copy{
    padding:20px 21px;
  }

  .ben-meyer-page .about-copy h2{
    font-size:25px;
  }

  .ben-meyer-page .about-copy p{
    font-size:16px;
    line-height:1.48;
  }

  .ben-meyer-page .about-copy .button-row{
    margin-top:16px;
  }

  .smile-secondary-videos-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }

  .event-row{
    grid-template-columns:76px minmax(0,1fr) auto;
    grid-template-areas:"date details time";
    gap:16px;
    align-items:center;
    padding:15px 0;
  }

  .event-date{
    font-size:22px;
  }

  .event-place{
    min-width:90px;
    font-size:19px;
    text-align:right;
  }

  .contact-line{
    font-size:16px;
  }
}

@media(max-width:620px){
  :root{
    --mobile-gutter:16px;
    --mobile-section-space:34px;
  }

  .homepage-tagline-section{
    padding-top:4px;
    padding-bottom:28px;
  }

  .homepage-tagline{
    font-size:clamp(29px, 9vw, 38px);
  }

  .homepage-lead-band,
  .grid-2,
  .signature-productions-section .grid-3,
  .photo-band,
  .about-layout,
  .smile-secondary-videos-grid{
    grid-template-columns:1fr;
  }

  .signature-productions-section .project-card:last-child{
    grid-column:auto;
    width:auto;
  }

  .homepage-lead-photo{
    height:auto;
    min-height:0;
  }

  .project-card,
  .service-card{
    max-width:440px;
    width:100%;
    margin-left:auto;
    margin-right:auto;
  }

  .project-logo{
    margin-bottom:16px;
  }

  .project-photo{
    margin-bottom:14px;
  }

  .contact-line{
    flex-direction:column;
    gap:10px;
    font-size:16px;
    line-height:1.35;
  }

  .footer-separator{
    display:none;
  }

  .contact-line a{
    overflow-wrap:anywhere;
  }

  .smile-audio-player{
    padding:18px 14px;
  }

  .ben-life-toggle{
    padding:18px 16px;
  }

  .ben-life-toggle-title{
    font-size:26px;
  }

  .ben-life-chapter-copy{
    padding:22px 18px;
  }
}

@media(max-width:430px){
  .nav-brand{
    font-size:14px;
  }

  .page-hero{
    padding-top:36px;
    padding-bottom:25px;
  }

  .smile-aisle-page-logo,
  .de-dream-page-logo,
  .wax-attacks-page-logo,
  .ben-meyer-page-logo{
    width:min(620px, 96vw) !important;
  }

  .filters{
    gap:8px;
  }

  .filter-btn{
    flex:1 1 calc(50% - 8px);
    padding-left:9px;
    padding-right:9px;
  }

  .filter-btn:first-child{
    flex-basis:100%;
  }

  .event-date{
    font-size:21px;
  }

  .event-place{
    font-size:17px;
  }
}

/* v203 phone footer separators remain in the original desktop markup;
   zero-sized anonymous flex text keeps desktop pixels untouched. */
@media(max-width:620px){
  .contact-line{
    font-size:0;
  }

  .contact-line a,
  .contact-line .contact-phone{
    font-size:16px;
  }
}

/* v204 add breathing room between the Ben Meyer logo and descriptor on phones.
   Desktop and narrow-tablet presentation remain unchanged. */
@media(max-width:620px){
  .ben-meyer-logo-hero .copy{
    transform:translateY(-56px);
    margin-bottom:-56px;
  }
}

/* v207 live Formspree contact-form status; hidden until a submission result exists */
.contact-form-status{
  display:none;
  max-width:680px;
  margin:18px auto 0;
  text-align:center;
  font-weight:800;
}

.contact-form-status[data-state="success"],
.contact-form-status[data-state="error"]{
  display:block;
}

.contact-form-status[data-state="success"]{
  color:var(--sky);
}

.contact-form-status[data-state="error"]{
  color:var(--pink);
}

.contact-submit-button:disabled{
  cursor:wait;
  opacity:.72;
}

