@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@400;500;600&display=swap");
/* RT Restobar — Halloweekend 2026 theme.

   ── v5: making the props stop looking like stickers ────────────────────────

   Five things were making them read as stuck-on, and each is fixed here.

   1. THEY WERE PAINTED, NOT LIT. Every prop was composited normally, so it sat
      *on* the page instead of in the room's light. Measuring the artwork showed
      why that matters: the webs are near-white thread (lum 191) covering only
      2-9% of their box, and the fog is pure white. Those are things that catch
      and add light, so they are blended with `screen` now — a screen blend can
      only ever lighten, so the empty 90% of a web's box contributes nothing at
      all, instead of laying down a faint grey rectangle.

   2. THE BATS WERE THE WRONG WAY ROUND. The artwork is light blue-grey
      (138,162,186) — *lighter* than the night sky it flies against, which no
      silhouette ever is. They are graded down to near-black before being drawn.

   3. NOTHING HAD DEPTH. One copy of each prop, uniformly sharp. Each now has a
      far layer and a near layer: the far one smaller, blurred, lower contrast
      and drifting slower. That is atmospheric perspective — distance means less
      contrast, not just smaller — and it is what separates a scene from a decal.

   4. THEY FOLLOWED YOU DOWN THE PAGE. The webs and bats were `position:fixed`,
      so they hung in front of the screen for all 6,000px of scrolling. They are
      in document coordinates now: they live in the top of the room and you
      scroll past them, which is the single biggest change here.

   5. THEIR BOXES HAD EDGES. Every prop is masked at the edge where its
      rectangle would otherwise end, and the corner props bleed off the side of
      the page rather than sitting politely inside it.

   The page grade and the countdown band are unchanged from v3/v4.

   Nothing here edits the captured markup. The props are built by _hw.js and
   everything it writes is tagged data-rt-theme="halloween", so the whole theme
   still comes off with rb_halloween_off.py. */

:root {
  --rt-blood: #C4291B;
  --rt-ember: #E4572E;
  --rt-bone: #E8E3D9;
  --rt-pitch: #08070C;
}

/* ══ the grade ══════════════════════════════════════════════════════════ */

/* The two bands that fought hardest: "About" is a violet radial wash and
   "Services" a magenta one, and they sit directly beneath the blood-red
   posters. Both are painted by a `bgLayers` child that holds nothing but the
   background, so filtering it leaves every word above it untouched — no text
   contrast to re-check, because no text is inside. */
#comp-mc8w5ckx [id^="bgLayers"],
#comp-mcafe54l [id^="bgLayers"] {
  filter: saturate(.22) brightness(.30) contrast(1.12) sepia(.22) hue-rotate(-24deg);
}

/* The hero photograph is lit in cyan and magenta, which is why nothing drawn
   on top of it could be seen. Dropped to a night exposure with the colour
   pulled towards the ember end. The prefix matches both captures, whose copies
   of the file differ only by hash suffix. */
img[src*="57f31f_54fe9e8085cc40fb87748366c3a79e0a"] {
  filter: saturate(.42) brightness(.46) contrast(1.18) sepia(.20) hue-rotate(-16deg);
}

/* Vignette and grain, fixed, and deliberately the topmost layer of all — the
   props sit *under* it, so the same grade falls on the room and on everything
   in it. A prop drawn over the vignette is a prop stuck to the glass. */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  pointer-events: none;
  background:
    radial-gradient(118% 88% at 50% 28%, rgba(0,0,0,0) 34%, rgba(6,3,3,.68) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.016) 0 1px, rgba(0,0,0,0) 1px 3px);
  mix-blend-mode: multiply;
}

/* ══ blood running off the header ═══════════════════════════════════════ */
/* The header is sticky, so an absolute child of it follows the header down the
   page — which is why the drips, alone among the props, are allowed to track
   the viewport. They are the one thing actually attached to the furniture.

   Two layers at deliberately unrelated tile widths (430 and 337). A single
   repeating strip announces its period; two that never come back into phase
   with one another do not. The near layer is masked away towards the tips, so
   the blood thins out and stops rather than meeting a straight edge, and it
   casts a shadow so it lies on the header instead of beside it. */
#SITE_HEADER::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 152px;
  pointer-events: none;
  z-index: 3;
  background: url("/assets/hw-drips.webp") repeat-x center top / 430px 152px;
  filter: drop-shadow(0 3px 4px rgba(0,0,0,.75)) saturate(1.1);
  -webkit-mask-image: linear-gradient(to bottom, #000 0 46%, rgba(0,0,0,.35) 78%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0 46%, rgba(0,0,0,.35) 78%, transparent 100%);
}
/* the far run: shorter, dimmer, softer, and out of step with the near one */
#SITE_HEADER::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 112px;
  pointer-events: none;
  z-index: 2;
  background: url("/assets/hw-drips.webp") repeat-x 90px top / 337px 112px;
  filter: blur(1.6px) brightness(.55) saturate(.85);
  opacity: .8;
  -webkit-mask-image: linear-gradient(to bottom, #000 0 38%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0 38%, transparent 100%);
}

/* ══ the room ═══════════════════════════════════════════════════════════ */
/* Webs and bats, in document coordinates. Built by _hw.js because there are
   more layers here than an element has pseudo-elements to give. */
#rt-hw-air {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 820px;
  overflow: hidden;
  pointer-events: none;
  z-index: 2147482996;
}
/* every child, matched structurally rather than by a class the builder has to
   remember to add — which is exactly the bug this replaces */
#rt-hw-air > div {
  position: absolute;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  will-change: transform;
}

/* Webs: thread, so `screen`. Warmed slightly off neutral grey — nothing in
   this room is lit white — and bled off the corner so no edge of the image
   box is ever on screen. */
#rt-hw-air .web {
  mix-blend-mode: screen;
  filter: sepia(.22) hue-rotate(-18deg) saturate(.75) contrast(1.05);
}
#rt-hw-air .web-l { background-image: url("/assets/hw-web-left.webp"); }
#rt-hw-air .web-r { background-image: url("/assets/hw-web-right.webp"); }

#rt-hw-air .web-l-near { width: 430px; height: 430px; top: -38px; left: -46px; opacity: .80;
  transform-origin: 12% 6%; animation: rt-sway-a 13s ease-in-out infinite alternate; }
#rt-hw-air .web-l-far  { width: 580px; height: 580px; top: -74px; left: -104px; opacity: .26;
  filter: sepia(.22) hue-rotate(-18deg) saturate(.6) blur(3px);
  transform-origin: 12% 6%; animation: rt-sway-b 19s ease-in-out infinite alternate; }
#rt-hw-air .web-r-near { width: 470px; height: 470px; top: -44px; right: -54px; opacity: .84;
  transform-origin: 88% 6%; animation: rt-sway-b 11s ease-in-out infinite alternate; }
#rt-hw-air .web-r-far  { width: 620px; height: 620px; top: -84px; right: -122px; opacity: .24;
  filter: sepia(.22) hue-rotate(-18deg) saturate(.6) blur(3.4px);
  transform-origin: 88% 6%; animation: rt-sway-a 21s ease-in-out infinite alternate; }

