@import"https://fonts.googleapis.com/css2?family=Great+Vibes&family=Viaoda+Libre&display=swap";html.invitation-scroll-locked,body.invitation-scroll-locked{height:100%;overflow:hidden;overscroll-behavior:none}body.invitation-scroll-locked{position:fixed;inset:0;width:100%}.statusbar-fill{position:fixed;top:0;left:calc((100vw - min(100vw,var(--phone-width)))/2);z-index:90;width:min(100vw,var(--phone-width));height:var(--statusbar-height);background:var(--statusbar-background);pointer-events:none}.invitation-shell{position:relative;width:min(100%,var(--phone-width));min-height:100vh;margin:0 auto;overflow:hidden;background:var(--paper);box-shadow:0 0 80px #00000057}.invitation-scroll-locked .invitation-locked{height:100svh;min-height:100svh}.invitation-locked .content-section{display:none}.hero-section{position:relative;height:100svh;min-height:100svh;overflow:hidden;color:#fff;isolation:isolate}.invitation-entering .hero-section{position:fixed;top:0;bottom:0;left:calc((100vw - min(100vw,var(--phone-width)))/2);right:auto;z-index:25;width:min(100vw,var(--phone-width));opacity:0;pointer-events:none;transform:translateY(-100svh);transition:opacity .52s ease,transform .52s cubic-bezier(.22,1,.36,1)}.hero-media,.hero-scrim,.hero-image{position:absolute;inset:0}.hero-media{z-index:-3}.hero-image{height:100%;max-width:none;object-fit:cover;object-position:center;pointer-events:none}.hero-image-base{left:50%;width:145%;transform:translate(-50%)}.hero-image-overlay{left:50%;width:136%;transform:translate(-50%)}.hero-scrim{z-index:-1;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hero-copy{position:absolute;top:18.7%;left:0;width:100%;text-align:center}.hero-copy h1{font-family:var(--script);font-size:58px;font-weight:400;line-height:1}.hero-subtitle{margin-top:28px;font-size:20px;line-height:1.24}.hero-date-strip{position:absolute;top:42.1%;left:50%;display:flex;align-items:center;justify-content:center;width:100%;gap:20px;transform:translate(-50%)}.hero-date{position:relative;width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.5);border-radius:6px;background:transparent;color:#ffffff80;font-family:var(--display);font-size:20px;line-height:1}.hero-date:nth-child(2),.hero-date:nth-child(4){width:48px;height:48px;font-size:32px}.hero-date-active{width:96px;height:96px;border:0;color:#000;animation:hero-date-pulse 1.8s ease-in-out infinite;transform-origin:center;will-change:transform}.hero-date-active img{position:absolute;inset:0;width:100%;height:100%}.hero-date-active span{position:relative;top:-2px;font-size:46px}.hero-open{position:absolute;top:60.7%;left:50%;width:250px;transform:translate(-50%);background:transparent;color:#fff;font-size:20px;line-height:1.2;text-align:center}.hero-arrow{position:absolute;top:69.5%;left:50%;width:2px;height:50px;border-radius:999px;background:#fff;animation:hero-arrow-cue 1.35s ease-in-out infinite;transform:translate(-50%);will-change:transform,opacity}.hero-arrow:after{position:absolute;right:50%;bottom:0;width:12px;height:12px;border-right:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:translate(50%,1px) rotate(45deg);content:""}.hero-fingerprint-button{position:absolute;top:77.5%;left:50%;width:118px;height:118px;padding:0;border-radius:50%;background:transparent;transform:translate(-50%)}.hero-open:disabled,.hero-fingerprint-button:disabled{cursor:default}.hero-fingerprint{width:100%;height:100%;object-fit:cover;pointer-events:none}@keyframes hero-date-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes hero-arrow-cue{0%,to{opacity:.66;transform:translate(-50%) translateY(0)}50%{opacity:1;transform:translate(-50%) translateY(14px)}}.content-section{position:relative;background:#fff;padding-top:calc(var(--appbar-height) + var(--statusbar-height));padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}.invitation-entering .content-section{animation:content-slide-up .64s cubic-bezier(.22,1,.36,1) both;will-change:opacity,transform}.content-section [data-reveal]{opacity:0;transition:opacity .62s ease;transition-delay:var(--reveal-delay, 0ms);will-change:opacity}.content-section [data-reveal].is-revealed{opacity:1}@keyframes content-slide-up{0%{opacity:.98;transform:translateY(100svh)}to{opacity:1;transform:translateY(0)}}.floating-appbar{position:fixed;top:0;left:50%;z-index:15;display:flex;align-items:center;justify-content:space-between;width:min(100%,var(--phone-width));height:calc(var(--appbar-height) + var(--statusbar-height));padding:calc(12px + var(--statusbar-height)) 24px 12px 30px;background:var(--statusbar-background);box-shadow:0 1px #0000000a;opacity:0;pointer-events:none;transform:translate(-50%) translateY(-12px);transition:opacity .16s ease,transform .16s ease}.floating-appbar.visible{opacity:1;transform:translate(-50%)}.floating-appbar:not(.visible) .initials,.floating-appbar:not(.visible) .language-switch{pointer-events:none}.initials,.language-switch{pointer-events:auto}.initials{font-family:var(--display);font-size:34px;line-height:1}.language-switch{display:grid;grid-template-columns:56px 56px;column-gap:9px;align-items:center;width:129px;height:40px;padding:4px 8px;border:1px solid #e5e5e5;border-radius:6px;background:#efefef}.language-switch button{height:30px;border-radius:4px;background:transparent;color:#515151;font-family:var(--body);font-size:20px;line-height:1;text-transform:uppercase}.language-switch button.active{background:#1f1f1f;color:#fff}.couple-section{padding:41px 23px 0;text-align:center}.couple-names{position:relative;display:grid;grid-template-rows:1fr 49px 1fr;justify-items:center;align-items:center;height:153px;font-family:var(--display);font-size:48px;line-height:1.05}.ampersand{position:absolute;top:50%;left:50%;z-index:0;color:#cfcfcf3d;font-size:128px;line-height:1;transform:translate(-50%,-50%);pointer-events:none}.couple-names p{position:relative;z-index:1;white-space:nowrap}.couple-names p:first-of-type{grid-row:1}.couple-names p:last-of-type{grid-row:3}.couple-photo{width:100%;height:465px;margin-top:31px;object-fit:cover}.intro-section,.event-section,.location-section,.countdown-section,.signature-section{padding-right:23px;padding-left:23px;text-align:center}.intro-section{padding-top:48px}.date-heading{position:relative;display:grid;min-height:60px;place-items:center}.date-heading h2,.event-section h2{font-family:var(--display);font-size:36px;font-weight:400;line-height:1.1}.intro-section h3,.location-section h2,.countdown-section h2,.signature-section{font-family:var(--script);font-weight:400;line-height:1.08}.intro-section h3{margin-top:42px;font-size:40px}.body-copy{display:grid;gap:0;margin-top:42px;font-size:20px;line-height:1.24}.text-gap{display:block;height:22px}.hand-divider{width:100%;height:183px;margin-top:90px;background-position:center 64%;background-repeat:no-repeat;background-size:100% auto}.event-section{padding-top:28px}.event-section h2{color:#242424;font-size:32px}.date-rule{position:relative;width:110px;height:18px;margin:20px auto 0}.date-rule:before,.date-rule:after{position:absolute;top:8px;width:5px;height:5px;border-radius:50%;background:#242424;content:""}.date-rule:before{left:0}.date-rule:after{right:0}.date-rule span{position:absolute;top:10px;left:5px;width:100px;height:1px;background:#242424}.event-time{margin-top:4px;color:#242424;font-family:var(--display);font-size:28px;line-height:1.1}.event-section h3{margin-top:44px;font-family:var(--script);font-size:40px;font-weight:400;line-height:1}.calendar{width:min(320px,100%);margin:38px auto 0}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{font-size:20px;line-height:1}.calendar-grid{margin-top:34px;row-gap:30px;font-family:var(--display);font-size:24px;line-height:1}.calendar-day{position:relative;min-width:0;height:34px;display:grid;place-items:center;color:#242424}.calendar-day.selected{color:#fff;z-index:0}.calendar-day.selected img{position:absolute;width:62px;height:62px;animation:calendar-heart-pulse 1.45s ease-in-out infinite;filter:drop-shadow(0 2px 5px rgba(0,0,0,.18));pointer-events:none;transform-origin:center;z-index:0}.calendar-day.selected span{position:relative;z-index:1}@keyframes calendar-heart-pulse{0%,to{filter:drop-shadow(0 2px 5px rgba(0,0,0,.18));transform:scale(1)}50%{filter:drop-shadow(0 5px 10px rgba(0,0,0,.24));transform:scale(1.18)}}.location-section{padding-top:44px}.location-section h2,.countdown-section h2,.signature-section{font-size:48px}.location-section .body-copy{margin-top:38px}.map-preview{width:min(368px,100%);height:240px;margin:51px auto 0;overflow:hidden;border:0;background:#f2f2f2}.map-preview iframe{width:100%;height:100%;border:0}.map-button{min-width:283px;min-height:46px;margin-top:30px;padding:6px 24px;border-radius:47px;background:#000;color:#fff;font-size:20px;line-height:1}.countdown-section{padding-top:56px}.countdown-values{display:flex;justify-content:center;gap:11px;margin-top:47px;color:#242424;font-family:var(--display);font-size:50px;line-height:1;white-space:nowrap}.countdown-values span{display:inline-flex;gap:11px}.countdown-values b{font-weight:400}.countdown-labels{display:grid;grid-template-columns:repeat(4,1fr);margin-top:18px;color:var(--muted-ink);font-size:16px;line-height:1}.signature-section{padding-top:64px}.signature-section .text-gap{display:none}.template-footer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:97px;color:inherit;font-size:16px;text-decoration:none}.template-footer img{width:24px;height:24px}.sound-toggle{position:fixed;right:max(16px,calc((100vw - var(--phone-width)) / 2 + 16px));bottom:calc(env(safe-area-inset-bottom) + 22px);z-index:30;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#000;color:#fff;box-shadow:0 12px 30px #00000038}.sound-toggle.blocked{animation:pulse-sound 1.6s ease-in-out infinite}.sound-toggle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.sound-toggle svg path:first-child{fill:currentColor;stroke:none}@keyframes pulse-sound{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media(prefers-reduced-motion:reduce){.content-section [data-reveal]{opacity:1;transition:none}}@media(max-width:390px){.hero-copy h1{font-size:52px}.hero-date-strip{gap:12px}.couple-names{font-size:44px}.body-copy,.language-switch button,.weekdays,.map-button{font-size:18px}.date-heading h2,.event-section h2{font-size:29px}.location-section h2,.countdown-section h2,.signature-section{font-size:43px}.countdown-values{gap:8px;font-size:40px}.countdown-values span{gap:8px}}@media(max-width:340px){.hero-date-strip{gap:8px}.hero-date{width:38px;height:38px}.hero-date:nth-child(2),.hero-date:nth-child(4){width:44px;height:44px}.hero-date-active{width:86px;height:86px}.countdown-values{font-size:36px}}:root{--phone-width: 428px;--paper: #ffffff;--ink: #161616;--muted-ink: rgba(36, 36, 36, .72);--line: rgba(22, 22, 22, .14);--script: "Great Vibes", "Apple Chancery", cursive;--display: "Viaoda Libre", Didot, "Times New Roman", serif;--body: Constantine, Georgia, "Times New Roman", serif;--appbar-height: 64px;--statusbar-height: 0px;--statusbar-background: #ffffff;color:var(--ink);background:var(--statusbar-background);color-scheme:light;font-family:var(--body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background:var(--statusbar-background)}button{border:0;cursor:pointer;font:inherit}img{display:block}p,h1,h2,h3{margin:0}.app{min-height:100vh;background:radial-gradient(circle at top,rgba(255,255,255,.12),transparent 34%),#111}.splash-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#000;color:#fff}.splash-screen span{font-family:var(--display);font-size:46px;line-height:1}@media(max-width:640px){:root{--statusbar-height: max(env(safe-area-inset-top, 0px), 24px)}}.not-found{min-height:100vh;display:grid;place-content:center;gap:12px;padding:24px;background:#fff;color:#161616;text-align:center;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.not-found h1{font-size:34px}.not-found a{color:#161616;font-weight:850}
