/* =========================================================
   LCR Experience · Editorial Dark Warm (motor)
   ========================================================= */
:root{
  --bg:#100E0C;
  --bg-2:#18140F;
  --surface:#211B15;
  --surface-2:#2A231C;
  --cream:#F0E9DC;
  --stone:#A39886;
  --stone-2:#7E7466;
  --line:rgba(240,233,220,.12);
  --line-2:rgba(240,233,220,.22);
  --red:#D94A35;
  --red-hi:#E8634E;
  --red-ink:#FFF5F0;
  --brass:#C6A062;
  --ok:#86B98F;
  --err:#FF8E7C;
  --it-green:#4FA94D;

  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;

  --r:18px; --r-sm:12px;
  --ease:cubic-bezier(.16,1,.3,1);
  --header-h:64px;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{background:var(--bg);color:var(--cream);font:400 1rem/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--red);color:var(--red-ink)}
:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:6px}
html{scrollbar-color:#3a332c var(--bg)}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-80px;z-index:100;background:var(--cream);color:var(--bg);padding:10px 14px;border-radius:10px;transition:top .25s var(--ease)}
.skip:focus{top:12px}
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 16px}
@media(min-width:768px){.wrap{padding:0 32px}}

.mono{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--stone)}
.eyebrow{font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone)}
.tag{display:inline-block;vertical-align:.1em;font:500 .625rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--brass);border:1px solid color-mix(in oklab,var(--brass) 45%,transparent);border-radius:999px;padding:4px 7px 3px;white-space:nowrap}
.muted{color:var(--stone-2)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:999px;border:0;cursor:pointer;font:600 .9375rem/1 var(--body);text-decoration:none;touch-action:manipulation;white-space:nowrap;transition:transform .16s var(--ease),background-color .25s,box-shadow .25s,color .25s}
.btn:active{transform:scale(.97)}
.btn-red{background:var(--red);color:var(--red-ink);box-shadow:0 10px 30px -12px color-mix(in oklab,var(--red) 80%,black)}
.btn-red:hover{background:var(--red-hi)}
.btn-line{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 1px var(--line-2)}
.btn-line:hover{box-shadow:inset 0 0 0 1px var(--stone)}
.btn-sm{min-height:42px;padding:0 18px;font-size:.875rem}
.btn[disabled]{opacity:.55;cursor:progress}
.ico-arrow{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease)}
.btn:hover .ico-arrow{transform:translateX(3px)}

/* ---------- demo strip ---------- */
.demo-strip{background:var(--bg-2);border-bottom:1px solid var(--line);font-size:.8125rem;color:var(--stone)}
.demo-strip .wrap{display:flex;gap:10px;align-items:flex-start;padding-top:9px;padding-bottom:9px}
.demo-strip b{color:var(--cream);font-weight:600}
.pip{flex:none;width:7px;height:7px;border-radius:50%;background:var(--red);margin-top:7px}

