@font-face {
  font-family: Kalam;
  src: url("/fonts/kalam-bold-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
:root{color-scheme:light;--ink:#21392f;--muted:#536359;--paper:#f8f6ef;--green:#1e3c31;--gold:#e9c78a;--border:#d9ddd2;--white:#fffdf7}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.55 system-ui,sans-serif}
a{color:inherit}
a:hover{text-decoration-thickness:.15em}
:focus-visible{outline:3px solid #a8512d;outline-offset:4px}
.wrap,.masthead-inner{max-width:59rem;margin:auto;padding-inline:clamp(1.2rem,5vw,3rem)}
.masthead{background:var(--paper);color:var(--ink)}
.masthead-inner{min-height:5.75rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.masthead a{text-decoration:none;font-weight:650}
.brand img{display:block;width:4.3rem;height:auto}
.rsvp-link{display:inline-flex;align-items:center;gap:.55rem;min-height:2.75rem;padding-inline:.9rem;border:1px solid #7b9284;border-radius:.35rem}
.intro{
  position:relative;isolation:isolate;overflow:hidden;
  background:radial-gradient(ellipse at 90% 8%,#325447,transparent 50%),var(--green);
  color:var(--white);padding:clamp(2.8rem,8vw,5.5rem) 0 clamp(2.5rem,7vw,4.75rem);
  border-bottom:3px solid #a05951;
}
.intro .wrap{position:relative;z-index:1}
.holiday-ornaments{
  position:absolute;top:0;right:max(1.2rem,calc((100% - 59rem)/2 + 1.2rem));
  display:flex;align-items:flex-start;gap:clamp(.5rem,2vw,1.2rem);pointer-events:none;
}
.holiday-ornaments span{
  position:relative;display:block;margin-top:var(--drop);
  width:var(--size);aspect-ratio:1;border-radius:50%;
  border:1px solid #ffefd29c;
  background:radial-gradient(circle at 35% 28%,#fff5d99e,transparent 30%),var(--bauble);
  box-shadow:0 .25rem .7rem #0e29286b,inset -.2rem -.35rem .55rem #23190a40;
}
.holiday-ornaments span::before{
  content:"";position:absolute;left:50%;bottom:100%;width:1px;height:var(--drop);
  background:#ead2a18c;
}
.holiday-ornaments span::after{
  content:"";position:absolute;left:33%;top:-.21rem;width:34%;height:.25rem;
  border-radius:2px 2px 0 0;background:#d9b77f;
}
.holiday-ornaments span:nth-child(1){--drop:1.5rem;--size:1.45rem;--bauble:#b65a56}
.holiday-ornaments span:nth-child(2){--drop:3.45rem;--size:2.4rem;--bauble:#ca9e60}
.holiday-ornaments span:nth-child(3){--drop:2.1rem;--size:1.18rem;--bauble:#a9bea8}
@media(max-width:700px){
  .holiday-ornaments span:nth-child(1){--drop:.58rem;--size:.9rem}
  .holiday-ornaments span:nth-child(2){--drop:1.2rem;--size:1.15rem}
  .holiday-ornaments span:nth-child(3){--drop:.8rem;--size:.72rem}
}
h1,h2,p{margin-top:0}
h1,h2{font-weight:650;line-height:1.13}
#event-title, main h2{font-family:Kalam,"Segoe Print","Bradley Hand",cursive;font-weight:700}
#event-title{line-height:1.02;letter-spacing:-.035em}
main h2{color:#294535}
h1{font-size:clamp(2.2rem,8vw,5.55rem);margin-bottom:1.1rem}
h2{font-size:clamp(1.64rem,3.3vw,2.1rem);letter-spacing:-.025em;margin-bottom:.9rem}
.intro-copy{font-size:clamp(1rem,2vw,1.16rem);max-width:36rem;margin-bottom:0;color:#edf0e8}
.details{padding-block:2rem 1.35rem;display:grid;grid-template-columns:1.12fr 1fr;gap:1rem}
.card{background:var(--white);border:1px solid var(--border);border-radius:.8rem;padding:clamp(1.1rem,3vw,1.85rem)}
dl,dd,ul{margin:0}
dl>div{padding:.6rem 0;display:grid;grid-template-columns:3.4rem 1fr;gap:.5rem;border-top:1px solid var(--border)}
dl>div:last-child{padding-bottom:0}
dt,.field-note,small,.privacy,.email-address{color:var(--muted)}
dt{font-size:.88rem;font-weight:600}
dd small{display:block;font-size:.82rem}
ul{padding-left:1.12rem}
li+li{margin-top:.7rem}
.rsvp{padding-block:1rem 2.75rem;scroll-margin-top:1rem}
.rsvp>p{color:var(--muted);margin-bottom:1.15rem}
form{background:var(--white);border:1px solid var(--border);border-radius:.8rem;padding:clamp(1.1rem,3vw,1.85rem)}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
label{display:block;font-size:.94rem;font-weight:650}
.field-note{font-weight:400;font-size:.8rem}
.wide{grid-column:1/-1}
input:not([type=hidden]),select{display:block;width:100%;min-height:2.85rem;margin-top:.3rem;border:1px solid #87968b;border-radius:.35rem;background:#fff;color:var(--ink);padding:.5rem .65rem;font:inherit;font-size:1rem}
.privacy{font-size:.85rem;margin:1rem 0}
button,.email{display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.85rem;border:0;border-radius:.38rem;padding:.55rem 1rem;font:inherit;font-weight:700;background:var(--green);color:var(--white);text-decoration:none;cursor:pointer}
button:hover,.email:hover{background:#315344}
button:disabled{cursor:wait;opacity:.65}
.form-message{margin:.8rem 0 0;font-weight:600}
.form-message.error{color:#983d29}
footer{background:#e9eee5;border-top:1px solid #c9d5c8;padding:2rem 0 2.3rem}
footer p{margin-bottom:.85rem}
.email-address{overflow-wrap:anywhere;font-size:.9rem;margin:.65rem 0 0}
@media(max-width:620px){.details,.fields{grid-template-columns:1fr}.wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
[hidden]{display:none!important}
.table-scroll{overflow-x:auto;margin-bottom:1rem}
table{width:100%;border-collapse:collapse;text-align:left}
th,td{border-bottom:1px solid var(--border);padding:.55rem;vertical-align:top}

/* Christmas illustrations sit beside the event information. */
.intro .wrap{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(11rem,27%);
  align-items:end;gap:1rem
}
.holiday-ornaments{z-index:2}
.christmas-scene{
  position:relative;isolation:isolate;align-self:end;justify-self:end;
  width:min(100%,16rem);height:12rem;
  background:
    radial-gradient(circle at 12% 23%,#f8ecd4 0 1px,transparent 2px),
    radial-gradient(circle at 27% 42%,#f8ecd4 0 1.2px,transparent 2.2px),
    radial-gradient(circle at 46% 12%,#f8ecd4 0 1.5px,transparent 2.5px),
    radial-gradient(circle at 60% 36%,#f8ecd4 0 1px,transparent 2px),
    radial-gradient(circle at 77% 20%,#f8ecd4 0 1.2px,transparent 2.2px),
    radial-gradient(circle at 90% 47%,#f8ecd4 0 1.5px,transparent 2.5px)
}
.christmas-scene::before,.christmas-scene::after{
  content:"";position:absolute;z-index:-1;bottom:.5rem;height:2.6rem;
  border-radius:48% 52% 42% 41%;background:#bdcfbd
}
.christmas-scene::before{left:0;width:82%;transform:rotate(-4deg)}
.christmas-scene::after{right:0;width:76%;height:2rem;background:#e8eadc;transform:rotate(4deg)}
.christmas-tree{position:absolute;bottom:1.6rem;right:0;width:53%;height:77%}
.christmas-tree::before{
  content:"";position:absolute;left:46%;bottom:0;width:10%;height:19%;
  border-radius:.16rem;background:#795042
}
.christmas-tree::after{
  content:"";position:absolute;inset:8% 0 10%;
  clip-path:polygon(50% 0,76% 36%,65% 35%,87% 65%,73% 63%,100% 100%,0 100%,27% 63%,13% 65%,35% 35%,24% 36%);
  background:
    radial-gradient(circle at 53% 24%,#f6d89c 0 2.4px,transparent 3px),
    radial-gradient(circle at 39% 43%,#dc8474 0 2.5px,transparent 3px),
    radial-gradient(circle at 63% 57%,#f6d89c 0 2.9px,transparent 3.5px),
    radial-gradient(circle at 33% 73%,#f6d89c 0 2.3px,transparent 3px),
    radial-gradient(circle at 50% 86%,#dd8374 0 2.9px,transparent 3.5px),
    radial-gradient(circle at 75% 86%,#f6d89c 0 2.2px,transparent 3px),
    linear-gradient(115deg,#81aa81,#527c61 55%,#3d654f);
}
.christmas-star{
  position:absolute;top:0;left:42%;z-index:1;width:17%;aspect-ratio:1;
  background:#f3d79c;
  clip-path:polygon(50% 0,62% 36%,100% 37%,70% 60%,81% 99%,50% 76%,19% 99%,30% 60%,0 37%,38% 36%)
}
.santa{
  position:absolute;bottom:1.5rem;left:18%;width:32%;height:63%;
  filter:drop-shadow(0 .16rem .13rem #19332861)
}
.santa-hat{
  position:absolute;top:0;left:15%;width:67%;height:30%;
  border-radius:72% 36% 22% 15%;transform:rotate(-10deg);background:#b2524d
}
.santa-hat::before{
  content:"";position:absolute;top:0;right:-9%;width:25%;aspect-ratio:1;
  border-radius:50%;background:#fff4df
}
.santa-hat::after{
  content:"";position:absolute;left:-3%;bottom:-7%;width:103%;height:28%;
  border-radius:1rem;background:#fff4df
}
.santa-coat{
  position:absolute;bottom:4%;left:6%;width:87%;height:46%;border-radius:45% 45% 20% 20%;
  background:linear-gradient(#bb544e 64%,#543933 64% 77%,#a84946 77%)
}
.santa-coat::after{
  content:"";position:absolute;top:59%;left:44%;width:13%;height:24%;
  border:2px solid #efc888;border-radius:2px
}
.santa-face{
  position:absolute;z-index:1;top:26%;left:19%;width:62%;height:40%;
  border-radius:45% 45% 53% 53%;
  background:
    radial-gradient(circle at 37% 32%,#5b3731 0 1.5px,transparent 2px),
    radial-gradient(circle at 63% 32%,#5b3731 0 1.5px,transparent 2px),
    radial-gradient(ellipse at 50% 55%,#df907f 0 11%,transparent 13%),
    linear-gradient(#edbb9a 0 55%,#fff4df 55%)
}
.santa-boots{
  position:absolute;bottom:0;left:18%;width:64%;height:9%;
  background:linear-gradient(90deg,#503834 0 43%,transparent 43% 57%,#503834 57%);
  border-radius:.65rem
}
.activities{position:relative;overflow:hidden}
.holiday-treats{
  position:relative;margin:.9rem 0 0 auto;width:10.2rem;height:4.7rem;
  border-radius:50%;background:#eef0e6
}
.holiday-cookie{
  position:absolute;bottom:.18rem;left:0;width:2.75rem;aspect-ratio:1;
  border-radius:49% 52% 48% 53%;transform:rotate(-12deg);
  box-shadow:inset -.15rem -.2rem #9e603647;
  background:
    radial-gradient(circle at 31% 28%,#70443a 0 2px,transparent 2.6px),
    radial-gradient(circle at 64% 29%,#70443a 0 2.4px,transparent 3px),
    radial-gradient(circle at 72% 62%,#70443a 0 2px,transparent 2.6px),
    radial-gradient(circle at 44% 56%,#70443a 0 1.9px,transparent 2.5px),
    radial-gradient(circle at 28% 75%,#70443a 0 2.2px,transparent 2.8px),#d8985c
}
.holiday-mug{
  position:absolute;left:3.05rem;bottom:.24rem;width:2.65rem;height:2.2rem;border-radius:15% 15% 30% 30%;
  background:linear-gradient(110deg,#b85d52,#923d3a);
  box-shadow:inset 0 .31rem #663d35,inset 0 .49rem #e6bd9a
}
.holiday-mug::before{
  content:"";position:absolute;top:.55rem;left:91%;width:.67rem;height:.76rem;
  border:3px solid #a95048;border-left:0;border-radius:0 .6rem .6rem 0
}
.holiday-mug::after{
  content:"";position:absolute;bottom:calc(100% + .3rem);left:.83rem;width:.39rem;height:1.1rem;
  border:1.5px solid #958174;border-width:0 0 0 1.5px;border-radius:50%;
  transform:rotate(15deg);box-shadow:.34rem -.25rem 0 -.12rem #958174
}
@media(max-width:700px){
  .intro .wrap{grid-template-columns:minmax(0,1fr);gap:.4rem}
  .christmas-scene{height:8rem;width:10.5rem}
}

.holiday-craft{
  position:absolute;right:.22rem;bottom:.2rem;width:3.2rem;height:3.55rem
}
.craft-paper{
  position:absolute;right:.16rem;bottom:.25rem;width:2.2rem;height:2.65rem;
  border:1px solid #b6cbbb;border-radius:.16rem;background:#dce9dc;
  transform:rotate(12deg);box-shadow:0 .13rem .18rem #334f3c22
}
.craft-paper::after{
  content:"";position:absolute;top:.38rem;left:.42rem;width:1.28rem;aspect-ratio:1;
  background:#cf9751;
  clip-path:polygon(50% 0,62% 34%,99% 37%,71% 60%,81% 98%,50% 76%,19% 98%,29% 60%,1% 37%,38% 34%)
}
.craft-scissors{
  position:absolute;left:.04rem;bottom:0;width:1.36rem;height:2.18rem;transform:rotate(-32deg)
}
.craft-scissors::before,.craft-scissors::after{
  content:"";position:absolute;bottom:.12rem;width:.52rem;height:.63rem;
  border:.14rem solid #aa4f49;border-radius:50%;
}
.craft-scissors::before{left:0}
.craft-scissors::after{right:0}
.craft-blades{
  position:absolute;left:.28rem;top:.05rem;width:.8rem;height:1.37rem;
  background:#7b8a82;
  clip-path:polygon(12% 0,49% 51%,88% 0,92% 19%,62% 72%,91% 100%,66% 100%,49% 82%,31% 100%,5% 100%,36% 72%,8% 19%)
}
