/* Home R3 (#66/#74 lane H1): per-section layouts + scroll storytelling.
   Rule: the base (unanimated) state is always the visible, final state.
   Hidden "from" states exist only inside  (a) @supports animation-timeline + no-preference  or  (b) html.mx-io (JS fallback).
   transform/opacity only · prefers-reduced-motion: reduce → no motion (site.css also kills all animation). */

/* anchors land below nothing (no fixed header) but keep a little air */
.mx{position:relative;scroll-margin-top:12px}
.mx h2{font-size:clamp(2rem,6.4vw,3.6rem);font-weight:800;letter-spacing:-.015em;line-height:1.05}
.mx-idx{display:flex;align-items:center;gap:10px;font:700 .74rem/1 var(--fh);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.mx-idx::before{content:"";width:26px;height:2px;background:currentColor;flex:none}
.mx .muted a,.mx-posts .muted a{color:var(--gold)}

/* scroll progress (gold hairline) */
.mx-progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:80;background:var(--gold);transform-origin:0 50%;transform:scaleX(var(--p,0));pointer-events:none}

/* chapter rail (desktop ≥1240, JS reveals it) */
.mx-chapters{position:fixed;left:22px;top:50%;z-index:40;display:grid;gap:6px;transform:translateY(-50%);opacity:0;pointer-events:none;transition:opacity .3s}
.mx-chapters.show{opacity:1;pointer-events:auto}
.mx-chapters a{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:999px;color:var(--tx-2);text-decoration:none;font:600 .74rem/1 var(--fh);letter-spacing:.04em}
.mx-chapters i{width:8px;height:8px;border-radius:50%;border:1.5px solid currentColor;flex:none;transition:transform .3s,background .3s}
.mx-chapters span{opacity:.0;transform:translateX(-4px);transition:opacity .25s,transform .25s}
.mx-chapters a:hover span,.mx-chapters a:focus-visible span{opacity:1;transform:none}
.mx-chapters span{position:absolute;left:30px;white-space:nowrap;padding:5px 10px;border-radius:999px;background:rgba(26,26,26,.92);color:var(--cream)}
.mx-chapters a{position:relative}
.mx-chapters a[aria-current="true"]{color:var(--gold)}
.mx-chapters a[aria-current="true"] i{background:var(--gold);transform:scale(1.3)}
@media (max-width:1199px){.mx-chapters{display:none}}