/* ---------- header ---------- */
.site{position:sticky;top:0;z-index:50;background:rgba(16,14,12,.92);border-bottom:1px solid transparent;transition:border-color .3s,background-color .3s}
@supports (backdrop-filter:blur(1px)){.site{background:rgba(16,14,12,.72);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px)}}
.site.is-scrolled{border-bottom-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:var(--header-h)}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none}
.mark{font:900 1.75rem/1 var(--display);letter-spacing:.01em}
.mark .l,.foot-big .l{color:var(--it-green)}
.mark .c,.foot-big .c{color:var(--cream)}
.mark .r,.foot-big .r{color:var(--red)}
.brand-sub{font:500 .6875rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}
.nav-links{display:none;gap:26px;font-size:.9375rem;color:var(--stone)}
.nav-links a{text-decoration:none;padding:10px 0;position:relative;transition:color .2s}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav-links a:hover{color:var(--cream)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
@media(min-width:960px){.nav-links{display:flex}}

/* ---------- hero ---------- */
.hero{position:relative;padding:36px 0 0;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;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")}
.hero-glow{position:absolute;z-index:-2;width:min(900px,120vw);aspect-ratio:1;right:-25%;top:-30%;border-radius:50%;background:radial-gradient(closest-side,rgba(217,74,53,.20),rgba(198,160,98,.06) 55%,transparent 75%);filter:blur(10px);animation:breathe 9s ease-in-out infinite alternate}
@keyframes breathe{from{transform:scale(.92) translateY(0);opacity:.75}to{transform:scale(1.06) translateY(30px);opacity:1}}
.hero-eyebrow{display:flex;gap:10px;flex-wrap:wrap}
.hero-eyebrow .sep{color:var(--red)}
.hero-title{margin-top:14px;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(3.6rem,15.5vw,10.5rem);line-height:.84;letter-spacing:-.005em;position:relative;z-index:3}
.hero-title .ln{display:block;overflow:hidden;padding:.16em 0 .04em;margin-top:-.16em}
.hero-title .ln>span{display:block;animation:lineUp 1s var(--ease) both}
.hero-title .ln:nth-child(2)>span{animation-delay:.08s}
.hero-title .ln:nth-child(3)>span{animation-delay:.16s}
.hero-title em{font-style:normal;color:var(--red)}
@keyframes lineUp{from{transform:translateY(105%)}to{transform:none}}
@media(min-width:960px){.hero-title .ln:nth-child(2){padding-left:12vw}}

.hero-stage{display:grid;gap:24px;margin-top:20px;padding-bottom:56px}
.hero-photo{position:relative;border-radius:var(--r);overflow:hidden;background:var(--surface);aspect-ratio:4/3}
.hero-photo img{width:100%;height:115%;object-fit:cover;filter:saturate(1.05) contrast(1.05)}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,14,12,.15),transparent 40%,rgba(16,14,12,.55))}
.hero-photo figcaption{position:absolute;left:14px;bottom:12px;z-index:2;color:rgba(240,233,220,.8);font-size:.6875rem}
.hero-side{display:grid;gap:22px;align-content:start}
.lead{font-size:1.0625rem;color:var(--stone);max-width:48ch}

@media(min-width:960px){
  .hero{padding-top:56px}
  .hero-stage{grid-template-columns:repeat(12,1fr);gap:32px;margin-top:-5.2vw;padding-bottom:88px;align-items:end}
  .hero-photo{grid-column:1 / span 8;aspect-ratio:16/10}
  .hero-side{grid-column:9 / span 4;padding-bottom:6px}
}

/* ticket */
.ticket{background:var(--surface);border-radius:var(--r);padding:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 30px 60px -30px rgba(0,0,0,.7);display:grid;gap:16px;position:relative}
.ticket::before{content:"";position:absolute;left:18px;right:18px;top:48px;border-top:1px dashed var(--line-2)}
.ticket-top{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:8px}
.ticket-kicker{color:var(--red)}
.ticket-main{display:flex;gap:16px;align-items:center}
.ticket-date{flex:none;width:70px;height:74px;border-radius:12px;background:var(--bg);display:grid;place-content:center;text-align:center;line-height:1}
.ticket-date b{font:900 2.2rem/1 var(--display)}
.ticket-date span{font:500 .6875rem/1 var(--mono);letter-spacing:.14em;color:var(--stone);margin-top:4px;display:block}
.ticket h2{font:800 1.6rem/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.ticket-price{margin-top:6px;font-size:.9375rem;color:var(--stone)}
.ticket-price b{color:var(--cream);font-weight:600;font-variant-numeric:tabular-nums}
.ticket-seats{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ticket-seats b{color:var(--cream);font-weight:500}
.seat-bar{flex:1;min-width:60px;max-width:150px;height:4px;border-radius:4px;background:var(--line);overflow:hidden}
.seat-bar i{display:block;height:100%;background:var(--red);transform-origin:left;transform:scaleX(var(--fill,.6));transition:transform 1.4s var(--ease)}
.ticket-actions{display:flex;flex-wrap:wrap;gap:10px}
.ticket-actions .btn{flex:1 1 auto}

/* marquee */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:16px 0;background:var(--bg)}
.marquee-track{display:flex;gap:28px;width:max-content;align-items:center;font:800 1.5rem/1 var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--stone-2);animation:marquee 34s linear infinite}
.marquee-track i{font-style:normal;color:var(--red);font-size:.9rem}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.sec{padding:88px 0}
@media(min-width:960px){.sec{padding:136px 0}}
.h2{font:900 clamp(2.6rem,7vw,5.6rem)/.9 var(--display);text-transform:uppercase;letter-spacing:-.005em;text-wrap:balance}
.sec-head{display:grid;gap:14px;margin-bottom:48px;max-width:860px}
.sec-lead{color:var(--stone);max-width:54ch;font-size:1.0625rem}
.sec-lead a{color:var(--cream)}
@media(min-width:960px){.sec-head{margin-bottom:72px}}

