:root{color-scheme:dark;--ground:#000;--ink:#f6f0e7;--muted:#ada6b3;--accent:#ff823a;--line:#343039}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ground);color:var(--ink);font-family:Inter,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--ink);outline-offset:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.event-header{height:104px;padding:0 80px;display:flex;align-items:center;justify-content:space-between}.header-side{width:180px;display:flex}.season-side{justify-content:flex-end}.brand{display:block;object-fit:cover}.prize-pool{height:32px;display:flex;align-items:center;gap:7px;padding:0 12px;background:#101014;border:1px solid var(--line);border-radius:4px;font-size:12px;font-weight:700}.season{padding:9px 14px;border:1px solid var(--line);border-radius:100px;color:var(--accent);font-size:11px;font-weight:600;white-space:nowrap}.hero{height:698px;position:relative;overflow:hidden}.hero-art{position:absolute;width:1440px;height:698px;top:0;left:50%;transform:translateX(-50%);overflow:hidden}.hero-art img{position:absolute;width:99.95%;height:106.61%;left:.02%;top:-6.6%;max-width:none}.hero:before,.hero:after{content:"";position:absolute;left:0;right:0;height:60px;z-index:1;pointer-events:none}.hero:before{top:0;background:linear-gradient(#000,transparent)}.hero:after{bottom:0;background:linear-gradient(transparent,#000)}.hero-action{padding:48px 24px 40px;display:flex;justify-content:center}.join{border:0;display:flex;align-items:center;justify-content:center;gap:5px;width:100%;height:64px;padding:0 20px;border-radius:8px;background:radial-gradient(ellipse at top,#f97933,#f7752a);box-shadow:0 5px 0 #c56127,0 0 20px #ff80008c;color:#21140d;font-family:Roboto,Arial,sans-serif;font-size:20px;font-weight:600;touch-action:manipulation}.join img{object-fit:cover;flex-shrink:0}.hero-action .join{width:440px}.join:hover{filter:brightness(1.08)}.join:active{transform:translateY(3px);box-shadow:0 2px 0 #c56127,0 0 15px #ff800070}.prizes{display:flex;align-items:center;justify-content:center;gap:40px;padding:72px 0 88px;overflow:hidden}.prize{position:relative;flex-shrink:0}.prize img{display:block;width:100%;height:100%;object-fit:cover}.side-prize{width:308.5px;height:473.5px}.side-prize:after{content:"";position:absolute;inset:0;background:#0003}.main-prize{width:320px;height:480px;border-radius:10px;overflow:hidden}.invitation-wrap{padding:10px 144px}.invitation{display:flex;align-items:center;overflow:hidden;background:#060606;border:1px solid #fff3;border-radius:12px}.catalog{width:576px;height:432px;flex-shrink:0;position:relative}.catalog img{display:block;width:100%;height:100%;object-fit:cover}.invitation-copy{flex:1;min-width:0;padding:48px;display:flex;flex-direction:column;align-items:flex-start;gap:20px}.event-date{display:flex;align-items:center;gap:5px;color:var(--accent);font-family:Roboto,Arial,sans-serif;font-size:13px;font-weight:600;white-space:nowrap;margin:0}.event-date img{object-fit:cover}h2{font-family:Unbounded,Arial,sans-serif;font-size:36px;font-weight:400;line-height:1.25;margin:0}.description{color:var(--muted);font-size:14px;line-height:1.6;margin:0}footer{display:flex;justify-content:center;padding:40px 0 30px}footer img{display:block;object-fit:cover}dialog{max-width:420px;width:calc(100% - 48px);border:1px solid var(--line);border-radius:12px;background:#101014;color:var(--ink);padding:32px}dialog::backdrop{background:#000b}dialog h2{font-family:Arial,sans-serif;font-size:24px;margin:16px 0}dialog p{color:var(--muted);line-height:1.6}.close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:var(--ink);font-size:30px}.dismiss{border:0;border-radius:6px;background:var(--accent);color:#21140d;padding:12px 24px;font-weight:600}
@media(min-width:1680px){.hero-art{width:1920px}.hero-art img{width:99.97%}}
@media(max-width:1100px) and (min-width:601px){.event-header{padding:0 40px}.hero{height:718px}.hero-art{width:834px;height:910px;top:-65px}.hero-art img{width:100%;height:106.6%;left:0}.hero-action{padding:24px 24px 20px}.hero-action .join{width:460px}.prizes{gap:16px;padding:56px 0 64px}.side-prize{width:224px;height:343.806px}.main-prize{width:258px;height:387px}.invitation-wrap{padding:10px 40px}.catalog{width:330px;height:auto;align-self:stretch}.catalog img{position:absolute;inset:0}.invitation-copy{padding:24px}h2{font-size:26px}.invitation .join{font-size:clamp(14px,2.4vw,20px);padding:0 8px}}
@media(max-width:600px){.event-header{height:88px;padding:0 24px}.header-side{width:110px}.brand{width:99px;height:50px}.prize-pool{height:27px;gap:5px;font-size:11px}.season{padding:7px 10px}.hero{height:469px}.hero-art{width:430px;height:469px}.hero-art img{width:100%;height:106.6%;left:0}.hero:before,.hero:after{height:42px}.hero-action{padding:30px 24px 20px}.hero-action .join{width:100%}.prizes{gap:24px;align-items:flex-start;padding:38px 0}.main-prize{width:280px;height:420px}.side-prize{width:308.5px;height:473.5px}.invitation-wrap{padding:12px 24px 0}.invitation{flex-direction:column;gap:20px;align-items:stretch}.catalog{width:100%;height:auto;aspect-ratio:4/3}.catalog:after{content:"";position:absolute;inset:80.8% 0 0;background:linear-gradient(transparent,#060606)}.invitation-copy{padding:24px 24px 34px;gap:20px}h2{font-size:29px}.join{font-size:20px}.invitation .join{padding:0 8px}footer{padding:32px 0 30px}}
@media(max-width:390px){.event-header{padding:0 16px}.header-side{width:96px}.season{font-size:9px}.brand{width:90px;height:45px}.invitation-copy{padding-left:18px;padding-right:18px}.invitation .join{font-size:16px}.event-date{font-size:11px}h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Each hero source fills its viewport; advance the source when its native width runs out. */
.hero-art{width:max(100%,1440px);height:698px;top:0}
.hero-art img{width:100%;left:0;object-fit:cover}
@media(min-width:1441px){.hero-art{width:max(100%,1920px)}}
@media(min-width:601px) and (max-width:834px){.hero-art{width:834px;height:910px;top:-65px}}
@media(max-width:600px){.hero-art{width:max(100%,430px);height:469px;top:0}}
.prizes{--card-width:320px;--card-gap:68px;position:relative;gap:var(--card-gap);align-items:center;padding-top:96px;padding-bottom:112px;touch-action:pan-y;user-select:none}
.prizes .prize{width:var(--card-width);height:auto;aspect-ratio:2/3;border-radius:10px;overflow:hidden}
.prizes .side-prize{padding:0;border:0;background:transparent;transform:rotate(-10deg);flex-shrink:0}
.prizes .next-prize{transform:rotate(10deg)}
.prizes .side-prize:after{background:rgba(0,0,0,.2);pointer-events:none}
.prizes .main-prize{z-index:1}
.prizes .prize:focus-visible{outline-offset:8px}
@media(min-width:601px) and (max-width:1100px){.prizes{--card-width:258px;--card-gap:40px;padding-top:80px;padding-bottom:88px}}
@media(max-width:600px){.prizes{--card-width:min(280px,65vw);--card-gap:38px;padding-top:62px;padding-bottom:70px}}

/* Event destination links retain the button appearance. */
a.join{text-decoration:none}
.tgs-icon{display:inline-block;flex-shrink:0;pointer-events:none;overflow:hidden}
.tgs-icon svg{display:block;width:100%;height:100%}
.join{position:relative;isolation:isolate;overflow:hidden}
.join:after{content:"";position:absolute;inset:-50% auto -50% 0;width:28%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:translateX(-200%) skewX(-20deg);pointer-events:none;animation:button-shine 5s linear infinite}
@keyframes button-shine{0%,75%{transform:translateX(-200%) skewX(-20deg)}100%{transform:translateX(500%) skewX(-20deg)}}

@media(hover:hover) and (pointer:fine){.join:hover:after{animation-duration:2.5s}}
@media(prefers-reduced-motion:reduce){.join:after{animation:none;opacity:0}}

.slide-ghost{position:absolute;z-index:2;border-radius:10px;overflow:hidden;pointer-events:none}.slide-ghost img{display:block;width:100%;height:100%;object-fit:cover}.slide-shade{position:absolute;inset:0;background:#000}

/* Perspective provides depth; the requested tilt stays on the Z axis. */
.prizes{perspective:1200px}
.prizes .previous-prize{transform:translate3d(0,0,-80px) rotateZ(-10deg)}
.prizes .next-prize{transform:translate3d(0,0,-80px) rotateZ(10deg)}
.prizes .main-prize{transform:translate3d(0,0,0) rotateZ(0deg)}
.prizes .prize,.slide-ghost{backface-visibility:hidden}
/* More breathing room between the tilted cards. */
.prizes{--card-gap:88px}
@media(min-width:601px) and (max-width:1100px){.prizes{--card-gap:64px}}
@media(max-width:600px){.prizes{--card-gap:56px}}
/* Pumpkin lacquer, ember edge and small cobweb corners. */
.join{color:#261006;border:1px solid #ffba63;background:radial-gradient(ellipse at 50% 0,#ffb249 0,transparent 68%),linear-gradient(180deg,#ff8f28,#f46b18 70%,#dc4b10);box-shadow:inset 0 1px 0 #ffe4aa80,inset 0 -3px 0 #b6362066,0 5px 0 #842b12,0 0 24px #ff6a0059;text-shadow:0 1px 0 #ffcb7b66}
.join:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background:linear-gradient(45deg,transparent 48%,#fff0bb 49%,#fff0bb 50%,transparent 51%) top left/33px 33px no-repeat,linear-gradient(70deg,transparent 48%,#fff0bb 49%,#fff0bb 50%,transparent 51%) top left/33px 33px no-repeat,linear-gradient(20deg,transparent 48%,#fff0bb 49%,#fff0bb 50%,transparent 51%) top left/33px 33px no-repeat,radial-gradient(circle at top left,transparent 14px,#fff0bb 15px,transparent 16px,transparent 25px,#fff0bb 26px,transparent 27px) top left/34px 34px no-repeat;transform:rotate(180deg)}
.join:active{box-shadow:inset 0 1px 0 #ffe4aa80,0 2px 0 #842b12,0 0 20px #ff6a0059}
/* Hinge each side card on the edge nearest the active card. */
.prizes .previous-prize{transform-origin:100% 50%;transform:translate3d(0,0,-80px) rotateY(10deg) rotateZ(-10deg)}
.prizes .next-prize{transform-origin:0% 50%;transform:translate3d(0,0,-80px) rotateY(-10deg) rotateZ(10deg)}
.prizes .main-prize{transform-origin:50% 50%}
/* Text fills its available column and wraps instead of clipping. */
.invitation-copy{align-items:stretch;overflow:visible}
.invitation-copy>h2,.invitation-copy>p{width:100%;min-width:0;max-width:100%;overflow-wrap:anywhere}
.event-date{white-space:normal;line-height:1.5}
.event-date-text{flex:1;min-width:0}
.invitation .join{min-width:0;height:auto;min-height:64px;padding-top:12px;padding-bottom:12px;text-align:center}
@media(min-width:601px) and (max-width:1100px){.catalog{width:44%}.invitation-copy{width:56%}}
@media(max-width:600px){.invitation-copy{width:100%}}
