/* ============================================================
   LAUDERDALE TROPICAL BEAR WEEK 2027 — Miami Art Deco system
   ============================================================ */

@font-face{ font-family:'Cheetah Kick'; src:url('fonts/CheetahKick.otf') format('opentype'); font-display:swap; }
@font-face{ font-family:'Impact Deco'; src:url('fonts/Impact.ttf') format('truetype'); font-display:swap; }
@font-face{ font-family:'Anaheim'; src:url('fonts/Anaheim-Regular.woff') format('woff'); font-weight:400; font-display:swap; }
@font-face{ font-family:'Anaheim Rough'; src:url('fonts/Anaheim-Rough.woff') format('woff'); font-display:swap; }

:root{
  /* palette — sourced from official logo pack + pattern set */
  --teal:        #27bdba;
  --teal-deep:   #178783;
  --teal-ink:    #0b3a38;
  --teal-light:  #8fdcd4;
  --teal-pale:   #d6f0ec;
  --gold:        #d3a76a;
  --gold-light:  #e8c996;
  --coral:       #ef8273;
  --pink:        #f4b6bf;
  --cream:       #f7f0e0;
  --cream-2:     #fcf8ee;
  --green:       #143a2c;
  --ink:         #122222;

  /* roles */
  --bg:          var(--cream);
  --fg:          var(--ink);
  --accent:      var(--coral);

  /* type */
  --display: 'Impact Deco', 'Anton', 'Arial Narrow', sans-serif;
  --script:  'Cheetah Kick', cursive;
  --sans:    'Anaheim', system-ui, sans-serif;

  /* density (overwritten by [data-density]) */
  --s-section: 132px;   /* vertical section padding */
  --s-gap:     28px;    /* base grid gap */
  --s-card:    34px;    /* card padding */
  --maxw:      1240px;
}

