:root{--color-purple-950:#26002e;--color-purple-900:#32003d;--color-purple-800:#4a0757;--color-gold-500:#ffc20a;--color-magenta-500:#b92be3;--color-cream-50:#fff7ea;--color-brown-700:#5a3b31;--color-shadow:#00000057;--max-content-width:1120px;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;max-width:100%;overflow-x:hidden}body{background:var(--color-purple-900);max-width:100%;color:var(--color-cream-50);font-family:var(--font-body);margin:0;overflow-x:hidden}img{object-fit:cover}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}main{max-width:100%;overflow:hidden}.experiencePage{isolation:isolate;background:linear-gradient(180deg, var(--color-purple-950), var(--color-purple-900) 28%), var(--color-purple-900);width:100%;max-width:100vw;min-height:100svh;animation:.82s cubic-bezier(.22,1,.36,1) both experiencePageIn;position:relative;overflow-x:hidden}.experiencePage:before{content:"";z-index:55;pointer-events:none;background:linear-gradient(180deg, #ffc20a38, #ffc20a00 28%), linear-gradient(180deg, var(--color-purple-950), var(--color-purple-900));animation:1.08s cubic-bezier(.22,1,.36,1) both experienceArrivalReveal;position:fixed;inset:0}.experiencePage>:not(.floatingHearts){z-index:1;position:relative}.experiencePage .introSection{animation:.72s cubic-bezier(.22,1,.36,1) 80ms both experienceContentIn}.experiencePage h2{font-family:var(--font-display);font-weight:700}.experiencePage p{font-family:var(--font-display);font-size:1.13rem;line-height:1.74}@keyframes experiencePageIn{0%{background-position:50% -32px}to{background-position:50% 0}}@keyframes experienceArrivalReveal{0%{opacity:1;clip-path:inset(0)}62%{opacity:.9;clip-path:inset(0 0 72%)}to{opacity:0;clip-path:inset(0 0 100%)}}@keyframes experienceContentIn{0%{opacity:0;transform:translateY(28px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.heroSection{isolation:isolate;background:linear-gradient(180deg, #ffc20a1f, #32003d00 36%), linear-gradient(135deg, #b92be333, #32003d00 48%), var(--color-purple-900);align-items:center;min-height:100svh;padding:56px 18px;display:grid;position:relative}.heroImageLayer,.heroOverlay{position:absolute;inset:0}.heroImageLayer{z-index:-2;transform-origin:top}.heroImage{filter:saturate(1.06)contrast(1.04)}.heroOverlay{z-index:-1;background:linear-gradient(#26002e47 0%,#32003d85 38%),linear-gradient(#32003d00 24%,#32003db3 66%,#32003d 100%)}.invitationFrame{width:min(100%,720px);min-height:min(82svh,820px);box-shadow:0 28px 70px #00000061, 0 0 calc(64px * var(--frame-glow)) #ffc20a33;border-radius:8px;margin:0 auto;animation:.88s cubic-bezier(.22,1,.36,1) both invitationFrameIn;position:relative;overflow:hidden}.invitationFrameImage{z-index:0;object-fit:cover}.invitationFrameInner{z-index:1;align-items:center;min-height:min(82svh,820px);padding:clamp(42px,13vw,92px) clamp(28px,10vw,76px);display:grid;position:relative}.heroContent{width:min(100%,560px);margin:0 auto;animation:.72s ease-out both heroContentIn}.invitationFrame h1{font-size:clamp(2.85rem,14vw,5.6rem)}.invitationFrame .counterCard{width:100%}.invitationFrame .counterCard strong{font-size:clamp(1.12rem,5.4vw,1.9rem)}@keyframes invitationFrameIn{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes heroContentIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.eyebrow{color:var(--color-gold-500);letter-spacing:0;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:800}h1,h2{letter-spacing:0;margin:0;line-height:.98}h1{max-width:10ch;color:var(--color-gold-500);font-size:clamp(3.1rem,18vw,6.8rem)}h2{color:var(--color-gold-500);font-size:clamp(2.25rem,12vw,5rem)}p{line-height:1.6}.heroPhrase{max-width:31rem;color:var(--color-cream-50);margin:20px 0 0;font-size:1.05rem}.counterCard{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:24px 0;display:grid}.counterCard span{text-align:center;background:#26002e94;border:1px solid #ffc20a6b;border-radius:8px;min-width:0;padding:12px 8px;box-shadow:0 10px 24px #00000038}.counterCard strong,.counterCard small{display:block}.counterCard strong{color:var(--color-gold-500);font-size:clamp(1.18rem,7vw,2.2rem);line-height:1}.counterCard small{color:#fff7eac7;margin-top:6px;font-size:.68rem}.heroActions{flex-wrap:wrap;gap:10px;display:flex}.primaryButton{background:var(--color-gold-500);min-height:48px;color:var(--color-brown-700);font:inherit;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0 18px;font-weight:900;display:inline-flex;box-shadow:0 18px 38px #ffc20a33}button:disabled{cursor:wait}.secondaryButton{min-height:48px;color:var(--color-cream-50);font:inherit;cursor:pointer;background:#26002ea3;border:1px solid #ffc20aa3;border-radius:8px;justify-content:center;align-items:center;padding:0 18px;font-weight:900;display:inline-flex;box-shadow:0 18px 38px #00000029}.floatingAudioButton{z-index:40;min-height:44px;color:var(--color-cream-50);font:inherit;cursor:pointer;background:#26002ec7;border:1px solid #ffc20aa3;border-radius:8px;padding:0 14px;font-size:.88rem;font-weight:900;position:fixed;bottom:14px;right:14px;box-shadow:0 16px 34px #00000047}.experienceTransition{z-index:60;background:var(--color-purple-950);width:100%;min-height:100svh;color:inherit;cursor:wait;border:0;place-items:center;padding:0;animation:.2s ease-out both transitionFadeIn;display:grid;position:fixed;inset:0;overflow:hidden}.transitionCurtain{background:linear-gradient(90deg, #ffc20a29, #ffc20a00), var(--color-purple-900);width:54vw;height:100%;animation:1.08s cubic-bezier(.76,0,.24,1) .28s both curtainOpen;position:absolute;top:0}.transitionCurtainLeft{transform-origin:0;left:0}.transitionCurtainRight{transform-origin:100%;animation-name:curtainOpenRight;right:0;scale:-1 1}.transitionFrame{z-index:1;color:var(--color-gold-500);text-transform:uppercase;justify-items:center;gap:16px;animation:.42s ease-in .86s both transitionFrameOut;display:grid;position:relative}.transitionFrame span{background:linear-gradient(90deg, transparent, var(--color-gold-500), transparent);width:min(68vw,260px);height:2px;animation:.9s ease-out both transitionLightSweep;box-shadow:0 0 28px #ffc20ab3}.transitionFrame strong{letter-spacing:.18em;font-size:clamp(1rem,5vw,1.5rem)}@keyframes transitionFadeIn{0%{opacity:0}to{opacity:1}}@keyframes curtainOpen{0%{transform:translate(0)scaleX(1)}48%{transform:translate(0)scaleX(1)}to{transform:translate(-104%)scaleX(.82)}}@keyframes curtainOpenRight{0%{transform:translate(0)scaleX(1)}48%{transform:translate(0)scaleX(1)}to{transform:translate(104%)scaleX(.82)}}@keyframes transitionLightSweep{0%{opacity:0;transform:scaleX(0)}34%{opacity:1}to{opacity:.7;transform:scaleX(1)}}@keyframes transitionFrameOut{to{opacity:0;transform:scale(1.08)}}.asLink{text-decoration:none}.floatingHearts{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.floatingHeart{width:var(--heart-size);height:var(--heart-size);opacity:0;animation:heartFloat 16s var(--heart-delay) ease-in-out infinite;background:#ffc20a61;position:absolute;rotate:-45deg;box-shadow:0 0 10px #ffc20a1f}.floatingHeart:before,.floatingHeart:after{content:"";background:inherit;border-radius:50%;width:100%;height:100%;position:absolute}.floatingHeart:before{top:-50%;left:0}.floatingHeart:after{top:0;left:50%}.heartOne{top:18%;left:7%}.heartTwo{background:#b92be35c;top:29%;right:10%}.heartThree{top:58%;left:13%}.heartFour{background:#fff7ea3d;top:69%;right:16%}.heartFive{background:#b92be34d;top:12%;left:48%}.heartSix{top:84%;right:39%}.textCard{background:linear-gradient(135deg,#fff7ea14,#fff7ea00 38%),linear-gradient(#4a0757b3,#26002ebd);border:1px solid #ffc20a3d;border-radius:8px;width:100%;min-width:0;max-width:100%;padding:clamp(22px,6vw,44px);position:relative;overflow:hidden;box-shadow:0 16px 34px #0003,inset 0 0 0 1px #fff7ea14}.textCard:before{content:"";pointer-events:none;border:1px solid #ffc20a24;border-radius:6px;position:absolute;inset:10px}.textCard:after{content:"";pointer-events:none;background:#b92be324;border-radius:999px;width:120px;height:120px;position:absolute;bottom:-42px;right:-42px}.textCard>*{z-index:1;position:relative}.textCard h2{font-size:clamp(2.15rem,10vw,4.45rem)}@keyframes heartFloat{0%{opacity:0;transform:translateY(34px)scale(.84)}16%{opacity:.62}50%{opacity:.34;transform:translate(22px,-18px)scale(1)}84%{opacity:.48}to{opacity:0;transform:translate(-18px,-64px)scale(.92)}}@media (prefers-reduced-motion:reduce){.floatingHeart{display:none}}@media (max-width:779px){.contentBand,.dedicationSection,.albumPreview,.closingSection,.albumHeader,.albumGrid,.dedicationNarration{width:calc(100% - 28px);max-width:calc(100vw - 28px);margin-inline:auto}.experiencePage p{font-size:1.02rem;line-height:1.68}.textCard{padding:22px 18px}.textCard:before{inset:8px}.textCard:after,.heartFive,.heartSix{display:none}.dedicationImageFrame,.albumPhotoFrame{box-shadow:0 14px 28px #0000003d}}.contentBand,.dedicationSection,.albumPreview,.closingSection,.albumHeader,.albumGrid{width:min(calc(100% - 36px), var(--max-content-width));margin-inline:auto}.contentBand{padding:84px 0}.introSection{max-width:760px}.paragraphStack{gap:16px;margin-top:22px;display:grid}.paragraphStack p{overflow-wrap:anywhere;margin:0}.introSection .paragraphStack{max-width:760px}.introSection .paragraphStack p{color:#fff7ead1;font-size:1.08rem}.dedicationsFlow{gap:96px;max-width:100%;padding:24px 0 84px;display:grid;overflow-x:hidden}.dedicationBlock{gap:44px;display:grid}.dedicationNarration{width:min(100% - 36px,760px);margin-inline:auto}.dedicationNarration .paragraphStack p{color:#fff7ead1}.dedicationSection{align-items:center;gap:24px;display:grid}.dedicationTitle{margin-bottom:2px}.dedicationCopy .paragraphStack p{color:#fff7ead1}.textLink{color:var(--color-magenta-500);margin-top:18px;font-weight:900;text-decoration:none;display:inline-flex}.dedicationImageFrame{background:var(--color-purple-950);min-height:420px;box-shadow:0 24px 50px var(--color-shadow);border:2px solid #ffc20a75;border-radius:8px;position:relative;overflow:hidden}.albumPreview{background:var(--color-gold-500);color:var(--color-brown-700);border-radius:8px;gap:28px;padding:72px 18px;display:grid}.albumPreview .eyebrow,.albumPreview h2{color:var(--color-purple-900)}.albumPreviewCopy p:not(.eyebrow){max-width:36rem}.albumPreviewGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.previewPhotoFrame{background:var(--color-purple-900);border-radius:8px;min-height:170px;position:relative;overflow:hidden}.closingSection{text-align:center;align-content:center;min-height:70svh;padding:96px 0;display:grid}.closingSection .paragraphStack{max-width:36rem;margin:22px auto 0}.closingSection .paragraphStack p{color:#fff7eac7}.albumPage{background:linear-gradient(180deg, var(--color-purple-950), var(--color-purple-900) 34%), var(--color-purple-900);min-height:100svh;padding:28px 0 72px}.albumHeader{padding:24px 0 44px}.albumHeader h1{max-width:9ch}.albumHeader p:not(.eyebrow){color:#fff7eac7;max-width:38rem}.backLink{color:var(--color-gold-500);margin-bottom:34px;font-weight:900;text-decoration:none;display:inline-flex}.albumGeneralLink{margin-top:10px}.albumGrid{gap:18px;display:grid}.albumPhotoCard{margin:0}.albumPhotoFrame{background:var(--color-purple-950);min-height:430px;box-shadow:0 22px 46px var(--color-shadow);border-radius:8px;position:relative;overflow:hidden}.albumPhotoCard p{color:#fff7eac7;margin:12px 2px 0}@media (min-width:780px){.heroSection{place-items:center;min-height:100svh;padding:72px}.dedicationSection{grid-template-columns:minmax(0,.86fr) minmax(360px,1fr);min-height:680px}.dedicationTitle{grid-column:1;align-self:end}.dedicationImageFrame{grid-area:1/2/span 2}.dedicationCopy{grid-column:1;align-self:start}.dedicationImageFrame{min-height:620px}.albumPreview{grid-template-columns:.9fr 1.1fr;align-items:center;padding:72px}.previewPhotoFrame{min-height:240px}.albumGrid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.albumPhotoCard:nth-child(3n+2){margin-top:64px}.albumPhotoFrame{min-height:520px}}@media (max-width:779px){html,body,main,.experiencePage{width:100%;max-width:100%;overflow-x:hidden}.contentBand,.dedicationNarration,.dedicationSection,.albumPreview,.closingSection,.albumHeader,.albumGrid{width:calc(100vw - 28px);max-width:calc(100vw - 28px);margin-left:auto;margin-right:auto}.textCard,.dedicationCopy,.paragraphStack,.dedicationImageFrame{min-width:0;max-width:100%}.dedicationTitle{max-width:calc(100vw - 28px);margin-left:auto;margin-right:auto}}