/* Bats: the artwork is pale blue-grey, so it is graded to a silhouette before
   it is drawn. The far group keeps more of its lightness on purpose — haze
   between you and a distant object lifts its blacks, and copying the near
   group's contrast is what makes two sizes of the same sprite look like one
   sticker printed twice. */
#rt-hw-air .bats { background-image: url("/assets/hw-bats.webp"); }
#rt-hw-air .bats-near {
  width: 390px; height: 390px; top: 196px; right: 150px; opacity: .95;
  /* Dark, but not black. A true silhouette needs a sky lighter than itself,
     and the sky here is a night photograph — at brightness .16 the bats simply
     disappeared into it. They are kept a few stops above the background and
     given a faint ember rim instead, which is the club's own light catching a
     wing edge and is the thing that actually reads as a solid object. */
  filter: brightness(.34) contrast(1.35) saturate(.3) sepia(.34) hue-rotate(-18deg)
          drop-shadow(0 0 2px rgba(228,87,46,.55));
  animation: rt-fly-near 23s ease-in-out infinite alternate;
}
#rt-hw-air .bats-far {
  width: 235px; height: 235px; top: 128px; right: 430px; opacity: .46;
  /* haze between you and a distant object lifts its blacks and flattens it */
  filter: brightness(.6) contrast(.85) saturate(.25) sepia(.34) hue-rotate(-18deg) blur(2.1px);
  animation: rt-fly-far 37s ease-in-out infinite alternate;
}

/* ══ fog ════════════════════════════════════════════════════════════════ */
/* Pure white artwork, so `screen` — it glows rather than laying a grey film
   over the page, which is what it was doing before.

   Three banks at different heights, speeds and directions. Fog that moves as
   one sheet is a moving photograph of fog; fog that shears against itself is
   fog. The floor stays fixed to the bottom of the screen: it is the one place
   a viewport-anchored layer is more convincing than a document-anchored one. */
#rt-hw-floor {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  height: 250px;
  overflow: hidden;
  pointer-events: none;
  z-index: 2147482997;
}
#rt-hw-floor .fg {
  position: absolute;
  left: -30%; right: -30%; bottom: 0;
  background-image: url("/assets/hw-fog.webp");
  background-repeat: repeat-x;
  mix-blend-mode: screen;
  pointer-events: none;
  will-change: background-position;
}
#rt-hw-floor .fog-far {
  height: 120px; opacity: .17;
  background-size: auto 120px;
  filter: blur(5px) sepia(.3) hue-rotate(-20deg) saturate(.5);
  animation: rt-roll-r 96s linear infinite;
  -webkit-mask-image: linear-gradient(to top, #000 0 30%, transparent 100%);
  mask-image: linear-gradient(to top, #000 0 30%, transparent 100%);
}
#rt-hw-floor .fog-mid {
  height: 176px; opacity: .2;
  background-size: auto 176px;
  filter: blur(2px) sepia(.22) hue-rotate(-20deg) saturate(.6);
  animation: rt-roll-l 61s linear infinite;
  -webkit-mask-image: linear-gradient(to top, #000 0 24%, transparent 92%);
  mask-image: linear-gradient(to top, #000 0 24%, transparent 92%);
}
#rt-hw-floor .fog-near {
  height: 108px; opacity: .26;
  background-size: auto 108px;
  filter: sepia(.18) hue-rotate(-20deg) saturate(.7);
  animation: rt-roll-r 39s linear infinite;
  -webkit-mask-image: linear-gradient(to top, #000 0 34%, transparent 100%);
  mask-image: linear-gradient(to top, #000 0 34%, transparent 100%);
}

/* ══ movement ═══════════════════════════════════════════════════════════ */
/* Lengths chosen so no two cycles share a common factor — anything that lines
   up starts reading as a loop. All of it stops for anyone who has asked their
   device for less motion. */
@media (prefers-reduced-motion: no-preference) {
  #SITE_HEADER::after  { animation: rt-creep 9s ease-in-out infinite alternate; }
  #SITE_HEADER::before { animation: rt-creep-far 14s ease-in-out infinite alternate; }
  #SITE_HEADER { animation: rt-flicker 7s infinite steps(1); }

  /* A web is held at its corner, so it turns about that corner and the free
     edge travels furthest. Rotation, not translation. */
  @keyframes rt-sway-a {
    0%   { transform: rotate(-.55deg) translateY(0); }
    55%  { transform: rotate(.2deg) translateY(2px); }
    100% { transform: rotate(.6deg) translateY(4px); }
  }
  @keyframes rt-sway-b {
    0%   { transform: rotate(.5deg) translateY(2px); }
    45%  { transform: rotate(-.15deg) translateY(0); }
    100% { transform: rotate(-.58deg) translateY(3px); }
  }
  /* Bats bank as they turn, and they do not travel at a constant rate. */
  @keyframes rt-fly-near {
    0%   { transform: translate(0,0) rotate(0deg); }
    30%  { transform: translate(-22px,18px) rotate(-1.6deg); }
    62%  { transform: translate(-40px,4px) rotate(1.1deg); }
    100% { transform: translate(-64px,14px) rotate(-.7deg); }
  }
  @keyframes rt-fly-far {
    0%   { transform: translate(0,0) rotate(0deg); }
    40%  { transform: translate(16px,10px) rotate(1deg); }
    100% { transform: translate(34px,-4px) rotate(-.6deg); }
  }
  /* the banks shear against each other by running opposite ways */
  @keyframes rt-roll-r { from { background-position-x: 0; }     to { background-position-x: -1200px; } }
  @keyframes rt-roll-l { from { background-position-x: -1200px; } to { background-position-x: 0; } }
  /* the blood keeps running, a little further and back */
  @keyframes rt-creep     { from { background-position-y: -8px; } to { background-position-y: 7px; } }
  @keyframes rt-creep-far { from { background-position-y: 4px; }  to { background-position-y: -5px; } }
  @keyframes rt-flicker {
    0%, 92%, 100% { box-shadow: 0 10px 34px rgba(196,41,27,.16); }
    93% { box-shadow: 0 10px 34px rgba(196,41,27,.40); }
    94% { box-shadow: 0 10px 34px rgba(196,41,27,.06); }
    96% { box-shadow: 0 10px 34px rgba(196,41,27,.44); }
  }
}

/* ══ the phone ══════════════════════════════════════════════════════════ */
/* The phone page is a 320px canvas the browser scales up, so the props are
   sized against that canvas rather than against the screen. #rt-hw-air is in
   document coordinates on every device, which is what the earlier versions
   had to arrange by hand — a fixed element on a phone is placed against the
   layout viewport, not the part of the screen you can actually see once the
   address bar has taken its share. */
@media (max-width: 900px) {
  #SITE_HEADER::after  { height: 128px; background-size: 268px 128px; }
  #SITE_HEADER::before { height: 96px;  background-size: 209px 96px; }

  /* THE THING THAT MAKES OR BREAKS THIS ON A PHONE.

     The webs are 760px of fine thread covering 2-9% of their image, and the
     bats are a wide sprite of small shapes. Fit either one whole into a 150px
     box on the 320px canvas and every line in it falls below a pixel — which
     is exactly why the first two versions of this theme had, in practice, no
     props on mobile at all. Measured after the fact: a brightened crop of the
     bat area contained no bats.

     So the phone does not shrink the props, it moves closer to them. Each box
     shows a zoomed *crop* of the same artwork, anchored at the corner the prop
     hangs from, and the threads come back to roughly the thickness they have
     on a desktop. Same scene, standing nearer. */
  #rt-hw-air { height: 430px; }
  #rt-hw-air .web { background-size: 205% 205%; }
  #rt-hw-air .web-l { background-position: left top; }
  #rt-hw-air .web-r { background-position: right top; }
  /* far enough into the corner that the hero and the RT mark stay clear —
     a web that covers the logo is not atmosphere, it is an obstruction */
  #rt-hw-air .web-l-near { width: 168px; height: 168px; top: -26px; left: -40px; opacity: .8; }
  #rt-hw-air .web-l-far  { width: 224px; height: 224px; top: -54px; left: -80px; opacity: .26; }
  #rt-hw-air .web-r-near { width: 178px; height: 178px; top: -30px; right: -46px; opacity: .78; }
  #rt-hw-air .web-r-far  { width: 236px; height: 236px; top: -58px; right: -86px; opacity: .22; }

  /* The bats need to come back up in tone as well as in scale: a shape this
     small has no interior left to read, so it survives on edge contrast. */
  #rt-hw-air .bats-near {
    width: 176px; height: 176px; top: 236px; right: 46px;
    background-size: 230% 230%; background-position: 32% 42%;
    filter: brightness(.46) contrast(1.3) saturate(.3) sepia(.34) hue-rotate(-18deg)
            drop-shadow(0 0 1.5px rgba(228,87,46,.6));
  }
  #rt-hw-air .bats-far {
    width: 112px; height: 112px; top: 186px; right: 168px; opacity: .5;
    background-size: 230% 230%; background-position: 72% 18%;
    filter: brightness(.72) contrast(.9) saturate(.25) sepia(.34) hue-rotate(-18deg) blur(1.3px);
  }

  #rt-hw-floor { height: 150px; }
  #rt-hw-floor .fog-far  { height: 74px;  background-size: auto 74px;  opacity: .14; }
  #rt-hw-floor .fog-mid  { height: 104px; background-size: auto 104px; opacity: .17; }
  #rt-hw-floor .fog-near { height: 66px;  background-size: auto 66px;  opacity: .22; }
}

/* ══ colour ═════════════════════════════════════════════════════════════ */
#SITE_HEADER {
  border-bottom: 1px solid rgba(196,41,27,.55) !important;
  box-shadow: 0 10px 34px rgba(196,41,27,.16) !important;
}
#SITE_HEADER li[id^="comp-kxxb4pk1"] p,
#SITE_HEADER [data-rt-tab="extra"] p {
  color: var(--rt-bone) !important;
  letter-spacing: .04em !important;
}
#SITE_HEADER li[id^="comp-kxxb4pk1"]:hover p,
#SITE_HEADER [data-rt-tab="extra"]:hover p,
#SITE_HEADER li[data-state*="selected"] p {
  color: var(--rt-blood) !important;
  text-shadow: 0 0 14px rgba(196,41,27,.65) !important;
}
li[data-testid^="MENU_AS_CONTAINER_EXPANDABLE_MENU"] a { color: var(--rt-bone) !important; }
h1, h2, [data-hook="section.name"] { text-shadow: 0 0 22px rgba(196,41,27,.30) !important; }
#rt-games .rt-eyebrow, #rt-games .rt-game-price dd { color: var(--rt-blood) !important; }
#rt-games .rt-game-price div {
  background: rgba(196,41,27,.10) !important;
  border-color: rgba(196,41,27,.34) !important;
}
#rt-games .rt-game, #rt-featured .rt-ev { border-color: rgba(196,41,27,.30) !important; }
#rt-games, #rt-featured { background: var(--rt-pitch) !important; }
[data-hook="item.price"] { color: var(--rt-ember) !important; }
[data-hook="section.name"] { color: var(--rt-bone) !important; }
#SITE_FOOTER { border-top: 1px solid rgba(196,41,27,.40) !important; }