[data-density="compact"]{ --s-section: 84px;  --s-gap: 18px; --s-card: 24px; }
[data-density="spacious"]{ --s-section: 184px; --s-gap: 40px; --s-card: 46px; }

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* paper grain over everything */
body::after{
  content:"";
  position:fixed; inset:0; z-index:9000; pointer-events:none;
  opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* official art-deco diamond pattern, for dark sections */
.deco-pattern{ position:absolute; inset:0; background-image:url('pattern-deco.jpg'); background-size:340px; opacity:.16; mix-blend-mode:screen; pointer-events:none; }
.brand-logo{ height:auto; width:100%; }
.nav-brand .brand-logo{ width:auto; }

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

.wrap{ width:min(100% - 48px, var(--maxw)); margin-inline:auto; }
.eyebrow{
  font-family:var(--sans); font-weight:600; font-size:13px;
  letter-spacing:.34em; text-transform:uppercase;
}
.section{ padding-block:var(--s-section); position:relative; }

/* ---------- halftone & deco textures ---------- */
.halftone{
  background-image:radial-gradient(currentColor 1.4px, transparent 1.5px);
  background-size:11px 11px;
}
.deco-rule{
  height:0; border:0; border-top:2px solid currentColor;
  position:relative; opacity:.5;
}
.deco-rule::before,.deco-rule::after{
  content:""; position:absolute; top:-5px; width:10px; height:10px;
  background:currentColor; transform:rotate(45deg);
}
.deco-rule::before{ left:0; }
.deco-rule::after{ right:0; }

/* sunburst */
.sunburst{
  position:absolute; border-radius:50%;
  background:repeating-conic-gradient(currentColor 0deg 4deg, transparent 4deg 8deg);
  -webkit-mask:radial-gradient(circle, transparent 22%, #000 23%);
          mask:radial-gradient(circle, transparent 22%, #000 23%);
  opacity:.16; pointer-events:none;
}

/* ============================================================
   LOGO LOCKUP  (em-scaled — set font-size on .lockup to size)
   ============================================================ */
.lockup{ display:inline-block; line-height:.86; color:#fff; font-size:64px; }
.lockup .lk-lauderdale{
  display:inline-block; font-family:var(--display);
  font-size:.255em; letter-spacing:.10em; text-transform:uppercase;
  border:.055em solid currentColor; padding:.16em .28em .07em;
  position:relative; z-index:3; margin-left:.06em;
}
.lockup .lk-tropical{
  font-family:var(--script); font-size:.95em; display:block; white-space:nowrap;
  margin:-.14em 0 -.06em -.03em; position:relative; z-index:2;
  text-shadow:0 .02em 0 rgba(0,0,0,.12);
}
.lockup .lk-bearweek{
  font-family:var(--display); font-size:.70em; letter-spacing:.01em;
  text-transform:uppercase; display:block; white-space:nowrap; position:relative; z-index:3;
  -webkit-text-stroke:.5px rgba(0,0,0,.04);
}
.lockup .lk-meta{
  font-family:var(--sans); font-weight:600; font-size:.092em;
  letter-spacing:.22em; text-transform:uppercase; margin-top:1.1em;
  display:block; opacity:.92;
}
.lockup.outline .lk-tropical,
.lockup.outline .lk-bearweek{
  color:transparent; -webkit-text-stroke:1.3px #fff;
}
.lockup.outline .lk-lauderdale{ color:#fff; }

/* color variants of lockup */
.lockup.ink{ color:var(--teal-ink); }
.lockup.coral .lk-tropical{ color:var(--coral); }
.lockup.pink  .lk-tropical{ color:var(--pink); }
.lockup.gold  .lk-tropical{ color:var(--gold-light); }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  --bg-btn:var(--ink); --fg-btn:var(--cream-2);
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--sans); font-weight:700; font-size:14px;
  letter-spacing:.16em; text-transform:uppercase;
  padding:16px 30px; background:var(--bg-btn); color:var(--fg-btn);
  border:2px solid var(--bg-btn); cursor:pointer; transition:.18s ease;
  border-radius:0; position:relative;
}
.btn:hover{ transform:translateY(-2px); }
.btn.coral{ --bg-btn:var(--coral); --fg-btn:#fff; }
.btn.gold{  --bg-btn:var(--gold);  --fg-btn:var(--ink); }
.btn.teal{  --bg-btn:var(--teal);  --fg-btn:#fff; }
.btn.ghost{ --bg-btn:transparent; --fg-btn:currentColor; border-color:currentColor; }
.btn.ghost:hover{ background:currentColor; }
.btn.ghost:hover span{ color:var(--bg); }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:8000;
  background:color-mix(in srgb, var(--cream) 88%, transparent);
  backdrop-filter:blur(8px);
  border-bottom:2px solid var(--ink);
}
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; height:74px; }
.nav-brand{ display:flex; align-items:center; gap:13px; font-family:var(--display);
  text-transform:uppercase; color:var(--ink); white-space:nowrap; }
.nav-brand b{ font-size:15px; letter-spacing:.05em; }
.nav-brand .scr{ font-family:var(--script); font-size:18px; color:var(--coral); text-transform:none;
  line-height:1; transform:translateY(1px); padding:0 4px; }
.nav-links{ display:flex; align-items:center; gap:26px; }
@media (max-width:1040px){ .nav-brand .scr{ display:none; } }
.nav-links a{ font-weight:600; font-size:13px; letter-spacing:.18em; text-transform:uppercase; opacity:.8; white-space:nowrap; }
@media (max-width:1240px){ .nav-links{ gap:18px; } .nav-links a:not(.btn){ font-size:12px; letter-spacing:.12em; } }
@media (max-width:1080px){ .nav-links{ gap:14px; } .nav .btn{ padding:10px 14px; } }
.nav-links a:hover{ opacity:1; color:var(--teal-deep); }
.nav .btn{ padding:11px 20px; }
@media (max-width:880px){ .nav-links a:not(.btn){ display:none; } }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative; overflow:hidden;
  background:var(--teal); color:#fff;
  border-bottom:3px solid var(--ink);
}
.hero .halftone-layer{ position:absolute; inset:0; color:#fff; opacity:.14; }
.hero .wrap{ position:relative; z-index:2; padding-block:96px; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
@media (max-width:960px){ .hero-grid{ grid-template-columns:1fr; gap:40px; }
  .hero .arch{ max-width:420px; margin-inline:auto; width:100%; } }

.hero-eyebrow{ display:flex; align-items:center; gap:14px; margin-bottom:22px; color:var(--teal-pale); }
.hero-eyebrow span{ height:2px; width:54px; background:currentColor; }
.hero .lockup{ font-size:84px; }
@media (max-width:1100px){ .hero .lockup{ font-size:64px; } }
@media (max-width:520px){ .hero .lockup{ font-size:46px; } }
.hero-sub{ max-width:30ch; margin:30px 0 32px; font-size:19px; color:rgba(255,255,255,.92); }
.hero-cta{ display:flex; gap:16px; flex-wrap:wrap; }

/* hero arch photo */
.arch{
  position:relative; aspect-ratio:3/4;
  border:3px solid #fff; border-radius:50% 50% 8px 8px / 32% 32% 8px 8px;
  overflow:hidden;
}
.arch::before{
  content:""; position:absolute; inset:10px; border:2px solid rgba(255,255,255,.6);
  border-radius:inherit; z-index:3; pointer-events:none;
}

/* photo placeholder */
.photo{
  position:relative; overflow:hidden; color:#fff;
  background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.10) 0 12px, rgba(0,0,0,0) 12px 24px),
    linear-gradient(160deg, var(--teal-deep), var(--teal));
  display:flex; align-items:flex-end;
}
.photo.gold-ph{ background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.10) 0 12px, rgba(0,0,0,0) 12px 24px),
    linear-gradient(160deg, #c47e1f, var(--gold)); }
.photo.coral-ph{ background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.10) 0 12px, rgba(0,0,0,0) 12px 24px),
    linear-gradient(160deg, #c95f50, var(--coral)); }
.photo.green-ph{ background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 12px, rgba(0,0,0,0) 12px 24px),
    linear-gradient(160deg, #0c2b20, var(--green)); }
.photo .cap{
  font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:11px;
  letter-spacing:.06em; text-transform:uppercase; line-height:1.4;
  background:rgba(0,0,0,.34); padding:7px 11px; margin:12px;
  border:1px solid rgba(255,255,255,.35); backdrop-filter:blur(2px);
}
.photo .cap b{ display:block; font-size:10px; opacity:.7; font-weight:400; }

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee{
  background:var(--ink); color:var(--cream-2); overflow:hidden;
  border-bottom:3px solid var(--ink); padding:16px 0; white-space:nowrap;
}
.marquee-track{ display:inline-flex; gap:34px; animation:scroll 28s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee span{ font-family:var(--display); text-transform:uppercase; font-size:22px; letter-spacing:.04em; }
.marquee b{ color:var(--coral); font-family:var(--script); font-size:26px; text-transform:none; font-weight:400; }
@keyframes scroll{ to{ transform:translateX(-50%); } }

/* ============================================================
   SECTION HEADERS
   ============================================================ */
.shead{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:54px; }
.shead h2{
  font-family:var(--display); text-transform:uppercase; margin:0;
  font-size:clamp(40px, 6vw, 78px); line-height:.92; letter-spacing:.005em;
}
.shead h2 em{ font-family:var(--script); font-style:normal; text-transform:none; color:var(--coral);
  font-size:1.05em; display:inline-block; margin-right:.55em; }
.shead p{ max-width:40ch; margin:0; color:color-mix(in srgb, var(--ink) 74%, transparent); font-size:1.0625em; }

/* ============================================================
   ABOUT / FACTS
   ============================================================ */
.about{ background:var(--cream-2); border-bottom:3px solid var(--ink); }
.facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-gap); margin-top:18px; }
@media (max-width:1000px){ .facts{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px){ .facts{ grid-template-columns:1fr; } }
.fact{
  border:2px solid var(--ink); padding:var(--s-card);
  background:var(--cream); position:relative;
}
.fact .k{ font-family:var(--display); font-size:clamp(44px,5vw,68px); line-height:.9; color:var(--teal-deep); }
.fact .l{ font-weight:600; letter-spacing:.16em; text-transform:uppercase; font-size:13px; margin-top:10px; }
.fact:nth-child(2) .k{ color:var(--coral); }
.fact:nth-child(3) .k{ color:var(--gold); }

.about-lead{ display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:start; }
@media (max-width:860px){ .about-lead{ grid-template-columns:1fr; } }
.about-lead p{ font-size:21px; line-height:1.55; }
.about-lead .drop::first-letter{
  font-family:var(--display); font-size:3.4em; float:left; line-height:.8;
  margin:.06em .1em 0 0; color:var(--coral);
}

/* ============================================================
   EVENTS
   ============================================================ */
.events{ background:var(--teal); color:#fff; border-bottom:3px solid var(--ink); }
.events .shead h2 em{ color:var(--gold-light); }
.events .shead p{ color:rgba(255,255,255,.8); }
.ev-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:1fr; gap:var(--s-gap); align-items:stretch; }
@media (max-width:1080px){ .ev-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .ev-grid{ grid-template-columns:1fr; } }
.ev{
  position:relative; border:2px solid var(--ink);
  background:var(--cream-2); overflow:hidden; height:100%;
  display:flex; flex-direction:column; padding:28px 26px 26px;
}
.ev::after{ content:""; position:absolute; z-index:0; pointer-events:none; opacity:.4; background-repeat:no-repeat; }
.ev > *{ position:relative; z-index:1; }
.ev:nth-child(1)::after{ inset:auto -40px -34px auto; width:230px; height:230px; background-image:url('paw.svg'); background-size:contain; transform:rotate(8deg); }
.ev:nth-child(2)::after{ inset:-26px -20px auto auto; width:170px; height:170px; background-image:url('paw.svg'); background-size:contain; transform:rotate(150deg); }
.ev:nth-child(3)::after{ inset:auto auto -34px -28px; width:220px; height:220px; background-image:url('paw.svg'); background-size:contain; transform:rotate(-25deg); }
.ev:nth-child(4)::after{ inset:10px -22px auto auto; width:160px; height:340px;
  background-image:url('paw.svg'),url('paw.svg'); background-size:160px 160px,160px 160px;
  background-position:0 0, 30px 170px; background-repeat:no-repeat,no-repeat; transform:rotate(12deg); }
.ev:nth-child(5)::after{ inset:auto -28px -38px auto; width:290px; height:140px; background-image:url('scratch.svg'); background-size:contain; transform:rotate(-4deg); }
.ev:nth-child(6)::after{ inset:-18px auto auto -28px; width:200px; height:200px; background-image:url('paw.svg'); background-size:contain; transform:rotate(-150deg); }
.ev:nth-child(7)::after{ inset:auto -26px -32px auto; width:260px; height:126px; background-image:url('scratch.svg'); background-size:contain; transform:rotate(198deg); }
.ev::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:repeating-linear-gradient(90deg, var(--teal-deep) 0 10px, transparent 10px 20px); opacity:.8; }
.ev-head{ display:flex; align-items:flex-start; gap:16px; margin-bottom:16px; }
.ev-num{ font-family:var(--display); font-size:44px; line-height:.85; color:var(--coral);
  border:2px solid var(--coral); padding:6px 10px 2px; flex:none; }
.ev .ev-day{ font-family:var(--sans); font-weight:700; text-transform:uppercase; font-size:11px; letter-spacing:.2em; color:var(--teal-deep); }
.ev h3{ font-family:var(--display); text-transform:uppercase; font-size:24px; line-height:1; margin:6px 0 0; color:var(--ink); }
.ev .ev-tag{ font-family:var(--script); font-size:22px; color:var(--coral); margin-top:auto; padding-top:18px; align-self:flex-start; }
.ev-cta{ margin-top:14px; align-self:stretch; justify-content:center; padding:12px 20px; font-size:12px; }
.ev-list{ list-style:none; margin:0; padding:14px 0 0; display:flex; flex-direction:column; gap:8px;
  border-top:1px solid rgba(18,34,34,.14); }
.ev-list li{ font-size:14px; line-height:1.35; color:var(--ink); padding-left:15px; position:relative; }
.ev-list li::before{ content:""; position:absolute; left:0; top:.48em; width:6px; height:6px; background:var(--coral); transform:rotate(45deg); }
.ev-list li b{ color:var(--teal-deep); font-weight:700; }
.ev-list li i{ font-style:normal; color:color-mix(in srgb, var(--ink) 60%, transparent); font-size:12px; letter-spacing:.03em; margin-left:.3em; }

/* ============================================================
   GALLERY / THE BEARS
   ============================================================ */
.gallery{ background:var(--cream); border-bottom:3px solid var(--ink); }
.gal-scroll{ display:flex; flex-direction:column; gap:var(--s-gap); }
.gal-scroll::-webkit-scrollbar{ display:none; }
.gal-row{ display:flex; gap:var(--s-gap); width:max-content; animation:galscroll 42s linear infinite; touch-action:pan-y; }
.gal-row:hover{ animation-play-state:paused; }
#galRow2{ animation-direction:reverse; animation-duration:48s; }
.gal-row .photo{ flex:none; border:2px solid var(--ink); cursor:grab; }
.gal-row.horiz .photo{ width:320px; height:200px; }
.gal-row.vert .photo{ width:190px; height:270px; }
.gal-row.dragging{ animation-play-state:paused; cursor:grabbing; }
@keyframes galscroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (max-width:760px){ .gal-row.horiz .photo{ width:230px; height:150px; } .gal-row.vert .photo{ width:150px; height:210px; } }

/* ============================================================
   POSTERS strip
   ============================================================ */
.posters{ background:var(--green); color:#fff; border-bottom:3px solid var(--ink); }
.posters .shead h2 em{ color:var(--pink); }
.posters .shead p{ color:rgba(255,255,255,.8); }
.pos-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-gap); }
@media (max-width:820px){ .pos-grid{ grid-template-columns:1fr; max-width:380px; margin-inline:auto; } }
.poster-card{ aspect-ratio:3/4; border:3px solid #fff; position:relative; overflow:hidden; }

/* ============================================================
   TICKETS
   ============================================================ */
.tickets{ background:var(--gold); color:var(--ink); border-bottom:3px solid var(--ink); }
.tickets .shead h2 em{ color:var(--teal-deep); }
.passes-preview .shead h2 em{ color:var(--teal-ink); }
.passes-preview .tk{ background:var(--cream-2); }
.passes-preview .tk.feature{ background:var(--teal-ink); color:var(--cream-2); }
.passes-preview .tk.feature .ribbon{ background:var(--gold); color:var(--ink); }
.tk-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-gap); }
@media (max-width:820px){ .tk-grid{ grid-template-columns:1fr; max-width:420px; margin-inline:auto; } }
.tk{
  background:var(--cream-2); border:2px solid var(--ink); padding:var(--s-card);
  display:flex; flex-direction:column; gap:14px; position:relative;
}
.tk.feature{ background:var(--ink); color:var(--cream-2); transform:translateY(-12px); }
.tk .tk-name{ font-family:var(--display); text-transform:uppercase; font-size:26px; letter-spacing:.02em; }
.tk .tk-price{ font-family:var(--display); font-size:60px; line-height:.85; }
.tk .tk-price sup{ font-size:.4em; vertical-align:top; }
.tk ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; font-size:15px; }
.tk li{ display:flex; gap:10px; align-items:baseline; }
.tk li::before{ content:""; width:8px; height:8px; flex:none; background:var(--coral); transform:rotate(45deg); position:relative; top:1px; }
.tk.feature li::before{ background:var(--gold-light); }
.tk .ribbon{
  position:absolute; top:-13px; right:18px; background:var(--coral); color:#fff; white-space:nowrap;
  font-weight:700; font-size:11px; letter-spacing:.16em; text-transform:uppercase; padding:7px 14px;
  box-shadow:0 6px 14px rgba(0,0,0,.18);
}

