.rsvp{--rsvp-ink:#2b2622;--rsvp-muted:#7a7068;--rsvp-accent:#b08d57;--rsvp-accent-ink:#fff;--rsvp-bg:transparent;--rsvp-field-bg:#fff;--rsvp-border:#d9d0c3;--rsvp-radius:10px;--rsvp-font-body:inherit;--rsvp-font-display:inherit;color:var(--rsvp-ink);background:var(--rsvp-bg);font-family:var(--rsvp-font-body);text-align:left;gap:1.25rem;display:grid}.rsvp-intro,.rsvp-deadline{text-align:center;font-family:var(--rsvp-font-display);margin:0}.rsvp-deadline{color:var(--rsvp-muted);font-size:.95rem}.rsvp-field{border:0;gap:.5rem;margin:0;padding:0;display:grid}.rsvp-label{font-family:var(--rsvp-font-display);padding:0;font-size:1.15rem}.rsvp-input{width:100%;font:inherit;color:var(--rsvp-ink);background:var(--rsvp-field-bg);border:1px solid var(--rsvp-border);border-radius:var(--rsvp-radius);outline:none;padding:.85rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.rsvp-input:focus{border-color:var(--rsvp-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--rsvp-accent) 25%, transparent)}.rsvp-textarea{resize:vertical;min-height:5.5rem}.rsvp-choices{gap:.6rem}.rsvp-choice{border:1px solid var(--rsvp-border);border-radius:var(--rsvp-radius);background:var(--rsvp-field-bg);cursor:pointer;align-items:center;gap:.7rem;padding:.75rem 1rem;transition:border-color .2s,background .2s;display:flex}.rsvp-choice:has(input:checked){border-color:var(--rsvp-accent);background:color-mix(in srgb, var(--rsvp-accent) 10%, var(--rsvp-field-bg))}.rsvp-choice input{accent-color:var(--rsvp-accent);width:1.1rem;height:1.1rem}.rsvp-extra{gap:1.25rem;animation:.35s both rsvp-in;display:grid}.rsvp-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.rsvp-stepper-ctl{border:1px solid var(--rsvp-border);border-radius:var(--rsvp-radius);background:var(--rsvp-field-bg);justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem;display:inline-flex}.rsvp-stepper-ctl button{border-radius:calc(var(--rsvp-radius) - 3px);width:2.5rem;height:2.5rem;color:var(--rsvp-ink);cursor:pointer;background:0 0;border:0;font-size:1.3rem;line-height:1}.rsvp-stepper-ctl button:hover:not(:disabled){background:color-mix(in srgb, var(--rsvp-accent) 18%, transparent)}.rsvp-stepper-ctl button:disabled{opacity:.3;cursor:not-allowed}.rsvp-stepper-ctl output{text-align:center;min-width:2ch;font-size:1.15rem}.rsvp-submit{font:inherit;letter-spacing:.04em;color:var(--rsvp-accent-ink);background:var(--rsvp-accent);cursor:pointer;border:0;border-radius:999px;padding:1rem 1.5rem;font-size:1.05rem;transition:transform .15s,filter .2s}.rsvp-submit:hover:not(:disabled){filter:brightness(1.06)}.rsvp-submit:active:not(:disabled){transform:scale(.98)}.rsvp-submit:disabled{opacity:.6;cursor:progress}.rsvp-error{color:#a4332b;text-align:center;margin:0;font-size:.95rem}.rsvp-done{text-align:center;gap:.75rem}.rsvp-thanks{font-family:var(--rsvp-font-display);margin:0;font-size:1.35rem}.rsvp-link{color:var(--rsvp-muted);cursor:pointer;font:inherit;background:0 0;border:0;justify-self:center;text-decoration:underline}.rsvp-hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}@keyframes rsvp-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.rsvp-extra{animation:none}}
:root{--castle:#1c0a0f;--castle-2:#2a1016;--wine:#6e1426;--rose:#a3202f;--gold:#c89b52;--gold-2:#e9cf95;--parchment:#f2e4c4;--parchment-2:#e6d2a6;--ink:#3b2416;--ink-soft:#6a4c34;--pen:var(--font-pen), "Imperial Script", cursive;--book:var(--font-book), "IM Fell English", Georgia, serif;--caps:var(--font-caps), "IM Fell English SC", Georgia, serif;--paper:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .35  0 0 0 0 .24  0 0 0 0 .12  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}html{scroll-behavior:smooth}body{background:radial-gradient(120% 50% at 50% 0%, #3a1119 0%, #1c0a0f00 70%) fixed, radial-gradient(90% 60% at 50% 100%, #2b0d14 0%, var(--castle) 70%) fixed, var(--castle);color:var(--parchment);font-family:var(--book);-webkit-font-smoothing:antialiased;font-size:19px;line-height:1.6}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.inv{position:relative}.petals{z-index:3;pointer-events:none;position:fixed;inset:0}.page{z-index:1;position:relative;overflow-x:clip}.sec{text-align:center;padding:clamp(4rem,14vw,7rem) 1.25rem;position:relative}.sec-eyebrow{font-family:var(--caps);letter-spacing:.18em;color:var(--gold);margin:0 0 .4rem;font-size:1rem}.h2{font-family:var(--pen);color:var(--wine);text-wrap:balance;margin:0 0 .6rem;padding:0 .15em;font-size:clamp(2.5rem,11.5vw,3.8rem);font-weight:400;line-height:1.15}.h2-light{color:var(--gold-2);text-shadow:0 0 18px #e9cf9540}.chapter{font-family:var(--caps);letter-spacing:.22em;color:var(--rose);margin:0 0 .3rem;font-size:.92rem}.small-caps{font-family:var(--caps);letter-spacing:.14em;color:var(--ink-soft);font-size:.88rem;display:block}.ink-text{max-width:32ch;color:var(--ink);margin:0 auto 1rem;font-size:1.1rem}.flourish{width:min(240px,66vw);color:var(--gold);margin:.2rem auto 1.1rem}.flourish path[pathLength]{stroke-dasharray:1}.page-card{max-width:520px;color:var(--ink);background:var(--paper), radial-gradient(120% 90% at 50% 40%, var(--parchment) 55%, var(--parchment-2) 100%);border-radius:3px;margin:0 auto;padding:2.6rem 1.5rem 2.4rem;position:relative;box-shadow:0 30px 60px #0000008c,0 0 0 1px #c89b5299,inset 0 0 0 8px #f2e4c499,inset 0 0 0 9px #a3202f40,inset 0 0 60px #78501e59}.page-card:before,.page-card:after{content:"";border-top:2px solid var(--gold);border-left:2px solid var(--gold);opacity:.8;border-top-left-radius:14px;width:34px;height:34px;position:absolute;top:14px;left:14px}.page-card:after{inset:auto 14px 14px auto;transform:rotate(180deg)}.dropcap{text-align:left;max-width:34ch;color:var(--ink);margin:0 auto 1.1rem;font-size:1.12rem}.dropcap-letter{float:left;font-family:var(--pen);color:var(--rose);text-shadow:1px 1px #c89b52b3;margin:.08em .12em 0 -.05em;font-size:4.2em;line-height:.78}.parents{gap:.9rem;margin-top:1.4rem;display:grid}.parents p{margin:0}.parents strong{color:var(--ink);font-size:1.25rem;font-weight:400}.lot-rose{mix-blend-mode:multiply;width:150px;height:132px;margin:1rem auto -1rem}.lot-rose svg,.lot-rings svg,.lot-ornament svg{width:100%;height:100%}.env-overlay{z-index:100;background:var(--castle);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.env-bg{filter:blur(28px)brightness(.6);background-position:50%;background-size:cover;position:absolute;inset:-40px}.env-frame{width:min(100vw,56.25svh);height:100svh;position:relative;overflow:hidden;box-shadow:0 0 80px #000000b3}.env-video{object-fit:cover;width:100%;max-width:none;height:100%}.env-flash{opacity:0;pointer-events:none;background:radial-gradient(70% 55%,#fff4dc 0%,#f1d99f 50%,#c9975a 100%);position:absolute;inset:0}.env-seal-hit{aspect-ratio:1;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;width:min(42vw,180px);position:absolute;top:36%;left:50%;transform:translate(-50%,-50%)}.env-seal-hit:focus-visible{outline:2px solid var(--gold-2);outline-offset:4px}.env-seal-hit.is-playing{pointer-events:none}.env-ring{border:1.5px solid #e9cf95e6;border-radius:50%;animation:2.4s ease-out infinite ring;position:absolute;inset:0;box-shadow:0 0 22px #e9cf9599}.env-ring-2{animation-delay:1.2s}.env-seal-hit.is-playing .env-ring{display:none}@keyframes ring{0%{opacity:0;transform:scale(.7)}25%{opacity:1}to{opacity:0;transform:scale(1.5)}}.env-hint{padding:5rem 1.25rem calc(2.4rem + env(safe-area-inset-bottom));text-align:center;pointer-events:none;background:linear-gradient(#0000,#14060ad9);transition:opacity .5s;animation:1s .6s backwards hint-in;position:absolute;bottom:0;left:0;right:0}.env-hint.is-hidden{opacity:0}.env-hint p{font-family:var(--pen);color:var(--gold-2);margin:0;font-size:1.9rem;line-height:1.2}@keyframes hint-in{0%{opacity:0;transform:translateY(8px)}}.hero{min-height:100svh;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#000 calc(100% - 130px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 130px),#0000 100%)}.bgv{object-fit:cover;pointer-events:none;width:100%;max-width:none;height:100%;position:absolute;inset:0}.hero-bg{scale:var(--intro,1)}.hero-shade{background:radial-gradient(70% 30% at 50% 22%,#14060ab8,#14060a00 100%),linear-gradient(#14060a59,#14060a00 45%);position:absolute;inset:0}.hero-inner{text-align:center;z-index:2;width:min(92vw,540px);position:absolute;top:24%;left:50%;translate:-50% -50%}.hero-once{font-family:var(--book);color:var(--gold-2);margin:0 0 .2rem;font-size:1.25rem;font-style:italic}.hero-title{font-family:var(--pen);margin:0;font-weight:400;line-height:1.02;display:grid}.hero-name{color:var(--gold-2);text-shadow:0 0 20px #e9cf9559,0 2px 10px #0009;padding:0 .2em;font-size:clamp(3rem,min(17vw,9.5svh),6rem)}.hero-amp{font-family:var(--pen);color:var(--rose);text-shadow:0 0 10px #0009;margin:-.2em 0;font-size:clamp(1.6rem,7vw,2.4rem)}.hero-date{font-family:var(--caps);letter-spacing:.16em;color:var(--parchment);text-shadow:0 2px 8px #000000b3;margin:.5rem 0 0;font-size:1.05rem}.hero-scroll{z-index:2;font-family:var(--book);color:var(--gold-2);justify-items:center;gap:.4rem;margin:0;font-size:.95rem;font-style:italic;display:grid;position:absolute;bottom:2.4rem;left:50%;translate:-50%}.hero-scroll i{border-right:2px solid var(--gold-2);border-bottom:2px solid var(--gold-2);width:18px;height:18px;animation:1.6s ease-in-out infinite nudge;transform:rotate(45deg)}@keyframes nudge{0%,to{opacity:.5;translate:0}50%{opacity:1;translate:0 8px}}@keyframes drip{0%{transform:scaleY(0)}60%{transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.story{gap:2.4rem;margin-top:1.8rem;display:grid}.story-page.is-l{transform:rotate(-1.2deg)}.story-page.is-r{transform:rotate(1.2deg)}.story-year{font-family:var(--caps);letter-spacing:.1em;color:var(--gold);margin:0;font-size:2.2rem;line-height:1.1}.story-title{font-family:var(--pen);color:var(--wine);margin:0 0 .8rem;font-size:2.4rem;font-weight:400}.big-date{font-family:var(--pen);color:var(--gold-2);text-shadow:0 0 20px #e9cf954d;margin:0;font-size:clamp(2.6rem,12vw,4.2rem);font-weight:400;line-height:1.15}.date-sub{color:var(--parchment-2);margin:.3rem 0 1.8rem;font-style:italic}.cd{grid-template-columns:repeat(4,1fr);gap:.55rem;max-width:420px;margin:0 auto;display:grid}.cd-cell{aspect-ratio:1;background:radial-gradient(circle at 35% 30%, #c43a4a, var(--wine) 60%, #3d0a14 100%);border-radius:50%;align-content:center;gap:.1rem;display:grid;box-shadow:0 6px 14px #00000080,inset 0 0 0 3px #e9cf9559,inset 0 -4px 8px #0006}.cd-num{font-family:var(--caps);color:var(--gold-2);font-variant-numeric:tabular-nums;font-size:clamp(1.4rem,7vw,2.1rem);line-height:1}.cd-label{font-family:var(--caps);letter-spacing:.08em;color:var(--parchment-2);font-size:.66rem}.cd-done{font-family:var(--pen);color:var(--gold-2);font-size:2.6rem}.menu{text-align:left;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.menu li{grid-template-columns:auto auto 1fr auto;align-items:end;gap:.5rem;display:grid}.menu-rose{width:18px;height:18px;color:var(--rose);align-self:center}.menu-label{color:var(--ink);font-size:1.14rem;line-height:1.25;display:grid}.menu-label em{color:var(--ink-soft);font-size:.9rem}.menu-dots{border-bottom:2px dotted #3b241659;min-width:12px;margin-bottom:.4rem}.menu-time{font-family:var(--caps);color:var(--wine);font-size:1.2rem}.venue-frame{outline-offset:6px;background:#2a1016bf;border:1px solid #c89b5299;outline:1px solid #c89b524d;max-width:460px;margin:1rem auto 0;padding:1.8rem 1.4rem}.venue-img{border:1px solid #c89b5280;border-radius:999px 999px 4px 4px;width:100%;margin-bottom:1.2rem}.venue-address{margin:0 0 .4rem;font-size:1.2rem}.venue-note{color:var(--parchment-2);margin:0 0 1.4rem;font-style:italic}.btn{font-family:var(--caps);letter-spacing:.12em;color:var(--parchment);background:linear-gradient(180deg, #8e1a2e, var(--wine));border:1px solid var(--gold);border-radius:2px;padding:.85rem 1.8rem;font-size:1rem;text-decoration:none;display:inline-block;box-shadow:0 8px 20px #00000073,inset 0 0 0 3px #e9cf9533}.seals{justify-content:center;gap:1rem;margin:1.4rem 0 0;padding:0;list-style:none;display:flex}.seals li{border-radius:46% 54% 50% 50%/52% 46% 54% 48%;width:50px;height:50px;box-shadow:0 5px 10px #00000059,inset 0 0 0 4px #ffffff2e,inset 0 -5px 8px #0000004d}.faq{text-align:left;gap:.7rem;max-width:520px;margin:1.2rem auto 0;display:grid}.faq details{background:var(--paper), var(--parchment);color:var(--ink);border-radius:2px;box-shadow:0 10px 22px #0006,inset 0 0 0 1px #c89b5299}.faq summary{cursor:pointer;align-items:center;gap:.7rem;padding:1rem 1.1rem;font-size:1.12rem;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq-rose{width:18px;height:18px;color:var(--rose);flex:none;transition:rotate .4s}.faq details[open] .faq-rose{rotate:90deg}.faq details p{color:var(--ink-soft);margin:0;padding:0 1.1rem 1.1rem 2.8rem}.lot-rings{width:72px;height:72px;margin:0 auto .4rem}.rsvp-card{margin-top:1rem}.rsvp-card .rsvp{--rsvp-ink:var(--ink);--rsvp-muted:var(--ink-soft);--rsvp-accent:var(--wine);--rsvp-accent-ink:var(--parchment);--rsvp-field-bg:#fffaeeb3;--rsvp-border:#6a4c3459;--rsvp-radius:2px;--rsvp-font-body:var(--book);--rsvp-font-display:var(--book)}.rsvp-card .rsvp-label{font-family:var(--pen);color:var(--wine);font-size:1.9rem;line-height:1.1}.rsvp-card .rsvp-input,.rsvp-card .rsvp-choice{font-size:1.08rem}.rsvp-card .rsvp-submit{font-family:var(--caps);letter-spacing:.12em;border:1px solid var(--gold);background:linear-gradient(180deg, #8e1a2e, var(--wine));border-radius:2px;font-size:1.05rem}.foot{text-align:center;padding:3rem 1.25rem 6rem}.lot-ornament{aspect-ratio:850/300;width:min(320px,82vw);margin:0 auto}.foot-line{color:var(--parchment-2);margin:.4rem 0 0;font-size:1.15rem;font-style:italic}.foot-names{font-family:var(--pen);color:var(--gold-2);text-shadow:0 0 20px #e9cf954d;margin:.2rem 0 0;font-size:clamp(2.8rem,13vw,4.2rem)}.music{z-index:20;border:1px solid var(--gold);width:46px;height:46px;color:var(--gold-2);cursor:pointer;background:#2a1016d9;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:1rem;right:1rem}.music svg{width:20px;height:20px}@media (max-height:500px){.hero-inner{top:45%}.hero-scroll{display:none}}@media (prefers-reduced-motion:reduce){.hero-scroll i,.env-ring{animation:none}}.scenes{z-index:0;pointer-events:none;opacity:0;transition:opacity 1.2s;position:fixed;inset:0;overflow:hidden}.scenes.is-visible{opacity:1}.scene{opacity:0;visibility:hidden;background-position:50%;background-size:cover;transition:opacity 1.6s,transform 14s cubic-bezier(.2,.6,.2,1),visibility 0s linear 1.6s;position:absolute;inset:-4%;transform:scale(1.12)}.scene.is-on{opacity:1;visibility:visible;transition:opacity 1.6s,transform 14s cubic-bezier(.2,.6,.2,1),visibility;transform:scale(1)}.scenes-veil{background:radial-gradient(95% 70%,#1c0a0f0d,#1c0a0f8c 100%),linear-gradient(#1c0a0f4d,#1c0a0f00 35% 65%,#1c0a0f59);position:absolute;inset:0}.sec,.foot{min-height:70svh}.sec-eyebrow,.date-sub,.foot-line{text-shadow:0 2px 10px #000000d9}.h2-light,.big-date,.foot-names{text-shadow:0 2px 14px #000c,0 0 22px #e9cf9540}.obj{pointer-events:none;filter:drop-shadow(0 22px 30px #000000a6);will-change:transform;height:auto;display:block}.obj-watch{width:min(58vw,260px);margin:-1rem auto .6rem;animation:6s ease-in-out infinite float}.obj-quill{width:min(84vw,420px);margin:0 auto .4rem;animation:7s ease-in-out -2s infinite float}@keyframes float{0%,to{translate:0;rotate:-2deg}50%{translate:0 -12px;rotate:2deg}}@media (prefers-reduced-motion:reduce){.scene{transition:opacity .6s;transform:none}.obj{animation:none}}.scene-video{object-fit:cover;width:100%;max-width:none;height:100%;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.scene-video{display:none}}.ty{z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer;background:radial-gradient(70% 60% at 50% 42%,#3c0e18d1,#14060af0);place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.ty-canvas{pointer-events:none;position:absolute;inset:0}.ty-glow{pointer-events:none;background:radial-gradient(circle,#ffecbef2,#ffd68c59 40%,#0000 70%);border-radius:50%;width:60vmin;height:60vmin;margin:-30vmin 0 0 -30vmin;position:absolute;top:42%;left:50%}.ty-card{text-align:center;max-width:420px;padding:0 .5rem;position:relative}.ty-seal{background:radial-gradient(circle at 35% 30%, #c43a4a, var(--wine) 60%, #3d0a14 100%);border-radius:46% 54% 50% 50%/52% 46% 54% 48%;place-items:center;width:96px;height:96px;margin:0 auto .6rem;display:grid;box-shadow:0 10px 24px #0009,inset 0 0 0 5px #e9cf954d,inset 0 -6px 10px #0006}.ty-seal svg{width:56px;height:56px}.ty-title{font-family:var(--pen);color:var(--gold-2);text-shadow:0 0 24px #e9cf9573;margin:0;font-size:clamp(3.4rem,17vw,5rem);line-height:1.1}.ty-sub{color:var(--parchment);margin:.4rem 0 1.4rem;font-size:1.15rem;font-style:italic}.ty-close{font:inherit;font-family:var(--caps);letter-spacing:.12em;color:var(--gold-2);cursor:pointer;background:0 0;border:1px solid #c89b5299;border-radius:2px;padding:.75rem 1.4rem;font-size:.95rem}
