@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.block{display:block}.italic{font-style:italic}}:root{--paper:#f7f0e8;--cream:#fff9f2;--blush:#ead5cd;--rose:#b97d78;--wine:#55292e;--wine-dark:#28191d;--ink:#352a2a;--muted:#85736e;--gold:#d6b18a;--scroll-progress:0%}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Songti SC,Noto Serif CJK SC,STSong,SimSun,serif}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}svg{width:19px;height:19px}::selection{background:var(--rose);color:#fff}.scroll-progress{z-index:80;width:var(--scroll-progress);pointer-events:none;background:linear-gradient(90deg,#e9c49c,#f2ded0,#e9c49c);height:3px;position:fixed;top:0;left:0;box-shadow:0 0 12px #efc99b}.site-header{z-index:50;color:#fff8ef;border-bottom:1px solid #ffffff42;justify-content:space-between;align-items:center;height:86px;padding:0 clamp(24px,5.5vw,90px);transition:background .5s,color .5s,border-color .5s,box-shadow .5s;display:flex;position:fixed;top:0;left:0;right:0}.site-header.is-scrolled{color:var(--wine);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#faf3ebf0;border-color:#5e3a3721;box-shadow:0 8px 30px #23141612}.brand{white-space:nowrap;align-items:center;gap:17px;display:flex}.brand-mark{letter-spacing:-.07em;font:37px/1 Georgia,serif}.brand-mark span{margin:0 3px;font-size:22px;font-style:italic}.brand-caption{letter-spacing:.17em;opacity:.82;font:9px/1.4 Georgia,serif}.desktop-nav{letter-spacing:.17em;align-items:center;gap:clamp(24px,3.5vw,56px);font:12px sans-serif;display:flex}.desktop-nav a{padding:15px 0;position:relative}.desktop-nav a:after{content:"";background:currentColor;height:1px;transition:right .35s;position:absolute;bottom:8px;left:0;right:100%}.desktop-nav a:hover:after{right:0}.header-actions{align-items:center;gap:20px;display:flex}.header-rsvp{letter-spacing:.16em;white-space:nowrap;border:1px solid;align-items:center;gap:14px;padding:12px 16px;font:11px sans-serif;transition:background .3s,color .3s;display:flex}.header-rsvp:hover{color:var(--wine);background:#fff9f2}.site-header.is-scrolled .header-rsvp:hover{background:var(--wine);color:#fff}.header-rsvp svg,.hero-cta svg,.details-actions svg,.closing a svg,.footer svg{transition:transform .3s}.header-rsvp:hover svg,.details-actions a:hover svg,.details-actions button:hover svg,.closing a:hover svg,.footer button:hover svg{transform:translate(3px,-3px)}.music-control{color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}.music-disc{border:1px solid;border-radius:50%;place-items:center;width:36px;height:36px;display:grid;position:relative}.music-disc:before{content:"";opacity:.55;border:1px dotted;border-radius:50%;position:absolute;inset:4px}.music-control:not(.is-on) .music-disc:after{content:"";background:currentColor;width:29px;height:1px;position:absolute;transform:rotate(-45deg)}.music-disc span{font:17px Georgia,serif}.music-control.is-playing .music-disc{animation:7s linear infinite record-spin}.music-bars{align-items:end;gap:2px;height:15px;display:flex}.music-bars i{opacity:.75;background:currentColor;width:2px;height:7px}.music-bars i:nth-child(2){height:13px}.music-bars i:nth-child(3){height:9px}.music-bars i:nth-child(4){height:12px}.music-control.is-playing .music-bars i{animation:.85s ease-in-out infinite alternate music-bars}.music-control.is-playing .music-bars i:nth-child(2){animation-delay:.2s}.music-control.is-playing .music-bars i:nth-child(3){animation-delay:.45s}.music-control.is-playing .music-bars i:nth-child(4){animation-delay:.1s}.music-text{letter-spacing:.1em;text-align:left;max-width:78px;font:10px/1.4 sans-serif}.hero{color:#fff9f1;background:#241718;height:100svh;min-height:760px;max-height:1100px;position:relative;overflow:hidden}.hero-photo,.hero-shade{position:absolute;inset:0}.hero-photo img{object-fit:cover;object-position:center 55%;animation:16s ease-in-out infinite alternate hero-zoom}.hero-shade{background:linear-gradient(90deg,#1c0c10c7 0%,#1e10127a 47%,#1e101229 100%),linear-gradient(#170c0e42,#0000 45%,#180a0d96)}.hero-frame{pointer-events:none;border:1px solid #f5e1cf6b;position:absolute;inset:113px 36px 34px}.hero-frame:before,.hero-frame:after{content:"✧";color:#e5c6aa;font:24px Georgia,serif;position:absolute}.hero-frame:before{top:-15px;left:50%}.hero-frame:after{bottom:-15px;left:50%}.hero-content{z-index:2;width:min(720px,72%);margin-left:clamp(50px,10.5vw,170px);padding-top:clamp(180px,23vh,280px);position:relative}.hero-eyebrow{letter-spacing:.34em;color:#e4c5ac;margin:0 0 28px;font:11px Georgia,serif;animation:.9s .2s both rise-in}.hero-ornament{color:#d9b595;margin-bottom:20px;font:28px Georgia,serif;animation:.9s .4s both rise-in}.hero h1{letter-spacing:.13em;text-shadow:0 6px 28px #16090c33;flex-direction:column;margin:0 0 15px;font-size:clamp(72px,8.4vw,132px);font-weight:400;line-height:1.13;display:flex}.hero h1 span{animation:1.2s .55s both rise-in;display:block}.hero h1 span:last-child{color:#f4d8c5;padding-left:1.15em;font-style:italic;animation-delay:.72s}.hero-english{color:#e8c5a8;margin:20px 0 29px;font:italic clamp(18px,2vw,27px) Georgia,serif;animation:1s .9s both rise-in}.hero-invite{letter-spacing:.24em;margin:0 0 38px;font-size:16px;animation:1s 1.05s both rise-in}.hero-invite span{color:var(--gold);margin:0 10px}.hero-cta{letter-spacing:.2em;border-bottom:1px solid #f2dccb;align-items:center;gap:42px;padding:0 0 11px;font-size:13px;animation:1s 1.2s both rise-in;display:inline-flex}.hero-cta:hover svg{transform:translate(6px)}.hero-date{z-index:2;letter-spacing:.2em;color:#e5c8b3;align-items:center;gap:20px;font:11px Georgia,serif;display:flex;position:absolute;bottom:54px;left:clamp(50px,10.5vw,170px)}.hero-date i{background:#dcbf9f;width:55px;height:1px}.hero-scroll{z-index:2;letter-spacing:.2em;writing-mode:vertical-rl;align-items:center;gap:18px;font:10px Georgia,serif;display:flex;position:absolute;bottom:54px;right:clamp(48px,6vw,92px)}.hero-scroll i{transform-origin:top;background:#e2c4aa;width:1px;height:42px;animation:1.8s ease-in-out infinite scroll-line}.petals{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.petals span{color:#ffe8d36b;font-size:15px;animation:12s linear infinite petal-fall;position:absolute;top:-20px}.petals span:first-child{animation-duration:14s;animation-delay:-3s;left:7%}.petals span:nth-child(2){font-size:10px;animation-delay:-8s;left:17%}.petals span:nth-child(3){animation-duration:16s;animation-delay:-5s;left:29%}.petals span:nth-child(4){font-size:8px;animation-delay:-10s;left:40%}.petals span:nth-child(5){animation-duration:15s;animation-delay:-1s;left:52%}.petals span:nth-child(6){font-size:11px;animation-delay:-6s;left:62%}.petals span:nth-child(7){animation-duration:17s;animation-delay:-11s;left:73%}.petals span:nth-child(8){font-size:9px;animation-delay:-4s;left:84%}.petals span:nth-child(9){animation-duration:13s;animation-delay:-9s;left:92%}.petals span:nth-child(10){font-size:7px;animation-delay:-13s;left:34%}.petals span:nth-child(11){font-size:7px;animation-delay:-15s;left:78%}.section-pad{padding:112px clamp(24px,6.2vw,112px)}.section-label{color:#8f746b;letter-spacing:.23em;align-items:center;gap:15px;font:11px Georgia,serif;display:flex}.section-label span{color:var(--wine);font-size:13px}.section-label i{background:#bca092;width:42px;height:1px}.section-label.light,.section-label.light span{color:#e6c8b3}.section-label.light i{background:#b68775}.serif-italic{color:#ad8077;margin:0 0 23px;font:italic 21px/1.5 Georgia,serif}.motion-ready [data-reveal]{opacity:0;transition:opacity 1s,transform 1s cubic-bezier(.19,1,.22,1);transform:translateY(42px)}.motion-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}.intro{background:radial-gradient(circle at 84% 45%, #f0dcd3 0%, transparent 31%), var(--paper);padding-bottom:78px}.intro-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:10%;margin:91px 0 109px;display:grid}.intro-title h2,.vow h2,.details h2,.countdown-section h2{letter-spacing:.06em;margin:0;font-size:clamp(50px,5.3vw,85px);font-weight:400;line-height:1.48}.intro-title h2 em,.vow h2 em,.details h2 em,.countdown-section h2 em{color:#ad7573;font-style:normal}.intro-copy{max-width:440px;padding-top:25px}.intro-star{color:var(--rose);font:28px Georgia,serif}.intro-copy p{color:#6d5f5c;letter-spacing:.08em;margin:24px 0;font-size:15px;line-height:2.35}.signature{color:var(--wine);letter-spacing:.24em;margin-top:40px;font-size:18px}.signature span{color:var(--rose);margin:0 9px;font:italic 26px Georgia,serif}.intro-end{color:#998278;letter-spacing:.18em;border-top:1px solid #d9c7bc;justify-content:space-between;padding-top:25px;font-size:12px;display:flex}.intro-end span:last-child{font-family:Georgia,serif}.marquee{color:#fffaf3b8;background:#c58d86;align-items:center;height:105px;display:flex;overflow:hidden}.marquee div{white-space:nowrap;letter-spacing:.08em;flex:none;font:italic 44px Georgia,serif;animation:28s linear infinite marquee}.film-section{background:var(--wine-dark);color:#fff6ed;overflow:hidden}.film-intro{margin-bottom:62px}.film-intro h2{letter-spacing:.07em;margin:36px 0 18px;font-size:clamp(48px,5.4vw,83px);font-weight:400;line-height:1.42}.film-intro h2 em{color:#e4bcb1;font-style:normal}.film-intro>p{color:#d1b6a9;letter-spacing:.13em;font-size:14px}.film-layout{grid-template-columns:minmax(0,1.55fr) minmax(330px,.9fr);min-height:680px;display:grid;box-shadow:0 45px 95px #0a020533}.film-visual{background:#271b1d;min-height:680px;position:relative;overflow:hidden}.film-blur{object-fit:cover;filter:blur(35px)brightness(.6);opacity:.7;transform:scale(1.17)}.film-image{z-index:1;object-fit:contain;opacity:0;filter:blur(5px);transition:opacity 1.3s,transform 6s,filter 1.3s;transform:scale(1.065)translateY(8px)}.film-image.is-active{opacity:1;filter:blur();transform:scale(1)}.film-image-frame{z-index:2;pointer-events:none;border:1px solid #ffecdc6b;position:absolute;inset:22px}.film-image-frame:after{content:"✦";color:#fff0d9;font:18px Georgia,serif;position:absolute;top:-12px;left:50%}.film-expand{z-index:3;color:#fff;cursor:zoom-in;background:#190f1159;border:1px solid #f9ebdd;border-radius:50%;width:49px;height:49px;font:24px Georgia,serif;transition:background .25s,transform .25s;position:absolute;bottom:40px;right:40px}.film-expand:hover{background:var(--wine);transform:rotate(45deg)}.film-photo-index{z-index:3;color:#fff;letter-spacing:.23em;text-shadow:0 2px 7px #130b0d;font:10px Georgia,serif;position:absolute;bottom:42px;left:45px}.film-caption-panel{color:var(--wine);background:#ead8cf;flex-direction:column;justify-content:space-between;padding:40px clamp(28px,3vw,56px);display:flex}.film-topline{letter-spacing:.26em;border-bottom:1px solid #cdaea4;justify-content:space-between;padding-bottom:18px;font:12px Georgia,serif;display:flex}.film-caption{margin:auto 0;padding:50px 0;animation:.85s cubic-bezier(.2,.8,.2,1) both caption-enter}.film-flower{color:#aa706c;margin-bottom:28px;font:36px Georgia,serif;display:block}.film-caption>p{letter-spacing:.1em;color:#9a746e;margin:0 0 20px;font:italic 15px Georgia,serif}.film-caption h3{letter-spacing:.04em;max-width:430px;margin:0 0 27px;font-size:clamp(34px,3.1vw,52px);font-weight:400;line-height:1.5}.film-note{color:#876b65;letter-spacing:.1em;font-size:15px;line-height:1.9}.film-controller{border-top:1px solid #cdaea4;padding-top:24px}.film-progress{background:#d1b6aa;height:2px;overflow:hidden}.film-progress span{background:#82444b;width:0;height:100%;display:block}.film-progress span.is-running{animation:5.5s linear forwards slide-progress}.film-controls{justify-content:space-between;align-items:center;margin-top:24px;display:flex}.film-controls button{color:var(--wine);cursor:pointer;background:0 0;border:0;padding:4px 8px;font:28px Georgia,serif;transition:transform .25s}.film-controls button:nth-child(2){letter-spacing:.2em;border:1px solid #a97a75;padding:10px 19px;font:12px sans-serif}.film-controls button:first-child:hover{transform:translate(-5px)}.film-controls button:last-child:hover{transform:translate(5px)}.film-timeline{grid-template-columns:repeat(14,1fr);gap:5px;margin-top:34px;display:grid}.film-timeline button{color:#a98b81;cursor:pointer;letter-spacing:.1em;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:10px;padding:8px 0;font:10px Georgia,serif;display:flex}.film-timeline button i{transform-origin:0;background:#6c4d4e;width:100%;height:2px;transition:background .3s,transform .3s}.film-timeline button.is-active{color:#f8e1d0}.film-timeline button.is-active i,.film-timeline button:hover i{background:#e1b3a0;transform:scaleY(2)}.film-hint{color:#ab8f83;text-align:right;letter-spacing:.14em;margin:13px 0 0;font-size:12px}.vow{background:#f2e5dd;grid-template-columns:52% 48%;min-height:710px;display:grid;overflow:hidden}.vow-photo{min-height:710px;position:relative;overflow:hidden}.vow-photo img{object-fit:cover;object-position:center 50%;transition:transform 1s}.vow-photo:hover img{transform:scale(1.035)}.vow-copy{flex-direction:column;justify-content:space-between;padding:75px clamp(40px,7vw,115px);display:flex;position:relative;overflow:hidden}.vow-copy .serif-italic{margin-bottom:33px;font-size:18px}.vow h2{z-index:1;font-size:clamp(47px,5vw,78px);position:relative}.vow-copy p:not(.serif-italic){color:#796863;letter-spacing:.09em;z-index:1;max-width:410px;margin:35px 0;font-size:14px;line-height:2.3;position:relative}.vow-signature{letter-spacing:.29em;color:#9b7770;z-index:1;font:11px Georgia,serif;position:relative}.vow-ring{border:1px solid #d8b9ad;border-radius:50%;place-items:center;width:420px;height:420px;animation:36s linear infinite ring-turn;display:grid;position:absolute;bottom:-205px;right:-125px}.vow-ring:before{content:"";border:1px solid #dcc2b7;border-radius:50%;position:absolute;inset:22px}.vow-ring span{color:#d6b1a6;font:65px Georgia,serif}.details{color:#fff7ee;background:radial-gradient(circle at 87% 8%,#865158,#0000 35%),linear-gradient(145deg,#69363e,#4b262e 75%);position:relative;overflow:hidden}.details:before{content:"14";color:#ffffff06;pointer-events:none;font:450px/.8 Georgia,serif;position:absolute;top:11%;right:-4%}.details-header{border-bottom:1px solid #efd6c952;grid-template-columns:1fr .8fr;align-items:center;padding:70px 0 75px;display:grid}.details .serif-italic{color:#e2b9a4}.details h2 em{color:#e8bba7}.date-art{color:#e6c4ad;flex-direction:column;align-items:center;display:flex}.date-art span:first-child{letter-spacing:.35em;margin-left:.35em;font:25px Georgia,serif}.date-art strong{letter-spacing:-.09em;color:#f9e6d5;font:400 clamp(160px,17vw,270px)/.96 Georgia,serif}.date-art span:last-child{letter-spacing:.37em;font:13px Georgia,serif}.event-grid{grid-template-columns:repeat(3,1fr);padding:68px 0 56px;display:grid}.event-cell{border-left:1px solid #efd6c947;flex-direction:column;padding:0 35px;display:flex}.event-cell:first-child{border-left:0;padding-left:0}.event-cell:nth-child(2){transition-delay:.12s}.event-cell:nth-child(3){transition-delay:.24s}.event-cell small{letter-spacing:.22em;color:#e7bba3;font:11px Georgia,serif}.event-cell span{letter-spacing:.18em;color:#ddc1b7;margin-top:27px;font-size:14px}.event-cell strong{letter-spacing:.1em;margin-top:10px;font-size:clamp(21px,2vw,29px);font-weight:400}.event-cell p{color:#d5b4aa;letter-spacing:.15em;margin:13px 0 0;font-size:13px}.details-actions{justify-content:flex-end;gap:14px;display:flex}.details-actions a,.details-actions button{color:#fff;cursor:pointer;letter-spacing:.17em;background:0 0;border:1px solid #d4aa9b;justify-content:space-between;align-items:center;min-width:195px;padding:17px 20px;font-size:13px;transition:background .3s,color .3s;display:flex}.details-actions a:hover,.details-actions button:hover{color:var(--wine);background:#f9e8dc}.countdown-section{text-align:center;background:radial-gradient(circle,#f8eee6,#ebd7cf);position:relative;overflow:hidden}.countdown-section .section-label{justify-content:center}.countdown-content{z-index:2;margin-top:80px;position:relative}.countdown-content .serif-italic{margin-bottom:20px}.countdown-section h2{font-size:clamp(48px,5.5vw,85px)}.countdown-list{border-top:1px solid #ccaca1;border-bottom:1px solid #ccaca1;grid-template-columns:repeat(4,1fr);width:min(700px,100%);margin:70px auto 0;padding:30px 0;display:grid}.countdown-item{border-left:1px solid #ccaca1;flex-direction:column;gap:9px;display:flex}.countdown-item:first-child{border-left:0}.countdown-item strong{color:var(--wine);font:400 clamp(44px,5vw,75px)/1 Georgia,serif}.countdown-item span{color:#9c736e;font-size:13px}.countdown-orbit{border:1px solid #a5706a26;border-radius:50%;width:580px;height:580px;animation:42s linear infinite orbit;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%)}.countdown-orbit:before,.countdown-orbit:after{content:"";border:1px solid #a5706a24;border-radius:50%;position:absolute}.countdown-orbit:before{inset:34px}.countdown-orbit:after{inset:75px}.countdown-orbit span{color:#bf9188;font:35px Georgia,serif;position:absolute;top:43px;right:55px}.closing{color:#fff8ed;text-align:center;isolation:isolate;background:radial-gradient(circle at 50% 35%,#855059,#502b34 49%,#28191e);flex-direction:column;justify-content:center;align-items:center;min-height:780px;padding:100px 24px;display:flex;position:relative;overflow:hidden}.closing:before{content:"";opacity:.75;background:radial-gradient(at 50% 40%,#f5cfaf21,#0000 50%),repeating-linear-gradient(135deg,#0000 0 24px,#ffffff03 25px 26px);position:absolute;inset:0}.closing-halo{aspect-ratio:1;pointer-events:none;border:1px solid #efd3b938;border-radius:50%;width:min(620px,84vw);animation:8s ease-in-out infinite alternate closing-breathe;position:absolute}.closing-halo-two{border-color:#efd3b924;width:min(550px,76vw);animation-delay:-4s}.closing-sparkles{z-index:2;color:#e5bb9d;letter-spacing:.3em;font:24px Georgia,serif;animation:5s ease-in-out infinite shimmer;position:relative}.closing>p{z-index:2;letter-spacing:.36em;color:#eecfba;margin:28px 0 18px;font:12px Georgia,serif;position:relative}.closing h2{z-index:2;letter-spacing:.1em;margin:0;font-size:clamp(56px,6.5vw,100px);font-weight:400;line-height:1.5;position:relative}.closing h2 em{color:#f1ccb7;font-style:normal}.closing>span{z-index:2;letter-spacing:.18em;margin-top:23px;font:13px Georgia,serif;position:relative}.closing-actions{z-index:2;gap:12px;margin-top:43px;display:flex;position:relative}.closing-actions a{color:#fff8ed;text-align:left;letter-spacing:.13em;border:1px solid #ead0bf;justify-content:space-between;align-items:center;gap:38px;min-width:205px;padding:16px 18px;font-size:15px;transition:background .35s,color .35s,transform .35s,box-shadow .35s;display:inline-flex}.closing-actions a:hover{color:var(--wine);background:#fff8ef;transform:translateY(-4px);box-shadow:0 16px 32px #14080c33}.closing-actions a svg{width:19px}.closing-actions a small{letter-spacing:.12em;opacity:.73;margin-top:7px;font:8px Georgia,serif;display:block}.closing-actions .closing-action-primary{background:#fff8ed1a}.closing-actions .closing-action-private{border-color:#ead0bf94}.closing .closing-note{color:#dec5b8;letter-spacing:.12em;margin:24px 0 0;font:11px/1.8 Songti SC,serif}.closing-outline{letter-spacing:-.06em;color:#ffffff06;white-space:nowrap;pointer-events:none;font:italic clamp(110px,16vw,250px) Georgia,serif;position:absolute;bottom:-65px;left:50%;transform:translate(-50%)}.footer{background:var(--paper);justify-content:space-between;align-items:center;min-height:180px;padding:40px clamp(24px,6.2vw,112px);display:flex}.footer-mark{color:var(--wine);letter-spacing:-.04em;font:42px Georgia,serif}.footer-mark i{color:#bd9184;font-size:26px}.footer p{letter-spacing:.2em;text-align:center;margin:0;font-size:17px;line-height:1.8}.footer small{color:#9e827a;font-size:11px}.footer button{color:var(--wine);border:0;border-bottom:1px solid var(--wine);cursor:pointer;letter-spacing:.18em;background:0 0;align-items:center;gap:20px;padding:0 0 9px;font-size:12px;display:flex}.lightbox{z-index:100;cursor:zoom-out;background:#1d1115f5;place-items:center;display:grid;position:fixed;inset:0}.lightbox img{object-fit:contain;padding:42px}.lightbox-close{z-index:2;color:#fff;cursor:pointer;background:0 0;border:0;font:44px Georgia,serif;position:absolute;top:20px;right:27px}.lightbox>span{color:#e4c8b7;letter-spacing:.2em;font:12px Georgia,serif;position:absolute;bottom:20px}.guest-page{background:#f5eee8;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-height:100svh;display:grid}.guest-page-photo{background:var(--wine);min-height:100svh;position:relative;overflow:hidden}.guest-page-photo img{object-fit:cover;object-position:center;animation:18s ease-in-out infinite alternate hero-zoom}.guest-page-photo:after{content:"";pointer-events:none;background:linear-gradient(#1f111433,#0000 40%,#1f111466);position:absolute;inset:0}.guest-page-content{flex-direction:column;min-width:0;padding:31px clamp(28px,5.2vw,92px) 25px;display:flex}.guest-page-header,.guest-page-footer{color:var(--wine);justify-content:space-between;align-items:center;gap:18px;display:flex}.guest-page-header a{letter-spacing:-.06em;flex:none;font:35px/1 Georgia,serif}.guest-page-header a i{color:#b48a81;font-size:21px}.guest-page-header span,.guest-page-footer span{letter-spacing:.17em;text-align:right;font:9px Georgia,serif}.guest-page-card{width:min(100%,560px);margin:auto;padding:70px 0;animation:.8s both rise-in}.guest-card-ornament{color:#bc887c;letter-spacing:.2em;margin-bottom:30px;font:22px Georgia,serif}.guest-kicker{color:#a9766e;letter-spacing:.23em;font:11px Georgia,serif}.guest-page h1{color:var(--wine);letter-spacing:.045em;margin:27px 0 22px;font-size:clamp(43px,4.1vw,73px);font-weight:400;line-height:1.34}.guest-page h1 em{color:#af746e;font-style:normal}.guest-intro,.guest-confirmation p{color:#7a6864;letter-spacing:.06em;font-size:15px;line-height:2.05}.guest-page form{margin-top:47px}.guest-page form label{color:var(--wine);letter-spacing:.12em;align-items:baseline;gap:15px;font-size:14px;display:flex}.guest-page form label span{color:#ab8a7d;letter-spacing:.13em;font:9px Georgia,serif}.guest-page form input:not(.guest-honeypot){width:100%;height:62px;color:var(--wine);background:#ffffff59;border:1px solid #d9bcb0;border-radius:0;outline:none;margin-top:14px;padding:0 0 0 17px;font-size:18px;transition:border-color .25s,box-shadow .25s;display:block}.guest-page form input:focus{border-color:#9c6463;box-shadow:0 0 0 3px #9c646321}.guest-page form input::placeholder{color:#a99b96}.guest-honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.guest-submit{border:1px solid var(--wine);background:var(--wine);color:#fff9f2;cursor:pointer;letter-spacing:.14em;justify-content:space-between;align-items:center;width:100%;min-height:62px;margin-top:22px;padding:0 22px;font-size:15px;transition:background .3s,transform .3s,box-shadow .3s;display:flex}.guest-submit:hover:not(:disabled){background:#7a3d46;transform:translateY(-3px);box-shadow:0 14px 25px #512a2f29}.guest-submit:disabled{opacity:.65;cursor:wait}.guest-submit span{font:24px Georgia,serif}.guest-back{color:var(--wine);letter-spacing:.12em;border-bottom:1px solid #cdb0a4;margin-top:28px;padding-bottom:7px;font-size:12px;display:inline-block}.guest-error{color:#a23040;margin:12px 0 0;font-size:13px;line-height:1.6}.guest-page-footer{border-top:1px solid #dcc9be;padding-top:20px}.guest-page-footer span:last-child{color:#a7877b}.guest-confirmation p{margin:8px 0}.guest-confirmation p strong{color:var(--wine);font-weight:500}.guest-confirmation-mark{color:#9d6460;border:1px solid #b78f81;border-radius:50%;place-items:center;width:60px;height:60px;margin-top:32px;font:31px Georgia,serif;animation:3s ease-in-out infinite alternate closing-breathe;display:grid}.guest-confirmation .guest-submit{margin-top:35px}.guest-list-page .guest-page-photo img{object-position:52% center}.guest-list-page .guest-page-card{padding-top:40px;padding-bottom:40px}.guest-list-page h1{font-size:clamp(39px,3.4vw,60px)}.guest-key-field{position:relative}.guest-key-field input{padding-right:75px!important}.guest-key-field button{color:var(--wine);cursor:pointer;background:0 0;border:0;font-size:12px;position:absolute;top:23px;right:12px}.guest-list-content{margin-top:35px}.guest-list-heading{color:#8b6b65;border-bottom:1px solid #cfb1a6;justify-content:space-between;gap:20px;padding-bottom:16px;font-size:12px;display:flex}.guest-list-heading button{color:var(--wine);cursor:pointer;background:0 0;border:0;flex:none;font-size:12px}.guest-names{max-height:42svh;margin:0;padding:0;list-style:none;overflow-y:auto}.guest-names li{border-bottom:1px solid #e2d1c8;grid-template-columns:43px 1fr auto;align-items:center;gap:12px;min-height:69px;display:grid}.guest-names li span{color:#b9998b;font:12px Georgia,serif}.guest-names li strong{color:var(--wine);font-size:17px;font-weight:400}.guest-names li time{color:#a0877d;white-space:nowrap;font:11px sans-serif}.guest-list-empty{color:#927c75;margin:35px 0;font-size:14px;line-height:1.8}@keyframes record-spin{to{transform:rotate(360deg)}}@keyframes closing-breathe{0%{opacity:.55;transform:scale(.96)rotate(-4deg)}to{opacity:1;transform:scale(1.05)rotate(4deg)}}@keyframes music-bars{to{height:3px}}@keyframes hero-zoom{0%{transform:scale(1)}to{transform:scale(1.07)}}@keyframes rise-in{0%{opacity:0;filter:blur(7px);transform:translateY(35px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes petal-fall{0%{opacity:0;transform:translateY(-5vh)rotate(0)}15%{opacity:.7}85%{opacity:.7}to{opacity:0;transform:translate(65px,105vh)rotate(180deg)}}@keyframes scroll-line{50%{transform:scaleY(.35)}}@keyframes marquee{to{transform:translate(-50%)}}@keyframes caption-enter{0%{opacity:0;filter:blur(5px);transform:translateY(25px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes slide-progress{to{width:100%}}@keyframes ring-turn{to{transform:rotate(360deg)}}@keyframes orbit{to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes shimmer{50%{opacity:.45;transform:scale(1.1)}}@media (max-width:1120px){.desktop-nav{gap:24px}.music-text{display:none}.hero-content{width:78%}.film-layout{grid-template-columns:minmax(0,1.3fr) minmax(300px,.85fr)}}@media (max-width:800px){.site-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#261418c4;height:70px;padding:0 18px}.brand{gap:8px}.brand-mark{font-size:30px}.brand-mark span{font-size:18px}.brand-caption{font-size:7px}.desktop-nav{display:none}.header-actions{gap:12px}.music-disc{width:31px;height:31px}.music-bars,.music-text{display:none}.header-rsvp{gap:5px;padding:9px 10px;font-size:10px}.header-rsvp svg{width:16px}.hero{height:100svh;min-height:670px}.hero-photo img{object-position:52% center}.hero-shade{background:linear-gradient(#190d1199,#190d1166 47%,#190d11a6)}.hero-frame{inset:90px 17px 20px}.hero-content{text-align:center;width:auto;margin:0 35px;padding-top:clamp(115px,16vh,160px)}.hero-eyebrow{letter-spacing:.22em;font-size:8px}.hero-ornament{margin-bottom:17px}.hero h1{align-items:center;font-size:clamp(64px,15vw,100px);line-height:1.2}.hero h1 span:last-child{padding-left:.65em}.hero-english{font-size:17px}.hero-invite{letter-spacing:.13em;white-space:nowrap;font-size:12px}.hero-cta{font-size:12px}.hero-date{letter-spacing:.1em;gap:11px;font-size:9px;bottom:47px;left:36px}.hero-date i{width:23px}.hero-scroll{display:none}.section-pad{padding:78px 24px}.section-label{font-size:9px}.section-label span{font-size:11px}.serif-italic{font-size:18px}.intro{padding-bottom:45px}.intro-grid{margin:65px 0 75px;display:block}.intro-title h2,.vow h2,.details h2,.countdown-section h2{font-size:clamp(44px,9vw,66px)}.intro-copy{padding-top:40px}.intro-copy p{font-size:14px;line-height:2.25}.intro-end{font-size:10px}.marquee{height:75px}.marquee div{font-size:30px}.film-intro{margin-bottom:40px}.film-intro h2{margin-top:27px;font-size:clamp(44px,9vw,65px)}.film-intro>p{font-size:12px;line-height:1.8}.film-layout{box-shadow:none;display:block}.film-visual{height:min(70svh,590px);min-height:400px}.film-image-frame{inset:12px}.film-expand{width:40px;height:40px;font-size:20px;bottom:25px;right:25px}.film-photo-index{font-size:8px;bottom:31px;left:28px}.film-caption-panel{min-height:350px;padding:27px}.film-caption{padding:34px 0}.film-flower{margin-bottom:18px;font-size:25px}.film-caption>p{margin-bottom:12px;font-size:12px}.film-caption h3{margin-bottom:16px;font-size:clamp(34px,7vw,50px)}.film-note{font-size:13px}.film-timeline{scrollbar-width:none;gap:6px;padding-bottom:8px;display:flex;overflow-x:auto}.film-timeline::-webkit-scrollbar{display:none}.film-timeline button{min-width:33px}.film-hint{text-align:left;font-size:10px;line-height:1.7}.vow{display:block}.vow-photo{height:560px;min-height:0}.vow-copy{min-height:590px;padding:68px 24px}.vow-copy .serif-italic{font-size:16px}.vow-copy p:not(.serif-italic){font-size:13px}.vow-ring{width:330px;height:330px;bottom:-150px;right:-120px}.details-header{padding:58px 0;display:block}.date-art{margin-top:55px}.date-art span:first-child{font-size:22px}.date-art strong{font-size:175px}.event-grid{padding:24px 0;display:block}.event-cell,.event-cell:first-child{border-bottom:1px solid #efd6c947;border-left:0;padding:26px 0}.event-cell span{margin-top:17px}.event-cell strong{font-size:23px}.details-actions{justify-content:stretch}.details-actions a,.details-actions button{flex:1;min-width:0;padding:14px 12px;font-size:11px}.countdown-content{margin-top:64px}.countdown-section h2{font-size:clamp(42px,8vw,60px)}.countdown-list{margin-top:60px;padding:25px 0}.countdown-item strong{font-size:clamp(34px,8vw,60px)}.countdown-orbit{width:440px;height:440px}.closing{min-height:620px}.closing h2{font-size:clamp(46px,10vw,72px)}.closing-halo-one{width:480px}.closing-halo-two{width:420px}.footer{flex-wrap:wrap;gap:22px;min-height:165px}.footer-mark{font-size:36px}.footer p{text-align:right;font-size:14px}.footer button{margin-left:auto}.lightbox img{padding:45px 10px}.guest-page{display:block}.guest-page-photo{z-index:0;min-height:0;position:fixed;inset:0}.guest-page-photo:after{background:linear-gradient(#231318b8,#231318d6)}.guest-page-content{z-index:1;color:#fff;min-height:100svh;padding:22px 25px;position:relative}.guest-page-header,.guest-page-footer,.guest-page h1,.guest-page form label,.guest-back,.guest-list-heading button,.guest-names li strong{color:#fff6ee}.guest-page-card{width:min(100%,540px);padding:55px 0}.guest-kicker,.guest-card-ornament{color:#efc9b2}.guest-page h1{font-size:clamp(39px,8vw,59px)}.guest-page h1 em{color:#f1c4b5}.guest-intro,.guest-confirmation p{color:#f2dfd2}.guest-page form label span{color:#e5bfae}.guest-page form input:not(.guest-honeypot){color:var(--wine);background:#fff9f3e8}.guest-submit{color:var(--wine);background:#f7e9dc;border-color:#edd0bc}.guest-submit:hover:not(:disabled){background:#fff}.guest-back{border-color:#dbbbaa}.guest-page-footer,.guest-list-heading,.guest-names li{border-color:#ffe6d559}.guest-page-footer span:last-child,.guest-list-heading,.guest-names li span,.guest-names li time,.guest-list-empty{color:#edcdbb}.guest-key-field button{color:var(--wine)}.guest-error{color:#ffd1d1}}@media (max-width:450px){.hero{min-height:620px}.hero-photo img{object-position:52% 54%}.hero-content{margin:0 23px;padding-top:clamp(120px,16vh,150px)}.hero h1{font-size:clamp(57px,15vw,70px)}.hero-english{font-size:15px}.hero-invite{letter-spacing:.08em;font-size:10px}.hero-date{font-size:8px;left:27px}.film-intro h2{letter-spacing:.03em;font-size:clamp(36px,9vw,44px)}.film-visual{height:470px}.film-caption-panel{min-height:330px}.vow-photo{height:480px}.date-art strong{font-size:150px}.closing{min-height:560px}.closing-actions{flex-direction:column;gap:10px;width:min(100%,310px);margin-top:33px}.closing-actions a{width:100%;min-width:0;padding:14px 18px}.closing .closing-note{font-size:10px}.guest-page-header span,.guest-page-footer span{font-size:7px}.guest-page-card{padding:45px 0}.guest-page h1{font-size:clamp(36px,9vw,48px)}.guest-intro,.guest-confirmation p{font-size:13px}.guest-names li{grid-template-columns:27px 1fr;gap:6px;padding:10px 0}.guest-names li time{grid-column:2}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.motion-ready [data-reveal]{opacity:1;transform:none}}