/* The hero's "Book a Table" was a thin white outline on a busy photograph.
   Against the graded hero it can afford to be the one bright thing. */
#SITE_PAGES a[href$="/reservation"] {
  border-color: rgba(196,41,27,.85) !important;
  box-shadow: 0 0 26px rgba(196,41,27,.30) !important;
}


/* ══ v6 (13 Oct 2026): the whole site in the Night of the Damned poster's look ══
   The owner asked for the website to match the Halloween event poster so it all
   reads as one. Colours are measured off the poster itself: the orange-red of
   "TO COMPETE" / "DAMNED" (232,72,32), the warm bone of "NIGHT" (208,192,184),
   and its near-black ground (21,21,23). Lettering follows the poster too —
   tall condensed capitals (Bebas Neue) for titles, spaced Oswald capitals for
   labels — replacing Wix's art-deco Avenida and Fredericka faces.
   Body copy stays in the site's own Avenir: the poster uses capitals because
   it is a poster; paragraphs set that way would be hard to read.
   Everything here lives in the theme file, so it comes off with the rest of
   the Halloween theme (rb_halloween_off.py) and the old look returns. */
:root {
  --hw-red: #E8481F;
  --hw-red-deep: #B8301A;
  --hw-bone: #D9CCC4;
  --hw-ink: #151517;
}

/* grain over the whole page, like the poster's printed texture */
html::before {
  content: ""; position: fixed; inset: 0; z-index: 2147482999; pointer-events: none;
  opacity: .11; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.4 -.25'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ── titles: About, Services, Gallery, Menu, Contact, menu sections ── */
h1.font_0, h2.font_0, h2.font_2, h1.font_0 *, h2.font_0 *, h2.font_2 *,
.wixui-rich-text__text[style*="avenida"], .wixui-rich-text__text[style*="fredericka"],
[class*="typography-10-largeTitle"], [class*="typography-10-smallTitle"] {
  font-family: "Bebas Neue", Oswald, Impact, sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  color: var(--hw-bone) !important;
  text-shadow: 0 2px 0 rgba(0,0,0,.55), 0 0 18px rgba(232,72,32,.18);
}
/* the poster's distressed print: a speckle mask eats a little out of each title */
h1.font_0, h2.font_0, h2.font_2, [class*="typography-10-largeTitle"], [class*="typography-10-smallTitle"] {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='d'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -9 7.2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23d)'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='d'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -9 7.2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23d)'/%3E%3C/svg%3E");
}
/* menu section names (Appetizers, Rice…) carry the red, like the poster's DAMNED */
[class*="typography-10-smallTitle"] { color: var(--hw-red) !important; }

/* ── labels: footer headings, Address/Phone ── */
p.font_4, p.font_4 *, p.font_5, p.font_5 *, p.font_6, p.font_6 * {
  font-family: Oswald, "Bebas Neue", sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}
p.font_4 *, p.font_5 * { color: var(--hw-red) !important; }
p.font_4 { font-size: 19px !important; }

