/* vietnamese */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8388ac8b-f47f-4bad-850c-b898f2e77fd3.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/0d0306f7-64ca-4f85-9ba9-2e424c6fffa6.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/b397b294-ceda-43a1-ad7b-e9148346ecc1.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/25168cd1-c68d-40e9-964b-c670116d91b5.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/e70689dc-3e37-4685-a44b-bb51e9efe05d.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/ca77d77c-120a-41d7-aeef-96c404948562.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/6d233621-9a87-46ad-9a64-549f6a14fbff.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/1e2883f4-fe01-4ac3-bd6d-a4202be8d283.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url("../fonts/7a298718-04e9-4bd7-8942-0f43fcc29194.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/24648020-45d7-4f13-9c56-7dd0d9066c0b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/0853141a-3856-420c-976a-ba3e1618de0e.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/24648020-45d7-4f13-9c56-7dd0d9066c0b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/0853141a-3856-420c-976a-ba3e1618de0e.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/24648020-45d7-4f13-9c56-7dd0d9066c0b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/0853141a-3856-420c-976a-ba3e1618de0e.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}



  /* ============================================================
     STELLA BOOTH v2 — dev handoff notes
     Breakpoints: 880px (nav burger) · 900px (journey pin ⇄ flow) · 760px (hero feed desktop ⇄ mobile, event rail stacks)
     Motion: one curve cubic-bezier(.2,.7,.2,1); reveals .85s once; ratchet feed = printFeed/printFeedM
     Reduced motion: honored via media query below AND the reduceMotion tweak prop
     ============================================================ */
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;background:#F2ECDF;-webkit-font-smoothing:antialiased;}
  ::selection{background:#D9382B;color:#F7F2E7;}
  input,select,textarea,button{font-family:inherit;}
  a{color:inherit;}
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #E6C76E;outline-offset:3px;border-radius:1px;}
  input:focus,select:focus,textarea:focus{border-color:#D9382B !important;}
  @keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  @keyframes twinkle{0%,100%{opacity:.18;}50%{opacity:1;}}
  @keyframes shimmer{0%,100%{opacity:.85;}50%{opacity:1;}}
  @keyframes bokehDrift{from{transform:translate3d(0,0,0) scale(1);}to{transform:translate3d(26px,-30px,0) scale(1.14);}}
  @keyframes scrollcue{0%{transform:translateY(0);opacity:.9;}50%{transform:translateY(8px);opacity:.4;}100%{transform:translateY(0);opacity:.9;}}
  @keyframes lineRise{from{transform:translateY(120%);}to{transform:translateY(0);}}
  @keyframes softUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
  /* stepper-motor feed: ratchet, dwell, ratchet — true to a real strip printer */
  @keyframes printFeed{
    0%{transform:translateY(-100%);opacity:0;}
    1%{opacity:1;}
    6.5%{transform:translateY(-83.4%);} 17%{transform:translateY(-83.4%);}
    20%{transform:translateY(-66.7%);} 31%{transform:translateY(-66.7%);}
    34%{transform:translateY(-50%);} 45%{transform:translateY(-50%);}
    48%{transform:translateY(-33.4%);} 59%{transform:translateY(-33.4%);}
    62%{transform:translateY(-16.7%);} 73%{transform:translateY(-16.7%);}
    76%{transform:translateY(0%);} 89%{transform:translateY(0%);opacity:1;}
    95%{opacity:1;} 98%{opacity:0;transform:translateY(0%);}
    100%{transform:translateY(-100%);opacity:0;}
  }
  @keyframes printFeedM{
    0%{transform:translateY(-100%);opacity:0;} 2%{opacity:1;}
    12%{transform:translateY(-62%);} 30%{transform:translateY(-62%);}
    42%{transform:translateY(-30%);} 60%{transform:translateY(-30%);}
    72%{transform:translateY(0%);} 88%{transform:translateY(0%);opacity:1;}
    94%{opacity:0;} 100%{transform:translateY(-100%);opacity:0;}
  }
  @keyframes feedFlash{0%,38%,100%{opacity:.22;}6%,20%,34%,48%,62%,76%{opacity:1;}12%,26%,40%,54%,68%,82%{opacity:.22;}}
  image-slot{display:block;}
  /* ---- hover-lift (Brand Guidelines · Motion) ---- */
  [data-lift]{transition:transform .45s cubic-bezier(.2,.7,.2,1), border-color .45s ease;}
  /* ---- horizontal panel accordion: full copy now actually reveals ---- */
  [data-evtrail]{display:flex; gap:10px; height:clamp(380px,44vw,520px);}
  [data-evtpanel]{position:relative; overflow:hidden; flex:1 1 0; min-width:0; cursor:pointer; border:1px solid rgba(236,234,244,0.14); transition:flex .6s cubic-bezier(.2,.7,.2,1);}
  [data-evtimg]{position:absolute; inset:0; filter:brightness(.42) saturate(.92); transition:filter .6s ease, transform .7s cubic-bezier(.2,.7,.2,1);}
  [data-evtveil]{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,14,36,0.1) 24%, rgba(10,14,36,0.9)); pointer-events:none;}
  [data-evtspine]{position:absolute; left:0; right:0; bottom:0; padding:24px 14px; display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; transition:opacity .35s ease;}
  [data-evtspine] .evtidx{font-family:'Spline Sans Mono',monospace; font-size:12px; color:#E6C76E;}
  [data-evtspine] .evtvert{font-family:'Newsreader',Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(19px,2vw,26px); line-height:1.1; color:#ECEAF4; white-space:nowrap;}
  [data-evtfull]{position:absolute; left:0; right:0; bottom:0; padding:clamp(18px,2.4vw,34px); opacity:0; transform:translateY(14px); transition:opacity .45s cubic-bezier(.2,.7,.2,1) .12s, transform .45s cubic-bezier(.2,.7,.2,1) .12s; pointer-events:none;}
  [data-evtfull] .evtkick{font-family:'Spline Sans Mono',monospace; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:#E6C76E; margin-bottom:12px;}
  [data-evtfull] .evtttl{font-family:'Newsreader',Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(28px,3.4vw,52px); line-height:1; color:#fff; margin:0 0 12px;}
  [data-evtfull] .evtp{font-family:'Newsreader',Georgia,serif; font-size:clamp(15px,1.4vw,19px); line-height:1.5; color:#dfe3f2; margin:0 0 16px; max-width:420px;}
  [data-evtfull] .evtcta{display:inline-flex; align-items:center; gap:8px; font-family:'Spline Sans Mono',monospace; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:#fff; border-bottom:1px solid #E6C76E; padding-bottom:3px;}
  @media(hover:hover) and (prefers-reduced-motion:no-preference){
    [data-lift]:hover{transform:scale(1.03); border-color:rgba(217,56,43,0.45);}
    [data-evtrail]:hover [data-evtpanel]{flex:0.85 1 0;}
    [data-evtrail]:hover [data-evtpanel]:hover{flex:2.1 1 0;}
    [data-evtpanel]:hover [data-evtspine]{opacity:0;}
    [data-evtpanel]:hover [data-evtfull]{opacity:1; transform:none;}
    [data-evtpanel]:hover [data-evtimg]{filter:brightness(.8) saturate(1.04); transform:scale(1.06);}
    [data-evtpanel]:focus-visible [data-evtspine]{opacity:0;}
    [data-evtpanel]:focus-visible [data-evtfull]{opacity:1; transform:none;}
  }
  /* touch / small: rows open by default (brand rule) */
  @media(hover:none),(max-width:760px){
    [data-evtrail]{flex-direction:column; height:auto; gap:10px;}
    [data-evtpanel]{flex:none; min-height:clamp(230px,58vw,320px);}
    [data-evtimg]{filter:brightness(.5) saturate(1);}
    [data-evtspine]{display:none;}
    [data-evtfull]{opacity:1; transform:none; position:relative; pointer-events:auto;}
  }
  /* ---- nav ---- */
  [data-desktop-nav]{display:flex;}
  [data-burger]{display:none;}
  @media(max-width:880px){
    [data-desktop-nav]{display:none !important;}
    [data-burger]{display:inline-flex !important;}
  }
  .navlink{position:relative; padding:6px 0; text-decoration:none;}
  .navlink::after{content:''; position:absolute; left:0; right:100%; bottom:0; height:2px; background:#D9382B; transition:right .45s cubic-bezier(.2,.7,.2,1);}
  .navlink[data-active="1"]::after{right:0;}
  @media(hover:hover){.navlink:hover::after{right:0;}}
  /* ---- hero feed: desktop diagonal vs mobile in-flow ---- */
  [data-hero-feed]{display:block;}
  [data-hero-feed-m]{display:none;}
  @media(max-width:760px){
    [data-hero-feed]{display:none;}
    [data-hero-feed-m]{display:flex;}
  }
  /* ---- booking journey: pinned ≥900, flowing below ---- */
  [data-journey-pin]{display:block;}
  [data-journey-flow]{display:none;}
  @media(max-width:899px){
    [data-journey-pin]{display:none;}
    [data-journey-flow]{display:block;}
  }
  /* ---- reduced motion: kill loops, reveals appear in place ---- */
  @media(prefers-reduced-motion:reduce){
    [data-anim-loop], [data-stars] span{animation:none !important;}
    [data-hero-feed] [data-anim-loop], [data-hero-feed-m] [data-anim-loop]{animation:none !important; transform:translateY(0) !important; opacity:1 !important;}
    .hline{animation:none !important; transform:none !important;}
    .hsoft{animation:none !important; opacity:1 !important; transform:none !important;}
    [data-lift], [data-evtpanel], [data-evtimg], [data-evtfull], .navlink::after{transition:none !important;}
  }

/* ---- standalone additions (screen router, image slots) ---- */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;}
/* horizontal overflow is contained by [data-root]{overflow-x:clip} (see design CSS);
   never set overflow-x:hidden on html/body — it forces overflow-y to auto and
   breaks position:sticky (the pinned booking journey). */
.screen{display:none;}
.screen.is-active{display:block;}
.image-slot{position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden;
  background:linear-gradient(135deg,#141a3a,#0A0E24); border:1px solid rgba(236,234,244,0.08);}
.image-slot span{font-family:'Spline Sans Mono',monospace; font-size:11px; letter-spacing:1px; text-transform:uppercase;
  color:rgba(236,234,244,0.42); text-align:center; padding:8px 12px;}
.image-slot::after{content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 30% 20%, rgba(230,199,110,0.06), transparent 60%);}
[data-backtop]:focus-visible, .navlink:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid #E6C76E; outline-offset:2px;}
