:root{--ink:#200f24;--plum:#391542;--gold:#f0d899;--paper:#f9effa;--pink:#e8b2da}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,sans-serif}html{scroll-behavior:smooth}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #a15bad;outline-offset:5px}.wrap{width:min(1160px,90%);margin:auto}.stage{position:relative;isolation:isolate;overflow:hidden;background:#281032;color:#fff4fa}.stage:before{content:"";position:absolute;inset:0;z-index:-2;background:repeating-linear-gradient(93deg,#15061e 0%,#391542 5%,#220c2e 10%);opacity:.8}.stage:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#200d29 4%,transparent 85%)}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid #ffffff35}.brand{font-family:Georgia,serif;font-size:24px;color:var(--gold)}nav{display:flex;gap:28px;font-size:14px}.hero{min-height:650px;display:grid;grid-template-columns:1fr 1fr;align-items:center;position:relative}.copy{padding:65px 0;z-index:1;animation:enter .9s both}.role{color:var(--pink);letter-spacing:.03em}h1,h2,h3,p{margin:0}h1,h2,h3{font:400 1em/.98 Georgia,serif}h1{font-size:clamp(76px,10vw,148px);letter-spacing:-.075em;margin:20px 0 24px}h1 span{display:block;color:var(--gold)}.copy p{max-width:330px;margin-bottom:28px}.button{display:inline-block;border:0;cursor:pointer;background:var(--gold);color:var(--ink);padding:13px 23px;border-radius:50px;font-weight:650}.button:hover{background:#ffebbd}.poster{position:relative;min-width:0;aspect-ratio:1;display:grid;place-items:center}.beam{position:absolute;inset:-50% -24% -10%;background:conic-gradient(from 152deg at 53% 0%,transparent 0deg,#ef9cdc48 13deg,#f0d89988 24deg,#ef9cdc33 37deg,transparent 46deg);transform-origin:53% 0;animation:light 1.8s cubic-bezier(.2,.7,.2,1) both}.poster svg{width:100%;height:auto;position:relative;filter:drop-shadow(0 16px 26px #180719);animation:enter 1.35s .18s both}.strap{border-top:1px solid #ffffff35;padding:16px 0;color:var(--pink);display:flex;justify-content:space-between;gap:10px;font-size:14px}.section{padding:100px 0}.section h2{font-size:clamp(44px,7vw,86px);letter-spacing:-.05em;margin-bottom:35px}.formats{display:grid;grid-template-columns: .85fr 1.15fr;gap:65px}.formats .intro{max-width:300px}.options details{border-top:1px solid #815384;padding:20px 0}.options details:last-child{border-bottom:1px solid #815384}.options summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;font:clamp(25px,4vw,39px)/1.1 Georgia,serif}.options summary::-webkit-details-marker{display:none}.options summary:after{content:"+";font:32px Georgia;transition:transform .25s}.options details[open] summary:after{transform:rotate(45deg)}.options details p{padding-top:12px;max-width:480px}.booking{background:var(--plum);color:var(--paper)}.booking .wrap{display:grid;grid-template-columns:1fr 1fr;gap:50px}.booking p{max-width:390px}.contacts{margin:0}.contacts div{padding:15px 0;border-top:1px solid #ffffff55}.contacts div:last-child{border-bottom:1px solid #ffffff55}.contacts dt{color:var(--pink);font-size:14px}.contacts dd{margin:2px 0 0;font:clamp(24px,4vw,36px)/1.15 Georgia,serif}footer{background:var(--ink);color:var(--pink);padding:22px 0}footer .wrap{display:flex;justify-content:space-between;gap:12px}@keyframes enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes light{from{opacity:0;transform:rotate(-29deg)}to{opacity:1;transform:rotate(0)}}@media(max-width:720px){header{padding:14px 0}nav a:first-child{display:none}.hero{grid-template-columns:1fr;min-height:0}.copy{padding:55px 0 0}.poster{width:min(100%,440px);margin:-16px auto 0}.beam{inset:-35% -15% -8%}.section{padding:65px 0}.formats,.booking .wrap{grid-template-columns:1fr;gap:25px}.strap{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.stage{--mx:0px;--my:0px;background:#180a24}
.stage::before{background:repeating-linear-gradient(92deg,#15061e 0%,#47154e 4%,#220c2e 8%);opacity:.86}
.hero{min-height: min(740px,84svh)}
.poster::after{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(ellipse,#e08fc35c,transparent 64%);mix-blend-mode:screen;pointer-events:none}
.poster svg{transform:translate(var(--mx),var(--my));transition:transform .55s cubic-bezier(.2,.75,.2,1);z-index:1}
.curtain{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.curtain::before,.curtain::after{content:"";position:absolute;inset:0 50% 0 0;background:repeating-linear-gradient(92deg,#1c0829 0%,#5d225d 8%,#260e33 16%);box-shadow:0 0 35px #13051a;border-right:1px solid #f0d89966;animation:curtain 1.65s .1s cubic-bezier(.65,0,.24,1) both}
.curtain::after{inset:0 0 0 50%;--direction:101%;border-left:1px solid #f0d89966;border-right:0}
@keyframes curtain{to{transform:translateX(var(--direction,-101%));visibility:hidden}}
.copy{animation-delay:.65s}.poster svg{animation-delay:.7s}
.poster .orbit{transform-origin:245px 236px;animation:orbit 36s linear infinite}
@keyframes orbit{to{transform:rotate(360deg)}}
.sparkles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.sparkles i{position:absolute;left:var(--x);top:var(--y);width:var(--size);aspect-ratio:1;background:#ffe8af;border-radius:50%;box-shadow:0 0 12px #ffce9c;animation:glint var(--time) var(--delay) ease-in-out infinite alternate}
@keyframes glint{from{opacity:.16;transform:translateY(9px) scale(.6)}to{opacity:.82;transform:translateY(-12px) scale(1.15)}}
.button{position:relative;overflow:hidden;transition:transform .24s,box-shadow .24s}
.button::after{content:"";position:absolute;inset:-25% auto -25% -35%;width:24%;background:#fff9;transform:skewX(-25deg);transition:left .6s}
.button:hover{transform:translateY(-3px);box-shadow:0 8px 28px #f0d89944}.button:hover::after{left:118%}
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:6;background:linear-gradient(90deg,#f3a9d8,#ffe3a0);transform:scaleX(var(--progress,0));transform-origin:left;pointer-events:none}
.interlude{position:relative;overflow:hidden;background:#2a1037;color:#ffdfad;text-align:center;padding:clamp(72px,10vw,150px) 6%;isolation:isolate}
.interlude::before,.interlude::after{content:"";position:absolute;z-index:-1;inset:-38% 28% auto;height:170%;border:1px solid #e8b2da44;border-radius:50%;transform:rotate(-27deg);pointer-events:none}
.interlude::after{transform:rotate(27deg);inset:-38% 30% auto;border-color:#f0d89944}
.interlude p{font:400 clamp(39px,7vw,94px)/1.03 Georgia,serif;letter-spacing:-.047em;margin:auto;max-width:920px}
.interlude span{display:block;color:#e8b2da;font-size:25px;margin-bottom:20px}
.booking{background:radial-gradient(ellipse at 82% 0%,#632455,#33143d 65%)}.options summary:hover{color:#6c2a69}
.options details[open] p{animation:enter .36s both}
.motion .reveal{opacity:0;transform:translateY(28px);transition:opacity .75s,transform .75s cubic-bezier(.2,.65,.2,1)}
.motion .reveal.visible{opacity:1;transform:none}
@media(max-width:720px){.hero{min-height:0}.poster{max-width:380px}.interlude::before,.interlude::after{inset:-20% 12% auto;height:145%}}
@media(prefers-reduced-motion:reduce){.curtain,.progress{display:none}.motion .reveal{opacity:1;transform:none}.poster svg{transform:none}}
h1{font-size:clamp(43px,8.4vw,126px)}.strap{flex-wrap:wrap}@media(max-width:720px){h1{font-size:clamp(52px,11vw,85px)}}.portrait{position:relative;z-index:1;margin:0;width:93%;animation:enter 1.1s .65s both}.portrait img{display:block;width:100%;height:auto;border-radius:48% 48% 8px 8px / 34% 34% 8px 8px;border:1px solid var(--gold);box-shadow:0 22px 60px #14051bb8}.portfolio{background:#210d2c;color:var(--paper)}.photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.shot{display:block;color:inherit}.shot img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;transition:filter .25s,transform .25s}.shot:hover img{filter:brightness(1.15);transform:translateY(-3px)}.shot span{display:block;margin-top:8px;color:var(--gold)}.viewer{background:#210d2c;color:white;border:1px solid var(--gold);border-radius:12px;max-width:94vw;padding:14px}.viewer::backdrop{background:#100819e8}.viewer img{display:block;max-width:86vw;max-height:76vh;margin:auto}.viewer button{display:block;margin:0 0 10px auto;padding:6px 14px;cursor:pointer}.viewer p{margin-top:8px}@media(max-width:720px){.portrait{margin:35px 0}.photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}.shot{background:none;border:0;padding:0;text-align:left;font:inherit;cursor:zoom-in}.portfolio{background:radial-gradient(ellipse at 85% 5%,#54244e,#1d0d27 64%);overflow:hidden}.portfolio h2{margin-bottom:12px}.gallery-intro{color:#e8b2da;margin-bottom:28px}.screen{position:relative;background:#130b1a;border:1px solid #f0d89955;border-radius:20px;overflow:hidden}.feature{display:block;width:100%;height:clamp(245px,49vw,550px);padding:0;border:0;background:#130b1a;cursor:zoom-in}.feature img{width:100%;height:100%;object-fit:contain;display:block}.feature img.change{animation:frame-in .48s both}@keyframes frame-in{from{opacity:.15;transform:scale(1.035)}to{opacity:1;transform:none}}.gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px clamp(12px,3vw,28px);border-top:1px solid #f0d89955}.gallery-caption{font:clamp(18px,3vw,29px)/1.1 Georgia,serif;color:var(--gold)}.counter{display:block;font:12px system-ui;color:var(--pink);margin-top:6px}.gallery-controls{display:flex;gap:8px}.gallery-controls button{width:43px;height:43px;border:1px solid #f0d89966;border-radius:50%;background:transparent;color:var(--gold);cursor:pointer;font-size:22px}.gallery-controls button:hover{background:var(--gold);color:var(--ink)}.portfolio .photos{display:flex;overflow-x:auto;padding:14px 2px 10px;gap:9px;scrollbar-width:thin;scrollbar-color:#a56799 #210d2c}.photos .shot{flex:0 0 clamp(76px,11vw,130px);padding:3px;border:1px solid transparent;border-radius:10px;cursor:pointer}.photos .shot[aria-current=true]{border-color:var(--gold)}.photos .shot img{border-radius:6px;aspect-ratio:4/3}.photos .shot span{display:none}.stage header{position:relative;z-index:2}.portrait::before{content:"";position:absolute;inset:-11px;border:1px solid #f0d8995e;border-radius:48% 48% 12px 12px / 34% 34% 12px 12px;pointer-events:none}.contacts{border:1px solid #f0d89955;border-radius:18px;padding:10px 24px;background:#1e0b283d}.contacts div:first-child{border-top:0}.contacts div:last-child{border-bottom:0}@media(max-width:420px){header{gap:10px}.brand{font-size:19px}nav{gap:12px}.gallery-controls button{width:38px;height:38px}}
.video-section{background:#32163d;color:var(--paper)}.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.video-grid figure{margin:0}.video-grid video{display:block;width:100%;aspect-ratio:16/10;background:#15091e;border:1px solid #f0d89955;border-radius:12px}.video-grid figcaption{color:var(--gold);margin-top:8px}@media(max-width:720px){.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:470px){.video-grid{grid-template-columns:1fr}header{flex-wrap:wrap}}.video-link{background:#47204f;color:#fff4fa;border:1px solid #f0d89980;margin-top:10px}.video-link:hover{color:var(--ink)}.video-section{scroll-margin-top:16px}
/* Concert programme */
:root{--ink:#22201e;--paper:#f5efe4;--gold:#eed39a;--pink:#dcc2ae;--plum:#332722}
body{background:var(--paper)}.stage{background:#231414;color:#fff6e7}.stage::before{background:repeating-linear-gradient(94deg,#230e12 0%,#561e26 4%,#2c1119 8%)}.stage::after{background:linear-gradient(90deg,#210f15 0%,#210f1599 48%,transparent 92%)}.brand{font-size:clamp(19px,2.5vw,29px)}.hero{grid-template-columns:1.08fr .92fr;gap:24px;min-height:640px}h1{font-size:clamp(45px,8vw,112px);line-height:.89}.copy p{max-width:390px}.role{font-size:14px}.poster{aspect-ratio:auto}.portrait{width:100%}.portrait img{border-radius:47% 47% 2px 2px / 30% 30% 2px 2px;box-shadow:0 26px 72px #140509a8}.portrait::before{border-radius:47% 47% 2px 2px / 30% 30% 2px 2px}.curtain::before,.curtain::after{background:repeating-linear-gradient(93deg,#230e12 0%,#6c2731 8%,#2c1119 16%)}.video-link{background:transparent;color:#fff6e7}.strap{color:#f5d7bb}
.section h2{line-height:1.02}.video-section{background:var(--paper);color:var(--ink)}.video-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.video-grid video{background:#211818;border-radius:3px;border-color:#6c5144}.video-grid figcaption{color:#684c3e}.section-note{margin:-19px 0 28px;color:#6b5243}.formats{border-top:1px solid #b59d88}.options details,.options details:last-child{border-color:#a99180}.options summary:hover{color:#842b3a}.portfolio{background:radial-gradient(ellipse at 75% 4%,#56272c,#26171a 68%)}.screen{background:#160f10;border-radius:5px}.feature{background:#160f10}.gallery-intro{color:#e7c9b4}.gallery-bar{background:#2a191b}.portfolio .photos{scrollbar-color:#9b655f #26171a}.photos .shot{border-radius:5px}.photos .shot img{border-radius:2px}.interlude{background:#822f3d;color:#fff0d5}.interlude::before,.interlude::after{border-color:#ffe0b85c}.booking{background:#28201d}.contacts{background:#392923;border-radius:3px}.viewer{background:#25191a}.progress{background:linear-gradient(90deg,#b74f61,#ffe3a0)}
@media(max-width:720px){.hero{grid-template-columns:1fr;min-height:0;gap:0}h1{font-size:clamp(48px,11vw,85px)}.portrait{width:92%;margin:36px 0}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:470px){.video-grid{grid-template-columns:1fr}.copy{padding-top:42px}}

.services{background:#ebdfcf}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.service-grid article{border-top:2px solid #a96262;padding-top:20px}.service-grid h3{font-size:27px;line-height:1.12}.service-grid ul{padding-left:19px;margin-bottom:0}.service-grid li+li{margin-top:8px}@media(max-width:850px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:470px){.service-grid{grid-template-columns:1fr}}@media(max-width:720px){nav a:first-child{display:inline}}.stage .poster{isolation:isolate}.portrait{transform:translate(var(--mx),var(--my));transition:transform .6s cubic-bezier(.2,.75,.2,1)}.portrait::after{content:"";position:absolute;inset:-12px;pointer-events:none;border-radius:inherit;box-shadow:0 0 44px #f0b97530;animation:halo 5s ease-in-out 1.6s infinite alternate}@keyframes halo{from{opacity:.25}to{opacity:1}}.beam{animation:light 1.8s both,sofit 9s 1.8s ease-in-out infinite alternate}@keyframes sofit{from{transform:rotate(0)}to{transform:rotate(8deg)}}.video-grid figure,.service-grid article{transition:opacity .7s,translate .7s,border-color .25s;transition-delay:var(--delay,0ms)}.motion .sequence:not(.visible) :is(figure,article){opacity:0;translate:0 21px}.video-grid video{transition:box-shadow .3s,border-color .3s}.video-grid video:hover,.video-grid video:focus-visible{border-color:#b17a51;box-shadow:0 12px 32px #34201632}.service-grid article:hover{border-color:#732938}.feature img.change{animation:frame-in .65s cubic-bezier(.18,.68,.25,1) both}@keyframes frame-in{from{opacity:.12;transform:scale(1.045);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}.gallery-controls button{transition:background .24s,color .24s,transform .24s}.gallery-controls button:active{transform:scale(.9)}.photos .shot{transition:border-color .24s,background .24s}.photos .shot[aria-current=true]{background:#f0d89920}.contacts div{transition:padding-left .24s}.contacts div:hover{padding-left:7px}@media(prefers-reduced-motion:reduce){.portrait{transform:none}.motion .sequence:not(.visible) :is(figure,article){opacity:1;translate:none}}.stage::before{background:#211019 url(../media/decor-stage.png) center/cover no-repeat;opacity:1}.stage::after{background:linear-gradient(90deg,#170b10f2,#170b10b5 49%,#170b1055)}.portfolio{background:linear-gradient(#20141ad9,#20141aeb),url(../media/decor-gallery.png) center/cover}.booking,.interlude{background:linear-gradient(#270f18b8,#270f18df),url(../media/decor-finale.png) center/cover}.interlude::before,.interlude::after,.sparkles{display:none}.curtain::before,.curtain::after{background:#210e17 url(../media/decor-stage.png) left center/cover no-repeat;animation-delay:1.45s}.curtain::after{background-position:right center}.copy{animation-delay:1.85s}.portrait{animation-delay:1.95s}.opening-brand{position:absolute;inset:0;z-index:5;display:grid;place-items:center;pointer-events:none;background:#121317;animation:brand-out 1.55s both}.opening-brand img{width:min(76vw,560px);height:auto;animation:brand-in 1.35s ease-out both}@keyframes brand-out{0%,72%{opacity:1}100%{opacity:0;visibility:hidden}}@keyframes brand-in{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.opening-brand{display:flex}}.mobile-dock{display:none}@media(max-width:720px){body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.stage header nav{display:none}.stage header{justify-content:center}.stage .hero{min-height:0}.stage .copy{padding:38px 0 0}.stage h1{margin:14px 0 18px;font-size:clamp(42px,11.7vw,84px)}.stage .copy p{margin-bottom:17px}.stage .poster{max-width:390px}.stage .portrait{margin:22px 0 30px}.stage .button{min-height:48px}.mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));left:50%;bottom:calc(10px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(94%,440px);gap:3px;padding:5px;z-index:8;border:1px solid #e8ca8d66;border-radius:20px;background:#24161cf2;box-shadow:0 12px 35px #190c1580;color:#fff1dc}.mobile-dock a{display:grid;place-content:center;justify-items:center;min-height:52px;border-radius:15px;font-size:11px;line-height:1.2;gap:3px;transition:background .25s,color .25s,scale .25s}.mobile-dock a:active{scale:.93}.mobile-dock a[aria-current]{background:#eed39a;color:#2b181a}.mobile-dock svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.film .feature{touch-action:pan-y}.gallery-controls button{width:44px;height:44px}.photos{scroll-snap-type:x proximity}.photos .shot{scroll-snap-align:center}.stage .opening-brand img{width:min(86vw,420px)}footer .wrap{align-items:center}.video-grid video{max-height:65svh}}@supports(backdrop-filter:blur(14px)){.mobile-dock{background:#24161cd9;backdrop-filter:blur(14px) saturate(135%)}}@media(prefers-reduced-motion:reduce){.mobile-dock a:active{scale:1}}.base-package{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;padding:clamp(24px,4vw,48px);margin:0 0 48px;background:#2b1a1f;color:#fff0db;border:1px solid #b78c52;border-radius:6px}.package-label{color:var(--gold);margin-bottom:14px}.base-package h3{font-size:clamp(27px,4vw,43px);line-height:1.12;max-width:590px;margin-bottom:20px}.package-price{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px}.package-price strong{font:clamp(31px,4vw,48px)/1.1 Georgia,serif;color:var(--gold)}.extras-title{font-size:clamp(29px,4vw,42px);margin-bottom:15px}.extras-note{margin:0 0 30px}.services .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.contacts dd a{display:inline-block;min-height:44px;align-content:center}.contacts dd a:hover{text-decoration:underline;text-underline-offset:5px}.contacts dd{overflow-wrap:anywhere}.contact-email{font-size:clamp(20px,3.3vw,30px)}@media(max-width:720px){.base-package{grid-template-columns:1fr}.services .service-grid{grid-template-columns:1fr}.package-price{gap:18px}}

/* Cinematic opening: photographs first, signature second. */
.opening-brand{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100svh;padding:24px;overflow:hidden;background:#121317;pointer-events:auto;animation:opening-fallback .6s 8.5s forwards;transition:opacity .8s ease,visibility .8s}
.opening-brand::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at center,#121317 8%,#121317e8 27%,#12131720 70%,transparent);opacity:0;animation:opening-veil 1.1s 0s both;animation-play-state:paused}
.opening-brand.is-dismissed{opacity:0;visibility:hidden;pointer-events:none}
.opening-brand .brand-mark{position:relative;z-index:2;overflow:hidden;flex-shrink:0;width:min(54vw,490px)}
.opening-brand .brand-mark img{display:block;width:100%;height:auto;animation:signature-focus .95s 0s cubic-bezier(.16,.75,.2,1) both;animation-play-state:paused}
.brand-mark::after{content:"";position:absolute;inset:-25% auto -25% -80%;width:35%;background:linear-gradient(90deg,transparent,#ffe6a833,transparent);transform:skewX(-22deg);animation:emblem-light 1.2s .4s both;animation-play-state:paused;mix-blend-mode:screen}
.opening-brand .opening-phrase{position:relative;z-index:2;font:clamp(22px,2.5vw,33px)/1.35 Georgia,serif;text-align:center;color:#eed39a;max-width:520px;text-wrap:balance;animation:signature-focus .75s .35s both;animation-play-state:paused}
.opening-skip{position:absolute;z-index:3;bottom:max(24px,env(safe-area-inset-bottom));left:50%;translate:-50% 0;pointer-events:auto;background:#1213178c;color:#dbcbb3;border:1px solid #dbcbb34d;border-radius:30px;min-height:44px;padding:9px 20px;cursor:pointer;white-space:nowrap}
.opening-photos{position:absolute;inset:0;perspective:1000px;pointer-events:none}
.opening-photo{position:absolute;width:clamp(180px,25vw,360px);aspect-ratio:1.45;border:1px solid #eed39a55;border-radius:7px;box-shadow:0 22px 65px #0008;overflow:hidden;animation:photo-approach 2.1s var(--arrival) cubic-bezier(.16,.7,.2,1) both;animation-play-state:paused}
.opening-photo img{display:block;width:100%;height:100%;object-fit:cover;animation:none}
.opening-photo:nth-child(1){left:5%;top:9%;--angle:-9deg;--arrival:0s;--from-x:70px;--from-y:50px}
.opening-photo:nth-child(2){right:5%;top:13%;--angle:8deg;--arrival:.18s;--from-x:-70px;--from-y:50px}
.opening-photo:nth-child(3){left:9%;bottom:8%;--angle:6deg;--arrival:.32s;--from-x:60px;--from-y:-50px}
.opening-photo:nth-child(4){right:8%;bottom:7%;--angle:-7deg;--arrival:.46s;--from-x:-60px;--from-y:-50px}
.opening-brand.has-photos::before,.opening-brand.has-photos .brand-mark img,.opening-brand.has-photos .brand-mark::after,.opening-brand.has-photos .opening-phrase,.opening-brand.is-ready .opening-photo{animation-play-state:running}
@keyframes photo-approach{from{opacity:0;filter:blur(16px);transform:translate3d(var(--from-x),var(--from-y),-650px) scale(.45) rotate(0deg)}55%{opacity:.9;filter:blur(1px)}to{opacity:.72;filter:blur(0);transform:translateZ(0) scale(1) rotate(var(--angle))}}
@keyframes signature-focus{from{opacity:0;filter:blur(12px);transform:translateY(18px) scale(.9)}to{opacity:1;filter:blur(0);transform:none}}
@keyframes opening-veil{to{opacity:1}}
@keyframes emblem-light{to{left:140%}}
@keyframes opening-fallback{to{opacity:0;visibility:hidden;pointer-events:none}}
.copy,.portrait{animation-delay:0s}
.intro-running:not(.intro-finished) .copy,.intro-running:not(.intro-finished) .portrait{animation-play-state:paused}
.curtain{display:none}
.stage::before{background:#191319 url(../media/decor-gallery.png) center/cover no-repeat}
.stage::after{background:linear-gradient(90deg,#170d16ed,#170d16a6 52%,#170d1666)}
@media(max-width:720px){.opening-brand{gap:12px;padding:18px}.opening-brand .brand-mark{width:min(88vw,390px)}.opening-brand .opening-phrase{font-size:clamp(21px,5.5vw,28px);max-width:340px}.opening-photo{width:43vw;min-width:0}.opening-photo:nth-child(1){left:-5%;top:8%}.opening-photo:nth-child(2){right:-5%;top:12%}.opening-photo:nth-child(3){left:-3%;bottom:14%}.opening-photo:nth-child(4){right:-4%;bottom:11%}.opening-brand::before{background:radial-gradient(ellipse at center,#121317 12%,#121317ed 30%,#12131730 68%,transparent)}}
@media(max-height:600px){.opening-brand .brand-mark{width:min(58vw,260px)}.opening-brand .opening-phrase{font-size:20px;max-width:320px}.opening-photo{width:min(31vw,220px)}.opening-skip{bottom:max(12px,env(safe-area-inset-bottom))}.opening-photo:nth-child(3),.opening-photo:nth-child(4){bottom:12%}}

/* Gallery mosaic remains available when changing frames. */
.feature{position:relative;overflow:hidden}
.feature.puzzle-playing>img{opacity:0}
.photo-puzzle{position:absolute;pointer-events:none;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);z-index:2}
.photo-puzzle span{background-repeat:no-repeat;background-size:400% 300%;animation:puzzle-arrive .65s var(--tile-delay) cubic-bezier(.16,.75,.2,1) both;will-change:transform,opacity;backface-visibility:hidden}
@keyframes puzzle-arrive{from{opacity:0;transform:translate(var(--tile-x),var(--tile-y)) scale(.84) rotate(var(--tile-angle));filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
.gallery-caption.change{animation:caption-appear .5s ease-out both}
@keyframes caption-appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Soft, staggered entrances and restrained depth during native scrolling. */
html{scroll-padding-top:20px}
.motion .reveal{opacity:0;transform:translateY(38px) scale(.985);filter:blur(5px);transition:opacity 1s ease,transform 1.15s cubic-bezier(.16,.75,.2,1),filter .9s ease;transition-delay:var(--delay,0ms)}
.motion .reveal.visible,.motion .reveal:focus-within{opacity:1;transform:none;filter:none}
.section h2{position:relative;padding-bottom:20px}
.section h2::after{content:"";position:absolute;bottom:0;left:0;width:72px;height:1px;background:linear-gradient(90deg,#b38b51,#b38b5100);transform-origin:left;transform:scaleX(.15);transition:transform 1.4s .2s cubic-bezier(.16,.75,.2,1)}
.section h2.visible::after{transform:scaleX(1)}
.poster{translate:0 var(--scroll-drift,0px);transition:translate .4s ease-out}
.interlude{--scroll-drift:0px}
.interlude p{position:relative;translate:0 var(--scroll-drift);transition:translate .4s ease-out}
.interlude::after{display:block;inset:0;height:auto;border:0;border-radius:0;transform:none;background:radial-gradient(ellipse at 50% 100%,#d9a15c25,transparent 65%);translate:0 var(--scroll-drift);z-index:-1}
.portfolio{background-position:center calc(50% + var(--scroll-drift,0px))}
.base-package{position:relative;overflow:hidden}
.base-package::after{content:"";position:absolute;top:0;bottom:0;left:-65%;width:40%;background:linear-gradient(90deg,transparent,#ffe0a512,transparent);transform:skewX(-20deg);pointer-events:none}
.base-package.visible::after{animation:package-light 1.7s .4s both}
@keyframes package-light{to{left:130%}}
@media(max-width:720px){.motion .reveal{transform:translateY(24px);filter:blur(3px)}.motion .reveal.visible,.motion .reveal:focus-within{transform:none;filter:none}.section h2{padding-bottom:16px}}
@media(prefers-reduced-motion:reduce){.opening-brand{display:flex;animation:opening-fallback .01s 8.5s forwards!important}.opening-brand::before{opacity:1}.brand-mark::after{display:none}.opening-photo{opacity:.45;transform:rotate(var(--angle));filter:none}.photo-puzzle{display:none}.feature.puzzle-playing>img{opacity:1}.motion .reveal{opacity:1;transform:none;filter:none}.poster,.interlude p,.interlude::after{translate:none}.section h2::after{transform:none}.portfolio{background-position:center}.base-package::after{display:none}}