/* ============================================================
   SPONSORS BAR
   ============================================================ */
.sponsors{ background:var(--cream-2); border-bottom:3px solid var(--ink); padding:52px 0 56px; overflow:hidden; }
.sp-label{ font-family:var(--sans); font-weight:700; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:color-mix(in srgb, var(--ink) 60%, transparent); text-align:center; margin-bottom:28px; }
.sp-group{ display:flex; flex-direction:column; align-items:center; gap:16px; margin-bottom:34px; }
.sp-group:last-child{ margin-bottom:0; }
.sp-row{ display:flex; flex-wrap:wrap; gap:20px; justify-content:center; }
.sp-track{ display:flex; gap:56px; width:max-content; animation:spscroll 38s linear infinite; align-items:center; }
.sponsors:hover .sp-track{ animation-play-state:paused; }
@keyframes spscroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.sp-logo{ flex:none; width:190px; min-height:74px; border:2px solid var(--ink); display:grid; place-items:center;
  font-family:var(--display); font-weight:400; font-size:15px; letter-spacing:.03em; text-transform:uppercase;
  text-align:center; line-height:1.1; padding:14px 16px; color:var(--ink); background:var(--cream);
  box-shadow:0 4px 0 var(--ink); transition:transform .12s, box-shadow .12s, color .12s; }
