/* ============================================================
   EXPO SUB-BRAND SYSTEM — self-contained, no dependency on the
   main-site stylesheet. Warm-dark "house lights" surfaces + cream
   editorial surfaces; Sora display, Inter body, mono coordinates.
   ============================================================ */
@font-face{font-family:"Sora";font-style:normal;font-weight:100 800;font-display:swap;src:url("/fonts/sora-var.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("/fonts/inter-var.woff2") format("woff2")}
:root{
  --x-ink:#0D0C0A; --x-deep:#1C1B18; --x-panel:#181510; --x-line:#2A241C;
  --x-cyan:#F2A93B; --x-violet:#D96B3F; --x-amber:#FFC46B;
  /* --x-blue retired 2026-07-15: parent-blue #4593F2 clashed with the warm house-lights scheme
     (DAY badges, venue eyebrow, package/spec labels, FAQ toggle read as "wrong blue"). Now a
     readable burnt-orange (~4.5:1 on white) so warm accents stay legible. */
  --x-blue:#C2571F;
  --x-paper:#FAF6EF; --x-card:#FFFFFF; --x-pline:#EAE3D6;
  --x-t1:#F7F2E9; --x-t2:#B3A895; --x-d1:#1C1B18; --x-d2:#6B6152; /* d2 warmed from slate #54637E → warm grey */
  --fd:"Sora",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --fb:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --fm:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Menlo,monospace;
  --rad:18px; --wrap:1180px;
  /* ---- motion tokens (one hand across the whole page) ---- */
  --t-fast:140ms;   /* taps, presses, hovers */
  --t-base:260ms;   /* toggles, swaps, counters settling */
  --t-slow:480ms;   /* reveals, footprint morph, draws */
  --e-out:cubic-bezier(.2,.7,.2,1);     /* entrances / settles */
  --e-inout:cubic-bezier(.6,0,.3,1);    /* draws / sweeps */
  --e-spring:cubic-bezier(.2,1.1,.3,1); /* press-release overshoot */
  --rise:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--x-ink);color:var(--x-t1);font-family:var(--fb);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto}
a{color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px;top:0;background:var(--x-amber);color:var(--x-ink);padding:10px 18px;font-weight:700;z-index:99;border-radius:0 0 10px 0}
.skip:focus{left:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--x-cyan);outline-offset:3px;border-radius:4px}

/* ---- mono coordinate labels ---- */
.coord{font-family:var(--fm);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--x-t2)}
.coord b{color:var(--x-cyan);font-weight:600}
.kick{display:flex;align-items:center;gap:12px;font-family:var(--fm);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--x-t2);margin:0 0 18px}
.kick::before{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet))}
.light .kick{color:var(--x-d2)}

/* ---- header ---- */
.xhead{position:sticky;top:0;z-index:50;background:rgba(13,12,10,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(42,36,28,.6)}
.xhead .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
.lockup{display:flex;flex-direction:column;gap:1px;text-decoration:none;color:var(--x-t1)}
.lockup small{font-family:var(--fm);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--x-t2)}
.lockup b{font-family:var(--fd);font-weight:750;font-size:14.5px;letter-spacing:.06em}
.lockup b em{font-style:normal;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.xnav{display:flex;gap:26px;align-items:center}
.xnav a{font-size:13.5px;font-weight:600;color:var(--x-t2);text-decoration:none;transition:color .18s}
.xnav a:hover{color:var(--x-t1)}
.xnav .cta{color:var(--x-ink);background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));padding:9px 18px;border-radius:999px;font-weight:750}
@media (max-width:900px){.xnav a:not(.cta){display:none}}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--fd);font-weight:720;font-size:15px;padding:15px 30px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;transition:transform var(--t-fast) var(--e-spring),box-shadow var(--t-fast)}
.btn:active{transform:scale(.97)}
.btn-sig{background:linear-gradient(92deg,var(--x-cyan),var(--x-violet));color:#241503}
.btn-sig:hover{box-shadow:0 10px 34px -10px rgba(242,169,59,.55)}
.btn-line{background:transparent;color:var(--x-t1);box-shadow:inset 0 0 0 1.5px var(--x-line)}
.btn-line:hover{box-shadow:inset 0 0 0 1.5px var(--x-cyan)}
.light .btn-line{color:var(--x-d1);box-shadow:inset 0 0 0 1.5px var(--x-pline)}
.light .btn-line:hover{box-shadow:inset 0 0 0 1.5px var(--x-blue)}

/* ---- section scaffolding ---- */
section{position:relative;padding:96px 0}
.light{background:var(--x-paper);color:var(--x-d1)}
.light p{color:#4A463D}
h1,h2,h3{font-family:var(--fd);line-height:1.08;margin:0 0 18px;letter-spacing:-.015em;text-wrap:balance}
h2{font-size:clamp(30px,4.4vw,46px);font-weight:760}
h3{font-size:19px;font-weight:700;line-height:1.3}
.sub{max-width:640px;font-size:17px;color:var(--x-t2);margin:0 0 44px}
.light .sub{color:#5C574B}
.gridbg{background-image:linear-gradient(rgba(242,169,59,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(242,169,59,.045) 1px,transparent 1px);background-size:56px 56px}

/* ---- reveal choreography ---- */
[data-rv]{opacity:0;transform:translateY(var(--rise));transition:opacity var(--t-slow) var(--e-out),transform var(--t-slow) var(--e-out);transition-delay:var(--d,0s)}
[data-rv].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){[data-rv]{opacity:1;transform:none;transition:none}}

/* ---- HERO (living connection field behind text + framed side image) ---- */
.hero{min-height:92vh;display:flex;align-items:center;padding:110px 0 90px;overflow:hidden}
#net{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}
.hero .wrap{position:relative;z-index:2}
.herogrid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.herogrid h1{font-size:clamp(38px,4.6vw,62px);max-width:none}
.heroside{position:relative;margin:0;border-radius:22px;overflow:hidden;aspect-ratio:4/5;border:1px solid var(--x-line);box-shadow:0 44px 90px -44px rgba(0,0,0,.8)}
.heroside img{width:100%;height:100%;object-fit:cover;object-position:center 48%;transform:scale(1.03);animation:heroDrift 26s ease-in-out infinite alternate}
.heroside::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,12,10,.5),transparent 42%),radial-gradient(120% 80% at 70% 30%,rgba(242,169,59,.12),transparent 55%)}
@keyframes heroDrift{from{transform:scale(1.03)}to{transform:scale(1.09) translateY(-1.5%)}}
@media (max-width:900px){.herogrid{grid-template-columns:1fr;gap:34px}.heroside{aspect-ratio:16/10}}
@media (max-width:560px){.heroside{display:none}}
@media (prefers-reduced-motion:reduce){.heroside img{animation:none;transform:scale(1.03)}}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--fm);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--x-t2);border:1px solid var(--x-line);border-radius:999px;padding:8px 16px;margin-bottom:26px;background:rgba(24,21,16,.55)}
.hero-eyebrow .live{width:7px;height:7px;border-radius:50%;background:var(--x-amber);animation:blip 2.2s ease-in-out infinite}
@keyframes blip{0%,100%{box-shadow:0 0 0 0 rgba(255,196,107,.5)}50%{box-shadow:0 0 0 7px rgba(255,196,107,0)}}
h1{font-size:clamp(40px,7vw,84px);font-weight:790;max-width:13ch}
h1 .gl{background:linear-gradient(90deg,var(--x-cyan) 10%,var(--x-violet) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
h1 .w{display:inline-block}
.hero-sub{max-width:560px;font-size:18px;color:var(--x-t2);margin:24px 0 38px}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero-alt{font-size:14px;color:var(--x-t2);margin-top:22px}
.hero-alt a{color:var(--x-cyan);text-decoration:none;font-weight:650}
.hero-alt a:hover{text-decoration:underline}
.hero-coords{position:absolute;right:24px;bottom:26px;z-index:2;display:flex;flex-direction:column;gap:6px;text-align:right}
@media (max-width:720px){.hero{min-height:auto}.hero-coords{display:none}}

/* ---- sticky subnav ---- */
.subnav{position:sticky;top:66px;z-index:40;background:rgba(13,12,10,.9);backdrop-filter:blur(10px);border-bottom:1px solid rgba(42,36,28,.5)}
.subnav .wrap{display:flex;gap:4px;overflow-x:auto;padding-top:0;padding-bottom:0;scrollbar-width:none}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav a{flex:none;font-size:12.5px;font-weight:650;letter-spacing:.04em;color:var(--x-t2);text-decoration:none;padding:13px 14px;border-bottom:2px solid transparent}
.subnav a:hover,.subnav a.on{color:var(--x-t1);border-bottom-color:var(--x-cyan)}

/* ---- audience journey (photos hung on a continuous connecting thread) ---- */
.journey{display:grid;grid-template-columns:repeat(6,1fr);gap:0 20px;margin-top:24px}
.jstep{position:relative;display:flex;flex-direction:column}
.jphoto{aspect-ratio:4/5;margin:0}
.jphoto img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.jstep:hover .jphoto img{transform:scale(1.05)}
/* .jrail spans the full column, so its ::after line runs node-to-node ACROSS the grid
   gap (right:-20px = the gap) — a continuous thread, not the 35px stubs the old
   node-relative width produced. */
.jrail{position:relative;margin:20px 0 16px;height:15px}
.jnode{display:block;width:15px;height:15px;border-radius:50%;background:var(--x-ink);border:3px solid var(--x-cyan);box-shadow:0 0 0 5px rgba(242,169,59,.1);position:relative;z-index:2}
.jrail::after{content:"";position:absolute;left:24px;right:-20px;top:6.5px;height:2px;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));z-index:1}
.jstep:last-child .jrail::after{display:none}
.jstep:nth-child(3) .jnode,.jstep:nth-child(4) .jnode{border-color:var(--x-violet)}
.jstep:nth-child(5) .jnode,.jstep:nth-child(6) .jnode{border-color:var(--x-amber)}
.jstep .coord{display:block;margin-bottom:3px}
/* age band on its own row, prominent — the buyer's first scan question is "is my audience here?" */
.jage{display:block;font-family:var(--fd);font-size:19px;font-weight:800;letter-spacing:.01em;margin:0 0 8px;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.jstep h3{font-size:15.5px;margin:0 0 6px}
.jstep p{font-size:13px;color:var(--x-t2);margin:0;line-height:1.55}
@media (max-width:960px){.journey{grid-template-columns:repeat(2,1fr);gap:32px 20px}.jrail::after{display:none}}
@media (max-width:520px){.journey{grid-template-columns:1fr;gap:28px}}

/* ---- categories ---- */
.cats{display:flex;flex-wrap:wrap;gap:10px;max-width:900px;position:relative;overflow:hidden;padding:4px 0}
/* FairTap-style scan beam sweeping across the exhibitor types — a scanner reading the floor */
.cats::after{content:"";position:absolute;top:0;bottom:0;left:0;width:110px;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(242,169,59,.10),rgba(242,169,59,.34),rgba(242,169,59,.10),transparent);transform:translateX(-130px);animation:catScan 5.5s cubic-bezier(.66,0,.34,1) infinite}
@keyframes catScan{0%{transform:translateX(-130px)}62%,100%{transform:translateX(940px)}}
.cat{font-size:13.5px;font-weight:600;color:#45403A;background:#fff;border:1.5px solid var(--x-pline);border-radius:999px;padding:10px 18px;box-shadow:0 1px 2px rgba(20,16,10,.05);transition:border-color var(--t-fast) var(--e-out),box-shadow var(--t-fast) var(--e-out),color var(--t-fast) var(--e-out)}
.cat::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--x-pline);margin-right:8px;vertical-align:middle;transition:background var(--t-fast) var(--e-out)}
.cat:hover{border-color:var(--x-amber);color:var(--x-ink);box-shadow:0 5px 16px rgba(242,169,59,.22)}
.cat:hover::before{background:var(--x-amber)}
@media (prefers-reduced-motion:reduce){.cats::after{display:none}}

