/* Festival details: warm yellow, orange, sky blue and the school's blue logo. */
header{height:94px;position:relative;z-index:4}.brand{gap:12px}.brand-logo{display:block;width:62px;height:48px;object-fit:contain}.brand>span:last-child{color:#c55e0a}.brand small{color:#254c67;letter-spacing:2px}.top-link{background:#ffedb2;border:1px solid #e5bc61;border-radius:30px;padding:7px 15px;transform:rotate(3deg)}
.hero{isolation:isolate;background:radial-gradient(ellipse at 86% 0,#bce5f2 0,transparent 42%),radial-gradient(ellipse at 8% 95%,#ffdc6b 0,transparent 50%),linear-gradient(150deg,#fff5c7,#ffe690);padding-top:83px;padding-bottom:78px}.hero-inner{position:relative;z-index:2}.hero:after{content:"";height:20px;position:absolute;bottom:-10px;left:0;right:0;background:radial-gradient(circle at 10px 0,transparent 10px,var(--paper) 10.5px) 0 0/20px 20px;z-index:3}
.bunting{position:absolute;top:3px;left:-2%;right:-2%;height:78px;border-top:2px solid #668d8f66;border-radius:0 0 50% 50%;display:flex;justify-content:space-around;gap:24px;transform:rotate(-3deg);pointer-events:none;z-index:0}.bunting i{width:34px;height:48px;flex-shrink:0;clip-path:polygon(0 0,100% 0,50% 100%);background:#ed823a;transform:rotate(4deg);filter:drop-shadow(1px 3px 0 #0001)}.bunting i:nth-child(3n){background:#6daecc}.bunting i:nth-child(3n+1){background:#ffcd52}.bunting i:nth-child(even){transform:rotate(-8deg);height:40px}
.cloud{position:absolute;background:#fffdf3;border-radius:80px;width:120px;height:30px;opacity:.85;z-index:0;pointer-events:none}.cloud:before,.cloud:after{content:"";position:absolute;bottom:8px;background:inherit;border-radius:50%}.cloud:before{width:48px;height:48px;left:17px}.cloud:after{width:63px;height:63px;right:15px}.cloud-one{right:7%;top:66px;animation:cloud-drift 8s ease-in-out infinite}.cloud-two{right:35%;bottom:27px;transform:scale(.65);opacity:.65}
.festival-confetti{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}.festival-confetti i{position:absolute;display:block;width:8px;height:16px;background:#e58e45;border-radius:1px;left:var(--x);top:var(--y);transform:rotate(var(--r));opacity:.7;animation:confetti-drift 5s ease-in-out infinite;animation-delay:var(--d)}.festival-confetti i:nth-child(3n){background:#73adbe;width:8px;height:8px;border-radius:50%}.festival-confetti i:nth-child(3n+1){background:#efacbe;width:13px;height:6px}.festival-confetti i:nth-child(4n){background:transparent;border:2px solid #d6a031;width:13px;height:13px;border-radius:50%}
.eyebrow{display:inline-flex;padding:6px 12px;border:1px solid #bd8d2e66;background:#fff9dfc9;border-radius:30px;font-size:11px;letter-spacing:1.7px;box-shadow:2px 2px 0 #eecb76}.eyebrow .dot{box-shadow:0 0 0 4px #f6cb7b55}h1{line-height:1.2;text-shadow:2px 3px #fff7d4;letter-spacing:-2px}h1 em{color:#db6817}h1 em:after{border-bottom:4px solid #f5b63d;height:13px;bottom:-7px;transform:rotate(-2deg)}.intro{position:relative;padding-left:13px;border-left:3px solid #e78a36}
.hero-date{display:inline-flex;position:relative;background:#fffcdf;border:1px solid #d8ad50;border-radius:10px;margin-top:27px;padding:15px 19px;box-shadow:3px 4px 0 #eac16b;transform:rotate(-2deg)}.hero-date:before,.hero-date:after{content:"";position:absolute;top:50%;width:11px;height:11px;border:1px solid #d8ad50;background:#ffe59a;border-radius:50%;transform:translateY(-50%)}.hero-date:before{left:-6px}.hero-date:after{right:-6px}.date-note{border-left:1px dashed #c9af6c}.date-big{color:#22556d}.hero-copy .primary{margin-top:27px;border-radius:40px;box-shadow:0 4px 0 #b65312,0 8px 18px #d6873033;gap:38px}.hero-copy .little-note{font-size:11px;opacity:.75}
.hero-visual{min-height:430px}.art-frame{border:2px solid #22556d;border-radius:48% 48% 24px 24px;padding-top:56px;padding-bottom:18px;background:linear-gradient(145deg,#f6de8e,#f8cc65);box-shadow:9px 10px 0 #e8a449,14px 16px 0 #fff4c0;transform:rotate(3deg)}.art-label{top:31px;letter-spacing:1.5px;color:#41616b}.poster-art{border:2px solid #fff3bd;background:#d4eef6}.sticker{background:#c0e0ea;right:-15px;top:5px;width:90px;height:90px;border:2px dashed #376b83;outline:5px solid #c0e0ea;box-shadow:4px 5px 0 #a0bfc866;animation:sticker-rock 7s ease-in-out infinite}.ticket{background:#fffbe9;border-radius:3px;bottom:10px;left:-12px;padding:10px 16px;border:1.5px solid #1f586f;box-shadow:4px 5px 0 #ed8d44;transform:rotate(-6deg)}
.sun-sticker{position:absolute;top:-28px;left:20px;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:#ffcd4b;color:#b56c1e;font-size:43px;border:1px solid #cd9d39;box-shadow:0 0 0 6px #ffdc6d88;transform:rotate(-12deg);z-index:3}.sun-sticker:after{content:"GOOD DAY!";font-size:8px;letter-spacing:.7px;position:absolute;bottom:10px;color:#7d5f20}.hero-visual>.spark{z-index:3;left:-12px;top:67px;font-size:39px}
.balloons{position:absolute;right:-35px;bottom:-23px;width:80px;height:150px;z-index:3;pointer-events:none;animation:balloon-float 5s ease-in-out infinite;transform-origin:50% 100%}.balloon{position:absolute;width:38px;height:48px;border-radius:50% 50% 46% 46%;background:#8bc9df;border:1px solid #4f8290;transform:rotate(14deg);left:32px;top:10px;box-shadow:inset -6px -5px 0 #65acc31c}.balloon:before{content:"";position:absolute;width:7px;height:14px;border-radius:50%;background:#fff8;left:8px;top:8px;transform:rotate(18deg)}.balloon:after{content:"";position:absolute;width:35px;height:95px;border-left:1px solid #6f8379;border-radius:50%;left:8px;top:46px;transform:rotate(-14deg)}.balloon.b2{left:0;top:30px;background:#eda8b8;border-color:#be7787;transform:rotate(-18deg)}.balloon.b3{width:32px;height:41px;left:17px;top:0;background:#ffdf6b;border-color:#bd9f48;transform:rotate(-10deg)}.balloon.b3:after{top:40px}
.bbq-badge{position:absolute;right:21px;bottom:-30px;background:#fdf4d4;border:2px solid #e38a35;outline:4px solid #fff8d9;border-radius:10px;padding:9px 17px;color:#b75313;transform:rotate(8deg);font-family:Georgia,serif;font-weight:900;font-size:19px;letter-spacing:1px;box-shadow:3px 4px 0 #eecb79;z-index:3}.bbq-badge small{font-family:system-ui,sans-serif;font-size:9px;display:block;text-align:center;letter-spacing:2px}
.ribbon{background:#23546b;color:#fff4c9;transform:rotate(-.6deg);width:100%;position:relative;z-index:3;box-shadow:0 5px 0 #e8b85733;font-size:11px;letter-spacing:2px;padding:13px 0}.ribbon span:nth-child(2){color:#ffd86d}
.welcome{position:relative}.welcome:after{content:"✧";position:absolute;right:20px;top:27px;font-size:39px;color:#dc9d3d;transform:rotate(13deg)}.note-card{border-color:#c8ae6b;padding:35px 31px;background:repeating-linear-gradient(transparent 0,transparent 27px,#d8cba930 28px),#fffdf0;box-shadow:6px 8px 0 #eddbab;transform:rotate(-2deg);border-radius:3px}.note-card:before{background:#b7dfe9b3;width:105px;height:25px;transform:rotate(5deg);border-left:2px dashed #83a9b299;border-right:2px dashed #83a9b299}.note-card .salute{display:inline-block;font-size:12px;background:#fff0b6;border-radius:3px;padding:2px 7px;margin-bottom:17px}.note-card:after{content:"♡";position:absolute;right:22px;bottom:16px;font-size:32px;color:#db8c44;opacity:.3;transform:rotate(-12deg)}.signature{padding-right:35px}
.activities{position:relative;background:radial-gradient(circle at 15px 15px,#e2bb6144 1.2px,transparent 1.5px) 0 0/18px 18px,#f9e49b;border:0}.activities:before,.activities:after{content:"";position:absolute;left:0;right:0;height:15px;background:radial-gradient(circle at 8px 0,transparent 8px,var(--paper) 8.5px) 0 0/16px 15px;top:-1px;transform:rotate(180deg)}.activities:after{top:auto;bottom:-1px;transform:none}.activities .section{position:relative}.section-tag{letter-spacing:2.5px}.moments{gap:16px}.moment{background:#fff7d9aa;border:1px solid #c7a04b66;border-radius:12px;padding:23px 20px 24px;box-shadow:3px 4px 0 #dabc5c40;position:relative;overflow:hidden}.moment:nth-child(1){transform:rotate(-2deg)}.moment:nth-child(2){transform:rotate(1deg);background:#eaf5f1bb}.moment:nth-child(3){transform:rotate(-1deg);background:#fff0e8b3}.moment .num{font-size:30px}.moment .symbol{width:42px;height:42px;display:grid;place-items:center;background:#f4cf71;border-radius:50%;font-size:27px;color:#bf6b21}.moment:nth-child(2) .symbol{background:#c1e2e6;color:#40819b}.moment:nth-child(3) .symbol{background:#efc3b7;color:#a75e3b}
.event-strip{padding:22px 24px;background:#fffdf0;border:1px dashed #bdab70;border-radius:12px;box-shadow:5px 5px 0 #eddfb0;position:relative}.event-strip:after{content:"NOV. 07";position:absolute;right:18px;top:-17px;background:#bcdfe6;color:#356677;border:1px solid #5a8d9b;padding:2px 9px;transform:rotate(5deg);font-size:10px;font-weight:800;letter-spacing:1px}.event-label{color:#9d641f;opacity:1;font-size:10px}.event-value{font-size:15px}.event-footnote{font-size:11px}
.reservation{position:relative}.reserve-left h2{position:relative;display:inline-block}.reserve-left h2:after{content:"✷";position:absolute;color:#e8a23e;right:-60px;top:5px;font-size:54px;font-weight:400;transform:rotate(12deg)}.reserve-number{font-size:69px;color:#dfbd695c}.form-card{position:relative;border-color:#2c5f70;border-radius:15px;box-shadow:7px 8px 0 #e6c77f;background:linear-gradient(#fffbec,#fffdf4)}.form-card:before{content:"";position:absolute;left:calc(50% - 45px);top:-12px;width:90px;height:23px;background:#f0b963b0;transform:rotate(-3deg);border-left:2px dashed #b8803066;border-right:2px dashed #b8803066}.form-card:after{content:"SEE YOU!";position:absolute;right:-12px;top:-25px;background:#bbdfe8;color:#2b6076;border:1px solid #7297a0;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;font-size:9px;letter-spacing:.8px;font-weight:800;transform:rotate(16deg);outline:4px solid #fff8d9;pointer-events:none}.form-top strong{color:#b75a16}.form-top{border-color:#c1ad6c}.form-card .primary{border-radius:8px;background:linear-gradient(100deg,#ef8c1d,#eb7516)}input[type=text]:focus,input[type=tel]:focus,select:focus{border-color:#d78624;box-shadow:0 0 0 3px #f2bc6322}.type-options input:checked+span{box-shadow:inset 0 0 0 1px #eea23f;background:#fff0bc}.bottom-bar{border-top:2px solid #dfbb66;background:#fff9e9f5}.bottom-bar .primary{border-radius:30px;min-width:168px;font-weight:800}.bottom-date:before{content:"✦";color:#d98727;margin-right:7px}.bottom-date small{padding-left:20px}footer{position:relative}footer:before{content:"✦  LET'S MEET & EAT  ✦";position:absolute;left:50%;top:-12px;transform:translateX(-50%);font-size:9px;letter-spacing:2px;background:var(--paper);padding:2px 13px;white-space:nowrap;color:#a37434}
.click-confetti{position:fixed;width:6px;height:11px;top:var(--cy);left:var(--cx);z-index:50;pointer-events:none;background:var(--cc);border-radius:2px;animation:celebrate .8s ease-out forwards}
@keyframes cloud-drift{50%{translate:12px 0}}@keyframes confetti-drift{50%{translate:2px -8px;rotate:14deg}}@keyframes sticker-rock{50%{transform:rotate(7deg) translateY(-3px)}}@keyframes balloon-float{50%{transform:translateY(-7px) rotate(4deg)}}@keyframes celebrate{to{transform:translate(var(--dx),var(--dy)) rotate(230deg);opacity:0}}
@media(max-width:799px){header{height:82px;padding:0 21px}.brand-logo{width:49px;height:38px}.brand{gap:9px;font-size:19px}.brand small{font-size:7px;letter-spacing:1.4px}.top-link{font-size:10px;padding:5px 9px;white-space:nowrap}.hero{padding:65px 24px 63px}.bunting{top:0;gap:20px;height:50px;left:-15%;right:-15%}.bunting i{width:24px;height:34px}.bunting i:nth-child(even){height:28px}.bunting i:nth-child(n+9){display:none}.cloud-one{top:64px;right:-24px;transform:scale(.68);opacity:.7}.cloud-two{right:9%;bottom:18px}.hero .eyebrow{font-size:10px;padding:5px 10px;letter-spacing:1px}h1{font-size:50px;margin-top:22px;margin-bottom:25px;letter-spacing:-1.5px}.hero .intro{font-size:12px;padding-left:11px}.hero-date{padding:13px 16px;margin-top:24px;gap:15px}.date-big{font-size:33px}.date-note{font-size:10px;padding-left:14px}.hero-copy .primary{margin-top:24px;font-size:13px;min-width:190px;padding:11px 20px}.hero-copy .little-note{font-size:10px;margin-top:13px}.hero-visual{min-height:0;margin:28px 13px 10px}.art-frame{padding:43px 9px 12px;box-shadow:7px 8px 0 #e8a449,11px 13px 0 #fff4c0;border-radius:48% 48% 18px 18px}.art-label{font-size:8px;letter-spacing:.4px;top:23px}.sun-sticker{width:53px;height:53px;top:-18px;left:13px;font-size:32px;box-shadow:0 0 0 4px #ffdc6d88}.sun-sticker:after{font-size:6px;bottom:8px}.sticker{width:67px;height:67px;font-size:10px;right:-18px;top:-8px;outline-width:4px}.hero-visual>.spark{font-size:27px;left:-15px;top:48px}.ticket{font-size:9px;bottom:3px;left:-17px;padding:7px 12px}.balloons{right:-31px;bottom:-26px;transform:scale(.77);transform-origin:bottom right;animation-name:balloon-float-small}.bbq-badge{font-size:14px;right:13px;bottom:-27px;padding:6px 11px;outline-width:3px}.bbq-badge small{font-size:7px;letter-spacing:1px}.ribbon{padding:11px 0;font-size:9px;letter-spacing:.6px}.ribbon span{margin:0 12px}.section{padding-top:48px;padding-bottom:48px}.note-card{padding:31px 22px 26px;margin:3px 5px}.note-card p{font-size:12px;line-height:2.15}.note-card .salute{font-size:11px}.welcome:after{right:19px;top:33px;font-size:30px}.moments{gap:15px;margin-top:27px}.moment{padding:20px 17px;grid-template-columns:40px 1fr;column-gap:10px;border-radius:10px}.moment .num{font-size:29px}.moment .symbol{display:none}.moment h3{font-size:16px}.moment p{font-size:12px}.activities .section{padding-top:43px;padding-bottom:43px}.event-strip{padding:22px 19px;row-gap:25px;margin-top:29px}.event-value{font-size:14px}.event-value.pending{font-size:12px}.event-label{font-size:9px}.form-card{margin:8px 4px 0 0;padding:28px 20px 23px}.form-card:after{width:48px;height:48px;font-size:8px;right:-10px;top:-23px}.form-top span{font-size:8px;letter-spacing:.5px}.reserve-left h2:after{right:-65px;top:9px;font-size:47px}.bottom-bar .primary{min-width:145px;font-size:12px;padding:10px 20px;gap:20px}.bottom-date{font-size:13px}.bottom-date small{font-size:8px;padding-left:17px}.bottom-date:before{margin-right:5px}.festival-confetti i{opacity:.55}.hero-copy{position:relative}.hero-copy:after{content:"LET'S BBQ!";position:absolute;right:-10px;bottom:47px;writing-mode:vertical-rl;letter-spacing:3px;color:#b17c27;font-size:9px;font-weight:700;transform:rotate(8deg)}}
@keyframes balloon-float-small{50%{transform:scale(.77) translateY(-6px) rotate(4deg)}}@media(max-width:360px){.brand-logo{width:42px}.brand{font-size:17px}.brand small{font-size:6px}h1{font-size:45px}.hero{padding-left:20px;padding-right:20px}.date-note{font-size:9px}.hero-date{padding-left:13px;padding-right:13px}.bottom-date small{font-size:7px}.bottom-bar .primary{min-width:127px}.hero-copy:after{right:-9px;font-size:8px}.art-label{font-size:7px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.click-confetti{display:none}}