.sp-logo:hover{ color:var(--coral); transform:translateY(4px); box-shadow:0 0 0 var(--ink); }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{ background:var(--coral); color:var(--ink); padding-block:72px 40px; border-top:3px solid var(--ink); }
.foot .deco-pattern{ background-image:url('pattern-deco.jpg'); background-size:340px;
  opacity:.16; mix-blend-mode:screen; }
.foot .halftone-layer{ position:absolute; inset:0; color:var(--ink); opacity:.1; pointer-events:none; }
.foot .wrap{ position:relative; z-index:1; }
.foot-top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; }
@media (max-width:1080px){ .foot-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:760px){ .foot-top{ grid-template-columns:1fr; gap:30px; } }
.foot .lockup{ font-size:52px; }
.foot h4{ font-family:var(--sans); font-weight:700; letter-spacing:.2em; text-transform:uppercase; font-size:12px; opacity:.6; margin:0 0 16px; }
.foot a{ display:block; opacity:.82; padding:5px 0; font-size:15px; }
.foot a:hover{ opacity:1; color:var(--coral); }
.foot-social{ display:flex; gap:12px; flex-wrap:wrap; margin-top:40px; }
.foot-social a{ display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px;
  padding:0; border:2px solid var(--ink); border-radius:999px; background:var(--cream-2); opacity:1;
  color:var(--ink); box-shadow:0 4px 0 var(--ink); transition:transform .12s, box-shadow .12s, background .12s; }
