@font-face{font-family:FootballWide;src:url("/static/fonts/chrome-unbounded.3ba1d6fdf96b.ttf") format('truetype');font-display:swap}@font-face{font-family:FootballRound;src:url("/static/fonts/nunito-black.cde860028be8.ttf") format('truetype');font-display:swap}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.6 Arial,sans-serif;--paper:#eef2e8;--ink:#142d29;--accent:#d5f169;--soft:#dce5d5;--line:#9caf9b;--kit:#d5f169}a{color:inherit}button,input,textarea,summary{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{border:1px solid currentColor;border-radius:28px;padding:10px 20px;min-height:46px;background:transparent;color:inherit}button:hover{filter:brightness(.93)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ed5c33;outline-offset:5px}h1,h2,p{margin-top:0}h1,h2{font-family:FootballWide,Arial,sans-serif;letter-spacing:-.055em;font-weight:700;line-height:1.17}h1{font-size:clamp(58px,7.2cqw,108px);margin-bottom:0}h2{font-size:clamp(30px,3.5cqw,50px);margin-bottom:24px}p{line-height:1.7}img{max-width:100%}[hidden]{display:none!important}.eyebrow{font-size:16px;letter-spacing:.065em;text-transform:uppercase;margin-bottom:24px}.toolbar{height:74px;padding:12px 3%;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fffaf1;color:#28322c;border-bottom:1px solid #28322c26;position:sticky;top:0;z-index:30;font-size:16px}.toolbar a{text-underline-offset:5px}.toolbar button{background:#203e35;color:#fffaf1;border:0}.toolbar strong{font-weight:600}.football #invitation{container-type:inline-size}section{position:relative;isolation:isolate;padding:84px 8%}.hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;padding:110px 7% 56px;gap:36px;min-height:690px;overflow:hidden}.hero-copy{position:relative;z-index:2;min-width:0}.hero-identity{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.age-badge{border:2px solid currentColor;border-radius:50%;width:126px;height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;font:700 68px/1 FootballWide,Arial}.age-badge small{font:16px/1.3 Arial;margin-top:4px}.subtitle{font-size:clamp(25px,2.8cqw,38px);line-height:1.25;white-space:pre-line;margin:28px 0;font-weight:600}.date{font-size:22px;font-variant-numeric:tabular-nums;border-inline-start:3px solid var(--accent);padding-inline-start:18px;margin:0;width:fit-content}.art-stage{position:relative;z-index:1;min-width:0;animation:float 7s ease-in-out infinite;line-height:0}.art-stage img{display:block;width:100%;height:auto}.hero-foot{grid-column:1/-1;margin:8px 0 0;padding-top:20px;border-top:1px solid currentColor;font-size:16px;opacity:.85}.hero #music-toggle{position:absolute;right:28px;top:22px;z-index:4;font-size:16px;min-height:44px}.hero #portrait{margin:0;overflow:hidden;border-radius:24px;width:100%;max-height:500px;line-height:0}.hero #portrait img{width:100%;height:100%;object-fit:contain}.portrait-add{grid-column:1/-1;justify-self:center}.hero.has-portrait .art-stage{display:none}.intro{display:grid;grid-template-columns:.85fr 1.6fr;align-items:center;gap:8%;background:var(--soft)}.copy{min-width:0}.intro .invitation-prose{max-width:750px}.pitch-art{height:270px;width:100%;border:2px solid currentColor;position:relative;opacity:.9;transform:rotate(-7deg);border-radius:8px}.pitch-art:before{content:'';position:absolute;width:2px;height:100%;background:currentColor;left:50%}.pitch-art:after{content:'';position:absolute;left:50%;top:50%;width:80px;height:80px;border:2px solid currentColor;border-radius:50%;transform:translate(-50%,-50%)}.pitch-art span,.pitch-art i{position:absolute;width:24%;height:48%;top:26%;border:2px solid currentColor}.pitch-art span{left:-2px}.pitch-art i{right:-2px}.pitch-art b,.pitch-art em{position:absolute;width:22px;height:22px;background:var(--accent);border:2px solid currentColor;border-radius:50%;top:60%;left:22%}.pitch-art em{left:68%;top:20%}.venue{display:grid;grid-template-columns:1fr 170px;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.venue h2{max-width:750px}.venue-mark{width:130px;justify-self:center;transform:rotate(8deg)}.venue-mark svg{width:100%;display:block}.venue a{display:inline-block;padding:10px 0;text-underline-offset:5px}.venue figure{grid-column:1/-1;margin:15px 0 0}.venue figure img{display:block;max-height:420px;margin:auto;border-radius:20px}.program{display:grid;grid-template-columns:1fr 1.1fr;gap:8%}.schedule-row{display:grid;grid-template-columns:74px 1fr;gap:20px;padding:25px 0;border-top:1px solid var(--line);align-items:baseline}.schedule-row time{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.schedule-row span{min-width:0}.invitation-details{display:flex;gap:7%;align-items:center;background:var(--soft)}.kit-art{width:170px;flex:0 0 170px;transform:rotate(-8deg)}.details-copy{flex:1;min-width:0}.invitation-details h2{font-size:clamp(28px,3cqw,42px)}.invitation-details:before{content:none}.gallery-section{text-align:center}.gallery{display:flex;justify-content:center;gap:24px;flex-wrap:wrap}.gallery figure{flex:0 1 42%;margin:0}.gallery img{display:block;max-width:100%;height:auto;border-radius:18px}.gallery button{margin-top:15px}.rsvp{padding:70px 8%;text-align:center}.rsvp-copy{max-width:740px;margin:auto;padding:48px;background:var(--soft);border:1px solid var(--line);border-radius:22px}.rsvp h2{font-size:clamp(28px,3.3cqw,44px)}.rsvp details{max-width:540px;margin:auto}.rsvp summary{list-style:none;background:var(--ink);color:var(--paper);padding:16px 24px;border-radius:32px;text-align:center}.rsvp summary::-webkit-details-marker{display:none}.rsvp form{text-align:start;margin-top:24px;border-top:1px solid var(--line);padding-top:22px}.rsvp fieldset{border:0;padding:0;margin:0 0 22px}.rsvp label{display:block;margin:12px 0}.rsvp input{width:20px;height:20px;vertical-align:middle;accent-color:var(--ink);margin-inline-end:7px}.rsvp textarea{width:100%;min-height:90px;margin-top:10px;border:1px solid var(--ink);border-radius:10px;padding:10px}.rsvp form button{background:var(--ink);color:var(--paper)}#rsvp-status{font-size:16px;margin-top:18px}.closing{text-align:center;padding-top:20px;padding-bottom:40px}.closing>img{display:block;width:clamp(170px,23vw,280px);height:auto;margin:0 auto 22px}.closing h2{max-width:900px;margin:auto;white-space:pre-line}footer{text-align:center;padding:80px 20px 40px;font:14px/1.5 Arial}footer a{text-decoration:none;opacity:.75}.edit-only{display:none}.editing .edit-only{display:inline-block}.editing [data-field]{outline:1px dashed #8b8967;outline-offset:5px;position:relative;cursor:text;min-height:1.2em}.editing [data-field]:after{content:'✎';font:16px Arial;position:absolute;right:-17px;top:-15px;background:#fffaf1;color:#28322c;border:1px solid #ada790;border-radius:50%;width:28px;height:28px;text-align:center;padding:4px}.editing #invitation{margin-left:300px}.editing #editor{display:block}#editor{display:none;position:fixed;top:74px;bottom:0;left:0;width:300px;overflow:auto;background:#fffaf1;color:#27362e;padding:25px;z-index:25;border-right:1px solid #c6c6af;font-size:17px}#editor h2{font:30px Georgia;margin-bottom:25px}#editor label{display:block;margin:16px 0}#editor input:not([type=checkbox]),#editor textarea{display:block;width:100%;padding:10px;margin-top:7px;background:#fffef9;border:1px solid #acae95;border-radius:8px;font-size:16px}#editor textarea{min-height:92px;resize:vertical}#editor button{font-size:16px;margin:6px 0;padding:9px 14px}#editor .check{display:flex;gap:9px;align-items:flex-start}#editor .check input{width:20px;height:20px;flex-shrink:0}#save-status{font-size:16px;position:sticky;bottom:-25px;background:#fffaf1;padding:14px 0}.mobile-settings,.mobile-close{display:none}.settings{font-size:16px;margin-top:18px}
/* Floodlit field: deep green, clean white numbers and electric lime. */
.stadium{--paper:#f0f4e9;--ink:#123d31;--soft:#e0e9d4;--accent:#d7f275;--line:#a5b7a2;--kit:#d7f275}.stadium .hero{background:radial-gradient(ellipse at 70% 15%,#28746480,transparent 55%),repeating-linear-gradient(90deg,transparent 0 12%,#ffffff03 12% 24%),#0b302a;color:#f3f8e9}.stadium .age-badge{color:#dbf582;border-color:#b7d86690;box-shadow:0 0 0 8px #a3d36310}.stadium .intro .pitch-art{color:#397954;background:repeating-linear-gradient(90deg,#d2dfc5 0 20%,#c8d9ba 20% 40%)}.stadium .program{background:#173e35;color:#f3f7e9;--line:#819e89}.stadium .schedule-row time{color:#d7f275}.stadium .venue h2{letter-spacing:-.035em}.stadium .rsvp-copy{border-top:7px solid #2b6650}
/* Comic football: rounded letters, playful panels and sharp colour blocks. */
.comic{--paper:#fff3c0;--ink:#233a9d;--soft:#d7e9fb;--accent:#ff7054;--line:#7481ac;--kit:#ff8c72}.comic h1,.comic h2{font-family:FootballRound,Arial;letter-spacing:-.025em}.comic h1{font-size:clamp(75px,9cqw,130px)}.comic .hero{background:radial-gradient(#c9ae5a50 1.2px,transparent 1.4px) 0 0/16px 16px,#fff3c0}.comic .hero-copy{z-index:2}.comic .hero .eyebrow{display:inline-block;padding:8px 14px;background:#fffdf4;border:2px solid #233a9d;box-shadow:4px 4px #233a9d;transform:rotate(-3deg)}.comic .age-badge{background:#ff785c;border:3px solid #233a9d;border-radius:23px;transform:rotate(7deg);box-shadow:6px 6px #233a9d;font-family:FootballRound}.comic .intro{border-block:3px solid #233a9d;background:#80bbed}.comic .intro .copy{background:#fffaf0;border:3px solid #233a9d;padding:32px;box-shadow:9px 9px #233a9d;transform:rotate(1deg)}.comic .pitch-art{background:#fff3c0}.comic .venue{background:#ff9478}.comic .venue h2{display:inline;background:#fff5cb;box-shadow:8px 8px #233a9d;padding:0 8px;box-decoration-break:clone}.comic .venue .invitation-prose{margin-top:28px}.comic .program{background:#233a9d;color:#fff7df;--line:#99a8e4}.comic .schedule-row time{color:#ffdb75}.comic .invitation-details{background:#fff7df;border-bottom:3px solid #233a9d}.comic .rsvp-copy{border:3px solid #233a9d;box-shadow:8px 8px #233a9d;border-radius:8px;background:#ff967c}.comic .closing h2{transform:rotate(-2deg)}
/* Match ticket: printed cream stock, oxblood accents, perforations. */
.ticket{--paper:#f6edd9;--ink:#213e31;--soft:#ece0c7;--accent:#b74339;--line:#8c947d;--kit:#e1be72}.ticket h1,.ticket h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em}.ticket .hero{margin:35px 5% 0;border:1px solid #58684c;border-radius:20px;background:linear-gradient(90deg,transparent 67%,#213e31 67%);padding:80px 5% 35px;min-height:650px}.ticket .hero-copy{align-self:center}.ticket .hero .art-stage{filter:drop-shadow(0 15px 12px #0002)}.ticket .hero .eyebrow{border-top:2px solid #213e31;border-bottom:1px solid #213e31;padding:10px 0;font-size:16px;letter-spacing:.04em}.ticket .hero h1{font-size:clamp(70px,8cqw,120px)}.ticket .age-badge{color:#a9322a;border:3px double #a9322a;border-radius:0;width:116px;height:116px;font-family:Georgia;transform:rotate(-5deg)}.ticket .hero #music-toggle{color:#fff7e3;background:#213e31}.ticket .hero-foot{color:#213e31;background:#f6edd9;padding:14px;grid-column:1/-1;border-top:2px dashed #9c9e86;text-align:center}.ticket .intro{background:none;grid-template-columns:1fr 1.4fr}.ticket .pitch-art{border:1px solid;color:#768365;background:#ede3cf;transform:rotate(-4deg)}.ticket .venue{background:#213e31;color:#fff0d5;border-block:8px double #f6edd9}.ticket .venue-mark{color:#e7bc6c}.ticket .program{border-bottom:2px dashed #8c947d}.ticket .schedule-row time{color:#a9322a}.ticket .invitation-details{background:#eadcc3}.ticket .rsvp-copy{border:1px solid #213e31;border-top:8px double #213e31;border-radius:4px;position:relative}.ticket .rsvp-copy:before,.ticket .rsvp-copy:after{content:'';width:25px;height:25px;border-radius:50%;background:var(--paper);border:1px solid #213e31;position:absolute;top:50%;left:-13px}.ticket .rsvp-copy:after{left:auto;right:-13px}.ticket .closing h2{font-style:italic}.ticket footer{border-top:1px dashed #8c947d;margin-top:30px}
.reveal-part{transition:opacity .7s ease,transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}.reveal-part.waiting{opacity:0;transform:translateY(24px)}.reveal-part.waiting.pitch-art,.reveal-part.waiting.kit-art{transform:translateY(30px) rotate(-12deg)}@keyframes float{50%{transform:translateY(-9px) rotate(1deg)}}
@media(max-width:1000px) and (min-width:761px){.age-badge{width:100px;height:100px;font-size:54px}.hero-identity{gap:14px}.ticket .hero{padding-inline:4%}.hero{gap:20px}}
@media(max-width:760px){body{font-size:18px}.toolbar{height:68px;padding:10px 16px;gap:10px}.toolbar strong{display:none}.toolbar button{padding:10px 17px}.hero,.ticket .hero{grid-template-columns:1fr;padding:105px 7% 25px;gap:20px;min-height:0;text-align:center}.hero h1,.comic .hero h1,.ticket .hero h1{font-size:clamp(52px,15cqw,80px)}.hero-identity{justify-content:center;gap:18px}.age-badge,.ticket .age-badge{width:90px;height:90px;font-size:48px}.subtitle{font-size:28px;margin:25px 0}.date{font-size:19px;margin:auto}.art-stage{width:min(100%,370px);margin:0 auto}.hero #music-toggle{top:18px;right:18px}.hero-foot{margin:0;font-size:16px}.hero #portrait{max-width:400px;margin:auto}.ticket .hero{margin:18px 4% 0;background:linear-gradient(0deg,#213e31 0 38%,#f6edd9 38%)}.ticket .hero-foot{border:0;border-radius:5px}.ticket .hero .eyebrow{font-size:16px}.ticket .art-stage{width:100%}section{padding:55px 7%}.intro,.ticket .intro{display:flex;flex-direction:column;gap:35px}.intro .copy{order:-1}.pitch-art{width:80%;height:165px;max-width:350px}.pitch-art:after{width:55px;height:55px}.comic .intro .copy{padding:25px 20px;transform:none}.venue{grid-template-columns:1fr;text-align:center;gap:24px}.venue-mark{width:90px;grid-row:1}.program{display:block}.program h2{margin-bottom:35px}h2,.invitation-details h2{font-size:clamp(30px,8cqw,40px)}.schedule-row{grid-template-columns:66px 1fr;gap:16px;padding:22px 0}.invitation-details{flex-direction:column;gap:25px;text-align:center}.kit-art{width:130px;flex:0 0 auto}.rsvp{padding:45px 7%}.rsvp-copy{padding:32px 20px}.rsvp h2{font-size:30px}.rsvp summary{font-size:17px;padding:16px}.closing{padding-top:12px}.closing>img{width:190px}.gallery figure{flex-basis:100%}.editing #invitation{margin:0}.editing #editor{display:none;top:68px;width:100%;height:65dvh;bottom:auto;box-shadow:0 20px 50px #0005}.editing #editor.open{display:block}.editing .toolbar>a{display:none}.editing .mobile-settings,.editing .mobile-close{display:block}.editing .toolbar{justify-content:space-between}.mobile-close{position:sticky;top:-25px;background:#fffaf1;z-index:2}.editing [data-field]:after{right:-10px}.settings{max-width:100%}footer{padding-top:60px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-part.waiting{opacity:1;transform:none}}

/* Realistic kit illustration in the ticket variant. */
.ticket .ticket-kit-art{width:clamp(220px,26vw,340px);height:auto;flex:0 0 auto;object-fit:contain}.ticket .invitation-details{gap:5%;padding-block:48px}.ticket .details-copy{min-width:0}
@media(max-width:760px){.ticket .ticket-kit-art{width:min(70vw,260px)}.ticket .invitation-details{gap:18px;padding-block:36px}}

/* Give the stadium age more breathing room inside its circular border. */
.stadium .age-badge{width:156px;height:156px}
@media(min-width:761px) and (max-width:1000px){.stadium .age-badge{width:124px;height:124px}}
@media(max-width:760px){.stadium .age-badge{width:110px;height:110px}}

/* Stadium miniature replaces the venue outline icon. */
.stadium .venue{grid-template-columns:1fr minmax(230px,340px);gap:40px}.stadium .venue-mark{width:100%;transform:none}.stadium .venue-mark img{display:block;width:100%;height:auto}
@media(max-width:760px){.stadium .venue{grid-template-columns:1fr;gap:24px}.stadium .venue-mark{width:min(75vw,280px)}}

/* Photographic sports kit for the stadium details section. */
.stadium .stadium-kit-art{width:clamp(220px,26vw,340px);height:auto;flex:0 0 auto;object-fit:contain}.stadium .invitation-details{gap:5%;padding-block:48px}.stadium .details-copy{min-width:0}
@media(max-width:760px){.stadium .stadium-kit-art{width:min(70vw,260px)}.stadium .invitation-details{gap:18px;padding-block:36px}}