/* club */
.manifesto{margin-top:22px;font:600 clamp(1.5rem,3.4vw,2.7rem)/1.2 var(--body);letter-spacing:-.02em;max-width:30ch;text-wrap:pretty}
.manifesto em{font-style:normal;color:var(--red)}
.pillars{display:grid;gap:0;margin-top:64px;border-top:1px solid var(--line)}
.pillar{display:grid;grid-template-columns:48px 1fr;gap:6px 14px;padding:24px 0;border-bottom:1px solid var(--line)}
.pillar .num{color:var(--red);grid-row:span 2;padding-top:6px}
.pillar h3{font:800 1.6rem/1 var(--display);text-transform:uppercase}
.pillar p{color:var(--stone);max-width:42ch}
@media(min-width:960px){
  .pillars{grid-template-columns:repeat(3,1fr);border-top:0}
  .pillar{grid-template-columns:1fr;padding:28px 32px 0 0;border-bottom:0;border-top:1px solid var(--line);margin-right:24px}
  .pillar .num{grid-row:auto;padding:0 0 10px}
}
.services{display:grid;gap:14px;margin-top:56px}
@media(min-width:760px){.services{grid-template-columns:1fr 1fr;gap:20px}}
.service{position:relative;display:grid;gap:10px;padding:26px;border-radius:var(--r);background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;overflow:hidden;transition:box-shadow .3s,background-color .3s}
.service h3{font:900 2.4rem/.95 var(--display);text-transform:uppercase}
.service p{color:var(--stone);max-width:36ch;padding-right:52px}
.service p b{color:var(--cream)}
.service-go{position:absolute;right:22px;bottom:22px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--red);transition:background-color .3s,color .3s,transform .4s var(--ease)}
.service:hover{box-shadow:inset 0 0 0 1px var(--line-2);background:var(--surface)}
.service:hover .service-go{background:var(--red);color:var(--red-ink);transform:rotate(-45deg)}