.foot-social a:hover{ background:var(--coral); color:#fff; transform:translateY(4px); box-shadow:0 0 0 var(--ink); }
.foot-social svg{ width:20px; height:20px; display:block; fill:currentColor; }
.foot-bottom{ display:flex; justify-content:space-between; gap:20px; margin-top:56px; padding-top:24px;
  border-top:1px solid rgba(18,34,34,.22); font-size:13px; opacity:.65; flex-wrap:wrap; }

/* reveal — resting state always visible (capture/verify safe). Entrance is a
   brief one-shot that animates FROM hidden but never rests hidden. */
.reveal{ opacity:1; transform:none; }
@media (prefers-reduced-motion:no-preference){
  .reveal.in{ animation:rise .7s ease; }
}
@keyframes rise{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }

/* tweaks mount */
#tweaks-host{ position:fixed; inset:0; pointer-events:none; z-index:10000; }
#tweaks-host > *{ pointer-events:auto; }

/* ============================================================
   SIGNATURE EVENTS
   ============================================================ */
.signature{ background:var(--cream-2); border-bottom:3px solid var(--ink); overflow:hidden; position:relative; }
.signature .deco-pattern{ opacity:.22; mix-blend-mode:normal; background-image:none; background-color:var(--teal);
  -webkit-mask:url('pattern-deco.jpg') 0 0 / 340px; mask:url('pattern-deco.jpg') 0 0 / 340px; }
.signature > .wrap, .signature > .sig-strip{ position:relative; z-index:1; }
.sig-strip{ margin-top:34px; overflow:hidden; }
.sig-track{ display:flex; gap:26px; width:max-content; animation:sigscroll 80s linear infinite; }
.signature:hover .sig-track{ animation-play-state:paused; }
.sig-track.dragging{ animation-play-state:paused; }
@keyframes sigscroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.sig-card{ flex:none; width:300px; aspect-ratio:4/5; border:2px solid var(--ink); border-radius:14px; overflow:hidden;
  background:#fff; box-shadow:0 4px 0 var(--ink); line-height:0; }
.sig-card img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:760px){ .sig-card{ width:220px; } .sig-track{ gap:18px; } }
@media (prefers-reduced-motion: reduce){ .sig-track{ animation:none; } .sig-strip{ overflow-x:auto; } }


/* ============================================================
   MOBILE
   ============================================================ */
.nav-toggle{
  display:none; width:46px; height:46px; align-items:center; justify-content:center;
  border:2px solid var(--ink); border-radius:999px; background:var(--cream-2); color:var(--ink);
  font-size:20px; line-height:1; cursor:pointer; padding:0;
}
@media (max-width:980px){
  .nav .wrap{ height:64px; }
  .nav-brand .brand-logo{ height:42px; }
  .nav-toggle{ display:inline-flex; }
  .nav-links{
    position:absolute; left:0; right:0; top:100%; display:none;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--cream); border-bottom:3px solid var(--ink); padding:8px 24px 20px;
  }
  .nav.open .nav-links{ display:flex; }
  .nav-links a:not(.btn){ display:block; font-size:14px; letter-spacing:.14em; padding:15px 0;
    border-bottom:1px solid rgba(18,34,34,.12); }
  .nav-links .btn{ justify-content:center; margin-top:14px; padding:15px 20px; }
}
@media (max-width:760px){
  :root{ --s-section:76px; --s-gap:18px; --s-card:24px; }
  .wrap{ width:min(100% - 32px, var(--maxw)); }
  .shead{ flex-direction:column; align-items:flex-start; gap:14px; margin-bottom:34px; }
  .shead h2{ font-size:clamp(34px,10vw,52px); }
  .shead p{ max-width:none; font-size:16px; }
  .hero .wrap{ padding-block:56px; }
  .hero-sub{ font-size:17px; max-width:none; margin:22px 0 26px; }
  .hero-cta{ gap:12px; }
  .hero-cta .btn, .btn{ min-height:46px; }
  .about-lead p{ font-size:18px; }
  .fact .k{ font-size:clamp(40px,13vw,56px); }
  .marquee span{ font-size:18px; }
  .marquee b{ font-size:21px; }
  .foot{ padding-block:52px 32px; }
  .foot-top{ grid-template-columns:1fr; gap:28px; }
  .foot-bottom{ margin-top:34px; }
  .sp-row{ gap:14px; }
  .sp-logo{ width:calc(50% - 7px); font-size:13px; }
}
@media (max-width:760px){
  /* horizontally scrollable compare table keeps a visible hint */
  .cp-scroll{ -webkit-overflow-scrolling:touch; }
  .cp{ font-size:13px; min-width:860px; }
  .cp th, .cp td{ padding:11px 12px; }
  .cp tbody th{ min-width:200px; }
  .cp-ev{ font-size:15px; }
}
@media (max-width:520px){
  .sp-logo{ width:100%; }
}


