/* ==========================================================================
   Doorstep — styles
   Faded sunset palette, matte dark cards, 1px gold rules, 2px corners.
   ========================================================================== */

/* Bodoni Moda (SIL Open Font License, see assets/fonts/OFL.txt), bundled with
   the site so the lettering is identical on every device. */
@font-face {
  font-family: "Bodoni Moda";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("assets/fonts/bodoni-moda.woff2") format("woff2");
}
@font-face {
  font-family: "Bodoni Moda";
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url("assets/fonts/bodoni-moda-italic.woff2") format("woff2");
}

:root {
  --ink: #120d16;
  --card: #18131c;
  --card-2: #211a26;
  --cream: #f2e8da;
  --muted: #b9adb8;
  --gold: #c9a961;
  --gold-soft: rgba(201, 169, 97, 0.45);
  --purple: #4d3760;
  --rose: #a8647a;
  --peach: #e6b896;
  --radius: 2px;
  /* Display type is the bundled Bodoni Moda; body text uses system fonts. */
  --serif: "Bodoni Moda", Didot, "Bodoni 72", "Bodoni MT", Georgia, "Times New Roman", serif;
  --sans: "Avenir Next", Avenir, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --wrap: 1200px;
  --bar-h: 76px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  background: var(--ink);
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--cream);
  background: transparent;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, p, ul { margin: 0; }
ul { padding: 0; list-style: none; }
img { display: block; max-width: 100%; }
a { color: inherit; }
[hidden] { display: none !important; }

:focus { outline: none; }
:focus-visible,
.gate__actions .btn:focus {
  outline: 2px solid var(--cream);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--ink);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.wordmark {
  font-family: var(--serif);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.26em;
  padding-left: 0.26em; /* optically re-centre tracked text without overflowing */
  line-height: 1.15;
  color: var(--cream);
}

/* ---------- Background layers ------------------------------------------- */

.bg {
  position: fixed;
  inset: 0;
  height: 100vh;
  height: 100lvh;
  z-index: -1;
  overflow: hidden;
  background: var(--ink);
}

.bg > * { position: absolute; inset: 0; }

/* 1. Photo — falls back to this psychedelic tie-dye (concentric colour
   bands warped by SVG turbulence) with a repeating layer of peace signs,
   daisies, pot leaves and lowrider silhouettes, when assets/bg.jpg is missing. */
