:root{
  --ink:#121210;
  --ink-2:#1c1c19;
  --paper:#ecebe4;
  --red:#ee4129;
  --muted:#5f5e57;
  --muted-dark:#a9a89f;
  --display:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;
  --body:'DM Sans',system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  --pad:clamp(20px,4vw,56px);
  --header:72px;
  --ease:cubic-bezier(.2,.7,.1,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box}
html{scroll-padding-top:var(--header);-webkit-text-size-adjust:100%}
html:not(.lenis){scroll-behavior:smooth}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,ul,ol{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:var(--red);color:var(--ink)}
:focus-visible{outline:2px solid var(--red);outline-offset:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-80px;z-index:200;background:var(--paper);color:var(--ink);padding:12px 16px}
.skip:focus{top:12px}
.wrap{padding:0 var(--pad)}
.red{color:var(--red)}
.paper{color:var(--paper)}

/* Film grain */
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:150;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Labels */
.label{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dark)}
.label span{display:inline-grid;place-items:center;min-width:30px;height:22px;padding:0 6px;border:1px solid currentColor;border-radius:99px;font-size:11px;letter-spacing:.05em}
.label.dark{color:var(--muted)}
.booking .label.dark{color:var(--ink)}

/* Buttons */
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:52px;padding:0 22px;border:0;border-radius:99px;font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:transform .35s var(--ease),color .35s}
.btn::before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .5s var(--ease-out)}
.btn:hover::before{transform:none}
.btn:hover{transform:translateY(-2px)}
.btn span{font-size:18px;line-height:1;transition:transform .35s var(--ease)}
.btn:hover span{transform:translate(3px,-3px)}
.btn-red{background:var(--red);color:var(--ink)}
.btn-red::before{background:var(--paper)}
.btn-ghost{background:transparent;color:var(--paper);box-shadow:inset 0 0 0 1px #ffffff55}
.btn-ghost::before{background:var(--paper)}
.btn-ghost:hover{color:var(--ink)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink::before{background:#2e2c26}
.btn-outline{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn-outline::before{background:var(--ink)}
.btn-outline:hover{color:var(--paper)}

/* Header */
.site-header{position:fixed;inset:0 0 auto;height:var(--header);z-index:100;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 var(--pad);transition:background-color .3s,transform .5s var(--ease-out)}
.site-header.scrolled{background:#121210d9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.site-header.hide{transform:translateY(-100%)}
.logo{font-family:var(--display);font-weight:800;font-size:38px;line-height:1;display:flex;gap:6px;align-items:flex-start}
.logo small{font-family:var(--body);font-size:10px;font-weight:500;letter-spacing:.1em;padding-top:4px}
.site-header nav{display:flex;gap:32px}
.site-header nav a{font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;position:relative;padding:12px 0}
.site-header nav a::after{content:'';position:absolute;left:0;right:0;bottom:6px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.site-header nav a:hover::after{transform:scaleX(1);transform-origin:left}
.pill{display:inline-flex;align-items:center;min-height:42px;padding:0 20px;border-radius:99px;background:var(--red);color:var(--ink);font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;transition:background-color .25s}
.pill:hover{background:var(--paper)}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:max(640px,100svh);overflow:hidden;background:var(--ink);display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--header) + 24px) var(--pad) 36px}
.hero-media{position:absolute;top:0;right:0;bottom:0;width:62%;container-type:size;overflow:hidden}
/* Stage = the photo's real box (object-fit: cover, anchored top) built with container units */
.stage{position:absolute;top:0;
  width:max(100cqw,calc(100cqh * 2 / 3));
  height:max(100cqh,calc(100cqw * 1.5));
  left:calc((100cqw - max(100cqw,calc(100cqh * 2 / 3))) / 2);
  --mx:calc((max(100cqw,calc(100cqh * 2 / 3)) - 100cqw) / 2)}
.portrait{position:absolute;inset:0;width:100%;height:100%;filter:grayscale(1) contrast(1.12) brightness(.92);
  -webkit-mask-image:linear-gradient(to top,transparent 0,#000 32%),linear-gradient(to right,transparent 0,rgba(0,0,0,.35) 18%,#000 55%);
          mask-image:linear-gradient(to top,transparent 0,#000 32%),linear-gradient(to right,transparent 0,rgba(0,0,0,.35) 18%,#000 55%);
  -webkit-mask-size:100cqw 100cqh;mask-size:100cqw 100cqh;
  -webkit-mask-position:var(--mx) 0;mask-position:var(--mx) 0;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-composite:source-in;mask-composite:intersect}
.base{z-index:1}
.orbit{position:absolute;inset:0;pointer-events:none}
.orbit-back{z-index:2}
.cut{z-index:3;clip-path:polygon(31.2% 29.9%,31.8% 29.8%,32.4% 30.2%,32.3% 31.2%,31.0% 33.0%,29.9% 34.9%,29.7% 36.3%,27.0% 37.4%,24.8% 37.9%,26.8% 34.3%,29.2% 31.5%)}
.orbit-front{z-index:4}

/* Genre ring (3D band around the finger) */
.ring3d{position:absolute;width:0;height:0;transform-style:preserve-3d;
  font-size:max(10px,calc(max(100cqw,calc(100cqh * 2 / 3)) * .019))}
.spinner{position:absolute;left:0;top:0;transform-style:preserve-3d}
.glyph{position:absolute;left:0;top:0;font-family:var(--body);font-weight:500;line-height:1;letter-spacing:.06em;padding:0 .14em;color:var(--paper);white-space:pre;will-change:transform,opacity;text-shadow:0 0 12px #12121080}
.glyph.dot{color:var(--red)}
.orbit-back .glyph{color:#d8d7cf;filter:blur(.5px)}
.band-line{position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%) translateY(.95em) rotateX(90deg)}
.orbit-back .band-line{border:1px solid #ecebe455}
.orbit-front .band-line{border:1.5px solid var(--red);clip-path:inset(50% 0 0 0);opacity:.9}
.orbit{opacity:0;transition:opacity 1.4s .5s ease}
.orbit.on{opacity:1}

.hero-title{position:relative;z-index:6;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(110px,13vw,220px);line-height:.8;letter-spacing:-.03em;margin-bottom:32px;will-change:transform}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.04em}
.hero-title .line>span{display:inline-block;transform:translateY(105%);animation:lineUp 1.1s var(--ease-out) forwards}
.hero-title .line:nth-child(2)>span{animation-delay:.12s}
.hero-bottom{position:relative;z-index:6;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;opacity:0;animation:fadeUp .9s .45s var(--ease) forwards}
.hero-role{max-width:340px;font-size:16px;line-height:1.55;color:#d6d5cd}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero-ctas .btn{min-width:180px}
.scroll-cue{position:absolute;z-index:6;right:var(--pad);top:50%;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dark);writing-mode:vertical-rl}
.scroll-cue span{width:1px;height:56px;background:linear-gradient(var(--paper),transparent);transform-origin:top;animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes lineUp{to{transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Ticker */
.ticker{background:var(--red);color:var(--ink);overflow:hidden;border-block:1px solid var(--ink)}
.ticker-track{display:flex;align-items:center;gap:28px;width:max-content;padding:14px 0;will-change:transform}
.ticker span{font-family:var(--display);font-weight:800;font-size:clamp(28px,3.4vw,44px);text-transform:uppercase;letter-spacing:-.01em;line-height:1;white-space:nowrap}
.ticker i{font-style:normal;font-size:20px;display:inline-block}

/* Split headline reveal */
.mask{display:block;overflow:hidden;padding-bottom:.03em}
.js .rise{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease-out)}
.js .mask:nth-child(2) .rise{transition-delay:.09s}
.js .in .rise{transform:none}

/* Live */
.live{position:relative;overflow:hidden;padding:110px 0 120px;background:var(--ink)}
.live-bg{position:absolute;inset:-10% 0;opacity:.28;will-change:transform}
.live-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) contrast(1.1)}
.live-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--ink),#12121088 40%,var(--ink))}
.live .wrap{position:relative}
.live-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin:28px 0 70px}
.live-title{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(84px,12vw,190px);line-height:.82;letter-spacing:-.03em}
.live-side{display:flex;align-items:center;gap:28px;max-width:440px}
.live-side p{font-size:17px;line-height:1.6;color:#d6d5cd}
.badge{flex:none;position:relative;display:grid;place-items:center;width:132px;height:132px;border-radius:50%;background:var(--red);color:var(--ink);transition:transform .5s var(--ease-out),background-color .3s}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:badgeSpin 14s linear infinite}
.badge text{font-family:var(--body);font-size:11.5px;font-weight:500;letter-spacing:.2em;fill:currentColor}
.badge>span{font-size:30px;line-height:1;transition:transform .4s var(--ease-out)}
.badge:hover{transform:scale(1.06);background:var(--paper)}
.badge:hover>span{transform:rotate(45deg)}
@keyframes badgeSpin{to{transform:rotate(360deg)}}
.outline{color:transparent;-webkit-text-stroke:1.5px var(--paper)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff2e}
.stat{padding:30px 28px 10px 0;display:flex;flex-direction:column;gap:22px}
.stat+.stat{padding-left:28px;border-left:1px solid #ffffff2e}
.num{font-family:var(--display);font-weight:800;font-size:clamp(72px,8vw,128px);line-height:.85;letter-spacing:-.02em;color:var(--red);font-variant-numeric:tabular-nums}
.stat h3{font-size:20px;font-weight:500;letter-spacing:.02em;margin-bottom:6px}
.stat div p{font-size:15px;color:var(--muted-dark);max-width:280px}

/* Artists */
.artists{background:var(--paper);color:var(--ink);padding:100px 0 90px}
.names{margin-top:40px;border-top:1px solid #12121026}
.names li{display:flex;align-items:baseline;gap:clamp(16px,3vw,40px);padding:14px 0;border-bottom:1px solid #12121026}
.idx{font-size:13px;font-weight:500;color:var(--muted);min-width:24px;transition:color .3s}
.name{position:relative;display:inline-block;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(56px,9.5vw,150px);line-height:.9;letter-spacing:-.02em;transition:transform .6s var(--ease-out)}
.name::after{content:attr(data-text);position:absolute;inset:0;color:var(--red);clip-path:inset(0 100% 0 0);transition:clip-path .6s var(--ease-out)}
.names li:hover .name{transform:translateX(18px)}
.names li:hover .name::after{clip-path:inset(0 0 0 0)}
.names li:hover .idx{color:var(--red)}
.artists-title{display:none}
.label em{font-style:normal}
.lbl-desk{display:none}
.and-more.desk{display:none}
.and-more{margin-top:22px;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Moments */
.moments{background:var(--ink);padding:110px 0 100px}
.moments-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:48px}
.moments-head .label{align-self:flex-start}
.moments-title{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(76px,10vw,160px);line-height:.82;letter-spacing:-.03em;text-align:right}
.grid{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:16px}
.shot{position:relative;padding:0;border:0;background:var(--ink-2);overflow:hidden;border-radius:4px;text-align:left}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .6s;filter:saturate(.85)}
.shot:hover img{transform:scale(1.05);filter:saturate(1.05)}
.shot-a{grid-row:1/3;aspect-ratio:4/5}
.shot-b,.shot-c{min-height:200px}
.cap{position:absolute;left:14px;bottom:14px;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;background:#121210cc;padding:7px 11px;border-radius:99px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.js .wipe{clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--ease-out)}
.js .wipe img{transform:scale(1.18);transition:transform 1.6s var(--ease-out),filter .6s}
.js .wipe.in{clip-path:inset(0 0 0 0)}
.js .wipe.in img{transform:none}
.js .wipe.in:hover img{transform:scale(1.05)}
.js .shot-b.wipe{transition-delay:.12s}.js .shot-c.wipe{transition-delay:.24s}
.ig-link{display:inline-flex;gap:12px;margin-top:34px;font-size:15px;font-weight:500;padding-bottom:6px;border-bottom:1px solid var(--red)}
.ig-link:hover{color:var(--red)}

/* Booking */
.booking{background:var(--red);color:var(--ink);padding:100px 0 110px}
.booking-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,7vw,110px)}
.booking-title{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(96px,12vw,190px);line-height:.8;letter-spacing:-.03em;margin:28px 0 30px}
.booking-copy>p{font-size:17px;line-height:1.6;max-width:430px}
.booking-copy .strong{font-weight:500;margin-top:14px}
.form{background:var(--paper);color:var(--ink);padding:clamp(24px,3.4vw,44px);border-radius:6px;box-shadow:0 30px 60px -30px #12121080}
.row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form label{display:block;font-size:13px;font-weight:500;letter-spacing:.04em;margin-bottom:20px}
.form label em{font-style:normal;font-weight:400;color:var(--muted)}
.form input,.form select,.form textarea{display:block;width:100%;min-width:0;margin-top:6px;background:transparent;border:0;border-bottom:1.5px solid #12121040;border-radius:0;padding:12px 0;min-height:48px;font-size:16px;color:var(--ink);transition:border-color .25s}
.form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23121210' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;padding-right:22px}
.form input[type=date]{-webkit-appearance:none;appearance:none}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-bottom-color:var(--red)}
.form input::placeholder,.form textarea::placeholder{color:#8b8a82}
.form textarea{resize:vertical;min-height:84px}
.form [aria-invalid=true]{border-bottom-color:#c4260f}
.submit{width:100%;margin-top:8px;min-height:58px}
.form [hidden]{display:none!important}
.form-done{padding:10px 0}
.form-done .done-title{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(44px,5vw,64px);line-height:.9;margin-bottom:14px}
.form-done p{font-size:16px;line-height:1.6}
.form-done a{text-decoration:underline;text-underline-offset:3px}
.form-done:focus{outline:none}

/* Footer */
.footer{padding:70px var(--pad) 30px;overflow:hidden}
.footer-mark{display:flex;justify-content:center;font-family:var(--display);font-weight:800;font-size:36vw;line-height:.74;letter-spacing:-.04em;color:var(--paper);overflow:hidden;padding-bottom:.02em}
.footer-mark span{display:inline-block;transition:color .4s,transform 1.1s var(--ease-out)}
.js .footer-mark span{transform:translateY(100%)}
.js .footer-mark.in span{transform:none}
.footer-mark span:nth-child(2){transition-delay:.08s}.footer-mark span:nth-child(3){transition-delay:.16s}
.footer-mark:hover span{color:var(--red)}
.footer-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:40px;padding-top:20px;border-top:1px solid #ffffff22;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-dark)}
.footer-row a:hover{color:var(--red)}

/* Mobile dock */
.dock{display:none}

/* Lightbox */
dialog{border:0;padding:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:#0d0d0b;color:var(--paper)}
dialog::backdrop{background:#0d0d0bf2}
dialog[open]{display:flex;flex-direction:column;animation:fadeIn .3s ease}
.lb-top,.lb-bottom{display:flex;justify-content:space-between;align-items:center;padding:14px var(--pad)}
.lb-top p{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-dark)}
.lb-top button,.lb-bottom button{min-height:44px;padding:0 20px;border-radius:99px;border:0;background:transparent;box-shadow:inset 0 0 0 1px #ffffff40;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.lb-top button:hover,.lb-bottom button:hover{box-shadow:inset 0 0 0 1px var(--paper)}
.lb-stage{flex:1;min-height:0;display:grid;place-items:center;padding:0 var(--pad)}
.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;animation:zoomIn .45s var(--ease)}
@keyframes fadeIn{from{opacity:0}}
@keyframes zoomIn{from{opacity:0;transform:scale(.96)}}

/* Scroll reveal */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .stat.reveal:nth-child(2){transition-delay:.1s}
.js .stat.reveal:nth-child(3){transition-delay:.2s}

/* Desktop */
.wrap{max-width:1720px;margin-inline:auto}
@media (min-width:961px){
  .artists .wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.7fr);gap:clamp(40px,5vw,96px);align-items:start}
  .artists-intro{position:sticky;top:120px}
  .artists-title{display:block;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(64px,6.4vw,112px);line-height:.85;letter-spacing:-.025em;margin:28px 0 26px}
  .and-more.desk{display:block;margin-top:0}
  .and-more.mob{display:none}
  .lbl-desk{display:inline}
  .lbl-mob{display:none}
  .names{margin-top:6px}
  .name{font-size:clamp(56px,6.6vw,124px)}
  .names li{padding:18px 0}
  .grid{grid-template-columns:1.45fr 1fr;grid-template-rows:repeat(2,clamp(220px,34vh,380px))}
  .shot-a{aspect-ratio:auto}
  .moments-head{margin-bottom:40px}
}

/* Tablet */
@media (max-width:960px){
  .hero-media{width:100%}
  .portrait{
    -webkit-mask-image:linear-gradient(to top,transparent 6%,rgba(0,0,0,.28) 36%,rgba(0,0,0,.85) 66%,rgba(0,0,0,.6) 100%);
            mask-image:linear-gradient(to top,transparent 6%,rgba(0,0,0,.28) 36%,rgba(0,0,0,.85) 66%,rgba(0,0,0,.6) 100%)}
  .scroll-cue{display:none}
  .stats{grid-template-columns:1fr}
  .stat,.stat+.stat{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:20px;padding:26px 0;border-left:0;border-bottom:1px solid #ffffff2e}
  .stat div{text-align:right}
  .stat div p{margin-left:auto}
  .booking-grid{grid-template-columns:1fr}
  .live-head{flex-direction:column;align-items:flex-start;gap:28px}
  .badge{width:104px;height:104px}
}

/* Mobile */
@media (max-width:640px){
  :root{--header:64px}
  .site-header nav{display:none}
  .logo{font-size:32px}
  .pill{min-height:40px;padding:0 16px;font-size:12px}
  .hero{padding-bottom:28px}
  .hero-title{font-size:27vw;margin-bottom:22px}
  .hero-role{font-size:15px}
  .hero-ctas{width:100%}
  .hero-ctas .btn{flex:1;min-width:0;padding:0 18px}
  .live,.moments{padding:80px 0}
  .artists,.booking{padding:80px 0}
  .live-head{margin:22px 0 40px}
  .live-side{display:none}
  .stat,.stat+.stat{flex-direction:column;align-items:flex-start;gap:12px}
  .stat div{text-align:left}
  .stat div p{margin-left:0}
  .name{font-size:14.5vw}
  .names li:hover .name{transform:none}
  .moments-head{flex-direction:column;align-items:flex-start;gap:22px;margin-bottom:32px}
  .moments-title{text-align:left}
  .grid{grid-template-columns:1fr 1fr;gap:10px}
  .shot-a{grid-column:1/3;grid-row:auto;aspect-ratio:4/5}
  .shot-b,.shot-c{aspect-ratio:3/4}
  .cap{font-size:11px;left:10px;bottom:10px}
  .row{grid-template-columns:1fr;gap:0}
  .booking-copy>p{font-size:16px}
  .footer{padding-bottom:100px}
  .footer-row{flex-wrap:wrap;font-size:12px}
  .dock{display:flex;position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:90;justify-content:space-between;align-items:center;min-height:54px;padding:0 22px;border-radius:99px;background:var(--red);color:var(--ink);font-size:14px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 12px 30px -10px #000c;transform:translateY(140%);transition:transform .45s var(--ease)}
  .dock.show{transform:none}
  .dock span{font-size:18px}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .hero-title .line>span,.hero-bottom{transform:none;opacity:1}
  .js .reveal,.js .rise,.js .footer-mark span{opacity:1;transform:none}
  .js .wipe{clip-path:none}.js .wipe img{transform:none}
  .orbit{opacity:1}
  .badge svg{animation:none}
}
