@font-face{font-family:Bangers;src:url('bangers-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Nunito;src:url('nunito-latin.woff2') format('woff2');font-weight:400 900;font-style:normal;font-display:swap}
:root{--navy:#071d39;--navy-light:#102b4c;--red:#e92538;--yellow:#ffdf42;--paper:#fffdfa;--ink:#10223a;--muted:#abb9cc;--border:#dbe2e9;--display:Bangers,Impact,'Arial Narrow',sans-serif;--body:Nunito,'Trebuchet MS',Arial,sans-serif;color-scheme:dark;scroll-behavior:smooth;scroll-padding-top:24px}
*{box-sizing:border-box}body{margin:0;background:var(--navy);color:white;font-family:var(--body);font-size:1rem;line-height:1.6}a{color:inherit}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}input:focus-visible,textarea:focus-visible{outline:3px solid #277ec0;outline-offset:2px}[hidden]{display:none!important}.wrap{width:min(1180px,calc(100% - 80px));margin-inline:auto}.skip-link{position:fixed;left:20px;top:-100px;z-index:50;background:var(--yellow);color:var(--ink);padding:12px 20px}.skip-link:focus{top:12px}
.site-header{display:flex;justify-content:space-between;align-items:center;padding-block:25px;position:relative;z-index:3}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:900;letter-spacing:1.5px;line-height:1.2}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:var(--red);font-family:var(--display);font-size:2rem;box-shadow:3px 3px 0 var(--yellow);transform:rotate(-5deg)}.brand small{display:block;font-size:.75rem;letter-spacing:1.6px;color:var(--muted);margin-top:5px}.header-link{font-size:.9rem;font-weight:800;text-decoration:none;border-bottom:2px solid var(--red);padding:5px 0}
.hero{display:grid;grid-template-columns:1.3fr .85fr;gap:70px;align-items:center;padding-top:37px;padding-bottom:68px;position:relative}.hero:before{content:'';position:absolute;inset:-100px 0 -80px -140px;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 80% 35%,#133963 0%,transparent 65%)}.hero-copy{position:relative}.eyebrow{display:flex;align-items:center;gap:12px;font-size:.78rem;letter-spacing:2.2px;font-weight:900;margin:0 0 22px}.mini-line{width:28px;height:3px;background:var(--red)}h1,h2{font-family:var(--display);font-weight:400;letter-spacing:.8px;line-height:1.07;margin:0}h1{font-size:clamp(3rem,5.15vw,4.6rem)}.outlined{color:var(--yellow);text-shadow:3px 3px 0 #a22134}.hero-name{display:inline-block;margin-top:9px;font-size:1.14em;color:white}.age{color:var(--yellow);display:inline-block;transform:rotate(-6deg)}.hero-description{color:#c6d0df;max-width:420px;font-size:1.06rem;line-height:1.75;margin:26px 0}.button{border:0;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:13px 28px;border-radius:5px;font-weight:900;text-decoration:none;transition:transform .18s,background .18s,box-shadow .18s;text-align:center}.button-red{background:var(--red);color:white;box-shadow:4px 4px 0 #7b1729}.button-red:hover{background:#d8192d;transform:translateY(-2px);box-shadow:4px 6px 0 #7b1729}.button-red:disabled{opacity:.7;transform:none}.hero-date{display:flex;gap:22px;align-items:center;margin-top:38px}.date-block{display:grid;line-height:1.1}.date-block strong{font-family:var(--display);font-size:2.75rem;letter-spacing:1px}.date-block span{font-size:.65rem;font-weight:900;letter-spacing:1.3px;margin-top:5px}.date-separator{height:42px;width:1px;background:#38516d}.hero-date>span:last-child{display:grid;gap:4px}.hero-date>span:last-child strong{font-size:1.1rem}.hero-date>span:last-child>span{font-size:.84rem;color:var(--muted)}
.hero-art{position:relative;width:min(350px,100%);margin-inline:auto;padding:14px 0 20px}.invitation{margin:0;background:#0d2f55;border:6px solid #fffdfa;border-radius:8px;box-shadow:12px 14px 0 #020f22,0 20px 60px #0005;transform:rotate(3deg);overflow:hidden}.invitation img{display:block;width:100%;height:auto}.art-tag{position:absolute;top:-4px;left:-20px;z-index:2;background:var(--yellow);color:var(--ink);padding:7px 18px;transform:rotate(-8deg);font-family:var(--display);font-size:1.15rem;letter-spacing:1px;box-shadow:3px 3px 0 #020f22}.art-caption{display:block;position:absolute;right:-17px;bottom:-3px;background:var(--red);font-size:.67rem;font-weight:900;letter-spacing:1px;padding:9px 13px;transform:rotate(-3deg);box-shadow:3px 3px 0 #020f22}
.mission-strip{background:var(--paper);color:var(--ink);position:relative;border-block:6px solid var(--yellow);color-scheme:light}.mission-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:40px;padding-block:31px}.detail{display:flex;gap:17px}.detail-number{font-family:var(--display);font-size:1.4rem;color:#bd182c;line-height:1;padding-top:4px}.detail>div{display:grid;align-content:start;gap:4px}.detail-label{font-size:.69rem;letter-spacing:1.3px;font-weight:900;color:#61738a}.detail strong{font-size:1.13rem;line-height:1.4}.detail>div>span:last-of-type{font-size:.86rem;line-height:1.55;color:#54657a}.map-link{font-size:.85rem;font-weight:900;color:#b6142a;text-underline-offset:4px;justify-self:start;margin-top:5px}
.confirmation{padding-block:88px 75px;display:grid;grid-template-columns:1fr 1.15fr;gap:85px;align-items:start}.confirmation-copy{padding-top:22px}.yellow{color:var(--yellow)}h2{font-size:clamp(2.8rem,4vw,3.65rem);line-height:1.12}h2 span{color:var(--yellow)}.confirmation-copy>p:not(.eyebrow){color:#c1cddd;font-size:1.02rem;max-width:385px;margin-top:26px}.family-note{display:flex;gap:18px;align-items:center;padding-top:25px;margin-top:30px;border-top:1px solid #29425f;max-width:355px}.note-star{color:var(--yellow);font-size:2.3rem}.family-note p{font-size:.9rem;line-height:1.8;color:#b5c3d6;margin:0}.family-note strong{color:white;font-weight:800}.form-card{background:var(--paper);color:var(--ink);border-radius:12px;box-shadow:9px 9px 0 #031228;border-top:7px solid var(--red);padding:32px 34px;color-scheme:light}.form-kicker{font-size:.71rem;letter-spacing:1.5px;font-weight:900;color:#b7192e}.form-heading h3,.success-panel h3{font-size:1.6rem;letter-spacing:-.5px;font-weight:900;line-height:1.25;margin:9px 0 8px}.form-heading p{margin:0 0 27px;font-size:.9rem;color:#677387}.field{display:grid;gap:7px;margin-bottom:18px}label,legend{font-weight:800;font-size:.9rem}label>span:not(.optional),legend>span{color:#b7192e}.field input,.field textarea{border:1px solid var(--border);background:white;color:var(--ink);border-radius:6px;min-width:0;width:100%;min-height:47px;padding:10px 13px;font-size:1rem}.field input::placeholder,.field textarea::placeholder{color:#758094;font-size:.88rem}.field textarea{resize:vertical;min-height:78px}.field-help{font-size:.75rem;color:#677387;line-height:1.55}.attendance{border:0;padding:0;margin:0 0 20px;min-width:0}.attendance legend{padding:0;margin-bottom:10px}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.radio-card{position:relative;display:flex;gap:9px;align-items:center;border:1px solid var(--border);border-radius:6px;padding:12px 10px;cursor:pointer;background:white;font-weight:800;font-size:.84rem;line-height:1.4}.radio-card>input{position:absolute;opacity:0;width:1px;height:1px}.radio-card:has(input:checked){border-color:#b7192e;background:#fff0f1;box-shadow:0 0 0 1px #b7192e}.radio-card:has(input:focus-visible){outline:3px solid #277ec0;outline-offset:3px}.radio-dot{flex:0 0 auto;width:16px;height:16px;border:2px solid #b9c3d0;border-radius:50%}.radio-card:has(input:checked) .radio-dot{border:4px solid var(--red);background:white}.radio-card>span:last-child{color:var(--ink)}.radio-card small{display:block;font-size:.67rem;color:#677387;font-weight:600;margin-top:3px}.count-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.count-grid .field{margin-bottom:0}.stepper{display:grid;grid-template-columns:40px 1fr 40px;border:1px solid var(--border);background:white;border-radius:6px;overflow:hidden;height:46px}.stepper button{border:0;background:#f1f4f8;color:var(--ink);font-weight:900;font-size:1.3rem}.stepper button:hover{background:#e2e8f0}.stepper input{padding:6px;min-height:0;border:0;border-radius:0;text-align:center;appearance:textfield;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button{appearance:none}.party-help{margin-top:9px;margin-bottom:22px}.optional{font-size:.72rem;font-weight:600;color:#677387;margin-left:5px}.submit-button{width:100%;min-height:51px;font-size:.96rem}.privacy-note{font-size:.7rem;line-height:1.6;color:#677387;text-align:center;margin:16px 8px 0}.form-message{background:#fff0f1;border:1px solid #e7a6ae;border-radius:6px;padding:12px;color:#981427;font-size:.88rem;margin:0 0 16px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.success-panel{padding:40px 0 32px;text-align:center}.success-check{background:#fff1ac;color:var(--ink);width:74px;height:74px;border-radius:50%;display:grid;place-items:center;font-size:2.7rem;font-weight:900;margin:0 auto 23px}.success-panel>p:not(.form-kicker){font-size:1rem;color:#56657b}.success-event{display:grid;gap:4px;margin-top:24px;background:#f0f3f8;padding:18px;border-radius:7px;font-size:.9rem}.noscript-note{font-size:.9rem;color:#981427}.site-footer{padding-block:25px 31px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid #233c58;font-size:.75rem;color:#a7b6ca}.footer-message{font-size:.69rem;font-weight:900;letter-spacing:1.4px}.site-footer a{font-weight:800;text-underline-offset:3px}
@media(min-width:1500px){.hero{padding-top:50px;padding-bottom:80px}.hero-art{width:355px}}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.hero{gap:35px;grid-template-columns:1.25fr 1fr}.hero h1{font-size:3.7rem}.hero-art{width:300px}.confirmation{gap:35px;grid-template-columns:1fr 1.15fr}.form-card{padding:27px 25px}.mission-grid{gap:24px}.detail{gap:10px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.site-header{padding-block:20px}.brand-mark{width:34px;height:34px;font-size:1.5rem}.brand{font-size:.88rem;gap:10px}.brand small{font-size:.59rem;letter-spacing:1px}.header-link{font-size:.76rem}.hero{grid-template-columns:1fr;padding-top:28px;padding-bottom:48px;gap:43px;text-align:center}.hero h1{font-size:clamp(3rem,11.2vw,4.5rem)}.hero .eyebrow{justify-content:center;letter-spacing:1.6px;font-size:.7rem;margin-bottom:19px}.hero-description{max-width:420px;margin:22px auto 24px;font-size:1rem}.hero .button{min-width:240px}.hero-date{justify-content:center;margin-top:30px;gap:20px}.hero-art{width:min(295px,calc(100% - 40px))}.art-tag{left:-14px;font-size:1rem}.art-caption{font-size:.6rem;right:-10px}.mission-grid{grid-template-columns:1fr 1fr;padding-block:28px;gap:24px 16px}.detail:nth-child(3){grid-column:1/-1;padding-top:22px;border-top:1px solid #dfe4eb}.detail-label{font-size:.6rem;letter-spacing:.8px}.detail-number{font-size:1.2rem}.detail strong{font-size:1rem}.detail>div>span:last-of-type{font-size:.82rem}.confirmation{grid-template-columns:1fr;gap:28px;padding-block:53px 45px}.confirmation-copy{padding:0}.confirmation-copy .eyebrow{font-size:.7rem;margin-bottom:16px}h2{font-size:3rem}.confirmation-copy>p:not(.eyebrow){max-width:none;margin-top:20px}.family-note{display:none}.form-card{padding:26px 23px;border-radius:9px;box-shadow:6px 6px 0 #031228}.form-heading h3{font-size:1.4rem}.site-footer{flex-direction:column;text-align:center;gap:10px;padding-block:23px}.privacy-note{font-size:.71rem}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.brand small{display:none}.hero h1{font-size:3rem}.form-card{padding:23px 17px}.radio-card{padding:11px 8px;font-size:.76rem;gap:7px}.radio-card small{font-size:.61rem}.hero-date{gap:16px}.hero-date>span:last-child>span{font-size:.75rem}.attendance-options{gap:8px}}
.spidey-gallery{padding-top:76px;padding-bottom:15px}.gallery-heading{text-align:center;margin-bottom:40px}.gallery-heading .eyebrow{justify-content:center;margin-bottom:17px}.gallery-heading h2{font-size:clamp(2.8rem,4vw,3.7rem)}.pose-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding:14px 12px 22px}.pose-grid:focus-visible{outline:3px solid var(--yellow);outline-offset:6px;border-radius:8px}.pose-card{margin:0;padding:8px 8px 0;min-width:0;background:var(--paper);border-radius:5px;box-shadow:8px 9px 0 #020f22;transform:rotate(-2deg);overflow:hidden}.pose-card:nth-child(2){transform:rotate(1deg);margin-top:20px}.pose-card:nth-child(3){transform:rotate(2deg)}.pose-card img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;background:#091d39;border-radius:2px}.pose-card figcaption{font-family:var(--display);font-size:1.5rem;letter-spacing:.6px;line-height:1.2;text-align:center;color:#b7192e;padding:19px 6px 20px}.gallery-swipe{display:none}
@media(max-width:1000px){.pose-grid{gap:22px}.pose-card figcaption{font-size:1.3rem}}
@media(max-width:760px){.spidey-gallery{padding-top:49px;padding-bottom:8px}.gallery-heading{margin-bottom:21px}.gallery-heading h2{font-size:3rem}.gallery-heading .eyebrow{font-size:.75rem}.pose-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:86%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:10px;gap:20px;padding:15px 10px 23px;scrollbar-width:thin;scrollbar-color:#55708c transparent}.pose-card,.pose-card:nth-child(2),.pose-card:nth-child(3){transform:none;scroll-snap-align:start;margin-top:0;box-shadow:5px 6px 0 #020f22}.pose-card figcaption{font-size:1.5rem;padding-block:17px}.gallery-swipe{display:block;color:var(--muted);font-size:.875rem;text-align:center;margin:12px 0 0}}
.art-caption,.form-kicker,.radio-card small,.optional,.privacy-note,.footer-message,.detail-label,.date-block span{font-size:.75rem}.brand small{font-size:.75rem;letter-spacing:1px}.eyebrow{font-size:.8rem}.hero-date>span:last-child>span{font-size:.88rem}
@media(max-width:760px){.brand small{font-size:.75rem;letter-spacing:.5px}.hero .eyebrow,.confirmation-copy .eyebrow{font-size:.75rem}.detail-label{font-size:.75rem;letter-spacing:.5px}.art-caption{font-size:.75rem;letter-spacing:.3px}.privacy-note{font-size:.75rem}.brand small{max-width:180px}}
@media(max-width:400px){.brand small{display:none}.radio-card small{font-size:.75rem}.hero-date>span:last-child>span{font-size:.82rem}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.button{transition:none}}