.bg__photo {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='520' height='520' viewBox='0 0 520 520'%3E%3Cdefs%3E%3ClinearGradient id='lg' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%2317692c'/%3E%3Cstop offset='.5' stop-color='%233fc257'/%3E%3Cstop offset='1' stop-color='%231b7a33'/%3E%3C/linearGradient%3E%3Cg id='p'%3E%3Ccircle r='48' fill='%231c1226'/%3E%3Ccircle r='44'/%3E%3Ccircle r='31' fill='none' stroke='%23fff' stroke-width='7'/%3E%3Cpath d='M0-31V31M0 0L-22 22M0 0L22 22' stroke='%23fff' stroke-width='7' fill='none'/%3E%3C/g%3E%3Cg id='d'%3E%3Cg fill='%23fff' stroke='%231c1226' stroke-width='2.5'%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(0)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(30)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(60)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(90)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(120)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(150)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(180)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(210)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(240)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(270)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(300)'/%3E%3Cellipse cy='-31' rx='9' ry='22' transform='rotate(330)'/%3E%3C/g%3E%3Ccircle r='15' fill='%23f2b632' stroke='%231c1226' stroke-width='2.5'/%3E%3C/g%3E%3Cg id='l'%3E%3Cpath d='M0-1Q2 14-3 27' fill='none' stroke='%230f3d1c' stroke-width='4.6' stroke-linecap='round'/%3E%3Cpath d='M0-1Q2 14-3 27' fill='none' stroke='%233a9a48' stroke-width='2.2' stroke-linecap='round'/%3E%3Cg transform='rotate(-112) scale(0.36)'%3E%3Cpath d='M0 0L-6.3 -9.1L-4.6 -9.7L-8.2 -15.9L-5.7 -16.6L-9 -22.8L-5.9 -23.5L-9 -29.7L-5.6 -30.3L-8.3 -36.6L-4.9 -37.2L-7.1 -43.5L-3.8 -44.1L-5.5 -50.4L-2.5 -51L-3.7 -57.3L-0.9 -57.9L0 -62L0.9 -57.9L3.7 -57.3L2.5 -51L5.5 -50.4L3.8 -44.1L7.1 -43.5L4.9 -37.2L8.3 -36.6L5.6 -30.3L9 -29.7L5.9 -23.5L9 -22.8L5.7 -16.6L8.2 -15.9L4.6 -9.7L6.3 -9.1Z' fill='url(%23lg)' stroke='%230f3d1c' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M0-2V-59M0 -3.2L-3.8 -8.7M0 -3.2L3.8 -8.7M0 -10.1L-5.4 -15.6M0 -10.1L5.4 -15.6M0 -16.9L-6 -22.5M0 -16.9L6 -22.5M0 -23.8L-6 -29.4M0 -23.8L6 -29.4M0 -30.7L-5.4 -36.3M0 -30.7L5.4 -36.3M0 -37.6L-4.5 -43.2M0 -37.6L4.5 -43.2M0 -44.5L-3.2 -50.1M0 -44.5L3.2 -50.1M0 -51.4L-1.8 -57M0 -51.4L1.8 -57' fill='none' stroke='%23d2f7c0' stroke-opacity='.55' stroke-width='.7'/%3E%3C/g%3E%3Cg transform='rotate(112) scale(0.36)'%3E%3Cpath d='M0 0L-6.3 -9.1L-4.6 -9.7L-8.2 -15.9L-5.7 -16.6L-9 -22.8L-5.9 -23.5L-9 -29.7L-5.6 -30.3L-8.3 -36.6L-4.9 -37.2L-7.1 -43.5L-3.8 -44.1L-5.5 -50.4L-2.5 -51L-3.7 -57.3L-0.9 -57.9L0 -62L0.9 -57.9L3.7 -57.3L2.5 -51L5.5 -50.4L3.8 -44.1L7.1 -43.5L4.9 -37.2L8.3 -36.6L5.6 -30.3L9 -29.7L5.9 -23.5L9 -22.8L5.7 -16.6L8.2 -15.9L4.6 -9.7L6.3 -9.1Z' fill='url(%23lg)' stroke='%230f3d1c' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M0-2V-59M0 -3.2L-3.8 -8.7M0 -3.2L3.8 -8.7M0 -10.1L-5.4 -15.6M0 -10.1L5.4 -15.6M0 -16.9L-6 -22.5M0 -16.9L6 -22.5M0 -23.8L-6 -29.4M0 -23.8L6 -29.4M0 -30.7L-5.4 -36.3M0 -30.7L5.4 -36.3M0 -37.6L-4.5 -43.2M0 -37.6L4.5 -43.2M0 -44.5L-3.2 -50.1M0 -44.5L3.2 -50.1M0 -51.4L-1.8 -57M0 -51.4L1.8 -57' fill='none' stroke='%23d2f7c0' stroke-opacity='.55' stroke-width='.7'/%3E%3C/g%3E%3Cg transform='rotate(-80) scale(0.62)'%3E%3Cpath d='M0 0L-6.3 -9.1L-4.6 -9.7L-8.2 -15.9L-5.7 -16.6L-9 -22.8L-5.9 -23.5L-9 -29.7L-5.6 -30.3L-8.3 -36.6L-4.9 -37.2L-7.1 -43.5L-3.8 -44.1L-5.5 -50.4L-2.5 -51L-3.7 -57.3L-0.9 -57.9L0 -62L0.9 -57.9L3.7 -57.3L2.5 -51L5.5 -50.4L3.8 -44.1L7.1 -43.5L4.9 -37.2L8.3 -36.6L5.6 -30.3L9 -29.7L5.9 -23.5L9 -22.8L5.7 -16.6L8.2 -15.9L4.6 -9.7L6.3 -9.1Z' fill='url(%23lg)' stroke='%230f3d1c' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M0-2V-59M0 -3.2L-3.8 -8.7M0 -3.2L3.8 -8.7M0 -10.1L-5.4 -15.6M0 -10.1L5.4 -15.6M0 -16.9L-6 -22.5M0 -16.9L6 -22.5M0 -23.8L-6 -29.4M0 -23.8L6 -29.4M0 -30.7L-5.4 -36.3M0 -30.7L5.4 -36.3M0 -37.6L-4.5 -43.2M0 -37.6L4.5 -43.2M0 -44.5L-3.2 -50.1M0 -44.5L3.2 -50.1M0 -51.4L-1.8 -57M0 -51.4L1.8 -57' fill='none' stroke='%23d2f7c0' stroke-opacity='.55' stroke-width='.7'/%3E%3C/g%3E%3Cg transform='rotate(80) scale(0.62)'%3E%3Cpath d='M0 0L-6.3 -9.1L-4.6 -9.7L-8.2 -15.9L-5.7 -16.6L-9 -22.8L-5.9 -23.5L-9 -29.7L-5.6 -30.3L-8.3 -36.6L-4.9 -37.2L-7.1 -43.5L-3.8 -44.1L-5.5 -50.4L-2.5 -51L-3.7 -57.3L-0.9 -57.9L0 -62L0.9 -57.9L3.7 -57.3L2.5 -51L5.5 -50.4L3.8 -44.1L7.1 -43.5L4.9 -37.2L8.3 -36.6L5.6 -30.3L9 -29.7L5.9 -23.5L9 -22.8L5.7 -16.6L8.2 -15.9L4.6 -9.7L6.3 -9.1Z' fill='url(%23lg)' stroke='%230f3d1c' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M0-2V-59M0 -3.2L-3.8 -8.7M0 -3.2L3.8 -8.7M0 -10.1L-5.4 -15.6M0 -10.1L5.4 -15.6M0 -16.9L-6 -22.5M0 -16.9L6 -22.5M0 -23.8L-6 -29.4M0 -23.8L6 -29.4M0 -30.7L-5.4 -36.3M0 -30.7L5.4 -36.3M0 -37.6L-4.5 -43.2M0 -37.6L4.5 -43.2M0 -44.5L-3.2 -50.1M0 -44.5L3.2 -50.1M0 -51.4L-1.8 -57M0 -51.4L1.8 -57' fill='none' stroke='%23d2f7c0' stroke-opacity='.55' stroke-width='.7'/%3E%3C/g%3E%3Cg transform='rotate(-45) scale(0.86)'%3E%3Cpath d='M0 0L-6.3 -9.1L-4.6 -9.7L-8.2 -15.9L-5.7 -16.6L-9 -22.8L-5.9 -23.5L-9 -29.7L-5.6 -30.3L-8.3 -36.6L-4.9 -37.2L-7.1 -43.5L-3.8 -44.1L-5.5 -50.4L-2.5 -51L-3.7 -57.3L-0.9 -57.9L0 -62L0.9 -57.9L3.7 -57.3L2.5 -51L5.5 -50.4L3.8 -44.1L7.1 -43.5L4.9 -37.2L8.3 -36.6L5.6 -30.3L9 -29.7L5.9 -23.5L9 -22.8L5.7 -16.6L8.2 -15.9L4.6 -9.7L6.3 -9.1Z' fill='url(%23lg)' stroke='%230f3d1c' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M0-2V-59M0 -3.2L-3.8 -8.7M0 -3.2L3.8 -8.7M0 -10.1L-5.4 -15.6M0 -10.1L5.4 -15.6M0 -16.9L-6 -22.5M0 -16.9L6 -22.5M0 -23.8L-6 -29.4M0 -23.8L6 -29.4M0 -30.7L-5.4 -36.3M0 -30.7L5.4 -36.3M0 -37.6L-4.5 -43.2M0 -37.6L4.5 -43.2M0 -44.5L-3.2 -50.1M0 -44.5L3.2 -50.1M0 -51.4L-1.8 -57M0 -51.4L1.8 -57' fill='none' stroke='%23d2f7c0' stroke-opacity='.55' stroke-width='.7'/%3E%3C/g%3E%3Cg transform='rotate(45) scale(0.86)'%3E%3Cpath d='M0 0L-6.3 -9.1L-4.6 -9.7L-8.2 -15.9L-5.7 -16.6L-9 -22.8L-5.9 -23.5L-9 -29.7L-5.6 -30.3L-8.3 -36.6L-4.9 -37.2L-7.1 -43.5L-3.8 -44.1L-5.5 -50.4L-2.5 -51L-3.7 -57.3L-0.9 -57.9L0 -62L0.9 -57.9L3.7 -57.3L2.5 -51L5.5 -50.4L3.8 -44.1L7.1 -43.5L4.9 -37.2L8.3 -36.6L5.6 -30.3L9 -29.7L5.9 -23.5L9 -22.8L5.7 -16.6L8.2 -15.9L4.6 -9.7L6.3 -9.1Z' fill='url(%23lg)' stroke='%230f3d1c' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M0-2V-59M0 -3.2L-3.8 -8.7M0 -3.2L3.8 -8.7M0 -10.1L-5.4 -15.6M0 -10.1L5.4 -15.6M0 -16.9L-6 -22.5M0 -16.9L6 -22.5M0 -23.8L-6 -29.4M0 -23.8L6 -29.4M0 -30.7L-5.4 -36.3M0 -30.7L5.4 -36.3M0 -37.6L-4.5 -43.2M0 -37.6L4.5 -43.2M0 -44.5L-3.2 -50.1M0 -44.5L3.2 -50.1M0 -51.4L-1.8 -57M0 -51.4L1.8 -57' fill='none' stroke='%23d2f7c0' stroke-opacity='.55' stroke-width='.7'/%3E%3C/g%3E%3Cg transform='rotate(0) scale(1)'%3E%3Cpath d='M0 0L-6.3 -9.1L-4.6 -9.7L-8.2 -15.9L-5.7 -16.6L-9 -22.8L-5.9 -23.5L-9 -29.7L-5.6 -30.3L-8.3 -36.6L-4.9 -37.2L-7.1 -43.5L-3.8 -44.1L-5.5 -50.4L-2.5 -51L-3.7 -57.3L-0.9 -57.9L0 -62L0.9 -57.9L3.7 -57.3L2.5 -51L5.5 -50.4L3.8 -44.1L7.1 -43.5L4.9 -37.2L8.3 -36.6L5.6 -30.3L9 -29.7L5.9 -23.5L9 -22.8L5.7 -16.6L8.2 -15.9L4.6 -9.7L6.3 -9.1Z' fill='url(%23lg)' stroke='%230f3d1c' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M0-2V-59M0 -3.2L-3.8 -8.7M0 -3.2L3.8 -8.7M0 -10.1L-5.4 -15.6M0 -10.1L5.4 -15.6M0 -16.9L-6 -22.5M0 -16.9L6 -22.5M0 -23.8L-6 -29.4M0 -23.8L6 -29.4M0 -30.7L-5.4 -36.3M0 -30.7L5.4 -36.3M0 -37.6L-4.5 -43.2M0 -37.6L4.5 -43.2M0 -44.5L-3.2 -50.1M0 -44.5L3.2 -50.1M0 -51.4L-1.8 -57M0 -51.4L1.8 -57' fill='none' stroke='%23d2f7c0' stroke-opacity='.55' stroke-width='.7'/%3E%3C/g%3E%3C/g%3E%3Cg id='w'%3E%3Ccircle r='9' fill='%23141018'/%3E%3Ccircle r='6.6' fill='none' stroke='%23fff' stroke-width='1.7'/%3E%3Ccircle r='4.3' fill='%23e9b93a'/%3E%3Cpath d='M-4.3 0H4.3M0-4.3V4.3M-3-3L3 3M-3 3L3-3' stroke='%237a5a12' stroke-width='.7'/%3E%3Ccircle r='1.3' fill='%23fff3c4'/%3E%3C/g%3E%3Cg id='c' transform='translate(-115 -30)'%3E%3Cuse xlink:href='%23w' href='%23w' x='42' y='43'/%3E%3Cpath d='M2 46L2 30L9 26L70 24L88 11Q90 9 94 9L136 9Q140 9 143 12L160 25L222 28Q229 29 229 35L229 41L227 46Z' stroke='%231c1226' stroke-width='2.6' stroke-linejoin='round'/%3E%3Cpath d='M10 29L70 27L160 28L222 31' fill='none' stroke='%23fff' stroke-opacity='.3' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M92 13L112 13L112 23L77 23ZM116 13L137 13L153 23L116 23Z' fill='%23d9f1ff' fill-opacity='.88' stroke='%231c1226' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M9 35.5H223' stroke='%23fff' stroke-width='1.5' stroke-opacity='.9'/%3E%3Cpath d='M12 44.6H222' stroke='%23d8d8e0' stroke-width='2'/%3E%3Cpath d='M0 41H7M224 41H231' stroke='%23ececf2' stroke-width='3.6' stroke-linecap='round'/%3E%3Crect x='1.2' y='29.5' width='3.4' height='6' rx='1' fill='%23ff3b3b'/%3E%3Crect x='225.6' y='31.5' width='3.4' height='5' rx='1' fill='%23fff3c4'/%3E%3Ccircle cx='190' cy='43' r='11.6' fill='%23141018'/%3E%3Cuse xlink:href='%23w' href='%23w' x='190' y='43'/%3E%3C/g%3E%3C/defs%3E%3Cuse xlink:href='%23c' href='%23c' fill='%237a3cf0' transform='translate(150 118) rotate(-4) scale(1.12)'/%3E%3Cuse xlink:href='%23c' href='%23c' fill='%23e0245e' transform='translate(385 404) rotate(3) scale(-.98 .98)'/%3E%3Cuse xlink:href='%23p' href='%23p' fill='%23ff2e93' transform='translate(96 296) rotate(-12) scale(.86)'/%3E%3Cuse xlink:href='%23p' href='%23p' fill='%230f9fc4' transform='translate(432 92) rotate(10) scale(.6)'/%3E%3Cuse xlink:href='%23p' href='%23p' fill='%237a3cf0' transform='translate(268 246) rotate(6) scale(.5)'/%3E%3Cuse xlink:href='%23d' href='%23d' transform='translate(392 224) rotate(8) scale(.9)'/%3E%3Cuse xlink:href='%23d' href='%23d' transform='translate(56 446) rotate(-10) scale(.66)'/%3E%3Cuse xlink:href='%23d' href='%23d' transform='translate(332 42) rotate(20) scale(.5)'/%3E%3Cuse xlink:href='%23l' href='%23l' transform='translate(188 420) rotate(-14) scale(1.25)'/%3E%3Cuse xlink:href='%23l' href='%23l' transform='translate(470 322) rotate(16) scale(.74)'/%3E%3Cuse xlink:href='%23l' href='%23l' transform='translate(46 214) rotate(-8) scale(.64)'/%3E%3C/svg%3E") 0 0 / 520px 520px repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 1400' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3CradialGradient id='r' gradientUnits='userSpaceOnUse' cx='400' cy='600' r='210' spreadMethod='repeat'%3E%3Cstop offset='0' stop-color='%2319c2e6'/%3E%3Cstop offset='.14' stop-color='%232f7bf0'/%3E%3Cstop offset='.27' stop-color='%2316b7a4'/%3E%3Cstop offset='.4' stop-color='%233fdc5c'/%3E%3Cstop offset='.52' stop-color='%23b6e83a'/%3E%3Cstop offset='.61' stop-color='%23ffe23b'/%3E%3Cstop offset='.68' stop-color='%23ff8a1f'/%3E%3Cstop offset='.74' stop-color='%23ff2e93'/%3E%3Cstop offset='.81' stop-color='%237a3cf0'/%3E%3Cstop offset='.9' stop-color='%232f7bf0'/%3E%3Cstop offset='1' stop-color='%2319c2e6'/%3E%3C/radialGradient%3E%3Cfilter id='t' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.0045 .007' numOctaves='3' seed='4' result='a'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='a' scale='330' xChannelSelector='R' yChannelSelector='G' result='d'/%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.03' numOctaves='2' seed='9' result='b'/%3E%3CfeDisplacementMap in='d' in2='b' scale='38' xChannelSelector='G' yChannelSelector='B'/%3E%3C/filter%3E%3C/defs%3E%3Crect width='800' height='1400' fill='%232f7bf0'/%3E%3Cg filter='url(%23t)'%3E%3Crect x='-400' y='-400' width='1600' height='2200' fill='url(%23r)'/%3E%3C/g%3E%3C/svg%3E") center / cover no-repeat, #1f6fd0;
}

.bg__photo.has-photo {
  /* faded film look */
  filter: saturate(0.68) contrast(0.88) brightness(0.86) sepia(0.2);
  transform: scale(1.02);
}

/* 2. Smoke — video (or canvas fallback) screened over the photo. */
.bg__smoke { mix-blend-mode: screen; opacity: 0.55; }
.bg__smoke video,
.bg__smoke canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 3. Film grain (SVG turbulence). */
.bg__grain {
  opacity: 0.16;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1.4 0 0 0 -.25'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 240px 240px;
}

/* 4. Vignette. */
.bg__vignette {
  background:
    radial-gradient(120% 90% at 50% 45%, rgba(12, 8, 16, 0) 40%, rgba(12, 8, 16, 0.62) 100%),
    linear-gradient(180deg, rgba(12, 8, 16, 0.35), rgba(12, 8, 16, 0.12) 40%, rgba(12, 8, 16, 0.3));
}

/* ---------- No-JavaScript message --------------------------------------- */

