@charset "UTF-8";
:root{--green:#021c0e;--gold:#f1d28e;--gold-dark:#b47e2b;--cream:#fff0cb;--red:#760b08;--ink:#061c10;--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:18px}body{margin:0;background:#010e07;color:var(--cream);font-family:var(--serif);line-height:1.45}a{color:inherit;text-underline-offset:4px}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #fff2af;outline-offset:5px}.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}.skip-link{position:fixed;z-index:20;top:12px;left:12px;transform:translateY(-200%);padding:12px 18px;background:var(--cream);color:var(--green);font-family:Arial,sans-serif}.skip-link:focus{transform:translateY(0)}h1,h2,h3,p{margin:0}svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.fill-gold{fill:currentColor;stroke:none}.page-shell{max-width:1100px;margin:auto;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 48% 47%,#0b3218 0%,#001507 74%);box-shadow:0 0 85px #000;container-type:inline-size}.page-shell::after{content:'';position:absolute;inset:0;z-index:5;pointer-events:none;background:url('assets/poster-artwork.webp') top center / 100% auto repeat-y;mask-image:linear-gradient(to right,#000 0%,#000 2%,transparent 9%,transparent 91%,#000 98%,#000 100%)}
.hero{position:relative;z-index:1}.hero-art{aspect-ratio:1024/407;overflow:hidden}.hero-art picture{display:block;width:100%;height:100%}.hero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.hero h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}main{position:relative;z-index:2}.section-title{display:flex;align-items:center;justify-content:center;gap:19px;padding:15px 7%;min-height:78px;color:var(--gold);font-size:clamp(24px,3.8cqw,43px);font-weight:500;letter-spacing:3px;text-transform:uppercase;line-height:1.15;text-align:center;text-shadow:0 2px 2px #000,1px 0 #9d6a26}.snowflake{font-size:1.02em;font-weight:400}.title-line{height:1px;flex:1;min-width:15px;max-width:125px;background:linear-gradient(90deg,transparent,#d8a644);position:relative}.title-line:after{content:'◆';position:absolute;right:-4px;top:-6px;color:#e8be69;font-size:9px;line-height:13px}.title-line:last-child{transform:rotate(180deg)}.parchment{background-color:#f6e5bf;background-image:radial-gradient(ellipse at 40% 45%,#fff5df,transparent 80%),repeating-linear-gradient(115deg,#cba57409 0px,#cba57409 1px,transparent 1px,transparent 3px);box-shadow:inset 0 0 25px #c8a46c4d;color:var(--ink)}.details-panel{display:grid;grid-template-columns:1fr .9fr 1.15fr;width:calc(100% - 72px);margin:0 auto;border-top:3px double var(--gold-dark);border-bottom:3px double var(--gold-dark);padding:7px 12px 15px;position:relative}.detail-item{text-align:center;padding:0 18px;display:flex;align-items:center;flex-direction:column;position:relative;justify-content:flex-start}.detail-item+.detail-item:before{content:'';position:absolute;left:0;top:8px;bottom:1px;width:1px;background:linear-gradient(#c08a31,#ba7f2b)}.detail-item+.detail-item:after{content:'◆';position:absolute;left:-3px;top:0;color:#b07825;font-size:9px}.detail-icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;padding:17px;color:var(--gold);background:radial-gradient(ellipse at 45% 40%,#123822,#001309);border:3px double #f4ca6b;box-shadow:0 2px 4px #7e5e35;margin:-2px 0 6px}.detail-label{text-transform:uppercase;letter-spacing:2px;font-size:19px;line-height:1.25;font-weight:600}.detail-item h3{font-size:clamp(20px,2.7cqw,31px);line-height:1.1;font-weight:700;text-transform:uppercase}.detail-item.venue h3{text-transform:none;font-size:clamp(19px,2.35cqw,27px);max-width:300px}.address{font-size:18px;line-height:1.15;margin-top:5px}.time-note{font-size:12px;margin-top:12px;opacity:.8}.map-link{font-family:Arial,sans-serif;font-size:11px;margin-top:7px;color:#653612;padding:2px 0}.activities>.section-title{padding-top:22px;padding-bottom:24px;min-height:90px}.activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:0 22px}.activity-card{position:relative;display:flex;flex-direction:column;min-width:0;border:2px solid #edc373;border-radius:22px 22px 5px 5px;background:#082311;box-shadow:0 0 0 1px #79501f,inset 0 0 0 2px #ffe5a8}.activity-photo{aspect-ratio:324/250;background-image:url('assets/poster-artwork.webp');background-size:316.05% auto;background-position:2.857% 60.264%;border-radius:19px 19px 0 0}.gifts .activity-photo{background-size:337.95% auto;background-position:50.208% 59.524%}.sweaters .activity-photo{background-position:97.714% 60.264%}.activity-card::before{content:'';position:absolute;z-index:3;width:112px;height:72px;left:50%;top:-24px;transform:translateX(-50%);background-image:url('assets/poster-artwork.webp');background-size:975.24% auto;background-position:13.82% 51.544%;clip-path:polygon(3% 7%,46% 17%,74% 0,98% 10%,100% 46%,77% 51%,88% 95%,66% 94%,52% 63%,31% 100%,14% 90%,25% 53%,2% 52%);filter:drop-shadow(0 2px 2px #0009)}.activity-badge{position:relative;z-index:3;width:74px;height:74px;padding:16px;margin:-27px auto -15px;border-radius:50%;background:radial-gradient(ellipse at 50% 30%,#a1190d,#640800);border:4px double #ffe4a3;color:#ffedbe;box-shadow:0 0 0 3px #5e4718,0 4px 7px #0006}.ribbon{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;min-height:76px;margin:0 -6px;padding:15px 5px 10px;background:linear-gradient(90deg,#530700,#a51d0d 49%,#690600);border:3px double #f0c36b;color:#fff0bf;text-align:center;text-transform:uppercase;font-size:clamp(20px,2.65cqw,31px);font-weight:700;letter-spacing:-1.1px;line-height:1.03;box-shadow:0 3px 4px #44240788;transform:rotate(-2deg);text-shadow:1px 2px 1px #310000}.ribbon:before,.ribbon:after{content:'';position:absolute;top:13px;width:18px;height:64px;background:#780c04;z-index:-1;border-bottom:2px solid #e4b454}.ribbon:before{left:-13px;clip-path:polygon(0 0,100% 0,100% 100%,0 88%,28% 52%)}.ribbon:after{right:-13px;clip-path:polygon(0 0,100% 0,72% 52%,100% 88%,0 100%)}.gifts .ribbon{transform:rotate(1deg)}.sweaters .ribbon{transform:rotate(-2deg);font-size:clamp(19px,2.3cqw,28px)}.activity-copy{padding:19px 12px 20px;text-align:center;flex:1;min-height:130px;border-radius:0 0 3px 3px;background-image:radial-gradient(ellipse at 50% 30%,#fff7e4,#f5dfb6);box-shadow:inset 0 0 20px #b6813f55}.activity-copy p{font-size:clamp(14px,1.75cqw,19px);line-height:1.3}.activity-copy .activity-lead{text-transform:uppercase;font-size:clamp(15px,1.8cqw,20px);font-weight:700;line-height:1.14;margin-bottom:5px}.signup{padding:47px 11% 20px;text-align:center;position:relative}.rsvp-button{display:flex;align-items:center;justify-content:center;gap:18px;position:relative;z-index:6;text-decoration:none;text-transform:uppercase;color:#fff0bb;background:radial-gradient(ellipse at center,#a21c0e,#690700 80%);border:5px double #ffe4a6;border-radius:35px 13px 35px 13px;outline:2px solid #a65c23;outline-offset:3px;box-shadow:0 0 0 7px #4b0900,0 6px 12px #0009,inset 0 0 0 3px #9a4a1b;padding:15px 19px;font-size:clamp(21px,4.4cqw,49px);line-height:1.05;font-weight:600;text-shadow:2px 3px 1px #350100;transition:filter .2s,transform .2s}.rsvp-button:hover{filter:brightness(1.16);transform:translateY(-2px)}.button-snowflake{color:#f0c36b;font-size:.85em}.button-arrow{flex-shrink:0;display:grid;place-items:center;color:#1b1708;text-shadow:none;background:linear-gradient(#fff1bd,#e8b453);border:1px solid #fff2be;box-shadow:0 2px 3px #280000;border-radius:50%;width:45px;height:45px;font-size:32px;font-weight:400}.signup-description{font-size:clamp(17px,2.4cqw,26px);line-height:1.15;margin-top:22px;color:#fff0ce}.audience{font-family:Arial,sans-serif;font-size:11px;margin-top:13px;color:#e4d4aa}.form-panel{position:relative;z-index:6;margin:26px auto 0;text-align:left;border:1px solid #bb914c;border-radius:4px;background:#071f10;scroll-margin-top:20px}.form-panel summary{display:flex;align-items:center;gap:16px;list-style:none;cursor:pointer;padding:13px 18px;color:#f0d49a;font-size:17px}.form-panel summary::-webkit-details-marker{display:none}.form-panel summary small{margin-left:auto;font-family:Arial,sans-serif;font-size:10px;color:#d2c49e}.expand-icon{font-family:Arial,sans-serif;font-size:24px;line-height:1;transition:transform .2s}.form-panel[open] .expand-icon{transform:rotate(45deg)}.form-body{background:var(--cream);color:var(--ink);padding:15px}.form-placeholder{border:1px solid #cfad68;padding:29px 23px;text-align:center;background:radial-gradient(#fff7e2,#efdcaf)}.form-seal{display:block;color:#936b29;font-size:33px;margin-bottom:7px}.eyebrow{font-family:Arial,sans-serif;letter-spacing:1.5px;text-transform:uppercase;font-size:9px;color:#6e501e}.form-placeholder h3{font-size:28px;line-height:1.15;font-weight:400;margin:13px 0}.form-placeholder>p:not(.eyebrow){font-family:Arial,sans-serif;font-size:13px;line-height:1.7;max-width:420px;margin:auto;color:#4f4d36}.status-pill{display:inline-flex;align-items:center;gap:8px;border-radius:20px;background:#e8d7ae;font-family:Arial,sans-serif;font-size:11px;color:#594118;margin-top:20px;padding:7px 13px}.status-pill span{width:6px;height:6px;border-radius:50%;background:#8a6427}.privacy-note{font-family:Arial,sans-serif;font-size:10px;line-height:1.7;color:#5c543d;margin:15px 5px 3px}.form-heading{font-size:28px;margin:4px 8px 12px}.form-help{font-family:Arial,sans-serif;font-size:12px;line-height:1.7;margin:8px}.google-form{display:block;border:0;width:100%;background:var(--cream);margin:16px 0}.site-footer{text-align:center;padding:0 11% 30px;position:relative;z-index:6}.holiday-motto{border-top:2px solid transparent;border-bottom:2px solid transparent;border-image:linear-gradient(90deg,transparent,#d9b76d,transparent) 1;padding:17px 0;color:var(--gold);font-size:clamp(13px,1.9cqw,21px);letter-spacing:3px;text-transform:uppercase;white-space:nowrap}.holiday-motto span{font-size:1.2em;margin-inline:10px;text-shadow:1px 1px #9b6926}.greeting{font-size:17px;font-style:italic;color:#e7d7b6;margin-top:20px}.organization{font-family:Arial,sans-serif;letter-spacing:.5px;font-size:9px;color:#bfb38d;margin-top:9px}.footer-tools{display:flex;align-items:center;justify-content:center;gap:20px;color:#cebb91;font-family:Arial,sans-serif;font-size:9px;margin-top:12px}.footer-tools a{padding:8px}.motion-toggle{font-family:inherit;font-size:inherit;color:inherit;background:none;border:0;text-decoration:underline;text-underline-offset:4px;padding:8px;cursor:pointer}.motion-toggle[hidden]{display:none}.light-string{position:absolute;z-index:7;left:9px;top:20px;bottom:20px;width:10px;display:flex;flex-direction:column;justify-content:space-around;pointer-events:none}.light-string i{width:4px;height:5px;border-radius:50%;background:#ffe5a0;box-shadow:0 0 6px 3px #ffce6799;animation:twinkle 3s ease-in-out infinite}.light-string i:nth-child(3n){animation-delay:-1.5s;background:#eecd86}.light-string i:nth-child(2n){animation-delay:-.8s}.snowfall{position:absolute;inset:0;z-index:7;pointer-events:none}.snowfall span{position:absolute;font-size:16px;color:#f8dc98;opacity:.55;animation:drift 7s ease-in-out infinite;left:6%;top:28%}.snowfall span:nth-child(2){left:94%;top:45%;animation-delay:-3s}.snowfall span:nth-child(3){left:92%;top:70%;animation-delay:-5s}.snowfall span:nth-child(4){left:7%;top:82%;animation-delay:-2s}.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}.motion-paused{scroll-behavior:auto}@keyframes twinkle{0%,100%{opacity:.35}50%{opacity:1}}@keyframes drift{0%,100%{transform:translateY(-6px) rotate(-10deg)}50%{transform:translateY(7px) rotate(10deg)}}
@media(min-width:1500px){body{padding-block:25px}.page-shell{border:1px solid #9c703144}}
@media(max-width:800px){.section-title{gap:11px;letter-spacing:2px;min-height:66px}.details-panel{width:calc(100% - 44px);padding-inline:6px}.detail-item{padding:0 10px}.detail-icon{width:57px;height:57px;padding:12px}.detail-label{font-size:14px}.address{font-size:13px}.map-link{font-size:10px}.time-note{font-size:10px}.activity-grid{gap:12px;margin-inline:18px}.activity-badge{width:59px;height:59px;padding:12px;margin-top:-22px;margin-bottom:-13px}.ribbon{min-height:65px;padding:15px 3px 9px;letter-spacing:-.8px}.activity-copy{padding:16px 8px;min-height:120px}.activity-copy p{font-size:14px}.activity-copy .activity-lead{font-size:14px}.signup{padding-top:35px}.button-arrow{width:35px;height:35px;font-size:25px}.rsvp-button{gap:10px}.holiday-motto{letter-spacing:2px}.holiday-motto span{margin-inline:6px}.activity-card::before{width:86px;height:58px;top:-19px}}
@media(max-width:600px){.page-shell::after{mask-image:linear-gradient(to right,#000,transparent 5%,transparent 95%,#000);background-size:100% auto}.hero-art{aspect-ratio:1024/407}.hero h1{position:static;clip:auto;width:auto;height:auto;text-align:center;padding:8px 28px 0;font-size:22px;line-height:1.15;color:var(--gold);font-weight:400}.section-title{font-size:24px;letter-spacing:1.4px;gap:10px;min-height:69px;padding-inline:24px}.section-title .title-line{min-width:4px}.section-title .snowflake{font-size:20px}.details-panel{width:calc(100% - 40px);grid-template-columns:1fr;padding:10px 22px 15px;border:3px double #c29248;background-image:radial-gradient(ellipse at 50% 40%,#fff4dc,#f3ddb1)}.detail-item{padding:12px 0 18px;display:grid;grid-template-columns:61px 1fr;column-gap:15px;align-items:center;text-align:left;justify-items:start}.detail-item+.detail-item:before{left:0;right:0;top:0;bottom:auto;height:1px;width:100%;background:linear-gradient(90deg,transparent,#c49c57,transparent)}.detail-item+.detail-item:after{display:none}.detail-icon{grid-column:1;grid-row:1/4;width:55px;height:55px;margin:0;padding:12px}.detail-label{grid-column:2;font-size:13px;letter-spacing:1.6px;margin-bottom:2px}.detail-item h3{grid-column:2;font-size:22px}.detail-item.venue h3{font-size:21px}.time-note{grid-column:2;font-size:10px;margin-top:5px}.address{grid-column:2;font-size:14px;line-height:1.25;margin-top:7px}.map-link{grid-column:2;font-size:11px;margin-top:7px;padding-block:5px}.activities>.section-title{min-height:84px;padding-top:24px;font-size:22px;white-space:nowrap;letter-spacing:.8px;gap:9px}.activities>.section-title .title-line{display:none}.activity-grid{grid-template-columns:1fr;margin:0 auto;width:min(370px,calc(100% - 52px));gap:38px}.activity-badge{width:73px;height:73px;padding:16px;margin-top:-28px;margin-bottom:-15px}.activity-card::before{width:112px;height:72px;top:-24px}.ribbon{font-size:31px;min-height:73px;letter-spacing:-1px}.sweaters .ribbon{font-size:25px}.activity-copy{padding:20px 18px;min-height:120px}.activity-copy p{font-size:17px}.activity-copy .activity-lead{font-size:19px;line-height:1.15}.signup{padding:40px 27px 19px}.rsvp-button{font-size:25px;padding:14px 10px;gap:9px;line-height:1.13;border-radius:25px 9px 25px 9px}.button-snowflake{font-size:25px}.button-arrow{width:32px;height:32px;font-size:23px}.signup-description{font-size:18px;line-height:1.3;margin-top:24px}.signup-description br{display:none}.audience{font-size:10px;line-height:1.7;margin-top:15px}.form-panel{margin-top:23px}.form-panel summary{padding:12px;font-size:16px;gap:10px}.form-panel summary small{font-size:8px;max-width:78px;line-height:1.3}.form-body{padding:9px}.form-placeholder{padding:24px 14px}.form-placeholder h3{font-size:25px}.eyebrow{font-size:8px;letter-spacing:.9px}.form-placeholder>p:not(.eyebrow){font-size:12px}.status-pill{font-size:10px;padding-inline:9px}.privacy-note{font-size:9px}.site-footer{padding:0 26px 25px}.holiday-motto{font-size:11px;letter-spacing:1px;padding-block:15px;white-space:normal}.holiday-motto span{margin-inline:4px;font-size:12px}.greeting{font-size:16px}.organization{font-size:8px;line-height:1.7}.footer-tools{font-size:8px;gap:8px}.light-string{left:5px}.snowfall span{left:3%}.snowfall span:nth-child(2),.snowfall span:nth-child(3){left:95%}}
@media(max-width:360px){.hero h1{font-size:20px;padding-inline:20px}.details-panel{padding-inline:13px}.detail-item{column-gap:11px;grid-template-columns:52px 1fr}.detail-item h3{font-size:20px}.detail-icon{width:49px;height:49px;padding:10px}.activity-grid{width:calc(100% - 42px)}.ribbon{font-size:28px}.sweaters .ribbon{font-size:23px}.activity-copy .activity-lead{font-size:17px}.signup{padding-inline:22px}.rsvp-button{font-size:21px;gap:7px}.button-snowflake{font-size:20px}.button-arrow{width:28px;height:28px;font-size:20px}.section-title{font-size:22px}.activities>.section-title{font-size:20px;gap:6px}.holiday-motto{font-size:10px}.site-footer{padding-inline:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.rsvp-button:hover{transform:none}}

/* Keep each medallion attached to its photo as cards resize. */
.activity-photo{position:relative}
.activity-badge{position:absolute;bottom:-25px;left:50%;transform:translateX(-50%);margin:0;box-shadow:0 0 0 5px #082311,0 4px 7px #0006}
.ribbon{margin-top:15px;padding-top:19px}
@media(max-width:800px) and (min-width:601px){.activity-badge{margin:0;bottom:-22px}.ribbon{margin-top:14px}}
@media(max-width:600px){.activity-badge{margin:0;bottom:-25px}.ribbon{margin-top:15px}}

/* Repeat only the ornament-filled left edge; mirror it on the right.
   CSS clips the supplied artwork so no poster text appears in the border. */
.page-shell::after{display:none}
.edge-border{position:absolute;inset:0;z-index:5;overflow:hidden;pointer-events:none}
.edge-border>span{display:block;position:relative;aspect-ratio:1024/407}
.edge-border>span::before,.edge-border>span::after{content:'';position:absolute;top:0;bottom:0;width:9%;background:url('assets/poster-artwork.webp') top left / 100cqw auto no-repeat;mask-image:linear-gradient(to right,#000 25%,transparent)}
.edge-border>span::before{left:0}
.edge-border>span::after{right:0;transform:scaleX(-1)}
.detail-item h3{font-family:'Times New Roman',serif;font-size:clamp(19px,2.5cqw,28px);letter-spacing:-.6px;white-space:nowrap}
.detail-item.venue h3{font-family:'Times New Roman',serif;font-size:clamp(19px,2.35cqw,26px);white-space:normal}
.rsvp-button{font-family:'Times New Roman',serif;font-size:clamp(21px,3.8cqw,43px);letter-spacing:-.8px}
@media(min-width:601px){.rsvp-button>span:nth-child(2){white-space:nowrap}}
@media(max-width:600px){.edge-border>span::before,.edge-border>span::after{width:7%}.detail-item h3{font-size:22px;white-space:normal}.detail-item.venue h3{font-size:21px}.rsvp-button{font-size:26px}}
@media(max-width:360px){.detail-item h3{font-size:20px}.rsvp-button{font-size:22px}}

.edge-border>span::before,.edge-border>span::after{width:6%}
.edge-border>span:first-child::before,.edge-border>span:first-child::after{display:none}
