*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ivory:#fdfaf4;--ivory2:#f8f3e8;--blush:#edb5c0;--blush2:#f7dce1;--rose:#c97d8a;--gold:#c9a84c;--gold2:#e8cc80;--dark:#2c2028;--dark2:#3d3040;--text:#4a3f4a;--muted:#8a7a8a;--white:#fff;--ff-serif:"Cormorant Garamond", Georgia, serif;--ff-script:"Great Vibes", cursive;--ff-sans:"Lato", system-ui, sans-serif;--section-pad:clamp(4rem, 8vw, 8rem);--container:min(1100px, 92vw)}html{scroll-behavior:smooth}body{font-family:var(--ff-sans);background:var(--ivory);color:var(--text);line-height:1.7;overflow-x:hidden}.site-wrap{max-width:1440px;margin-inline:auto;position:relative;overflow:hidden}.nav-inner{justify-content:space-between;align-items:center;width:100%;max-width:1440px;margin-inline:auto;padding-inline:2rem;display:flex}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--ivory)}::-webkit-scrollbar-thumb{background:var(--blush);border-radius:3px}.container{width:var(--container);margin-inline:auto}.section-tag{font-family:var(--ff-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--gold);font-size:.7rem;font-weight:700}.section-title{font-family:var(--ff-serif);color:var(--dark);font-size:clamp(2.4rem,5vw,4rem);font-weight:300;line-height:1.1}.script-title{font-family:var(--ff-script);color:var(--rose);font-size:clamp(3rem,6vw,5rem);line-height:1.2}.divider{align-items:center;gap:1rem;margin:1.5rem 0;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;height:1px}.divider-diamond{background:var(--gold);flex-shrink:0;width:8px;height:8px;transform:rotate(45deg)}#opening-overlay{z-index:1000;position:fixed;inset:0}.nav{z-index:100;padding:1rem 0;transition:background .4s,-webkit-backdrop-filter .4s,backdrop-filter .4s;position:fixed;top:0;left:0;right:0}.nav.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fdfaf4eb;border-bottom:1px solid #c9a84c33}.nav-logo{font-family:var(--ff-serif);color:var(--white);letter-spacing:.08em;font-size:1.1rem;font-weight:500;transition:color .4s}.nav.scrolled .nav-logo{color:var(--dark)}.nav-links{gap:2rem;list-style:none;display:flex}.nav-links a{letter-spacing:.15em;text-transform:uppercase;color:#ffffffd9;font-size:.72rem;font-weight:700;transition:color .3s}.nav-links a:hover{color:var(--gold2)}.nav.scrolled .nav-links a{color:var(--text)}.nav.scrolled .nav-links a:hover{color:var(--gold)}.nav-hamburger{flex-direction:column;gap:5px;padding:6px;display:none}.nav-hamburger span{background:var(--white);border-radius:2px;width:22px;height:2px;transition:background .4s;display:block}.nav.scrolled .nav-hamburger span{background:var(--dark)}@media (width<=768px){.nav-links{display:none}.nav-hamburger{display:flex}.nav-mobile-menu{z-index:200;background:#2c2028f7;flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;display:flex;position:fixed;inset:0}.nav-mobile-menu a{font-family:var(--ff-serif);color:var(--ivory);letter-spacing:.05em;font-size:1.8rem;font-weight:300}.nav-mobile-close{color:var(--ivory);cursor:pointer;background:0 0;border:none;font-size:2rem;position:absolute;top:1.5rem;right:1.5rem}}.music-toggle{z-index:90;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;width:48px;height:48px;color:var(--gold2);background:#2c2028d9;border:1px solid #c9a84c66;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,background .2s;display:flex;position:fixed;bottom:2rem;right:2rem}.music-toggle:hover{background:var(--dark);transform:scale(1.1)}.music-toggle svg{width:20px;height:20px}.hero{justify-content:center;align-items:center;width:100%;height:100svh;min-height:600px;display:flex;position:relative;overflow:hidden}.hero-bg{object-fit:cover;object-position:center;width:100%;height:calc(100% + 120px);position:absolute;top:-60px;left:0;right:0}.hero-overlay{background:linear-gradient(#2c202833 0%,#2c20281a 40%,#2c20288c 100%);position:absolute;inset:0}.hero-content{z-index:2;text-align:center;color:var(--white);padding:2rem;position:relative}.hero-tag{letter-spacing:.3em;text-transform:uppercase;color:#ffffffbf;margin-bottom:1rem;font-size:.7rem;font-weight:700}.hero-names{font-family:var(--ff-script);color:var(--white);text-shadow:0 2px 20px #0000004d;margin-bottom:.5rem;font-size:clamp(3.5rem,9vw,8rem);line-height:1}.hero-ampersand{font-family:var(--ff-script);color:var(--gold2);margin:.25rem 0;font-size:clamp(2rem,5vw,4rem);display:block}.hero-date{font-family:var(--ff-serif);letter-spacing:.25em;text-transform:uppercase;color:#ffffffe6;margin-top:1.5rem;font-size:clamp(.9rem,2vw,1.2rem);font-weight:300}.hero-scroll-hint{z-index:2;color:#fff9;letter-spacing:.2em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.5rem;font-size:.65rem;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.hero-scroll-line{background:linear-gradient(#fff9,#0000);width:1px;height:50px;animation:2s ease-in-out infinite scrollPulse}@keyframes scrollPulse{0%,to{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.2)}}.countdown{flex-wrap:nowrap;justify-content:center;gap:clamp(1rem,4vw,2rem);margin-top:2rem;display:flex}.countdown-unit{flex-direction:column;align-items:center;display:flex}.countdown-value{font-family:var(--ff-serif);color:var(--white);font-size:clamp(2rem,5vw,3.5rem);font-weight:300;line-height:1}.countdown-label{letter-spacing:.2em;text-transform:uppercase;color:#fff9;margin-top:.3rem;font-size:.6rem}.story-section{padding:var(--section-pad) 0;background:var(--ivory);overflow:hidden}.story-header{text-align:center;margin-bottom:5rem}.story-timeline{max-width:900px;margin:0 auto;padding:0 1rem;position:relative}.story-timeline:before{content:"";background:linear-gradient(to bottom, transparent, var(--gold) 10%, var(--gold) 90%, transparent);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.story-item{grid-template-columns:1fr 60px 1fr;align-items:center;gap:0;margin-bottom:5rem;display:grid}.story-item:nth-child(2n) .story-photo{order:3}.story-item:nth-child(2n) .story-text{text-align:right;order:1}.story-item:nth-child(2n) .story-dot{order:2}.story-dot{justify-content:center;align-items:center;display:flex;position:relative}.story-dot-inner{background:var(--gold);border:3px solid var(--ivory);width:14px;height:14px;box-shadow:0 0 0 2px var(--gold);z-index:1;border-radius:50%}.story-photo img{aspect-ratio:4/5;object-fit:cover;border-radius:2px;width:100%}.story-text{padding:1.5rem}.story-year{font-family:var(--ff-script);color:var(--rose);margin-bottom:.5rem;font-size:2.5rem;line-height:1}.story-caption{font-family:var(--ff-serif);color:var(--dark);margin-bottom:.75rem;font-size:clamp(1.1rem,2.5vw,1.4rem);font-style:italic;font-weight:400;line-height:1.5}.story-body{color:var(--muted);font-size:.88rem;line-height:1.8}@media (width<=680px){.story-timeline:before{left:20px}.story-item{grid-template-rows:auto auto;grid-template-columns:40px 1fr;gap:.5rem 1rem}.story-dot{grid-area:1/1}.story-photo{grid-area:1/2}.story-text{grid-area:2/2;text-align:left!important}.story-item:nth-child(2n) .story-photo{order:unset}.story-item:nth-child(2n) .story-text{order:unset;text-align:left}.story-item:nth-child(2n) .story-dot{order:unset}}.couple-section{padding:var(--section-pad) 0;background:var(--ivory2)}.couple-header{text-align:center;margin-bottom:4rem}.couple-grid{grid-template-columns:1fr 1fr;gap:4rem;max-width:900px;margin:0 auto;padding:0 1rem;display:grid}.couple-card{text-align:center}.couple-photo-wrap{margin-bottom:2rem;position:relative}.couple-photo-frame{display:inline-block;position:relative}.couple-photo-frame:before{content:"";pointer-events:none;border:1px solid #c9a84c66;border-radius:2px;position:absolute;inset:-8px}.couple-photo{aspect-ratio:3/4;object-fit:cover;border-radius:2px;width:100%;max-width:280px}.couple-role{letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;font-size:.68rem;font-weight:700}.couple-name{font-family:var(--ff-serif);color:var(--dark);margin-bottom:1rem;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400}.couple-parents{color:var(--muted);font-size:.85rem;line-height:1.9}.couple-parents strong{color:var(--text);font-weight:400}@media (width<=600px){.couple-grid{grid-template-columns:1fr;gap:3rem}}.events-section{padding:var(--section-pad) 0;background:var(--dark);position:relative;overflow:hidden}.events-section:before{content:"";opacity:.12;background-image:url(/photos/2025/trip-japan/05.jpg);background-position:50%;background-size:cover;position:absolute;inset:0}.events-header{text-align:center;z-index:1;margin-bottom:4rem;position:relative}.events-header .section-tag{color:var(--gold2)}.events-header .section-title{color:var(--ivory)}.events-grid{z-index:1;grid-template-columns:1fr 1fr;gap:2rem;max-width:860px;margin:0 auto;padding:0 1rem;display:grid;position:relative}.event-card{text-align:center;background:#fdfaf40f;border:1px solid #c9a84c40;border-radius:4px;padding:2.5rem 2rem;transition:background .3s,border-color .3s}.event-card:hover{background:#fdfaf41a;border-color:#c9a84c80}.event-icon{width:48px;height:48px;color:var(--gold);margin:0 auto 1.5rem}.event-type{letter-spacing:.25em;text-transform:uppercase;color:var(--gold2);margin-bottom:.75rem;font-size:.68rem;font-weight:700}.event-name{font-family:var(--ff-serif);color:var(--ivory);margin-bottom:.5rem;font-size:clamp(1.3rem,2.5vw,1.7rem);font-weight:300}.event-date{font-family:var(--ff-serif);color:var(--blush);margin-bottom:.25rem;font-size:1rem;font-style:italic}.event-time{font-size:1.5rem;font-family:var(--ff-serif);color:var(--white);margin:.5rem 0;font-weight:300}.event-location{color:#fff9;margin-bottom:1.5rem;font-size:.83rem;line-height:1.6}.event-map-btn{border:1px solid var(--gold);color:var(--gold2);letter-spacing:.15em;text-transform:uppercase;border-radius:2px;align-items:center;gap:.5rem;padding:.6rem 1.5rem;font-size:.72rem;font-weight:700;transition:background .2s,color .2s;display:inline-flex}.event-map-btn:hover{background:var(--gold);color:var(--dark)}@media (width<=600px){.events-grid{grid-template-columns:1fr}}.gallery-section{padding:var(--section-pad) 0;background:var(--ivory)}.gallery-header{text-align:center;margin-bottom:3rem}.gallery-sub{color:var(--muted);margin-top:1rem;font-size:.9rem}.carousel-wrap{background:var(--dark);aspect-ratio:4/3;border-radius:4px;max-width:680px;margin:0 auto 1.5rem;position:relative;overflow:hidden}.carousel-track{width:100%;height:100%;position:relative;overflow:hidden}.carousel-img{object-fit:cover;cursor:zoom-in;width:100%;height:100%;position:absolute;inset:0}.carousel-btn{z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;background:#2c202899;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-btn svg{width:20px;height:20px}.carousel-btn:hover{background:#2c2028e6}.carousel-btn--prev{left:1rem}.carousel-btn--next{right:1rem}.carousel-counter{color:#fffc;letter-spacing:.1em;background:#00000080;border-radius:20px;padding:.25rem .6rem;font-size:.7rem;position:absolute;bottom:1rem;right:1rem}.carousel-dots{flex-wrap:wrap;justify-content:center;gap:6px;max-width:680px;margin:0 auto;padding:0 1rem;display:flex}.carousel-dot{background:var(--blush2);cursor:pointer;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:background .2s,transform .2s}.carousel-dot.active{background:var(--gold);transform:scale(1.4)}@media (width<=720px){.carousel-wrap{border-radius:0;max-width:100%}}.lightbox{-webkit-backdrop-filter:blur(5px);z-index:500;cursor:zoom-out;background:#0a0608f2;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;cursor:default;border-radius:3px;max-width:min(90vw,900px);max-height:82vh;display:block;box-shadow:0 32px 80px #000000b3}.lightbox-close{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;z-index:2;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .2s,transform .2s;display:flex;position:absolute;top:1.2rem;right:1.5rem}.lightbox-close:hover{background:#ffffff38;transform:scale(1.08)}.lightbox-nav{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#ffffffd9;cursor:pointer;z-index:2;background:#ffffff14;border:1px solid #ffffff29;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:background .2s,transform .2s,color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{color:#fff;background:#fff3;transform:translateY(-50%)scale(1.06)}.lightbox-nav--prev{left:clamp(.75rem,3vw,2.5rem)}.lightbox-nav--next{right:clamp(.75rem,3vw,2.5rem)}.lightbox-nav svg{width:22px;height:22px}.lightbox-footer{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:default;white-space:nowrap;background:#00000073;border:1px solid #ffffff14;border-radius:20px;align-items:center;gap:1.2rem;padding:.45rem 1.2rem;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.lightbox-label{font-family:var(--ff-serif);color:#ffffff94;letter-spacing:.08em;font-size:.75rem;font-style:italic}.lightbox-counter-lb{font-family:var(--ff-sans);letter-spacing:.16em;color:#fff6;font-size:.68rem}.carousel-zoom-hint{color:#ffffff80;opacity:0;pointer-events:none;background:#00000073;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:opacity .3s;display:flex;position:absolute;bottom:1rem;left:1rem}.carousel-wrap:hover .carousel-zoom-hint{opacity:1}@media (width<=480px){.lightbox-nav{width:40px;height:40px}.lightbox-nav svg{width:18px;height:18px}.lightbox-nav--prev{left:.5rem}.lightbox-nav--next{right:.5rem}.lightbox-img{max-width:100vw;max-height:75vh}.lightbox-footer{gap:.7rem;padding:.35rem .9rem}}.rsvp-section{padding:var(--section-pad) 0;background:var(--ivory2)}.rsvp-header{text-align:center;margin-bottom:3rem}.rsvp-form{flex-direction:column;gap:1.2rem;max-width:560px;margin:0 auto;padding:0 1rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.form-input,.form-select,.form-textarea{background:var(--white);width:100%;font-family:var(--ff-sans);color:var(--text);appearance:none;border:1px solid #c9a84c4d;border-radius:2px;padding:.85rem 1rem;font-size:.9rem;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--gold);outline:none}.form-textarea{resize:vertical;min-height:100px}.form-radio-group{gap:1rem;display:flex}.form-radio-label{cursor:pointer;color:var(--text);align-items:center;gap:.5rem;font-size:.9rem;display:flex}.form-submit{background:var(--dark);color:var(--ivory);letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--dark);border-radius:2px;align-self:center;padding:1rem 2.5rem;font-size:.75rem;font-weight:700;transition:background .2s,color .2s}.form-submit:hover{background:var(--gold);color:var(--dark);border-color:var(--gold)}.rsvp-success{text-align:center;font-family:var(--ff-serif);color:var(--rose);padding:3rem;font-size:1.5rem;font-style:italic}.gift-section{padding:var(--section-pad) 0;background:var(--ivory)}.gift-header{text-align:center;margin-bottom:3rem}.gift-card{background:var(--white);text-align:center;border:1px solid #c9a84c4d;border-radius:4px;max-width:420px;margin:0 auto;padding:2.5rem}.gift-bank-logo{filter:grayscale(.2);height:36px;margin:0 auto 1.5rem}.gift-account-name{font-family:var(--ff-serif);color:var(--dark);margin-bottom:.25rem;font-size:1.3rem}.gift-account-number{font-family:var(--ff-sans);letter-spacing:.15em;color:var(--text);margin:.75rem 0;font-size:1.8rem;font-weight:300}.gift-copy-btn{background:var(--dark);color:var(--ivory);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border:none;border-radius:2px;align-items:center;gap:.5rem;margin-top:.5rem;padding:.7rem 1.8rem;font-size:.72rem;font-weight:700;transition:background .2s;display:inline-flex}.gift-copy-btn:hover{background:var(--gold);color:var(--dark)}.gift-copied{color:var(--rose);margin-top:.5rem;font-size:.8rem}.closing-section{text-align:center;justify-content:center;align-items:center;min-height:80vh;display:flex;position:relative;overflow:hidden}.closing-bg{object-fit:cover;object-position:center 30%;width:100%;height:100%;position:absolute;inset:0}.closing-overlay{background:linear-gradient(#2c202880,#2c2028bf);position:absolute;inset:0}.closing-content{z-index:2;color:var(--white);max-width:600px;padding:3rem 2rem;position:relative}.closing-verse{font-family:var(--ff-serif);color:#fffc;margin-bottom:2rem;font-size:clamp(1rem,2vw,1.25rem);font-style:italic;font-weight:300;line-height:1.9}.closing-names{font-family:var(--ff-script);color:var(--gold2);margin-bottom:1.5rem;font-size:clamp(3rem,8vw,6rem);line-height:1}.closing-tagline{letter-spacing:.25em;text-transform:uppercase;color:#fff9;font-size:.75rem;font-weight:700}.closing-credit{letter-spacing:.15em;text-transform:uppercase;color:#ffffff59;margin-top:1.5rem;font-size:.7rem}.op-scene{z-index:999;background-color:#f7f3eb;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M24 2 L46 24 L24 46 L2 24 Z' fill='none' stroke='rgba(201%2C168%2C76%2C0.13)' stroke-width='0.6'/%3E%3C/svg%3E");background-size:48px 48px;justify-content:center;align-items:center;padding:clamp(1rem,3vw,2rem);display:flex;position:fixed;inset:0;overflow:hidden}.op-scene:before{content:"";pointer-events:none;background:radial-gradient(65% 70%,#0000 0% 35%,#d2c3a538 65%,#b9a58266 100%);position:absolute;inset:0}.op-scene:after{content:"";pointer-events:none;background:linear-gradient(#dcd0b940 0%,#0000 18% 82%,#dcd0b940 100%);position:absolute;inset:0}.op-card{background:#fdfaf4;width:min(500px,92vw);position:relative;box-shadow:0 1px 4px #785f3c0f,0 4px 16px #785f3c14,0 16px 48px #785f3c1a,0 40px 80px #785f3c12}.op-border-outer{pointer-events:none;border:1px solid #c9a84c8c;position:absolute;inset:12px}.op-border-inner{pointer-events:none;border:1px solid #c9a84c38;position:absolute;inset:17px}.op-corner{pointer-events:none;width:10px;height:10px;position:absolute}.op-corner:before,.op-corner:after{content:"";background:#c9a84c;position:absolute}.op-corner:before{width:100%;height:1px;top:0;left:0}.op-corner:after{width:1px;height:100%;top:0;left:0}.op-corner--tl{top:12px;left:12px}.op-corner--tr{top:12px;right:12px;transform:scaleX(-1)}.op-corner--bl{bottom:12px;left:12px;transform:scaleY(-1)}.op-corner--br{bottom:12px;right:12px;transform:scale(-1)}.op-body{text-align:center;flex-direction:column;align-items:center;gap:0;padding:clamp(3rem,8vw,4.5rem) clamp(2.5rem,7vw,4rem);display:flex}.op-eyebrow{font-family:var(--ff-sans);letter-spacing:.32em;text-transform:uppercase;color:#b09070;margin-bottom:1.6rem;font-size:.65rem;font-weight:700}.op-names{font-family:var(--ff-script);color:var(--dark);font-size:clamp(2.4rem,8vw,3.8rem);line-height:1.05}.op-amp{font-family:var(--ff-script);color:var(--rose);margin:.05em 0;font-size:clamp(1.6rem,5vw,2.6rem);line-height:1}.op-rule{align-items:center;gap:.7rem;width:100%;max-width:220px;margin:1.4rem 0;display:flex}.op-rule span{background:linear-gradient(90deg,#0000,#c9a84c8c,#0000);flex:1;height:1px}.op-rule--slim{max-width:120px;margin:1.2rem 0}.op-rule--slim span{background:linear-gradient(90deg,#0000,#c9a84c59,#0000)}.op-diamond{background:var(--gold);flex-shrink:0;width:6px;height:6px;transform:rotate(45deg)}.op-date{font-family:var(--ff-serif);letter-spacing:.06em;color:var(--dark);margin-bottom:.75rem;font-size:clamp(.95rem,2.5vw,1.1rem);font-weight:500}.op-venues{font-family:var(--ff-serif);color:var(--muted);font-size:clamp(.78rem,2vw,.88rem);font-style:italic;font-weight:300;line-height:2}.op-venues-sep{color:#c9a84cb3;font-size:1.1em;font-style:normal;display:inline-block}.op-btn{color:#8a6a30;font-family:var(--ff-sans);letter-spacing:.26em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #c9a84cb3;margin-top:.25rem;padding:.85rem 2.6rem;font-size:.68rem;font-weight:700;transition:background .22s,color .22s,border-color .22s}.op-btn:hover{color:#fdfaf4;background:#c9a84c;border-color:#c9a84c}.op-monogram{font-family:var(--ff-script);color:#c9a84c8c;letter-spacing:.05em;margin-top:1.5rem;font-size:clamp(1.3rem,3.5vw,1.9rem)}.open-btn{border:1px solid var(--gold);color:var(--gold2);letter-spacing:.25em;text-transform:uppercase;cursor:pointer;background:#c9a84c14;border-radius:2px;padding:.9rem 2.5rem;font-size:.72rem;font-weight:700;transition:background .2s,color .2s}.open-btn:hover{background:var(--gold);color:var(--dark)}.op{z-index:1000;background:radial-gradient(70% 60% at 50% 25%,#fbeedd 0%,#0000 60%),radial-gradient(90% 70% at 50% 100%,#efd8d6 0%,#0000 65%),linear-gradient(#f7ecdc 0%,#ead8c6 100%);flex-direction:column;justify-content:center;align-items:center;padding:clamp(1.5rem,4vw,2.5rem) 1rem;display:flex;position:fixed;inset:0;overflow:hidden}.op-bg{pointer-events:none;background:radial-gradient(circle at 18% 22%,#c9a84c1a,#0000 45%),radial-gradient(circle at 82% 78%,#c97d8a1f,#0000 50%),radial-gradient(circle,#0000 55%,#3c282829 100%);position:absolute;inset:0}.op-grain{pointer-events:none;opacity:.18;mix-blend-mode:multiply;background-image: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='0.85' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.3  0 0 0 0 0.22  0 0 0 0 0.18  0 0 0 0.5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}.op-motes{pointer-events:none;position:absolute;inset:0}.op-mote{left:var(--x);top:var(--y);width:var(--sz);height:var(--sz);animation:op-mote var(--dur) var(--dly) ease-in-out infinite;opacity:var(--o);background:radial-gradient(circle,#c9a84cf2 0%,#0000 65%);border-radius:50%;position:absolute}@keyframes op-mote{0%,to{opacity:var(--o);transform:translate(0)scale(1)}50%{transform:translate(var(--dx), var(--dy)) scale(1.5);opacity:calc(var(--o) * 2.2)}}.op-eyebrow{z-index:2;font-family:var(--ff-sans);letter-spacing:.36em;text-transform:uppercase;color:#5638389e;text-align:center;white-space:nowrap;margin-bottom:clamp(1.4rem,3.5vw,2.4rem);font-size:clamp(.58rem,1.4vw,.72rem);font-weight:700;position:relative}.op-stage{z-index:2;perspective:1500px;justify-content:center;align-items:center;width:100%;max-width:540px;height:clamp(280px,56vw,420px);display:flex;position:relative}.op-envelope{--w:min(380px, 84vw);--h:calc(var(--w) / 1.55);width:var(--w);height:var(--h);cursor:pointer;transform-style:preserve-3d;filter:drop-shadow(0 24px 40px #46281e40)drop-shadow(0 8px 14px #46281e2e);transition:transform .35s;position:absolute}.op-envelope:not(.is-open):hover{transform:translateY(-4px)}.op-envelope.is-open{cursor:default}.op-envelope-back{z-index:1;background:linear-gradient(170deg,#f4e7ce 0%,#e6d4b1 60%,#d4b585 100%);border-radius:5px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #7850322e,inset 0 -22px 50px #643c282e}.op-envelope-interior{z-index:2;opacity:0;background:linear-gradient(#2a1814 0%,#4a2820 80%,#6a3a30 100%);border-radius:5px 5px 0 0;height:60%;transition:opacity .4s .35s;position:absolute;top:0;left:0;right:0}.op-envelope.is-open .op-envelope-interior{opacity:1}.op-envelope-pouch{z-index:3;background:linear-gradient(170deg,#ead8b3 0%,#d4b585 100%);border-radius:0 0 5px 5px;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;height:45%;padding:0 1rem;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:inset 0 6px 14px #50281e38,inset 0 0 0 1px #78503238}.op-envelope-to{font-family:var(--ff-serif);letter-spacing:.08em;color:#5a3a30c7;font-size:clamp(.62rem,1.5vw,.76rem);font-style:italic}.op-envelope-rule{background:linear-gradient(90deg, transparent, var(--gold), transparent);opacity:.85;width:clamp(40px,10vw,56px);height:1px}.op-envelope-mono{font-family:var(--ff-script);color:var(--gold);letter-spacing:.04em;text-shadow:0 1px #ffebc880;font-size:clamp(1.05rem,2.6vw,1.5rem);line-height:1}.op-envelope-flap{z-index:5;transform-origin:top;height:60%;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.55,0,.28,1.18);position:absolute;top:0;left:0;right:0;transform:rotateX(0)}.op-envelope.is-open .op-envelope-flap{transform:rotateX(-178deg)}.op-envelope-flap-paper{clip-path:polygon(0% 0%,100% 0%,50% 100%);background:linear-gradient(190deg,#f4e7ce 0%,#e6d4b1 55%,#d9bf91 100%);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #7850322e}.op-envelope-flap-paper:after{content:"";clip-path:inherit;pointer-events:none;background:linear-gradient(#ffebc866 0%,#0000 30%);position:absolute;inset:0}.op-seal{color:#f7d484;cursor:pointer;z-index:2;background:radial-gradient(circle at 35% 28%,#d65d62 0%,#a23a3f 35%,#6d1c20 100%);border:none;border-radius:50%;justify-content:center;align-items:center;width:clamp(54px,13vw,72px);height:clamp(54px,13vw,72px);padding:0;transition:transform .35s;display:flex;position:absolute;bottom:0;left:50%;overflow:hidden;transform:translate(-50%,50%);box-shadow:0 6px 16px #781e2380,inset 0 0 0 2px #f7d48459,inset 0 -5px 12px #3c0a0f80,inset 0 7px 12px #ffd2a059}.op-envelope:not(.is-open) .op-seal:hover{transform:translate(-50%,50%)scale(1.04)}.op-seal:disabled{cursor:default}.op-seal-ring{pointer-events:none;border:1px dashed #f7d4844d;border-radius:50%;position:absolute;inset:4px}.op-seal-mono{font-family:var(--ff-serif);text-shadow:0 -1px #3c0a0f99,0 1px 1px #ffc89659;align-items:center;gap:.18em;font-size:clamp(1.1rem,2.6vw,1.4rem);font-weight:400;display:flex;position:relative}.op-seal-mono em{font-style:italic}.op-seal-mono i{font-family:var(--ff-script);opacity:.9;font-size:.72em;font-style:normal;transform:translateY(-.06em)}.op-seal-glow{pointer-events:none;z-index:-1;background:radial-gradient(circle,#f7d48473 0%,#0000 65%);border-radius:50%;animation:2.4s ease-in-out infinite op-pulse;position:absolute;inset:-14%}@keyframes op-pulse{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:.9;transform:scale(1.18)}}.op-envelope.is-open .op-seal-glow{display:none}.op-envelope.is-open .op-seal{animation:.5s ease-out forwards op-crack}@keyframes op-crack{0%{transform:translate(-50%,50%)rotate(0)}25%{transform:translate(-50%,50%)rotate(-4deg)scale(1.04)}60%{transform:translate(-50%,50%)rotate(3deg)}to{transform:translate(-50%,50%)rotate(0)}}.op-card{text-align:center;color:#4a3328;background:linear-gradient(#fffaf0 0%,#fbf2dc 100%);border-radius:4px;width:min(440px,92vw);padding:clamp(2.2rem,4.5vw,3.2rem) clamp(1.6rem,4vw,2.6rem);position:absolute;box-shadow:inset 0 1px #ffffffb3,inset 0 -2px #a078502e,0 30px 60px #50281e4d,0 12px 22px #50281e2e}.op-card-frame{pointer-events:none;border:1px solid #c9a84c73;border-radius:2px;position:absolute;inset:10px}.op-card-tag{font-family:var(--ff-sans);letter-spacing:.42em;text-transform:uppercase;color:#784632b3;margin-bottom:clamp(.7rem,1.6vw,1rem);font-size:clamp(.58rem,1.4vw,.66rem);font-weight:700}.op-card-names{font-family:var(--ff-script);color:#3a1c1c;flex-direction:column;align-items:center;gap:.1em;font-size:clamp(2rem,6vw,3.2rem);font-weight:400;line-height:1.05;display:flex}.op-card-name{display:block}.op-card-amp{align-items:center;gap:.7rem;width:min(220px,70%);margin:.1em 0;display:flex}.op-card-amp em{font-family:var(--ff-script);color:var(--gold);flex-shrink:0;font-size:.7em;font-style:italic;line-height:1}.op-card-ampline{background:linear-gradient(90deg,#0000,#c9a84c99,#0000);flex:1;height:1px}.op-card-rule{transform-origin:50%;background:linear-gradient(90deg,#0000,#78463280,#0000);width:56px;height:1px;margin:clamp(1rem,2.2vw,1.4rem) auto clamp(.7rem,1.6vw,1rem)}.op-card-date{font-family:var(--ff-serif);letter-spacing:.22em;text-transform:uppercase;color:#5a3a30;margin-bottom:clamp(.5rem,1.2vw,.75rem);font-size:clamp(.74rem,1.9vw,.92rem);font-weight:400}.op-card-venue{font-family:var(--ff-serif);color:#5a3a30b8;margin-bottom:clamp(1.3rem,2.8vw,1.8rem);font-size:clamp(.7rem,1.6vw,.84rem);font-style:italic;line-height:1.95}.op-card-x{color:var(--gold);letter-spacing:.4em;font-style:normal}.op-enter{border:1px solid var(--gold);color:#5a3a30;font-family:var(--ff-sans);letter-spacing:.32em;text-transform:uppercase;cursor:pointer;background:0 0;padding:.85rem 2.6rem;font-size:clamp(.6rem,1.4vw,.66rem);font-weight:700;transition:color .3s,background .3s,border-color .3s,transform .3s;position:relative;overflow:hidden}.op-enter:hover{background:var(--gold);color:#fff;border-color:var(--gold)}.op-enter-shine{pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff80,#0000);width:50%;height:100%;animation:3.4s ease-in-out 2.2s infinite op-shine;position:absolute;top:0;left:-120%}@keyframes op-shine{0%{left:-120%}40%,to{left:160%}}.op-card-mono{font-family:var(--ff-script);color:#c9a84c99;margin-top:clamp(1rem,2vw,1.4rem);font-size:clamp(.95rem,2vw,1.25rem)}.op-card-footer{margin-top:clamp(.8rem,1.6vw,1.1rem)}.op-card-skip{font-family:var(--ff-sans);letter-spacing:.28em;text-transform:uppercase;color:#5a3a3061;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.58rem;font-weight:700;transition:color .2s}.op-card-skip:hover{color:#5a3a30a6}.op-card-progress{background:linear-gradient(90deg, var(--gold2), var(--gold));pointer-events:none;border-radius:0 0 4px 4px;width:100%;height:2px;position:absolute;bottom:0;left:0}.op-hint{z-index:2;font-family:var(--ff-sans);letter-spacing:.34em;text-transform:uppercase;color:#5a3a308c;white-space:nowrap;align-items:center;gap:.9rem;margin-top:clamp(1.6rem,4vw,2.4rem);font-size:clamp(.54rem,1.2vw,.62rem);font-weight:700;animation:2.6s ease-in-out infinite op-bob;display:flex;position:relative}.op-hint-dot{background:var(--gold);opacity:.7;border-radius:50%;width:4px;height:4px}@keyframes op-bob{0%,to{opacity:.85;transform:translateY(0)}50%{opacity:1;transform:translateY(2px)}}.op-crest{text-align:center;font-family:var(--ff-serif);letter-spacing:.42em;color:#5a3a3066;z-index:2;font-size:clamp(.58rem,1.3vw,.66rem);font-style:italic;position:absolute;bottom:clamp(1rem,3vw,1.8rem);left:0;right:0}@media (width<=480px){.op-eyebrow{letter-spacing:.28em}.op-stage{height:clamp(260px,70vw,380px)}.op-envelope{--w:84vw}.op-card{padding:1.9rem 1.4rem}.op-hint{letter-spacing:.26em}}@media (width>=1024px){.op-envelope{--w:420px}.op-card{width:460px}.op-stage{max-width:520px;height:380px}}.roll-number{font-family:var(--ff-serif);color:var(--white);font-size:clamp(2rem,5vw,3.5rem);font-weight:300;line-height:1;display:flex}.roll-slot{justify-content:center;align-items:center;min-width:.62em;height:1.08em;display:flex;position:relative;overflow:hidden}.roll-char{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hero-particles{pointer-events:none;z-index:1;position:absolute;inset:0}.hero-particle{left:var(--x);top:var(--y);width:var(--sz);height:var(--sz);animation:op-bokeh var(--dur) var(--dly) ease-in-out infinite;background:radial-gradient(circle,#c9a84cd9 0%,#0000 70%);border-radius:50%;position:absolute}.hero:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(108deg,#0000 35%,#c9a84c0e 50%,#0000 65%) 0 0/200% 100%;animation:12s ease-in-out infinite hero-sheen;position:absolute;inset:0}@keyframes hero-sheen{0%,to{transform:translate(-120%)}50%{transform:translate(120%)}}.nav-progress{background:linear-gradient(90deg, var(--gold), var(--gold2), #c9a84c66);z-index:101;pointer-events:none;height:2px;position:absolute;bottom:0;left:0;right:0}.event-card{position:relative}.event-card:before{content:"";pointer-events:none;border-radius:4px;animation:4.5s ease-in-out infinite event-glow;position:absolute;inset:-1px}.event-card:nth-child(2):before{animation-delay:2.2s}@keyframes event-glow{0%,to{box-shadow:0 0 0 1px #c9a84c33}50%{box-shadow:0 0 0 1px #c9a84c80,0 0 28px #c9a84c1f,0 0 56px #c9a84c0f}}.couple-photo-frame:after{content:"";pointer-events:none;border-radius:4px;animation:4s ease-in-out infinite photo-halo;position:absolute;inset:-14px;box-shadow:0 0 28px #c9a84c21,0 0 60px #c9a84c12}@keyframes photo-halo{0%,to{opacity:.5}50%{opacity:1}}.closing-particles{pointer-events:none;z-index:1;position:absolute;inset:0}.closing-particle{left:var(--x);top:var(--y);width:var(--sz);height:var(--sz);animation:op-bokeh var(--dur) var(--dly) ease-in-out infinite;background:radial-gradient(circle,#c9a84cd9 0%,#0000 70%);border-radius:50%;position:absolute}.closing-content{z-index:2}@media (width>=1024px){.carousel-wrap,.carousel-dots{max-width:860px}.hero-names{font-size:clamp(4.5rem,8vw,8rem)}.couple-grid{gap:6rem;max-width:1000px}.story-timeline{max-width:960px}}@media (width>=1280px){.events-grid{max-width:960px}.story-timeline{max-width:100%;padding:0}.story-item{align-items:stretch;margin-bottom:0}.story-photo{min-height:500px;overflow:hidden}.story-photo img{aspect-ratio:unset;height:100%;min-height:500px}.story-text{background:#f5f0e8;flex-direction:column;justify-content:center;min-height:500px;padding:4rem 5rem;display:flex}.story-item:nth-child(2n) .story-text{background:#ede8de}}.story-text--even{text-align:right}.dresscode-section{padding:var(--section-pad) 0;background:var(--dark);text-align:center}.dresscode-header{margin-bottom:3.5rem}.dresscode-sub{color:#ffffff6b;margin-top:.75rem;font-size:.9rem;font-style:italic}.dresscode-grid{grid-template-columns:1fr;gap:1.5rem;max-width:700px;margin:0 auto;padding:0 1.5rem;display:grid}.dresscode-card{text-align:left;background:#ffffff08;border:1px solid #c9a84c33;padding:2.2rem 2rem;transition:border-color .3s}.dresscode-card:hover{border-color:#c9a84c73}.dresscode-gender{font-family:var(--ff-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--gold2);margin-bottom:.4rem;font-size:.62rem;font-weight:700}.dresscode-code{font-family:var(--ff-serif);color:var(--ivory);margin-bottom:1.2rem;font-size:1.45rem;font-weight:400}.dresscode-list{flex-direction:column;gap:.45rem;margin:0 0 1.2rem;padding:0;list-style:none;display:flex}.dresscode-list li{color:#fff9;padding-left:1.2rem;font-size:.88rem;line-height:1.5;position:relative}.dresscode-list li:before{content:"—";color:var(--gold);opacity:.5;font-size:.7em;position:absolute;top:.22em;left:0}.dresscode-avoid{color:#ffffff59;border-top:1px solid #c9a84c1f;padding-top:1rem;font-size:.82rem;line-height:1.6}.dresscode-avoid span{color:#c9a84c99;font-style:italic}.dresscode-palette{margin-top:3.5rem;padding:0 1.5rem}.dresscode-palette-label{letter-spacing:.28em;text-transform:uppercase;color:#ffffff47;margin-bottom:1.4rem;font-size:.65rem;font-weight:700}.dresscode-swatches{flex-wrap:wrap;justify-content:center;gap:1.2rem;display:flex}.dresscode-swatch-wrap{flex-direction:column;align-items:center;gap:.5rem;display:flex}.dresscode-swatch{border:1px solid #ffffff14;border-radius:50%;width:52px;height:52px;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 12px #0006}.dresscode-swatch:hover{transform:scale(1.1);box-shadow:0 4px 20px #00000080}.dresscode-swatch-name{letter-spacing:.1em;color:#ffffff59;text-transform:uppercase;text-align:center;max-width:64px;font-size:.6rem;line-height:1.3}@media (width>=700px){.dresscode-grid{grid-template-columns:1fr 1fr;max-width:880px}}@media (width<=480px){.hero-content{padding:1.25rem}.hero-names{word-break:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:clamp(2.6rem,11vw,4rem)}.hero-date{letter-spacing:.14em;font-size:.72rem}.countdown{gap:.8rem}.countdown-label{letter-spacing:.12em;font-size:.54rem}.story-header{margin-bottom:3rem}.story-year{font-size:2rem}.story-text{padding:.75rem .5rem}.event-card{padding:2rem 1.4rem}.event-time{font-size:1.25rem}.carousel-btn{width:36px;height:36px}.carousel-btn--prev{left:.5rem}.carousel-btn--next{right:.5rem}.gift-card{padding:2rem 1.4rem}.gift-account-number{letter-spacing:.1em;font-size:1.5rem}.rsvp-form{padding:0 .75rem}.dresscode-card{padding:1.8rem 1.4rem}.dresscode-swatch{width:44px;height:44px}.closing-content{padding:2.5rem 1.5rem}.nav-inner{padding-inline:1.25rem}.nav-logo{font-size:.95rem}:root{--section-pad:clamp(3.5rem, 7vw, 6rem)}.section-title{font-size:clamp(2rem,7vw,3rem)}.script-title{font-size:clamp(2.4rem,8vw,3.6rem)}}@media (width<=360px){.hero-names{font-size:2.4rem}.countdown{gap:.6rem}.roll-number{font-size:1.8rem}.roll-slot{min-width:.55em}.op-seal{width:48px;height:48px}.op-seal-mono{font-size:1rem}}.petal-rain{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.petal{top:-30px;left:var(--px);width:var(--sz);height:var(--sz);background:var(--col);animation:petal-fall var(--dur) var(--dly) infinite linear;will-change:transform;position:absolute}.petal--0{border-radius:60% 40%/70% 30%}.petal--1{border-radius:50% 50% 30% 60%/60% 40%}.petal--2{border-radius:80% 20%/20% 80%}@keyframes petal-fall{0%{opacity:0;transform:translateY(0)translate(0)rotate(0)}6%{opacity:var(--o)}88%{opacity:var(--o)}to{transform:translateY(110vh) translateX(var(--drift)) rotate(var(--rot));opacity:0}}@media (prefers-reduced-motion:reduce){.petal{opacity:0;animation:none}}.botanical-divider{justify-content:center;align-items:center;padding:.5rem 1rem;display:flex;overflow:visible}.botanical-divider svg{width:100%;max-width:700px;height:auto;margin:0 auto;display:block;overflow:visible}.masonry-label-wrap{text-align:center;margin:3rem 0 1.25rem}.masonry-label{font-family:var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:700}.masonry-grid{columns:3;column-gap:.6rem}.masonry-item{break-inside:avoid;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:3px;width:100%;margin-bottom:.6rem;padding:0;display:block;position:relative;overflow:hidden}.masonry-item img{width:100%;height:auto;transition:transform .55s cubic-bezier(.25,.46,.45,.94);display:block}.masonry-item:hover img,.masonry-item:focus-visible img{transform:scale(1.06)}.masonry-item-overlay{opacity:0;pointer-events:none;background:linear-gradient(#0000 45%,#2c2028b8 100%);align-items:flex-end;padding:.6rem .7rem;transition:opacity .3s;display:flex;position:absolute;inset:0}.masonry-item:hover .masonry-item-overlay,.masonry-item:focus-visible .masonry-item-overlay{opacity:1}.masonry-item-label{font-family:var(--ff-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ivory);opacity:.9;font-size:.62rem}@media (width<=768px){.masonry-grid{columns:2}}@media (width<=480px){.masonry-grid{columns:2;column-gap:.4rem}.masonry-item{margin-bottom:.4rem}}.event-cal-btns{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.6rem;display:flex}.event-cal-btn{font-family:var(--ff-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:2px;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.67rem;font-weight:700;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.event-cal-btn--gcal{color:var(--gold2);background:#c9a84c26;border:1px solid #c9a84c8c}.event-cal-btn--gcal:hover{background:var(--gold);color:var(--dark);border-color:var(--gold)}.event-cal-btn--ics{color:#fff9;background:0 0;border:1px solid #fff3}.event-cal-btn--ics:hover{color:#fffffff2;border-color:#ffffff8c}.wishes-section{padding:var(--section-pad) 0;background:var(--ivory2);overflow:hidden}.wishes-header{text-align:center;margin-bottom:2.5rem;padding:0 1.5rem}.wishes-sub{color:var(--muted);margin-top:.75rem;font-size:.9rem;font-style:italic}.wishes-form-wrap{max-width:560px;margin:0 auto 3rem;padding:0 1.5rem}.wishes-form{flex-direction:column;gap:1rem;display:flex}.wishes-fields{grid-template-columns:1fr 2fr;align-items:start;gap:.75rem;display:grid}.wishes-field{flex-direction:column;gap:.35rem;display:flex}.wishes-field--wide{grid-column:1/-1}.wishes-label{font-family:var(--ff-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.65rem;font-weight:700}.wishes-input{font-family:var(--ff-sans);color:var(--text);background:var(--white);-webkit-appearance:none;border:none;border-bottom:1.5px solid #8a7a8a4d;border-radius:0;outline:none;width:100%;padding:.55rem .1rem;font-size:.9rem;transition:border-color .2s}.wishes-input:focus{border-bottom-color:var(--gold)}.wishes-input::placeholder{color:var(--muted);opacity:.7}.wishes-textarea{resize:vertical;min-height:80px;line-height:1.6}.wishes-submit{background:var(--gold);color:var(--dark);font-family:var(--ff-sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border:none;border-radius:2px;align-self:flex-end;align-items:center;gap:.5rem;padding:.65rem 1.75rem;font-size:.72rem;font-weight:700;transition:background .2s,transform .15s;display:inline-flex}.wishes-submit:hover{background:var(--gold2)}.wishes-submit:active{transform:scale(.97)}.wishes-thanks{text-align:center;background:var(--white);border:1px solid #c9a84c4d;border-radius:4px;padding:2.5rem 1.5rem}.wishes-thanks-icon{color:var(--gold);margin-bottom:.75rem;font-size:1.6rem;animation:.6s forwards wish-sparkle;display:block}@keyframes wish-sparkle{0%{opacity:0;transform:scale(0)rotate(-30deg)}70%{transform:scale(1.2)rotate(5deg)}to{opacity:1;transform:scale(1)rotate(0)}}.wishes-thanks p{font-family:var(--ff-serif);color:var(--text);margin-bottom:.3rem;font-size:1.3rem}.wishes-thanks-sub{color:var(--muted);font-size:.82rem;font-style:italic}.wish-wall-wrap{padding:0 1rem}.wish-wall-label{text-align:center;font-family:var(--ff-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1.25rem;font-size:.65rem;font-weight:700}.wish-wall{grid-template-columns:1fr 1fr;gap:.75rem;max-width:860px;height:420px;margin:0 auto;display:grid;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 14% 86%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 14% 86%,#0000 100%)}.wish-col{overflow:hidden}.wish-track{animation:wish-scroll var(--dur) linear infinite;flex-direction:column;gap:.75rem;display:flex}@keyframes wish-scroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.wish-card{background:var(--white);border:1px solid #8a7a8a1f;border-radius:4px;padding:1rem 1.1rem;box-shadow:0 1px 8px #2c20280a}.wish-text{font-family:var(--ff-serif);color:var(--text);margin-bottom:.6rem;font-size:clamp(.82rem,1.5vw,.95rem);font-style:italic;line-height:1.65}.wish-name{font-family:var(--ff-sans);letter-spacing:.08em;color:var(--gold);text-align:right;font-size:.67rem;font-weight:700}.wish-wall:hover .wish-track{animation-play-state:paused}@media (width<=600px){.wish-wall{grid-template-columns:1fr;height:360px}.wish-col:last-child{display:none}.wishes-fields{grid-template-columns:1fr}}