/* ============================================================
   NEW EVENTS
   ============================================================ */
.newev{ background:#f8b3a8; color:var(--ink); border-bottom:3px solid var(--ink);
  position:relative; overflow:hidden; }
.newev .deco-pattern{ background-image:none; background-color:var(--ink); opacity:.09; mix-blend-mode:normal;
  -webkit-mask:url('pattern-deco.jpg') 0 0 / 340px; mask:url('pattern-deco.jpg') 0 0 / 340px; }
.newev > .wrap, .newev > .sig-strip{ position:relative; z-index:1; }
.newev .shead h2 em{ color:var(--teal-deep); }
.newev-track{ animation:sigscrollrev 80s linear infinite; }
.newev:hover .newev-track{ animation-play-state:paused; }
@keyframes sigscrollrev{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
@media (prefers-reduced-motion: reduce){ .newev-track{ animation:none; } }


/* dot print across every section */
.section::before, .sponsors::before, .foot::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:radial-gradient(currentColor 1.4px, transparent 1.5px);
  background-size:11px 11px; opacity:.07;
}
.section, .sponsors{ position:relative; }
:where(.section, .sponsors) > :where(.wrap, .sig-strip, .gal-strip, .newev-strip, .adven-strip, .pk-note){ position:relative; z-index:1; }
.hero::before, .events::before{ opacity:.10; }


/* ============================================================
   ADVENTURES & EXCURSIONS
   ============================================================ */
.adven{ background:var(--gold); color:var(--ink); border-bottom:3px solid var(--ink);
  position:relative; overflow:hidden; }
.adven .deco-pattern{ background-image:none; background-color:var(--ink); opacity:.09; mix-blend-mode:normal;
  -webkit-mask:url('pattern-deco.jpg') 0 0 / 340px; mask:url('pattern-deco.jpg') 0 0 / 340px; }
.adven .shead h2 em{ color:var(--teal-ink); }
.adven-track{ animation:sigscroll 80s linear infinite; }
.adven:hover .adven-track{ animation-play-state:paused; }
@media (prefers-reduced-motion: reduce){ .adven-track{ animation:none; } }


/* white outline on all script (Cheetah Kick) type */
.lockup .lk-tropical, .nav-brand .scr, .marquee b, .shead h2 em, .ev .ev-tag, .stay-hero .scr{
  paint-order:stroke fill;
  -webkit-text-stroke:3px #fff;
  text-stroke:3px #fff;
}
.nav-brand .scr{ -webkit-text-stroke-width:1.5px; }
.marquee b, .ev .ev-tag{ -webkit-text-stroke-width:2px; }