/* ===== micro-interaction pass 2026-07-16 — instrument-panel polish ===== */
/* brand text selection */
::selection{background:rgba(242,169,59,.32);color:#F7EFE2}
.light ::selection{background:rgba(217,107,63,.28);color:#141008}

/* subnav scroll-progress hairline — reading position as instrumentation */
.subnav-prog{position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));transform:scaleX(0);transform-origin:left;pointer-events:none}
.subnav{position:sticky}

/* live blip on the availability pill — it IS live data from the API */
.dcard .dstat.av::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#97D77B;margin-right:7px;vertical-align:1px;animation:avblip 2.2s ease-in-out infinite}
@keyframes avblip{0%,100%{box-shadow:0 0 0 0 rgba(151,215,123,.5)}50%{box-shadow:0 0 0 5px rgba(151,215,123,0)}}

/* reserve steps 01-04 light up as each is completed */
.cfg h3 .stepn{transition:background var(--t-fast) var(--e-out),color var(--t-fast) var(--e-out),border-color var(--t-fast) var(--e-out)}
.cfg h3 .stepn.done{background:var(--x-amber);border-color:var(--x-amber);color:#141008}
.cfg h3 .stepn.done::after{content:" ✓"}

/* journey thread draws itself as the rail reveals */
/* the thread draws left-to-right, each segment slightly after the one before
   (var(--d) is the per-column reveal stagger set inline on .jstep) */
.jstep .jrail::after{transform:scaleX(0);transform-origin:left;transition:transform .7s var(--e-out) calc(.25s + var(--d, 0s))}
.jstep.in .jrail::after{transform:scaleX(1)}

/* visualiser: blueprint re-draw flash when the footprint changes */
.stand.redraw{animation:bpFlash .55s var(--e-out)}
@keyframes bpFlash{0%{filter:brightness(1.7) saturate(1.4)}100%{filter:none}}

/* FAQ answers ease open instead of snapping */
.faqs .faqbody>p{margin:0 0 18px}
.faqs details[open] .faqbody{animation:faqOpen .32s var(--e-out)}
@keyframes faqOpen{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .dcard .dstat.av::before{animation:none}
  .jstep .jrail::after{transition:none;transform:none}
  .stand.redraw{animation:none}
  .faqs details[open] .faqbody{animation:none}
}

/* candidate/group registration — engineered demand signal on the event CTA */
.regcta{margin:18px auto 0;max-width:540px;text-align:center}
.demandtag{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--x-amber);background:rgba(255,196,107,.09);border:1px solid rgba(255,196,107,.30);border-radius:999px;padding:5px 13px;margin-bottom:11px}
.dpulse{position:relative;width:7px;height:7px;border-radius:50%;background:var(--x-amber);box-shadow:0 0 7px rgba(255,196,107,.85)}
.dpulse::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--x-amber);opacity:.6;animation:dpulse 1.8s ease-out infinite}
@keyframes dpulse{0%{transform:scale(.55);opacity:.7}100%{transform:scale(1.9);opacity:0}}
.regcta #regRoute{margin:0;font-size:13px;color:var(--x-t2,#9a9488)}
@media (prefers-reduced-motion:reduce){.dpulse::after{animation:none;opacity:0}}