.noscript {
  max-width: 34rem;
  margin: 12vh auto 0;
  padding: 28px 22px;
  text-align: center;
  background: var(--card);
  border: 1px solid var(--gold-soft);
  border-radius: var(--radius);
}
.noscript .wordmark { font-size: 1.5rem; margin-bottom: 18px; }
.noscript h1 { font-family: var(--serif); font-weight: 400; font-size: 1.5rem; margin-bottom: 12px; }
.noscript p + p { margin-top: 12px; color: var(--muted); }

/* ---------- Age gate: an art-deco entrance (all CSS / inline SVG) ------- */

.gate {
  position: fixed;
  inset: 0;
  z-index: 100;
  overflow: hidden;
}

.scene {
  --floor: 76%;                          /* where the wall meets the pavement */
  --dw: min(60vw, 28vh, 300px);          /* width of the door opening */
  --dh: calc(var(--dw) * 1.75);          /* height of the doors */
  position: absolute;
  inset: 0;
  background: #0d1012;
  transform-origin: 50% calc(var(--floor) - var(--dh) / 2);
}
.scene > * { position: absolute; }

/* Granite blocks at dusk, warmed by the two lanterns */
.scene__wall {
  left: 0;
  right: 0;
  top: 0;
  height: var(--floor);
  background:
    radial-gradient(circle at calc(50% - var(--dw) * 0.625) calc(100% - var(--dw) * 1.62), rgba(255, 196, 120, 0.5), rgba(255, 196, 120, 0) calc(var(--dw) * 0.6)),
    radial-gradient(circle at calc(50% + var(--dw) * 0.625) calc(100% - var(--dw) * 1.62), rgba(255, 196, 120, 0.5), rgba(255, 196, 120, 0) calc(var(--dw) * 0.6)),
    linear-gradient(180deg, #5d6878, #8a94a2 55%, #596270),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='1000' viewBox='0 0 1400 1000' preserveAspectRatio='xMidYMax slice'%3E%3Cfilter id='s' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='3' seed='2' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='1.7' diffuseConstant='1.05' lighting-color='%23a3abb0'%3E%3CfeDistantLight azimuth='235' elevation='62'/%3E%3C/feDiffuseLighting%3E%3C/filter%3E%3Cfilter id='m' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.01 .018' numOctaves='4' seed='8'/%3E%3CfeColorMatrix values='0 0 0 0 .05 0 0 0 0 .07 0 0 0 0 .09 2.2 0 0 0 -.95'/%3E%3C/filter%3E%3Cfilter id='v' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.02 .0025' numOctaves='3' seed='5'/%3E%3CfeColorMatrix values='0 0 0 0 .03 0 0 0 0 .04 0 0 0 0 .05 2 0 0 0 -1.05'/%3E%3C/filter%3E%3Crect width='1400' height='1000' filter='url(%23s)'/%3E%3Crect width='1400' height='1000' filter='url(%23m)'/%3E%3Crect width='1400' height='1000' filter='url(%23v)'/%3E%3Crect y='138' width='1400' height='3.2' fill='%2312161a'/%3E%3Crect y='141.2' width='1400' height='1.3' fill='%23fff' fill-opacity='.14'/%3E%3Crect y='278' width='1400' height='3.2' fill='%2312161a'/%3E%3Crect y='281.2' width='1400' height='1.3' fill='%23fff' fill-opacity='.14'/%3E%3Crect y='418' width='1400' height='3.2' fill='%2312161a'/%3E%3Crect y='421.2' width='1400' height='1.3' fill='%23fff' fill-opacity='.14'/%3E%3Crect y='558' width='1400' height='3.2' fill='%2312161a'/%3E%3Crect y='561.2' width='1400' height='1.3' fill='%23fff' fill-opacity='.14'/%3E%3Crect y='698' width='1400' height='3.2' fill='%2312161a'/%3E%3Crect y='701.2' width='1400' height='1.3' fill='%23fff' fill-opacity='.14'/%3E%3Crect y='838' width='1400' height='3.2' fill='%2312161a'/%3E%3Crect y='841.2' width='1400' height='1.3' fill='%23fff' fill-opacity='.14'/%3E%3Crect y='978' width='1400' height='3.2' fill='%2312161a'/%3E%3Crect y='981.2' width='1400' height='1.3' fill='%23fff' fill-opacity='.14'/%3E%3Crect x='-1.5' y='0' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1.5' y='0' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='248.5' y='0' width='3' height='140' fill='%2312161a'/%3E%3Crect x='251.5' y='0' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='498.5' y='0' width='3' height='140' fill='%2312161a'/%3E%3Crect x='501.5' y='0' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='748.5' y='0' width='3' height='140' fill='%2312161a'/%3E%3Crect x='751.5' y='0' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='998.5' y='0' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1001.5' y='0' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1248.5' y='0' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1251.5' y='0' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1498.5' y='0' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1501.5' y='0' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='123.5' y='140' width='3' height='140' fill='%2312161a'/%3E%3Crect x='126.5' y='140' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='373.5' y='140' width='3' height='140' fill='%2312161a'/%3E%3Crect x='376.5' y='140' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='623.5' y='140' width='3' height='140' fill='%2312161a'/%3E%3Crect x='626.5' y='140' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='873.5' y='140' width='3' height='140' fill='%2312161a'/%3E%3Crect x='876.5' y='140' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1123.5' y='140' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1126.5' y='140' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1373.5' y='140' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1376.5' y='140' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1623.5' y='140' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1626.5' y='140' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='-1.5' y='280' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1.5' y='280' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='248.5' y='280' width='3' height='140' fill='%2312161a'/%3E%3Crect x='251.5' y='280' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='498.5' y='280' width='3' height='140' fill='%2312161a'/%3E%3Crect x='501.5' y='280' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='748.5' y='280' width='3' height='140' fill='%2312161a'/%3E%3Crect x='751.5' y='280' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='998.5' y='280' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1001.5' y='280' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1248.5' y='280' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1251.5' y='280' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1498.5' y='280' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1501.5' y='280' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='123.5' y='420' width='3' height='140' fill='%2312161a'/%3E%3Crect x='126.5' y='420' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='373.5' y='420' width='3' height='140' fill='%2312161a'/%3E%3Crect x='376.5' y='420' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='623.5' y='420' width='3' height='140' fill='%2312161a'/%3E%3Crect x='626.5' y='420' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='873.5' y='420' width='3' height='140' fill='%2312161a'/%3E%3Crect x='876.5' y='420' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1123.5' y='420' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1126.5' y='420' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1373.5' y='420' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1376.5' y='420' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1623.5' y='420' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1626.5' y='420' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='-1.5' y='560' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1.5' y='560' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='248.5' y='560' width='3' height='140' fill='%2312161a'/%3E%3Crect x='251.5' y='560' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='498.5' y='560' width='3' height='140' fill='%2312161a'/%3E%3Crect x='501.5' y='560' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='748.5' y='560' width='3' height='140' fill='%2312161a'/%3E%3Crect x='751.5' y='560' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='998.5' y='560' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1001.5' y='560' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1248.5' y='560' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1251.5' y='560' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1498.5' y='560' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1501.5' y='560' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='123.5' y='700' width='3' height='140' fill='%2312161a'/%3E%3Crect x='126.5' y='700' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='373.5' y='700' width='3' height='140' fill='%2312161a'/%3E%3Crect x='376.5' y='700' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='623.5' y='700' width='3' height='140' fill='%2312161a'/%3E%3Crect x='626.5' y='700' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='873.5' y='700' width='3' height='140' fill='%2312161a'/%3E%3Crect x='876.5' y='700' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1123.5' y='700' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1126.5' y='700' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1373.5' y='700' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1376.5' y='700' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1623.5' y='700' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1626.5' y='700' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='-1.5' y='840' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1.5' y='840' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='248.5' y='840' width='3' height='140' fill='%2312161a'/%3E%3Crect x='251.5' y='840' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='498.5' y='840' width='3' height='140' fill='%2312161a'/%3E%3Crect x='501.5' y='840' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='748.5' y='840' width='3' height='140' fill='%2312161a'/%3E%3Crect x='751.5' y='840' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='998.5' y='840' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1001.5' y='840' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1248.5' y='840' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1251.5' y='840' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1498.5' y='840' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1501.5' y='840' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='123.5' y='980' width='3' height='140' fill='%2312161a'/%3E%3Crect x='126.5' y='980' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='373.5' y='980' width='3' height='140' fill='%2312161a'/%3E%3Crect x='376.5' y='980' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='623.5' y='980' width='3' height='140' fill='%2312161a'/%3E%3Crect x='626.5' y='980' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='873.5' y='980' width='3' height='140' fill='%2312161a'/%3E%3Crect x='876.5' y='980' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1123.5' y='980' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1126.5' y='980' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1373.5' y='980' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1376.5' y='980' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3Crect x='1623.5' y='980' width='3' height='140' fill='%2312161a'/%3E%3Crect x='1626.5' y='980' width='1.2' height='140' fill='%23fff' fill-opacity='.12'/%3E%3C/svg%3E") center bottom / cover no-repeat;
  background-blend-mode: screen, screen, multiply, normal;
}

/* Stone pavement */
.scene__floor {
  left: 0;
  right: 0;
  top: var(--floor);
  bottom: 0;
  overflow: hidden;
  background: linear-gradient(180deg, #23272b, #3b4046 30%, #1a1d20);
  border-top: 2px solid #0c0e10;
}
.scene__floor::before {
  content: "";
  position: absolute;
  left: -80%;
  right: -80%;
  top: 0;
  height: 300%;
  transform-origin: 50% 0;
  transform: perspective(420px) rotateX(66deg);
  background:
    repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.55) 0, rgba(0, 0, 0, 0.55) 2px, rgba(0, 0, 0, 0) 2px, rgba(0, 0, 0, 0) 150px),
    repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.55) 0, rgba(0, 0, 0, 0.55) 2px, rgba(0, 0, 0, 0) 2px, rgba(0, 0, 0, 0) 150px);
}
.scene__floor::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 34% 90% at calc(50% - var(--dw) * 0.625) 0, rgba(255, 196, 120, 0.3), rgba(255, 196, 120, 0) 70%),
    radial-gradient(ellipse 34% 90% at calc(50% + var(--dw) * 0.625) 0, rgba(255, 196, 120, 0.3), rgba(255, 196, 120, 0) 70%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0) 22%);
}

