:root{--cream:#fdf9f1;--cream-deep:#f7ecda;--sand:#ead4b6;--sand-light:#f5e7d1;--seafoam:#b9d9ce;--aqua:#d9eff0;--teal:#397e7c;--teal-deep:#174c5f;--coral:#eb745e;--coral-deep:#c85042;--peach:#f7c9aa;--sky:#d8e9ef;--ink:#173c50;--muted-ink:#4d6771;--white:#fffdf9;--shadow:0 18px 50px #495a501f;--display:"Iowan Old Style", Baskerville, "Times New Roman", serif;--body:"Avenir Next", Avenir, "Gill Sans", "Trebuchet MS", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{min-width:320px;color:var(--ink);background:radial-gradient(circle at 20% 5%, #f7c9aa2e, transparent 24rem), linear-gradient(180deg, var(--cream) 0%, #fffdf8 66%, var(--cream-deep) 100%);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.7;overflow-x:hidden}body:before{z-index:-1;opacity:.18;content:"";pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");position:fixed;inset:0}main{position:relative}img{max-width:100%;display:block}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--teal-deep);outline-offset:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero{isolation:isolate;min-height:clamp(650px,46vw,720px);position:relative;overflow:hidden}.hero:after{z-index:-2;content:"";background:linear-gradient(#0000,#fcf7eebf);height:30%;position:absolute;bottom:-2px;left:0;right:0}.hero__art{z-index:-1;pointer-events:none;background:url(/assets/shoreline-repeatable.webp) center bottom -300px/max(1536px,100%) 1024px no-repeat;position:absolute;inset:0;overflow:hidden}.hero__art img{height:auto;position:absolute}.hero__palm{width:clamp(340px,26vw,500px);bottom:16px;left:max(-38px,50% - 1020px)}.hero__clouds{opacity:.82;width:clamp(350px,30vw,574px);top:62px;left:max(110px,50% - 760px)}.hero__birds{width:clamp(220px,19vw,340px);top:8px;right:max(210px,50% - 690px)}.hero__sun{width:clamp(130px,10vw,176px);top:-32px;right:max(40px,50% - 840px)}.hero__castle{width:clamp(300px,22vw,410px);bottom:42px;left:max(22px,50% - 850px)}.hero__bear{width:clamp(290px,20vw,368px);bottom:34px;right:max(34px,50% - 820px)}.hero__inner{width:min(1320px,100% - 64px);margin:0 auto;padding-top:clamp(30px,3.5vw,50px)}.hero__title-wrap{text-align:center;width:fit-content;margin:0 auto}.hero__shell{filter:drop-shadow(0 5px 8px #93623826);width:92px;height:auto;margin:0 auto -2px}.eyebrow{color:var(--teal);letter-spacing:.22em;text-transform:uppercase;margin:0 0 2px;font-size:.72rem;font-weight:600;line-height:1.4}h1,h2,p{margin-top:0}h1{color:var(--teal-deep);font-family:var(--display);letter-spacing:-.045em;text-wrap:balance;margin-bottom:0;font-size:clamp(3.3rem,5.5vw,5.8rem);font-weight:500;line-height:1}.hero__flourish{color:var(--coral);grid-template-columns:82px auto 82px;align-items:center;gap:10px;margin:12px auto 0;display:grid}.hero__flourish>span:not(.hero__heart){border-top:2px solid #397e7c70;border-radius:50%;height:9px}.hero__heart{font-size:.86rem}.hero__content{grid-template-columns:minmax(260px,1fr) minmax(260px,.8fr);align-items:center;gap:clamp(40px,5vw,76px);width:min(1000px,74vw);margin:clamp(26px,2.7vw,40px) auto 0;display:grid}.hero__message{z-index:0;isolation:isolate;text-align:center;text-shadow:0 1px #fffffff2;padding:44px 38px;position:relative}.hero__message:before{z-index:-1;box-shadow:none;content:"";background:radial-gradient(circle at 18% 23%,#f7e6cd33,#0000 25%),radial-gradient(circle at 82% 72%,#d9eff02e,#0000 27%),radial-gradient(#fffcf6fa 0 58%,#fffcf6db 72%,#0000 100%);border:0;border-radius:53% 47% 51% 49%/46% 55% 45% 54%;position:absolute;inset:-8px -44px}.hero__message p:last-child{max-width:31rem;color:var(--ink);font-family:var(--display);text-wrap:balance;margin:8px auto 0;font-size:clamp(1.45rem,1.8vw,1.95rem);line-height:1.42}.due-card{text-align:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#fffdf8e6;border:1px solid #e2be9299;border-radius:48px;flex-direction:column;justify-content:center;align-items:center;min-height:246px;padding:28px 30px 46px;display:flex;position:relative;overflow:visible;box-shadow:0 14px 35px #53615624,inset 0 0 0 7px #ffffff8c}.due-card:before{border-radius:inherit;content:"";pointer-events:none;border:1px dashed #e0a06880;position:absolute;inset:12px}.due-card>*{position:relative}.due-card__shell{width:178px;height:auto;margin-bottom:-2px}.due-card__label{color:var(--muted-ink);font-family:var(--display);font-size:1rem;line-height:1.4}.due-card__date{color:var(--coral-deep);font-family:var(--display);letter-spacing:-.03em;font-size:clamp(1.85rem,3vw,2.45rem);font-weight:500;line-height:1.2}.due-card__wave{opacity:.72;width:116px;height:auto;margin-top:8px}.due-card__countdown{z-index:3;outline-offset:-3px;filter:drop-shadow(0 10px 14px #35595b33);width:158px;height:158px;color:var(--teal-deep);font-family:var(--display);background:#c7e3e1;border:7px solid #fffdf8eb;border-radius:50%;outline:2px solid #81b4b580;flex-direction:column;justify-content:center;align-items:center;padding-top:4px;line-height:1;display:flex;position:absolute;bottom:-110px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 4px #ffffff57,0 10px 20px #35595b2e}.due-card__countdown:before{content:"";border:1px dashed #397e7c80;border-radius:50%;position:absolute;inset:13px}.due-card__countdown strong,.due-card__countdown span{position:relative}.due-card__countdown strong{letter-spacing:-.045em;font-size:3.35rem;font-weight:500}.due-card__countdown span{margin-top:3px;font-size:1.15rem}.details-section{z-index:1;isolation:isolate;background:linear-gradient(#fffdf933,#fffdf9f2 14%),linear-gradient(#0000 80%,#ebd7b940);margin-top:-48px;padding:94px 32px 130px;position:relative;overflow:visible}.details-section:after{z-index:2;content:"";opacity:.76;pointer-events:none;background:url(/assets/shells-and-starfish.png) left 4vw bottom 4px/245px no-repeat,url(/assets/shoreline-repeatable.webp) center bottom -650px/max(1536px,100%) 1024px no-repeat;height:206px;position:absolute;bottom:-56px;left:0;right:0}.details-section:before{z-index:0;clip-path:polygon(0 46%,8% 38%,17% 50%,28% 34%,41% 44%,54% 30%,66% 45%,78% 36%,89% 49%,100% 38%,100% 100%,0 100%);content:"";background:linear-gradient(#fffdf8,#fffdf9);width:100%;height:160px;position:absolute;top:-80px;left:0}.card-grid{z-index:3;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,2.5vw,38px);width:min(1360px,100%);margin:0 auto;display:grid;position:relative}.card-grid--two{grid-template-columns:repeat(2,minmax(0,460px));justify-content:center}.info-card{--card-accent:var(--teal);min-height:360px;box-shadow:var(--shadow), inset 0 0 0 7px #ffffffa6;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf9d6;border:1px solid #2c585a1a;border-radius:30px;flex-direction:column;align-items:stretch;padding:56px clamp(28px,3vw,42px) 32px;display:flex;position:relative;overflow:visible}.info-card:before{z-index:-1;border:1px dashed color-mix(in srgb, var(--card-accent), transparent 64%);content:"";pointer-events:none;border-radius:23px;position:absolute;inset:8px}.info-card--coral{--card-accent:var(--coral);background:#fff9f1e6}.info-card--blue{--card-accent:#659eb8;background:#f6fbfce6}.info-card__icon{background:color-mix(in srgb, var(--card-accent), white 84%);width:64px;height:64px;color:var(--card-accent);border:7px solid #fffdf9f2;border-radius:50%;place-items:center;display:grid;position:absolute;top:-31px;left:50%;transform:translate(-50%);box-shadow:0 7px 16px #2c49441f,0 0 0 1px #2a605a1f}.info-card__icon svg,.button svg,.event-list svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:24px;height:24px}.info-card__icon svg{width:27px;height:27px}.info-card h2{color:var(--ink);font-family:var(--display);letter-spacing:-.025em;margin-bottom:14px;font-size:clamp(1.8rem,2.15vw,2.15rem);font-weight:500;line-height:1.15}.info-card__content{z-index:1;color:var(--muted-ink);font-size:1.02rem;position:relative}.info-card__content>p{margin-bottom:0}.info-card__action{z-index:2;width:100%;margin-top:auto;padding-top:28px;position:relative}.button{width:min(100%,320px);min-height:54px;color:var(--white);font-family:var(--display);box-shadow:0 9px 20px color-mix(in srgb, var(--card-accent), transparent 72%);border:0;border-radius:18px;justify-content:center;align-items:center;gap:11px;padding:12px 24px;font-size:1.03rem;font-weight:500;line-height:1.2;text-decoration:none;transition:transform .18s,box-shadow .18s,filter .18s;display:inline-flex}.button--teal{background:linear-gradient(135deg,#428f89,#2d7775)}.button--coral{background:linear-gradient(135deg,#ef856e,#df654f)}.button:hover{box-shadow:0 13px 26px color-mix(in srgb, var(--card-accent), transparent 65%);filter:saturate(1.04);transform:translateY(-2px)}.button:active{transform:translateY(0)}.button svg{flex:none}.shower-details-jump{z-index:8;min-height:54px;color:var(--white);font-family:var(--display);white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#174c5feb;border:1px solid #ffffffb8;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:12px 22px;font-size:1rem;line-height:1.2;text-decoration:none;transition:opacity .18s,transform .18s,visibility .18s,background .18s,box-shadow .18s;display:inline-flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #173c503d,inset 0 0 0 1px #ffffff1f}.shower-details-jump:hover{background:#1d6071;transform:translate(-50%,-3px);box-shadow:0 16px 34px #173c504d}.shower-details-jump--hidden{visibility:hidden;opacity:0;pointer-events:none;transform:translate(-50%,12px)}.shower-details-jump svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:20px;height:20px;animation:1.7s ease-in-out infinite details-nudge}.shower-details{z-index:1;isolation:isolate;background:radial-gradient(circle at 10% 34%,#d9eff0b3,#0000 25rem),radial-gradient(circle at 92% 76%,#f7c9aa6b,#0000 27rem),linear-gradient(#fffdf9,#f9efe0 58%,#fffaf2);padding:112px 32px 144px;scroll-margin-top:12px;position:relative;overflow:hidden}.shower-details:before{z-index:-1;content:"";background:#fffdf9;border-radius:0 0 50% 50%;height:128px;position:absolute;top:-74px;left:-3%;right:-3%}.shower-details:after{z-index:-1;content:"";opacity:.62;pointer-events:none;background:url(/assets/shells-and-starfish.png) right 6vw bottom 12px/230px no-repeat,url(/assets/shoreline-repeatable.webp) center bottom -690px/max(1536px,100%) 1024px no-repeat;height:180px;position:absolute;bottom:-12px;left:0;right:0}.shower-details__intro{text-align:center;width:min(760px,100%);margin:0 auto 46px}.shower-details__eyebrow{color:var(--coral-deep);letter-spacing:.2em;text-transform:uppercase;margin-bottom:7px;font-size:.76rem;font-weight:700;line-height:1.4}.shower-details__intro h2{color:var(--teal-deep);font-family:var(--display);letter-spacing:-.045em;text-wrap:balance;margin-bottom:18px;font-size:clamp(2.5rem,5vw,4.8rem);font-weight:500;line-height:1}.shower-details__intro>p:last-child{color:var(--muted-ink);font-family:var(--display);text-wrap:balance;margin-bottom:0;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.55}.shower-invitation{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#fffdf9e6;border:1px solid #c850422b;border-radius:30px;grid-template-columns:minmax(250px,1fr) minmax(360px,1.2fr) auto;align-items:center;gap:clamp(28px,4vw,64px);width:min(1160px,100%);margin:0 auto 38px;padding:34px clamp(28px,4vw,54px);display:grid;position:relative;box-shadow:0 22px 55px #5254481f,inset 0 0 0 7px #ffffffad}.shower-invitation:before{content:"";pointer-events:none;border:1px dashed #eb745e59;border-radius:22px;position:absolute;inset:9px}.shower-invitation>*{position:relative}.shower-invitation__heading{align-items:center;gap:16px;display:flex}.shower-invitation__icon,.shower-note__icon{width:52px;height:52px;color:var(--coral-deep);background:#fce5dc;border-radius:50%;flex:none;place-items:center;display:grid}.shower-invitation__icon svg,.shower-note__icon svg,.shower-invitation__facts svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:24px;height:24px}.shower-invitation__heading p{color:var(--coral-deep);letter-spacing:.13em;text-transform:uppercase;margin-bottom:1px;font-size:.73rem;font-weight:700;line-height:1.35}.shower-invitation__heading h3{color:var(--ink);font-family:var(--display);margin:0;font-size:clamp(1.45rem,2.2vw,2rem);font-weight:500;line-height:1.15}.shower-invitation__facts{grid-template-columns:.75fr 1.25fr;gap:24px;margin:0;display:grid}.shower-invitation__facts>div{min-width:0}.shower-invitation__facts dt{color:var(--teal);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:5px;font-size:.72rem;font-weight:700;line-height:1.3;display:flex}.shower-invitation__facts dt svg{width:17px;height:17px}.shower-invitation__facts dd{color:var(--ink);margin:0;line-height:1.45}.shower-invitation__facts dd span{display:block}.shower-invitation__rsvp{width:178px}.shower-notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;width:min(1160px,100%);margin:0 auto;display:grid}.shower-note{background:#fffdf9d1;border:1px solid #397e7c1f;border-radius:30px;min-height:285px;padding:37px clamp(28px,4vw,48px) 34px;position:relative;overflow:hidden;box-shadow:0 16px 42px #495a501a}.shower-note:after{border:1px dashed color-mix(in srgb, var(--note-accent), transparent 55%);content:"";opacity:.48;border-radius:50%;width:130px;height:130px;position:absolute;bottom:-42px;right:-24px}.shower-note--refreshments,.shower-note--books{--note-accent:var(--teal)}.shower-note--gifts,.shower-note--diapers{--note-accent:var(--coral)}.shower-note__icon{background:color-mix(in srgb, var(--note-accent), white 82%);color:var(--note-accent);position:absolute;top:31px;right:31px}.shower-note__number{color:color-mix(in srgb, var(--note-accent), transparent 20%);font-family:var(--display);letter-spacing:.12em;margin-bottom:25px;font-size:.92rem}.shower-note h3{max-width:calc(100% - 54px);color:var(--ink);font-family:var(--display);letter-spacing:-.025em;margin:0 0 13px;font-size:clamp(1.65rem,2.4vw,2.15rem);font-weight:500;line-height:1.08}.shower-note>p:not(.shower-note__number){z-index:1;max-width:31rem;color:var(--muted-ink);margin-bottom:0;line-height:1.62;position:relative}.shower-note .shower-note__aside{color:var(--ink);margin-top:13px;font-weight:550}.shower-note__link{z-index:1;color:var(--teal-deep);text-underline-offset:4px;align-items:center;gap:7px;margin-top:20px;font-weight:700;display:inline-flex;position:relative}.shower-note__link:hover{color:var(--coral-deep)}.shower-details__closing{z-index:1;color:var(--coral-deep);font-family:var(--display);text-align:center;justify-content:center;align-items:center;gap:11px;margin-top:58px;font-size:1.22rem;display:flex;position:relative}.shower-details__closing p{margin-bottom:0}@keyframes details-nudge{0%,to{transform:translateY(-1px)}50%{transform:translateY(4px)}}.event-list{text-align:left;gap:7px;margin:19px 0 0;display:grid}.event-list>div{grid-template-columns:25px 1fr;align-items:flex-start;gap:11px;display:grid}.event-list dt,.event-list dd{margin:0}.event-list dt{color:var(--coral);display:flex}.event-list svg{width:21px;height:21px}.event-list dd{color:var(--ink);line-height:1.35}.event-location{white-space:pre-line}.event-location>*{display:block}.event-location strong{font-weight:600}.shower-copy{font-size:.94rem;line-height:1.5}.note-heart{color:#77a9bd;margin-top:22px;font-size:1.4rem;display:inline-block}.info-card__art{z-index:0;opacity:.75;pointer-events:none;width:176px;height:auto;position:absolute;bottom:-24px;right:-22px}.footer{z-index:4;min-height:94px;color:var(--teal-deep);text-align:center;background:0 0;padding:30px 24px 20px;position:relative;overflow:hidden}.footer:before{content:"";background:linear-gradient(176deg,#fffdf9 0 48%,#0000 50%);height:18px;position:absolute;top:0;left:0;right:0}.footer img{opacity:.72;pointer-events:none;width:460px;height:auto;position:absolute;bottom:-70px;right:max(-90px,50% - 670px)}@media (width>=1600px){.hero__content{width:980px}.hero__message p:last-child{font-size:1.95rem}.card-grid{width:min(1480px,100% - 96px)}.card-grid--two{grid-template-columns:repeat(2,minmax(0,500px))}.info-card__content{font-size:1.08rem}}@media (width>=768px){.footer img,.footer:before{display:none}}.footer p{font-family:var(--display);letter-spacing:.03em;margin-bottom:0;font-size:.95rem;position:relative}@media (width<=1023px){.hero__content{gap:28px;width:min(700px,78vw)}.card-grid{gap:18px}.info-card{min-height:440px;padding-left:24px;padding-right:24px}.hero__bear{width:255px;right:-28px}.shower-invitation{grid-template-columns:1fr 1.2fr}.shower-invitation__rsvp{grid-column:1/-1;justify-self:center;width:min(100%,360px)}}@media (width>=768px) and (width<=899px){.hero__bear{display:none}}@media (width<=767px){.hero{min-height:825px}.hero__inner{width:min(100% - 32px,520px);padding-top:25px}.hero__shell{width:78px;height:auto}.eyebrow{letter-spacing:.17em;font-size:.64rem}h1{font-size:clamp(3rem,14vw,4.35rem)}.hero__flourish{grid-template-columns:55px auto 55px;margin-top:8px}.hero__content{flex-direction:column;align-items:center;gap:16px;width:100%;margin-top:20px;display:flex}.hero__message{padding:0 8px}.hero__message:before{display:none}.hero__message p:last-child{max-width:340px;font-size:1.12rem;line-height:1.45}.due-card{border-radius:36px;width:min(290px,86vw);min-height:180px;margin-bottom:66px;padding:14px 20px 34px}.due-card:before{inset:8px}.due-card__shell{width:138px;height:auto;margin-bottom:-4px}.due-card__label{font-size:.88rem}.due-card__date{font-size:1.75rem}.due-card__wave{width:88px;margin-top:3px}.due-card__countdown{width:120px;height:120px;bottom:-85px}.due-card__countdown:before{inset:10px}.due-card__countdown strong{font-size:2.45rem}.due-card__countdown span{font-size:.92rem}.hero__art{background-position:bottom;background-size:760px}.hero__palm{width:250px;bottom:90px;left:0}.hero__clouds,.hero__birds,.hero__sun{display:none}.hero__castle{width:205px;bottom:34px;left:-22px}.hero__bear{width:205px;bottom:52px;right:8px}.details-section{margin-top:0;padding:68px 18px 35px;overflow:hidden}.shower-details-jump{min-height:50px;padding:10px 18px;font-size:.96rem;bottom:18px}.shower-details{padding:82px 18px 105px}.shower-details:before{height:78px;top:-48px}.shower-details:after{display:none}.shower-details__intro{margin-bottom:34px}.shower-details__intro h2{font-size:clamp(2.4rem,12vw,3.45rem)}.shower-details__intro>p:last-child{font-size:1.13rem}.shower-invitation{border-radius:25px;grid-template-columns:1fr;gap:26px;padding:31px 27px}.shower-invitation__facts{grid-template-columns:1fr;gap:19px;padding-left:4px}.shower-invitation__rsvp{grid-column:auto}.shower-notes{grid-template-columns:1fr;gap:18px}.shower-note{border-radius:25px;min-height:0;padding:32px 27px}.shower-note__icon{width:48px;height:48px;top:25px;right:25px}.shower-note__number{margin-bottom:20px}.shower-details__closing{margin-top:42px}.details-section:before{clip-path:none;opacity:.48;background:url(/assets/wave-flourish.svg) 50%/min(360px,50vw) no-repeat;width:100%;height:24px;top:2px;left:0}.details-section:after{display:none}.card-grid,.card-grid--two{grid-template-columns:minmax(0,480px);justify-content:center;gap:62px}.info-card{min-height:0;padding:50px 26px 28px}.info-card__content{line-height:1.62}.info-card__action{padding-top:24px}.button{width:100%}.info-card__art{opacity:.58;width:140px;right:0}.footer img{opacity:.48;width:260px;right:0}.footer{background:var(--cream-deep);min-height:150px;padding:45px 24px 28px}}@media (width<=430px){.hero{min-height:790px}.details-section{padding-left:14px;padding-right:14px}.info-card{border-radius:25px}}@media (width<=340px){.hero{min-height:760px}.hero__inner{width:calc(100% - 24px)}h1{font-size:2.8rem}.hero__message p:last-child{font-size:.98rem}.due-card{min-height:136px}.info-card{padding-left:20px;padding-right:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
