/* ============ Feature and venue pages, v3 (November 2026) ============
   Centred hero with a live scene (labelled sources → Leisbase hub with a ticker → product panel),
   a statement, sticky stacked cards, an input → Leisbase → output diagram, a capability grid.
   Every page brings its own sources, ticker, steps and outputs, so every scene tells its own story.
   Animations: SVG SMIL and CSS only (strict CSP, no scripts); all of it stops with reduced motion. */

.g-sell{--p1:#FF5A45;--p2:#FF8A3D;--pk:#C9321C}
.g-guests{--p1:#0FB5B5;--p2:#0A8E93;--pk:#08797F}
.g-team{--p1:#3C93F4;--p2:#0A5E8A;--pk:#0A5E8A}
.g-run{--p1:#2BB673;--p2:#17845C;--pk:#17845C}

/* ---------- hero ---------- */
.v-hero{position:relative;padding:44px 0 0;background:var(--bg);overflow:hidden}
.v-head{text-align:center;display:flex;flex-direction:column;align-items:center}
.v-head .crumb{font-size:13.5px;color:var(--ink-faint);margin-bottom:22px}
.v-head .crumb a{color:var(--ink-soft);font-weight:500}
.v-head .crumb span{margin:0 4px}
.v-head h1{font-size:clamp(38px,5.6vw,76px);line-height:1.02;letter-spacing:-.045em;font-weight:560;max-width:16ch;margin-top:20px;text-wrap:balance}
.v-head .f-lead{font-size:clamp(17px,1.5vw,19.5px);max-width:40em;margin:22px auto 0;color:var(--ink-soft)}
.v-head .hero-cta{margin-top:30px;justify-content:center}

/* scene */
.stg{position:relative;margin-top:26px}
.stg-box{position:relative;width:min(1200px,100%);margin:0 auto;aspect-ratio:1200/300}
.stg-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.stg-r{fill:none;stroke:rgba(13,31,43,.06);stroke-width:1.2}
.stg-l{fill:none;stroke:rgba(8,121,127,.38);stroke-width:1.8;stroke-dasharray:4 7;animation:stg-run 1.2s linear infinite}
.stg-d{fill:var(--p1,#FF5A45)}
.stg-d.c{fill:#08979F}
@keyframes stg-run{to{stroke-dashoffset:-22}}

.stg-n{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;transform:translate(-50%,-50%);animation:stg-bob 5s ease-in-out infinite}
.stg-n.n1{left:12.5%;top:calc(70/300*100% + 12px);animation-delay:-1s}
.stg-n.n2{left:30.83%;top:calc(196/300*100% + 12px);animation-delay:-2.5s}
.stg-n.n3{left:69.17%;top:calc(196/300*100% + 12px);animation-delay:-.4s}
.stg-n.n4{left:87.5%;top:calc(70/300*100% + 12px);animation-delay:-3.4s}
@keyframes stg-bob{0%,100%{translate:0 0}50%{translate:0 -6px}}
.stg-t{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px rgba(13,31,43,.06),0 12px 26px -14px rgba(13,31,43,.35);color:var(--pk,var(--brand))}
.stg-t .ic{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.stg-lb{font-size:13px;font-weight:550;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:100px;padding:5px 12px;white-space:nowrap;box-shadow:0 1px 2px rgba(13,31,43,.05)}

.stg-hub{position:absolute;left:50%;top:calc(284/300*100%);transform:translate(-50%,-50%);z-index:3;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:9px 16px 9px 9px;box-shadow:0 0 0 6px rgba(255,255,255,.7),0 20px 40px -18px rgba(13,31,43,.4)}
.stg-hub::before{content:"";position:absolute;inset:-6px;border-radius:24px;border:2px solid var(--p1,#FF5A45);opacity:0;animation:stg-ping 2.4s ease-out infinite}
@keyframes stg-ping{0%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(1.18)}}
.stg-logo{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--bg);border:1px solid var(--line);flex:none}
.stg-live{display:flex;align-items:center;gap:9px;height:22px;overflow:hidden;min-width:230px}
.stg-live i{width:8px;height:8px;border-radius:50%;background:#22C55E;flex:none;box-shadow:0 0 0 3px rgba(34,197,94,.18)}
.stg-live ul{list-style:none;margin:0;padding:0;font-size:14px;font-weight:550;color:var(--ink);animation:stg-tick 12s cubic-bezier(.7,0,.3,1) infinite}
.stg-live li{height:22px;line-height:22px;white-space:nowrap}
@keyframes stg-tick{0%,20%{transform:translateY(0)}25%,45%{transform:translateY(-22px)}50%,70%{transform:translateY(-44px)}75%,95%{transform:translateY(-66px)}100%{transform:translateY(-88px)}}

.stg-panel{position:relative;margin-top:-6px;border-radius:32px 32px 0 0;padding:64px clamp(18px,5vw,72px) 0;background:url(/_site/img/grain.png) center/240px repeat,linear-gradient(160deg,var(--p1,#FF5A45),var(--p2,#FF8A3D));background-blend-mode:soft-light,normal;overflow:hidden;max-height:560px}
.stg-panel::after{content:"";position:absolute;left:0;right:0;bottom:0;height:140px;background:linear-gradient(180deg,rgba(245,248,250,0),var(--bg));pointer-events:none}
.stg-panel::before{content:"";position:absolute;left:50%;top:0;width:2px;height:64px;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0));transform:translateX(-50%)}
.stg-mk{position:relative;max-width:900px;margin:0 auto}
.stg-mk .mk-stage{padding:0}
.stg-panel .stg-mk>*{animation:stg-rise 1s cubic-bezier(.2,.7,.2,1) both .2s}
@keyframes stg-rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}

/* ---------- statement ---------- */
.v-state{padding:110px 0 70px;text-align:center}
.v-state h2{font-size:clamp(34px,5vw,64px);line-height:1.03;letter-spacing:-.045em;font-weight:560;max-width:17ch;margin:0 auto}
.v-state p{font-size:clamp(17px,1.4vw,19px);color:var(--ink-soft);line-height:1.6;max-width:38em;margin:24px auto 0}

/* ---------- sticky stacked cards ---------- */
.stk{padding:10px 0 60px}
.stk .wrap{display:flex;flex-direction:column;gap:28px}
.stk-card{position:sticky;top:96px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;background:#fff;border:1px solid var(--line);border-radius:32px;padding:20px 20px 20px 48px;min-height:540px;box-shadow:0 30px 60px -40px rgba(13,31,43,.35)}
.stk-card:nth-child(2){top:116px}
.stk-card:nth-child(3){top:136px}
.stk-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:28px 0}
.stk-copy h3{font-size:clamp(28px,3vw,42px);line-height:1.05;letter-spacing:-.04em;font-weight:560;margin-top:20px}
.stk-copy p{color:var(--ink-soft);font-size:17px;line-height:1.6;margin-top:16px}
.stk-copy .f-points{margin-top:18px}
.stk-link{margin-top:24px;font-weight:600;color:var(--ink);border-bottom:1.5px solid var(--line-2);align-self:flex-start;padding-bottom:2px}
.stk-link:hover{border-color:var(--ink)}
.stk-art{position:relative;border-radius:24px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:36px 28px;background:url(/_site/img/grain.png) center/240px repeat,linear-gradient(160deg,var(--p1),var(--p2));background-blend-mode:soft-light,normal}
.stk-art .stg-mk{width:100%}
.stk-art .f-ill{width:100%;height:auto;border-radius:18px}

/* ---------- input → Leisbase → output ---------- */
.v-flow{padding:90px 0 40px}
.v-sh{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:44px}
.v-sh h2{font-size:clamp(30px,4vw,52px);line-height:1.05;letter-spacing:-.04em;font-weight:560;max-width:20ch;margin-top:18px}
.dia{position:relative;display:grid;grid-template-columns:25% 13% 24% 13% 25%;height:360px;background:var(--panel-2);border:1px solid var(--line);border-radius:28px;padding:0;overflow:hidden;background-image:radial-gradient(rgba(13,31,43,.07) 1px,transparent 1.2px);background-size:22px 22px}
.dia-svg{position:absolute;inset:0;width:100%;height:100%}
.dia-l{fill:none;stroke:rgba(13,31,43,.22);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-dasharray:4 7;animation:stg-run 1.2s linear infinite}
.dia-l.o{stroke:var(--accent)}
.dia-ins,.dia-outs{display:grid;grid-template-rows:repeat(3,1fr);align-items:center;position:relative;z-index:1}
.dia-ins{grid-column:1;justify-items:end;padding-right:0}
.dia-outs{grid-column:5;justify-items:start}
.dia-in{display:flex;align-items:center;gap:10px;margin-right:-1px}
.dia-in .stg-t{width:46px;height:46px;border-radius:13px}
.dia-in .stg-lb{order:-1}
.dia-hub{grid-column:3;align-self:center;position:relative;z-index:1;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 48px -26px rgba(13,31,43,.4);overflow:hidden}
.dia-hh{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:15px}
.dia-hh .stg-logo{width:38px;height:38px;border-radius:11px}
.dia-hub ul{list-style:none;margin:0;padding:6px 0}
.dia-hub li{display:flex;align-items:center;gap:10px;padding:9px 14px;font-size:13.5px;color:var(--ink-2)}
.dia-st{position:relative;width:18px;height:18px;flex:none}
.dia-st .sp,.dia-st .ok{position:absolute;inset:0}
.dia-st .sp{border:2px solid var(--line-2);border-top-color:var(--brand);border-radius:50%;animation:dia-spin .8s linear infinite,dia-sp 6s infinite}
.dia-st .ok{width:18px;height:18px;border-radius:50%;background:var(--mint);stroke:#fff;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;padding:2px;opacity:0;animation:dia-ok 6s infinite}
.dia-hub li.s2 .sp,.dia-hub li.s2 .ok{animation-delay:0s,.9s}
.dia-hub li.s2 .ok{animation-delay:.9s}
.dia-hub li.s3 .sp{animation-delay:0s,1.8s}
.dia-hub li.s3 .ok{animation-delay:1.8s}
@keyframes dia-spin{to{transform:rotate(360deg)}}
@keyframes dia-sp{0%,18%{opacity:1}22%,92%{opacity:0}100%{opacity:1}}
@keyframes dia-ok{0%,18%{opacity:0;transform:scale(.4)}24%{opacity:1;transform:scale(1.15)}28%,92%{opacity:1;transform:scale(1)}100%{opacity:0}}
.dia-out{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:9px 14px 9px 9px;margin-left:-1px;max-width:100%;box-shadow:0 1px 2px rgba(13,31,43,.05);animation:dia-glow 6s infinite}
.dia-out.k1{animation-delay:2.4s}.dia-out.k2{animation-delay:2.6s}.dia-out.k3{animation-delay:2.8s}
@keyframes dia-glow{0%,30%{border-color:var(--line);box-shadow:0 1px 2px rgba(13,31,43,.05)}36%,80%{border-color:rgba(255,90,69,.55);box-shadow:0 0 0 4px rgba(255,90,69,.10)}100%{border-color:var(--line)}}
.dia-out .stg-t{width:40px;height:40px;border-radius:11px;box-shadow:none;background:var(--bg)}
.dia-out .stg-t .ic{width:20px;height:20px}
.dia-out b{display:block;font-size:14px;font-weight:600}
.dia-out small{display:block;font-size:12.5px;color:var(--ink-soft);line-height:1.35}

/* ---------- capabilities ---------- */
.caps{padding:90px 0 30px}
.cap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:28px;overflow:hidden;background:#fff}
.cap{padding:32px 30px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}
.cap:nth-child(3n){border-right:0}
.cap:nth-last-child(-n+3){border-bottom:0}
.cap:hover{background:var(--panel-2)}
.cap .fi{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--brand-tint);color:var(--brand)}
.cap .fi .ic{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cap h3{font-size:18px;font-weight:600;letter-spacing:-.02em;margin-top:18px}
.cap p{color:var(--ink-soft);font-size:15px;line-height:1.55;margin-top:8px}

/* ---------- smaller screens ---------- */
@media(max-width:980px){
  .stk-card{position:relative;top:auto!important;grid-template-columns:1fr;padding:28px 20px 20px;min-height:0}
  .stk-copy{padding:0 6px}
  .cap-grid{grid-template-columns:1fr 1fr}
  .cap:nth-child(3n){border-right:1px solid var(--line)}
  .cap:nth-child(2n){border-right:0}
  .cap:nth-last-child(-n+3){border-bottom:1px solid var(--line)}
  .cap:nth-last-child(-n+2){border-bottom:0}
}
@media(max-width:760px){
  .stg-box{aspect-ratio:auto;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:8px 16px 0}
  .stg-svg{display:none}
  .stg-n{position:static;transform:none;flex-direction:row;gap:6px;animation:none}
  .stg-n .stg-t{width:34px;height:34px;border-radius:10px}
  .stg-n .stg-t .ic{width:18px;height:18px}
  .stg-n .stg-lb{font-size:12px;padding:4px 9px}
  .stg-hub{position:relative;left:auto;top:auto;transform:none;margin:14px auto 0;width:calc(100% - 8px);max-width:360px}
  .stg-live{min-width:0;flex:1}
  .stg-live ul{font-size:13px}
  .stg-panel{padding-top:44px;border-radius:24px 24px 0 0;max-height:440px}
  .v-state{padding:70px 0 40px}
  .dia{display:flex;flex-direction:column;height:auto;gap:14px;padding:20px}
  .dia-svg{display:none}
  .dia-ins,.dia-outs{display:flex;flex-direction:column;align-items:stretch;gap:8px}
  .dia-in{margin:0}
  .dia-in .stg-lb{order:0}
  .dia-out{margin:0}
  .cap-grid{grid-template-columns:1fr}
  .cap{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .cap:last-child{border-bottom:0!important}
}
@media(prefers-reduced-motion:reduce){
  .stg-l,.dia-l,.stg-n,.stg-hub::before,.stg-live ul,.stg-panel .stg-mk>*,.dia-st .sp,.dia-st .ok,.dia-out{animation:none!important}
  .stg-d{display:none}
  .dia-st .sp{display:none}
  .dia-st .ok{opacity:1}
}

/* ---------- venue pages: the splits become sticky stacked cards with coloured art panels ---------- */
.splits{background:var(--bg);border:0;padding:30px 0 70px}
.splits .wrap{display:flex;flex-direction:column;gap:28px}
.splits .split{position:sticky;top:96px;margin:0;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;align-items:stretch;background:#fff;border:1px solid var(--line);border-radius:32px;padding:20px 20px 20px 48px;min-height:540px;box-shadow:0 30px 60px -40px rgba(13,31,43,.35)}
.splits .split:nth-child(2){top:116px}.splits .split:nth-child(3){top:136px}
.splits .split.flip .s-copy{order:0}
.splits .s-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:28px 0}
.splits .s-copy h3{font-size:clamp(28px,3vw,42px);line-height:1.05;letter-spacing:-.04em;font-weight:560;margin-top:20px}
.splits .split>.mk-stage{border-radius:24px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:36px 28px;--p1:#FF5A45;--p2:#FF8A3D;background:url(/_site/img/grain.png) center/240px repeat,linear-gradient(160deg,var(--p1),var(--p2));background-blend-mode:soft-light,normal}
.splits .split:nth-child(2)>.mk-stage{--p1:#0FB5B5;--p2:#0A8E93}
.splits .split:nth-child(3)>.mk-stage{--p1:#3C93F4;--p2:#0A5E8A}
.splits .split>.mk-stage>*{width:100%}
@media(max-width:980px){
  .splits .split{position:relative;top:auto!important;grid-template-columns:1fr;padding:28px 20px 20px;min-height:0}
  .splits .s-copy{padding:0 6px}
}

/* ---------- stacks: a 12px deck edge, and the covered card sinks back as the next one slides over ---------- */
.stk-card:nth-child(2),.splits .split:nth-child(2){top:108px}
.stk-card:nth-child(3),.splits .split:nth-child(3){top:120px}
.stk-card:nth-child(4){top:132px}.stk-card:nth-child(5){top:144px}
.stk .wrap,.splits--stack .wrap{view-timeline:--deck}
@supports (animation-timeline:view()){
  @media(min-width:981px) and (prefers-reduced-motion:no-preference){
    .stk-card:not(:last-child),.splits--stack .split:not(:last-child){transform-origin:50% 0;animation:deck-sink linear both;animation-timeline:--deck}
    .stk-card:nth-child(1),.splits--stack .split:nth-child(1){animation-range:exit-crossing 0% exit-crossing 30%}
    .stk-card:nth-child(2),.splits--stack .split:nth-child(2){animation-range:exit-crossing 25% exit-crossing 55%}
    .stk-card:nth-child(3),.splits--stack .split:nth-child(3){animation-range:exit-crossing 45% exit-crossing 75%}
    .stk-card:nth-child(4){animation-range:exit-crossing 62% exit-crossing 88%}
  }
}
@keyframes deck-sink{to{transform:scale(.94);filter:brightness(.9) saturate(.9)}}

/* ---------- venue splits: every art side gets a coloured stage, also the plain panels ---------- */
.splits .split>div:not(.s-copy):not(.mk-stage){border-radius:24px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:36px 28px;--p1:#FF5A45;--p2:#FF8A3D;background:url(/_site/img/grain.png) center/240px repeat,linear-gradient(160deg,var(--p1),var(--p2));background-blend-mode:soft-light,normal}
.splits .split:nth-child(2)>div:not(.s-copy){--p1:#0FB5B5;--p2:#0A8E93}
.splits .split:nth-child(3)>div:not(.s-copy){--p1:#3C93F4;--p2:#0A5E8A}
.splits .split>div:not(.s-copy)>.panel{width:100%;box-shadow:0 30px 60px -28px rgba(13,31,43,.55);border:0}
.splits--duo .split>div:not(.s-copy){padding:22px 16px;min-height:280px}
.splits--alt .split>div:not(.s-copy){box-shadow:16px 16px 0 -2px rgba(13,31,43,.06)}
.splits--alt .split.flip>div:not(.s-copy){box-shadow:-16px 16px 0 -2px rgba(13,31,43,.06)}
@media(max-width:980px){.splits .split>div:not(.s-copy){padding:22px 14px}}