/* The entrance: verdigris surround, arch with a gold sunburst, lanterns */
.portal {
  left: 50%;
  bottom: calc(100% - var(--floor));
  width: calc(var(--dw) * 1.5);
  height: calc(var(--dw) * 2.6);
  margin-left: calc(var(--dw) * -0.75);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 520' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='gd' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='300' y2='520'%3E%3Cstop offset='0' stop-color='%23f6e2a0'/%3E%3Cstop offset='.22' stop-color='%23c39a43'/%3E%3Cstop offset='.45' stop-color='%23f0d488'/%3E%3Cstop offset='.7' stop-color='%23a98232'/%3E%3Cstop offset='1' stop-color='%23ecd083'/%3E%3C/linearGradient%3E%3Cfilter id='rl' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='2' seed='4' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='1.3' diffuseConstant='1.1' lighting-color='%234c988f'%3E%3CfeDistantLight azimuth='235' elevation='60'/%3E%3C/feDiffuseLighting%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='pt' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.05 .03' numOctaves='4' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .62 0 0 0 0 .88 0 0 0 0 .8 2 0 0 0 -.9'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='st' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.14 .007' numOctaves='3' seed='11'/%3E%3CfeColorMatrix values='0 0 0 0 .02 0 0 0 0 .09 0 0 0 0 .09 2.4 0 0 0 -1.12'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3CradialGradient id='lg'%3E%3Cstop offset='0' stop-color='%23ffd692' stop-opacity='.8'/%3E%3Cstop offset='.35' stop-color='%23ffb85c' stop-opacity='.3'/%3E%3Cstop offset='1' stop-color='%23ffb85c' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='gl' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fff6d8'/%3E%3Cstop offset='.6' stop-color='%23ffdc94'/%3E%3Cstop offset='1' stop-color='%23f2b55a'/%3E%3C/linearGradient%3E%3ClinearGradient id='sh' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.4'/%3E%3Cstop offset='.2' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='.8' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.4'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 22H300V520H0Z' filter='url(%23rl)'/%3E%3Cpath d='M0 22H300V520H0Z' filter='url(%23pt)'/%3E%3Cpath d='M0 22H300V520H0Z' filter='url(%23st)'/%3E%3Crect x='7' y='44' width='36' height='466' fill='%23000' fill-opacity='.16'/%3E%3Crect x='257' y='44' width='36' height='466' fill='%23000' fill-opacity='.16'/%3E%3Cg fill='none' stroke='url(%23gd)' stroke-width='1.5'%3E%3Crect x='7' y='44' width='36' height='466'/%3E%3Crect x='257' y='44' width='36' height='466'/%3E%3C/g%3E%3Cg fill='none' stroke='url(%23gd)' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M13 300L25 308L37 300'/%3E%3Cpath d='M13 316L25 324L37 316'/%3E%3Cpath d='M13 332L25 340L37 332'/%3E%3Cpath d='M13 348L25 356L37 348'/%3E%3Cpath d='M13 364L25 372L37 364'/%3E%3Cpath d='M13 380L25 388L37 380'/%3E%3Cpath d='M13 396L25 404L37 396'/%3E%3Cpath d='M13 412L25 420L37 412'/%3E%3Cpath d='M13 428L25 436L37 428'/%3E%3Cpath d='M13 444L25 452L37 444'/%3E%3Cpath d='M13 460L25 468L37 460'/%3E%3Cpath d='M13 476L25 484L37 476'/%3E%3Cpath d='M263 300L275 308L287 300'/%3E%3Cpath d='M263 316L275 324L287 316'/%3E%3Cpath d='M263 332L275 340L287 332'/%3E%3Cpath d='M263 348L275 356L287 348'/%3E%3Cpath d='M263 364L275 372L287 364'/%3E%3Cpath d='M263 380L275 388L287 380'/%3E%3Cpath d='M263 396L275 404L287 396'/%3E%3Cpath d='M263 412L275 420L287 412'/%3E%3Cpath d='M263 428L275 436L287 428'/%3E%3Cpath d='M263 444L275 452L287 444'/%3E%3Cpath d='M263 460L275 468L287 460'/%3E%3Cpath d='M263 476L275 484L287 476'/%3E%3C/g%3E%3Cpath d='M28 170A122 122 0 0 1 272 170L250 170A100 100 0 0 0 50 170Z' fill='%23000' fill-opacity='.26'/%3E%3Cpath d='M50 170A100 100 0 0 1 250 170Z' fill='%2306201f' fill-opacity='.62'/%3E%3Cg fill='none' stroke='url(%23gd)'%3E%3Cpath d='M30 170A120 120 0 0 1 270 170' stroke-width='2.2'/%3E%3Cpath d='M46 170A104 104 0 0 1 254 170' stroke-width='4.2'/%3E%3Cpath d='M57 170A93 93 0 0 1 243 170' stroke-width='1'/%3E%3C/g%3E%3Cg fill='url(%23gd)'%3E%3Ccircle cx='41.4' cy='146.9' r='2.3'/%3E%3Ccircle cx='48.6' cy='124.9' r='2.3'/%3E%3Ccircle cx='60.2' cy='104.8' r='2.3'/%3E%3Ccircle cx='75.7' cy='87.5' r='2.3'/%3E%3Ccircle cx='94.5' cy='73.9' r='2.3'/%3E%3Ccircle cx='115.7' cy='64.4' r='2.3'/%3E%3Ccircle cx='138.4' cy='59.6' r='2.3'/%3E%3Ccircle cx='161.6' cy='59.6' r='2.3'/%3E%3Ccircle cx='184.3' cy='64.4' r='2.3'/%3E%3Ccircle cx='205.5' cy='73.9' r='2.3'/%3E%3Ccircle cx='224.3' cy='87.5' r='2.3'/%3E%3Ccircle cx='239.8' cy='104.8' r='2.3'/%3E%3Ccircle cx='251.4' cy='124.9' r='2.3'/%3E%3Ccircle cx='258.6' cy='146.9' r='2.3'/%3E%3Cpath d='M129.1 150.2L71 139.7L71.5 136.6L129.7 146.5Z'/%3E%3Cpath d='M129.8 146.1L95.6 131.9L96.4 129.8L131.2 142.6Z'/%3E%3Cpath d='M131.4 142.2L82 109.9L83.7 107.3L133.4 139.1Z'/%3E%3Cpath d='M133.7 138.7L107.7 112.3L109.3 110.7L136.3 136.1Z'/%3E%3Cpath d='M136.7 135.8L103.7 86.8L106.2 85L139.8 133.7Z'/%3E%3Cpath d='M140.1 133.5L126.4 99L128.5 98.1L143.6 132Z'/%3E%3Cpath d='M144 131.9L132.6 73.9L135.7 73.3L147.7 131.1Z'/%3E%3Cpath d='M148.1 131.1L148.9 94L151.1 94L151.9 131.1Z'/%3E%3Cpath d='M152.3 131.1L164.3 73.3L167.4 73.9L156 131.9Z'/%3E%3Cpath d='M156.4 132L171.5 98.1L173.6 99L159.9 133.5Z'/%3E%3Cpath d='M160.2 133.7L193.8 85L196.3 86.8L163.3 135.8Z'/%3E%3Cpath d='M163.7 136.1L190.7 110.7L192.3 112.3L166.3 138.7Z'/%3E%3Cpath d='M166.6 139.1L216.3 107.3L218 109.9L168.6 142.2Z'/%3E%3Cpath d='M168.8 142.6L203.6 129.8L204.4 131.9L170.2 146.1Z'/%3E%3Cpath d='M170.3 146.5L228.5 136.6L229 139.7L170.9 150.2Z'/%3E%3C/g%3E%3Ccircle cx='150' cy='152' r='19' fill='url(%23gd)'/%3E%3Ccircle cx='150' cy='152' r='13' fill='%230a2a29'/%3E%3Ccircle cx='150' cy='152' r='8.5' fill='url(%23gd)'/%3E%3Ccircle cx='150' cy='152' r='3' fill='%230a2a29'/%3E%3Cpath d='M12 22H288M0 30H300' stroke='url(%23gd)' stroke-width='1.6'/%3E%3Cpath d='M104 22V12H196V22M122 12V5H178V12' fill='none' stroke='url(%23gd)' stroke-width='1.6'/%3E%3Crect x='44' y='162' width='212' height='12' fill='url(%23gd)'/%3E%3Crect x='37' y='157' width='11' height='22' fill='url(%23gd)'/%3E%3Crect x='252' y='157' width='11' height='22' fill='url(%23gd)'/%3E%3Cg fill='%233a2a0c' fill-opacity='.6'%3E%3Crect x='50.0' y='165.5' width='3.6' height='5'/%3E%3Crect x='57.8' y='165.5' width='3.6' height='5'/%3E%3Crect x='65.6' y='165.5' width='3.6' height='5'/%3E%3Crect x='73.4' y='165.5' width='3.6' height='5'/%3E%3Crect x='81.2' y='165.5' width='3.6' height='5'/%3E%3Crect x='89.0' y='165.5' width='3.6' height='5'/%3E%3Crect x='96.8' y='165.5' width='3.6' height='5'/%3E%3Crect x='104.6' y='165.5' width='3.6' height='5'/%3E%3Crect x='112.4' y='165.5' width='3.6' height='5'/%3E%3Crect x='120.2' y='165.5' width='3.6' height='5'/%3E%3Crect x='128.0' y='165.5' width='3.6' height='5'/%3E%3Crect x='135.8' y='165.5' width='3.6' height='5'/%3E%3Crect x='143.6' y='165.5' width='3.6' height='5'/%3E%3Crect x='151.39999999999998' y='165.5' width='3.6' height='5'/%3E%3Crect x='159.2' y='165.5' width='3.6' height='5'/%3E%3Crect x='167.0' y='165.5' width='3.6' height='5'/%3E%3Crect x='174.8' y='165.5' width='3.6' height='5'/%3E%3Crect x='182.6' y='165.5' width='3.6' height='5'/%3E%3Crect x='190.4' y='165.5' width='3.6' height='5'/%3E%3Crect x='198.2' y='165.5' width='3.6' height='5'/%3E%3Crect x='206.0' y='165.5' width='3.6' height='5'/%3E%3Crect x='213.79999999999998' y='165.5' width='3.6' height='5'/%3E%3Crect x='221.6' y='165.5' width='3.6' height='5'/%3E%3Crect x='229.4' y='165.5' width='3.6' height='5'/%3E%3Crect x='237.2' y='165.5' width='3.6' height='5'/%3E%3Crect x='245.0' y='165.5' width='3.6' height='5'/%3E%3C/g%3E%3Crect x='45' y='174' width='210' height='346' fill='%23040b0b'/%3E%3Cpath d='M47 520V175H253V520' fill='none' stroke='url(%23gd)' stroke-width='2.2'/%3E%3Ccircle cx='25' cy='197' r='50' fill='url(%23lg)'/%3E%3Crect x='23.4' y='166' width='3.2' height='10' fill='%23231b12'/%3E%3Cpath d='M15 181L25 170L35 181Z' fill='%232c2216'/%3E%3Crect x='17.5' y='181' width='15' height='30' rx='2.5' fill='url(%23gl)'/%3E%3Crect x='17.5' y='181' width='15' height='30' rx='2.5' fill='none' stroke='%232c2216' stroke-width='1.7'/%3E%3Cpath d='M25 181V211M17.5 196H32.5' stroke='%232c2216' stroke-width='1'/%3E%3Cpath d='M17.5 211L25 233L32.5 211Z' fill='%232c2216'/%3E%3Ccircle cx='25' cy='235' r='2.1' fill='%232c2216'/%3E%3Cpath d='M15 181H35' stroke='%23c9a24a' stroke-width='1'/%3E%3Ccircle cx='275' cy='197' r='50' fill='url(%23lg)'/%3E%3Crect x='273.4' y='166' width='3.2' height='10' fill='%23231b12'/%3E%3Cpath d='M265 181L275 170L285 181Z' fill='%232c2216'/%3E%3Crect x='267.5' y='181' width='15' height='30' rx='2.5' fill='url(%23gl)'/%3E%3Crect x='267.5' y='181' width='15' height='30' rx='2.5' fill='none' stroke='%232c2216' stroke-width='1.7'/%3E%3Cpath d='M275 181V211M267.5 196H282.5' stroke='%232c2216' stroke-width='1'/%3E%3Cpath d='M267.5 211L275 233L282.5 211Z' fill='%232c2216'/%3E%3Ccircle cx='275' cy='235' r='2.1' fill='%232c2216'/%3E%3Cpath d='M265 181H285' stroke='%23c9a24a' stroke-width='1'/%3E%3Crect y='22' width='300' height='498' fill='url(%23sh)'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* The door opening inside the surround */
.doorway {
  position: absolute;
  left: 16.6667%;
  width: 66.6667%;
  bottom: 0;
  height: var(--dh);
}
.doorway__leaves {
  position: absolute;
  inset: 0;
  display: flex;
  overflow: hidden;
  perspective: 1100px;
  perspective-origin: 50% 45%;
  background: #040b0b;
}

/* Warm light from inside, seen as the doors open */
.doorway__light {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #f6e3c2, #e9bf98 60%, #d59f86);
  opacity: 0;
  transition: opacity 0.7s ease 0.2s;
}

.leaf {
  position: relative;
  flex: 1 1 50%;
  background-position: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  transition: transform 0.95s cubic-bezier(0.5, 0.05, 0.25, 1) 0.12s, filter 0.95s ease-in 0.12s;
  will-change: transform;
  backface-visibility: hidden;
}
.leaf--l { transform-origin: left center; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 350' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='gd' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='100' y2='350'%3E%3Cstop offset='0' stop-color='%23f6e2a0'/%3E%3Cstop offset='.22' stop-color='%23c39a43'/%3E%3Cstop offset='.45' stop-color='%23f0d488'/%3E%3Cstop offset='.7' stop-color='%23a98232'/%3E%3Cstop offset='1' stop-color='%23ecd083'/%3E%3C/linearGradient%3E%3Cfilter id='rl' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='2' seed='4' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='1.3' diffuseConstant='1.1' lighting-color='%234c988f'%3E%3CfeDistantLight azimuth='235' elevation='60'/%3E%3C/feDiffuseLighting%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='pt' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.05 .03' numOctaves='4' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .62 0 0 0 0 .88 0 0 0 0 .8 2 0 0 0 -.9'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='st' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.14 .007' numOctaves='3' seed='11'/%3E%3CfeColorMatrix values='0 0 0 0 .02 0 0 0 0 .09 0 0 0 0 .09 2.4 0 0 0 -1.12'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3ClinearGradient id='ls' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.34'/%3E%3Cstop offset='.18' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='.9' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.06'/%3E%3C/linearGradient%3E%3ClinearGradient id='lt' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.45'/%3E%3Cstop offset='.08' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='.86' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.4'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 0H100V350H0Z' filter='url(%23rl)'/%3E%3Cpath d='M0 0H100V350H0Z' filter='url(%23pt)'/%3E%3Cpath d='M0 0H100V350H0Z' filter='url(%23st)'/%3E%3Cg%3E%3Crect x='16' y='22' width='62' height='186' fill='%23000' fill-opacity='.2'/%3E%3Crect x='16' y='242' width='62' height='88' fill='%23000' fill-opacity='.2'/%3E%3Crect x='8.5' y='9.5' width='83' height='331' fill='none' stroke='%23061c1c' stroke-width='.9'/%3E%3Cg fill='none' stroke='url(%23gd)' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='4.5' y='5.5' width='91' height='339' stroke-width='2'/%3E%3Crect x='16' y='22' width='62' height='186' stroke-width='1.6'/%3E%3Crect x='16' y='242' width='62' height='88' stroke-width='1.6'/%3E%3Cpath d='M24 200V78Q47 32 70 78V200' stroke-width='2.3'/%3E%3Cpath d='M30 200V86Q47 52 64 86V200' stroke-width='1'/%3E%3Cpath d='M47 198V118' stroke-width='1.7'/%3E%3Cg stroke-width='1.5'%3E%3Cpath d='M47 182C39 177 34 168 34 158M47 182C55 177 60 168 60 158'/%3E%3Cpath d='M47 162C39 157 34 148 34 138M47 162C55 157 60 148 60 138'/%3E%3Cpath d='M47 142C39 137 34 128 34 118M47 142C55 137 60 128 60 118'/%3E%3C/g%3E%3Cpath d='M47 250L72 286L47 322L22 286Z' stroke-width='1.9'/%3E%3Cpath d='M47 264L62 286L47 308L32 286Z' stroke-width='1'/%3E%3Cg stroke-width='1.1'%3E%3Cpath d='M18 244l12 4M18 244l9 9M18 244l4 12'/%3E%3Cpath d='M76 244l-12 4M76 244l-9 9M76 244l-4 12'/%3E%3Cpath d='M18 328l12 -4M18 328l9 -9M18 328l4 -12'/%3E%3Cpath d='M76 328l-12 -4M76 328l-9 -9M76 328l-4 -12'/%3E%3C/g%3E%3C/g%3E%3Ccircle cx='47' cy='92' r='10.5' fill='%230a2a29' stroke='url(%23gd)' stroke-width='2'/%3E%3Ccircle cx='47' cy='92' r='5' fill='url(%23gd)'/%3E%3Ccircle cx='47' cy='113' r='3.6' fill='url(%23gd)'/%3E%3Ccircle cx='47' cy='286' r='4.5' fill='url(%23gd)'/%3E%3Crect x='10' y='216' width='74' height='16' fill='url(%23gd)'/%3E%3Cpath d='M12 228L18 220L24 228L30 220L36 228L42 220L48 228L54 220L60 228L66 220L72 228L78 220L84 228' fill='none' stroke='%233a2a0c' stroke-opacity='.7' stroke-width='1.4'/%3E%3Crect x='4' y='336' width='92' height='10' fill='%23150f06' fill-opacity='.75'/%3E%3Cpath d='M4 336H96' stroke='url(%23gd)' stroke-width='1.2'/%3E%3Crect x='86.6' y='141' width='7' height='112' rx='3.5' fill='%23000' fill-opacity='.5'/%3E%3Crect x='84.6' y='138' width='6.6' height='112' rx='3.3' fill='url(%23gd)'/%3E%3Cpath d='M86.4 143V245' stroke='%23fff6d4' stroke-opacity='.75' stroke-width='1'/%3E%3Crect x='82' y='133.5' width='12' height='7.5' rx='1.5' fill='url(%23gd)'/%3E%3Crect x='82' y='247' width='12' height='7.5' rx='1.5' fill='url(%23gd)'/%3E%3Crect x='98.4' width='1.6' height='350' fill='%23020a0a'/%3E%3Crect width='100' height='350' fill='url(%23ls)'/%3E%3Crect width='100' height='350' fill='url(%23lt)'/%3E%3C/g%3E%3C/svg%3E"); }
.leaf--r { transform-origin: right center; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 350' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='gd' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='100' y2='350'%3E%3Cstop offset='0' stop-color='%23f6e2a0'/%3E%3Cstop offset='.22' stop-color='%23c39a43'/%3E%3Cstop offset='.45' stop-color='%23f0d488'/%3E%3Cstop offset='.7' stop-color='%23a98232'/%3E%3Cstop offset='1' stop-color='%23ecd083'/%3E%3C/linearGradient%3E%3Cfilter id='rl' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='2' seed='4' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='1.3' diffuseConstant='1.1' lighting-color='%234c988f'%3E%3CfeDistantLight azimuth='235' elevation='60'/%3E%3C/feDiffuseLighting%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='pt' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.05 .03' numOctaves='4' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .62 0 0 0 0 .88 0 0 0 0 .8 2 0 0 0 -.9'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='st' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.14 .007' numOctaves='3' seed='11'/%3E%3CfeColorMatrix values='0 0 0 0 .02 0 0 0 0 .09 0 0 0 0 .09 2.4 0 0 0 -1.12'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3ClinearGradient id='ls' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.34'/%3E%3Cstop offset='.18' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='.9' stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.06'/%3E%3C/linearGradient%3E%3ClinearGradient id='lt' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.45'/%3E%3Cstop offset='.08' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='.86' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.4'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 0H100V350H0Z' filter='url(%23rl)'/%3E%3Cpath d='M0 0H100V350H0Z' filter='url(%23pt)'/%3E%3Cpath d='M0 0H100V350H0Z' filter='url(%23st)'/%3E%3Cg transform='translate(100 0) scale(-1 1)'%3E%3Crect x='16' y='22' width='62' height='186' fill='%23000' fill-opacity='.2'/%3E%3Crect x='16' y='242' width='62' height='88' fill='%23000' fill-opacity='.2'/%3E%3Crect x='8.5' y='9.5' width='83' height='331' fill='none' stroke='%23061c1c' stroke-width='.9'/%3E%3Cg fill='none' stroke='url(%23gd)' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='4.5' y='5.5' width='91' height='339' stroke-width='2'/%3E%3Crect x='16' y='22' width='62' height='186' stroke-width='1.6'/%3E%3Crect x='16' y='242' width='62' height='88' stroke-width='1.6'/%3E%3Cpath d='M24 200V78Q47 32 70 78V200' stroke-width='2.3'/%3E%3Cpath d='M30 200V86Q47 52 64 86V200' stroke-width='1'/%3E%3Cpath d='M47 198V118' stroke-width='1.7'/%3E%3Cg stroke-width='1.5'%3E%3Cpath d='M47 182C39 177 34 168 34 158M47 182C55 177 60 168 60 158'/%3E%3Cpath d='M47 162C39 157 34 148 34 138M47 162C55 157 60 148 60 138'/%3E%3Cpath d='M47 142C39 137 34 128 34 118M47 142C55 137 60 128 60 118'/%3E%3C/g%3E%3Cpath d='M47 250L72 286L47 322L22 286Z' stroke-width='1.9'/%3E%3Cpath d='M47 264L62 286L47 308L32 286Z' stroke-width='1'/%3E%3Cg stroke-width='1.1'%3E%3Cpath d='M18 244l12 4M18 244l9 9M18 244l4 12'/%3E%3Cpath d='M76 244l-12 4M76 244l-9 9M76 244l-4 12'/%3E%3Cpath d='M18 328l12 -4M18 328l9 -9M18 328l4 -12'/%3E%3Cpath d='M76 328l-12 -4M76 328l-9 -9M76 328l-4 -12'/%3E%3C/g%3E%3C/g%3E%3Ccircle cx='47' cy='92' r='10.5' fill='%230a2a29' stroke='url(%23gd)' stroke-width='2'/%3E%3Ccircle cx='47' cy='92' r='5' fill='url(%23gd)'/%3E%3Ccircle cx='47' cy='113' r='3.6' fill='url(%23gd)'/%3E%3Ccircle cx='47' cy='286' r='4.5' fill='url(%23gd)'/%3E%3Crect x='10' y='216' width='74' height='16' fill='url(%23gd)'/%3E%3Cpath d='M12 228L18 220L24 228L30 220L36 228L42 220L48 228L54 220L60 228L66 220L72 228L78 220L84 228' fill='none' stroke='%233a2a0c' stroke-opacity='.7' stroke-width='1.4'/%3E%3Crect x='4' y='336' width='92' height='10' fill='%23150f06' fill-opacity='.75'/%3E%3Cpath d='M4 336H96' stroke='url(%23gd)' stroke-width='1.2'/%3E%3Crect x='86.6' y='141' width='7' height='112' rx='3.5' fill='%23000' fill-opacity='.5'/%3E%3Crect x='84.6' y='138' width='6.6' height='112' rx='3.3' fill='url(%23gd)'/%3E%3Cpath d='M86.4 143V245' stroke='%23fff6d4' stroke-opacity='.75' stroke-width='1'/%3E%3Crect x='82' y='133.5' width='12' height='7.5' rx='1.5' fill='url(%23gd)'/%3E%3Crect x='82' y='247' width='12' height='7.5' rx='1.5' fill='url(%23gd)'/%3E%3Crect x='98.4' width='1.6' height='350' fill='%23020a0a'/%3E%3Crect width='100' height='350' fill='url(%23ls)'/%3E%3Crect width='100' height='350' fill='url(%23lt)'/%3E%3C/g%3E%3C/svg%3E"); }

/* The question, as a plaque hung across the doors */
.gate__panel {
  position: absolute;
  left: 8px;
  right: 8px;
  top: 9%;
  padding: 16px 10px 10px;
  text-align: center;
  background: var(--card);
  border: 1px solid var(--gold);
  border-radius: var(--radius);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.65), 0 0 0 3px rgba(18, 13, 22, 0.85), 0 0 0 4px rgba(201, 169, 97, 0.55);
  transition: opacity 0.25s ease;
}
.gate__panel .wordmark { font-size: 1rem; color: var(--gold); }
.gate__rule { width: 44px; height: 1px; margin: 10px auto 11px; background: var(--gold); border: 0; }
.gate__panel h1 {
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  font-size: 1.375rem;
  line-height: 1.2;
}
.gate__note { margin-top: 7px; color: var(--muted); font-size: 0.9375rem; line-height: 1.35; }
.gate__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.gate__demo { margin-top: 9px; font-size: 0.8125rem; line-height: 1.3; color: var(--muted); }

/* Doormat, delivery bag and plant: painted with SVG lighting filters */
.mat {
  left: 50%;
  top: calc(var(--floor) + 4px);
  width: calc(var(--dw) * 1.12);
  height: calc(var(--dw) * 0.3);
  margin-left: calc(var(--dw) * -0.56);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 440 128' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter id='c' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1 .55' numOctaves='2' seed='5' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='5' diffuseConstant='1.15' lighting-color='%238f6c44'%3E%3CfeDistantLight azimuth='270' elevation='42'/%3E%3C/feDiffuseLighting%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='b' x='-10%25' y='-60%25' width='120%25' height='220%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3ClinearGradient id='l' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23ffdca6' stop-opacity='.42'/%3E%3Cstop offset='.45' stop-color='%23ffdca6' stop-opacity='.06'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.28'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M8 116h424l-6 8H14z' fill='%23000' fill-opacity='.7' filter='url(%23b)'/%3E%3Cpath d='M30 6h380l26 106H4z' fill='%2317100a'/%3E%3Cpath d='M36 10h368l23 97H13z' filter='url(%23c)'/%3E%3Cpath d='M36 10h368l23 97H13z' fill='url(%23l)'/%3E%3Cpath d='M52 20h336l18 76H34z' fill='none' stroke='%23120b06' stroke-opacity='.6' stroke-width='4'/%3E%3Cpath d='M4 112h432l-1 7H5z' fill='%230e0906'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.mat,
.bag,
.plant { pointer-events: none; }
.bag,
.plant {
  background-position: center bottom;
  background-size: contain;
  background-repeat: no-repeat;
}
.bag {
  left: calc(50% - var(--dw) * 0.43);
  bottom: calc(100% - var(--floor) - var(--dw) * 0.2);
  width: calc(var(--dw) * 0.46);
  aspect-ratio: 260 / 330;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 330'%3E%3Cdefs%3E%3Cfilter id='p' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.03 .042' numOctaves='4' seed='6' result='n'/%3E%3CfeDiffuseLighting in='n' surfaceScale='6' diffuseConstant='1.1' lighting-color='%23cfa069'%3E%3CfeDistantLight azimuth='225' elevation='54'/%3E%3C/feDiffuseLighting%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='f' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='2'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .12 0 0 0 0 .05 .9 0 0 0 -.42'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='b' x='-20%25' y='-200%25' width='140%25' height='500%25'%3E%3CfeGaussianBlur stdDeviation='7'/%3E%3C/filter%3E%3Cfilter id='s' x='-10%25' y='-50%25' width='120%25' height='200%25'%3E%3CfeGaussianBlur stdDeviation='2.2'/%3E%3C/filter%3E%3ClinearGradient id='h' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23fff' stop-opacity='.1'/%3E%3Cstop offset='.5' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.3'/%3E%3C/linearGradient%3E%3ClinearGradient id='d' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='0'/%3E%3Cstop offset='.72' stop-color='%23000' stop-opacity='.06'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.5'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='134' cy='303' rx='108' ry='10' fill='%23000' fill-opacity='.75' filter='url(%23b)'/%3E%3Cpath d='M42 80L70 88L63 302L33 300Z' filter='url(%23p)'/%3E%3Cpath d='M42 80L70 88L63 302L33 300Z' fill='%23000' fill-opacity='.42'/%3E%3Cpath d='M70 88L228 80Q232 190 234 302L63 302Z' filter='url(%23p)'/%3E%3Cpath d='M70 88L228 80Q232 190 234 302L63 302Z' fill='url(%23h)'/%3E%3Cpath d='M33 300L42 80L70 88L228 80L234 302Z' fill='url(%23d)'/%3E%3Cpath d='M150 92Q146 200 149 300' fill='none' stroke='%235a3c1c' stroke-opacity='.3' stroke-width='1.4'/%3E%3Cpath d='M152 92Q148 200 151 300' fill='none' stroke='%23ffe2b4' stroke-opacity='.16' stroke-width='1.2'/%3E%3Cpath d='M72 178L230 170' fill='none' stroke='%235a3c1c' stroke-opacity='.22' stroke-width='1.2'/%3E%3Cpath d='M68 98L228 90L229 104L67 113Z' fill='%23000' fill-opacity='.5' filter='url(%23s)'/%3E%3Cpath d='M46 30L46 30L56 25L66 30L76 25L86 30L96 25L106 30L116 25L126 30L136 25L146 30L156 25L166 30L176 25L186 30L196 25L206 30L216 25L226 30L228 82L70 91L42 82Z' filter='url(%23p)'/%3E%3Cpath d='M46 30L46 30L56 25L66 30L76 25L86 30L96 25L106 30L116 25L126 30L136 25L146 30L156 25L166 30L176 25L186 30L196 25L206 30L216 25L226 30L228 82L70 91L42 82Z' fill='%23ffe2b4' fill-opacity='.1'/%3E%3Cpath d='M42 82L70 91L70 60L44 54Z' fill='%23000' fill-opacity='.3'/%3E%3Cpath d='M70 60L228 54' fill='none' stroke='%235a3c1c' stroke-opacity='.35' stroke-width='1.3'/%3E%3Cpath d='M33 300L42 80L70 88L228 80L234 302ZM46 30L46 30L56 25L66 30L76 25L86 30L96 25L106 30L116 25L126 30L136 25L146 30L156 25L166 30L176 25L186 30L196 25L206 30L216 25L226 30L228 82L70 91L42 82Z' filter='url(%23f)'/%3E%3Cpath d='M46 30L46 30L56 25L66 30L76 25L86 30L96 25L106 30L116 25L126 30L136 25L146 30L156 25L166 30L176 25L186 30L196 25L206 30L216 25L226 30' fill='none' stroke='%23ffdca6' stroke-opacity='.6' stroke-width='1.5'/%3E%3Cpath d='M42 80L33 300' fill='none' stroke='%23ffdca6' stroke-opacity='.35' stroke-width='1.6'/%3E%3C/svg%3E");
}
.plant {
  left: calc(50% + var(--dw) * 0.56);
  bottom: calc(100% - var(--floor) - var(--dw) * 0.1);
  width: min(calc(var(--dw) * 0.5), calc(50vw - var(--dw) * 0.56 + 6px));
  aspect-ratio: 200 / 480;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 480'%3E%3Cdefs%3E%3ClinearGradient id='lf' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%235c9a5e'/%3E%3Cstop offset='1' stop-color='%232f6238'/%3E%3C/linearGradient%3E%3ClinearGradient id='lv' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.28'/%3E%3Cstop offset='.45' stop-color='%23eaffd0' stop-opacity='.12'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.22'/%3E%3C/linearGradient%3E%3Cfilter id='bd' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='turbulence' baseFrequency='.016 .075' numOctaves='2' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 .04 0 0 0 0 .17 0 0 0 0 .08 4.2 0 0 0 -.8'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3ClinearGradient id='pt' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%236b3c28'/%3E%3Cstop offset='.28' stop-color='%23b56e4c'/%3E%3Cstop offset='.5' stop-color='%23a05d3f'/%3E%3Cstop offset='1' stop-color='%234f2a1b'/%3E%3C/linearGradient%3E%3ClinearGradient id='pd' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23000' stop-opacity='.05'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='.42'/%3E%3C/linearGradient%3E%3ClinearGradient id='pb' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23ffdca6' stop-opacity='.5'/%3E%3Cstop offset='.14' stop-color='%23ffdca6' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cfilter id='pn' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 .1 0 0 0 0 .05 0 0 0 0 .03 1 0 0 0 -.45'/%3E%3CfeComposite in2='SourceAlpha' operator='in'/%3E%3C/filter%3E%3Cfilter id='b' x='-30%25' y='-300%25' width='160%25' height='700%25'%3E%3CfeGaussianBlur stdDeviation='7'/%3E%3C/filter%3E%3C/defs%3E%3Cellipse cx='106' cy='456' rx='82' ry='9' fill='%23000' fill-opacity='.8' filter='url(%23b)'/%3E%3Cpath d='M44 346L54 448Q100 462 146 448L156 346Z' fill='url(%23pt)'/%3E%3Cpath d='M44 346L54 448Q100 462 146 448L156 346Z' fill='url(%23pd)'/%3E%3Cpath d='M44 346L54 448Q100 462 146 448L156 346Z' filter='url(%23pn)'/%3E%3Cellipse cx='100' cy='338' rx='61' ry='12' fill='%2355301f'/%3E%3Cellipse cx='100' cy='339' rx='53' ry='9' fill='%2317100b'/%3E%3Cpath d='M92 338C84 240 86 120 100 30C114 120 118 240 110 338Z' fill='url(%23lf)'/%3E%3Cpath d='M92 338C84 240 86 120 100 30C114 120 118 240 110 338Z' filter='url(%23bd)'/%3E%3Cpath d='M92 338C84 240 86 120 100 30C114 120 118 240 110 338Z' fill='url(%23lv)'/%3E%3Cpath d='M92 338C84 240 86 120 100 30C114 120 118 240 110 338Z' fill='none' stroke='%23c9cc63' stroke-opacity='.85' stroke-width='2.1' stroke-linejoin='round'/%3E%3Cpath d='M92 338C84 240 86 120 100 30C114 120 118 240 110 338Z' fill='%23000' fill-opacity='0.28'/%3E%3Cpath d='M78 338C60 262 40 172 34 90C58 162 88 252 99 338Z' fill='url(%23lf)'/%3E%3Cpath d='M78 338C60 262 40 172 34 90C58 162 88 252 99 338Z' filter='url(%23bd)'/%3E%3Cpath d='M78 338C60 262 40 172 34 90C58 162 88 252 99 338Z' fill='url(%23lv)'/%3E%3Cpath d='M78 338C60 262 40 172 34 90C58 162 88 252 99 338Z' fill='none' stroke='%23c9cc63' stroke-opacity='.85' stroke-width='2.1' stroke-linejoin='round'/%3E%3Cpath d='M78 338C60 262 40 172 34 90C58 162 88 252 99 338Z' fill='%23000' fill-opacity='0.24'/%3E%3Cpath d='M104 338C116 252 146 152 168 80C163 172 141 264 124 338Z' fill='url(%23lf)'/%3E%3Cpath d='M104 338C116 252 146 152 168 80C163 172 141 264 124 338Z' filter='url(%23bd)'/%3E%3Cpath d='M104 338C116 252 146 152 168 80C163 172 141 264 124 338Z' fill='url(%23lv)'/%3E%3Cpath d='M104 338C116 252 146 152 168 80C163 172 141 264 124 338Z' fill='none' stroke='%23c9cc63' stroke-opacity='.85' stroke-width='2.1' stroke-linejoin='round'/%3E%3Cpath d='M104 338C116 252 146 152 168 80C163 172 141 264 124 338Z' fill='%23000' fill-opacity='0.2'/%3E%3Cpath d='M70 340C52 292 30 232 18 170C46 222 78 282 93 340Z' fill='url(%23lf)'/%3E%3Cpath d='M70 340C52 292 30 232 18 170C46 222 78 282 93 340Z' filter='url(%23bd)'/%3E%3Cpath d='M70 340C52 292 30 232 18 170C46 222 78 282 93 340Z' fill='url(%23lv)'/%3E%3Cpath d='M70 340C52 292 30 232 18 170C46 222 78 282 93 340Z' fill='none' stroke='%23c9cc63' stroke-opacity='.85' stroke-width='2.1' stroke-linejoin='round'/%3E%3Cpath d='M70 340C52 292 30 232 18 170C46 222 78 282 93 340Z' fill='%23000' fill-opacity='0.06'/%3E%3Cpath d='M112 340C124 292 152 222 182 160C171 232 149 294 133 340Z' fill='url(%23lf)'/%3E%3Cpath d='M112 340C124 292 152 222 182 160C171 232 149 294 133 340Z' filter='url(%23bd)'/%3E%3Cpath d='M112 340C124 292 152 222 182 160C171 232 149 294 133 340Z' fill='url(%23lv)'/%3E%3Cpath d='M112 340C124 292 152 222 182 160C171 232 149 294 133 340Z' fill='none' stroke='%23c9cc63' stroke-opacity='.85' stroke-width='2.1' stroke-linejoin='round'/%3E%3Cpath d='M112 340C124 292 152 222 182 160C171 232 149 294 133 340Z' fill='%23000' fill-opacity='0.04'/%3E%3Cpath d='M86 340C78 272 72 192 76 110C93 192 105 272 107 340Z' fill='url(%23lf)'/%3E%3Cpath d='M86 340C78 272 72 192 76 110C93 192 105 272 107 340Z' filter='url(%23bd)'/%3E%3Cpath d='M86 340C78 272 72 192 76 110C93 192 105 272 107 340Z' fill='url(%23lv)'/%3E%3Cpath d='M86 340C78 272 72 192 76 110C93 192 105 272 107 340Z' fill='none' stroke='%23c9cc63' stroke-opacity='.85' stroke-width='2.1' stroke-linejoin='round'/%3E%3Cpath d='M100 340C104 302 116 262 130 230C130 270 124 306 119 340Z' fill='url(%23lf)'/%3E%3Cpath d='M100 340C104 302 116 262 130 230C130 270 124 306 119 340Z' filter='url(%23bd)'/%3E%3Cpath d='M100 340C104 302 116 262 130 230C130 270 124 306 119 340Z' fill='url(%23lv)'/%3E%3Cpath d='M100 340C104 302 116 262 130 230C130 270 124 306 119 340Z' fill='none' stroke='%23c9cc63' stroke-opacity='.85' stroke-width='2.1' stroke-linejoin='round'/%3E%3Cpath d='M39 338A61 12 0 0 0 161 338L160 353A60 12 0 0 1 40 353Z' fill='url(%23pt)'/%3E%3Cpath d='M39 338A61 12 0 0 0 161 338L160 353A60 12 0 0 1 40 353Z' filter='url(%23pn)'/%3E%3Cpath d='M39 338A61 12 0 0 0 161 338' fill='none' stroke='%23e2a37f' stroke-opacity='.55' stroke-width='1.4'/%3E%3Cpath d='M40 353A60 12 0 0 0 160 353L160 357A60 12 0 0 1 40 357Z' fill='%23000' fill-opacity='.35'/%3E%3Cpath d='M39 338L40 353L54 448Q100 462 146 448L160 353L161 338Z' fill='url(%23pb)'/%3E%3C/svg%3E");
}

/* Opening: the plaque fades, both doors swing inward, then we step through */
.gate.is-open { pointer-events: none; }
.gate.is-open .gate__panel { opacity: 0; }
.gate.is-open .leaf--l { transform: rotateY(84deg); filter: brightness(0.55); }
.gate.is-open .leaf--r { transform: rotateY(-84deg); filter: brightness(0.55); }
.gate.is-open .doorway__light { opacity: 1; }
.gate.is-open .scene {
  transform: scale(3.4);
  opacity: 0;
  transition: transform 0.9s cubic-bezier(0.55, 0, 0.85, 0.45) 0.5s, opacity 0.45s ease-in 0.95s;
}

/* ---------- Buttons ------------------------------------------------------ */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 10px 14px;
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  color: #17121a;
  background: var(--gold);
  border: 1px solid var(--gold);
  border-radius: var(--radius);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.btn:hover { background: #d8bb78; }
.btn:active { background: #b89850; }

.btn--ghost { color: var(--cream); background: transparent; border-color: var(--gold-soft); }
.btn--ghost:hover { background: rgba(201, 169, 97, 0.12); }
.btn--ghost:active { background: rgba(201, 169, 97, 0.2); }

.btn--lg { min-height: 56px; font-size: 1.0625rem; }

.btn--disabled,
.btn--disabled:hover {
  color: var(--muted);
  background: transparent;
  border-color: rgba(185, 173, 184, 0.35);
  cursor: not-allowed;
}

/* ---------- Announcement strip ------------------------------------------ */

.banner {
  display: block;
  padding: calc(10px + env(safe-area-inset-top)) 16px 10px;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  color: #17121a;
  background: var(--gold);
}
.banner:hover { background: #d8bb78; }
.banner:focus-visible { outline-offset: -4px; outline-color: #17121a; box-shadow: none; }

/* ---------- Header ------------------------------------------------------- */

.site-header {
  padding: 34px 16px 26px;
  text-align: center;
  background: rgba(18, 13, 22, 0.93);
  border-bottom: 1px solid var(--gold-soft);
}
.site-header .wordmark { font-size: clamp(2.125rem, 10vw, 4rem); }
.site-header .wordmark:focus-visible { outline-offset: 8px; }
.site-header .wordmark a { text-decoration: none; }
.tagline {
  margin-top: 10px;
  font-size: 0.875rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}
.site-header__rule { width: 72px; height: 1px; margin: 18px auto; background: var(--gold); border: 0; }
.facts { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-size: 1rem; color: var(--cream); }
.facts li { display: inline-flex; align-items: center; gap: 8px; }
.facts .label { color: var(--muted); }

.status { font-weight: 600; }
.status__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--muted); }
.status.is-open .status__dot { background: #9fc29a; box-shadow: 0 0 0 3px rgba(159, 194, 154, 0.2); }
.status.is-closed .status__dot { background: transparent; border: 2px solid var(--rose); }

/* ---------- Hero photo slot --------------------------------------------- */

.hero { max-width: var(--wrap); margin: 0 auto; padding: 16px; }
.hero__frame {
  margin: 0;
  padding: 6px;
  background: var(--card);
  border: 1px solid var(--gold-soft);
  border-radius: var(--radius);
}
.hero__frame img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 1px;
  filter: saturate(0.74) contrast(0.92) sepia(0.16) brightness(0.96);
}

/* ---------- Site navigation ----------------------------------------------- */

.mainnav { background: rgba(18, 13, 22, 0.96); border-bottom: 1px solid var(--gold-soft); }
.mainnav ul { display: flex; justify-content: center; max-width: var(--wrap); margin: 0 auto; padding: 0 6px; }
.mainnav li { flex: 1 1 0; max-width: 220px; }
.mainnav a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.mainnav a:hover { color: var(--cream); }
.mainnav a[aria-current="true"] { color: var(--gold); border-bottom-color: var(--gold); }
.mainnav a:focus-visible { outline-offset: -4px; box-shadow: none; }

/* ---------- Socials and media pages -------------------------------------- */

.social__tag { margin-top: 14px; font-family: var(--serif); font-size: 1.75rem; line-height: 1.2; text-align: center; color: var(--gold); overflow-wrap: anywhere; }
.social__links { display: grid; gap: 10px; margin-top: 20px; }
.social__links .btn { width: 100%; }
.social__note { margin-top: 6px; font-size: 0.9375rem; text-align: center; color: var(--muted); }

.media .menu__head { margin-top: 0; }
.gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.gallery__item { margin: 0; background: var(--card); border: 1px solid rgba(201, 169, 97, 0.28); border-radius: var(--radius); overflow: hidden; }
.gallery__item img,
.gallery__item video { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; background: var(--card-2); }
.gallery__item figcaption { padding: 8px 10px 10px; font-size: 0.9375rem; color: var(--muted); }

@media (min-width: 640px) {
  .gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
}

/* ---------- Category tabs ------------------------------------------------ */

.tabs {
  position: sticky;
  top: 0;
  z-index: 20;
  padding-top: env(safe-area-inset-top);
  background: rgba(18, 13, 22, 0.96);
  border-bottom: 1px solid var(--gold-soft);
}
.tabs__list {
  display: flex;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 6px;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.tabs__list::-webkit-scrollbar { display: none; }
.tabs__list li { flex: 0 0 auto; }
.tabs a {
  display: flex;
  align-items: center;
  min-height: 54px;
  padding: 0 12px;
  font-size: 0.9375rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.tabs a:hover { color: var(--cream); }
.tabs a[aria-current="true"] { color: var(--cream); border-bottom-color: var(--gold); }
.tabs a:focus-visible { outline-offset: -4px; box-shadow: none; }

/* ---------- Menu --------------------------------------------------------- */

.menu { max-width: var(--wrap); margin: 0 auto; padding: 16px 16px 28px; }

.controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
  padding: 12px;
  background: rgba(24, 19, 28, 0.94);
  border: 1px solid rgba(201, 169, 97, 0.28);
  border-radius: var(--radius);
}
.search { flex: 1 1 200px; }
.search input {
  width: 100%;
  min-height: 48px;
  padding: 10px 12px;
  font: inherit;
  font-size: 1rem; /* 16px+ prevents iOS zoom on focus */
  color: var(--cream);
  background: var(--ink);
  border: 1px solid rgba(185, 173, 184, 0.5);
  border-radius: var(--radius);
  -webkit-appearance: none;
  appearance: none;
}
.search input::placeholder { color: var(--muted); opacity: 1; }
.search input:focus-visible { border-color: var(--gold); outline-offset: 2px; }

.toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  font-size: 1rem;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.toggle input {
  -webkit-appearance: none;
  appearance: none;
  flex: none;
  width: 24px;
  height: 24px;
  margin: 0;
  background: var(--ink);
  border: 1px solid var(--gold);
  border-radius: var(--radius);
  cursor: pointer;
}
.toggle input:checked {
  background:
    linear-gradient(var(--gold), var(--gold)) center / 12px 12px no-repeat,
    var(--ink);
}

.menu__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 20px 0 12px;
  padding: 10px 12px;
  background: rgba(24, 19, 28, 0.94);
  border-left: 1px solid var(--gold);
  border-radius: var(--radius);
}
.menu__head h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  font-size: 1.75rem;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.menu__count { color: var(--muted); font-size: 1rem; white-space: nowrap; }
.menu__note {
  margin: -2px 0 12px;
  padding: 10px 12px;
  font-weight: 600;
  text-align: center;
  color: var(--gold);
  background: rgba(24, 19, 28, 0.94);
  border: 1px solid var(--gold-soft);
  border-radius: var(--radius);
}

.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--card);
  border: 1px solid rgba(201, 169, 97, 0.28);
  border-radius: var(--radius);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
  overflow: hidden;
}
.card__media { position: relative; background: var(--card-2); border-bottom: 1px solid rgba(201, 169, 97, 0.28); }
.card__img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
video.card__img { display: block; background: #000; }

/* Product with a video: video first, then the picture, swipeable */
.card__gallery { position: relative; }
.card__slides { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.card__slides::-webkit-scrollbar { display: none; }
.card__slides > * { flex: 0 0 100%; scroll-snap-align: start; }
.card__dots { position: absolute; top: 4px; right: 4px; display: flex; padding: 0 2px; background: rgba(18, 13, 22, 0.7); border-radius: 12px; }
.card__dots button { width: 24px; height: 24px; padding: 0; background: none; border: 0; cursor: pointer; }
.card__dots button::before { content: ""; display: block; width: 8px; height: 8px; margin: auto; border-radius: 50%; background: rgba(242, 232, 218, 0.55); }
.card__dots button[aria-current="true"]::before { background: var(--gold); }
.card__dots button:focus-visible { outline-offset: -2px; box-shadow: none; border-radius: 50%; }
.card__img--empty {
  background:
    linear-gradient(180deg, rgba(18, 13, 22, 0) 62%, rgba(18, 13, 22, 0.8) 62%),
    linear-gradient(180deg, #2c2338, #6b4a68 45%, #b98379 62%);
}
.card__body { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 12px 10px 10px; }
.card__name { font-size: 1.0625rem; font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
.card__size { color: var(--muted); font-size: 0.9375rem; line-height: 1.35; }
.card__price { margin-top: 4px; font-family: var(--serif); font-size: 1.375rem; line-height: 1.2; color: var(--gold); }
.card__action { margin-top: auto; padding-top: 10px; }
.card__action .btn { width: 100%; }

/* Products sold in several sizes: one order button per size */
.card__options { display: grid; gap: 8px; margin-top: auto; padding-top: 8px; }
.btn--option { display: flex; justify-content: space-between; gap: 8px; width: 100%; }
.btn--option span:last-child { font-family: var(--serif); font-size: 1.125rem; font-weight: 400; letter-spacing: 0; }

.badge {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 4px 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cream);
  background: var(--ink);
  border: 1px solid var(--muted);
  border-radius: var(--radius);
}

/* Out of stock: dim the image and mute the text (text colours stay AA). */
.card.is-out { border-color: rgba(185, 173, 184, 0.22); box-shadow: none; }
.card.is-out .card__img { opacity: 0.38; filter: grayscale(0.7); }
.card.is-out .card__name,
.card.is-out .card__price { color: var(--muted); font-weight: 400; }

.notice {
  padding: 28px 18px;
  text-align: center;
  background: var(--card);
  border: 1px solid rgba(201, 169, 97, 0.28);
  border-radius: var(--radius);
}
.notice h3 { font-family: var(--serif); font-weight: 400; font-style: italic; font-size: 1.375rem; margin-bottom: 8px; }
.notice p { color: var(--muted); }
.notice a { color: var(--gold); }

/* ---------- First-order ID verification view ---------------------------- */

.facts a { color: var(--gold); text-underline-offset: 4px; }
.facts a:hover { color: var(--cream); }

.verify {
  max-width: 40rem;
  margin: 0 auto;
  padding: 26px 18px 22px;
  background: var(--card);
  border: 1px solid var(--gold-soft);
  border-radius: var(--radius);
}
.verify h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  font-size: 2rem;
  line-height: 1.15;
  text-align: center;
}
.verify__intro { margin-top: 10px; text-align: center; color: var(--muted); }
.verify__steps { margin: 20px 0 0; padding: 0; list-style: none; counter-reset: step; }
.verify__steps li {
  position: relative;
  min-height: 44px;
  padding: 10px 0 10px 54px;
  border-top: 1px solid rgba(201, 169, 97, 0.28);
  counter-increment: step;
}
.verify__steps li::before {
  content: counter(step);
  position: absolute;
  left: 6px;
  top: 6px;
  width: 34px;
  font-family: var(--serif);
  font-size: 1.75rem;
  line-height: 1.2;
  text-align: center;
  color: var(--gold);
}
.verify__note {
  margin-top: 4px;
  padding-top: 14px;
  font-size: 0.9375rem;
  color: var(--muted);
  border-top: 1px solid rgba(201, 169, 97, 0.28);
}
.verify__actions { display: grid; gap: 10px; margin-top: 20px; }
@media (min-width: 640px) {
  .verify { padding: 34px 32px 28px; }
  .verify__actions { grid-template-columns: 1fr 1fr; }
  .verify__actions > :first-child:nth-last-child(3) { grid-column: 1 / -1; }
}

/* ---------- Footer ------------------------------------------------------- */

.site-footer {
  padding: 28px 16px calc(var(--bar-h) + 28px + env(safe-area-inset-bottom));
  background: var(--ink);
  border-top: 1px solid var(--gold-soft);
}
.site-footer__inner { max-width: 46rem; margin: 0 auto; text-align: center; }
.site-footer .wordmark { font-size: 1.25rem; color: var(--gold); }
.site-footer p { margin-top: 14px; font-size: 1rem; color: var(--muted); }
.site-footer .adults { color: var(--cream); font-weight: 600; }
.site-footer .demo { color: var(--gold); }
.site-footer .warning {
  padding: 14px;
  text-align: left;
  font-size: 0.9375rem;
  color: var(--cream);
  border: 1px solid var(--gold-soft);
  border-radius: var(--radius);
}
.site-footer .license { letter-spacing: 0.06em; }

/* ---------- Sticky "Text us" bar ---------------------------------------- */

.textbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  padding: 10px max(16px, env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-right));
  background: rgba(18, 13, 22, 0.96);
  border-top: 1px solid var(--gold-soft);
}
.textbar .btn { display: flex; width: 100%; max-width: 560px; margin: 0 auto; gap: 10px; }
.textbar .btn span { font-weight: 400; }

/* ---------- Larger screens ---------------------------------------------- */

@media (min-width: 640px) {
  .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .card__body { padding: 14px; }
  .tabs__list { justify-content: center; }
  .tabs a { padding: 0 18px; }
  .menu { padding: 20px 24px 40px; }
  .hero { padding: 20px 24px; }
}

@media (min-width: 960px) {
  .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
}

/* Shorter phones: drop the small print so the plaque clears the bag */
@media (max-height: 720px) {
  .gate__note { display: none; }
  .gate__panel { top: 7%; }
}

/* Short screens (e.g. landscape phones): the question floats over the scene */
@media (max-height: 600px) {
  .scene { --dw: min(40vw, 27vh, 300px); }
  .plant, .bag, .mat { display: none; }
  .gate__panel { position: fixed; left: 50%; right: auto; top: 50%; width: min(92vw, 360px); transform: translate(-50%, -50%); }
}

/* ---------- Reduced motion: simple fade instead of the door swing -------- */

@media (prefers-reduced-motion: reduce) {
  .leaf, .doorway__light, .gate__panel { transition: none; will-change: auto; }
  .gate.is-open .leaf--l,
  .gate.is-open .leaf--r { transform: none; filter: none; }
  .gate.is-open .gate__panel { opacity: 1; }
  .gate.is-open .doorway__light { opacity: 0; }
  .gate { transition: opacity 0.4s ease; }
  .gate.is-open { opacity: 0; }
  .gate.is-open .scene { transform: none; opacity: 1; transition: none; }
  .btn { transition: none; }
}
