:root{--ivory:#f5f0e7;--paper:#ebe4d7;--wine:#461d28;--deep:#2b111a;--gold:#ab8c5e;--ink:#33262b;--muted:#7a706b;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:13px;line-height:1.8}body.covered{overflow:hidden}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:.96}h2 i{font-weight:400}button{border:0}img{max-width:100%}.eyebrow{font-size:9px;letter-spacing:.24em;font-weight:500}.cover{position:fixed;inset:0;z-index:100;display:grid;place-items:center;color:var(--ivory);isolation:isolate;overflow:hidden}.cover-panel{position:absolute;inset:0 50% 0 0;background:radial-gradient(ellipse at 110% 35%,#6d3242,transparent 65%),linear-gradient(100deg,#220e16,#49212e 40%,#34131f);z-index:-2;transition:transform 1.5s cubic-bezier(.76,0,.24,1)}.right-panel{inset:0 0 0 50%;background:radial-gradient(ellipse at 0 35%,#6d3242,transparent 65%),linear-gradient(80deg,#34131f,#49212e 60%,#220e16);border-left:1px solid #bb986548}.cover-frame{position:absolute;inset:25px;border:1px solid #c9ac7950;pointer-events:none;transition:opacity .6s}.cover-frame:before{content:'';position:absolute;inset:7px;border:1px solid #c9ac791c}.cover-grain{position:absolute;inset:0;opacity:.11;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}.cover-content{text-align:center;padding:36px 20px;display:flex;align-items:center;flex-direction:column;transition:opacity .7s,transform .9s}.cover-top{color:#d2bfa4;font-size:9px;margin-bottom:24px}.cover h1{font-size:clamp(50px,7.3vw,94px);letter-spacing:-.025em;white-space:nowrap}.cover h1 i{font-size:.64em;margin:0 .13em;color:#d5ba91}.seal{width:82px;height:82px;margin:27px 0 15px;border-radius:50%;padding:13px;background:var(--ivory);box-shadow:0 0 0 5px #ac8d5c30,0 0 0 6px #c0a27680,0 15px 30px #14060b44}.seal img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.cover-date{font-size:10px;letter-spacing:.36em;color:#cdb99d}.cover-date span{margin-left:6px}.guest{margin-top:35px;display:flex;flex-direction:column;gap:6px}.guest span{font-size:10px;color:#c5b7b3}.guest strong{font-family:var(--serif);font-size:24px;font-weight:400}.open-btn{margin-top:24px;padding:16px 24px;background:transparent;border:1px solid #baa078;color:#eadfce;font-size:9px;letter-spacing:.19em;min-width:225px;transition:background .3s}.open-btn span{padding-left:30px;font-size:17px}.open-btn:hover{background:#ffffff15}.cover-foot{font-size:7px;letter-spacing:.25em;color:#ad9693;margin-top:34px}.preview-pill{position:absolute;right:43px;bottom:40px;font-size:7px;letter-spacing:.17em;color:#b9a093}.cover.opening .left-panel{transform:translateX(-101%)}.cover.opening .right-panel{transform:translateX(101%)}.cover.opening .cover-content{opacity:0;transform:translateY(-20px);pointer-events:none}.cover.opening .cover-frame,.cover.opening .preview-pill,.cover.opening .cover-grain{opacity:0}.cover.closed{display:none}.masthead{height:90px;max-width:1360px;margin:auto;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ab8c5e35;letter-spacing:.23em;font-size:8px}.brand{font-family:var(--serif);font-size:26px;letter-spacing:0}.brand i{font-size:15px;color:var(--gold)}.header-link b{margin-left:20px;font-size:14px}.hero{position:relative;max-width:1360px;margin:auto;padding:80px 9% 90px;display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center;min-height:780px}.hero h2{font-size:clamp(64px,6.7vw,98px);letter-spacing:-.04em;margin:27px 0;color:var(--wine)}.hero h2 i{color:#8b6a4c}.hero-names{font-family:var(--serif);font-size:30px}.hero-names em{color:var(--gold);font-size:23px;margin:0 8px}.hero-caption{font-size:11px;line-height:1.95;color:var(--muted);margin:20px 0 34px}.text-link{font-size:8px;letter-spacing:.13em;border-bottom:1px solid #aa8b5c88;padding-bottom:10px;display:inline-flex;gap:30px}.hero-art{position:relative;padding:0 15px 45px;max-width:430px;width:100%;justify-self:end}.hero-arch{height:490px;border-radius:220px 220px 1px 1px;position:relative;background:#451c2b;overflow:hidden;display:flex;align-items:center;flex-direction:column;justify-content:center;box-shadow:0 24px 50px #271b2112;isolation:isolate}.arch-outline{position:absolute;border:1px solid #b799674f;border-radius:230px 230px 0 0;inset:-14px 0 31px;transform:rotate(3deg);pointer-events:none}.silk{position:absolute;inset:-30%;background:repeating-linear-gradient(105deg,transparent 0%,#dab1a422 13%,#18080c40 23%,#a46c5b22 29%,transparent 38%);filter:blur(12px);animation:silk 17s ease-in-out infinite alternate;z-index:-1}.light-beam{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 20%,#dbb49530,transparent 65%);z-index:-1}.hero-monogram{width:120px;mix-blend-mode:screen;filter:invert(1);opacity:.68}.arch-word{font-family:var(--serif);font-size:49px;line-height:.9;text-align:center;color:#e9d8bf;margin-top:30px}.arch-word i{font-size:.85em}.photo-label{font-size:6px;letter-spacing:.24em;color:#cab49a;position:absolute;bottom:23px}.art-caption{position:absolute;bottom:0;font-size:7px;letter-spacing:.18em;left:15px}.edition{position:absolute;writing-mode:vertical-rl;right:-14px;top:50%;font-size:6px;letter-spacing:.23em;color:var(--gold)}.hero-bottom{position:absolute;bottom:25px;left:9%;right:9%;display:flex;justify-content:space-between;font-size:7px;letter-spacing:.17em;color:var(--muted)}.hero-bottom b{padding-left:12px}.section{padding:90px 9%;scroll-margin-top:10px}.section-num{font-size:8px;letter-spacing:.2em;color:var(--gold);margin-bottom:50px}.intro{border-top:1px solid #ab8c5e33;text-align:center;padding-bottom:110px}.intro .section-num{text-align:left}.intro-body{max-width:600px;margin:auto}.small-star{font-size:36px;color:var(--gold)}.intro h2{font-size:clamp(51px,5vw,70px);margin:21px 0 26px;color:var(--wine)}.intro p{max-width:380px;margin:auto;color:var(--muted);font-size:11px}.couple-names{display:flex;align-items:center;justify-content:center;gap:55px;margin:55px 0 35px}.couple-names span{font-size:7px;letter-spacing:.25em;color:var(--muted)}.couple-names h3{font-size:49px;margin-top:12px}.couple-names>i{font-family:var(--serif);font-size:40px;color:var(--gold)}.fine-rule{width:80px;height:1px;background:var(--gold);margin:40px auto 28px}.intro .eyebrow{font-size:7px;color:var(--muted)}.celebration{background:var(--wine);color:var(--ivory);position:relative;overflow:hidden}.celebration:after{content:'';position:absolute;width:700px;height:700px;border:1px solid #d0b9910d;border-radius:50%;top:-300px;right:-300px;pointer-events:none}.celebration .section-num{color:#baa07b}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:45px}.section-heading h2{font-size:clamp(49px,5vw,72px)}.section-heading h2 i{color:#c2a47b}.section-heading p{font-size:10px;color:#b9a6a8;line-height:2;max-width:280px}.city-tabs{display:flex;margin-top:50px;border-bottom:1px solid #d6b98844}.city-tabs button{color:#a99095;background:transparent;flex:1;padding:17px 0;letter-spacing:.2em;font-size:9px;border-bottom:2px solid transparent}.city-tabs button span{color:#b89d7c;font-size:8px;margin-left:20px}.city-tabs button[aria-selected=true]{color:var(--ivory);border-color:#c6ad85;background:#ffffff04}.event-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:13%;align-items:center;padding:65px 4% 48px}.date-block{text-align:center;border-right:1px solid #ccb28b33;padding-right:60px}.date-block>span:first-child{font-size:8px;letter-spacing:.3em;color:#c4ac8c}.date-block>strong{display:block;font-family:var(--serif);font-size:170px;line-height:1.1;font-weight:400;letter-spacing:-.06em}.date-block>div{font-size:10px;letter-spacing:.3em}.date-block i{display:block;font-family:var(--serif);font-size:25px;letter-spacing:.07em;margin-top:15px;color:#c4ac8c}.date-ornament{display:block;font-size:25px;color:#b29469;margin-top:30px}.event-copy .eyebrow{font-size:7px;color:#c3a680}.event-copy h3{font-size:52px;margin:22px 0}.event-copy p{color:#bca9ad;font-size:10px;max-width:320px}.event-copy .schedule-note{font-size:9px;margin-top:18px;color:#d4c5c4}.event-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.solid-btn,.outline-btn{display:inline-flex;align-items:center;justify-content:center;gap:23px;font-size:8px;letter-spacing:.13em;padding:16px 20px;min-height:49px}.solid-btn{background:#d1b78f;color:#351722}.solid-btn:hover{background:#e1cba9}.outline-btn{border:1px solid #c3a78066;background:transparent;color:#d9c4a5}.countdown{display:flex;align-items:center;justify-content:center;gap:30px;border-top:1px solid #ceb58b33;padding-top:42px}.countdown>div{text-align:center;min-width:70px}.countdown strong{font-family:var(--serif);font-size:45px;font-weight:400;display:block;line-height:1.2;font-variant-numeric:tabular-nums}.countdown span{font-size:6px;letter-spacing:.24em;color:#bda88c}.countdown>i{font-family:var(--serif);color:#9a775d;font-size:25px;font-style:normal;margin-top:-17px}.countdown-note{text-align:center;font-family:var(--serif);font-size:17px;font-style:italic;color:#c7b49c;margin-top:24px}.countdown-note small{font-family:var(--sans);font-size:7px;color:#a98d94;font-style:normal}.moments-heading{display:flex;justify-content:space-between;align-items:end}.moments h2{font-size:clamp(55px,5.4vw,75px);color:var(--wine)}.moments-heading p{max-width:200px;font-size:10px;color:var(--muted)}.gallery{display:grid;grid-template-columns:1.12fr .88fr;gap:35px;margin-top:50px;align-items:end}.photo-slot{position:relative;background:#e3dbce;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:25px}.photo-slot>span,.photo-slot>small{position:relative;z-index:1;font-size:6px;letter-spacing:.19em;color:#8a7c6b}.photo-slot.tall{height:500px}.photo-slot.short{height:385px;margin-bottom:35px;background:#ded2c2}.photo-slot.wide{grid-column:1/-1;height:300px;background:linear-gradient(125deg,#c4b09c,#e2d7c9 50%,#b6a18d)}.placeholder-art{position:absolute;inset:0;display:grid;place-items:center}.placeholder-art i{font-family:var(--serif);font-size:43px;line-height:.95;font-weight:400;text-align:center;z-index:1;color:#776654}.placeholder-art i b{font-weight:400;font-size:.75em}.mini-arch{position:absolute;width:60%;height:75%;border-radius:200px 200px 0 0;border:1px solid #a68d6a44;top:15%}.mini-arch:before{content:'';position:absolute;inset:12px;border:1px solid #a68d6a22;border-radius:inherit}.paper-fold{position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,#b5a18a33 45%,#efe8da88 55%,transparent 58%)}footer{padding:100px 9% 140px;text-align:center}footer .eyebrow{font-size:7px;color:var(--muted)}footer h2{font-size:76px;color:var(--wine);margin:28px 0}.footer-logo{width:60px;mix-blend-mode:multiply;margin:10px 0 16px}footer p{font-family:var(--serif);font-size:28px}.footer-date{display:block;font-size:7px;letter-spacing:.24em;color:var(--gold);margin-top:15px}.back-top{display:block;font-size:7px;letter-spacing:.17em;color:var(--muted);margin-top:38px}.bottom-nav{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#f7f1e8ec;border:1px solid #ae916b4d;box-shadow:0 5px 35px #2f1e2315;backdrop-filter:blur(12px);z-index:20;display:flex;border-radius:50px;padding:8px 17px}.bottom-nav a{width:55px;text-align:center;color:#816d62;line-height:1.35;padding:4px 0;transition:color .3s}.bottom-nav a span{display:block;font-size:20px}.bottom-nav small{font-size:5px;letter-spacing:.14em}.bottom-nav a.active{color:var(--wine)}.experience-controls{position:fixed;right:24px;bottom:26px;display:flex;gap:8px;z-index:21}.experience-controls button{width:35px;height:35px;border-radius:50%;background:#f5f0e7e8;border:1px solid #ab8c5e50;color:var(--wine);font-size:15px;position:relative}.experience-controls button[aria-pressed=true]{box-shadow:inset 0 0 0 2px #ac8a6030}.experience-controls span{position:absolute;bottom:45px;font-size:6px;letter-spacing:.12em;right:0;background:var(--ivory);padding:4px 7px;opacity:0;pointer-events:none}.experience-controls button:hover span,.experience-controls button:focus-visible span{opacity:1}.reading-progress{position:fixed;left:0;top:0;height:2px;background:var(--gold);z-index:30;width:0}.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1.2s cubic-bezier(.2,.6,.25,1)}.reveal.visible{opacity:1;transform:translateY(0)}.no-motion *{animation:none!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.no-motion .reveal{opacity:1;transform:none}.noscript{position:fixed;inset:auto 20px 20px;background:var(--ivory);padding:20px;z-index:200}.event-swap{animation:event-in .55s ease}@keyframes silk{to{transform:translateX(8%) rotate(7deg)}}@keyframes event-in{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:1400px){.section{padding-left:max(9%,calc((100% - 1115px)/2));padding-right:max(9%,calc((100% - 1115px)/2))}}
@media(max-width:900px){.hero{gap:6%;padding:65px 7% 85px;min-height:700px}.hero h2{font-size:70px}.hero-arch{height:420px}.hero-monogram{width:90px}.arch-word{font-size:40px}.section{padding:70px 7%}.event-grid{gap:7%;padding:48px 0}.date-block{padding-right:30px}.date-block>strong{font-size:140px}.event-copy h3{font-size:44px}.experience-controls{right:15px}.section-heading p{max-width:210px}.gallery{gap:25px}}
@media(max-width:620px){.cover-frame{inset:16px}.cover h1{font-size:clamp(39px,10.7vw,65px);white-space:normal}.cover-content{width:100%;padding:36px 24px}.cover-top{font-size:7px;letter-spacing:.18em;margin-bottom:25px}.seal{width:74px;height:74px;margin-top:30px}.guest{margin-top:35px}.guest strong{font-size:23px}.cover-foot{font-size:6px;margin-top:30px}.preview-pill{bottom:30px;right:auto;font-size:6px}.masthead{height:70px;padding:0 7%}.masthead>span{font-size:6px;letter-spacing:.16em}.header-link{font-size:0}.header-link b{font-size:20px;margin:0}.brand{font-size:23px}.hero{grid-template-columns:1fr;gap:44px;padding:50px 9% 80px;min-height:0}.hero-copy{text-align:center}.hero .eyebrow{font-size:7px}.hero h2{font-size:69px;margin:24px 0}.hero-names{font-size:27px}.hero-caption{font-size:10px;margin:17px 0 24px}.text-link{font-size:6px;gap:20px}.hero-art{justify-self:center;max-width:320px;padding-bottom:32px}.hero-arch{height:365px}.arch-outline{inset:-12px 2px 20px}.hero-monogram{width:85px}.arch-word{font-size:43px;margin-top:20px}.art-caption{font-size:5px;bottom:0}.edition{font-size:5px;right:-9px}.hero-bottom{left:9%;right:9%;bottom:22px;font-size:5px}.section{padding:60px 9%}.section-num{font-size:6px;margin-bottom:35px}.intro{padding-bottom:70px}.intro h2{font-size:47px}.intro p{font-size:10px;max-width:290px}.couple-names{gap:28px;margin-top:40px}.couple-names h3{font-size:43px}.couple-names>i{font-size:29px}.couple-names span{font-size:6px}.section-heading,.moments-heading{display:block}.section-heading h2{font-size:47px}.section-heading p{margin-top:22px;font-size:9px;max-width:260px}.city-tabs{margin-top:35px}.city-tabs button{font-size:7px;letter-spacing:.12em}.city-tabs button span{margin-left:10px;font-size:6px}.event-grid{grid-template-columns:1fr;gap:26px;padding:38px 0}.date-block{border-right:0;padding-right:0;border-bottom:1px solid #cdb48e30;padding-bottom:20px;display:grid;grid-template-columns:1fr 1fr;max-width:240px;margin:auto;align-items:center}.date-block>span:first-child{grid-column:1/-1;font-size:7px}.date-block>strong{font-size:100px;line-height:1.1}.date-block>div{font-size:7px;letter-spacing:.2em}.date-block i{font-size:24px;margin-top:5px}.date-ornament{display:none}.event-copy{text-align:center}.event-copy h3{font-size:43px;margin:18px 0}.event-copy p{font-size:9px;margin:auto;max-width:275px}.event-copy .schedule-note{font-size:8px}.event-actions{justify-content:center;gap:9px;margin-top:24px}.solid-btn,.outline-btn{font-size:6px;gap:15px;padding:14px 16px;min-height:45px}.countdown{gap:12px;padding-top:30px}.countdown>div{min-width:40px}.countdown strong{font-size:35px}.countdown span{font-size:5px}.countdown>i{font-size:20px}.countdown-note{font-size:15px}.countdown-note small{font-size:6px}.moments h2{font-size:55px}.moments-heading p{font-size:9px;margin-top:20px}.gallery{gap:16px;margin-top:32px;grid-template-columns:1fr 1fr}.photo-slot{padding:14px}.photo-slot.tall{height:270px}.photo-slot.short{height:220px;margin-bottom:15px}.photo-slot.wide{height:190px}.photo-slot>span,.photo-slot>small{font-size:4px;letter-spacing:.12em}.placeholder-art i{font-size:26px}.photo-slot.wide i{font-size:34px}footer{padding:70px 9% 135px}footer h2{font-size:65px}.bottom-nav{bottom:15px;padding:7px 12px;left:44%;}.bottom-nav a{width:45px}.experience-controls{right:12px;bottom:20px;flex-direction:column;gap:5px}.experience-controls button{width:29px;height:29px;font-size:13px}.experience-controls span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.silk{animation:none}.reveal{transition:none;transform:none;opacity:1}.cover-panel,.cover-content{transition-duration:.1s}}

/* Original prewedding photography; image derivatives preserve the complete frame. */
.cover-panel{overflow:hidden}.cover-panel .cover-photo{position:absolute;inset:0;width:200%;max-width:none;height:100%;object-fit:cover;object-position:50% 52%;opacity:.75}.right-panel .cover-photo{left:-100%}.cover-panel:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#210e19a6,#38152469 45%,#1c0b14d6)}.cover h1{text-shadow:0 4px 35px #1c0c19}.guest strong{text-shadow:0 2px 18px #0008}.open-btn{background:#351a2480;backdrop-filter:blur(8px)}.cover-frame{z-index:1}.cover-content{z-index:2}.cover-foot{color:#e5d5cc}.cover-top,.cover-date{color:#ead8bd}.guest span{color:#e7dcd5}.preview-pill{z-index:3;color:#d7c6b7}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%;z-index:-2}.hero-photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#211b1c8f);z-index:-1}.hero-arch .arch-word{position:absolute;bottom:24px;right:24px;text-align:right;font-size:40px;color:#fff8ec}.hero-art{max-width:450px}.hero-arch{height:530px}body:not(.covered) .hero-photo{animation:photo-arrive 6s ease-out both}@keyframes photo-arrive{from{transform:scale(1.075)}to{transform:scale(1)}}
.gallery-hint{display:block;margin-top:10px;font-size:9px;letter-spacing:.06em;color:#8c7358}.gallery{grid-template-columns:1fr 1fr;gap:35px;align-items:start}.gallery-photo{display:block;position:relative;padding:0;width:100%;aspect-ratio:2/3;overflow:hidden;background:#ddd3c6;text-align:left;color:var(--ivory);isolation:isolate}.gallery-photo:nth-child(2){margin-top:90px}.gallery-photo:nth-child(5){margin-top:65px}.gallery-photo:nth-child(7){margin-top:50px}.gallery-photo.landscape{grid-column:1/-1;aspect-ratio:1.85}.gallery-photo img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.6,.25,1)}.gallery-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,#100b0c80);pointer-events:none}.gallery-photo:hover img,.gallery-photo:focus-visible img{transform:scale(1.045)}.gallery-caption{position:absolute;z-index:1;bottom:25px;left:25px;right:20px}.gallery-caption small{display:block;font-size:7px;letter-spacing:.19em;margin-bottom:6px}.gallery-caption>span{font-family:var(--serif);font-size:30px;line-height:1.1}.expand-icon{position:absolute;right:18px;top:17px;z-index:1;width:32px;height:32px;border:1px solid #fff6;border-radius:50%;display:grid;place-items:center;background:#2d1e2233;font-size:17px;backdrop-filter:blur(5px)}
body.viewing-photo{overflow:hidden}#photo-dialog{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;border:0;padding:20px 32px;background:#21151ef5;color:var(--ivory)}#photo-dialog::backdrop{background:#21151e}#photo-dialog[open]{display:flex;flex-direction:column;animation:lightbox-in .35s ease}.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.13em;min-height:48px}#close-photo{background:transparent;color:var(--ivory);font-size:10px;letter-spacing:.15em;min-height:48px;padding:0 10px}#close-photo span{font-size:28px;vertical-align:middle;margin-left:15px}.lightbox-stage{display:grid;grid-template-columns:55px minmax(0,1fr) 55px;gap:15px;align-items:center;flex:1;min-height:0}#full-photo{display:block;max-width:100%;max-height:calc(100dvh - 150px);width:auto;height:auto;justify-self:center;object-fit:contain;touch-action:pan-y}.lightbox-stage button{border:1px solid #cdb69a55;width:48px;height:48px;border-radius:50%;background:transparent;color:var(--ivory);font-size:24px}.lightbox-stage button:hover{background:#ffffff12}#photo-caption{text-align:center;font-family:var(--serif);font-size:25px;margin-top:16px;min-height:30px}@keyframes lightbox-in{from{opacity:0}to{opacity:1}}
@media(max-width:900px){.hero-arch{height:470px}.gallery{gap:24px}.gallery-caption>span{font-size:26px}}
@media(max-width:620px){.hero-arch{height:405px}.hero-arch .arch-word{font-size:33px;bottom:20px;right:18px}.gallery{gap:14px}.gallery-photo:nth-child(2){margin-top:40px}.gallery-photo:nth-child(5){margin-top:30px}.gallery-photo:nth-child(7){margin-top:24px}.gallery-photo.landscape{aspect-ratio:1.5}.gallery-caption{bottom:13px;left:12px;right:8px}.gallery-caption small{font-size:5px;letter-spacing:.08em;margin-bottom:4px}.gallery-caption>span{font-size:20px}.expand-icon{width:25px;height:25px;right:10px;top:10px;font-size:14px}.gallery-hint{font-size:10px}#photo-dialog{padding:12px 12px 20px}.lightbox-stage{grid-template-columns:36px minmax(0,1fr) 36px;gap:4px}.lightbox-stage button{width:36px;height:44px;border-radius:30px;font-size:20px}#full-photo{max-height:calc(100dvh - 155px)}#photo-caption{font-size:23px}.lightbox-toolbar{font-size:8px}.cover-panel .cover-photo{object-position:72% 50%}}
@media(prefers-reduced-motion:reduce){.hero-photo{animation:none!important}.gallery-photo img{transition:none}.gallery-photo:hover img{transform:none}#photo-dialog[open]{animation:none}}
@media(max-width:620px){.cover-top{font-size:8px}.guest span{font-size:11px}.cover-foot{font-size:7px}.preview-pill{font-size:7px}.hero .eyebrow{font-size:8px}.hero-caption,.intro p{font-size:12px}.text-link,.section-num{font-size:8px}.hero-bottom{font-size:7px}.art-caption,.photo-label{font-size:7px}.couple-names span,.intro .eyebrow{font-size:8px}.section-heading p,.event-copy p,.moments-heading p{font-size:12px}.city-tabs button{font-size:9px}.city-tabs button span{font-size:8px}.date-block>span:first-child,.date-block>div{font-size:9px}.event-copy .eyebrow{font-size:8px}.event-copy .schedule-note{font-size:10px}.solid-btn,.outline-btn{font-size:8px}.countdown span{font-size:7px}.countdown-note small{font-size:8px}.photo-slot>span,.photo-slot>small{font-size:6px}footer .eyebrow,.footer-date,.back-top{font-size:8px}.bottom-nav small{font-size:7px}.bottom-nav{left:43%;padding:7px 10px}.bottom-nav a{width:45px}}

/* Compact background-audio controls, independent of the invitation layout. */
.experience-controls{z-index:111}
.experience-controls button[hidden]{display:none}
.experience-controls button{min-width:44px;min-height:44px}
#sound-button b{font-weight:400;font-size:17px;line-height:1}
body.covered .experience-controls{top:14px;bottom:auto;right:14px;flex-direction:row}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Gentle movement on original photographs; never modifies the image assets. */
.cover:not(.closed) .cover-photo{animation:cover-drift 18s ease-in-out infinite alternate;transform-origin:50% 50%}
@keyframes cover-drift{from{transform:scale(1.02)}to{transform:scale(1.09) translateY(-1%)}}
body:not(.covered) .hero-art .hero-photo{animation:hero-drift 14s ease-in-out infinite alternate;animation-play-state:paused;translate:var(--pointer-x,0px) var(--photo-y,0px);transition:translate 1s ease-out}
body:not(.covered) .hero-art.photo-in-view .hero-photo{animation-play-state:running}
@keyframes hero-drift{from{transform:scale(1.08);object-position:50% 52%}to{transform:scale(1.14);object-position:52% 49%}}
.gallery-photo{--photo-zoom:1.1}
.gallery-photo img{transform:translate3d(var(--pointer-x,0px),calc(var(--photo-y,0px) + var(--pointer-y,0px)),0) scale(var(--photo-zoom));transition:transform 1.15s cubic-bezier(.2,.6,.25,1)}
.gallery-photo:hover img,.gallery-photo:focus-visible img{transform:translate3d(var(--pointer-x,0px),calc(var(--photo-y,0px) + var(--pointer-y,0px)),0) scale(var(--photo-zoom))}
@media(hover:hover) and (pointer:fine){.gallery-photo:hover{--photo-zoom:1.17}.gallery-photo:hover .gallery-caption{translate:0 -6px}.gallery-photo:hover .expand-icon{rotate:45deg;background:#f5f0e7;color:var(--wine)}}
.gallery-caption{transition:translate .6s ease}.expand-icon{transition:rotate .6s ease,background .4s,color .4s}
.gallery-photo:focus-visible{--photo-zoom:1.17}
.photo-thumbnails{display:flex;gap:7px;max-width:100%;overflow-x:auto;flex-shrink:0;align-self:center;padding:8px 5px 4px;scrollbar-width:thin;scrollbar-color:#ab8c5e55 transparent}
.photo-thumbnails button{flex:0 0 48px;width:48px;height:56px;border:1px solid transparent;padding:3px;background:transparent;opacity:.5;transition:opacity .3s,border-color .3s}
.photo-thumbnails button[aria-current=true]{opacity:1;border-color:var(--gold)}
.photo-thumbnails button:hover,.photo-thumbnails button:focus-visible{opacity:1}
.photo-thumbnails img{width:100%;height:100%;object-fit:cover;display:block}
.lightbox-hint{text-align:center;font-size:7px;letter-spacing:.15em;color:#cab49a;margin-top:5px;flex-shrink:0}
#full-photo{max-height:calc(100dvh - 240px)}
#photo-caption{margin-top:10px;flex-shrink:0}
body.photos-paused .cover-photo,body.photos-paused .hero-art .hero-photo{animation-play-state:paused!important}
body.no-motion .cover-photo,body.no-motion .hero-art .hero-photo,body.no-motion .gallery-photo img{animation:none!important;transform:none!important;translate:none!important;transition:none!important}
body.no-motion .gallery-caption,body.no-motion .expand-icon{transition:none!important;translate:none!important;rotate:none!important}
@media(prefers-reduced-motion:reduce){.cover-photo,.hero-art .hero-photo,.gallery-photo img{animation:none!important;transform:none!important;translate:none!important;transition:none!important}.gallery-caption,.expand-icon{transition:none!important;translate:none!important;rotate:none!important}}
@media(max-width:620px){.photo-thumbnails{gap:5px}.photo-thumbnails button{flex-basis:42px;width:42px;height:49px}.lightbox-hint{font-size:6px}.lightbox-stage{overflow:hidden}#full-photo{max-height:calc(100dvh - 235px)}}

/* Four announcement sections, without an RSVP destination. */
@media(max-width:620px){.bottom-nav{left:46%}}
