:root{--ivory: #f6f1e7;--cream: #efe6d6;--sand: #e3d5bd;--taupe: #b49b7f;--caramel: #9a7b56;--brown: #5c4632;--espresso: #3a2d20;--gold: #b08d57;--font-display: "Italiana", serif;--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "Jost", "Helvetica Neue", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--espresso);font-family:var(--font-serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}.page{position:relative;min-height:100vh;background:radial-gradient(1200px 600px at 85% -5%,rgba(176,141,87,.12),transparent 60%),radial-gradient(900px 500px at 0% 45%,rgba(180,155,127,.14),transparent 55%),linear-gradient(180deg,var(--ivory) 0%,var(--cream) 55%,var(--ivory) 100%)}.grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.05'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.fade-up{opacity:0;animation:fadeUp 1.1s cubic-bezier(.22,1,.36,1) forwards}@keyframes fadeUp{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.fade-up,.reveal{animation:none;transition:none;opacity:1;transform:none}}.ornament{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);margin:1.4rem auto}.ornament-line{display:block;width:min(90px,20vw);height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.ornament-leaf{width:34px;height:18px;flex-shrink:0}.hero{position:relative;min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6rem 1.5rem 4rem}.hero-frame{position:absolute;inset:clamp(14px,3vw,34px);border:1px solid rgba(154,123,86,.35);outline:1px solid rgba(154,123,86,.18);outline-offset:6px;pointer-events:none}.hero-eyebrow{font-family:var(--font-sans);font-weight:400;font-size:.82rem;letter-spacing:.42em;text-transform:uppercase;color:var(--caramel);margin-bottom:2.2rem}.hero-title{font-family:var(--font-display);font-weight:400;color:var(--brown);line-height:1.05}.hero-title>span{display:block}.hero-title>span:first-child{font-size:clamp(2rem,5.5vw,3.6rem);letter-spacing:.14em;text-transform:uppercase}.hero-names{font-size:clamp(3.4rem,11vw,7.5rem);margin-top:.6rem;color:var(--espresso)}.hero-names em{font-family:var(--font-serif);font-style:italic;font-size:.55em;color:var(--gold);vertical-align:middle;padding:0 .15em}.hero-sub{max-width:30rem;font-style:italic;font-size:1.15rem;color:var(--caramel)}.hero-scroll{margin-top:3.4rem;width:1px;height:64px;background:#9a7b564d;position:relative;overflow:hidden}.hero-scroll span{position:absolute;top:-40%;left:0;width:100%;height:40%;background:var(--caramel);animation:scrollHint 2.2s ease-in-out infinite}@keyframes scrollHint{0%{top:-40%}to{top:110%}}.feature{padding:3rem 1.5rem 4rem;display:flex;justify-content:center}.feature-inner{width:min(680px,100%)}.feature-figure{position:relative;background:#fffdf8;padding:clamp(14px,2.5vw,22px) clamp(14px,2.5vw,22px) 0;box-shadow:0 30px 60px -18px #3a2d2059,0 8px 20px -8px #3a2d2033}.feature-figure:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(154,123,86,.25);pointer-events:none}.feature-figure img{display:block;width:100%;height:auto}.feature-figure figcaption{font-family:var(--font-sans);font-size:.78rem;letter-spacing:.32em;text-transform:uppercase;text-align:center;color:var(--caramel);padding:1.1rem 0 1.2rem}.message{padding:5rem 1.5rem;text-align:center;position:relative}.message-mark{display:block;font-family:var(--font-display);font-size:7rem;line-height:.4;color:var(--gold);opacity:.55;margin-bottom:1.6rem}.message-text{max-width:42rem;margin:0 auto;font-size:clamp(1.5rem,3.4vw,2.15rem);font-weight:500;line-height:1.55;color:var(--brown)}.message-hug{display:block;margin-top:1.4rem;font-style:italic;color:var(--caramel)}.message-signature{margin-top:2.8rem}.signature-label{font-family:var(--font-sans);font-size:.78rem;letter-spacing:.4em;text-transform:uppercase;color:var(--taupe)}.signature-names{font-family:var(--font-display);font-size:clamp(2.4rem,6vw,3.6rem);color:var(--espresso);margin-top:.4rem}.gallery{padding:4rem 1.5rem 5rem;max-width:1080px;margin:0 auto;text-align:center}.gallery-title{font-family:var(--font-display);font-weight:400;font-size:clamp(1.8rem,4.5vw,2.8rem);color:var(--brown);letter-spacing:.04em}.gallery-grid{margin-top:3rem;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.6rem,4vw,2.8rem);align-items:start}@media(min-width:900px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:560px){.gallery-grid{grid-template-columns:1fr;max-width:340px;margin-left:auto;margin-right:auto}}.gallery-item:nth-child(2n){transform:translateY(2.2rem)}.gallery-item:nth-child(2n).is-visible{transform:translateY(2.2rem)}.polaroid{background:#fffdf8;padding:12px 12px 0;box-shadow:0 22px 44px -16px #3a2d2061,0 6px 14px -6px #3a2d202e;transform:rotate(var(--rotate, 0deg));transition:transform .6s cubic-bezier(.22,1,.36,1)}.polaroid:hover{transform:rotate(0) scale(1.03)}.polaroid img{display:block;width:100%;height:auto;filter:saturate(.96) sepia(.06)}.polaroid figcaption{font-family:var(--font-serif);font-style:italic;font-size:1.02rem;color:var(--brown);padding:.9rem .4rem 1rem}.closing{padding:5rem 1.5rem 4rem;text-align:center;background:linear-gradient(180deg,transparent,rgba(180,155,127,.14))}.closing-text{font-size:clamp(1.5rem,4vw,2.3rem);color:var(--brown);font-weight:500}.closing-text em{color:var(--gold)}.closing-names{margin-top:1.2rem;font-family:var(--font-sans);font-size:.85rem;letter-spacing:.4em;text-transform:uppercase;color:var(--caramel)}.footer{padding:2rem 1.5rem 2.6rem;text-align:center;font-family:var(--font-sans);font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}@media(max-width:640px){.gallery-item:nth-child(2n),.gallery-item:nth-child(2n).is-visible{transform:translateY(0)}.hero{min-height:88vh}}
