:root{
  --black:#080606;--black2:#120b0b;--red:#c61d24;--red2:#7d0d12;
  --cream:#f2e5d0;--cream2:#dcc9aa;--ink:#211712;--white:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:#fff;font-family:Oswald,Arial,sans-serif;overflow-x:hidden}
body.intro-open{overflow:hidden}
a{text-decoration:none;color:inherit}
img{display:block;width:100%}
button{font:inherit}
.intro{position:fixed;inset:0;z-index:999;background:radial-gradient(circle at 68% 38%,#31080c 0,transparent 32%),linear-gradient(#020202,#080606 68%,#170e09);display:grid;place-items:center;overflow:hidden;transition:opacity .8s,visibility .8s}
.intro.hide{opacity:0;visibility:hidden;pointer-events:none}
.floor{position:absolute;left:-20%;right:-20%;bottom:-11%;height:39%;background:repeating-linear-gradient(90deg,#21120c 0 2px,#140b08 2px 220px);transform:perspective(700px) rotateX(55deg);box-shadow:inset 0 30px 70px #000}
.boot-stage{position:absolute;width:min(560px,78vw);left:-90vw;bottom:5vh;animation:walkin 4.3s cubic-bezier(.2,.8,.2,1) forwards}
.boot{filter:none;transform-origin:48% 94%;animation:step .62s ease-in-out 6}
.boot-main,.shaft-panel,.toe-panel{fill:url(#leather);stroke:#171313;stroke-width:9;stroke-linejoin:round}
.shaft-panel{fill:url(#shadowLeather);opacity:.34;stroke-width:5}
.toe-panel{fill:#efe2cf;opacity:.82;stroke-width:5}
.sole{fill:#151313;stroke:#080707;stroke-width:7}
.heel{fill:#171313;stroke:#080707;stroke-width:6}
.piping,.top-piping{fill:none;stroke:#3c2d25;stroke-width:10;stroke-linecap:round}
.seam{fill:none;stroke:#9d8467;stroke-width:4;stroke-dasharray:7 7}
.embroidery{fill:none;stroke:#2b201b;stroke-width:5;stroke-linecap:round}
.embroidery.accent{stroke:var(--red);stroke-width:4}
.stitched-star{fill:none;stroke:var(--red);stroke-width:6}
.stitched-heart{fill:var(--red);stroke:#281b18;stroke-width:5}
.boot-script{font-family:Caveat,cursive;font-size:30px;font-weight:700;fill:#161111;text-anchor:middle}
.boot-script.small{font-size:24px}
.intro-copy{z-index:2;text-align:center;opacity:0;transform:translateY(22px);animation:fadeup 1.1s 4s forwards;width:min(520px,88vw)}

.enter-btn{background:rgba(198,29,36,.15);color:#fff;border:1px solid var(--red);padding:1rem 1.5rem;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;margin-top:1rem}
@keyframes walkin{0%{left:-90vw}72%{left:25vw}84%{left:22vw}100%{left:22vw}}
@keyframes step{0%,100%{transform:rotate(0) translateY(0)}35%{transform:rotate(-5deg) translateY(-18px)}70%{transform:rotate(4deg)}}
@keyframes fadeup{to{opacity:1;transform:none}}
.header{height:78px;position:sticky;top:0;z-index:90;display:flex;align-items:center;gap:2rem;padding:0 clamp(1rem,5vw,5rem);background:rgba(6,5,5,.94);border-bottom:1px solid #2b1919;backdrop-filter:blur(12px)}
.wordmark{display:flex;flex-direction:column;line-height:.92}
.wordmark strong{font-family:Rye,serif;color:var(--red);font-size:1.45rem}.wordmark span{letter-spacing:.24em;font-size:.72rem;margin-top:.45rem}
nav{display:flex;gap:2rem;margin-left:auto}nav a{text-transform:uppercase;font-size:.92rem;letter-spacing:.06em}nav a:hover{color:var(--red)}
.menu{display:none;margin-left:auto;background:none;border:1px solid #555;color:#fff;padding:.5rem .8rem}
.button{display:inline-flex;justify-content:center;align-items:center;padding:.9rem 1.3rem;min-height:48px;background:linear-gradient(var(--red),var(--red2));border:1px solid #ef444c;color:#fff;text-transform:uppercase;font-weight:700;letter-spacing:.05em;transition:.2s}
.button:hover{transform:translateY(-2px);filter:brightness(1.1)}
.button.compact{min-height:38px;padding:.55rem .85rem}.button.ghost{background:transparent;border-color:#fff}.dark-button{background:#171010;border-color:#342020}
.hero{position:relative;min-height:calc(100svh - 78px);display:flex;align-items:center;padding:clamp(4rem,9vw,9rem) clamp(1.2rem,7vw,7rem);overflow:hidden}
.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.63) 48%,rgba(0,0,0,.24)),url('hall1.webp') center/cover;filter:saturate(.9) contrast(1.07);transform:scale(1.03)}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 40%,rgba(198,29,36,.24),transparent 33%)}
.hero-content{position:relative;z-index:2;max-width:760px}
.kicker{text-transform:uppercase;letter-spacing:.22em;font-weight:700;font-size:.82rem}.kicker.red{color:var(--red)}
h1,h2{font-family:Rye,serif;line-height:1.05;margin:.4rem 0 1rem}h1{font-size:clamp(3.3rem,8vw,7.3rem)}h2{font-size:clamp(2.5rem,5vw,4.7rem)}h1 em{color:var(--red);font-style:normal}
.hero-content>p{max-width:640px;font-size:1.25rem;line-height:1.65;color:#eee4db}.actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
.hero-badge{position:absolute;right:5vw;bottom:8vh;z-index:2;background:rgba(8,5,5,.73);border:1px solid rgba(255,255,255,.2);padding:1rem 1.3rem;transform:rotate(3deg);display:flex;flex-direction:column;box-shadow:0 20px 45px #000}.hero-badge span{font-family:Caveat,cursive;color:var(--red);font-size:1.7rem}.hero-badge strong{text-transform:uppercase}
.quick-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#0d0909;padding:2rem clamp(1rem,5vw,5rem);border-top:1px solid #251313;border-bottom:1px solid #251313}
.quick-strip div{text-align:center;padding:1rem;border-right:1px solid #392020;display:flex;flex-direction:column}.quick-strip div:last-child{border:0}.quick-strip b{color:var(--red);font-size:2rem}.quick-strip strong{text-transform:uppercase}.quick-strip span{color:#bfb0a7}
.section{padding:clamp(4rem,8vw,8rem) clamp(1.2rem,7vw,7rem)}.paper{background:var(--cream);color:var(--ink)}.dark{background:linear-gradient(#0b0707,#120909);color:#fff}
.welcome-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,7vw,8rem);align-items:center;max-width:1250px;margin:auto}
.portrait{background:#fff;padding:1rem 1rem 1.4rem;box-shadow:0 25px 60px rgba(33,20,12,.3);transform:rotate(-2deg)}.portrait img{aspect-ratio:3/4;object-fit:cover}.portrait span{display:block;text-align:center;font-family:Caveat,cursive;font-size:2rem;margin-top:.7rem}
.copy{max-width:700px}.copy p{font-size:1.16rem;line-height:1.8}.copy blockquote{font-family:Caveat,cursive;font-size:2.2rem;color:var(--red);border-left:4px solid var(--red);padding-left:1rem;margin:2rem 0}
.section-title{max-width:800px;margin:0 0 2.5rem}.section-title.centre{text-align:center;margin-inline:auto}.section-title>p:last-child{font-size:1.12rem;color:#c8bbb2}
.moment-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:1.2rem}.moment-grid figure,.polaroids figure{margin:0;position:relative;overflow:hidden}.moment-grid img{height:100%;object-fit:cover}.moment-grid .wide{min-height:520px}.moment-grid .tall{min-height:520px}.moment-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem;background:linear-gradient(transparent,rgba(0,0,0,.9));font-family:Caveat,cursive;font-size:1.7rem}
.venue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;max-width:1150px;margin:auto}.venue-card{background:#fff;box-shadow:0 20px 45px rgba(38,22,12,.18)}.venue-card img,.placeholder-art{height:310px;object-fit:cover}.venue-card>div:last-child{padding:1.5rem}.venue-card h3{font-family:Rye,serif;font-size:2rem;margin:.5rem 0}.tag{display:inline-block;background:#1c1110;color:#fff;padding:.35rem .6rem;text-transform:uppercase;font-size:.78rem}.text-link{color:var(--red);font-weight:700;text-transform:uppercase}.placeholder-art{display:grid;place-items:center;background:radial-gradient(circle,#7c1115,#16090a);color:#fff}.placeholder-art span{font-family:Rye,serif;font-size:6rem;border:2px solid #d6b98b;border-radius:50%;width:190px;height:190px;display:grid;place-items:center}
.polaroids{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:auto}.polaroids figure{background:#f6eddf;padding:.75rem .75rem 1.5rem;color:#241712;box-shadow:0 20px 45px #000}.polaroids figure:nth-child(1){transform:rotate(-3deg)}.polaroids figure:nth-child(2){transform:rotate(2deg)}.polaroids figure:nth-child(3){transform:rotate(-1deg)}.polaroids img{height:420px;object-fit:cover}.polaroids figcaption{text-align:center;font-family:Caveat,cursive;font-size:1.8rem;margin-top:.6rem}
.contact-box{text-align:center;max-width:900px;margin:auto}.contact-box>p{font-size:1.12rem}.centre-actions{justify-content:center}
footer{text-align:center;padding:3rem 1rem;background:#050404;border-top:1px solid #241313}footer img{width:220px;height:150px;object-fit:cover;margin:auto}.script{font-family:Caveat,cursive;font-size:2rem}.reveal{opacity:0;transform:translateY(24px);transition:.75s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:950px){nav{display:none;position:fixed;top:78px;left:0;right:0;background:#090606;flex-direction:column;padding:2rem}nav.open{display:flex}.menu{display:block}.header>.button{display:none}.quick-strip{grid-template-columns:repeat(2,1fr)}.welcome-grid{grid-template-columns:1fr}.portrait{max-width:500px;margin:auto}.moment-grid{grid-template-columns:1fr 1fr}.moment-grid .wide{grid-column:1/-1}.venue-grid{grid-template-columns:1fr}.hero-badge{display:none}}
@media(max-width:650px){.header{height:70px}.wordmark strong{font-size:1.05rem}.wordmark span{font-size:.6rem}nav{top:70px}.hero{min-height:calc(100svh - 70px)}h1{font-size:clamp(3rem,16vw,5rem)}.actions{flex-direction:column}.actions .button{width:100%}.quick-strip{grid-template-columns:1fr}.quick-strip div{border-right:0;border-bottom:1px solid #392020}.moment-grid{grid-template-columns:1fr}.moment-grid .wide{grid-column:auto}.moment-grid .wide,.moment-grid .tall{min-height:420px}.polaroids{grid-template-columns:1fr}.polaroids figure{transform:none!important}.boot-stage{width:88vw;left:-92vw}@keyframes walkin{0%{left:-92vw}72%{left:-1vw}84%{left:-4vw}100%{left:-4vw}}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.intro{display:none}.reveal{opacity:1;transform:none}}

/* VERSION 4 — PREMIUM OPENING */
.intro-copy{
  z-index:2;
  text-align:center;
  opacity:0;
  transform:translateY(22px);
  animation:fadeup 1.1s 4s forwards;
  width:min(760px,92vw);
  padding:1.5rem;
}
.intro-kicker{
  margin:0 0 .7rem;
  text-transform:uppercase;
  letter-spacing:.45em;
  font-size:.8rem;
  color:#c6b299;
}
.intro-title{
  margin:0;
  font-family:Rye,serif;
  font-size:clamp(3rem,8vw,6.8rem);
  line-height:.95;
  color:var(--red);
  letter-spacing:.02em;
  text-shadow:0 10px 35px #000;
}
.intro-subtitle{
  margin:.8rem 0 1.4rem;
  letter-spacing:.5em;
  font-weight:700;
  font-size:clamp(.9rem,2vw,1.3rem);
}
.intro-tagline{
  margin:0 0 1.8rem;
  font-family:Caveat,cursive;
  font-size:clamp(1.8rem,4vw,3.1rem);
  line-height:1.05;
  color:#f4e9da;
  text-shadow:0 7px 24px #000;
}
.enter-btn{
  background:linear-gradient(180deg,rgba(198,29,36,.26),rgba(125,13,18,.18));
  color:#fff;
  border:1px solid var(--red);
  padding:1rem 1.7rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  cursor:pointer;
  margin-top:.2rem;
  box-shadow:0 10px 35px rgba(0,0,0,.4),inset 0 0 0 1px rgba(255,255,255,.06);
}
.enter-btn:hover{filter:brightness(1.15);transform:translateY(-1px)}

.brand-lockup,.footer-lockup{
  display:flex;
  align-items:center;
  gap:.8rem;
}
.round-mark{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:2px solid var(--red);
  color:#fff;
  background:radial-gradient(circle at 35% 30%,#381014,#120707 68%);
  font-family:Rye,serif;
  font-size:.9rem;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.04),0 5px 18px rgba(0,0,0,.35);
}
.round-mark.large{width:66px;height:66px;font-size:1.2rem}
.footer-lockup{justify-content:center}
.footer-wordmark{text-align:left}

.nameplate{
  fill:#efe2cf;
  stroke:#2b201b;
  stroke-width:4;
}
.boot-script{
  font-family:Oswald,Arial,sans-serif;
  font-size:22px;
  font-weight:700;
  letter-spacing:1px;
  fill:#161111;
  text-anchor:middle;
}
.boot-script.small{
  font-family:Caveat,cursive;
  font-size:22px;
  letter-spacing:0;
}

@media(max-width:650px){
  .intro-copy{transform:translateY(27vh);padding:.8rem}
  .intro-title{font-size:clamp(2.6rem,14vw,4.6rem)}
  .intro-subtitle{font-size:.75rem;letter-spacing:.36em}
  .intro-tagline{font-size:1.8rem}
  .round-mark{width:36px;height:36px;font-size:.75rem}
}


/* VERSION 5 — APPROVED CINEMATIC LANDING ARTWORK */
.poster-intro{
  position:fixed;
  inset:0;
  z-index:999;
  background:#000;
  display:grid;
  place-items:center;
  overflow:hidden;
  transition:opacity .8s ease,visibility .8s ease;
}
.poster-intro.hide{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.poster-shell{
  position:relative;
  height:100svh;
  aspect-ratio:2/3;
  max-width:100vw;
  background:#000;
  box-shadow:0 0 70px rgba(0,0,0,.9);
}
.landing-poster{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  user-select:none;
  -webkit-user-drag:none;
}
.poster-enter{
  position:absolute;
  left:34.5%;
  top:55%;
  width:45.5%;
  height:8%;
  border:0;
  background:transparent;
  cursor:pointer;
  border-radius:10px;
}
.poster-enter:focus-visible{
  outline:3px solid #fff;
  outline-offset:4px;
  box-shadow:0 0 0 6px rgba(198,29,36,.65);
}
.poster-enter:hover{
  background:rgba(255,255,255,.035);
}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@media (orientation:landscape){
  .poster-shell{
    height:100vh;
    max-width:min(100vw,calc(100vh * .6667));
  }
}






/* VERSION 8 — CLEAN BOOT + OBVIOUS STOMP */
.intro-stage{
  position:relative;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#020202;
}
.walk-scene{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 60% 38%,rgba(125,13,18,.30),transparent 30%),
    linear-gradient(#020202,#080505 70%,#140b08);
  opacity:1;
  transition:opacity .55s ease;
}
.walk-glow{
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 62% 44%,rgba(148,11,19,.25),transparent 29%);
}
.walk-floor{
  position:absolute;
  left:-20%;
  right:-20%;
  bottom:-11%;
  height:37%;
  background:repeating-linear-gradient(90deg,#21120c 0 2px,#140b08 2px 180px);
  transform:perspective(700px) rotateX(55deg);
  box-shadow:inset 0 28px 70px #000;
}
.poster-shell{
  opacity:0;
  transform:scale(.988);
  pointer-events:none;
  transition:opacity .65s ease,transform .65s ease;
  transform-origin:50% 76%;
}
.poster-intro.poster-visible .walk-scene{
  opacity:0;
  pointer-events:none;
}
.poster-intro.poster-visible .poster-shell{
  opacity:1;
  transform:scale(1);
  pointer-events:auto;
}
.walking-boot{
  position:absolute;
  z-index:4;
  left:-78vw;
  bottom:6vh;
  width:min(61vw,510px);
  height:auto;
  object-fit:contain;
  transform-origin:48% 92%;
  filter:drop-shadow(0 18px 18px rgba(0,0,0,.78));
  animation:cleanBootWalk 3.55s cubic-bezier(.22,.75,.18,1) forwards;
  pointer-events:none;
}
.poster-intro.stomping .poster-shell{
  animation:bigPosterStomp .92s cubic-bezier(.2,.8,.2,1) both;
}
.poster-intro.stomping::before{
  content:"";
  position:absolute;
  z-index:7;
  inset:0;
  background:rgba(255,225,190,.08);
  opacity:0;
  animation:impactFlash .92s ease both;
  pointer-events:none;
}
.poster-intro.stomping::after{
  content:"";
  position:absolute;
  z-index:8;
  left:-2%;
  bottom:12%;
  width:58%;
  height:24%;
  background:
    radial-gradient(ellipse at 30% 65%,rgba(190,126,74,.62),rgba(105,59,31,.25) 42%,transparent 72%);
  filter:blur(7px);
  opacity:0;
  animation:bigDustPuff .92s ease both;
  pointer-events:none;
}
@keyframes cleanBootWalk{
  0%{left:-78vw;transform:rotate(-7deg) translateY(0)}
  18%{transform:rotate(4deg) translateY(-17px)}
  36%{transform:rotate(-4deg) translateY(0)}
  54%{transform:rotate(3deg) translateY(-14px)}
  73%{left:5vw;transform:rotate(-2deg) translateY(0)}
  87%{left:2vw;transform:rotate(1deg) translateY(-7px)}
  100%{left:1vw;transform:rotate(0) translateY(0)}
}
@keyframes bigPosterStomp{
  0%{transform:translateY(0) scale(1)}
  28%{transform:translateY(-28px) scale(1.012)}
  58%{transform:translateY(13px) scale(.992)}
  72%{transform:translateY(-4px) scale(1.002)}
  100%{transform:translateY(0) scale(1)}
}
@keyframes bigDustPuff{
  0%,35%{opacity:0;transform:scale(.4) translateY(0)}
  58%{opacity:1;transform:scale(1) translateY(-5px)}
  100%{opacity:0;transform:scale(1.55) translateY(-20px)}
}
@keyframes impactFlash{
  0%,48%,100%{opacity:0}
  58%{opacity:1}
}
@media(max-width:650px){
  .walking-boot{
    width:70vw;
    left:-90vw;
    bottom:9vh;
  }
  @keyframes cleanBootWalk{
    0%{left:-90vw;transform:rotate(-7deg) translateY(0)}
    18%{transform:rotate(4deg) translateY(-14px)}
    36%{transform:rotate(-4deg) translateY(0)}
    54%{transform:rotate(3deg) translateY(-11px)}
    73%{left:-4vw;transform:rotate(-2deg) translateY(0)}
    87%{left:-6vw;transform:rotate(1deg) translateY(-6px)}
    100%{left:-7vw;transform:rotate(0) translateY(0)}
  }
}
@media(prefers-reduced-motion:reduce){
  .walk-scene{display:none}
  .poster-shell{opacity:1;transform:none;pointer-events:auto}
}