/* ── the menu bar ── */
#SITE_HEADER p.wGxoBM, #SITE_HEADER [data-rt-tab] p,
li[data-testid^="MENU_AS_CONTAINER_EXPANDABLE_MENU"] a {
  font-family: Oswald, sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  font-size: 14.5px !important;
}
#SITE_HEADER [data-state*="selected"] p.wGxoBM, #SITE_HEADER [aria-current="page"] p { color: var(--hw-red) !important; }
#SITE_HEADER a:hover p.wGxoBM { color: var(--hw-red) !important; }

/* ── buttons: the poster's red, square, capitals ── */
.wixui-button {
  background: var(--hw-red) !important;
  border: 0 !important;
  border-radius: 2px !important;
  box-shadow: 0 0 0 1px rgba(0,0,0,.4), 0 8px 24px rgba(232,72,32,.28) !important;
  transition: background .2s, transform .2s;
}
.wixui-button:hover { background: var(--hw-red-deep) !important; transform: translateY(-1px); }
.wixui-button .wixui-button__label {
  font-family: "Bebas Neue", Oswald, sans-serif !important;
  font-size: 21px !important;
  letter-spacing: .1em !important;
  color: #fff !important;
}
/* BOOK RESERVATION under each poster */
a.wixui-rich-text__text.rt-cta, a.wixui-rich-text__text.rt-cta * {
  font-family: "Bebas Neue", Oswald, sans-serif !important;
  letter-spacing: .12em !important;
  color: var(--hw-red) !important;
  text-decoration-color: var(--hw-red) !important;
}
a.wixui-rich-text__text.rt-cta:hover, a.wixui-rich-text__text.rt-cta:hover * { color: var(--hw-bone) !important; }

/* one red for every accent */
img[src*="pin.svg"] { filter: hue-rotate(48deg) saturate(1.5) brightness(1.02); }
[class*="typography-11-runningText"][class*="price"], [data-hook*="price"] { color: var(--hw-red) !important; }

/* ── photographs behind sections pulled into the poster's night ── */
[data-hook="bgLayers"] [data-testid="bgMedia"] img:not([src*="57f31f_54fe9e8085cc40fb87748366c3a79e0a"]),
[data-hook="bgLayers"] wow-image img:not([src*="57f31f_54fe9e8085cc40fb87748366c3a79e0a"]),
[id^="bgLayers_pageBackground"] img {
  filter: saturate(.16) brightness(.32) contrast(1.15) sepia(.35) hue-rotate(-20deg);
}

/* ── our own sections (Events, Extra Activities) in the same palette ── */
#rt-events, #rt-games { background: var(--hw-ink) !important; }
#rt-events .ev-eyebrow, #rt-games .rt-eyebrow, #rt-events .ev-day { color: var(--hw-red) !important; }
#rt-events h2, #rt-games h2 {
  font-family: "Bebas Neue", Oswald, sans-serif !important; font-weight: 400 !important;
  font-size: 54px !important; letter-spacing: .03em; color: var(--hw-bone) !important;
}
#rt-events .ev-card, #rt-games .rt-game { background: #1c1718 !important; border-color: rgba(232,72,32,.38) !important; border-radius: 4px !important; }
#rt-events .ev-card h4, #rt-games .rt-game h3 { font-family: "Bebas Neue", Oswald, sans-serif !important; font-weight: 400 !important; font-size: 27px !important; letter-spacing: .04em; color: var(--hw-bone); }
#rt-events .ev-card a { color: var(--hw-red) !important; }
#rt-events .ev-h3 { font-family: Oswald, sans-serif; color: var(--hw-bone) !important; }
#rt-events .ev-h3::before, #rt-events .ev-h3::after { content: " — "; color: var(--hw-red); }
#rt-events .ev-feature { border-radius: 4px !important; border-color: var(--hw-red) !important; background: #120d0d !important; }
#rt-events .ev-btn { border-radius: 2px !important; font-family: "Bebas Neue", Oswald, sans-serif; font-size: 20px; letter-spacing: .1em; font-weight: 400; }
#rt-events .ev-btn-red { background: var(--hw-red) !important; }
#rt-games .rt-game-price div { background: rgba(232,72,32,.10) !important; border-color: rgba(232,72,32,.38) !important; border-radius: 3px !important; }
#rt-games .rt-game-price dd { color: var(--hw-red) !important; }

/* the countdown band and the three event cards, in the poster's lettering */
.rt-hw-title { font-family: "Bebas Neue", Oswald, sans-serif !important; font-weight: 400 !important; letter-spacing: .03em !important;
  font-size: clamp(46px, 8vw, 92px) !important; color: var(--hw-bone) !important; }
.rt-hw-title em { color: var(--hw-red) !important; text-shadow: 0 0 34px rgba(232,72,32,.55) !important; }
.rt-hw-eyebrow, .rt-hw-when, .rt-hw-foot { font-family: Oswald, sans-serif !important; font-weight: 500 !important; }
.rt-hw-eyebrow { color: var(--hw-red) !important; }
.rt-hw-clock div { border-radius: 3px !important; border-color: rgba(232,72,32,.5) !important; }
.rt-hw-clock b { font-family: "Bebas Neue", Oswald, sans-serif !important; font-weight: 400 !important; font-size: 44px !important; }
.rt-hw-theme b, .rt-hw-prizes li b { color: var(--hw-red) !important; }
.rt-hw-prizes li { border-radius: 2px !important; border-color: rgba(232,72,32,.45) !important; font-family: Oswald, sans-serif; letter-spacing: .06em; }
.rt-hw-cta { background: var(--hw-red) !important; color: #fff !important; border-radius: 2px !important; border: 0 !important;
  font-family: "Bebas Neue", Oswald, sans-serif !important; font-weight: 400 !important; font-size: 23px !important; letter-spacing: .12em !important; padding: 13px 44px !important; }
.rt-hw-cta:hover { background: var(--hw-red-deep) !important; }
#rt-featured .rt-ev { border-radius: 3px !important; border-color: rgba(232,72,32,.45) !important; background: #1a1516 !important; }
#rt-featured .rt-ev h3 { font-family: "Bebas Neue", Oswald, sans-serif !important; font-weight: 400 !important; font-size: 28px !important; letter-spacing: .04em !important; color: var(--hw-bone) !important; }

/* gallery photos: kept recognisable, but pulled off the neon towards the poster's ember */
[id^="pro-gallery-comp-"] img, [id^="gallery-horizontal-scroll"] img { filter: saturate(.55) sepia(.22) hue-rotate(-14deg) contrast(1.06) brightness(.92); transition: filter .4s; }
[id^="pro-gallery-comp-"] a:hover img, [id^="gallery-horizontal-scroll"] div:hover > img { filter: none; }

#rt-events .ev-btn-red, #rt-events .ev-btn-red:hover { color: #fff !important; }
p.font_4, p.font_5 { color: var(--hw-red) !important; }
#rt-events .ev-pay a { color: var(--hw-bone) !important; text-decoration: underline; text-decoration-color: var(--hw-red); }


