@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/cormorant-garamond-latin-300-normal.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-latin-400-italic.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/jost-latin-300-normal.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jost-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Pinyon Script;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pinyon-script-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/playfair-display-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display-latin-700-normal.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/playfair-display-latin-400-italic.woff2) format("woff2")}@font-face{font-family:Lato;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/lato-latin-300-normal.woff2) format("woff2")}@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/lato-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/lato-latin-700-normal.woff2) format("woff2")}:root{--ivory: #fbf7ef;--ivory-warm: #f4ecdd;--sandstone: #e6d7bd;--sandstone-deep: #cdb994;--forest: #2a3b22;--forest-soft: #47593c;--rose: #a31e42;--rose-deep: #7d1533;--gold: #c39a3e;--gold-soft: #ddc07c;--ink: #1c2119;--bg: var(--ivory);--surface: #fffdf8;--text: var(--forest);--text-muted: #798270;--accent: var(--rose);--line: rgba(195, 154, 62, .42);--line-strong: rgba(195, 154, 62, .78);--shadow-sm: 0 1px 2px rgba(42, 59, 34, .06), 0 4px 12px rgba(42, 59, 34, .05);--shadow-md: 0 2px 6px rgba(42, 59, 34, .07), 0 18px 44px rgba(42, 59, 34, .1);--shadow-lg: 0 4px 10px rgba(42, 59, 34, .08), 0 34px 80px rgba(42, 59, 34, .16);--font-display: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;--font-script: "Pinyon Script", "Snell Roundhand", cursive;--font-body: "Jost", "Avenir Next", "Segoe UI", system-ui, sans-serif;--tracking-wide: .18em;--tracking-wider: .34em;--measure: 62ch;--gutter: clamp(1.25rem, 5vw, 3.5rem);--section-gap: clamp(4rem, 10vw, 8rem);--radius: 4px}[data-theme=valentine]{--bg: #fff5f7;--surface: rgba(255, 245, 248, .78);--text: #2d2d2d;--text-muted: rgba(45, 45, 45, .62);--accent: #d42e5a;--line: rgba(232, 104, 138, .4);--line-strong: rgba(212, 46, 90, .6);--pink-light: #f8d0de;--pink: #e8688a;--deep-pink: #d42e5a;--red: #c62828;--dark-red: #8b0000;--white: #fff;--text-dark: #2d2d2d;--text-light: #fff;--glass-bg: rgba(255, 245, 248, .75);--glass-border: rgba(232, 54, 93, .18);--glass-shadow: rgba(212, 46, 90, .2);--overlay-dark: rgba(0, 0, 0, .4)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-weight:300;color:var(--text);background-color:var(--bg);min-height:100vh;min-height:100dvh;overflow-x:hidden;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body[data-theme=valentine]{font-family:Lato,sans-serif;background-image:linear-gradient(135deg,#f5bdd0,#fdeef2 40%,#fff5f7 60%,#f5bdd0)}body[data-theme=valentine] h1,body[data-theme=valentine] h2,body[data-theme=valentine] h3,body[data-theme=valentine] h4{font-family:Playfair Display,serif}body[data-theme=wedding]:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(120% 70% at 50% -10%,rgba(230,215,189,.62) 0%,transparent 62%),radial-gradient(90% 55% at 12% 105%,rgba(221,192,124,.26) 0%,transparent 60%),radial-gradient(90% 55% at 88% 100%,rgba(163,30,66,.07) 0%,transparent 58%)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.15;letter-spacing:.01em}img,video,svg{max-width:100%;display:block}img,video{height:auto}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;border:none;background:none}a{color:inherit;text-decoration:none}::selection{background:#c39a3e61;color:var(--forest)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.overline{font-family:var(--font-body);font-weight:400;font-size:clamp(.68rem,1.6vw,.78rem);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-muted)}.rule{display:flex;align-items:center;justify-content:center;gap:.9rem;width:min(260px,60%);margin-inline:auto}.rule:before,.rule:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,var(--line-strong))}.rule:after{background:linear-gradient(to left,transparent,var(--line-strong))}.rule>span{width:6px;height:6px;flex:none;background:var(--gold);transform:rotate(45deg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1.7rem;font-family:var(--font-body);font-weight:400;font-size:.78rem;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--forest);background:transparent;border:1px solid var(--line-strong);border-radius:var(--radius);transition:background-color .35s ease,color .35s ease,border-color .35s ease,transform .35s ease}.btn:hover{background:var(--forest);border-color:var(--forest);color:var(--ivory);transform:translateY(-1px)}.btn svg{width:1em;height:1em}.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}.reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