/* ---- destinations ---- */
.dest{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:center}
.gbmap{position:relative}
.gbmap svg{width:100%;height:auto;display:block;overflow:visible}
.mapnode{cursor:pointer}
.mapnode circle.core{fill:var(--x-cyan);transition:r .2s}
.mapnode.on circle.core,.mapnode:hover circle.core{fill:var(--x-amber)}
.mapnode circle.halo{fill:none;stroke:var(--x-cyan);stroke-width:1;opacity:.6}
.mapnode text{font-family:var(--fm);font-size:5.2px;letter-spacing:.16em;fill:var(--x-t2);text-transform:uppercase}
.mapnode.on text,.mapnode:hover text{fill:var(--x-t1)}
.destlist{display:flex;flex-direction:column;gap:12px}
.dcard{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;background:var(--x-panel);border:1px solid var(--x-line);border-radius:var(--rad);padding:18px 22px;text-align:left;transition:border-color .2s,transform .2s;color:var(--x-t1)}
.dcard:hover,.dcard.on{border-color:var(--x-cyan);transform:translateX(4px)}
.dcard .dn{font-family:var(--fm);font-size:11px;color:var(--x-cyan);letter-spacing:.14em}
.dcard h3{margin:0;font-size:18px}
.dcard .dmeta{font-size:12.5px;color:var(--x-t2);margin-top:3px}
.dcard .ddate{color:var(--x-cyan);font-weight:600;margin-top:1px}
.dcard .dstat{font-family:var(--fm);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:5px 11px;border-radius:999px;border:1px solid var(--x-line);color:var(--x-t2);white-space:nowrap}
.dcard .dstat.av{color:#97D77B;border-color:rgba(151,215,123,.35)}
.dcard .dlinks{grid-column:1/-1;display:flex;gap:14px;font-size:13px}
.dcard .dlinks a{color:var(--x-cyan);text-decoration:none;font-weight:650}
.dcard .dlinks a:hover{text-decoration:underline}
@media (max-width:920px){.dest{grid-template-columns:1fr}.gbmap{max-width:420px;margin:0 auto}}

/* ---- format timeline ---- */
.days{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:d}
.day{background:#fff;border:1px solid var(--x-pline);border-radius:var(--rad);padding:28px 26px;position:relative;overflow:hidden;transition:transform var(--t-base) var(--e-out),box-shadow var(--t-base) var(--e-out)}
.day:hover{transform:translateY(-4px);box-shadow:0 20px 46px -24px rgba(0,0,0,.55)}
.day::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--x-cyan),var(--x-violet))}
.day .coord{color:var(--x-blue)}
.day h3{margin:10px 0 8px;color:var(--x-d1);font-size:19px}
.day p{font-size:14px;margin:0;color:#4A463D}
.fmtnote{margin-top:26px;display:flex;flex-wrap:wrap;gap:22px;font-size:13.5px;color:#5C574B}
.fmtnote span{display:inline-flex;gap:8px;align-items:center}
.fmtnote span::before{content:"—";color:var(--x-blue)}
@media (max-width:820px){.days{grid-template-columns:1fr}}

/* ---- benefits ---- */
.bens{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ben{background:var(--x-panel);border:1px solid var(--x-line);border-radius:var(--rad);padding:22px;position:relative;overflow:hidden;transition:transform var(--t-base) var(--e-out),border-color var(--t-base) var(--e-out),box-shadow var(--t-base) var(--e-out)}
.ben::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));transform:scaleX(0);transform-origin:left;transition:transform var(--t-base) var(--e-out)}
.ben:hover{transform:translateY(-5px);border-color:var(--x-cyan);box-shadow:0 20px 44px -24px rgba(242,169,59,.4)}
.ben:hover::after{transform:scaleX(1)}
.ben h3{font-size:15.5px;margin:0 0 7px}
.ben h3::before{content:"◇ ";color:var(--x-cyan);display:inline-block;transition:transform var(--t-base) var(--e-spring),color var(--t-base) var(--e-out)}
.ben:hover h3::before{transform:scale(1.3);color:var(--x-amber)}
.ben p{font-size:13.5px;color:var(--x-t2);margin:0}
@media (prefers-reduced-motion:reduce){.ben,.ben::after,.ben h3::before{transition:none}}
@media (max-width:920px){.bens{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.bens{grid-template-columns:1fr}}

/* ---- FairTap demo ---- */
.ft{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ftstage{position:relative;height:430px;background:radial-gradient(120% 100% at 50% 0%,#1D1812 0%,var(--x-ink) 70%);border:1px solid var(--x-line);border-radius:22px;overflow:hidden}
.ftpass{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:220px;background:linear-gradient(160deg,#1F1A13,#161310);border:1px solid #4A3F2C;border-radius:16px;padding:18px;box-shadow:0 24px 60px -20px rgba(0,0,0,.7)}
.ftpass .coord{font-size:9px}
.ftpass .nm{font-family:var(--fd);font-weight:700;font-size:15px;margin:6px 0 2px}
.ftpass .rl{font-size:11.5px;color:var(--x-t2);margin-bottom:12px}
.ftqr{width:100%;aspect-ratio:1;border-radius:10px;background:#fff;padding:10px}
.ftqr svg{width:100%;height:100%;display:block}
.ftbeam{position:absolute;left:8%;right:8%;top:0;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--x-amber),transparent);opacity:0;filter:drop-shadow(0 0 8px var(--x-amber))}
.ftring{position:absolute;left:50%;top:52%;width:70px;height:70px;border-radius:50%;border:2.5px solid var(--x-amber);transform:translate(-50%,-50%) scale(.4);opacity:0}
.ftdash{position:absolute;right:16px;top:16px;width:172px;background:rgba(20,17,12,.92);border:1px solid var(--x-line);border-radius:14px;padding:14px}
.ftdash .coord{font-size:8.5px;margin-bottom:10px;display:block}
.ftk{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;border-top:1px solid rgba(42,36,28,.6);font-size:11px;color:var(--x-t2)}
.ftk b{font-family:var(--fd);font-size:19px;color:var(--x-t1);font-variant-numeric:tabular-nums}
.ftcap{position:absolute;left:16px;bottom:14px;right:200px;font-size:12.5px;color:var(--x-t2);min-height:36px}
.ftcap b{color:var(--x-amber)}
.ftsteps{display:flex;flex-direction:column;gap:0;margin-top:8px}
.ftstep{display:grid;grid-template-columns:34px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--x-line);opacity:.45;transition:opacity .3s}
.ftstep.on{opacity:1}
.ftstep .n{font-family:var(--fm);font-size:12px;color:var(--x-cyan);border:1px solid var(--x-line);border-radius:8px;height:34px;display:grid;place-items:center}
.ftstep.on .n{border-color:var(--x-amber);color:var(--x-amber)}
.ftstep h3{font-size:15px;margin:0 0 3px}
.ftstep p{font-size:13px;color:var(--x-t2);margin:0}
.ftreplay{margin-top:18px;font-size:12.5px;background:none;border:1px solid var(--x-line);color:var(--x-t2);border-radius:999px;padding:8px 16px;cursor:pointer}
.ftreplay:hover{color:var(--x-t1);border-color:var(--x-cyan)}
@media (max-width:920px){.ft{grid-template-columns:1fr}.ftstage{height:400px}}
@media (prefers-reduced-motion:reduce){.ftbeam,.ftring{display:none}.ftstep{opacity:1}}

/* ---- packages + visualiser ---- */
.pk{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.pkcards{display:flex;flex-direction:column;gap:14px}
.pkc{position:relative;text-align:left;background:#fff;border:1.5px solid var(--x-pline);border-radius:var(--rad);padding:22px 24px;cursor:pointer;transition:border-color .2s,box-shadow .2s;width:100%;font-family:var(--fb)}
.pkc.on{border-color:var(--x-blue);box-shadow:0 14px 40px -18px rgba(194,87,31,.32)}
.pkc .row1{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pkc h3{margin:0;font-size:18px}
.pkc .pr{font-family:var(--fd);font-weight:780;font-size:22px;color:var(--x-d1);white-space:nowrap}
.pkc .pr small{font-size:11px;font-weight:600;color:var(--x-d2)}
.pkc .meta{font-family:var(--fm);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--x-blue);margin:6px 0 8px}
.pkc p{font-size:13.5px;color:#5C574B;margin:0}
.pkc .chips{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.pkc .chips span{font-size:11.5px;font-weight:650;background:var(--x-paper);border:1px solid var(--x-pline);border-radius:999px;padding:4px 10px;color:#4A463D}
.viz{position:sticky;top:130px;background:var(--x-d1);border-radius:22px;padding:26px;color:var(--x-t1)}
.viz .coord{display:flex;justify-content:space-between;margin-bottom:16px}
.vizfloor{position:relative;width:100%;aspect-ratio:2/1.15;background-image:linear-gradient(rgba(242,169,59,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(242,169,59,.09) 1px,transparent 1px);background-size:12.5% 21.7%;border:1px solid var(--x-line);border-radius:12px;overflow:hidden}
/* footprint sized at max (premium 6m×4m = 75%×86.8% of the floor) and scaled
   DOWN via transform — compositor-friendly, no per-frame layout. Labels
   counter-scale so blueprint text stays crisp at every size. */
.stand{position:absolute;left:6%;bottom:8%;width:75%;height:86.8%;transform-origin:left bottom;background:linear-gradient(140deg,rgba(242,169,59,.28),rgba(247,232,200,.24));border:2px solid var(--x-cyan);border-radius:6px;transition:transform var(--t-slow) var(--e-out);will-change:transform}
.stand .dims{position:absolute;left:8px;top:6px;font-family:var(--fm);font-size:10px;letter-spacing:.12em;color:var(--x-cyan);transform-origin:left top;transition:transform var(--t-slow) var(--e-out)}
.stand .sqm{position:absolute;right:8px;bottom:6px;font-family:var(--fd);font-weight:760;font-size:17px;color:var(--x-t1);transform-origin:right bottom;transition:transform var(--t-slow) var(--e-out)}
@media (prefers-reduced-motion:reduce){.stand,.stand .dims,.stand .sqm{transition:none}}
.human{position:absolute;right:7%;bottom:8%;width:14px;text-align:center}
.human svg{width:100%;height:auto;display:block;opacity:.85}
.human span{font-family:var(--fm);font-size:8px;color:var(--x-t2);letter-spacing:.1em}
.vizstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.vz{background:var(--x-panel);border:1px solid var(--x-line);border-radius:12px;padding:12px;text-align:center}
.vz b{display:block;font-family:var(--fd);font-size:20px;font-weight:760;font-variant-numeric:tabular-nums}
.vz span{font-size:10.5px;color:var(--x-t2);letter-spacing:.06em;text-transform:uppercase}
@media (max-width:920px){.pk{grid-template-columns:1fr}.viz{position:static}}

/* ---- comparison (premium spec-matrix) ---- */
.spec-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:30px 0 18px}
.spec-legend{display:flex;gap:18px;font-size:12.5px;color:#5C574B;align-items:center}
.spec-legend span{display:inline-flex;align-items:center;gap:7px}
.spec-legend .lgtick{width:16px;height:16px;color:#2F7A1E}
.spec-legend .lgdash{width:14px;height:2px;background:#C3BBAA;border-radius:2px}
.spec-toggle{font-family:var(--fb);font-size:12.5px;font-weight:650;color:#45403A;background:#fff;border:1.5px solid var(--x-pline);border-radius:999px;padding:8px 16px;cursor:pointer;transition:border-color var(--t-fast) var(--e-out),background var(--t-fast) var(--e-out),color var(--t-fast) var(--e-out),transform var(--t-fast) var(--e-spring)}
.spec-toggle:hover{border-color:var(--x-blue)}
.spec-toggle:active{transform:scale(.96)}
.spec-toggle[aria-pressed="true"]{background:var(--x-d1);color:#fff;border-color:var(--x-d1)}

.spec{overflow:visible}
.spectable{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;table-layout:fixed}
.spectable col.c-label{width:31%}
.spec-corner{background:transparent}
.spectable thead th{vertical-align:bottom;padding:0 7px 14px}
.spec-card{background:#fff;border:1px solid var(--x-pline);border-radius:16px;padding:16px 16px 18px;text-align:left;box-shadow:0 10px 30px -20px rgba(28,27,24,.3)}
.spec-card .nm{font-family:var(--fd);font-weight:740;font-size:16px;color:var(--x-d1);margin:0}
.spec-card .dm{font-family:var(--fm);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--x-blue);margin:4px 0 10px}
.spec-card .pr{font-family:var(--fd);font-weight:780;font-size:22px;color:var(--x-d1);line-height:1}
.spec-card .pr small{font-size:11px;font-weight:600;color:#8A8272}
.spec-card .go{display:block;margin-top:12px;text-align:center;font-family:var(--fd);font-weight:700;font-size:12.5px;padding:9px;border-radius:10px;text-decoration:none;background:var(--x-paper);color:var(--x-d1);border:1.5px solid var(--x-pline);transition:border-color var(--t-fast) var(--e-out),background var(--t-fast) var(--e-out),transform var(--t-fast) var(--e-spring)}
.spec-card .go:hover{border-color:var(--x-blue);background:#fff}
.spec-card .go:active{transform:scale(.96)}
.spec-card--feat{background:linear-gradient(165deg,#221B10,#14110B);border-color:transparent;position:relative;transform:translateY(-14px);box-shadow:0 26px 50px -24px rgba(242,169,59,.5)}
.spec-card--feat .nm{color:#fff}
.spec-card--feat .dm{color:var(--x-amber)}
.spec-card--feat .pr{color:#fff}
.spec-card--feat .pr small{color:var(--x-t2)}
.spec-card--feat .go{background:linear-gradient(92deg,var(--x-cyan),var(--x-violet));color:#241503;border:0}
.spec-card--feat .badge{position:absolute;top:-11px;left:16px;font-family:var(--fm);font-size:9px;letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(92deg,var(--x-cyan),var(--x-violet));color:#241503;padding:4px 10px;border-radius:999px;font-weight:700}

.spectable tbody th{text-align:left;font-weight:600;color:var(--x-d1);padding:13px 14px 13px 4px;border-top:1px solid var(--x-pline);font-size:13.5px}
.spectable tbody td{padding:13px 7px;border-top:1px solid var(--x-pline);text-align:center;color:#4A463D;vertical-align:middle}
.spec-row{transition:background .16s}
.spec-row:hover th,.spec-row:hover td{background:rgba(242,169,59,.06)}
td.feat,th.feat{background:rgba(242,169,59,.05);border-left:1px solid rgba(242,169,59,.16);border-right:1px solid rgba(242,169,59,.16)}
.spec-row:hover td.feat{background:rgba(242,169,59,.11)}
.spectable tbody tr:last-child td.feat{border-bottom:1px solid rgba(242,169,59,.16);border-radius:0 0 14px 14px}
.tick{width:23px;height:23px;display:inline-block;vertical-align:middle}
.tick path{fill:none;stroke:#2F7A1E;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;transition:stroke-dashoffset .55s cubic-bezier(.6,0,.3,1)}
.spec-row.in .tick path{stroke-dashoffset:0}
.spec-row.in td:nth-child(3) .tick path{transition-delay:70ms}
.spec-row.in td:nth-child(4) .tick path{transition-delay:140ms}
.dash{display:inline-block;width:16px;height:2px;background:#C9C1B0;border-radius:2px;vertical-align:middle}
.spec-val{font-family:var(--fd);font-weight:700;font-size:15px;color:var(--x-d1);font-variant-numeric:tabular-nums}
.spec-txt{font-size:12px;color:#5C574B;line-height:1.35}
.feat .spec-val{color:var(--x-d1)}
.spec-row{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease,background .16s;transition-delay:var(--rd,0s)}
.spec-row.in{opacity:1;transform:none}
.spec-row.hide{display:none}
@media (prefers-reduced-motion:reduce){.spec-row{opacity:1;transform:none}.tick path{stroke-dashoffset:0}.spec-card--feat{transform:none}}

.specm{display:none}
@media (max-width:820px){
  .spec{display:none}
  .specm{display:block}
  .specm-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#fff;border:1px solid var(--x-pline);border-radius:14px;padding:6px;margin-bottom:16px;position:sticky;top:70px;z-index:5}
  .specm-seg button{font-family:var(--fb);font-weight:650;font-size:12.5px;color:#5C574B;background:transparent;border:0;border-radius:10px;padding:10px 4px;cursor:pointer}
  .specm-seg button.on{background:var(--x-d1);color:#fff}
  .specm-seg button.on.feat{background:linear-gradient(92deg,var(--x-cyan),var(--x-violet));color:#241503}
  .specm-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;padding:0 2px}
  .specm-head .pr{font-family:var(--fd);font-weight:780;font-size:22px}
  .specm-head .dm{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--x-blue)}
  .specm ul{list-style:none;margin:0 0 16px;padding:0;background:#fff;border:1px solid var(--x-pline);border-radius:14px;overflow:hidden}
  .specm li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--x-pline);font-size:13.5px}
  .specm li:first-child{border-top:0}
  .specm li b{font-weight:600;color:var(--x-d1);flex:1}
  .specm li.excl{opacity:.55}
  .specm-go{display:block;text-align:center;font-family:var(--fd);font-weight:700;padding:13px;border-radius:12px;text-decoration:none;background:linear-gradient(92deg,var(--x-cyan),var(--x-violet));color:#241503}
}

/* ---- credibility ---- */
.cred{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.crd{border:1px solid var(--x-line);border-radius:var(--rad);padding:26px;background:var(--x-panel)}
.crd b{display:block;font-family:var(--fd);font-size:34px;font-weight:790;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.crd span{font-size:13.5px;color:var(--x-t2)}
.crd .src{display:block;font-family:var(--fm);font-size:9.5px;letter-spacing:.1em;color:#8A8272;margin-top:10px;text-transform:uppercase}
@media (max-width:820px){.cred{grid-template-columns:1fr}}
/* ---- awards / recognition (dark cred section) ---- */
.awards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0 34px}
.award{display:flex;flex-direction:column;gap:8px;background:var(--x-panel);border:1px solid var(--x-line);border-radius:14px;padding:18px;transition:border-color var(--t-base) var(--e-out),transform var(--t-base) var(--e-out),box-shadow var(--t-base) var(--e-out)}
.award:hover{border-color:var(--x-cyan);transform:translateY(-3px);box-shadow:0 16px 38px -22px rgba(242,169,59,.35)}
.award-ic{width:32px;height:32px;color:var(--x-amber)}
.award-ic svg{width:100%;height:100%}
.award-stars{display:block;color:var(--x-amber);font-size:11px;letter-spacing:2.5px;line-height:1;margin-top:2px}
.award-b b{display:block;font-family:var(--fd);font-size:14.5px;font-weight:700;color:var(--x-t1);line-height:1.25;margin:5px 0 4px;text-wrap:balance}
.award-src{font-family:var(--fm);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--x-t2)}
.award--lead{background:linear-gradient(160deg,#241B10,#161109);border-color:rgba(242,169,59,.4)}
.award--lead .award-src{color:var(--x-amber)}
@media (max-width:820px){.awards{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.awards{grid-template-columns:1fr}}
/* ---- credibility big-up: lead, Tottenham proof band, supporting pair ---- */
.credlede{font-size:18.5px;color:var(--x-t1);max-width:820px;line-height:1.6}
.credlede b{color:#fff;font-weight:700}
.credlede b.warm{color:var(--x-amber)}
/* intro: text left + warm-toned real event photo right */
.credtop{display:grid;grid-template-columns:1.18fr .82fr;gap:46px;align-items:center;margin-bottom:8px}
@media (max-width:920px){.credtop{grid-template-columns:1fr;gap:28px}}
.credtop-text{min-width:0}
.credimg{margin:0;position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--x-line);box-shadow:0 34px 74px -36px rgba(0,0,0,.75)}
.credimg img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.credimg::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(13,12,10,.4),transparent 36%)}
.proof{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;margin:30px 0;padding:28px 34px;border-radius:18px;border:1px solid rgba(242,169,59,.32);background:linear-gradient(120deg,rgba(36,27,16,.9),rgba(20,16,9,.6));position:relative;overflow:hidden}
.proof::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--x-cyan),var(--x-violet))}
.proof-nums{display:flex;gap:30px}
.proof-n b{display:block;font-family:var(--fd);font-weight:800;font-size:clamp(30px,3.4vw,42px);line-height:1;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.proof-n span{display:block;font-family:var(--fm);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--x-t2);margin-top:7px}
.proof p{margin:0;font-size:15px;color:var(--x-t1);line-height:1.6}
.proof p b{color:var(--x-amber);font-weight:700}
@media (max-width:760px){.proof{grid-template-columns:1fr;gap:20px;padding:24px}.proof-nums{gap:24px}}
.credpair{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0}
@media (max-width:920px){.credpair{grid-template-columns:1fr 1fr}}
.credcard{background:var(--x-panel);border:1px solid var(--x-line);border-radius:var(--rad);padding:24px;transition:border-color var(--t-base) var(--e-out),transform var(--t-base) var(--e-out)}
.credcard:hover{border-color:var(--x-cyan);transform:translateY(-3px)}
.credcard .coord{display:block;color:var(--x-cyan);margin-bottom:12px}
.credcard h3{margin:0 0 8px;font-family:var(--fd);font-size:18px;font-weight:740;color:var(--x-t1);text-wrap:balance}
.credcard p{margin:0;font-size:14px;color:var(--x-t2);line-height:1.6}
@media (max-width:760px){.credpair{grid-template-columns:1fr}}

/* ---- FairTap scan animation (event-page FairTap section) ---- */
.ftsplit{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}
@media (max-width:820px){.ftsplit{grid-template-columns:1fr;gap:28px}}
.scanviz{position:relative;display:grid;place-items:center;min-height:310px}
.scanviz .ftlabel{position:absolute;top:6px;right:12px;font-family:var(--fm);font-size:10px;letter-spacing:.18em;text-transform:uppercase;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.scanviz .phone{position:relative;width:158px;height:246px;border-radius:28px;background:linear-gradient(160deg,#211B12,#141009);border:1px solid #3A3226;box-shadow:0 34px 64px -24px rgba(0,0,0,.7),inset 0 0 0 4px #0D0C0A;display:grid;place-items:center;overflow:hidden;z-index:2}
.scanviz .pass{width:118px;background:rgba(13,12,10,.72);border:1px solid rgba(242,169,59,.3);border-radius:14px;padding:15px 12px;display:flex;flex-direction:column;align-items:center;gap:9px}
.scanviz .pass-k{font-family:var(--fm);font-size:7.5px;letter-spacing:.14em;color:var(--x-cyan)}
.scanviz .pass-qr{width:66px;height:66px;border-radius:8px;background:conic-gradient(from 0deg,#F7F2E9 0 25%,#8A8272 0 50%,#F7F2E9 0 75%,#8A8272 0 100%);background-size:13px 13px;filter:contrast(1.3)}
.scanviz .pass-nm{font-size:8px;color:var(--x-t2);text-align:center}
.scanviz .scanline{position:absolute;left:16px;right:16px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--x-cyan),transparent);box-shadow:0 0 12px var(--x-cyan);animation:ftscan 2.6s ease-in-out infinite}
.scanviz .pulse{position:absolute;width:158px;height:158px;border-radius:50%;border:2px solid var(--x-cyan);opacity:0;animation:ftpulse 2.6s ease-out infinite}
.scanviz .pulse.p2{animation-delay:1.3s}
.scanviz .lead{position:absolute;bottom:4px;right:0;display:inline-flex;align-items:center;gap:6px;background:rgba(151,215,123,.12);border:1px solid rgba(151,215,123,.5);color:#97D77B;font-size:11px;font-weight:650;border-radius:999px;padding:6px 12px;z-index:3;animation:ftlead 2.6s ease-in-out infinite}
.scanviz .lead .tick{font-weight:800}
@keyframes ftscan{0%,100%{transform:translateY(-92px);opacity:.3}50%{transform:translateY(92px);opacity:1}}
@keyframes ftpulse{0%{transform:scale(.5);opacity:.55}100%{transform:scale(1.5);opacity:0}}
@keyframes ftlead{0%,45%{opacity:0;transform:translateY(6px)}60%,90%{opacity:1;transform:none}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.scanviz .scanline,.scanviz .pulse,.scanviz .lead{animation:none}.scanviz .lead{opacity:1}}

/* ---- 3-day cards: build vs public clarity + "being built" animation ---- */
.dayhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 4px}
.phase{font-family:var(--fm);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:999px;font-weight:600;white-space:nowrap}
.phase-build{color:#B45309;background:rgba(242,169,59,.14);border:1px solid rgba(242,169,59,.45)}
.phase-public{color:#3E7D4E;background:rgba(151,215,123,.16);border:1px solid rgba(151,215,123,.5)}
.day[data-phase="build"]{position:relative}
.buildbars{position:absolute;top:16px;right:16px;display:flex;gap:4px;align-items:flex-end;height:30px;z-index:3}
.buildbars i{width:6px;background:linear-gradient(180deg,var(--x-cyan),var(--x-violet));border-radius:2px 2px 0 0;transform-origin:bottom;animation:build 2.4s ease-in-out infinite}
.buildbars i:nth-child(1){height:12px;animation-delay:0s}
.buildbars i:nth-child(2){height:20px;animation-delay:.16s}
.buildbars i:nth-child(3){height:28px;animation-delay:.32s}
.buildbars i:nth-child(4){height:16px;animation-delay:.48s}
@keyframes build{0%{transform:scaleY(0);opacity:.25}42%,72%{transform:scaleY(1);opacity:1}100%{transform:scaleY(0);opacity:.25}}
@media (prefers-reduced-motion:reduce){.buildbars i{animation:none;transform:scaleY(1)}}

/* ---- Enquire-about-this-Expo modal ---- */
.enqbg{position:fixed;inset:0;z-index:200;background:rgba(6,5,4,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity var(--t-base) var(--e-out)}
.enqbg.in{opacity:1}
.enqmodal{position:fixed;z-index:201;left:50%;top:50%;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;transform:translate(-50%,-46%) scale(.97);opacity:0;background:var(--x-deep);border:1px solid var(--x-line);border-radius:20px;padding:34px;box-shadow:0 44px 96px -30px rgba(0,0,0,.85);transition:opacity var(--t-base) var(--e-out),transform var(--t-base) var(--e-spring)}
.enqmodal.in{opacity:1;transform:translate(-50%,-50%) scale(1)}
.enqclose{position:absolute;top:14px;right:16px;width:34px;height:34px;border-radius:50%;border:1px solid var(--x-line);background:transparent;color:var(--x-t2);font-size:22px;line-height:1;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast)}
.enqclose:hover{color:var(--x-t1);border-color:var(--x-cyan)}
.enqkick{color:var(--x-cyan);margin:0 0 6px}
.enqmodal h2{font-family:var(--fd);font-size:24px;margin:0 0 8px;color:var(--x-t1)}
#enqCity{color:var(--x-cyan)}
.enqsub{font-size:14px;color:var(--x-t2);margin:0 0 20px;line-height:1.55}
.enqhp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.enqform{display:grid;gap:13px}
.enqrow{display:grid;grid-template-columns:1fr 1fr;gap:13px}
@media (max-width:480px){.enqrow{grid-template-columns:1fr}.enqmodal{padding:26px 22px}}
.enqform label{display:grid;gap:6px;font-size:12px;font-weight:650;color:var(--x-t2);letter-spacing:.03em}
.enqform input,.enqform select,.enqform textarea{background:var(--x-ink);border:1.5px solid var(--x-line);border-radius:11px;color:var(--x-t1);font-family:var(--fb);font-size:15px;padding:12px 14px}
.enqform input:focus,.enqform select:focus,.enqform textarea:focus{outline:none;border-color:var(--x-cyan)}
.enqerr{color:#FF9B9B;font-size:13px;min-height:16px;margin:0}
.enqfoot{font-size:12.5px;color:var(--x-t2);text-align:center;margin:12px 0 0}
.enqfoot a{color:var(--x-cyan);text-decoration:none;font-weight:600}
.enqok{text-align:center;padding:16px 4px}
.enqok .ic{width:52px;height:52px;border-radius:50%;background:rgba(151,215,123,.12);display:grid;place-items:center;margin:0 auto 16px;color:#97D77B}
.enqok h2{font-size:22px;margin-bottom:8px}
.enqok p{font-size:14.5px;color:var(--x-t2);margin:0 0 6px}
.enqok .ref{font-family:var(--fm);color:#97D77B;font-size:13px;margin-top:10px}
@media (prefers-reduced-motion:reduce){.enqbg,.enqmodal{transition:opacity var(--t-fast)}.enqmodal{transform:translate(-50%,-50%)}.enqmodal.in{transform:translate(-50%,-50%)}}

/* ---- configurator ---- */
.cfg{display:grid;grid-template-columns:1.25fr .95fr;gap:44px;align-items:start}
.cfg h3{font-size:15px;letter-spacing:.02em;margin:26px 0 12px;display:flex;gap:10px;align-items:center}
.cfg h3 .stepn{font-family:var(--fm);font-size:10px;color:var(--x-cyan);border:1px solid var(--x-line);border-radius:6px;padding:3px 7px}
.selrow{display:flex;flex-wrap:wrap;gap:9px}
.sel{font-size:13px;font-weight:650;background:var(--x-panel);color:var(--x-t2);border:1.5px solid var(--x-line);border-radius:999px;padding:9px 16px;cursor:pointer;transition:border-color var(--t-fast) var(--e-out),background var(--t-fast) var(--e-out),color var(--t-fast) var(--e-out),transform var(--t-fast) var(--e-spring);font-family:var(--fb)}
.sel:hover{border-color:var(--x-cyan);color:var(--x-t1)}
.sel:active{transform:scale(.95)}
.sel[aria-pressed="true"]{background:linear-gradient(90deg,rgba(242,169,59,.16),rgba(247,232,200,.16));border-color:var(--x-cyan);color:var(--x-t1)}
.sel.pk[aria-pressed="true"]{border-color:var(--x-amber)}
.quote{position:sticky;top:130px;background:var(--x-panel);border:1px solid var(--x-line);border-radius:22px;padding:26px}
.quote .coord{display:block;margin-bottom:14px}
.qlines{min-height:52px}
.qline{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(42,36,28,.6);font-size:13.5px}
.qline span{color:var(--x-t2)}
.qline b{font-variant-numeric:tabular-nums;font-weight:650}
.qempty{font-size:13.5px;color:var(--x-t2);padding:10px 0}
.qtot{margin-top:14px}
.qtot .qline{border-bottom:0;padding:5px 0}
.qdisc b{color:#7FD79B}
.qnote a{color:var(--x-cyan);font-weight:600;text-decoration:none}
.qnote a:hover{text-decoration:underline}
.qtot .grand{font-family:var(--fd);font-size:22px;font-weight:780}
.qtot .grand b{background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.qnote{font-size:11.5px;color:#8A8272;margin-top:10px;line-height:1.5}
.cfgform{margin-top:20px;display:grid;gap:12px}
.cfgform label{display:grid;gap:6px;font-size:12px;font-weight:650;color:var(--x-t2);letter-spacing:.04em}
.cfgform input,.cfgform textarea{background:var(--x-ink);border:1.5px solid var(--x-line);border-radius:12px;color:var(--x-t1);font-family:var(--fb);font-size:15px;padding:12px 14px}
.cfgform input:focus,.cfgform textarea:focus{outline:none;border-color:var(--x-cyan)}
.cfg2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.cfg2col{grid-template-columns:1fr}}
.cfgform label.cfgterms{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-size:12.5px;font-weight:500;line-height:1.55;color:var(--x-t2);text-transform:none;letter-spacing:0;margin-top:2px}
.cfgform label.cfgterms input{flex:0 0 auto;width:18px;height:18px;margin-top:1px;padding:0;accent-color:var(--x-cyan)}
.cfgterms a{color:var(--x-cyan);text-decoration:none}
.cfgterms a:hover{text-decoration:underline}
.credcap{max-width:760px;margin-top:18px;font-size:13.5px}
.draftmark{display:inline-block;font-family:var(--fm);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#D8B25A;border:1px solid rgba(216,178,90,.4);border-radius:5px;padding:1px 6px;margin-left:2px}
.cfgerr{color:#FF9B9B;font-size:13px;min-height:18px;margin:4px 0 0}
.cfgok{background:rgba(151,215,123,.08);border:1px solid rgba(151,215,123,.4);border-radius:14px;padding:18px;font-size:14px;line-height:1.6}
.cfgok b{color:#97D77B;font-family:var(--fd)}
.assist{margin-top:16px;font-size:13px;color:var(--x-t2)}
.assist a{color:var(--x-cyan);font-weight:650;text-decoration:none}
.assist a:hover{text-decoration:underline}
@media (max-width:920px){.cfg{grid-template-columns:1fr}.quote{position:static}}

/* ---- FAQ ---- */
.faqs{max-width:760px}
.faqs details{border-bottom:1px solid var(--x-pline)}
.faqs summary{cursor:pointer;font-family:var(--fd);font-weight:680;font-size:16px;color:var(--x-d1);padding:18px 30px 18px 0;list-style:none;position:relative}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";position:absolute;right:4px;top:14px;font-size:22px;color:var(--x-blue);transition:transform .2s}
.faqs details[open] summary::after{transform:rotate(45deg)}
.faqs p{margin:0 0 18px;font-size:14.5px}

/* ---- footer ---- */
.xfoot{border-top:1px solid var(--x-line);padding:44px 0 54px;background:var(--x-ink)}
.xfoot .wrap{display:flex;flex-wrap:wrap;gap:26px;justify-content:space-between;align-items:flex-start}
.xfoot .coord{line-height:2}
.xfoot a{color:var(--x-t2);text-decoration:none;font-size:13px}
.xfoot a:hover{color:var(--x-t1)}
.xfoot nav{display:flex;gap:20px;flex-wrap:wrap}

/* ---- event detail page (/expos/<city>) ---- */
.evhero{min-height:62vh;display:flex;align-items:flex-end;padding:130px 0 56px;overflow:hidden;position:relative}
.evhero .wrap{position:relative;z-index:2}
.evhero .odonum{font-variant-numeric:tabular-nums}
.evhero .crumb{font-family:var(--fm);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px}
.evhero .crumb a{color:var(--x-t2);text-decoration:none}
.evhero .crumb a:hover{color:var(--x-cyan)}
.evhero h1{font-size:clamp(34px,5.3vw,60px);text-wrap:balance;max-width:15ch}
.evhero .evmeta{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.evmeta span{font-family:var(--fm);font-size:11px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--x-line);border-radius:999px;padding:8px 15px;color:var(--x-t2);background:rgba(24,21,16,.55)}
.evmeta span b{color:var(--x-cyan);font-weight:600}
.evgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:36px}
.evfact{background:var(--x-panel);border:1px solid var(--x-line);border-radius:var(--rad);padding:22px;transition:border-color var(--t-base) var(--e-out),transform var(--t-base) var(--e-out)}
.evfact:hover{border-color:var(--x-cyan);transform:translateY(-3px)}
.evfact .coord{display:block;margin-bottom:10px;color:var(--x-cyan)}
.evfact b{font-family:var(--fd);font-size:23px;font-weight:760;color:var(--x-t1);line-height:1.1}
.evfact i{font-style:normal;font-size:12.5px;color:var(--x-t2);display:block;margin-top:6px;line-height:1.4}
@media (max-width:900px){.evgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.evgrid{grid-template-columns:1fr}}
.evsplit{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
@media (max-width:860px){.evsplit{grid-template-columns:1fr}}
.evpanel{background:#fff;border:1px solid var(--x-pline);border-radius:var(--rad);padding:26px}
.evpanel h3{margin-top:0}
.evpanel ul{margin:0;padding-left:18px;font-size:14px;color:#4A463D}
.evpanel li{margin:7px 0}

/* Audience section — premium numbered journey + interactive category tiles */
.audsplit{margin-top:36px;gap:52px}
.audsub-k{margin-bottom:10px;color:var(--x-blue)}
.audsubh{font-family:var(--fd);font-size:clamp(19px,2.1vw,25px);font-weight:750;color:var(--x-d1);letter-spacing:-.01em;margin:0 0 24px;text-wrap:balance}
.audjourney{position:relative;display:flex;flex-direction:column}
.audstage{position:relative;display:grid;grid-template-columns:38px 1fr;gap:16px;padding:0 0 22px}
.audstage:not(:last-child)::before{content:"";position:absolute;left:18px;top:36px;bottom:-4px;width:2px;background:linear-gradient(180deg,var(--x-cyan),rgba(242,169,59,.1))}
.audnum{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:var(--fm);font-size:12px;font-weight:650;color:var(--x-blue);background:#fff;border:1.5px solid var(--x-pline);position:relative;z-index:1;transition:border-color var(--t-base) var(--e-out),color var(--t-base),transform var(--t-base) var(--e-out),box-shadow var(--t-base)}
.audstage:hover .audnum{border-color:var(--x-cyan);color:var(--x-cyan);transform:scale(1.08);box-shadow:0 7px 20px -8px rgba(242,169,59,.6)}
.audbody{padding-top:5px}
.audhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.audhead b{font-family:var(--fd);font-size:16.5px;font-weight:700;color:var(--x-d1)}
.audage{font-family:var(--fm);font-size:10.5px;letter-spacing:.04em;color:var(--x-blue);border:1px solid var(--x-pline);border-radius:999px;padding:3px 10px;white-space:nowrap}
.audstage p{margin:6px 0 0;font-size:13.5px;color:#5C574B;line-height:1.55}
.catgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cattile{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:550;color:var(--x-d1);background:#fff;border:1px solid var(--x-pline);border-radius:13px;padding:13px 15px;transition:transform var(--t-base) var(--e-out),border-color var(--t-base),box-shadow var(--t-base) var(--e-out)}
.cattile::before{content:"";width:6px;height:6px;border-radius:50%;background:linear-gradient(140deg,var(--x-cyan),var(--x-violet));flex:none}
.cattile:hover{transform:translateY(-3px);border-color:var(--x-cyan);box-shadow:0 14px 30px -16px rgba(0,0,0,.32)}
@media (max-width:820px){.audsplit{gap:36px}}
@media (max-width:560px){.catgrid{grid-template-columns:1fr}}
.evmapph{position:relative;border:1.5px dashed #D8CDB9;border-radius:var(--rad);min-height:230px;display:grid;place-items:center;text-align:center;color:#8A8272;font-size:13.5px;padding:24px;background:repeating-linear-gradient(45deg,#FBF8F1,#FBF8F1 12px,#F5F0E5 12px,#F5F0E5 24px)}
/* live venue map (Google embed injected once the API returns the confirmed venue) */
.evmapph.live{border:1px solid var(--x-pline);border-style:solid;background:#fff;padding:0;place-items:stretch;overflow:hidden;min-height:260px}
.evmapph.live iframe{width:100%;height:100%;min-height:260px;display:block}
.evmapdir{position:absolute;right:12px;bottom:12px;z-index:2;background:var(--x-ink);color:var(--x-t1);font-family:var(--fm);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:9px 13px;border-radius:10px;text-decoration:none;box-shadow:0 8px 22px -8px rgba(0,0,0,.55);transition:background var(--t-fast)}
.evmapdir:hover{background:var(--x-deep)}
.evmapload{display:grid;place-items:center;align-content:center;gap:14px;text-align:center;padding:28px 24px;min-height:260px}
.evmapload p{margin:0;color:#4A463D;font-size:14px}
.evmapload .btn{position:static}
.evmapload .evmapdir{position:static;box-shadow:none}
.evmapnote{font-family:var(--fm);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:#8A8272;max-width:220px}
.evpkrow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.evpk{background:var(--x-panel);border:1px solid var(--x-line);border-radius:var(--rad);padding:24px;display:flex;flex-direction:column;gap:9px;color:var(--x-t1);transition:transform var(--t-base) var(--e-out),box-shadow var(--t-base) var(--e-out),border-color var(--t-base) var(--e-out)}
.evpk:hover{transform:translateY(-5px);box-shadow:0 26px 54px -28px rgba(0,0,0,.7);border-color:var(--x-cyan)}
.evpk h3{margin:0;font-size:19px;color:var(--x-t1)}
.evpk .pr{font-family:var(--fd);font-weight:770;font-size:24px;color:var(--x-t1)}
.evpk .pr small{font-size:11px;color:var(--x-t2);font-weight:600}
.evpk .coord{font-size:9.5px;color:var(--x-cyan)}
.evpk a{margin-top:10px}
.evpk .avline{font-size:11.5px;color:#97D77B}
.evpk .avline.warn{color:var(--x-amber)}
@media (max-width:820px){.evpkrow{grid-template-columns:1fr}}

/* ===== punch-list polish (2026-07-15 live review) ===== */
/* Select button: a dark package card sits in a light section, so .light .btn-line
   was giving it dark-on-dark (invisible) text. Force readable light text. */
.light .evpk .btn-line{color:var(--x-t1);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.24)}
.light .evpk .btn-line:hover{color:#fff;box-shadow:inset 0 0 0 1.5px var(--x-cyan)}
.light .evpk .btn-line:active{transform:scale(.97)}
/* FairTap™ wordmark in brand colours wherever it's called out in a heading. */
.ftword{background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
/* Sticky pricing header on the comparison matrix — the package cards follow as you
   scroll the feature rows. Sits just below the sticky site header. */
/* sticks BELOW the main header (66px) + section sub-nav (~44px); the featured card
   lifts -14px, so 130px keeps its name clear of the sub-nav instead of behind it. */
.spectable thead th{position:sticky;top:130px;z-index:6;background:var(--x-paper);padding-top:14px}
.spectable thead th.feat{z-index:7}
/* Destination cards — a little more life on hover. */
.dcard{transition:border-color var(--t-base) var(--e-out),transform var(--t-base) var(--e-out),box-shadow var(--t-base) var(--e-out)}
.dcard:hover,.dcard.on{box-shadow:0 18px 44px -24px rgba(0,0,0,.55)}
.dcard:hover .dn{color:var(--x-amber)}
.evcta{background:linear-gradient(120deg,#1B1611,#1D1812);border:1px solid var(--x-line);border-radius:26px;padding:52px 40px;text-align:center}
.evcta h2{margin-bottom:12px}
.evcta p{max-width:520px;margin:0 auto 28px;color:var(--x-t2)}

/* ---- photography (AI-generated, labelled illustrative) ---- */
figure.ph{position:relative;margin:0;border-radius:var(--rad);overflow:hidden;background:var(--x-panel)}
.ph img{display:block;width:100%;height:100%;object-fit:cover}
.ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 9px;font-family:var(--fm);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(247,242,233,.8);background:linear-gradient(transparent,rgba(13,12,10,.72))}
.destph{aspect-ratio:21/9;border-radius:22px;margin:0 0 44px}
.jphoto{aspect-ratio:4/5;margin-bottom:14px}
.dayph{aspect-ratio:3/2;margin-bottom:16px}
.ftphoto{aspect-ratio:3/2;margin-top:20px}
.evphotos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px}
.evphotos .ph{aspect-ratio:3/2}
@media (max-width:820px){.evphotos{grid-template-columns:1fr}}

/* ============================================================
   MICRO-INTERACTION UPGRADE PASS (motion tokens applied)
   ============================================================ */
/* press tactility on the remaining interactive surfaces */
.pkc{transition:border-color var(--t-base) var(--e-out),box-shadow var(--t-base) var(--e-out),transform var(--t-fast) var(--e-spring)}
.pkc:active{transform:scale(.985)}
.ftreplay{transition:color var(--t-fast) var(--e-out),border-color var(--t-fast) var(--e-out),transform var(--t-fast) var(--e-spring)}
.ftreplay:active{transform:scale(.96)}
.ftreplay.nudge{animation:ftNudge 1.2s var(--e-out) 2}
@keyframes ftNudge{0%,100%{box-shadow:0 0 0 0 rgba(242,169,59,0)}50%{box-shadow:0 0 0 4px rgba(242,169,59,.25)}}

/* number odometer — tabular so digits don't jitter while counting */
.odo{font-variant-numeric:tabular-nums}
.quote.flash{animation:qFlash var(--t-base) var(--e-out)}
@keyframes qFlash{0%{box-shadow:0 0 0 0 rgba(242,169,59,0)}40%{box-shadow:0 0 0 3px rgba(242,169,59,.28)}100%{box-shadow:0 0 0 0 rgba(242,169,59,0)}}

/* GB map — connection arcs between the cities (the brand thesis, visualised) */
.gbarc{fill:none;stroke:url(#arcgrad);stroke-width:.5;opacity:.5;stroke-linecap:round;stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.gbmap.in .gbarc{animation:arcDraw 1.1s var(--e-inout) forwards;animation-delay:var(--ad,0s)}
@keyframes arcDraw{to{stroke-dashoffset:0}}
.gbmap.arclit .gbarc{opacity:.9;transition:opacity var(--t-base) var(--e-out)}
@media (prefers-reduced-motion:reduce){.gbarc{stroke-dashoffset:0;animation:none}}

/* sub-nav sliding active indicator (one bar that moves between items) */
.subnav .wrap{position:relative}
.subnav-ind{position:absolute;bottom:0;height:2px;background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));border-radius:2px;transform:translateX(var(--ix,0));width:var(--iw,0);transition:transform var(--t-base) var(--e-out),width var(--t-base) var(--e-out),opacity var(--t-fast);opacity:0;pointer-events:none}
.subnav-ind.show{opacity:1}
.subnav a.on{border-bottom-color:transparent}
@media (prefers-reduced-motion:reduce){.subnav-ind{transition:none}}

/* reserve success payoff */
.cfgok .okref{font-family:var(--fm);letter-spacing:.06em;color:#97D77B}
.cfgok .okpulse{position:relative}
.cfgok.pop{animation:okPop var(--t-slow) var(--e-spring)}
@keyframes okPop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.okcaret{display:inline-block;width:2px;height:1em;background:#97D77B;margin-left:2px;vertical-align:-2px;animation:okBlink 1s steps(1) infinite}
@keyframes okBlink{50%{opacity:0}}

/* reduced-motion: quiet the non-essential hover transforms + press springs */
@media (prefers-reduced-motion:reduce){
  .jphoto img,.dcard,.spec-card--feat,.heroside img{transition:none!important;animation:none!important}
  .jstep:hover .jphoto img,.catfig:hover img{transform:none}
  .btn:active,.sel:active,.cat:active,.pkc:active,.spec-toggle:active,.spec-card .go:active,.ftreplay:active{transform:none}
  .quote.flash,.cfgok.pop,.ftreplay.nudge{animation:none}
}

/* ---- FairTap (i) friendly popover on /expos ---- */
.ftbrand{position:relative;white-space:nowrap}
.ftinfo{display:inline-grid;place-items:center;width:1.3em;height:1.3em;margin-left:1.3em;border-radius:50%;border:1.5px solid var(--x-cyan);background:transparent;color:var(--x-cyan);font-family:var(--fb);font-style:italic;font-weight:700;font-size:.4em;line-height:1;cursor:pointer;position:relative;top:-1.15em;transition:background var(--t-fast) var(--e-out),transform var(--t-fast) var(--e-spring)}
.ftinfo::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1.5px solid var(--x-cyan);opacity:.6;animation:ftIping 2.6s ease-out infinite}
.ftinfo:hover,.ftinfo[aria-expanded="true"]{background:var(--x-cyan);color:var(--x-ink)}
.ftinfo:active{transform:scale(.9)}
@keyframes ftIping{0%{transform:scale(1);opacity:.6}70%,100%{transform:scale(1.9);opacity:0}}
.ftpop{display:block;position:absolute;top:calc(100% + 14px);left:0;width:340px;max-width:86vw;background:linear-gradient(165deg,#20190F,#14110B);border:1px solid var(--x-line);border-radius:16px;padding:18px 18px 16px;box-shadow:0 30px 60px -24px rgba(0,0,0,.75);z-index:30;white-space:normal;transform-origin:top left;opacity:0;transform:translateY(-8px) scale(.96);pointer-events:none;transition:opacity var(--t-base) var(--e-out),transform var(--t-base) var(--e-spring)}
.ftpop.open{opacity:1;transform:none;pointer-events:auto}
.ftpop::before{content:"";position:absolute;top:-7px;left:22px;width:13px;height:13px;background:#20190F;border-left:1px solid var(--x-line);border-top:1px solid var(--x-line);transform:rotate(45deg)}
.ftpop .fph{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.ftpop .fpglyph{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:7px;background:rgba(242,169,59,.14);color:var(--x-cyan)}
.ftpop .fpglyph svg{width:15px;height:15px}
.ftpop b{font-family:var(--fd);font-weight:720;font-size:15px;color:var(--x-t1)}
.ftpop .fptag{margin-left:auto;font-family:var(--fm);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--x-cyan);border:1px solid var(--x-line);border-radius:999px;padding:3px 8px}
.ftpop .fptxt{display:block;font-family:var(--fb);font-weight:400;font-size:13.5px;line-height:1.55;color:var(--x-t2);letter-spacing:0;margin:0 0 14px}
.ftpop-link{display:inline-flex;align-items:center;gap:7px;font-family:var(--fd);font-weight:700;font-size:13px;color:var(--x-ink);background:linear-gradient(92deg,var(--x-cyan),var(--x-violet));border-radius:9px;padding:9px 15px;text-decoration:none;letter-spacing:0;transition:box-shadow var(--t-fast),transform var(--t-fast) var(--e-spring)}
.ftpop-link span{transition:transform var(--t-fast) var(--e-out)}
.ftpop-link:hover{box-shadow:0 8px 22px -10px rgba(242,169,59,.6)}
.ftpop-link:hover span{transform:translate(2px,-2px)}
.ftpop-link:active{transform:scale(.97)}
@media (max-width:560px){.ftpop{left:auto;right:0}.ftpop::before{left:auto;right:22px}}
@media (prefers-reduced-motion:reduce){.ftinfo::after{animation:none;opacity:0}.ftpop{transition:opacity var(--t-fast)}}

/* ---- waiting-list page ---- */
.wlhero{min-height:100vh;display:flex;align-items:center;padding:120px 0 80px}
.wlwrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;width:100%}
.wlintro h1{font-size:clamp(38px,5.4vw,60px);font-weight:790;margin-bottom:20px}
.wlintro h1 .gl{background:linear-gradient(90deg,var(--x-cyan),var(--x-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.wlsub{font-size:18px;color:var(--x-t2);max-width:520px;margin:0 0 28px}
.wllist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.wllist li{display:flex;gap:12px;font-size:14.5px;color:var(--x-t2)}
.wllist li svg{width:20px;height:20px;color:var(--x-cyan);flex:none;margin-top:1px}
.wllist li b{color:var(--x-t1);font-weight:650}
.wlback{display:inline-block;margin-top:26px;font-family:var(--fm);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--x-t2);text-decoration:none}
.wlback:hover{color:var(--x-cyan)}
.wlform{background:var(--x-panel);border:1px solid var(--x-line);border-radius:22px;padding:28px}
.wlform h2{font-size:19px;margin:0 0 4px}
.wlform .wlnote{font-size:13px;color:var(--x-t2);margin:0 0 20px}
.wlform label{display:grid;gap:6px;font-size:12px;font-weight:650;color:var(--x-t2);letter-spacing:.03em;margin-bottom:14px}
.wlform label .rq{color:var(--x-cyan)}
.wlform input,.wlform select,.wlform textarea{background:var(--x-ink);border:1.5px solid var(--x-line);border-radius:11px;color:var(--x-t1);font-family:var(--fb);font-size:15px;padding:12px 14px;transition:border-color var(--t-fast)}
.wlform input:focus,.wlform select:focus,.wlform textarea:focus{outline:none;border-color:var(--x-cyan)}
.wlform textarea{resize:vertical;min-height:70px}
.wlrow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wlgroup{display:none}
.wlgroup.show{display:block}
.wlage{display:none}
.wlage.show{display:block}
.wlopt{color:#8A8272;font-weight:500;text-transform:none;letter-spacing:0}
.wlminor{font-size:12px;line-height:1.5;color:var(--x-t2);background:rgba(216,178,90,.06);border:1px solid rgba(216,178,90,.28);border-radius:10px;padding:10px 12px;margin:-4px 0 16px}
.wlhp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.wlconsent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--x-t2);margin:6px 0 16px}
.wlconsent input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--x-cyan)}
.wlerr{color:#FF9B9B;font-size:13px;min-height:18px;margin:0 0 10px}
.wlok{background:rgba(151,215,123,.08);border:1px solid rgba(151,215,123,.4);border-radius:16px;padding:28px;text-align:center}
.wlok .ic{width:48px;height:48px;border-radius:50%;background:rgba(151,215,123,.12);display:grid;place-items:center;margin:0 auto 16px;color:#97D77B}
.wlok h2{font-size:20px;margin-bottom:8px}
.wlok p{font-size:14.5px;color:var(--x-t2);margin:0}
.wlok .ref{font-family:var(--fm);color:#97D77B;font-size:13px;margin-top:12px}
@media (max-width:900px){.wlwrap{grid-template-columns:1fr;gap:36px}.wlhero{min-height:auto;padding:96px 0 64px}.wlrow{grid-template-columns:1fr}}