/* ══ v7 (14 Oct 2026): the poster's own materials ═════════════════════════
   The owner: "follow the design of the upcoming event poster as the website
   theme … use the material used in the poster". v6 only borrowed its colours
   and lettering; the props were still generic Halloween stock (webs, bats,
   fog, drips) that appear nowhere on the poster. v7 takes those out and builds
   the site from the posters' own pieces, cut from the three event posters
   (assets/hw7-*): the scratched black stock with red ink (hw7-grunge, a
   seamless tile in that material), the two faces bleeding in from the edges,
   the chalk scrawl, the torn ADMIT ONE skull ticket, the poster's own
   headline lettering, the skull prize boxes, the dripping ticket strip, the
   pentagram and the thin red frames with corner ticks. */

/* the generic props go: none of them is on the poster */
#rt-hw-air, #rt-hw-floor { display: none !important; }
#SITE_HEADER::before, #SITE_HEADER::after { display: none !important; background: none !important; }

/* the poster's stock under everything */
html, body, #SITE_CONTAINER, #site-root, #masterPage {
  background: #121012 url("/assets/hw7-grunge.jpg") repeat 0 0 / 1024px 1024px !important;
}
/* flat colour fills on sections give way to the stock; photographs stay */
#SITE_PAGES [data-testid="colorUnderlay"], #SITE_FOOTER [data-testid="colorUnderlay"],
#SITE_HEADER [data-testid="colorUnderlay"] { background-color: transparent !important; }
#rt-games, #rt-featured, #rt-events { background: transparent !important; }
/* scratches and speckle printed over the whole page, photographs included */
#pk-print {
  position: fixed; inset: 0; z-index: 2147482998; pointer-events: none;
  background: url("/assets/hw7-grunge.jpg") repeat 0 0 / 1024px 1024px;
  mix-blend-mode: screen; opacity: .20;
}

/* ── the home hero becomes the poster ── */
img[src*="57f31f_54fe9e8085cc40fb87748366c3a79e0a"] {
  filter: grayscale(.85) brightness(.17) contrast(1.25) sepia(.35) hue-rotate(-18deg) !important;
}
#pk-hero { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
#pk-hero > * { position: absolute; background-repeat: no-repeat; background-size: contain; }
#pk-hero .pk-face-l { left: 0; top: 0; bottom: 0; width: 34%; max-width: 470px;
  background: url("/assets/hw7-face-left.webp") left center / auto 100% no-repeat; }
#pk-hero .pk-face-r { right: 0; top: 0; bottom: 0; width: 34%; max-width: 470px;
  background: url("/assets/hw7-face-right.webp") right center / auto 100% no-repeat; }
#SITE_PAGES .wixui-button span, #SITE_PAGES .wixui-button p, .rt-hw-cta { color: #F4ECE6 !important; }
#pk-hero .pk-scrawl { left: 4.5%; top: 5%; width: 230px; aspect-ratio: 424/260;
  background-image: url("/assets/hw7-scrawl-scariest.webp"); transform: rotate(-4deg); }
#pk-hero .pk-ticket { right: -26px; top: 2%; width: 300px; aspect-ratio: 1432/766;
  background-image: url("/assets/hw7-ticket-skull.webp"); transform: rotate(9deg);
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.7)); }
#pk-hero .pk-head { left: 50%; top: 5%; width: min(560px, 46%); aspect-ratio: 1048/320; transform: translateX(-50%);
  background-image: url("/assets/hw7-head-compete.webp"); filter: drop-shadow(0 4px 12px rgba(0,0,0,.8)); }
#pk-hero .pk-missing { left: 2%; bottom: -18px; width: 150px; aspect-ratio: 356/406; opacity: .55;
  background-image: url("/assets/hw7-missing.webp"); transform: rotate(-7deg); }
#pk-hero .pk-here { right: 3%; bottom: 3%; width: 150px; aspect-ratio: 300/312;
  background-image: url("/assets/hw7-scrawl-here.webp"); transform: rotate(3deg); }
/* the hero's own words sit above the scene */
#comp-kz1bfujg [data-testid="richTextElement"], #comp-kz1bfujg a, #comp-kz1bfujg [id^="comp-mc8ownlh"] { position: relative; z-index: 2; }

/* ── the countdown band, set like the poster ── */
#rt-featured .rt-hw-art { display: none !important; }
#rt-featured .rt-hw { background: transparent !important; }
#rt-featured .rt-hw::before { content: ""; display: block; width: 74px; height: 56px; margin: 0 auto 10px;
  background: url("/assets/hw7-pentagram.webp") center / contain no-repeat; opacity: .9; }
#rt-featured .rt-hw-title { font-size: 0 !important; line-height: 0 !important; color: transparent !important;
  width: min(640px, 92%); aspect-ratio: 1200/184; margin: 6px auto 10px !important;
  background: url("/assets/hw7-head-damned.webp") center / contain no-repeat; text-shadow: none !important; }
#rt-featured .rt-hw-title em { display: none; }
#rt-featured .rt-hw-theme { display: inline-block; padding: 10px 22px; margin: 4px auto 26px !important;
  border: 1px solid var(--hw-red); color: var(--hw-bone) !important; font-family: "Oswald", sans-serif;
  letter-spacing: .14em; text-transform: uppercase; font-size: 14px !important; position: relative; }
#rt-featured .rt-hw-theme::before, #rt-featured .rt-hw-theme::after { content: ""; position: absolute; width: 5px; height: 5px; background: var(--hw-red); top: -3px; }
#rt-featured .rt-hw-theme::before { left: -3px; } #rt-featured .rt-hw-theme::after { right: -3px; }
#rt-featured .rt-hw-theme b { color: var(--hw-red) !important; }
/* prize boxes: the poster's framed row with its skulls */
#rt-featured .rt-hw-prizes { display: grid !important; grid-template-columns: repeat(4, minmax(0, 150px)); justify-content: center;
  gap: 0 !important; border: 1px solid var(--hw-red); padding: 0 !important; margin: 0 auto 30px !important; width: max-content; max-width: 96%; position: relative; }
#rt-featured .rt-hw-prizes::before { content: "\2192  Best in costume prizes  \2190"; position: absolute; left: 50%; top: -12px; transform: translateX(-50%);
  background: #121012; padding: 0 12px; white-space: nowrap; font: 600 12px/22px "Oswald", sans-serif; letter-spacing: .28em; text-transform: uppercase; color: var(--hw-bone); }
#rt-featured .rt-hw-prizes li { border: 0 !important; border-radius: 0 !important; background: transparent !important;
  border-left: 1px solid rgba(232,72,32,.55) !important; padding: 22px 10px 14px !important;
  display: flex !important; flex-direction: column; align-items: center; gap: 6px;
  font: 600 13px/1.1 "Oswald", sans-serif !important; letter-spacing: .1em; text-transform: uppercase; color: var(--hw-bone) !important; }
