/* Desktop: the user's complete Magnific-upscaled wide image. Mobile: the
   unchanged original portrait. Both share one responsive, aspect-matched plane. */
.hero-art{container-type:size}
.hero-scene{position:absolute;width:max(100cqw,177.6833156cqh);height:max(56.2799043cqw,100cqh);left:50%;top:50%;transform:translate(-50%,-50%)}
.hero-scene>picture{display:block;width:100%;height:100%}
.hero-art .hero-image{width:100%;height:100%;max-width:none;object-fit:fill;object-position:center;animation:none}
/* Match object-fit:cover once at layout time. Only small bitmap opacities animate;
   there are no moving masks, filters or blend modes to repaint on each frame. */
.violin-lighting{position:absolute;inset:0;pointer-events:none;visibility:hidden}
.violin-lighting>picture{display:contents}
.is-led-ready .violin-lighting{visibility:visible}
.hero-art .led-phase{position:absolute;left:56.2200957%;top:39.3198725%;width:32.8947368%;height:55.2603613%;object-fit:fill;animation:none}
.hero-art .led-phase-middle,.hero-art .led-phase-bottom{opacity:0;will-change:opacity}
.is-led-ready .led-phase-middle{animation:led-middle 8s linear infinite}
.is-led-ready .led-phase-bottom{animation:led-bottom 8s linear infinite}
.is-led-paused .led-phase-middle,.is-led-paused .led-phase-bottom{animation-play-state:paused}
.is-led-inactive .violin-lighting{visibility:hidden}
.is-led-inactive .led-phase-middle,.is-led-inactive .led-phase-bottom{will-change:auto}
/* Crossfade only neighbouring positions: top -> middle -> bottom -> middle -> top.
   Split easing preserves the previous four seconds each way, with no mid-way stop. */
