/* Transparent pose sheet; independent transforms never move products or copy. */
.home-mascot.mascot-seat-stage{position:relative;isolation:isolate;aspect-ratio:1;width:100%;max-width:600px;align-self:end;overflow:visible}
.mascot-actor{position:relative;aspect-ratio:1;width:100%;z-index:1;pointer-events:none;transform-origin:50% 65%}
.mascot-sprite{width:100%;height:100%;background-image:url('/assets/mascot-poses-v1.webp');background-size:300% 100%;background-repeat:no-repeat}
.mascot-seat .mascot-sprite{background-position:0 0}.mascot-hang .mascot-sprite{background-position:50% 0}.mascot-side .mascot-sprite{background-position:100% 0}
.mascot-seat-stage::before,.mascot-club-stage::before{content:"";position:absolute;left:0;right:0;top:66%;height:14px;background:var(--yellow);z-index:0}
.home-mascot.mascot-seat-stage figcaption{position:relative;margin-top:12px;text-align:center}
.home-hero{overflow:hidden}.home-ribbon{position:relative;z-index:2}
.home-drop.mascot-merch-section{position:relative;padding-left:max(180px,13vw);min-height:350px}
.mascot-merch-section>.mascot-hang{position:absolute;left:0;top:0;width:clamp(150px,13vw,210px);transform-origin:48% 3%}
.home-club .mascot-club-stage{position:relative;isolation:isolate;display:block;padding:0;background:none;aspect-ratio:1;min-width:0;overflow:visible;text-decoration:none}
.home-club .mascot-club-stage>span{position:absolute;left:12px;bottom:5px;font:600 14px/1.5 'Chivo Mono',monospace;padding:12px 16px;background:var(--yellow);color:var(--black);z-index:2}
.home-club .mascot-club-stage::before{top:65%}
.mascot-club-stage:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}
@media(max-width:1000px){.home-drop.mascot-merch-section{padding-left:155px}.mascot-merch-section>.mascot-hang{width:150px}.home-club .mascot-club-stage{max-width:500px;width:100%;margin:auto}}
@media(max-width:700px){.home-mascot.mascot-seat-stage{width:min(100%,430px);margin:0 auto}.home-drop.mascot-merch-section{padding:50px 5vw}.mascot-merch-section>.mascot-hang{width:130px;left:-8px;top:0}.mascot-merch-section .home-section-heading{margin-left:110px;min-height:150px;justify-content:center;gap:15px}.mascot-merch-section .home-section-heading h2{font-size:42px}.mascot-merch-section .home-section-heading .eyebrow{font-size:12px}.mascot-merch-section .all-merch-link{font-size:13px}.home-club .mascot-club-stage{max-width:400px}.home-club .mascot-club-stage>span{font-size:13px}.home-mascot.mascot-seat-stage figcaption{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.mascot-actor{transform:none!important}}
.home-club:has(.mascot-club-stage){overflow:hidden}
/* Stable anchors keep scroll measurements independent of moving characters. */
.mascot-hang-anchor{position:absolute;left:0;top:0;width:clamp(150px,13vw,210px);aspect-ratio:1;z-index:3}
.mascot-hang-anchor .mascot-hang{position:relative;left:auto;top:auto;width:100%;transform-origin:48% 3%}
.mascot-grip-rail{position:absolute;left:13%;width:72%;height:8px;top:5%;background:#191919;border-radius:4px;box-shadow:0 2px 0 #0003;z-index:0}
.mascot-grip-rail::before,.mascot-grip-rail::after{content:"";position:absolute;bottom:0;width:7px;height:22px;background:#191919;left:0}.mascot-grip-rail::after{left:auto;right:0}
.mascot-actor{will-change:transform,opacity}
.home-club:has(.mascot-door-stage){overflow:hidden}
.home-club .mascot-door-stage{position:relative;display:block;isolation:isolate;aspect-ratio:1;min-width:0;padding:0;background:transparent;perspective:1000px;text-decoration:none}
.club-door-frame{position:absolute;right:4%;top:4%;width:47%;height:85%;background:#141414;border:9px solid #39372e;box-shadow:8px 10px 0 #0002;perspective:850px}
.club-door-glow{position:absolute;inset:0;background:linear-gradient(90deg,#ffdc32,#fff3ae 25%,#302919);opacity:var(--door-light,.85);box-shadow:-12px 0 25px #ffdc3240}
.club-door-leaf{position:absolute;inset:0;background:linear-gradient(100deg,#292922,#171713);border:2px solid #635b38;transform-origin:100% 50%;transform:rotateY(var(--door-angle,-24deg));backface-visibility:hidden;box-shadow:-6px 1px 10px #0006}
.club-door-sign{position:absolute;top:19%;left:10%;right:10%;text-align:center;color:#ffdc32;border:2px solid #ffdc32;padding:15px 5px;font:clamp(20px,3vw,44px)/1.03 'League Gothic',Impact,sans-serif;letter-spacing:.05em;transform:none!important;background:#111!important}
.club-door-handle{position:absolute;left:10%;top:60%;width:8px;height:35px;background:#d8bd53;border-radius:4px;box-shadow:2px 2px 0 #0008}
.mascot-door-stage .mascot-peek{position:absolute;left:-7%;top:5%;width:76%;height:94%;aspect-ratio:auto;z-index:2;transform-origin:50% 90%}
.home-club .mascot-peek img{display:block;width:100%;height:100%;max-height:none;object-fit:contain;filter:none}
.home-club .mascot-door-stage>.club-door-invite{position:absolute;left:auto;right:4%;bottom:0;background:#ffdc32;color:#111;padding:10px 15px;font:600 13px/1.5 'Chivo Mono',monospace;z-index:3}
@media(max-width:1000px){.mascot-hang-anchor{width:150px}.home-club .mascot-door-stage{width:100%;max-width:500px;margin:auto}}
@media(max-width:700px){.mascot-hang-anchor{left:-8px;top:0;width:130px}.home-club .mascot-door-stage{max-width:420px}.club-door-frame{border-width:6px}.club-door-sign{font-size:29px}}
@media(prefers-reduced-motion:reduce){.mascot-actor{opacity:1!important;transform:none!important}.club-door-leaf{transform:rotateY(-24deg)!important}}
/* Hinged club entrance: the mascot sits behind the leaf, inside its aperture. */
.home-club .club-entry{aspect-ratio:.96;min-height:330px;perspective:1200px;--door-angle:0deg;--door-light:0}
.club-door-surround{position:absolute;left:22%;right:7%;top:3%;bottom:8%;border:13px solid #302f29;border-left-color:#565348;border-top-color:#686357;border-right-color:#171713;border-bottom-width:10px;background:#11100d;box-shadow:0 0 0 2px #151511,0 0 0 7px #87806c,0 0 0 9px #27261f,14px 17px 20px #0005;perspective:1000px;isolation:isolate}
.club-door-surround::before{content:"";position:absolute;inset:-9px;border:1px solid #b7ab8370;pointer-events:none;z-index:5}
.club-door-aperture{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 20% 25%,#b88c2f55,transparent 65%),linear-gradient(100deg,#110f0b,#080807);box-shadow:inset 0 0 22px #000}
.club-interior-light{position:absolute;inset:0;background:radial-gradient(ellipse at 10% 35%,#ffda7e55,transparent 70%);opacity:var(--door-light)}
.club-entry .mascot-inside{position:absolute;left:-14%;top:11%;width:113%;height:91%;aspect-ratio:auto;transform-origin:80% 55%;z-index:1}
.home-club .mascot-inside img{display:block;width:100%;height:100%;max-height:none;object-fit:contain;object-position:left center;filter:drop-shadow(8px 3px 10px #0009)}
.club-entry .club-door-leaf{inset:0;z-index:3;transform:rotateY(var(--door-angle));transform-origin:100% 50%;transform-style:preserve-3d;background:repeating-linear-gradient(91deg,#ffffff03 0px,#00000009 1px,transparent 2px,transparent 6px),linear-gradient(95deg,#25241e,#37352b 48%,#1c1c17);border:5px solid #3f3b2c;border-left-color:#8d8058;border-top-color:#72664a;border-right-color:#171713;box-shadow:-5px 1px 2px #0c0c09,-9px 4px 12px #0008;will-change:transform}
.club-entry .club-door-leaf::after{content:"";position:absolute;top:0;bottom:0;left:-7px;width:6px;background:linear-gradient(90deg,#17160f,#9b895f,#312c1f);transform:rotateY(90deg);transform-origin:right;pointer-events:none}
.door-inset{position:absolute;left:10%;right:10%;border:4px solid #1c1c16;border-top-color:#14140f;border-left-color:#24241c;border-bottom-color:#6a6047;border-right-color:#554d39;box-shadow:inset 2px 3px 7px #0008,0 1px 0 #a0905a40;background:repeating-linear-gradient(90deg,#ffffff02 0px,transparent 2px,transparent 5px),linear-gradient(110deg,#2d2b21,#1c1c16)}
.door-inset-upper{top:7%;height:46%}.door-inset-lower{top:65%;bottom:8%}
.door-nameplate{position:absolute;left:15%;right:15%;top:17%;padding:15px 5px 12px;color:#f5df93;background:linear-gradient(120deg,#302b1b,#10100d);border:2px solid #a48c4e;border-radius:3px;text-align:center;box-shadow:0 3px 5px #0009,inset 0 0 0 2px #17150e;font-family:'Chivo Mono',monospace}
.door-nameplate::before,.door-nameplate::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:#c2aa6a;top:6px;left:6px;box-shadow:0 1px 1px #000}.door-nameplate::after{left:auto;right:6px}
.door-nameplate small{display:block;font-size:8px;letter-spacing:.04em;line-height:1.5}.door-nameplate strong{display:block;font:clamp(27px,3.5vw,53px)/.95 'League Gothic',Impact,sans-serif;letter-spacing:.07em;margin:10px 0}.door-nameplate em{font-style:normal;font-size:9px;letter-spacing:.12em}
.door-hardware{position:absolute;left:8%;top:55%;width:22px;height:64px;background:linear-gradient(90deg,#5c4c28,#d6bd71 42%,#8a743a 65%,#c8ae5e);border:1px solid #5b4a25;border-radius:5px;box-shadow:2px 3px 5px #0008}
.door-lock{position:absolute;left:8px;bottom:10px;width:4px;height:8px;background:#231f13;border-radius:50% 50% 0 0}.door-lever{position:absolute;left:6px;top:12px;width:44px;height:9px;border-radius:5px;background:linear-gradient(#f5d98b,#aa8d49 50%,#6c5528);box-shadow:1px 3px 2px #0009}
.door-hinge{position:absolute;right:-7px;width:9px;height:34px;border-radius:3px;background:repeating-linear-gradient(#a58b50 0px,#bda263 6px,#5f502e 7px,#a58b50 9px);box-shadow:1px 2px 2px #0008}.hinge-top{top:12%}.hinge-bottom{bottom:12%}
.club-door-threshold{position:absolute;left:-16px;right:-16px;bottom:-16px;height:9px;background:linear-gradient(#b3a37a,#4b4431);transform:skewX(-15deg);box-shadow:0 5px 8px #0005;z-index:4}
.home-club .club-entry>.club-door-invite{right:6%;bottom:0;font-size:12px}
@media(max-width:700px){.club-door-surround{left:16%;right:9%;border-width:10px}.door-nameplate strong{font-size:37px}.door-nameplate small{font-size:8px}.home-club .club-entry{max-width:430px}.door-nameplate{padding:12px 3px}.door-hardware{transform:scale(.85);transform-origin:left center}}
@media(prefers-reduced-motion:reduce){.club-entry .club-door-leaf{transform:rotateY(-68deg)!important}.club-entry .mascot-inside{opacity:1!important}.club-entry .club-interior-light{opacity:1}}
/* Full-height entrance, left hinge and a narrow reveal at the right jamb. */
.home-club .club-entrance-v2{aspect-ratio:.9;min-height:410px;max-width:610px}
.club-entrance-v2 .club-door-surround{left:34%;right:15%;top:3%;bottom:23%;border-width:10px;z-index:2}
.club-entrance-v2 .club-entry-floor{position:absolute;left:0;right:0;bottom:0;height:29%;background:radial-gradient(ellipse at 64% 0,#88715030,transparent 65%),linear-gradient(transparent,#16151188);z-index:0}
.club-entrance-v2 .club-red-carpet{position:absolute;left:17%;right:0;top:76%;bottom:1%;clip-path:polygon(21% 0,82% 0,100% 100%,0 100%);background:linear-gradient(90deg,#a98236 0 1.3%,#4b0e17 1.3% 4%,#a98236 4% 5%,transparent 5% 95%,#a98236 95% 96%,#4b0e17 96% 98.7%,#a98236 98.7%),repeating-linear-gradient(90deg,#ffffff04 0 1px,transparent 1px 4px),linear-gradient(#4c0e16,#8f1c2b 55%,#53101b);z-index:1;filter:drop-shadow(0 6px 8px #0008)}
/* Neutralize the old promotional caption rule on door components. */
.home-club .club-entrance-v2 span{right:auto;bottom:auto;padding:0;background:transparent;color:inherit;font:inherit}
.home-club .club-entrance-v2 .door-inset{left:10%;right:10%;background:repeating-linear-gradient(90deg,#ffffff02 0px,transparent 2px,transparent 5px),linear-gradient(110deg,#2d2b21,#1c1c16)}
.home-club .club-entrance-v2 .door-inset-upper{top:7%;height:46%;bottom:auto}.home-club .club-entrance-v2 .door-inset-lower{top:65%;bottom:8%}
.home-club .club-entrance-v2 .door-nameplate{top:18%;left:15%;right:15%;bottom:auto;padding:12px 4px;color:#f5df93;background:linear-gradient(120deg,#302b1b,#10100d);font-family:'Chivo Mono',monospace}
.home-club .club-entrance-v2 .door-nameplate strong{font-size:clamp(26px,3.2vw,45px)}
.home-club .club-entrance-v2 .door-hardware{left:auto;right:9%;top:55%;height:64px;background:linear-gradient(90deg,#5c4c28,#d6bd71 42%,#8a743a 65%,#c8ae5e)}
.club-entrance-v2 .club-door-leaf{transform-origin:0 50%;border-left-color:#171713;border-right-color:#8d8058;box-shadow:5px 1px 2px #0c0c09,9px 4px 12px #0008}
.club-entrance-v2 .club-door-leaf::after{left:auto;right:-7px;transform-origin:left}
.club-entrance-v2 .door-hinge{right:auto;left:-7px}
.club-entrance-v2 .door-lever{left:auto;right:6px}
.club-entrance-v2 .club-door-aperture{background:radial-gradient(ellipse at 92% 35%,#ae8b3a30,transparent 65%),#0b0a08}
.club-entrance-v2 .mascot-inside{left:auto;right:-16%;top:17%;width:90%;height:82%;bottom:1%;z-index:1}
.home-club .club-entrance-v2 .mascot-inside img{object-fit:contain;object-position:center bottom;width:100%;height:100%;filter:drop-shadow(-3px 3px 5px #0007)}
.home-club .club-entrance-v2>.club-door-invite{right:14%;bottom:0;font-size:12px;padding:10px 13px}
@media(max-width:700px){.home-club .club-entrance-v2{max-width:440px;min-height:390px}.club-entrance-v2 .club-door-surround{left:27%;right:12%;top:3%;bottom:23%;border-width:8px}.home-club .club-entrance-v2 .door-nameplate strong{font-size:33px}.club-entrance-v2 .club-red-carpet{left:9%;right:0}.home-club .club-entrance-v2>.club-door-invite{right:11%}}
@media(prefers-reduced-motion:reduce){.club-entrance-v2 .club-door-leaf{transform:rotateY(38deg)!important}}
/* Door opening stays close to a real 2:1 height-to-width ratio. */
.club-entrance-v2 .club-door-surround{left:auto;right:14%;width:40%;top:3%;bottom:23%}
.club-entrance-v2 .club-red-carpet{clip-path:polygon(35% 0,83% 0,100% 100%,0 100%)}
@media(max-width:700px){.club-entrance-v2 .club-door-surround{left:auto;right:16%;width:42%}.club-entrance-v2 .club-red-carpet{clip-path:polygon(36% 0,82% 0,100% 100%,0 100%)}}
/* Whole-section floor runner, aligned to the actual threshold after layout. */
.home-club:has(.club-entrance-v2){position:relative;isolation:isolate;overflow:hidden}
.home-club:has(.club-entrance-v2)>.club-copy{position:relative;z-index:2}
.home-club:has(.club-entrance-v2)>.club-entry{z-index:1}
.home-club>.club-red-carpet{position:absolute;left:0;right:0;top:var(--carpet-top,78%);bottom:0;z-index:0;pointer-events:none;clip-path:polygon(var(--carpet-left,65%) 0,var(--carpet-right,85%) 0,calc(var(--carpet-right,85%) + 70px) 100%,calc(var(--carpet-left,65%) - 120px) 100%);background:repeating-linear-gradient(90deg,#ffffff04 0 1px,transparent 1px 4px),linear-gradient(#4c0e16,#851a28 65%,#5c101d)}
.club-entrance-v2 .club-entry-floor{display:none}
.home-club .club-entrance-v2 span.door-hardware{position:absolute;left:auto;right:9%;top:55%;bottom:auto;width:22px;height:64px;padding:0;background:linear-gradient(90deg,#5c4c28,#d6bd71 42%,#8a743a 65%,#c8ae5e)}
.club-entrance-v2 .door-hinge{left:-7px;right:auto}
.club-entrance-v2 .club-door-leaf{transform-origin:0 50%;transform:rotateY(var(--door-angle,0deg))}
@media(prefers-reduced-motion:reduce){.club-entrance-v2 .club-door-leaf{transform:rotateY(-48deg)!important}}
/* Open leaf is in front of the jamb trim and sill, not behind them. */
.club-entrance-v2 .club-door-surround{overflow:visible;isolation:isolate}
.club-entrance-v2 .club-door-surround::before{z-index:0;pointer-events:none}
.club-entrance-v2 .club-door-threshold{z-index:0}
.club-entrance-v2 .club-door-aperture{z-index:0}
.club-entrance-v2 .club-door-leaf{z-index:10;transform:translateZ(12px) rotateY(var(--door-angle,0deg));backface-visibility:hidden}
.club-cinema-ropes{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:hidden}
.home-club:has(.club-entrance-v2)>.club-entry{z-index:2}
.mascot-merch-section .mascot-hang-anchor{top:-9px;z-index:3}
.mascot-hang-anchor .mascot-hang{transform-origin:48% 3%}
.mascot-merch-section::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--yellow);pointer-events:none}
@media(prefers-reduced-motion:reduce){.club-entrance-v2 .club-door-leaf{transform:translateZ(12px) rotateY(-48deg)!important}}
/* A physical stage lip continues to the edge of the hero, beneath his hips. */
.home-mascot.mascot-seat-stage::before{display:none}
.hero-stage-perch{position:absolute;left:5%;width:145%;top:64%;height:18%;z-index:0;pointer-events:none;filter:drop-shadow(0 12px 10px #0007)}
.hero-stage-perch .perch-top{position:absolute;left:0;right:0;top:0;height:14%;background:linear-gradient(#fff19a,#dfb625);transform:skewX(-20deg);transform-origin:bottom left;border-bottom:2px solid #8f731d}
.hero-stage-perch .perch-front{position:absolute;left:0;right:0;top:14%;height:64%;display:flex;align-items:center;padding-left:14px;background:linear-gradient(#ffdc32,#d3ad20);border-top:2px solid #fff18a;border-bottom:5px solid #79601a;color:#302609;font:600 12px/1.5 'Chivo Mono',monospace;letter-spacing:.06em}
.hero-stage-perch .perch-bracket{position:absolute;left:12%;top:78%;width:14%;height:35%;clip-path:polygon(0 0,100% 0,0 100%);background:linear-gradient(90deg,#7c681f,#b69a35)}
.mascot-seat-stage>.mascot-seat{z-index:1}
@media(max-width:700px){.hero-stage-perch{left:0;width:160%}.hero-stage-perch .perch-front{font-size:11px;padding-left:10px}}
.hero-arrival{position:relative;width:100%;aspect-ratio:1;transform-origin:center;isolation:isolate}
.hero-arrival>.mascot-seat{z-index:1}
.hero-stage-perch .perch-bracket{display:none}
.hero-stage-perch .perch-top{transform:none}
@media(prefers-reduced-motion:reduce){.hero-arrival{transform:none!important;opacity:1!important}}
.home-mascot.hero-theatre-stage{max-width:600px}
.home-mascot.hero-theatre-stage .hero-theatre-seat{display:block;width:100%;height:100%;max-height:none;object-fit:contain;filter:drop-shadow(0 15px 12px #0005)}
.hero-theatre-stage .mascot-seat{height:100%;transform-origin:50% 87%}
/* Banner-wide curtains are separate from the seated mascot. */
.home-page .home-hero{position:relative;isolation:isolate}
.hero-curtain{position:absolute;top:0;bottom:0;width:max(70px,var(--home-gutter));max-width:320px;z-index:0;pointer-events:none;user-select:none;transform-origin:50% 0}
.hero-curtain-left{left:0;transform-origin:left top}.hero-curtain-right{right:0;transform-origin:right top}
.hero-curtain img{display:block;width:100%;height:100%;object-fit:fill;max-width:none}
.hero-curtain-right img{transform:scaleX(-1)}
.home-hero .hero-wordmark-wrap,.home-hero .hero-bottom,.home-hero .hero-scroll{position:relative;z-index:1}
@media(max-width:700px){.hero-curtain{width:50px;max-width:50px}}
@media(prefers-reduced-motion:reduce){.hero-curtain{transform:none!important;opacity:1!important}}