#rt-featured .rt-hw-prizes li:first-child { border-left: 0 !important; }
#rt-featured .rt-hw-prizes li b { font: 400 30px/1 "Bebas Neue", sans-serif !important; color: var(--hw-red) !important; letter-spacing: .02em; }
#rt-featured .rt-hw-prizes li::after { content: ""; width: 92px; height: 70px; background: center / contain no-repeat; order: 3; margin-top: 4px; }
#rt-featured .rt-hw-prizes li:nth-child(1)::after { background-image: url("/assets/hw7-skull-crown.webp"); }
#rt-featured .rt-hw-prizes li:nth-child(2)::after { background-image: url("/assets/hw7-skull-dagger.webp"); }
#rt-featured .rt-hw-prizes li:nth-child(3)::after { background-image: url("/assets/hw7-skull-target.webp"); }
#rt-featured .rt-hw-prizes li:nth-child(4)::after { background-image: url("/assets/hw7-voucher.webp"); }
#rt-featured .rt-hw-foot { color: var(--hw-bone) !important; }
/* the dripping ticket strip closes the band */
#rt-featured .rt-hw::after { content: ""; display: block; width: min(520px, 90%); aspect-ratio: 1076/456; margin: 24px auto 0;
  background: url("/assets/hw7-ticket-strip.webp") center / contain no-repeat; transform: rotate(-2deg); }

/* ── the poster's frame: thin red rule, square ticks at the corners ── */
.pk-frame { position: relative; outline: 1px solid rgba(232,72,32,.75); outline-offset: 6px; }
.pk-frame::before, .pk-frame::after { content: ""; position: absolute; width: 6px; height: 6px; background: var(--hw-red); z-index: 3; pointer-events: none; }
.pk-frame::before { left: -9px; top: -9px; } .pk-frame::after { right: -9px; bottom: -9px; }
#SITE_PAGES .wixui-button, .rt-hw-cta { outline: 1px solid rgba(232,72,32,.65) !important; outline-offset: 4px; }

/* ── scrawl and props in the margins, in page coordinates (built by _hw.js) ── */
#pk-room { position: absolute; left: 0; top: 0; width: 100%; height: 0; z-index: 4; pointer-events: none; }
#pk-room > div { position: absolute; background: center / contain no-repeat; }
#pk-room .pk-seeit { width: 92px; aspect-ratio: 192/356; background-image: url("/assets/hw7-scrawl-seeit.webp"); transform: rotate(-6deg); opacity: .9; }
#pk-room .pk-penta { width: 70px; aspect-ratio: 200/152; background-image: url("/assets/hw7-pentagram.webp"); opacity: .55; }
#pk-room .pk-skulls { width: 300px; height: 70px; background: none;
  display: flex; justify-content: space-between; }
#pk-room .pk-skulls i { width: 84px; height: 70px; background: center / contain no-repeat; opacity: .85; }
#pk-room .pk-skulls i:nth-child(1) { background-image: url("/assets/hw7-skull-crown.webp"); }
#pk-room .pk-skulls i:nth-child(2) { background-image: url("/assets/hw7-skull-dagger.webp"); }
#pk-room .pk-skulls i:nth-child(3) { background-image: url("/assets/hw7-skull-target.webp"); }
#pk-room .pk-strip { width: 420px; aspect-ratio: 1076/456; background-image: url("/assets/hw7-ticket-strip.webp"); transform: rotate(2deg); }
#pk-room .pk-tick { width: 190px; aspect-ratio: 1432/766; background-image: url("/assets/hw7-ticket-skull.webp"); transform: rotate(-10deg); filter: drop-shadow(0 8px 14px rgba(0,0,0,.7)); }
#pk-room .pk-scr2 { width: 170px; aspect-ratio: 424/260; background-image: url("/assets/hw7-scrawl-scariest.webp"); transform: rotate(-5deg); }

/* ── the phone: a 320px canvas, so the scene is re-set rather than shrunk ── */
@media (max-width: 760px) {
  /* the phone hero is short and busy: the faces carry it, the band below says the rest */
  #pk-hero .pk-face-l, #pk-hero .pk-face-r { width: 42%; opacity: .7; background-size: auto 56%; }
  #pk-hero .pk-face-l { background-position: left 62%; } #pk-hero .pk-face-r { background-position: right 62%; }
  #pk-hero .pk-scrawl, #pk-hero .pk-ticket, #pk-hero .pk-head, #pk-hero .pk-missing, #pk-hero .pk-here { display: none; }
  #rt-featured .rt-hw-prizes { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 94%; }
  #rt-featured .rt-hw-prizes li:nth-child(3) { border-left: 0 !important; }
  #rt-featured .rt-hw-prizes li:nth-child(n+3) { border-top: 1px solid rgba(232,72,32,.55) !important; }
  #rt-featured .rt-hw-prizes li b { font-size: 24px !important; }
  #rt-featured .rt-hw-prizes li::after { width: 70px; height: 54px; }
  #rt-featured .rt-hw-prizes::before { font-size: 10px; letter-spacing: .16em; }
  #rt-featured .rt-hw-theme { font-size: 11px !important; padding: 8px 12px; letter-spacing: .08em; }
  #pk-room .pk-seeit, #pk-room .pk-penta, #pk-room .pk-scr2 { display: none; }
  #pk-room .pk-skulls { width: 230px; height: 56px; } #pk-room .pk-skulls i { width: 64px; height: 56px; }
  #pk-room .pk-strip { width: 260px; } #pk-room .pk-tick { width: 120px; }
  #pk-print { opacity: .22; }
}
@media (prefers-reduced-motion: no-preference) {
  #pk-hero .pk-ticket { animation: pk-sway 9s ease-in-out infinite alternate; }
  @keyframes pk-sway { from { transform: rotate(7deg); } to { transform: rotate(11deg); } }
}

/* ══ v8 (14 Oct 2026): the home page made presentable ═══════════════════════
   Owner: "fix the home page to much more presentable". What broke the look:
   a bright Google map, a wall of bullets pushed left, neon photos, loose gaps. */

/* the map in the poster's ink, inside the poster's frame */
#comp-kxxbc91d { outline: 1px solid rgba(232,72,32,.7); outline-offset: -1px; background: #121012 !important; }
/* the capture never sized the map frame (it stayed 0×0 on desktop), so it is given the box */
#comp-kxxbc91d wix-iframe, #comp-kxxbc91d iframe { display: block !important; width: 100% !important; height: 100% !important; min-height: 380px; border: 0; }
#comp-kxxbc91d iframe {
  filter: grayscale(1) invert(.9) sepia(.42) hue-rotate(-24deg) saturate(1.6) contrast(.92) brightness(.92) !important;
}

/* services: five framed cards, titles in the poster's red capitals */
#comp-mcafe54w h2 { text-align: center !important; }
#comp-mcafe54y { width: min(1060px, 92vw) !important; max-width: none !important; justify-self: center !important; margin-left: auto !important; margin-right: auto !important; left: auto !important; }
#comp-mcafe54y ul { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 22px; padding: 0 !important; margin: 0 !important; list-style: none !important; }
#comp-mcafe54y li { list-style: none !important; margin: 0 !important; padding: 20px 22px 18px !important; position: relative;
  border: 1px solid rgba(232,72,32,.55); background: rgba(10,8,9,.55); }