/* ─────────── 01 BRANCHES ─────────── */
.mx-br{background:var(--ink-2);padding-block:84px 72px;overflow-x:clip}
.mx-br__side{display:grid;gap:0;margin-bottom:26px;max-width:620px}
.mx-br__side .muted{margin-top:12px}
.mx-now{display:inline-flex;align-items:center;gap:10px;margin-top:18px;justify-self:start;padding:8px 14px;border-radius:999px;background:rgba(63,163,107,.14);color:#9FE0BC;font:600 .86rem/1.3 var(--fh)}
.mx-now i{width:8px;height:8px;border-radius:50%;background:var(--ok);flex:none}
.mx-now[data-tone="alert"]{background:rgba(183,52,42,.2);color:#FFB4AC}.mx-now[data-tone="alert"] i{background:var(--alert)}
.mx-railhint{margin-top:14px;font:600 .8rem var(--fh);color:var(--tx-2)}
.mx-br__all{justify-self:start;margin-top:18px}
.mx-br__railwrap{position:relative;timeline-scope:--mxrail}
.mx-br__rail{list-style:none;margin:0 calc(var(--gut)*-1);padding:6px var(--gut) 18px;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);scrollbar-width:none;overscroll-behavior-x:contain;scroll-timeline:--mxrail x}
.mx-br__rail::-webkit-scrollbar{display:none}
.mx-br__rail:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.mx-bc{flex:0 0 min(80%,340px);scroll-snap-align:start}
.mx-bc>a{position:relative;display:grid;height:100%;border-radius:18px;overflow:hidden;background:var(--ink-3);border:1px solid rgba(245,240,232,.1);text-decoration:none;color:inherit;transition:border-color .2s}
.mx-bc>a:hover{border-color:var(--gold)}
.mx-bc figure{margin:0;aspect-ratio:4/3;overflow:hidden;background:#111}
.mx-bc figure img{width:100%;height:100%;object-fit:cover}
.mx-bc__in{position:relative;display:grid;gap:6px;align-content:start;padding:16px 16px 18px}
.mx-bc__n{position:absolute;right:14px;top:-34px;font:800 3.2rem/1 var(--fh);color:var(--gold);-webkit-text-stroke:0;text-shadow:0 4px 18px rgba(0,0,0,.6);letter-spacing:-.04em}
.mx-bc h3{font-size:1.45rem}
.mx-bc .meta{font-size:.86rem;color:var(--tx-2)}
.mx-go{margin-top:6px;font:700 .9rem var(--fh);color:var(--gold)}
.mx-state{justify-self:start;display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:999px;font:600 .76rem/1.3 var(--fh);background:rgba(245,240,232,.08);color:var(--cream)}
.mx-state::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--tx-2);flex:none}
.mx-state[data-s="open"]{background:rgba(63,163,107,.18);color:#9FE0BC}.mx-state[data-s="open"]::before{background:var(--ok);box-shadow:0 0 0 3px rgba(63,163,107,.25)}
.mx-state[data-s="later"]{background:rgba(224,160,32,.16);color:#F3C766}.mx-state[data-s="later"]::before{background:var(--warn)}
.mx-state[data-s="closed"],.mx-state[data-s="shut"]{color:var(--tx-2)}
.mx-state[data-s="shut"]{background:rgba(183,52,42,.22);color:#FFB4AC}.mx-state[data-s="shut"]::before{background:var(--alert)}
.mx-state--tbc,.mx-state[data-s="tbc"]{background:rgba(248,176,56,.14);color:var(--gold)}.mx-state--tbc::before,.mx-state[data-s="tbc"]::before{background:var(--gold)}
.mx-br__bar{height:3px;margin-top:4px;border-radius:3px;background:rgba(245,240,232,.12);overflow:hidden}
.mx-br__bar i{display:block;height:100%;background:var(--gold);transform-origin:0 50%;transform:scaleX(var(--rp,.14))}

@media (min-width:1000px){
  .mx-br{padding-block:120px 110px}
  .mx-br__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:56px;align-items:start}
  .mx-br__side{position:sticky;top:72px;margin:0}
  .mx-railhint,.mx-br__bar{display:none}
  .mx-br__rail{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0;padding:0;overflow:visible;scroll-snap-type:none}
  .mx-bc{position:relative}
  .mx-bc:nth-child(even){top:96px}
  .mx-br__railwrap{padding-bottom:96px}
  .mx-bc figure{aspect-ratio:4/3.4}
}

/* ─────────── 02 EVENTS ─────────── */
.mx-ev{background:var(--ink);padding-block:84px;overflow-x:clip}
.mx-ev__side{margin-bottom:30px;max-width:620px}
.mx-ev__side .muted{margin-top:12px}
.mx-ev__big{display:none}
.mx-ev__track{position:relative;padding-left:26px}
.mx-ev__line{position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:rgba(245,240,232,.14);border-radius:2px;overflow:hidden}
.mx-ev__line i{position:absolute;inset:0;background:linear-gradient(var(--gold),#E07A1F);transform-origin:50% 0;transform:scaleY(var(--p,1))}
.mx-ev__list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.mx-ec>a{position:relative;display:grid;grid-template-columns:1fr;gap:0;border-radius:16px;overflow:visible;background:var(--ink-3);border:1px solid rgba(245,240,232,.1);text-decoration:none;color:inherit;transition:border-color .2s}
.mx-ec>a:hover{border-color:var(--gold)}
.mx-ec__dot{position:absolute;left:-25px;top:22px;width:14px;height:14px;border-radius:50%;background:var(--ink);border:3px solid var(--gold)}
.mx-ec__when{display:flex;align-items:baseline;gap:8px;padding:14px 16px 0;font-family:var(--fh)}
.mx-ec__when b{font-size:1.5rem;font-weight:800;color:var(--gold);line-height:1}
.mx-ec__when span{font-size:.82rem;color:var(--tx-2)}
.mx-ec figure{margin:12px 16px 0;aspect-ratio:16/8;border-radius:12px;overflow:hidden;background:#111}
.mx-ec figure img{width:100%;height:100%;object-fit:cover}
.mx-ec__in{display:grid;gap:4px;padding:12px 16px 16px}
.mx-type{justify-self:start;font:600 .72rem var(--fh);padding:3px 10px;border-radius:999px;background:var(--gold-soft);color:var(--gold)}
.mx-ec h3{font-size:1.15rem}
.mx-ec .where{font-size:.84rem;color:var(--tx-2)}
@media (min-width:1000px){
  .mx-ev{padding-block:120px}
  .mx-ev__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:56px;align-items:start}
  .mx-ev__side{position:sticky;top:72px;margin:0}
  .mx-ev__big{display:grid;margin-top:34px;font-family:var(--fh);line-height:.9}
  .mx-ev__big b{font-size:clamp(7rem,12vw,10.5rem);font-weight:800;color:transparent;-webkit-text-stroke:2px var(--gold);letter-spacing:-.05em}
  .mx-ev__big span{margin-top:10px;font:700 1.4rem var(--fh);color:var(--cream)}
  .mx-ev__track{padding-left:40px}
  .mx-ev__line{left:11px}
  .mx-ec__dot{left:-36px;top:28px}
  .mx-ec>a{grid-template-columns:200px 1fr;align-items:stretch}
  .mx-ec__when{grid-column:2;grid-row:1;padding:18px 20px 0}
  .mx-ec figure{grid-column:1;grid-row:1/3;margin:0;aspect-ratio:auto;height:100%;min-height:150px;border-radius:15px 0 0 15px}
  .mx-ec__in{grid-column:2;padding:8px 20px 18px}
  .mx-ev__list{gap:22px}
  .mx-ec.on>a{border-color:rgba(248,176,56,.55)}
}

/* ─────────── 03 HOUSE-BREWED (cream) ─────────── */
.mx-beer{background:var(--paper);color:var(--tx-dark);padding-block:64px;overflow:clip}
.mx-beer .muted{color:var(--tx-dark-2);margin-top:12px}
.mx-beer .mx-idx{color:var(--gold-tx)}
.mx-beer__head{display:grid;gap:20px;margin-bottom:8px}
.mx-filter{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gut)*-1);padding:2px var(--gut) 6px}
.mx-filter::-webkit-scrollbar{display:none}
.mx-filter button{flex:none;min-height:40px;font:600 .88rem var(--fh);padding:8px 16px;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;white-space:nowrap}
.mx-filter button[aria-pressed="true"]{background:var(--ink);color:var(--gold)}
.mx-filter button:focus-visible{outline:2px solid var(--gold-d);outline-offset:2px}
.mx-count{min-height:1.4em;font-size:.84rem;color:var(--tx-dark-2);margin:2px 0 14px}
.mx-labels{list-style:none;margin:0;padding:8px 4px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}
.mx-lb{transform:rotate(var(--r,0deg));transform-origin:50% 50%;min-width:0}
.mx-lb>a{display:grid;gap:4px;text-decoration:none;color:var(--tx-dark);transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.mx-lb__art{display:block;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#111;box-shadow:0 1px 0 rgba(0,0,0,.08),0 10px 20px -12px rgba(26,26,26,.45);margin-bottom:8px}
.mx-lb__art img{width:100%;height:100%;object-fit:cover}
.mx-lb b{font:700 1rem/1.2 var(--fh)}
.mx-lb span:last-child{font-size:.8rem;color:var(--tx-dark-2)}
.mx-lb>a:hover,.mx-lb>a:focus-visible{transform:rotate(calc(var(--r,0deg) * -1)) translateY(-3px)}
/* filter: non-matching cards fade, then leave the grid */
.mx-lb>a{transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .2s ease}
.mx-lb.off>a{opacity:0}
.mx-beer__more{display:flex;justify-content:center;margin-top:30px}
@media (min-width:760px){
  .mx-labels{grid-template-columns:repeat(3,minmax(0,220px));justify-content:center;gap:28px 26px}
}
@media (min-width:1000px){
  .mx-beer{padding-block:110px}
  .mx-beer__head{grid-template-columns:1fr;gap:22px}
  .mx-filter{margin:0;padding:2px 0 6px}
  .mx-labels{grid-template-columns:repeat(4,minmax(0,228px));gap:32px 28px}
}

/* ─────────── 04 PRIVATE EVENTS (photo-backed) ─────────── */
.mx-pe{isolation:isolate;overflow:clip;padding-block:84px;background:var(--ink)}
.mx-pe__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.mx-pe::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,18,16,.86),rgba(20,18,16,.8) 40%,rgba(20,18,16,.92))}
.mx-pe .muted{color:#D8CFC1;margin-top:12px}
.mx-pe__media{display:none}
.mx-steps{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:14px}
.mx-st{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:18px;border-radius:16px;background:rgba(26,26,26,.78);border:1px solid rgba(245,240,232,.14);backdrop-filter:blur(4px)}
.mx-st__n{font:800 1.5rem/1 var(--fh);color:var(--gold)}
.mx-st h3{font-size:1.25rem;margin-bottom:6px}
.mx-st p{color:#E4DCCF;font-size:.95rem}
.mx-st__img{grid-column:1/-1;margin:4px 0 0;aspect-ratio:16/9;border-radius:12px;overflow:hidden}
.mx-st__img img{width:100%;height:100%;object-fit:cover}
.mx-occ{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.mx-occ li{padding:5px 12px;border-radius:999px;border:1px solid rgba(245,240,232,.3);font:600 .8rem var(--fh);color:var(--cream)}
.mx-cap{display:flex;gap:22px;margin:14px 0 16px}
.mx-cap span{display:grid;font-size:.8rem;color:#D8CFC1}
.mx-cap b{font:800 2.6rem/1 var(--fh);color:var(--gold)}
@media (min-width:1000px){
  .mx-pe{padding-block:120px}
  .mx-pe__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
  .mx-pe__media{display:block;position:sticky;top:72px;height:min(78vh,680px);border-radius:22px;overflow:hidden;background:#111;box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
  .mx-pe__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .7s ease,transform 1.2s cubic-bezier(.2,.7,.2,1)}
  .mx-pe__media img.on{opacity:1;transform:none}
  .mx-pe__cap{position:absolute;left:16px;bottom:16px;padding:8px 14px;border-radius:999px;background:rgba(26,26,26,.85);font:600 .86rem var(--fh);color:var(--cream)}
  .mx-pe__copy{padding-top:10px}
  .mx-steps{gap:0;margin-top:40px}
  .mx-st{min-height:58vh;align-content:center;background:none;border:0;border-top:1px solid rgba(245,240,232,.16);border-radius:0;padding:40px 0;backdrop-filter:none;opacity:.42;transition:opacity .45s}
  .mx-st.on{opacity:1}
  .mx-st:last-child{min-height:50vh}
  .mx-st__img{display:none}
  .mx-st__n{font-size:2.2rem}
  .mx-st h3{font-size:1.7rem}
}

/* ─────────── 05 PARTNERS ─────────── */
.mx-pt{background:var(--ink-2);padding-block:64px 84px;overflow-x:clip}
.mx-marq{display:grid;gap:4px;margin-bottom:46px;pointer-events:none;user-select:none}
.mx-marq__row{white-space:nowrap;font:800 clamp(2.6rem,9vw,6.4rem)/1.05 var(--fh);letter-spacing:-.02em;color:var(--gold);transform:translateX(calc(var(--mq,0) * -1%))}
.mx-marq__row--o{color:transparent;-webkit-text-stroke:1.5px rgba(245,240,232,.55);transform:translateX(calc(-30% + var(--mq,0) * 1%))}
.mx-marq__row span{display:inline-block}
.mx-pt__head{max-width:680px}
.mx-pt .muted{margin-top:12px}
.mx-routes{list-style:none;margin:34px 0 26px;padding:0;border-top:1px solid rgba(245,240,232,.16)}
.mx-routes li{border-bottom:1px solid rgba(245,240,232,.16)}
.mx-routes a{position:relative;display:grid;grid-template-columns:48px 1fr 36px;gap:12px;align-items:center;padding:20px 0;text-decoration:none;color:inherit}
.mx-rt__n{font:800 1.1rem var(--fh);color:var(--gold)}
.mx-rt__t b{display:block;font:800 clamp(1.25rem,3.6vw,2.2rem)/1.15 var(--fh)}
.mx-rt__t small{display:block;margin-top:4px;color:var(--tx-2);font-size:.88rem}
.mx-routes img{display:none}
.mx-rt__ar{justify-self:end;font:800 1.5rem var(--fh);color:var(--gold);transition:transform .25s}
.mx-routes a:hover .mx-rt__ar,.mx-routes a:focus-visible .mx-rt__ar{transform:translateX(6px)}
.mx-routes a:hover b{color:var(--gold)}
@media (min-width:1000px){
  .mx-pt{padding-block:90px 120px}
  .mx-routes a{grid-template-columns:80px 1fr 180px 48px;padding:28px 0}
  .mx-routes img{display:block;width:180px;height:110px;object-fit:cover;border-radius:12px;opacity:0;transform:translateX(16px) rotate(2deg);transition:opacity .3s,transform .4s cubic-bezier(.2,.7,.2,1)}
  .mx-routes a:hover img,.mx-routes a:focus-visible img{opacity:1;transform:none}
}

/* stories */
.mx-posts{background:var(--ink)}
.mx-posts h2{font-size:clamp(1.8rem,5vw,2.8rem)}
.mx-posts__cta{margin-top:22px}

/* hero + photo chapters: keep composition, add depth */
.mx-px{overflow:clip}

/* ═════════ MOTION A · CSS scroll-driven (Chromium/Safari 26+) ═════════ */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .mx-progress{animation:mx-grow linear both;animation-timeline:scroll(root)}
    @keyframes mx-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}

    .mx-hero .hero__body{animation:mx-heroout linear both;animation-timeline:view();animation-range:exit 5% exit 90%}
    .mx-hero .hero__bg img{animation:mx-heroimg linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    @keyframes mx-heroout{to{opacity:0;transform:translateY(-70px) scale(.97)}}
    @keyframes mx-heroimg{to{transform:scale(1.14) translateY(4%)}}

    .mx-px img{animation:mx-par linear both;animation-timeline:view()}
    @keyframes mx-par{from{transform:translateY(-7%) scale(1.14)}to{transform:translateY(7%) scale(1.14)}}

    [data-mx]{animation:mx-rise linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
    @keyframes mx-rise{from{opacity:0;transform:translateY(42px)}to{opacity:1;transform:none}}

    /* branches: cards lift in; photos drift inside their frame */
    .mx-bc{animation:mx-card linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
    @keyframes mx-card{from{opacity:0;transform:translateY(70px) scale(.94)}to{opacity:1;transform:none}}
    .mx-bc figure img{animation:mx-par2 linear both;animation-timeline:view()}
    @keyframes mx-par2{from{transform:translateY(-6%) scale(1.14)}to{transform:translateY(6%) scale(1.14)}}
    .mx-br__bar i{animation:mx-grow linear both;animation-timeline:--mxrail}

    /* events: cards slide in from the right; the line fills as you read down */
    .mx-ec{animation:mx-slide linear both;animation-timeline:view();animation-range:entry 0% cover 35%}
    @keyframes mx-slide{from{opacity:0;transform:translateX(70px)}to{opacity:1;transform:none}}
    .mx-ev__track{view-timeline:--mxev block}
    .mx-ev__line i{animation:mx-filly linear both;animation-timeline:--mxev;animation-range:entry 40% exit 40%}
    @keyframes mx-filly{from{transform:scaleY(0)}to{transform:scaleY(1)}}

    /* labels: dealt onto the table, spinning into their resting tilt */
    .mx-lb{animation:mx-deal linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
    .mx-lb:nth-child(4n+2){animation-range:entry 5% cover 31%}
    .mx-lb:nth-child(4n+3){animation-range:entry 10% cover 34%}
    .mx-lb:nth-child(4n+4){animation-range:entry 15% cover 37%}
    @keyframes mx-deal{from{opacity:0;transform:translateY(48px) rotate(calc(var(--r,0deg) * -3)) scale(.92)}to{opacity:1;transform:rotate(var(--r,0deg))}}

    /* private events: steps rise; background drifts */
    .mx-pe__bg{animation:mx-par linear both;animation-timeline:view()}

    /* partners: scroll-linked marquee */
    .mx-marq{view-timeline:--mxmq block}
    .mx-marq__row{animation:mx-mq linear both;animation-timeline:--mxmq}
    .mx-marq__row--o{animation-name:mx-mq2}
    @keyframes mx-mq{from{transform:translateX(0)}to{transform:translateX(-32%)}}
    @keyframes mx-mq2{from{transform:translateX(-32%)}to{transform:translateX(0)}}
    .mx-routes li:nth-child(2){animation-range:entry 10% entry 80%}
    .mx-routes li:nth-child(3){animation-range:entry 20% entry 90%}
  }
}

/* ═════════ MOTION B · JS fallback (html.mx-io, no scroll-timeline support) ═════════ */
.mx-io [data-mx]{transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.mx-io [data-mx]:not(.in){opacity:0;transform:translateY(40px)}
.mx-io .mx-ec:not(.in){transform:translateX(60px)}
.mx-io .mx-lb:not(.in){transform:translateY(48px) rotate(calc(var(--r,0deg) * -3)) scale(.92)}
.mx-io .mx-lb.in{transform:rotate(var(--r,0deg))}

@media (prefers-reduced-motion:reduce){
  .mx-progress,.mx-chapters{display:none}
  .mx-lb>a,.mx-pe__media img,.mx-st{transition:none}
  .mx-lb{transform:rotate(var(--r,0deg))}
}