.sp-logo.sp-img{ width:min(520px, 100%); max-width:100%; padding:0; overflow:hidden; place-items:center; background:#fff; }
.sp-logo.sp-img img{ width:100%; height:auto; display:block; }


/* one palette color per stat */
.facts .fact:nth-child(1) .k{ color:var(--teal-deep); }
.facts .fact:nth-child(2) .k{ color:var(--coral); }
.facts .fact:nth-child(3) .k{ color:var(--gold); }
.facts .fact:nth-child(4) .k{ color:var(--teal); }
.facts .fact:nth-child(5) .k{ color:#c8548f; }
.facts .fact:nth-child(6) .k{ color:var(--green); }


/* hover feedback on everything clickable */
a, button, summary, .pp, .rm, .tm, .sp-logo, .gal-card, .sig-card{
  transition:color .12s ease, background-color .12s ease, border-color .12s ease, opacity .12s ease;
}
a:hover, button:hover, summary:hover{ cursor:pointer; }
.ev-list a:hover, .fq summary:hover, .cp a:hover{ color:var(--coral); }
.btn:hover span{ color:inherit; }
.btn.coral:hover{ --bg-btn:#d96a5c; }
.btn.teal:hover{ --bg-btn:var(--teal-deep); }
.btn.gold:hover{ --bg-btn:#c1924f; }
.btn:not(.coral):not(.teal):not(.gold):not(.ghost):hover{ --bg-btn:var(--teal-ink); }
.fq summary:hover{ background:rgba(239,130,115,.10); }
.ct a:hover{ color:var(--coral); }
.tm:hover{ color:var(--coral); }
.foot a:hover{ color:var(--teal-deep); }
.foot-social a:hover{ background:var(--teal-deep); color:#fff; }
.nav-links a:not(.btn):hover{ color:var(--coral); opacity:1; }
.nav-brand:hover{ opacity:.85; }
.nav-toggle:hover{ background:var(--coral); color:#fff; }
.sp-logo:hover{ color:var(--coral); }
.pp:hover .pp-name{ color:var(--coral); }
.rm:hover h3, .pk:hover h3{ color:var(--coral); }
.gal-card:hover img, .sig-card:hover img{ filter:saturate(1.12) contrast(1.04); }


/* readable hover colors */
.foot a:hover{ color:var(--teal-ink); }
.nav-links a:not(.btn):hover{ color:var(--teal-deep); }
.sp-logo:hover{ color:#b8442f; }
.pp:hover .pp-name, .rm:hover h3, .pk:hover h3{ color:#b8442f; }
.ct a:hover, .tm:hover, .fq summary:hover, .ev-list a:hover{ color:#b8442f; }


/* ============================================================
   TESTIMONIALS (About)
   ============================================================ */
.testi .ab-tint{ background:var(--teal-pale); }
.testi > .wrap{ position:relative; z-index:1; }
.ts-strip{ position:relative; z-index:1; overflow:hidden; padding:8px 0 22px; }
.ts-strip + .ts-strip{ padding-top:0; }
.ts-track{ display:flex; gap:22px; width:max-content; padding:14px 11px; align-items:stretch; }
.ts-fwd{ animation:tsscroll 96s linear infinite; }
.ts-rev{ animation:tsscrollrev 96s linear infinite; }
.testi:hover .ts-track{ animation-play-state:paused; }
@keyframes tsscroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes tsscrollrev{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
@media (prefers-reduced-motion: reduce){ .ts-track{ animation:none; } }
.ts-card{ flex:none; width:352px; margin:0; padding:26px 26px 22px; background:var(--cream);
  border:2px solid var(--ink); border-radius:14px; box-shadow:0 4px 0 var(--ink);
  display:flex; flex-direction:column; gap:12px; position:relative; }
.ts-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:6px;
  border-radius:12px 12px 0 0; background:var(--accent-c); }
.ts-card.c1{ --accent-c:var(--coral); }
.ts-card.c2{ --accent-c:var(--teal-deep); }
.ts-card.c3{ --accent-c:var(--gold); }
.ts-card.c4{ --accent-c:var(--pink); }
.ts-mark{ font-family:var(--display); font-size:56px; line-height:.5; color:var(--accent-c); height:22px; }
.ts-card blockquote{ margin:0; font-size:15px; line-height:1.5; color:var(--ink); text-wrap:pretty; }
.ts-card figcaption{ margin-top:auto; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  font-size:11px; color:var(--teal-deep); padding-top:6px; }
@media (max-width:760px){ .ts-card{ width:280px; padding:22px 20px 18px; } }


/* faded deco print inside each testimonial card */
.ts-card{ overflow:hidden; }
.ts-card::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background-image:url('pattern-deco.jpg'); background-size:200px; opacity:.16;
  mix-blend-mode:multiply; }
.ts-card.c1::after{ background-size:170px; background-position:0 0; }
.ts-card.c2::after{ background-size:230px; background-position:40px 20px; }
.ts-card.c3::after{ background-size:150px; background-position:80px 60px; }
.ts-card.c4::after{ background-size:260px; background-position:20px 90px; }
.ts-card > *{ position:relative; z-index:1; }
.ts-card{ background:color-mix(in srgb, var(--accent-c) 12%, var(--cream)); }
.ts-card.p1::after{ background-size:160px; background-position:0 0; transform:none; }
.ts-card.p2::after{ background-size:220px; background-position:-30px 40px; transform:rotate(180deg); }
.ts-card.p3::after{ background-size:190px; background-position:60px -20px; }
.ts-card.p4::after{ background-size:280px; background-position:30px 70px; transform:rotate(90deg); }


/* pattern must fill the whole card, no rotation gaps */
.ts-card::after{ inset:-40%; background-repeat:repeat; }
.ts-card.p2::after, .ts-card.p4::after{ transform:none; }
.ts-card.p1::after{ background-size:150px; }
.ts-card.p2::after{ background-size:190px; }
.ts-card.p3::after{ background-size:170px; }
.ts-card.p4::after{ background-size:210px; }

.testi{ background:var(--teal-light); border-bottom:3px solid var(--ink); }
.testi .ab-tint{ background:transparent; }
.testi .shead h2 em{ color:var(--teal-ink); }


/* ============================================================
   HERO COUNTDOWN
   ============================================================ */
.cdown{ margin-top:26px; display:inline-flex; flex-direction:column; gap:10px; align-items:flex-start; }
.cd-label{ font-weight:700; font-size:11px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold); }
.cd-units{ display:flex; align-items:flex-start; gap:8px; }
.cd-unit{ min-width:74px; padding:12px 10px 10px; text-align:center; background:rgba(255,255,255,.07);
  border:2px solid rgba(255,255,255,.45); border-radius:12px; }
.cd-n{ font-family:var(--display); font-size:36px; line-height:1; color:#fff;
  font-variant-numeric:tabular-nums; }
.cd-u{ margin-top:5px; font-weight:700; font-size:9px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.7); }
.cd-sep{ font-family:var(--display); font-size:30px; line-height:1; color:var(--gold); padding-top:12px; }
@media (max-width:640px){
  .cdown{ align-items:center; align-self:center; }
  .cd-unit{ min-width:60px; padding:10px 6px 8px; }
  .cd-n{ font-size:28px; }
  .cd-sep{ font-size:24px; padding-top:10px; }
}


/* countdown: louder, poster-style */
.cdown{ margin-top:30px; }
.cd-label{ font-size:12px; letter-spacing:.26em; color:var(--ink);
  background:var(--gold); border:2px solid var(--ink); border-radius:999px;
  padding:6px 14px; box-shadow:0 3px 0 var(--ink); }
.cd-units{ gap:10px; align-items:stretch; }
.cd-unit{ min-width:88px; padding:14px 12px 11px; background:var(--cream);
  border:2px solid var(--ink); border-radius:14px; box-shadow:0 5px 0 var(--ink); }
.cd-unit:nth-child(1){ background:var(--coral); }
.cd-unit:nth-child(3){ background:var(--gold); }
.cd-unit:nth-child(5){ background:var(--teal); }
.cd-unit:nth-child(7){ background:var(--pink); }
.cd-n{ font-size:48px; color:var(--ink); }
.cd-u{ margin-top:6px; font-size:10px; letter-spacing:.2em; color:rgba(18,34,34,.7); }
.cd-sep{ color:#fff; font-size:34px; padding-top:16px; }
#cd-s{ animation:cdpulse 1s steps(2,end) infinite; }
@keyframes cdpulse{ 0%,60%{ opacity:1; } 61%,100%{ opacity:.72; } }
@media (prefers-reduced-motion: reduce){ #cd-s{ animation:none; } }
@media (max-width:640px){
  .cd-unit{ min-width:66px; padding:11px 7px 9px; }
  .cd-n{ font-size:34px; }
  .cd-sep{ font-size:26px; padding-top:13px; }
}

.cd-n{ color:#fff; -webkit-text-stroke:2px var(--ink); paint-order:stroke fill; }

/* label spans the full width of the unit row */
.cdown{ align-items:stretch; }
.cd-label{ display:block; width:100%; text-align:center; box-sizing:border-box; }

.ts-card blockquote{ font-size:17px; }
.ts-card figcaption{ font-size:13px; }
@media (max-width:760px){ .ts-card blockquote{ font-size:17px; } }

.foot-news{ display:flex; justify-content:center; padding:6px 0 22px; }
.foot-news .btn{ padding:16px 30px; font-size:13px; }
.cd-label{ color:#fff; }

/* circular sponsor badges, uniform size */
.sp-logo.sp-img{ width:auto; }
.sp-logo.sp-img img{ height:132px; width:auto; object-fit:contain; }
.sp-row{ gap:22px; }
@media (max-width:700px){ .sp-logo.sp-img img{ height:98px; } }
.sp-logo.sp-wide img{ height:auto; width:min(420px,100%); }

/* frameless, transparent sponsor badges */
.sp-logo, .sp-logo.sp-img, .sp-logo.sp-wide{
  background:transparent !important; border:0 !important; box-shadow:none !important;
  padding:0; min-height:0; border-radius:0;
}
.sp-logo:hover{ transform:none; box-shadow:none !important; }
.sp-logo.sp-img img{ background:transparent; mix-blend-mode:normal; }

/* Brawny Bear partner logo — sized larger than the circular badges */
.sp-logo.sp-img img[src*="brawny"]{ height:auto; width:min(500px, 90vw); }


/* testimonial cards: white with a very faint deco print */
.ts-card{ background:#fff; }
/* the print is the accent color, masked by the deco artwork */
.ts-card::after{ opacity:.14; mix-blend-mode:normal;
  background-image:none; background-color:var(--accent-c);
  -webkit-mask-image:url('pattern-deco.jpg'); mask-image:url('pattern-deco.jpg');
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
  -webkit-mask-size:inherit; mask-size:inherit; }
.ts-card.p1::after{ -webkit-mask-size:150px; mask-size:150px; }
.ts-card.p2::after{ -webkit-mask-size:190px; mask-size:190px; }
.ts-card.p3::after{ -webkit-mask-size:170px; mask-size:170px; }
.ts-card.p4::after{ -webkit-mask-size:210px; mask-size:210px; }

/* larger testimonial type — sized so the longest quote still fills its card */
.ts-card{ width:392px; }
.ts-card blockquote{ font-size:21px; line-height:1.42; }
.ts-card figcaption{ font-size:13px; }
.ts-mark{ font-size:64px; }
@media (max-width:760px){ .ts-card{ width:300px; } .ts-card blockquote{ font-size:19px; } }
