:root{--paper-cream:#f8e9d6;--sand:#d8b98a;--sea-foam:#8ed4ce;--ocean-teal:#278d8b;--birthday-red:#e52d2f;--coral:#f26d4f;--bronze-gold:#b97938;--cocoa-text:#61474a;--deep-ink:#2e2528;--card-white:#fffdfc;--shadow-soft:0 28px 70px #2e252833;--shadow-sticker:0 14px 24px #961c2047;--display:"Cormorant Garamond", Georgia, serif;--script:"Satisfy", cursive;--body:"Nunito Sans", Arial, sans-serif;color:var(--deep-ink);font-family:var(--body);background:var(--paper-cream)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 12% 20%, #f26d4f29, transparent 26rem), radial-gradient(circle at 86% 12%, #278d8b24, transparent 28rem), linear-gradient(180deg, #fff4e7 0%, var(--paper-cream) 48%, #f5dfc7 100%);min-width:320px;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}:focus-visible{outline:3px solid var(--ocean-teal);outline-offset:4px}.site-shell{min-height:100vh;position:relative}.hero-section{isolation:isolate;min-height:100svh;padding:clamp(3.2rem,5vw,5.4rem) clamp(1rem,4vw,4rem) clamp(6rem,9vw,8rem);position:relative;overflow:hidden}.hero-section:before{z-index:-3;content:"";background-color:#0000;background-image:linear-gradient(90deg,#fffdfc6b 1px,#0000 1px),linear-gradient(#fffdfc57 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:46px 46px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 28%,#000 0,#0000 68%);mask-image:radial-gradient(circle at 50% 28%,#000 0,#0000 68%)}.hero-scene{z-index:-1;opacity:.75;pointer-events:none;position:absolute;inset:0}.hero-wave{z-index:-2;opacity:.9;pointer-events:none;width:min(122rem,145vw);max-width:none;position:absolute;left:50%;transform:translate(-50%)}.hero-wave--top{top:-37rem;rotate:180deg}.hero-wave--bottom{bottom:-35rem}.hero-inner{grid-template-columns:minmax(18rem,.82fr) minmax(24rem,1.18fr);align-items:center;gap:clamp(2rem,5vw,5rem);width:min(1180px,100%);min-height:calc(100svh - 9rem);margin:0 auto;display:grid}.hero-copy{z-index:2;position:relative}.hero-logo{filter:drop-shadow(0 12px 20px #2e252826);width:min(11.8rem,48vw);margin-bottom:clamp(1rem,2.4vw,1.9rem);display:block}.hero-kicker,.section-heading p{color:var(--cocoa-text);font-family:var(--display);margin:0;font-size:clamp(1.45rem,3vw,2.2rem);font-style:italic;font-weight:700}.hero-copy h1{color:var(--bronze-gold);font-family:var(--display);gap:.2rem;margin:0;line-height:.9;display:grid}.hero-copy h1 span{color:var(--deep-ink);font-size:clamp(3.4rem,8vw,6.2rem);font-weight:600}.hero-copy h1 strong{width:min-content;color:var(--bronze-gold);letter-spacing:0;font-size:clamp(4.1rem,10vw,8.1rem);font-weight:700}.hero-hosts{color:var(--birthday-red);font-family:var(--script);margin:.5rem 0 1.15rem;font-size:clamp(2.3rem,4vw,3.4rem)}.hero-meta{gap:.7rem;max-width:28rem;margin-bottom:1.8rem;display:grid}.hero-meta span{color:var(--deep-ink);align-items:center;gap:.7rem;font-size:clamp(1rem,2vw,1.18rem);font-weight:800;display:flex}.hero-meta svg{color:var(--birthday-red);flex:none}.hero-cta,.invite-card button{color:#fff;background:var(--birthday-red);min-height:3.35rem;box-shadow:var(--shadow-sticker);border:0;border-radius:999px;justify-content:center;align-items:center;gap:.65rem;padding:0 1.35rem;font-weight:900;display:inline-flex}.hero-visual{min-height:clamp(30rem,46vw,39rem);position:relative}.hero-photo-stack{height:clamp(29rem,47vw,39rem);transform-style:preserve-3d;position:relative}.social-card{background:var(--card-white);width:clamp(15.2rem,25vw,22rem);box-shadow:var(--shadow-soft);transform-origin:50%;border-radius:1.5rem;position:absolute;overflow:hidden}.social-card--left{top:4%;left:4%;rotate:-7deg}.social-card--right{z-index:2;top:15%;right:2%;rotate:8deg}.social-card__bar{justify-content:flex-end;gap:.3rem;height:3.8rem;padding:1.45rem 1.35rem 0;display:flex}.social-card__bar span{background:#505466;border-radius:999px;width:.38rem;height:.38rem}.social-card__image{aspect-ratio:.87;object-fit:cover;width:100%;display:block}.social-card__chrome{grid-template-columns:1.4rem 1.4rem 1.4rem 1fr 1.4rem;align-items:center;gap:.65rem;height:3.6rem;padding:0 1rem;display:grid}.social-card__heart,.social-card__bubble,.social-card__send,.social-card__save{border:.17rem solid #4d5264;width:1.25rem;height:1.25rem;display:block}.social-card__heart{background:var(--birthday-red);clip-path:path("M10 18 C-2 10 2 0 10 5 C18 0 22 10 10 18");border:0}.social-card__bubble{border-radius:50%}.social-card__send{border-bottom:0;border-left:0;transform:skew(-18deg)rotate(38deg)}.social-card__save{clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);border-radius:.15rem;justify-self:end}.social-card__dots{justify-content:center;gap:.38rem;display:flex}.social-card__dots i{background:#cdd3dd;border-radius:999px;width:.5rem;height:.5rem}.social-card__dots i:first-child{background:#5b93ff}.social-card__caption{width:15rem;color:var(--deep-ink);font-family:var(--display);margin:0;font-size:1.35rem;font-style:italic;line-height:1.06;position:absolute;bottom:-5.5rem;right:-3.5rem}.social-card__caption strong{color:var(--birthday-red);font-size:1.95rem;display:block}.social-card__caption em{color:var(--birthday-red);font-family:var(--script);font-size:1.8rem;font-style:normal}.reaction-sticker,.doodle{z-index:4;pointer-events:none;position:absolute}.hero-sticker--one{width:clamp(3.2rem,7vw,5rem);top:20%;left:0;rotate:-12deg}.hero-sticker--two{width:clamp(3.2rem,7vw,5rem);top:39%;left:45%;rotate:9deg}.hero-sticker--three{width:clamp(3.2rem,7vw,5rem);bottom:29%;right:2%;rotate:13deg}.doodle--glasses{width:clamp(4.4rem,10vw,7rem);top:1%;left:6%;rotate:-10deg}.doodle--spiral{opacity:.75;width:clamp(6rem,16vw,13rem);bottom:3%;right:7%}.assistant-celebrants{z-index:3;width:min(21rem,92vw);position:absolute;bottom:0;right:0}.assistant-celebrants>p{color:var(--birthday-red);font-family:var(--display);text-align:center;margin:0 0 .65rem;font-size:1.65rem;font-style:italic;font-weight:800}.assistant-celebrants>div{justify-content:center;gap:1rem;display:flex}.assistant-celebrants figure{text-align:center;margin:0}.assistant-celebrants img{aspect-ratio:1;border:.28rem solid var(--paper-cream);object-fit:cover;border-radius:999px;width:6.7rem;box-shadow:0 14px 26px #2e25282e}.assistant-celebrants figcaption{color:var(--deep-ink);font-family:var(--display);font-size:1.25rem;font-style:italic;line-height:1.05;display:grid}.preview-section{padding:clamp(5rem,9vw,8rem) clamp(1rem,4vw,4rem);position:relative;overflow:hidden}.preview-section:nth-of-type(odd){background:#fffdfc47}.preview-section:before,.preview-section:after{z-index:0;aspect-ratio:1;content:"";pointer-events:none;border-radius:999px;width:clamp(5rem,12vw,9rem);position:absolute}.preview-section:before{border:.15rem solid #e52d2f29;top:12%;right:-3rem}.preview-section:after{background:#8ed4ce2e;bottom:10%;left:-3.5rem}.section-shell{z-index:1;width:min(1080px,100%);margin:0 auto;position:relative}.section-heading{grid-template-columns:1fr auto;align-items:end;gap:.8rem 2rem;margin-bottom:1rem;display:grid}.section-heading h2{max-width:48rem;color:var(--deep-ink);font-family:var(--display);grid-column:1;margin:0;font-size:clamp(2.6rem,6vw,5.4rem);line-height:.94}.section-heading span{aspect-ratio:1;border:.16rem solid #b9793870;border-radius:999px;grid-area:1/2/span 2;width:clamp(5rem,12vw,9rem);display:block}.section-intro{max-width:44rem;color:var(--cocoa-text);margin:0 0 2rem;font-size:clamp(1.05rem,2vw,1.2rem);line-height:1.75}.preview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.preview-card,.invite-card{background:#fffdfcbd;border:1px solid #b979383d;border-radius:1.1rem;box-shadow:0 22px 46px #2e25281f}.preview-card{min-height:13rem;padding:1.4rem;rotate:-1deg}.preview-card:nth-child(2n){transform:translateY(1.1rem)}.preview-card strong{color:var(--birthday-red);font-family:var(--display);font-size:2rem;line-height:1}.preview-card p{color:var(--deep-ink);line-height:1.58}.timeline-preview{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(1rem,3vw,2rem);padding:2.2rem 0;display:grid;position:relative}.timeline-rail{z-index:-1;background:linear-gradient(90deg, var(--birthday-red), var(--bronze-gold), var(--ocean-teal));border-radius:999px;height:.28rem;position:absolute;top:50%;left:4%;right:4%;box-shadow:0 10px 24px #2e25281f}.timeline-stop{background:linear-gradient(145deg,#fffdfceb,#f8e9d6c7);border:1px solid #61474a2e;border-radius:1.1rem;min-height:15rem;padding:1.35rem;position:relative;box-shadow:0 24px 54px #2e252824}.timeline-stop:nth-of-type(odd){transform:translateY(-1rem)}.timeline-stop:nth-of-type(2n){transform:translateY(1rem)}.timeline-stop:before{border:.22rem solid var(--card-white);background:var(--birthday-red);content:"";border-radius:999px;width:1.2rem;height:1.2rem;position:absolute;top:-.8rem;left:1.35rem;box-shadow:0 8px 18px #961c2047}.timeline-stop span{color:#fff;background:var(--ocean-teal);width:2.5rem;height:2.5rem;font-family:var(--display);border-radius:999px;place-items:center;margin-bottom:1rem;font-size:1.35rem;font-weight:900;display:inline-grid}.timeline-stop strong{color:var(--birthday-red);font-family:var(--display);font-size:2rem;line-height:1;display:block}.timeline-stop p{color:var(--deep-ink);line-height:1.58}.gallery-preview{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(.6rem,2vw,1.5rem);display:grid}.gallery-card{background:var(--card-white);box-shadow:var(--shadow-soft);border-radius:1.2rem;margin:0;padding:.7rem}.gallery-card--1{rotate:-5deg}.gallery-card--2{transform:translateY(1.2rem)}.gallery-card--3{rotate:-2deg}.gallery-card img{aspect-ratio:.9;object-fit:cover;border-radius:.8rem;width:100%;display:block}.invite-card{gap:1rem;max-width:38rem;padding:clamp(1.1rem,4vw,2rem);display:grid;position:relative;overflow:hidden}.invite-card:before{aspect-ratio:1;content:"";background:#8ed4ce66;border-radius:999px;width:16rem;position:absolute;inset:auto -6rem -7rem auto}.invite-card__stamp{border:2px solid var(--birthday-red);color:var(--birthday-red);font-family:var(--script);border-radius:999px;justify-self:start;padding:.45rem .9rem;font-size:1.55rem;rotate:-4deg}.invite-card label{z-index:1;color:var(--deep-ink);gap:.35rem;font-weight:900;display:grid;position:relative}.invite-card input,.invite-card select,.invite-card textarea{width:100%;color:var(--deep-ink);background:#ffffffd6;border:1px solid #61474a47;border-radius:.8rem;padding:.85rem .95rem}.invite-card textarea{resize:vertical}.invite-card button{justify-self:start}.invite-card__notice{z-index:1;color:var(--ocean-teal);margin:0;font-weight:900;position:relative}.sticker-nav{z-index:20;justify-items:end;gap:.7rem;display:grid;position:fixed;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}.menu-callout{min-width:max-content;color:var(--deep-ink);filter:drop-shadow(0 10px 18px #2e252826);pointer-events:none;align-items:center;gap:.55rem;animation:2.6s ease-in-out infinite menu-callout-float;display:flex;position:absolute;bottom:.9rem;right:4.8rem}.menu-callout span{font-family:var(--script);white-space:nowrap;background:#fffdfcdb;border:1px solid #b9793847;border-radius:999px;padding:.5rem .78rem;font-size:1.25rem;rotate:-3deg}.menu-callout i{border-right:.18rem solid var(--bronze-gold);border-bottom:.18rem solid var(--bronze-gold);border-radius:0 0 1.8rem;width:2.1rem;height:1.5rem;display:block;transform:rotate(-23deg)}.menu-callout.is-hidden{opacity:0}.sticker-nav__toggle,.sticker-nav__item{color:#fff;background:var(--birthday-red);box-shadow:var(--shadow-sticker);border:0}.sticker-nav__toggle{border-radius:1.15rem;place-items:center;width:4rem;height:4rem;animation:2.8s ease-in-out infinite heart-menu-pulse;display:grid;rotate:-5deg}.sticker-nav__items{pointer-events:none;justify-items:end;gap:.55rem;display:grid}.sticker-nav__item{opacity:0;min-height:2.85rem;transition:opacity .18s,translate .18s,rotate .18s,background .18s;transition-delay:calc(var(--item-index) * 24ms);border-radius:999px;align-items:center;gap:.5rem;padding:0 .9rem;display:inline-flex;translate:0 .8rem}.sticker-nav__items.is-open{pointer-events:auto}.sticker-nav__items.is-open .sticker-nav__item{opacity:1;translate:0}.sticker-nav__item:nth-child(odd){rotate:-2deg}.sticker-nav__item:nth-child(2n){rotate:2deg}.sticker-nav__item[aria-current=true]{background:var(--ocean-teal)}.sticker-nav__item span{font-weight:900}.section-dots{background:#fffdfcc2;border-radius:999px;gap:.32rem;padding:.42rem .55rem;display:flex;box-shadow:0 10px 22px #2e25281f}.section-dots span{background:#cdd3dd;border-radius:999px;width:.43rem;height:.43rem}.section-dots .is-active{background:#5b93ff}@keyframes heart-menu-pulse{0%,to{box-shadow:var(--shadow-sticker), 0 0 0 0 #e52d2f52;transform:translateY(0)scale(1)}45%{box-shadow:var(--shadow-sticker), 0 0 0 .75rem #e52d2f00;transform:translateY(-.14rem)scale(1.04)}}@keyframes menu-callout-float{0%,to{transform:translateY(0)}50%{transform:translateY(-.32rem)}}@media (width<=860px){.hero-section{min-height:auto;padding-top:4.2rem}.hero-inner{grid-template-columns:1fr;min-height:0}.hero-logo{width:min(12rem,56vw)}.hero-copy h1 strong{width:auto}.hero-visual{min-height:38rem}.social-card{width:min(72vw,19rem)}.social-card--left{left:0}.social-card--right{top:30%;right:0}.assistant-celebrants{bottom:-1rem;right:50%;transform:translate(50%)}.preview-grid,.gallery-preview,.timeline-preview{grid-template-columns:1fr}.timeline-preview{padding-left:1rem}.timeline-rail{transform-origin:top;width:.28rem;height:auto;inset:2rem auto 2rem 1.4rem}.preview-card:nth-child(2n){transform:none}.section-heading{grid-template-columns:1fr}.section-heading span{display:none}.sticker-nav__item{min-height:3rem}.menu-callout{bottom:.8rem;right:4.5rem}}@media (width<=520px){.hero-wave--top{top:-26rem}.hero-wave--bottom{bottom:-23rem}.hero-visual{min-height:35rem}.social-card__caption{width:12rem;font-size:1.08rem;bottom:-4.8rem;right:-1rem}.social-card__caption strong{font-size:1.55rem}.social-card__caption em{font-size:1.35rem}.assistant-celebrants img{width:5.5rem}.sticker-nav__item span{white-space:nowrap;max-width:6.8rem}.menu-callout span{font-size:1.05rem}.menu-callout i{width:1.45rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.hero-scene{display:none}.sticker-nav__toggle,.menu-callout{animation:none}}