/* ---------- day / road ---------- */
.day{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.day-grid{display:grid;gap:0}
.hud{position:sticky;top:var(--header-h);z-index:5;display:grid;grid-template-columns:auto auto 1fr;gap:4px 18px;align-items:center;padding:12px 0;margin:0 -16px 8px;padding-left:16px;padding-right:16px;background:rgba(24,20,15,.94);border-bottom:1px solid var(--line)}
.hud-row{display:flex;flex-direction:column;gap:2px;min-width:0}
.hud-label{font-size:.625rem;color:var(--stone-2)}
.hud-val{font:500 1.15rem/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--cream)}
.hud-name{font:800 1.15rem/1 var(--display);text-transform:uppercase;color:var(--red);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-meter{grid-column:1 / -1;height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.hud-meter i{display:block;height:100%;background:var(--red);transform-origin:left;transform:scaleX(0)}
@media(min-width:960px){
  .day-grid{grid-template-columns:240px 1fr;gap:40px;align-items:start}
  .hud{top:calc(var(--header-h) + 32px);grid-template-columns:1fr;gap:22px;margin:0;padding:24px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
  .hud-val{font-size:2.4rem}
  .hud-name{font-size:1.6rem;white-space:normal}
  .hud-meter{grid-column:auto}
}

.track{position:relative;--road-w:52px}
@media(min-width:960px){.track{--road-w:150px}}
.road{position:absolute;left:0;top:0;width:var(--road-w);height:100%;overflow:visible;pointer-events:none}
.road .asphalt{fill:none;stroke:#0B0A08;stroke-linecap:round;stroke-linejoin:round}
.road .edge{fill:none;stroke:rgba(240,233,220,.10);stroke-linecap:round;stroke-linejoin:round}
.road .dash{fill:none;stroke:rgba(240,233,220,.35);stroke-width:1.5;stroke-dasharray:8 12}
.road .drive{fill:none;stroke:var(--red);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(217,74,53,.6))}
.road .pin{fill:var(--bg-2);stroke:var(--stone-2);stroke-width:2;transition:fill .3s,stroke .3s}
.road .pin.is-passed{fill:var(--red);stroke:var(--red)}
.road .car{fill:var(--red)}
.road .car-halo{fill:rgba(217,74,53,.25)}

.stops{list-style:none;display:grid;gap:64px;padding:24px 0 8px calc(var(--road-w) + 18px)}
.stop{display:grid;gap:18px}
.stop-time{color:var(--red)}
.stop h3{font:900 clamp(2rem,4.6vw,3.4rem)/.92 var(--display);text-transform:uppercase;margin:8px 0 12px}
.stop p{color:var(--stone);max-width:44ch}
.stop-media{border-radius:var(--r);overflow:hidden;background:var(--surface);box-shadow:0 30px 60px -36px rgba(0,0,0,.8)}
.stop-media img{width:100%;aspect-ratio:3/2;object-fit:cover}
@media(min-width:960px){
  .stops{gap:120px;padding-left:calc(var(--road-w) + 40px)}
  .stop{grid-template-columns:1fr 1.15fr;gap:40px;align-items:center}
  .stop:nth-child(even) .stop-media{order:-1}
}

/* ---------- prices ---------- */
.price-grid{display:grid;gap:14px}
@media(min-width:640px){.price-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1080px){.price-grid{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.price{position:relative;display:grid;align-content:space-between;gap:28px;min-height:230px;padding:24px;border-radius:var(--r);background:var(--surface);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transform-style:preserve-3d;transition:transform .5s var(--ease),box-shadow .3s;overflow:hidden}
.price::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(260px circle at var(--hx,50%) var(--hy,0%),rgba(240,233,220,.08),transparent 60%);opacity:0;transition:opacity .3s}
.price:hover::after{opacity:1}
.amount{display:flex;align-items:flex-start;gap:6px;font:900 5rem/.8 var(--display);font-variant-numeric:tabular-nums}
.amount span{font-size:2rem;color:var(--stone);margin-top:6px}
.amount-word{font-size:3rem;line-height:.9;text-transform:uppercase;display:block}
.who{color:var(--stone);font-size:.9375rem}
.price-main{background:var(--red);color:var(--red-ink)}
.price-main .mono,.price-main .who,.price-main .amount span{color:rgba(255,245,240,.78)}
.includes{margin-top:32px;padding:24px;border-radius:var(--r);box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:16px}
.includes h3{font:800 1.4rem/1 var(--display);text-transform:uppercase;display:flex;gap:10px;align-items:center}
.includes ul{list-style:none;display:grid;gap:10px}
.includes li{display:flex;gap:12px;color:var(--stone)}
.includes li::before{content:"";flex:none;width:14px;height:2px;background:var(--red);margin-top:.78em}
@media(min-width:960px){.includes{grid-template-columns:240px 1fr;align-items:start;padding:32px}.includes ul{grid-template-columns:1fr 1fr;gap:12px 32px}}

/* ---------- join ---------- */
.join{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.join-grid{display:grid;gap:14px}
@media(min-width:760px){.join-grid{grid-template-columns:1fr 1fr}}
.join-card{padding:24px;border-radius:var(--r);background:var(--surface);display:grid;gap:10px;align-content:start}
.join-ico{width:44px;height:44px;border-radius:12px;background:var(--bg);display:grid;place-items:center;color:var(--red);margin-bottom:6px}
.join-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.join-card h3{font:800 1.6rem/1 var(--display);text-transform:uppercase}
.join-card p{color:var(--stone)}
.rules{margin-top:40px;display:grid;gap:18px}
.rules h3{font:800 1.4rem/1 var(--display);text-transform:uppercase;display:flex;gap:10px;align-items:center}
.rules ol{list-style:none;counter-reset:r;display:grid;gap:0;border-top:1px solid var(--line)}
.rules li{counter-increment:r;position:relative;padding:16px 0 16px 40px;border-bottom:1px solid var(--line);color:var(--stone)}
.rules li::before{content:counter(r,decimal-leading-zero);position:absolute;left:0;top:16px;font:500 .75rem/1.9 var(--mono);color:var(--red)}
.rules li b{color:var(--cream);font-weight:600}
@media(min-width:960px){.rules{grid-template-columns:240px 1fr;margin-top:56px}.rules ol{grid-template-columns:1fr 1fr;column-gap:40px;border-top:0}.rules li{border-top:1px solid var(--line);border-bottom:0}}

/* ---------- editions ---------- */
.ed-list{list-style:none;border-top:1px solid var(--line)}
.ed{position:relative;display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding:22px 0;border-bottom:1px solid var(--line);align-items:center}
.ed-date{grid-column:1 / -1;color:var(--red)}
.ed-info h3{font:900 clamp(1.8rem,4vw,3rem)/.95 var(--display);text-transform:uppercase;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ed-info p{color:var(--stone);margin-top:6px}
.ed-state{font:500 .6875rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--stone);border:1px solid var(--line-2);border-radius:999px;padding:7px 10px 6px;white-space:nowrap}
.ed-state.is-open{color:var(--red-ink);background:var(--red);border-color:var(--red)}
.ed-thumb{display:none}
@media(min-width:960px){
  .ed{grid-template-columns:140px 1fr auto;padding:30px 0}
  .ed-date{grid-column:auto}
  .ed-thumb{display:block;position:absolute;right:180px;top:50%;width:260px;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-sm);opacity:0;transform:translateY(-50%) rotate(-3deg) scale(.92);transition:opacity .35s,transform .5s var(--ease);pointer-events:none;box-shadow:0 30px 60px -20px rgba(0,0,0,.8)}
  .ed:hover .ed-thumb{opacity:1;transform:translateY(-50%) rotate(-2deg) scale(1)}
}

/* ---------- films ---------- */
.films-grid{display:grid;gap:36px;align-items:center}
@media(min-width:960px){.films-grid{grid-template-columns:7fr 5fr;gap:64px}}
.films-photo{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/2;background:var(--surface)}
.films-photo img{width:100%;height:115%;object-fit:cover}
.rec{position:absolute;top:14px;left:14px;display:flex;gap:8px;align-items:center;background:rgba(16,14,12,.7);color:var(--cream);padding:7px 10px;border-radius:999px;font-size:.6875rem}
.rec i{width:8px;height:8px;border-radius:50%;background:var(--red);animation:blink 1.4s steps(2,start) infinite}
@keyframes blink{to{visibility:hidden}}
.films-copy{display:grid;gap:16px}
.offer{display:flex;align-items:baseline;gap:12px;padding:16px 20px;border-radius:var(--r-sm);background:var(--surface);width:fit-content;margin:8px 0}
.offer b{font:900 3rem/1 var(--display);color:var(--red)}
.offer span{color:var(--stone)}
.row-actions{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- gallery ---------- */
.gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px 8px;scrollbar-width:none}
.gallery::-webkit-scrollbar{display:none}
.g{flex:none;width:78vw;max-width:420px;aspect-ratio:4/5;scroll-snap-align:center;border-radius:var(--r);overflow:hidden;background:var(--surface)}
.g img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.g:hover img{transform:scale(1.04)}
@media(min-width:960px){
  .gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:150px;gap:16px;overflow:visible;max-width:1280px;margin:0 auto;padding:0 32px}
  .g{width:auto;max-width:none;aspect-ratio:auto}
  .g-a{grid-column:1 / 8;grid-row:1 / 4}
  .g-b{grid-column:8 / 13;grid-row:1 / 3}
  .g-c{grid-column:8 / 13;grid-row:3 / 6}
  .g-d{grid-column:1 / 5;grid-row:4 / 6}
  .g-e{grid-column:5 / 8;grid-row:4 / 6}
}

/* ---------- booking ---------- */
.booking{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.book-grid{display:grid;gap:40px}
@media(min-width:1000px){.book-grid{grid-template-columns:5fr 7fr;gap:72px;align-items:start}.book-intro{position:sticky;top:calc(var(--header-h) + 40px)}}
.book-intro{display:grid;gap:14px}
.flow{list-style:none;margin-top:20px;border-top:1px solid var(--line)}
.flow li{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.flow .mono{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--red)}
.flow b{font-weight:600}
.flow p{color:var(--stone);font-size:.9375rem}

.panel{background:var(--surface);border-radius:22px;padding:20px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 40px 80px -48px rgba(0,0,0,.9)}
@media(min-width:600px){.panel{padding:36px}}
.steps{list-style:none;display:flex;gap:8px;margin-bottom:28px}
.steps li{flex:1;display:grid;gap:6px;font-size:.8125rem;color:var(--stone-2)}
.steps li::before{content:"";height:3px;border-radius:3px;background:var(--line);transition:background-color .5s var(--ease)}
.steps li .mono{font-size:.625rem}
.steps li.is-on{color:var(--cream)}
.steps li.is-on::before{background:var(--red)}
fieldset{border:0;display:grid;gap:18px;min-width:0}
legend{font:900 2rem/1 var(--display);text-transform:uppercase;margin-bottom:8px}
.cols{display:grid;gap:18px}
@media(min-width:600px){.cols{grid-template-columns:1fr 1fr}}
.field{display:grid;gap:8px;min-width:0}
.field label{font-size:.875rem;font-weight:500}
.req{color:var(--red)}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 14px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:1rem;caret-color:var(--red);transition:border-color .16s,box-shadow .25s}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A39886' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:42px}
.field textarea{min-height:96px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#857b6d}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(240,233,220,.25)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 3px rgba(217,74,53,.25)}
.err{display:none;font-size:.8125rem;color:var(--err)}
.field.is-invalid input{border-color:var(--err)}
.field.is-invalid .err,.err-block.is-shown{display:block}
.group{display:grid;border-radius:14px;background:var(--bg);overflow:hidden}
.group.is-hidden{display:none}
.counter{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border-top:1px solid var(--line)}
.counter:first-child{border-top:0}
.counter b{display:block;font-weight:600;font-size:.9375rem}
.counter span{font-size:.8125rem;color:var(--stone)}
.stepper{display:flex;align-items:center;gap:4px}
.stepper button{width:40px;height:40px;border-radius:50%;border:0;background:var(--surface);cursor:pointer;font-size:1.2rem;line-height:1;transition:background-color .2s,transform .12s}
.stepper button:hover{background:var(--surface-2)}
.stepper button:active{transform:scale(.92)}
.stepper button:disabled{opacity:.35;cursor:not-allowed}
.stepper output{min-width:28px;text-align:center;font:500 1rem/1 var(--mono);font-variant-numeric:tabular-nums}
.summary{border-radius:14px;background:var(--bg);overflow:hidden}
.summary div{display:flex;justify-content:space-between;gap:16px;padding:13px 16px;border-top:1px solid var(--line);font-size:.9375rem}
.summary div:first-child{border-top:0}
.summary dt{color:var(--stone)}
.summary dd{text-align:right;font-weight:500;overflow-wrap:anywhere}
.check-legal{display:flex;gap:10px;align-items:flex-start;font-size:.875rem;color:var(--stone);cursor:pointer}
.check-legal input{accent-color:var(--red);width:18px;height:18px;margin-top:2px;flex:none}

.step{display:none}
.step.is-active{display:block;animation:stepIn .5s var(--ease)}
@keyframes stepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.form-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.total{display:grid;gap:2px}
.total b{font:900 2rem/1 var(--display);font-variant-numeric:tabular-nums}
.total small{font-size:.75rem;color:var(--stone)}
.form-actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:599px){.form-foot{flex-direction:column;align-items:stretch}.form-actions .btn{flex:1}}

.step-done h3{font:900 2.4rem/1 var(--display);text-transform:uppercase}
.step-done>p{color:var(--stone);margin-top:10px}
.done-check{width:64px;height:64px;margin-bottom:20px}
.done-check svg{width:100%;height:100%;fill:none;stroke:var(--ok);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.done-check circle{stroke-dasharray:151;stroke-dashoffset:151;opacity:.5}
.done-check path{stroke-dasharray:36;stroke-dashoffset:36}
.step-done.is-active circle{animation:draw .7s var(--ease) forwards}
.step-done.is-active path{animation:draw .5s .45s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.status{list-style:none;margin:24px 0;display:grid}
.status li{position:relative;padding:10px 0 10px 30px;color:var(--stone);font-size:.9375rem}
.status li::before{content:"";position:absolute;left:4px;top:16px;width:12px;height:12px;border-radius:50%;background:var(--line-2)}
.status li::after{content:"";position:absolute;left:9px;top:30px;bottom:-6px;width:2px;background:var(--line)}
.status li:last-child::after{display:none}
.status b{font-weight:500;display:block}
.status small{color:var(--stone-2);font-size:.8125rem}
.status li.ok{color:var(--cream)}
.status li.ok::before{background:var(--ok)}
.status li.wait::before{background:var(--red);animation:ping 1.6s ease-in-out infinite}
@keyframes ping{50%{box-shadow:0 0 0 6px rgba(217,74,53,.22)}}
.demo-note{font-size:.8125rem;color:var(--stone-2);border-top:1px solid var(--line);padding-top:16px;margin-bottom:18px}

/* ---------- faq ---------- */
.faq-grid{display:grid;gap:40px}
@media(min-width:960px){.faq-grid{grid-template-columns:5fr 7fr;gap:72px;align-items:start}}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-weight:600;font-size:1.0625rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";flex:none;width:14px;height:14px;background:linear-gradient(var(--red),var(--red)) center/14px 2px no-repeat,linear-gradient(var(--red),var(--red)) center/2px 14px no-repeat;transition:transform .35s var(--ease)}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list summary:hover{color:#fff}
.faq-list details p{color:var(--stone);padding:0 0 22px;max-width:60ch}

/* ---------- sponsor ---------- */
.sponsor-sec{padding-top:0}
.sponsor{display:grid;gap:18px;justify-items:start;padding:32px 22px;border-radius:24px;background:radial-gradient(600px circle at 100% 0%,rgba(217,74,53,.16),transparent 60%),var(--bg-2);box-shadow:inset 0 0 0 1px var(--line)}
.sponsor>p:not(.eyebrow){color:var(--stone);max-width:58ch}
.sponsor-slots{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0}
.sponsor-slots span{font:800 1rem/1 var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--stone-2);border:1px dashed var(--line-2);border-radius:12px;padding:18px 22px}
@media(min-width:960px){.sponsor{padding:64px}}

/* ---------- footer ---------- */
.site-foot{padding:40px 0 32px;color:var(--stone);overflow:hidden}
.foot-big{font:900 clamp(7rem,34vw,26rem)/.78 var(--display);letter-spacing:-.01em;margin-bottom:32px;opacity:.95}
.foot-grid{display:grid;gap:28px}
@media(min-width:800px){.foot-grid{grid-template-columns:2fr 1fr 1fr}}
.foot-claim{font-size:1.125rem;color:var(--cream);max-width:30ch}
.foot-grid h3{margin-bottom:10px}
.foot-grid ul{list-style:none;display:grid;gap:2px}
.foot-grid a{text-decoration:none;display:inline-block;padding:6px 0;transition:color .2s}
.foot-grid a:hover{color:var(--cream)}
.credit{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:.8125rem;color:var(--stone-2);display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px}

/* ---------- reveal (JS adds .has-js) ---------- */
.has-js .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.has-js .reveal.is-in{opacity:1;transform:none}
.reveal[data-split]{opacity:1;transform:none}

/* ---------- reduced motion: only ambient / intrusive effects off ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .hero-glow,.marquee-track,.rec i,.status li.wait::before{animation:none}
  .hero-title .ln>span{animation:none}
  .has-js .reveal{transform:none;transition:opacity .4s linear}
}
