.theme-ulliri{--bg:#f4efe4;--bg-alt:#ebe4d4;--ink:#19180f;--muted:#6d6853;--accent:#6b6a3a;--line:#cfc6ad;--seal:#7a2e22;--seal-hi:#a4473a;--seal-lo:#4d1a13;--seal-ink:#e8c9a6}.theme-bordo{--bg:#f7efec;--bg-alt:#efe1dc;--ink:#2a1215;--muted:#7a5a5e;--accent:#7b2235;--line:#dcc3c0;--seal:#6e1b2b;--seal-hi:#94303f;--seal-lo:#45101b;--seal-ink:#f0d3c2}.theme-blu{--bg:#f2f4f6;--bg-alt:#e4e9ee;--ink:#17222e;--muted:#5b6b7b;--accent:#3d5a78;--line:#c6d0da;--seal:#2e4864;--seal-hi:#4a6888;--seal-lo:#1b2d40;--seal-ink:#e2e8ef}.theme-rozë{--bg:#fbf3f1;--bg-alt:#f4e4e0;--ink:#2d1e1f;--muted:#866b6c;--accent:#b06a6e;--line:#e7cfcb;--seal:#a35a5e;--seal-hi:#c27b7e;--seal-lo:#723a3e;--seal-ink:#fbe7e1}:root{--font-serif:"Cormorant Garamond",Georgia,serif;--font-sans:"Jost",system-ui,sans-serif}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f4efe4;-webkit-font-smoothing:antialiased}.inv{min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-weight:300;overflow-x:hidden}.inv em{font-family:var(--font-serif);font-style:italic;color:var(--accent);font-weight:400}.hero{position:relative;height:100svh;min-height:560px;display:grid;place-items:end center;color:#fff}.hero-img{object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,0) 35%,rgba(0,0,0,.55))}.hero-inner{position:relative;text-align:center;padding:0 16px 9vh}.hero-code{font-size:12px;letter-spacing:.6em;margin:0 0 12px;padding-left:.6em;opacity:.9}.hero-names{font-family:var(--font-serif);font-weight:400;font-size:clamp(52px,13vw,128px);line-height:.95;margin:0 0 28px}.hero-names em{color:#fff;opacity:.75;font-size:.6em;margin:0 .15em}.hero-cta{display:inline-flex;gap:10px;color:#fff;text-decoration:none;font-size:12px;letter-spacing:.3em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:6px}.hero-cta span{animation:bob 2s ease-in-out infinite}@keyframes bob{50%{transform:translateY(4px)}}.block{max-width:640px;margin:0 auto;padding:96px 20px;border-bottom:1px solid var(--line)}.center{text-align:center}.label{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--muted);margin:0 0 36px}.label span{color:var(--accent)}.eyebrow{font-style:italic;font-size:20px;color:var(--muted);margin:8px 0 10px}.eyebrow,.title{font-family:var(--font-serif)}.title{font-weight:400;font-size:clamp(34px,8vw,52px);line-height:1.1;margin:0 0 18px}.body{font-size:16px;line-height:1.85;color:var(--ink);max-width:480px;margin:0 auto 20px}.italic{font-family:var(--font-serif);font-style:italic;font-size:21px}.star{color:var(--accent);margin:6px 0 22px}.signature{font-family:var(--font-serif);font-style:italic;font-size:26px;margin:8px 0 34px}.botanical{width:180px;height:50px;color:var(--accent);opacity:.7;margin:0 auto 8px;display:block}.date-trio{display:flex;justify-content:center;align-items:center;gap:22px;font-size:12px;letter-spacing:.35em;text-transform:uppercase;color:var(--muted)}.date-trio strong{font-family:var(--font-serif);font-weight:400;font-size:64px;letter-spacing:0;color:var(--ink);border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 22px;line-height:1}.std-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin:28px 0 30px}.std-cell{position:relative;margin:0;aspect-ratio:3/4;overflow:hidden;border-radius:2px}.std-cell img{object-fit:cover;transition:transform 1.2s ease}.std-cell:hover img{transform:scale(1.04)}.std-cell figcaption{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-serif);font-size:clamp(40px,11vw,72px);color:#fff;background:rgba(0,0,0,.22)}.details{margin:28px auto 32px;display:grid;grid-gap:18px;gap:18px}.details dt{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.details dd{margin:0;font-family:var(--font-serif);font-size:26px}.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;background:var(--ink);color:var(--bg);text-decoration:none;font-size:12px;letter-spacing:.25em;text-transform:uppercase;border:1px solid var(--ink);border-radius:999px;margin-bottom:28px;transition:opacity .2s}.btn:hover{opacity:.85}.btn.ghost{background:transparent;color:var(--ink)}.btn-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.phone{display:block;font-family:var(--font-serif);font-size:40px;color:var(--ink);text-decoration:none;margin:4px 0 26px}.seal-wrap{margin-top:14px}.seal{filter:drop-shadow(0 6px 10px rgba(0,0,0,.18))}.closing{text-align:center;padding:0 0 110px;background:var(--bg-alt)}.closing-photo{position:relative;width:100%;max-width:640px;margin:0 auto 44px;aspect-ratio:4/5}.closing-photo img{object-fit:cover}.closing-names{font-family:var(--font-serif);font-weight:400;font-size:clamp(44px,11vw,76px);margin:0 0 10px}.closing-date{font-size:12px;letter-spacing:.35em;text-transform:uppercase;color:var(--muted)}.home{display:grid;place-content:center;text-align:center;padding:24px 16px}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s ease}[data-reveal].in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}.hero-cta span{animation:none}html{scroll-behavior:auto}}@media (max-width:480px){.block{padding:72px 16px}.date-trio{gap:14px}.date-trio strong{font-size:52px;padding:0 14px}.phone{font-size:32px}}.seal{position:relative;display:inline-grid;place-items:center;vertical-align:middle;filter:drop-shadow(0 8px 12px rgba(0,0,0,.22))}.seal img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.seal-text{position:relative;font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-weight:500;line-height:1;color:#ecd0ad;text-shadow:0 -1px 1px rgba(0,0,0,.55),0 1px 0 rgba(255,220,190,.25);white-space:nowrap}.seal-amp{font-size:.68em;margin:0 .06em}.botanical{height:auto;opacity:1}.has-corners,.has-corners>:not(.corner){position:relative}.corner{position:absolute;top:0;width:clamp(96px,24vw,150px);height:auto;pointer-events:none}.corner.tl{left:0}.corner.tr{right:0;transform:scaleX(-1)}