#comp-mcafe54y li::marker { content: none; }
#comp-mcafe54y li::before, #comp-mcafe54y li::after { content: ""; position: absolute; width: 6px; height: 6px; background: var(--hw-red); }
#comp-mcafe54y li::before { left: -4px; top: -4px; } #comp-mcafe54y li::after { right: -4px; bottom: -4px; }
#comp-mcafe54y li:last-child { grid-column: 1 / -1; }
#comp-mcafe54y li p { color: rgba(242,236,230,.82) !important; line-height: 1.6 !important; font-size: 15px !important; margin: 0 !important; }
#comp-mcafe54y li p::first-line { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 17px; letter-spacing: .08em; text-transform: uppercase; color: var(--hw-red); line-height: 2; }

/* the intro under the band, centred and close to it */
#rt-featured .rt-ev-lede { margin: 6px auto 34px !important; text-align: center !important; max-width: 760px; color: rgba(242,236,230,.82) !important; }
#rt-featured .rt-hw { padding-bottom: 24px !important; margin-bottom: 18px !important; }
#rt-featured .rt-hw::after { width: min(420px, 80%); margin-top: 10px; }

/* photographs pulled into the poster's ember; full colour when you point at one */
#comp-mcag07n7 img, #comp-mcag07n7 [data-hook="image-item"] canvas,
#comp-me6xo184 video, #comp-me6xo184 img, #comp-me6xo184 canvas, #bgMedia_comp-kxxb4fxi {
  filter: grayscale(.9) sepia(.6) hue-rotate(-26deg) saturate(1.7) brightness(.74) contrast(1.15) !important; transition: filter .4s ease;
}
#comp-mcag07n7 [data-hook="item-container"]:hover img { filter: none !important; }
#comp-me6xo184 { outline: 1px solid rgba(232,72,32,.7); outline-offset: 6px; }
#comp-mcafe55t img, #comp-mcafe55t wow-image { outline: 1px solid rgba(232,72,32,.6); outline-offset: 4px; }

/* small round icons (footer, contact) in the poster's red instead of candy colours */
.pk-icon { filter: grayscale(1) sepia(.8) hue-rotate(-28deg) saturate(3.2) brightness(.82) !important; }

@media (max-width: 760px) {
  #comp-mcafe54y { width: 100% !important; }
  #comp-mcafe54y ul { grid-template-columns: 1fr; gap: 14px; }
  #comp-mcafe54y li { padding: 16px 16px 14px !important; }
  #comp-mcafe54y li p { font-size: 14px !important; }
  #comp-mcafe54y li p::first-line { font-size: 15px; }
}

/* ══ v9 (14 Oct 2026): Book a Table as the poster's ADMIT ONE ticket ════════
   Owner: the button in the middle "looks inappropriate … make it complement".
   It was a dull box with a second outline and a stray white rule under it.
   Now one object from the poster: a red admission ticket with notched sides,
   a perforated stub reading ADMIT ONE, the label in dark ink, printed on the
   same scratched stock. Used for the hero button and the countdown's button. */
#comp-kz1bfukt1 { display: none !important; }            /* the white rule under the hero button */

#comp-kz1bfuki a.wixui-button, #rt-featured a.rt-hw-cta {
  position: relative !important; display: inline-flex !important; align-items: center; justify-content: center;
  min-width: 236px !important; height: 60px !important; padding: 0 26px 0 64px !important;
  background: #D8401C url("/assets/hw7-ticketstock.jpg") center / 512px !important;
  border: 0 !important; border-radius: 3px !important; outline: none !important; box-shadow: 0 10px 24px rgba(0,0,0,.55) !important;
  -webkit-mask: radial-gradient(circle 10px at 0 50%, #0000 96%, #000) left / 51% 100% no-repeat,
                radial-gradient(circle 10px at 100% 50%, #0000 96%, #000) right / 51% 100% no-repeat;
          mask: radial-gradient(circle 10px at 0 50%, #0000 96%, #000) left / 51% 100% no-repeat,
                radial-gradient(circle 10px at 100% 50%, #0000 96%, #000) right / 51% 100% no-repeat;
  transform: rotate(-1.5deg); transition: transform .25s ease, filter .25s ease !important;
  text-decoration: none !important;
}
/* the perforated stub */
#comp-kz1bfuki a.wixui-button::before, #rt-featured a.rt-hw-cta::before {
  content: "ADMIT ONE"; position: absolute; left: 0; top: 0; bottom: 0; width: 46px;
  border-right: 2px dashed rgba(25,10,8,.55);
  writing-mode: vertical-rl; transform: rotate(180deg);
  display: flex; align-items: center; justify-content: center;
  font: 600 8.5px/1 "Oswald", sans-serif; letter-spacing: .18em; color: rgba(25,10,8,.75);
}
#comp-kz1bfuki a.wixui-button .wixui-button__label, #rt-featured a.rt-hw-cta {
  font: 400 25px/1 "Bebas Neue", sans-serif !important; letter-spacing: .12em !important;
  color: #1A0B09 !important; text-shadow: 0 1px 0 rgba(255,190,160,.25) !important;
}
#comp-kz1bfuki a.wixui-button:hover, #rt-featured a.rt-hw-cta:hover {
  transform: rotate(0deg) scale(1.04) !important; filter: brightness(1.08) drop-shadow(0 0 18px rgba(232,72,32,.45));
}
#comp-kz1bfuki { overflow: visible !important; }
@media (max-width: 760px) {
  #comp-kz1bfuki a.wixui-button, #rt-featured a.rt-hw-cta { min-width: 200px !important; height: 52px !important; padding: 0 18px 0 54px !important; }
  #comp-kz1bfuki a.wixui-button::before, #rt-featured a.rt-hw-cta::before { width: 40px; font-size: 7.5px; }
  #comp-kz1bfuki a.wixui-button .wixui-button__label, #rt-featured a.rt-hw-cta { font-size: 21px !important; }
}
/* the hero's button box is 38px tall: a slimmer ticket there, nothing clipped */
#comp-kz1bfuki, #comp-kz1bfuki > *, #comp-kz1bfuki a.wixui-button { overflow: visible !important; }
#comp-kz1bfuki a.wixui-button { height: 46px !important; min-width: 222px !important; margin-top: -4px !important; padding: 0 22px 0 56px !important; }
#comp-kz1bfuki a.wixui-button::before { width: 40px; font-size: 7.5px; }
#comp-kz1bfuki a.wixui-button .wixui-button__label { font-size: 22px !important; }
@media (max-width: 760px) {
  #comp-kz1bfuki a.wixui-button { height: 42px !important; min-width: 196px !important; padding: 0 16px 0 50px !important; }
  #comp-kz1bfuki a.wixui-button::before { width: 36px; font-size: 6.5px; }
  #comp-kz1bfuki a.wixui-button .wixui-button__label { font-size: 19px !important; }
}
#comp-kz1bfuki a.wixui-button::before { content: ""; }   /* too short for the words: the perforated stub alone */
/* the ticket is wider than the box it grows from: pull it back to the centre line */
@media (min-width: 761px) { #comp-kz1bfuki a.wixui-button { margin-left: -26px !important; } }

/* ══ v11 (14 Oct 2026): the centre of the hero as a poster panel ════════════
   Owner: "redesign this whole box to compliment". The logo, tagline, ticket
   and address sat in an unstyled Wix box (#comp-l1mbqr2n) that read as an
   accidental dark rectangle between the faces. It is now the poster's framed
   panel: a red rule with a hairline outer frame, square corner ticks, the
   label set into the top rule like "BEST IN COSTUME PRIZES", and the words in
   the poster's spaced capitals. */
#comp-l1mbqr2n {
  background: linear-gradient(rgba(10,8,9,.80), rgba(10,8,9,.88)), url("/assets/hw7-grunge.jpg") center / 1024px !important;
  border: 1px solid rgba(232,72,32,.78) !important;
  outline: 1px solid rgba(232,72,32,.30); outline-offset: 7px;
  box-shadow: 0 30px 80px rgba(0,0,0,.65) !important;
  overflow: visible !important;
}
#comp-l1mbqr2n::before {
  content: "\2192   Halloweekend 2026   \2190"; position: absolute; left: 50%; top: -11px; transform: translateX(-50%); z-index: 5;
  padding: 0 14px; background: #0c0a0b; white-space: nowrap;
  font: 600 12px/22px "Oswald", sans-serif; letter-spacing: .3em; text-transform: uppercase; color: var(--hw-red);
}
/* corner ticks, on the box's own child so the box keeps its ::before */
#comp-l1mbqr2n > .wixui-box, #comp-l1mbqr2n > div:first-child { position: relative; }
#comp-l1mbqr2n::after {
  content: ""; position: absolute; inset: -4px; pointer-events: none; z-index: 4;
  background:
    linear-gradient(var(--hw-red), var(--hw-red)) top left / 7px 7px no-repeat,
    linear-gradient(var(--hw-red), var(--hw-red)) top right / 7px 7px no-repeat,
    linear-gradient(var(--hw-red), var(--hw-red)) bottom left / 7px 7px no-repeat,
    linear-gradient(var(--hw-red), var(--hw-red)) bottom right / 7px 7px no-repeat;
}
/* the tagline in the poster's small spaced capitals */
#comp-kz1bfukg3 p, #comp-kz1bfukg3 p span {
  font-family: "Oswald", sans-serif !important; font-weight: 500 !important; font-size: 14px !important;
  letter-spacing: .26em !important; text-transform: uppercase !important; color: var(--hw-bone) !important;
}
/* the address: muted capitals under a short red rule, like the poster's date line */
#comp-kz1bfukx1 { position: relative; }
#comp-kz1bfukx1::before { content: ""; position: absolute; left: 50%; top: -12px; width: 46px; height: 1px; background: var(--hw-red); transform: translateX(-50%); }
#comp-kz1bfukx1 p, #comp-kz1bfukx1 p span {
  font-family: "Oswald", sans-serif !important; font-weight: 400 !important; font-size: 12.5px !important;
  letter-spacing: .16em !important; text-transform: uppercase !important; color: rgba(217,204,196,.62) !important;
}
@media (max-width: 760px) {
  #comp-l1mbqr2n { outline-offset: 5px; }
  #comp-l1mbqr2n::before { font-size: 9.5px; letter-spacing: .2em; padding: 0 8px; }
  #comp-kz1bfukg3 p, #comp-kz1bfukg3 p span { font-size: 11px !important; letter-spacing: .14em !important; }
  #comp-kz1bfukx1 p, #comp-kz1bfukx1 p span { font-size: 10.5px !important; letter-spacing: .1em !important; }
}
/* v11 fixes: the headline clears the panel; the tagline reaches every inner element; phone keeps the frame without the label */
#pk-hero .pk-head { top: 2.2%; width: min(480px, 38%); }
#comp-kz1bfukg3 *, #comp-kz1bfukx1 * { font-family: "Oswald", sans-serif !important; text-transform: uppercase !important; }
#comp-kz1bfukg3 * { font-weight: 500 !important; font-size: 14px !important; letter-spacing: .26em !important; color: var(--hw-bone) !important; }
@media (max-width: 760px) {
  #comp-l1mbqr2n::before { display: none; }
  #comp-kz1bfukg3 * { font-size: 10.5px !important; letter-spacing: .12em !important; }
}
#comp-l1mbqr2n .pk-date { position: absolute; left: 0; right: 0; top: 54px; z-index: 3; text-align: center; pointer-events: none;
  font: 500 15px/1 "Oswald", sans-serif; letter-spacing: .24em; text-transform: uppercase; color: var(--hw-bone); }
