*,: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:100%;position:absolute;inset: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{justify-content:center;gap: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}.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{z-index:500;cursor:zoom-out;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;border-radius:2px;max-width:90vw;max-height:90vh}.lightbox-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:2rem;line-height:1;position:absolute;top:1rem;right:1.5rem}.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)}