@keyframes led-middle{0%{opacity:0;animation-timing-function:cubic-bezier(.45,0,.725,.5)}25%,75%{opacity:1;animation-timing-function:cubic-bezier(.275,.5,.55,1)}100%{opacity:0}}
@keyframes led-bottom{0%,25%{opacity:0;animation-timing-function:cubic-bezier(.275,.5,.55,1)}50%{opacity:1;animation-timing-function:cubic-bezier(.45,0,.725,.5)}75%,100%{opacity:0}}
.intro{background:radial-gradient(ellipse at 80% 20%,#32203670,transparent 65%),linear-gradient(130deg,#110e12,#17121b)}
.videos{background:radial-gradient(ellipse at 12% 30%,#432b493b,transparent 65%),linear-gradient(145deg,#1d1720,#151019)}
.packages{background:radial-gradient(ellipse at 100% 10%,#d5c5d875,transparent 65%),linear-gradient(145deg,#eee8df,#e4dce2)}
.package summary{grid-template-columns:60px 1fr 205px 35px}
.package .duration{line-height:1.8;text-transform:none}
.package-body{display:block;padding-right:80px}
.package-body .package-copy{display:block;max-width:900px}
.package-copy p{font-size:14px;line-height:1.95;color:#62565e}
.package-copy p+p{margin-top:16px}
.contact{isolation:isolate;background:radial-gradient(ellipse at 17% 13%,#65466760,transparent 62%),radial-gradient(ellipse at 88% 90%,#57448465,transparent 64%),linear-gradient(125deg,#281d31 5%,#36233b 45%,#20182d)}
.contact:before{inset:0;width:auto;height:auto;border:0;border-radius:0;background:linear-gradient(90deg,#241a2b20,#241a2b00 60%,#241a2b50);z-index:-1}
.contact>.contact-atmosphere{position:absolute;inset:0 0 0 auto;width:64%;height:100%;max-width:none;object-fit:cover;object-position:center 40%;opacity:.17;filter:grayscale(1);mix-blend-mode:luminosity;mask-image:linear-gradient(90deg,transparent,#000 35%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 35%);pointer-events:none;z-index:-1}
.contact:after{content:'';position:absolute;inset:0;background:url('/assets/grain.svg');opacity:.11;mix-blend-mode:soft-light;pointer-events:none;z-index:0}
.contact>.eyebrow,.contact>h2,.contact>.contact-layout{position:relative;z-index:1}
.contact-field input:-webkit-autofill,.contact-field input:-webkit-autofill:hover,.contact-field input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #302238 inset}
/* Progressive enhancement: content is fully visible if JavaScript is unavailable. */
.reveal-ready [data-reveal]{transition:opacity .85s ease,transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-ready [data-reveal]:not(.is-visible){opacity:0;transform:translateY(32px)}
.reveal-ready [data-reveal].is-visible{opacity:1;transform:none}
/* Keep native scrolling and keyboard behaviour; style the page scrollbar. */
html{scrollbar-color:#a3829d #17111c;scrollbar-width:thin}
@supports selector(::-webkit-scrollbar){
  html{scrollbar-color:auto;scrollbar-width:auto}
  html::-webkit-scrollbar{width:10px;height:10px}
  html::-webkit-scrollbar-track{background:#17111c}
  html::-webkit-scrollbar-thumb{border:3px solid #17111c;border-radius:12px;background:linear-gradient(180deg,#b49aa9,#87677f);min-height:48px}
  html::-webkit-scrollbar-thumb:hover{background:#c3a5bc}
  html::-webkit-scrollbar-button{display:none}
  html::-webkit-scrollbar-corner{background:#17111c}
}
@media(forced-colors:active){html{scrollbar-color:auto;scrollbar-width:auto}}
@media(min-width:801px){.hero-content{filter:none}}
@media(max-width:800px){
  .hero-scene{width:max(100cqw,66.7037243cqh);height:max(149.9166667cqw,100cqh)}
  .hero-art .led-phase{left:18%;top:41.3563091%;width:64%;height:40.6892718%}
  .hero-art::after{inset:48% 0 0;background:linear-gradient(180deg,transparent 0%,#100b1845 30%,#100b18bf 82%,#100b18ed 100%)}
  .hero{min-height:850px;padding-top:100px;padding-bottom:116px;align-items:flex-end}
  .hero-content{width:100%;max-width:none;padding-top:0;display:flex;flex-direction:column;align-items:flex-end;filter:none}
  .hero .eyebrow{font-size:8px;letter-spacing:.13em;margin-bottom:18px;text-shadow:0 1px 6px #110e12}
  .hero h1{font-size:clamp(72px,13.5vw,105px);text-align:right;text-shadow:0 2px 22px #110e1270;line-height:.94}
  .hero h1 em{margin:0;color:#e2cbd9}
  .hero-subtitle{font-size:10px;letter-spacing:.24em;margin:23px 0 0;line-height:1.7}
  .hero-actions{width:100%;justify-content:flex-end;margin-top:26px;gap:25px}
  .hero-bottom{bottom:27px}
  .package summary{grid-template-columns:28px 1fr 145px 24px;gap:14px}
  .package-body{padding-right:24px}.package-copy p{font-size:13px}
  .contact>.contact-atmosphere{width:100%;opacity:.12;object-position:60% center}
}
@media(max-width:520px){
  .hero{min-height:830px;padding-bottom:112px}
  .hero h1{font-size:clamp(66px,18vw,82px)}
  .hero .eyebrow{font-size:7px;gap:10px;letter-spacing:.11em}
  .hero .little-line{width:20px}.hero-subtitle{font-size:9px}
  .hero-actions{gap:19px}.hero-actions .button{gap:16px;padding:10px 14px;font-size:8px}
  .hero-actions .play-link{font-size:9px;gap:8px}
  .package summary{grid-template-columns:20px 1fr 21px;gap:12px}
  .package .duration{max-width:230px}.package-body{padding-right:0}
  .package-copy p{font-size:12px;line-height:1.9}
}
@media(prefers-reduced-motion:reduce){
  .violin-lighting{opacity:.4}
  .hero-art .led-phase-middle{animation:none;opacity:1;will-change:auto}
  .hero-art .led-phase-bottom{animation:none;opacity:0;will-change:auto}
  .reveal-ready [data-reveal]:not(.is-visible){opacity:1;transform:none}
  .reveal-ready [data-reveal]{transition:none}
}