#comp-l1mbqr2n .pk-date i { font-style: normal; color: var(--hw-red); margin: 0 12px; }
@media (max-width: 760px) {
  #comp-l1mbqr2n .pk-date { display: none; }
  #comp-kz1bfukg3 * { letter-spacing: .05em !important; }
}

/* ══ v13 (14 Oct 2026): the phone menu gets a solid poster panel ════════════
   The slide-out menu (#MENU_AS_CONTAINER) had no fill of its own, so its links
   printed straight over the page beneath. */
/* the panel starts under the header, so the header's close button stays visible and tappable */
#MENU_AS_CONTAINER { background: none !important; pointer-events: none; }
#MENU_AS_CONTAINER [data-testid="colorUnderlay"] { background-color: transparent !important; }
#MENU_AS_CONTAINER::before {
  content: ""; position: fixed; left: 0; right: 0; top: var(--pk-hh, 64px); bottom: 0; z-index: -1; pointer-events: auto;
  background: #0d0b0c url("/assets/hw7-grunge.jpg") center top / 1024px; border-top: 1px solid rgba(232,72,32,.6);
}
#MENU_AS_CONTAINER nav, #MENU_AS_CONTAINER li, #MENU_AS_CONTAINER a { pointer-events: auto; }
html.pk-menu-open #alya-bubble, html.pk-menu-open #alya-banner { display: none !important; }
#MENU_AS_CONTAINER_EXPANDABLE_MENU li { border-bottom: 1px solid rgba(232,72,32,.28) !important; }
#MENU_AS_CONTAINER_EXPANDABLE_MENU li:first-child { border-top: 1px solid rgba(232,72,32,.28) !important; }
#MENU_AS_CONTAINER_EXPANDABLE_MENU a, #MENU_AS_CONTAINER_EXPANDABLE_MENU a * {
  font-family: "Oswald", sans-serif !important; font-weight: 500 !important; letter-spacing: .22em !important;
  text-transform: uppercase !important; color: var(--hw-bone) !important;
}
#MENU_AS_CONTAINER_EXPANDABLE_MENU li[data-state*="selected"] a, #MENU_AS_CONTAINER_EXPANDABLE_MENU li[data-state*="selected"] a * { color: var(--hw-red) !important; }
/* phone: the map keeps Wix's own height (the 380px floor pushed it under the footer) */
@media (max-width: 760px) {
  #comp-kxxbc91d wix-iframe, #comp-kxxbc91d iframe { min-height: 0 !important; }
  /* the "Chat with ALYA" pill steps away once you scroll; the round ALYA button stays */
  #alya-banner { transition: opacity .3s ease, transform .3s ease; }
  html.pk-scrolled #alya-banner { opacity: 0 !important; transform: translateY(12px); pointer-events: none !important; }
}
/* the sticky header keeps a solid poster fill, or content scrolls visibly underneath it */
#SITE_HEADER { background: #0d0b0c url("/assets/hw7-grunge.jpg") center top / 1024px !important; }
