:root{--ink:#29342e;--paper:#f4eee7;--accent:#7d8765;--display:'Cormorant Garamond',serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.6 'DM Sans',sans-serif}button,a,input,select{font:inherit}a{color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #c68751;outline-offset:5px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}img{display:block;max-width:100%}.kicker{font-size:10px;letter-spacing:3px;font-weight:600;text-transform:uppercase}.brand{font:italic 34px var(--display);text-decoration:none;letter-spacing:-1px}.nav{display:flex;align-items:center;justify-content:space-between;padding:24px 5%;border-bottom:1px solid #29342e20}.nav .kicker{letter-spacing:2px}.home-head{padding:65px 5% 45px;display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:end}.home-head h1{font:clamp(55px,6.8vw,100px)/.94 var(--display);letter-spacing:-3px;margin:22px 0 0}.home-head h1 em{color:#9b5944}.home-head p{max-width:350px;color:#68716a;font-size:15px}.collection{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding:10px 5% 70px}.sample{text-decoration:none;display:block}.sample-art{height:440px;overflow:hidden;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:transform .6s;border-radius:180px 180px 3px 3px;text-align:center}.sample:hover .sample-art{transform:translateY(-8px)}.sample-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.8s}.sample:hover img{transform:scale(1.07)}.sample-art:after{content:'';position:absolute;inset:0;background:linear-gradient(#1114,#1111,#1119)}.sample-art>*:not(img){position:relative;z-index:1}.sample-art h2{font:54px/.95 var(--display);margin:24px 0;color:white}.sample-art .kicker,.sample-art .tiny{color:white}.sample-art .tiny{font-size:10px;letter-spacing:2px}.sample-top{position:absolute!important;top:40px}.sample-num{font:130px/.9 'Italiana',serif;color:#e9d0ac}.sample-foot{display:flex;justify-content:space-between;padding:20px 0;border-bottom:1px solid #29342e30}.sample-foot h3{font-size:15px;font-weight:500;margin:0}.sample-foot span{color:#7d847c;font-size:11px}.arrow{font-size:24px!important;color:var(--ink)!important}.disco-art{background:#4826a1;border-radius:8px;color:#f4ed65}.disco-art:after{background:repeating-conic-gradient(from 12deg at 50% 45%,transparent 0 20deg,#ffffff09 20deg 40deg)}.disco-art h2{font:700 55px/.9 'Space Grotesk',sans-serif;transform:rotate(-8deg);color:#f4ed65}.disco-art .sample-num{font:700 140px/.85 'Space Grotesk',sans-serif;color:#fb94b2;text-shadow:5px 5px #25123e}.disco-ball{width:100px;height:100px;border-radius:50%;background:radial-gradient(circle at 32% 28%,white,transparent 30%),repeating-linear-gradient(0deg,transparent 0 9px,#29243d 9px 11px),repeating-linear-gradient(90deg,#c6b3e6 0 9px,#352b4b 9px 11px);box-shadow:0 0 60px #f7d1ff77,inset -20px -10px 30px #25123e;animation:sway 6s ease-in-out infinite}.disco-ball:before{content:'';height:100px;width:1px;background:#c4a6df;position:absolute;bottom:100%;left:50%}.home-note{padding:35px 5%;border-top:1px solid #29342e22;display:flex;justify-content:space-between;gap:30px}.home-note p{font:27px/1.3 var(--display);max-width:480px}.home-note small{max-width:300px;color:#74776b;font-size:11px}footer{text-align:center;padding:25px;font-size:10px;letter-spacing:2px;opacity:.7}.topbar{position:fixed;z-index:40;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:17px 4%;pointer-events:none}.topbar>*{pointer-events:auto}.pill{border:1px solid #ffffff55;background:#ffffffda;backdrop-filter:blur(12px);border-radius:30px;text-decoration:none;padding:9px 16px;font-size:11px;color:#30362f;box-shadow:0 4px 20px #0001}.tools{display:flex;gap:8px}.progress{position:fixed;top:0;left:0;width:0;height:3px;background:#d5ad6e;z-index:80}.event-hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;color:#fff;padding:110px 20px 75px}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:cinema 24s ease-in-out infinite alternate}.hero-shade{position:absolute;inset:0;background:linear-gradient(#17251b55,#17251b33 40%,#17251bba)}.hero-copy{position:relative;z-index:2;width:100%;animation:rise 1.4s both .2s}.hero-copy h1{font:clamp(80px,11vw,156px)/.8 var(--display);letter-spacing:-4px;margin:35px 0}.hero-copy h1 .amp{display:block;font-size:55px;font-style:italic;margin:24px 0}.hero-line{width:50px;height:1px;background:currentColor;margin:30px auto}.hero-date{font-size:12px;letter-spacing:4px}.scroll-hint{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:3px;z-index:3}.scroll-hint span{display:block;font-size:25px;animation:bob 2s infinite}.event-section{padding:100px 24px;max-width:1100px;margin:auto;text-align:center;position:relative}.section-title{font:clamp(44px,6vw,76px)/1 var(--display);letter-spacing:-1px;margin:20px 0 30px}.section-title em{color:var(--accent)}.lead{max-width:530px;margin:0 auto 30px;line-height:1.9;opacity:.8}.big-symbol{font:70px var(--display);color:var(--accent);line-height:1;margin-bottom:20px}.countdown{display:flex;justify-content:center;gap:32px;margin:42px 0}.countdown>div{min-width:55px}.countdown b{display:block;font:60px/1 var(--display);font-weight:400}.countdown span{font-size:9px;letter-spacing:2px;opacity:.7}.quote{font:italic clamp(27px,4vw,46px)/1.3 var(--display);max-width:650px;margin:0 auto 35px}.image-story{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;text-align:left}.image-story img{width:100%;height:500px;object-fit:cover;border-radius:220px 220px 0 0}.image-story .lead{margin-left:0}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:45px auto 0;max-width:850px}.location{padding:40px 25px;border:1px solid #7e806448;position:relative}.location .icon{font-size:30px;display:block;margin-bottom:18px}.location h3{font:35px var(--display);margin:12px 0}.location p{font-size:13px;opacity:.75}.btn,.solid{display:inline-block;padding:14px 25px;border:1px solid currentColor;background:transparent;text-decoration:none;border-radius:0;font-size:11px;letter-spacing:1px;transition:background .3s,transform .3s}.btn:hover,.solid:hover{transform:translateY(-3px)}.solid{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.ribbon{background:#e8dfd1;padding:18px 0;overflow:hidden;white-space:nowrap}.ribbon span{display:inline-block;animation:marquee 25s linear infinite;font:italic 27px var(--display);word-spacing:20px}.agenda{max-width:600px;margin:45px auto;text-align:left}.agenda-row{display:grid;grid-template-columns:80px 30px 1fr;gap:18px;align-items:start;position:relative;padding:0 0 35px}.agenda-row:before{content:'';position:absolute;left:112px;top:25px;bottom:0;width:1px;background:currentColor;opacity:.2}.agenda-row:last-child:before{display:none}.agenda-row time{font-size:11px;opacity:.65;padding-top:7px}.agenda-row i{font-style:normal;font-size:20px}.agenda-row h3{font:28px var(--display);margin:0}.agenda-row p{font-size:12px;opacity:.65}.swatches{display:flex;gap:10px;justify-content:center;margin:25px}.swatches i{width:26px;height:26px;border-radius:50%;background:var(--c)}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:45px auto;max-width:800px}.photo-pair img{height:360px;width:100%;object-fit:cover}.photo-pair img:nth-child(2){margin-top:50px}.rsvp-section{background:#e5e8dc;max-width:none}.rsvp-section .section-title{font-size:70px}.demo-footer{max-width:680px;margin:40px auto 0;padding:18px;border-top:1px solid #8884;font-size:10px;opacity:.65}.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:translateY(0)}.gate{position:fixed;inset:0;z-index:60;background:#ede5d8;display:flex;align-items:center;justify-content:center;transition:opacity .8s,transform 1s;overflow:hidden}.gate.opening{opacity:0;transform:scale(1.12);pointer-events:none}.gate-inner{text-align:center;position:relative;width:min(90%,600px);animation:rise 1s both}.gate .kicker{color:#6a6a52}.gate h2{font:italic 56px var(--display);margin:15px 0 35px}.envelope{width:300px;height:190px;background:#ded3bf;margin:40px auto;position:relative;box-shadow:0 20px 50px #493e2d22;perspective:1000px}.envelope:before{content:'';position:absolute;inset:0;background:linear-gradient(32deg,#e8dfcf 49.7%,transparent 50%) left/50.1% 100% no-repeat,linear-gradient(-32deg,#e3d8c6 49.7%,transparent 50%) right/50.1% 100% no-repeat;z-index:2}.flap{position:absolute;top:0;left:0;width:100%;height:100%;clip-path:polygon(0 0,100% 0,50% 64%);background:#d0c3ab;transform-origin:top;transition:transform .7s;z-index:3}.opening .flap{transform:rotateX(180deg)}.seal{position:absolute;left:calc(50% - 27px);top:78px;width:54px;height:54px;background:radial-gradient(circle at 30% 20%,#d9b878,#9e7239);border:4px double #caa96c;border-radius:50%;z-index:4;color:#fff1ce;font:22px var(--display);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 8px #0002;transition:transform .5s}.opening .seal{transform:scale(0)}.gate-open{border:0;border-bottom:1px solid currentColor;padding:12px 5px;background:transparent;font-size:11px;letter-spacing:3px}.gate small{display:block;font-size:9px;opacity:.6;margin-top:25px}.xv{--paper:#140f2b;--ink:#f4e5f5;--accent:#deb87f;background:var(--paper)}.xv .hero-shade{background:linear-gradient(#130d2c55,#130d2c44,#140f2b)}.xv .hero-copy h1{font-family:'Italiana',serif;font-size:clamp(77px,13vw,160px);letter-spacing:-3px;margin:20px 0 30px}.xv .xv-number{font:165px/.9 'Italiana',serif;opacity:.3;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;letter-spacing:8px}.moon{width:90px;height:90px;border-radius:50%;box-shadow:inset 22px -8px #f0d69d;transform:rotate(-25deg);margin:0 auto 40px;filter:drop-shadow(0 0 30px #dbb97755);animation:sway 7s ease-in-out infinite}.xv .ribbon{background:#251b3d;color:#dfbb8e}.xv .rsvp-section{background:radial-gradient(ellipse at top,#35224c,#140f2b)}.xv .solid{background:#deb87f;color:#21172c;border-color:#deb87f}.xv .location{border-color:#d4b67d44;background:#ffffff04}.xv .gate{background:radial-gradient(ellipse at bottom,#563353,#140f2b 70%);color:#ead4ae}.xv .gate .kicker{color:#e0c79f}.xv .gate h2{font-family:'Italiana',serif;font-style:normal;font-size:64px}.xv .gate .moon{width:120px;height:120px}.star-burst{font-size:45px;color:#e2c18e;animation:twinkle 3s ease-in-out infinite}.constellation{height:160px;max-width:400px;position:relative;margin:auto;background:linear-gradient(25deg,transparent 49.7%,#d8b77555 50%,transparent 50.3%);display:flex;justify-content:space-between;align-items:center}.constellation span{font-size:30px;animation:twinkle 3s infinite}.constellation span:nth-child(2){align-self:flex-start;animation-delay:1s}.constellation span:nth-child(3){align-self:flex-end;animation-delay:2s}.birthday{--paper:#f8e9d7;--ink:#35205e;--accent:#e4517a;--display:'Space Grotesk',sans-serif}.birthday .event-hero{background:#46258d;color:#f7ed75;min-height:100svh}.birthday .hero-copy h1{font:700 clamp(75px,13vw,155px)/.85 'Space Grotesk',sans-serif;letter-spacing:-7px;transform:rotate(-5deg);margin:25px 0 30px;text-shadow:5px 7px #24133e}.birthday .hero-copy .big-age{font:700 clamp(150px,25vw,280px)/.9 'Space Grotesk',sans-serif;color:#fa9db9;letter-spacing:-15px;display:block}.birthday .hero-copy .big-age span{display:inline-block;animation:bob 4s ease-in-out infinite}.birthday .hero-copy .big-age span:nth-child(2){animation-delay:-2s}.birthday .section-title{font-weight:700;letter-spacing:-3px}.birthday .ribbon{background:#f4ed68;color:#38225b;transform:rotate(-2deg);position:relative;z-index:4}.birthday .ribbon span{font:700 22px 'Space Grotesk',sans-serif}.birthday .rsvp-section{background:#f59cba}.birthday .gate{background:#f69cba;color:#42266d}.birthday .gate h2{font:700 65px/.95 'Space Grotesk',sans-serif;letter-spacing:-4px;transform:rotate(-6deg)}.birthday .gate .kicker{color:#42266d}.ticket{border:2px dashed #42266d;border-radius:18px;padding:35px 20px;position:relative;max-width:370px;margin:auto}.ticket:before,.ticket:after{content:'';position:absolute;width:30px;height:30px;border-radius:50%;background:#f69cba;top:50%;left:-16px}.ticket:after{left:auto;right:-16px}.barcode{height:35px;width:180px;margin:25px auto;background:repeating-linear-gradient(90deg,#42266d 0 2px,transparent 2px 4px,#42266d 4px 5px,transparent 5px 9px)}.birthday .event-hero>.disco-ball{position:absolute;top:70px;right:13%;width:120px;height:120px;z-index:4}.burst{position:absolute;width:170px;height:170px;clip-path:polygon(50% 0,61% 32%,85% 15%,68% 40%,100% 50%,68% 61%,85% 85%,60% 69%,50% 100%,40% 69%,15% 85%,32% 60%,0 50%,32% 39%,15% 15%,40% 32%);background:#f5e56a;animation:spin 35s linear infinite}.burst.one{left:-60px;top:20%}.burst.two{right:-60px;bottom:10%;background:#fa9db9;width:220px;height:220px}.birthday .location{border:2px solid #35205e;box-shadow:6px 6px #35205e;background:#fff4e5}.birthday .agenda-row h3{font:500 22px 'Space Grotesk',sans-serif}.birthday .quote{font:500 35px/1.2 'Space Grotesk',sans-serif;letter-spacing:-1px}.birthday .countdown b{font:700 55px 'Space Grotesk',sans-serif}.birthday .solid{border-radius:100px}.birthday .btn{border-radius:100px}.sticker{display:inline-block;background:#f7ed75;padding:8px 18px;border:1px solid #35205e;border-radius:50%;transform:rotate(-10deg);font-size:11px;font-weight:700}.playlist{border:1px solid #35205e;padding:30px;max-width:540px;margin:30px auto;text-align:left;background:#fff5e8;box-shadow:5px 5px #35205e}.playlist div{padding:10px 0;border-bottom:1px solid #35205e22;display:flex;justify-content:space-between;font-size:12px}.playlist small{opacity:.5}.floating{position:fixed;top:-30px;pointer-events:none;animation:fall var(--duration) linear infinite;animation-delay:var(--delay);left:var(--left);z-index:5}.petal{width:11px;height:18px;background:#f9e6d7aa;border-radius:90% 0 90% 0}.sparkle{color:#f8dca9;font-size:var(--size);animation:twinkle var(--duration) ease-in-out infinite;top:var(--top)}#effects{position:fixed;inset:0;pointer-events:none;z-index:6;overflow:hidden}#confetti{position:fixed;inset:0;pointer-events:none;z-index:100;width:100%;height:100%}dialog{border:0;padding:50px 35px;max-width:450px;width:calc(100% - 30px);background:#f9f1e7;color:#352c38;box-shadow:0 30px 100px #0005}dialog::backdrop{background:#130f25bb;backdrop-filter:blur(8px)}dialog h2{font:44px/1 var(--display);margin:20px 0}dialog p{font-size:13px}dialog label{display:block;font-size:11px;margin:17px 0 6px}dialog input,dialog select{padding:14px;width:100%;border:1px solid #9d9586;background:transparent;color:#352c38;border-radius:0}dialog .solid{width:100%;margin:22px 0 10px;background:#352c38;color:#fff}dialog small{font-size:10px;opacity:.6}.dialog-close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:27px}#thanks{text-align:center;padding:30px 0}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#fff5e8;color:#352c38;padding:12px 22px;box-shadow:0 5px 40px #0003;font-size:12px;z-index:100;opacity:0;transition:.3s;pointer-events:none;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.credit-links{display:flex;justify-content:center;gap:15px;font-size:10px;opacity:.6;flex-wrap:wrap}.event-end{padding:55px 20px;text-align:center}.event-end h2{font:italic 50px var(--display);margin-bottom:5px}.birthday .event-end h2{font-style:normal;font-weight:700}.replay{display:inline-block;margin-top:20px;border:0;border-bottom:1px solid currentColor;background:none;font-size:10px;padding:8px}.hidden{display:none!important}@keyframes rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bob{50%{transform:translateY(-12px)}}@keyframes sway{50%{transform:rotate(8deg)}}@keyframes twinkle{0%,100%{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}@keyframes cinema{to{transform:scale(1.14)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fall{to{transform:translate(100px,110vh) rotate(450deg)}}@media(min-width:1000px){.sample-art{height:490px}.event-hero{min-height:850px}}@media(max-width:700px){.nav{padding:20px 6%}.nav .kicker{font-size:8px;letter-spacing:1px}.home-head{display:block;padding:48px 6% 25px}.home-head h1{font-size:66px;margin-bottom:25px}.home-head p{font-size:13px}.collection{grid-template-columns:1fr;padding:10px 7% 45px;gap:35px;max-width:500px;margin:auto}.sample-art{height:460px}.home-note{flex-direction:column}.home-note p{margin-bottom:0}.event-section{padding:70px 24px}.image-story{grid-template-columns:1fr;gap:35px;text-align:center}.image-story img{height:390px;width:85%;margin:auto}.image-story .lead{margin:auto}.location-grid{grid-template-columns:1fr;gap:25px}.countdown{gap:15px}.countdown b{font-size:46px}.countdown>div{min-width:48px}.hero-copy h1{font-size:100px}.hero-copy h1 .amp{font-size:42px}.photo-pair{gap:10px}.photo-pair img{height:240px}.birthday .hero-copy h1{font-size:77px;letter-spacing:-5px}.birthday .hero-copy .big-age{font-size:210px}.birthday .event-hero>.disco-ball{width:75px;height:75px;right:9%;top:100px}.birthday .countdown b{font-size:40px}.birthday .section-title{font-size:45px}.rsvp-section .section-title{font-size:55px}.agenda-row{grid-template-columns:65px 25px 1fr;gap:12px}.agenda-row:before{left:88px}.topbar{padding:12px 14px}.pill{padding:8px 11px;font-size:10px}.hero-date{font-size:10px;letter-spacing:2px}.xv .hero-copy h1{font-size:83px}.gate h2{font-size:45px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
