/* ===== style.css ===== */
:root{--paper:#F8F4EE;--sand:#F3E1CF;--gold:#957634;--olive:#7D8158;--ink:#2C2C1E;--muted:#6c6b56;--line:rgba(44,44,30,.2);--serif:'Bellefair',Georgia,'Times New Roman',serif;--sans:'DM Sans',Arial,sans-serif;--gutter:clamp(24px,6.25vw,112px);--header:84px;--ease:cubic-bezier(.22,1,.36,1)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px;background:var(--paper)}body{margin:0;color:var(--ink);font:400 15px/1.8 var(--sans);background:var(--paper);overflow-x:clip;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:none;border:0}button:disabled{cursor:not-allowed;opacity:.5}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h2,h3{font-family:var(--serif);line-height:1.05}p{max-width:65ch}::selection{background:var(--olive);color:var(--paper)}:focus-visible{outline:2px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:16px;z-index:300;background:var(--ink);color:var(--paper);padding:12px 20px}.skip-link:focus{top:12px}
.eyebrow{font-size:10px;line-height:1.65;letter-spacing:.21em;text-transform:uppercase;font-weight:550}.container{max-width:1600px;margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:118px;position:relative}.section-no{font:400 13px/1 var(--serif);color:var(--gold);display:flex;align-items:center;gap:18px;margin-bottom:35px}.section-no::after{content:'';width:48px;height:1px;background:var(--gold);opacity:.55}.btn{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:14px 23px;border:1px solid var(--line);font-size:10px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;font-weight:550;transition:background .25s,color .25s,border-color .25s;position:relative}.btn:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn-solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-solid:hover{background:var(--olive);border-color:var(--olive)}.text-link{display:inline-flex;align-items:center;gap:20px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;padding-block:12px 8px;border-bottom:1px solid currentColor;line-height:1.6;font-weight:550;transition:gap .25s}.text-link:hover{gap:30px}.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.arrow{font-size:19px;font-weight:400;line-height:1}
.site-header{position:fixed;inset:0 0 auto;z-index:80;height:var(--header);background:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid transparent;transition:border-color .3s}.scrolled .site-header{border-color:var(--line)}.brand{display:flex;align-items:center;gap:16px;min-height:44px}.brand img{width:64px;height:40px;object-fit:contain}.brand span{font-size:9px;letter-spacing:.15em;border-left:1px solid var(--line);padding-left:16px}.header-links{display:flex;align-items:center;gap:32px}.header-links>a:not(.btn){font-size:10px;letter-spacing:.09em;position:relative}.header-links>a:not(.btn)::after{content:'';position:absolute;bottom:-7px;left:0;right:100%;height:1px;background:var(--gold);transition:right .3s}.header-links>a:hover::after{right:0}.header-links .btn{min-height:40px;padding:11px 18px;font-size:9px;gap:20px}.menu-toggle{display:none;width:44px;height:44px;padding:12px}.menu-toggle span{display:block;height:1px;background:var(--ink);margin:6px 0;transition:transform .2s}.mobile-nav{position:fixed;z-index:75;inset:var(--header) 0 auto;background:var(--paper);padding:20px 25px 35px;border-bottom:1px solid var(--line)}.mobile-nav a{display:block;font:30px/1.7 var(--serif)}
/* One persistent player: scrolling changes only its frame, never its source. */
.film-shell{position:fixed;z-index:2;top:calc(var(--header) + 3px);left:18px;width:calc(100vw - 36px);height:calc(100svh - var(--header) - 21px);background:var(--ink);overflow:hidden;border-radius:2px;transform:translateZ(0);transition:top .95s var(--ease),left .95s var(--ease),width .95s var(--ease),height .95s var(--ease),border-radius .95s var(--ease),box-shadow .95s var(--ease),opacity .4s}.film-shell.is-docked{z-index:50;left:calc(100vw - 308px - 24px);top:calc(100svh - 173.25px - 24px);width:308px;height:173.25px;box-shadow:0 10px 40px #0003;border:1px solid #f8eeee60;border-radius:4px}.film-shell.is-docked.provider-youtube{width:356px;height:202px;left:calc(100vw - 356px - 24px);top:calc(100svh - 202px - 24px)}.film-shell.dismissed.is-docked{opacity:0;pointer-events:none;visibility:hidden}.poster-layer,.media-host,.film-shade{position:absolute;inset:0}.poster-layer{z-index:0}.poster-layer img{width:100%;height:100%;object-fit:cover;object-position:50% 46%;transform:scale(1.045);animation:photo-drift 24s ease-in-out infinite alternate}.poster-layer::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#2c2c1e18 0%,#2c2c1e05 30%,#2c2c1e38 100%)}.media-host{z-index:1;background:transparent}.media-host video,.media-host iframe{display:block;width:100%;height:100%;border:0;object-fit:cover}.media-host iframe{background:var(--ink)}.film-shade{z-index:2;background:linear-gradient(180deg,rgba(13,23,18,.13),rgba(13,23,18,.02) 30%,rgba(13,23,18,.23) 56%,rgba(13,23,18,.43));pointer-events:none;transition:opacity .5s}.film-shell.is-docked .film-shade{opacity:0}.film-controls{position:absolute;z-index:6;right:20px;top:20px;display:flex;align-items:center;gap:8px;color:var(--paper)}.round-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1e261b65;color:var(--paper);border:1px solid #f8eeee77;backdrop-filter:blur(8px);padding:0;transition:background .2s}.round-btn:hover{background:var(--ink)}.film-close{display:none}.film-shell.is-docked .film-close{display:grid}.film-shell.is-docked .film-controls{top:9px;right:9px;gap:5px}.film-shell.is-docked .round-btn{width:28px;height:28px}.film-shell.is-docked .round-btn .icon{width:14px;height:14px}.film-caption{position:absolute;left:13px;bottom:10px;z-index:6;display:none;font-size:8px;letter-spacing:.16em;line-height:1.4;color:var(--paper);text-shadow:0 1px 5px #000;background:#2c2c1e80;padding:5px 8px}.film-shell.is-docked .film-caption{display:block}.video-reopen{position:fixed;z-index:49;right:20px;bottom:24px;background:var(--ink);color:var(--paper);border:1px solid #f8eeee60;padding:12px 16px;align-items:center;gap:12px;font-size:9px;letter-spacing:.12em;display:none}.video-reopen.visible{display:flex}.play-fallback{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;pointer-events:none}.play-fallback button{pointer-events:auto;border-radius:50%;width:58px;height:58px;background:#f8eeeeee;border:1px solid var(--paper);color:var(--ink)}
.hero{position:relative;z-index:3;height:100svh;min-height:700px;padding-top:var(--header);pointer-events:none}.hero a,.hero button{pointer-events:auto}.hero-content{position:relative;width:100%;height:100%;color:var(--paper);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:40px 56px 140px;will-change:opacity,transform}.hero-top{position:absolute;top:32px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:10px}.hero-top img{width:35px;height:48px;object-fit:contain;filter:brightness(0) invert(1);opacity:.95}.hero-top .eyebrow{font-size:8px;letter-spacing:.28em}.hero .invitation{font-family:var(--serif);font-size:23px;letter-spacing:.02em;margin-bottom:15px;text-shadow:0 2px 12px #0003}.hero h1{font-family:var(--serif);font-size:clamp(78px,10vw,174px);line-height:.93;letter-spacing:-.025em;white-space:nowrap;text-shadow:0 2px 24px #0001;font-weight:400}.hero h1 .amp{font-size:.47em;vertical-align:12%;padding:0 .07em;font-style:italic}.hero-date{display:flex;gap:16px;align-items:center;margin-top:30px;font-size:10px;letter-spacing:.23em;font-weight:500}.hero-date::before,.hero-date::after{content:'';width:40px;height:1px;background:#f8eeee80}.hero-bottom{position:absolute;bottom:49px;left:56px;right:56px;display:flex;justify-content:space-between;align-items:end;color:var(--paper)}.hero-location{font-size:10px;letter-spacing:.06em;text-align:left;line-height:1.8}.hero-location span{display:block;font-size:8px;letter-spacing:.15em;opacity:.82}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:10px;position:absolute;bottom:41px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:.18em;color:var(--paper);background:none;padding:12px 10px 0}.scroll-cue span:last-child{width:1px;height:31px;overflow:hidden;background:#f8eeee45;position:relative}.scroll-cue span:last-child::after{content:'';display:block;width:1px;height:18px;background:var(--paper);animation:scroll-line 1.8s ease-in-out infinite}.hero-note{font-family:var(--serif);font-size:17px;letter-spacing:.025em;line-height:1.3;text-align:right;max-width:160px}main{position:relative;z-index:4;background:var(--paper)}
.paper-texture{position:relative}.paper-texture::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.81' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23857f65' opacity='.35' d='M0 0h220v220H0z' filter='url(%23grain)'/%3E%3C/svg%3E")}.welcome{padding-block:118px 110px}.welcome-grid{display:grid;grid-template-columns:1.15fr .8fr;gap:12%;align-items:center}.welcome h2{font-size:clamp(52px,5.6vw,90px);letter-spacing:-.025em;line-height:.98}.welcome h2 em{color:var(--gold);font-style:normal}.welcome .lead{font-family:var(--serif);font-size:27px;line-height:1.25;margin-bottom:23px;max-width:25ch}.welcome .body-copy{font-size:13px;line-height:1.95;color:var(--muted);max-width:46ch}.signature{font-family:var(--serif);font-size:26px;color:var(--gold);margin-top:27px}.welcome-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:70px;border-top:1px solid var(--line);padding-top:23px}.welcome-bottom span{font-size:9px;letter-spacing:.1em}.welcome-bottom .palm-inline{width:21px;height:38px;object-fit:contain;opacity:.7}
.weekend{background:var(--ink);color:var(--paper);overflow:hidden}.weekend .section-no{color:var(--sand)}.weekend .section-no::after{background:var(--sand)}.weekend .eyebrow{color:var(--sand)}.weekend-bg{position:absolute;left:-150px;bottom:-240px;width:590px;opacity:.075;transform:rotate(-12deg);pointer-events:none}.weekend-head{display:grid;grid-template-columns:1fr .63fr;align-items:end;gap:12%;padding-bottom:70px}.weekend h2{font-size:clamp(52px,5.5vw,86px);line-height:1.02;letter-spacing:-.02em}.weekend-head p{font-size:13px;line-height:1.9;color:#f3e1cfb8;max-width:37ch;padding-bottom:5px}.days{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #f3e1cf3b;border-bottom:1px solid #f3e1cf3b;position:relative}.day{padding:36px 30px 40px 0;min-height:282px;position:relative}.day+.day{padding-left:35px;border-left:1px solid #f3e1cf3b}.day:last-child{padding-right:0}.day-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px;gap:10px}.day-number{font:42px/1 var(--serif);color:var(--sand)}.day-label{font-size:9px;letter-spacing:.17em;color:#f3e1cfc2;text-transform:uppercase}.day h3{font-size:34px;margin-bottom:18px;color:var(--paper)}.day p{color:#f3e1cfb8;font-size:12px;line-height:1.9;max-width:31ch}.day-foot{font-size:8px;letter-spacing:.08em;margin-top:27px;color:#f3e1cf90;display:block}.day-highlight::before{content:'';position:absolute;left:0;top:-1px;right:0;height:2px;background:var(--gold)}.weekend-note{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:25px;font-size:10px;line-height:1.7;color:#f3e1cfa0}.weekend-note .eyebrow{font-size:8px;letter-spacing:.1em;white-space:nowrap}
.place{padding-bottom:110px}.place-header{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:43px}.place h2{font-size:clamp(48px,5.2vw,82px);letter-spacing:-.03em}.place-header p{font-size:12px;line-height:1.9;max-width:34ch;color:var(--muted);padding-bottom:8px}.place-picture{height:480px;position:relative;overflow:hidden;background:var(--sand)}.place-picture>img{width:100%;height:100%;object-fit:cover;object-position:center 58%;transform:scale(1.02);transition:transform 2s var(--ease)}.place-picture:hover>img{transform:scale(1.055)}.place-picture::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#2c2c1e55,transparent 55%)}.place-picture figcaption{position:absolute;bottom:21px;left:27px;z-index:1;color:var(--paper);font-size:8px;letter-spacing:.09em}.place-card{display:grid;grid-template-columns:1fr .8fr;gap:70px;padding:48px 0 0;align-items:center}.place-title{display:flex;gap:28px;align-items:center}.place-title>img{width:42px;max-height:80px;object-fit:contain}.place-title h3{font-size:43px;line-height:1.05}.place-title .eyebrow{color:var(--gold);font-size:9px;letter-spacing:.16em;margin-top:14px}.place-directions{border-left:1px solid var(--line);padding-left:45px}.place-directions p{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:12px}
.lodging{background:var(--sand);border-top:1px solid #95763420;border-bottom:1px solid #95763420}.lodging-head{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:52px}.lodging h2{font-size:clamp(50px,5.1vw,80px);letter-spacing:-.025em}.lodging-head p{font-size:13px;color:var(--muted);line-height:1.9;max-width:38ch;padding-bottom:5px}.stay-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.stay{padding:38px 40px 33px;border:1px solid #95763455;display:flex;flex-direction:column;align-items:flex-start;position:relative;min-height:350px}.stay-resort{background:var(--olive);color:var(--paper);border-color:var(--olive)}.stay-index{display:flex;align-items:center;gap:14px;margin-bottom:28px;font-size:9px;letter-spacing:.13em}.stay-index span{font:20px var(--serif)}.stay h3{font-size:39px;margin-bottom:20px;max-width:18ch;line-height:1.05}.stay>p{font-size:12px;line-height:1.9;color:var(--muted);max-width:40ch;margin-bottom:25px}.stay-resort>p{color:#f8eeeedd}.stay .status{margin-top:auto;font-size:9px;border-top:1px solid #95763455;padding-top:15px;width:100%;line-height:1.7;color:var(--muted);letter-spacing:.03em}.stay-resort .status{border-color:#f8eeee55;color:var(--paper)}.status::before{content:'';display:inline-block;width:4px;height:4px;background:currentColor;vertical-align:2px;border-radius:50%;margin-right:8px}.booking-note{font-size:11px;color:var(--muted);max-width:80ch;margin-top:27px;display:flex;align-items:flex-start;gap:12px}.booking-note .icon{width:16px;height:16px;margin-top:2px}
.presence{padding-block:128px 126px;text-align:center;overflow:hidden}.presence .eyebrow{color:var(--gold);margin-bottom:27px}.presence-illustration{width:128px;height:129px;object-fit:contain;margin:0 auto 31px}.presence h2{font-size:clamp(54px,6.1vw,98px);line-height:.98;letter-spacing:-.025em;margin-bottom:31px}.presence h2 em{color:var(--gold);font-style:normal}.presence p{font-size:13px;line-height:1.95;color:var(--muted);max-width:57ch;margin:auto}.presence .signature{font-size:26px;margin-top:26px}.presence-orbit{width:650px;height:650px;position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);border:1px solid #95763412;border-radius:50%;pointer-events:none}
.gallery{background:var(--ink);color:var(--paper);padding-bottom:100px;overflow:hidden}.gallery-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:48px}.gallery .section-no{color:var(--sand)}.gallery .section-no::after{background:var(--sand)}.gallery h2{font-size:clamp(50px,5.2vw,82px);letter-spacing:-.025em}.gallery-head p{font-family:var(--serif);font-size:23px;line-height:1.3;max-width:18ch;color:var(--sand)}.gallery-grid{display:grid;grid-template-columns:1fr 1.15fr .85fr;gap:24px;align-items:start}.gallery-item{background:var(--paper);padding:10px 10px 29px;transform:rotate(-3deg);position:relative;transition:transform .6s var(--ease);width:100%;text-align:left}.gallery-item:nth-child(2){transform:rotate(2.5deg);margin-top:39px}.gallery-item:nth-child(3){transform:rotate(-3deg);margin-top:14px}.gallery-item:hover,.gallery-item:focus-visible{transform:rotate(0) translateY(-8px);z-index:2}.gallery-item img{width:100%;height:330px;object-fit:cover;object-position:48% 50%}.gallery-item:nth-child(2) img{height:390px;object-position:50% 50%}.gallery-item:nth-child(3) img{height:285px;object-position:38% 45%}.gallery-item>span{display:flex;justify-content:space-between;align-items:center;color:var(--gold);margin-top:18px;font:18px var(--serif);padding-inline:9px}.gallery-item>span small{font:8px var(--sans);letter-spacing:.12em}.gallery-note{font-size:8px;letter-spacing:.12em;text-align:center;color:#f3e1cf90;margin-top:55px}
.rsvp{padding-block:110px}.rsvp-card{display:grid;grid-template-columns:.72fr 1fr;min-height:400px;border:1px solid #95763455;position:relative}.rsvp-art{background:var(--sand);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px;position:relative;overflow:hidden}.rsvp-art::after{content:'';position:absolute;inset:15px;border:1px solid #95763444;pointer-events:none}.rsvp-art img{height:150px;width:auto;margin-bottom:27px}.rsvp-art .eyebrow{color:var(--gold);font-size:9px;letter-spacing:.2em}.rsvp-body{padding:55px 60px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.rsvp-body .eyebrow{color:var(--gold);margin-bottom:19px}.rsvp h2{font-size:61px;letter-spacing:-.025em;margin-bottom:23px}.rsvp-body p{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:24px;max-width:42ch}.rsvp-body .micro-note{font-size:9px;line-height:1.6;margin-top:14px;margin-bottom:0;max-width:50ch}.faq{padding-block:0 106px}.faq-grid{display:grid;grid-template-columns:.7fr 1fr;gap:85px}.faq h2{font-size:48px;letter-spacing:-.025em;max-width:9ch}.faq .eyebrow{color:var(--gold);margin-bottom:20px}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;padding:23px 0;display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:12px;line-height:1.6;font-weight:500}summary::-webkit-details-marker{display:none}summary::after{content:'+';font:24px var(--serif);color:var(--gold);flex-shrink:0}details[open] summary::after{content:'−'}details p{font-size:12px;line-height:1.9;color:var(--muted);padding:0 38px 24px 0}
.footer{background:var(--ink);color:var(--paper);text-align:center;padding:72px var(--gutter) 26px;position:relative;z-index:4;overflow:hidden}.footer-logo{height:93px;width:auto;margin:0 auto 30px}.footer .eyebrow{font-size:9px;color:var(--sand);letter-spacing:.19em}.footer-names{font-family:var(--serif);font-size:clamp(52px,9.9vw,160px);line-height:1.1;margin:27px auto 38px;letter-spacing:-.02em;white-space:nowrap}.footer-names span{font-style:italic;font-size:.55em;vertical-align:10%}.footer-line{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #f8eeee25;padding-top:22px;color:#f3e1cf99;font-size:8px;letter-spacing:.07em}.footer-line a{display:flex;align-items:center;gap:12px}.footer-bottom-space{height:25px}
/* Preview-only tools; set preview:false in script.js before publishing. */
.preview-toolbar{position:fixed;z-index:65;left:18px;bottom:18px;display:flex;align-items:center;background:var(--paper);border:1px solid #95763455;border-radius:30px;box-shadow:0 3px 20px #0000000d;overflow:hidden;font-size:8px;line-height:1;letter-spacing:.1em;color:var(--ink)}.preview-badge{padding:13px 13px 13px 16px;color:var(--gold);border-right:1px solid var(--line);font-weight:600}.preview-toolbar button{padding:12px 15px;display:flex;gap:8px;align-items:center;font-size:9px}.preview-toolbar button:hover{background:var(--sand)}.preview-toolbar .icon{width:13px;height:13px}
.dialog{border:1px solid #95763466;padding:0;background:var(--paper);color:var(--ink);max-width:560px;width:calc(100% - 36px);max-height:calc(100svh - 40px);overflow-y:auto;box-shadow:0 25px 100px #0004}.dialog::backdrop{background:#191d13a6;backdrop-filter:blur(7px)}.dialog-inner{padding:44px 40px 35px}.dialog-close{position:absolute;right:12px;top:12px;width:33px;height:33px;display:grid;place-items:center}.dialog-close:hover{background:var(--sand)}.dialog .eyebrow{color:var(--gold);font-size:9px;margin-bottom:15px}.dialog h2{font-size:43px;margin-bottom:20px;line-height:1.05}.dialog p{font-size:12px;line-height:1.85;color:var(--muted)}.dialog label{display:block;font-size:11px;margin:25px 0 8px;font-weight:500}.dialog input[type=text],.dialog input[type=url]{width:100%;min-height:48px;background:transparent;border:1px solid #95763466;padding:11px 12px;color:var(--ink);border-radius:0;font-size:12px}.dialog .btn{margin-top:15px}.dialog .helper{font-size:10px;margin-top:10px;line-height:1.7}.dialog-divider{display:flex;align-items:center;gap:16px;font-size:9px;color:var(--muted);margin-top:23px}.dialog-divider::before,.dialog-divider::after{content:'';height:1px;background:var(--line);flex:1}.local-file-btn{display:flex!important;gap:10px;align-items:center;justify-content:center;width:100%;padding:13px;border:1px dashed #95763466;cursor:pointer;margin:15px 0!important}.local-file-btn:hover{background:var(--sand)}.dialog-status{min-height:22px;font-size:11px!important;color:var(--gold)!important;margin-top:12px}.dialog-small-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:21px;border-top:1px solid var(--line);padding-top:13px}.dialog-small-actions button{font-size:9px;text-decoration:underline;text-underline-offset:4px;color:var(--muted)}.brief-note{padding:14px 16px;background:var(--sand);margin-top:23px;font-size:10px;line-height:1.8;color:var(--muted)}.rsvp-dialog .dialog-inner{text-align:center;padding-block:47px 40px}.rsvp-dialog img{width:63px;height:auto;margin:0 auto 28px}.rsvp-dialog p{margin-inline:auto}.rsvp-dialog .btn{margin-top:27px}.lightbox{max-width:1100px;background:var(--ink);border:0;overflow:visible;width:calc(100% - 48px)}.lightbox img{max-height:83svh;width:100%;object-fit:contain}.lightbox .dialog-close{right:10px;top:10px;background:var(--paper);border-radius:50%;z-index:2}.lightbox-caption{font:16px var(--serif);text-align:center;color:var(--sand);padding:16px}.toast{position:fixed;z-index:200;left:50%;bottom:30px;transform:translateX(-50%) translateY(30px);opacity:0;pointer-events:none;background:var(--ink);color:var(--paper);border:1px solid #95763480;max-width:calc(100% - 36px);width:max-content;padding:14px 24px;box-shadow:0 5px 30px #0002;font-size:11px;transition:opacity .3s,transform .3s;text-align:center}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
.reveal{opacity:1}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.js .reveal.in-view{opacity:1;transform:none}.delay-1{transition-delay:.1s!important}.delay-2{transition-delay:.2s!important}@keyframes photo-drift{from{transform:scale(1.045) translate3d(0,0,0)}to{transform:scale(1.11) translate3d(-.4%,.4%,0)}}@keyframes scroll-line{0%{transform:translateY(-20px)}60%,100%{transform:translateY(35px)}}
@media(min-width:1800px){.hero-content{padding-bottom:165px}.hero-top{top:45px}}
@media(max-width:1100px){:root{--gutter:48px}.header-links{gap:20px}.brand span{display:none}.hero h1{font-size:10.6vw}.welcome-grid{gap:8%}.day{padding-right:24px}.day+.day{padding-left:24px}.day h3{font-size:30px}.place-picture{height:400px}.rsvp-body{padding:45px 40px}.rsvp h2{font-size:52px}.gallery-item img{height:280px}.gallery-item:nth-child(2) img{height:325px}.gallery-item:nth-child(3) img{height:245px}.faq-grid{gap:55px}}
@media(max-width:760px){
:root{--header:68px;--gutter:24px}html{scroll-padding-top:84px}.site-header{padding:0 22px}.brand img{width:57px;height:36px}.brand span{display:block;font-size:8px}.header-links{display:none}.menu-toggle{display:block}.mobile-nav[hidden]{display:none}.menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.film-shell{left:10px;width:calc(100vw - 20px);top:calc(var(--header) + 1px);height:calc(100svh - var(--header) - 11px)}.film-shell.is-docked{width:192px;height:108px;left:calc(100vw - 192px - 12px);top:calc(100svh - 108px - 14px);border-radius:3px}.film-shell.is-docked.provider-youtube{width:226px;height:202px;left:calc(100vw - 226px - 12px);top:calc(100svh - 202px - 14px)}.film-shell.is-docked .film-caption{font-size:6px;bottom:6px;left:7px;padding:4px 5px}.film-shell.is-docked .film-controls{top:7px;right:7px}.film-shell.is-docked .round-btn{width:26px;height:26px}.film-controls{top:13px;right:13px}.poster-layer img{object-position:45% center}
.hero{min-height:600px;height:100svh}.hero-content{padding:30px 26px 130px;justify-content:flex-end}.hero-top{top:24px;gap:8px}.hero-top img{width:28px;height:40px}.hero-top .eyebrow{font-size:7px;letter-spacing:.17em}.hero .invitation{font-size:20px;line-height:1.2;margin-bottom:22px}.hero h1{display:flex;flex-direction:column;align-items:center;font-size:clamp(64px,18vw,115px);line-height:.8;white-space:normal;gap:3px;letter-spacing:-.03em}.hero h1 .amp{font-size:28px;line-height:1;margin-block:8px 5px;vertical-align:baseline}.hero-date{margin-top:28px;font-size:8px;gap:14px;letter-spacing:.2em}.hero-date::before,.hero-date::after{width:27px}.hero-bottom{bottom:38px;left:30px;right:30px}.hero-location{font-size:8px;letter-spacing:.02em;max-width:120px}.hero-location span{font-size:7px;letter-spacing:.04em}.hero-note{font-size:14px;max-width:110px}.scroll-cue{bottom:24px;font-size:7px;gap:8px;width:105px}.scroll-cue span:last-child{height:24px}
.section{padding-block:76px}.section-no{margin-bottom:25px}.welcome-grid{grid-template-columns:1fr;gap:35px}.welcome h2{font-size:57px;max-width:11ch}.welcome .lead{font-size:25px;max-width:24ch;margin-bottom:18px}.welcome .body-copy{font-size:12px;max-width:44ch}.signature{font-size:25px;margin-top:22px}.welcome-bottom{margin-top:39px;padding-top:19px;gap:12px}.welcome-bottom span{font-size:7px;letter-spacing:.05em}.welcome-bottom .palm-inline{height:31px;width:18px}
.weekend-head{grid-template-columns:1fr;gap:28px;padding-bottom:39px}.weekend h2{font-size:55px}.weekend-head p{font-size:12px;max-width:38ch}.days{grid-template-columns:1fr}.day{padding:28px 0 28px 72px!important;border:0!important;min-height:auto}.day+.day{border-top:1px solid #f3e1cf3b!important}.day-meta{margin-bottom:16px;justify-content:flex-start}.day-number{position:absolute;top:31px;left:0;font-size:39px}.day-label{font-size:8px}.day h3{font-size:34px;margin-bottom:13px;max-width:11ch}.day p{font-size:12px;max-width:31ch}.day-foot{font-size:8px;margin-top:17px}.day-highlight::before{top:0;right:auto;width:42px}.weekend-note{flex-direction:column;gap:12px;align-items:flex-start;font-size:9px;margin-top:22px}.weekend-bg{width:430px;left:-210px;bottom:-200px}
.place-header{display:block;margin-bottom:28px}.place h2{font-size:52px}.place-header p{margin-top:25px;font-size:12px;max-width:36ch}.place-picture{height:420px;margin-inline:-24px}.place-picture>img{object-position:42% center}.place-picture figcaption{left:24px;right:24px;bottom:18px;font-size:7px;max-width:230px}.place-card{grid-template-columns:1fr;gap:26px;padding-top:33px}.place-title{gap:24px}.place-title h3{font-size:39px}.place-title>img{width:33px;height:63px}.place-title .eyebrow{font-size:8px;margin-top:12px}.place-directions{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:24px}.place-directions p{max-width:40ch;font-size:12px}
.lodging-head{display:block;margin-bottom:33px}.lodging h2{font-size:55px}.lodging-head p{font-size:12px;margin-top:25px;max-width:37ch}.stay-grid{grid-template-columns:1fr;gap:18px}.stay{padding:29px 28px 26px;min-height:322px}.stay h3{font-size:38px}.stay>p{font-size:12px}.stay-index{margin-bottom:23px}.stay .status{font-size:9px}.booking-note{font-size:10px;gap:10px;margin-top:23px}
.presence{padding-block:80px}.presence-illustration{width:108px;height:109px;margin-bottom:28px}.presence .eyebrow{font-size:9px}.presence h2{font-size:60px;margin-bottom:24px}.presence p{font-size:12px;max-width:39ch}.presence-orbit{width:450px;height:450px}
.gallery-head{display:block;margin-bottom:37px}.gallery h2{font-size:55px}.gallery-head p{margin-top:25px;font-size:21px;max-width:23ch}.gallery-grid{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;margin-inline:-24px;padding:12px 26px 28px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--olive) transparent;align-items:center}.gallery-item{width:76vw;flex:0 0 76vw;transform:rotate(-2deg);scroll-snap-align:center;padding:9px 9px 24px}.gallery-item:nth-child(2){margin-top:0;transform:rotate(2deg)}.gallery-item:nth-child(3){margin-top:0;transform:rotate(-2deg)}.gallery-item img,.gallery-item:nth-child(2) img,.gallery-item:nth-child(3) img{height:350px}.gallery-item>span{margin-top:15px;font-size:19px}.gallery-note{font-size:7px;margin-top:17px}.mobile-gallery-hint{display:block!important;font-size:8px;letter-spacing:.13em;margin-top:14px;color:var(--sand)}
.rsvp-card{grid-template-columns:1fr}.rsvp-art{padding:40px 25px;min-height:255px}.rsvp-art img{height:115px;margin-bottom:20px}.rsvp-body{padding:35px 28px 38px}.rsvp h2{font-size:53px}.rsvp-body p{font-size:12px}.rsvp-body .btn{width:100%;gap:12px}.rsvp-body .micro-note{font-size:9px}.faq{padding-block:0 76px}.faq-grid{grid-template-columns:1fr;gap:32px}.faq h2{font-size:46px;max-width:none}.faq .eyebrow{margin-bottom:15px}summary{font-size:12px;padding-block:21px;gap:20px}details p{font-size:11px;padding-right:20px}
.footer{padding:57px 24px 22px}.footer-logo{height:80px;margin-bottom:27px}.footer .eyebrow{font-size:8px;letter-spacing:.14em}.footer-names{font-size:11vw;line-height:1.1;margin:29px auto 32px;letter-spacing:-.03em}.footer-line{gap:16px;font-size:7px;align-items:flex-start}.footer-line>span{max-width:170px;text-align:left}.footer-line a{white-space:nowrap;gap:9px}.footer-bottom-space{height:60px}.preview-toolbar{left:12px;bottom:14px}.preview-badge{padding:12px 9px 12px 12px;font-size:7px}.preview-toolbar button{padding:10px 11px;font-size:8px;gap:6px}.preview-toolbar button .tool-full{display:none}.preview-toolbar button .tool-short{display:inline!important}.preview-toolbar .icon{width:12px;height:12px}.video-reopen{right:12px;bottom:14px;padding:10px 12px;font-size:8px}.dialog-inner{padding:42px 25px 27px}.dialog h2{font-size:37px}.dialog p{font-size:11px}.dialog label{font-size:10px}.dialog input[type=text]{font-size:12px}.dialog .btn{width:100%;gap:15px}.brief-note{font-size:9px;padding:12px 13px}.lightbox{width:calc(100% - 22px)}.lightbox img{max-height:80svh}.lightbox-caption{font-size:14px}.toast{bottom:150px;font-size:10px;padding:12px 18px}
}
@media(max-width:370px){.hero h1{font-size:65px}.hero .invitation{font-size:18px}.hero-date{font-size:7px}.hero-location{max-width:92px;font-size:7px}.hero-note{max-width:90px;font-size:12px}.hero-bottom{left:25px;right:25px}.welcome h2,.weekend h2,.presence h2{font-size:51px}.stay{padding-inline:23px}.brand span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.poster-layer img{transform:none}.hero-content{will-change:auto}}
@media print{.site-header,.film-shell,.preview-toolbar,.video-reopen,.hero,.gallery,.dialog,.toast{display:none!important}.section{padding-block:30px}.reveal,.js .reveal{opacity:1;transform:none}.weekend,.footer{background:white;color:var(--ink)}.weekend p,.day p,.day h3,.day-foot,.day-label,.day-number,.weekend .eyebrow,.weekend-note{color:var(--ink)}.stay-grid,.days{break-inside:avoid}.footer-bottom-space{display:none}}

/* Final readability and small-screen refinements. */
.hero-bottom{bottom:77px}
.day-weekday{font-size:29px;letter-spacing:-.04em}
.welcome .body-copy,.day p,.place-header p,.place-directions p,.stay>p,.rsvp-body>p:not(.eyebrow):not(.micro-note),.faq details p,.weekend-head p,.lodging-head p,.presence p:not(.eyebrow):not(.signature){font-size:14px;line-height:1.85}
.stay-resort{background:linear-gradient(#2c2c1e30,#2c2c1e30),var(--olive)}
@media(max-width:760px){
.hero-bottom{bottom:75px;display:block}.hero-note{display:none}.hero-location{max-width:none;text-align:center;font-size:9px}.hero-location span{font-size:7px;letter-spacing:.08em}
.hero-content{padding-bottom:149px}.hero-date{margin-top:25px}.hero .invitation{margin-bottom:20px}
.hero h1{font-size:clamp(62px,18vw,108px)}
.rsvp h2{font-size:clamp(37px,10.5vw,46px)}
.day-weekday{font-size:27px!important;top:34px}
.weekend-note,.booking-note{font-size:11px}
.faq summary{font-size:13px}
}
@media(max-width:760px){.hero-bottom{bottom:92px}}


/* ===== motion.css ===== */
/* V2 · Papier vivant. Native scroll; original artwork; no animation framework. */
:root{--paper:#F8F4EE;--sand:#F3E1CF;--gold:#957634;--olive:#7D8158;--ink:#2C2C1E;--foil:#A38B57;--header:80px;--gutter:clamp(24px,6.3vw,112px);--ease:cubic-bezier(.22,1,.36,1)}
html[data-palette="literal"]{--paper:#F8EEEE}
body{background:var(--paper)}
.site-header{background:var(--paper);transition:background .5s,color .5s,border-color .5s;padding-inline:38px;height:var(--header)}
.header-links>a:not(.btn){text-transform:uppercase;font-size:9px;letter-spacing:.12em}
.header-links .btn{border-color:var(--gold);color:var(--gold)}
.brand img{width:60px}.brand span{color:var(--gold)}
.on-film:not(.menu-open) .site-header{background:transparent;color:var(--paper);border-color:transparent}
.on-film:not(.menu-open) .site-header .brand img{filter:brightness(0) invert(1)}
.on-film:not(.menu-open) .site-header .brand span,.on-film:not(.menu-open) .site-header .btn{color:var(--paper);border-color:rgba(248,244,238,.5)}
.on-film:not(.menu-open) .menu-toggle span{background:var(--paper)}
body.intro-open{overflow:hidden}
body.intro-open .site-header,body.intro-open .preview-toolbar{opacity:0;pointer-events:none}
/* A tactile envelope. Only the two paper panels cover the site during entry. */
.invitation-intro{position:fixed;inset:0;z-index:1000;color:var(--sand);display:grid;place-items:center;isolation:isolate;overflow:hidden}
.intro-curtain{position:absolute;top:0;bottom:0;width:50.05%;background:var(--ink);z-index:-2;transition:transform 1.25s var(--ease) .9s}
.intro-curtain-left{left:0;border-right:1px solid rgba(149,118,52,.12)}.intro-curtain-right{right:0}
.intro-grain{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath d='M0 0h200v200H0z' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");transition:opacity .5s .9s}
.intro-top,.intro-bottom{position:absolute;left:42px;right:42px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.17em;line-height:1.9;transition:opacity .45s,transform .8s var(--ease)}
.intro-top{top:30px;padding-bottom:23px;border-bottom:1px solid rgba(243,225,207,.17)}
.intro-bottom{bottom:29px;align-items:flex-end;color:var(--foil)}
.intro-bottom button{color:var(--sand);font-size:9px;letter-spacing:.12em;border-bottom:1px solid rgba(243,225,207,.3);padding:10px 0;display:flex;gap:22px;align-items:center}
.intro-bottom button span{font-size:20px}
.intro-content{text-align:center;width:100%;padding:60px 24px 30px;transition:opacity .55s 1s,transform 1s .9s var(--ease)}
.intro-eyebrow{font-size:9px;letter-spacing:.2em;color:var(--sand);margin:0 auto 80px;transition:opacity .35s}
.envelope-perspective{perspective:1500px;width:min(450px,72vw);margin:auto}
.envelope{height:285px;position:relative;transform-style:preserve-3d;transform:rotate(-5deg);transition:transform 1s var(--ease);filter:drop-shadow(0 25px 26px rgba(0,0,0,.2))}
.envelope-back{position:absolute;inset:0;background:var(--olive);border:1px solid rgba(243,225,207,.16)}
.envelope-letter{position:absolute;inset:12px 16px 12px;z-index:1;background:var(--paper);color:var(--gold);border:1px solid rgba(149,118,52,.24);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;transition:transform 1.1s .42s var(--ease)}
.envelope-letter::before{content:'';position:absolute;inset:12px;border:1px solid rgba(149,118,52,.2)}
.envelope-letter img{width:53px;height:75px;object-fit:contain}.envelope-letter p{font:26px var(--serif);letter-spacing:.03em}.envelope-letter i{font-size:18px}.envelope-letter>span{font-size:8px;letter-spacing:.2em}
.envelope-front{position:absolute;inset:0;z-index:3;background:linear-gradient(32deg,transparent 49.6%,rgba(243,225,207,.18) 49.9%,transparent 50.3%),linear-gradient(-32deg,transparent 49.6%,rgba(44,44,30,.23) 49.9%,transparent 50.3%),var(--olive);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%)}
.envelope-front::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(44,44,30,.15),transparent 65%)}
.envelope-flap{position:absolute;top:0;left:0;width:100%;height:64%;z-index:4;transform-origin:50% 0%;background:linear-gradient(180deg,rgba(243,225,207,.06),rgba(44,44,30,.14)),var(--olive);clip-path:polygon(0 0,100% 0,50% 100%);transition:transform .9s .16s var(--ease);backface-visibility:visible}
.wax-seal{position:absolute;top:42.8%;left:calc(50% - 74px);width:148px;height:148px;z-index:5;color:var(--ink);background:transparent;box-shadow:none;transform:rotate(2deg);transition:transform .7s var(--ease),opacity .5s .2s;display:grid;place-items:center;padding:0}
.seal-art{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 7px rgba(44,44,30,.33))}
.wax-seal:hover{transform:rotate(6deg) scale(1.06)}
.intro-action{font-size:8px;letter-spacing:.23em;margin:58px auto 0;display:flex;align-items:center;flex-direction:column;gap:18px;color:var(--sand);transition:opacity .25s}
.intro-hairline{height:30px;width:1px;position:relative;overflow:hidden;background:rgba(243,225,207,.2)}.intro-hairline::after{content:'';position:absolute;inset:0;background:var(--foil);animation:scroll-line 2.1s infinite}
.invitation-intro.is-opening .envelope{transform:rotate(0deg) translateY(30px)}
.invitation-intro.is-opening .wax-seal{transform:translateY(-26px) rotate(18deg) scale(1.18);opacity:0;pointer-events:none}
.invitation-intro.is-opening .envelope-flap{transform:rotateX(-180deg)}
.invitation-intro.is-opening .envelope-letter{transform:translateY(-130px)}
.invitation-intro.is-opening .intro-eyebrow,.invitation-intro.is-opening .intro-action,.invitation-intro.is-opening .intro-top,.invitation-intro.is-opening .intro-bottom{opacity:0}
.invitation-intro.is-opening .intro-curtain-left{transform:translateX(-100%)}.invitation-intro.is-opening .intro-curtain-right{transform:translateX(100%)}
.invitation-intro.is-opening .intro-grain,.invitation-intro.is-opening .intro-content{opacity:0}.invitation-intro.is-opening .intro-content{transform:translateY(-30px) scale(1.04)}
/* One element for the entire film. Shape changes without reparenting or resetting src. */
.film-shell{left:27vw;top:38svh;width:46vw;height:57svh;border-radius:50% 50% 0 0 / 42% 42% 0 0;transition:opacity .35s,box-shadow .3s;background:var(--ink);z-index:2;will-change:width,height,left,top,border-radius;border:0}
.film-shell.is-docked,.film-shell.is-docked.provider-youtube{border:1px solid rgba(243,225,207,.6);box-shadow:0 9px 35px rgba(44,44,30,.2)}
.film-shade{background:linear-gradient(180deg,rgba(44,44,30,.15),transparent 40%,rgba(44,44,30,.5));transition:none;opacity:0}
.poster-layer::after{background:linear-gradient(0deg,rgba(44,44,30,.10),transparent 70%)}
.poster-layer img{object-position:50% 48%;animation-duration:30s}
.film-controls{top:auto;bottom:18px;right:18px}.film-shell.is-docked .film-controls{top:8px;bottom:auto;right:8px}
.film-shell.is-docked .film-caption{font-size:7px}
/* Hero: arch > full-bleed film > persistent mini-player. */
.cinematic-hero{height:270svh;min-height:0;padding:0;background:transparent;z-index:3;pointer-events:none}
.hero-scene{height:100svh;min-height:0;position:sticky;top:0;overflow:clip}
.hero-fine-border{position:absolute;inset:calc(var(--header) + 14px) 24px 16px;border:1px solid rgba(149,118,52,.12);border-bottom:0;pointer-events:none}
.hero-content{position:absolute;top:calc(var(--header) + 33px);height:auto;padding:0 4vw;justify-content:initial;color:var(--ink);gap:0;z-index:3}
.hero-overline{font-size:7px;letter-spacing:.24em;color:var(--gold);margin:0 auto 14px;max-width:none;opacity:.92}
.hero h1{font-size:clamp(62px,8.8vw,132px);font-family:var(--serif);letter-spacing:.01em;display:flex;flex-direction:row;gap:.18em;align-items:center;justify-content:center;line-height:1;width:100%;font-weight:400;white-space:nowrap;text-transform:uppercase}
.hero h1 .amp{font-size:.24em;padding:0 .02em;vertical-align:baseline;line-height:1;margin:0;color:var(--gold);font-style:italic;opacity:.72}
.hero-name{display:inline-block;will-change:transform;transform-origin:center}
.hero-date{font-size:9px;letter-spacing:.22em;margin-top:19px;gap:15px;color:var(--gold);font-weight:400}
.hero-date::before,.hero-date::after{background:var(--gold);width:28px;opacity:.45}
.hero-aperture{position:absolute;left:27vw;top:38svh;width:46vw;height:57svh;pointer-events:none}
.hero-margin-note{display:none}
.hero-margin-left{left:7.4vw}.hero-margin-left p{font:italic clamp(24px,2.8vw,45px)/1.15 var(--serif);color:var(--gold)}
.margin-line{display:block;width:36px;height:1px;background:var(--gold);opacity:.5;margin-bottom:25px}
.hero-margin-left small{display:block;margin-top:24px;letter-spacing:.15em;font-size:8px}
.hero-margin-right{right:7vw;text-align:center;top:53svh}.hero-margin-right img{width:115px;height:117px;object-fit:contain;margin:0 auto 20px}.hero-margin-right p{font-size:11px;line-height:1.65;color:var(--gold)}
.hero-bottom{left:38px;right:auto;bottom:33px;color:var(--ink);z-index:4}.hero-location{font-size:8px;letter-spacing:.1em;max-width:none}.hero-location span{font-size:7px;letter-spacing:.08em;color:var(--gold)}
.scroll-cue{bottom:13px;color:var(--paper);font-size:7px;letter-spacing:.18em;padding-top:12px;z-index:5;white-space:nowrap}.scroll-cue span:last-child{background:rgba(248,244,238,.4);height:24px}.scroll-cue span:last-child::after{background:var(--paper)}
.cinema-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--paper);text-align:center;padding:12vh 24px 0;opacity:0;z-index:5;pointer-events:none}
.cinema-copy>.eyebrow{font-size:8px;letter-spacing:.23em;margin-bottom:30px;max-width:50ch}
.cinema-title{font:400 clamp(70px,10.5vw,156px)/.95 var(--serif);letter-spacing:-.025em;text-shadow:0 2px 18px rgba(44,44,30,.16)}.cinema-title em{font-weight:400}
.cinema-copy>span{font-size:9px;letter-spacing:.17em;margin-top:34px}
.hero-after{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink);opacity:0;z-index:4;transform:translateY(35px)}
.hero-after img{height:80px;width:60px;object-fit:contain;margin-bottom:34px}.hero-after>p{font:400 clamp(56px,7vw,100px)/1.07 var(--serif);letter-spacing:-.03em}.hero-after em{color:var(--gold)}.hero-after>.eyebrow{font-size:8px;margin-top:30px;color:var(--gold)}
.hero-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;background:rgba(149,118,52,.15)}.hero-progress span{height:100%;display:block;width:100%;transform:scaleX(0);transform-origin:left;background:var(--gold)}
/* Every title is individually masked, rather than moving its entire section. */
.title-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.title-line>span{display:inline-block;transform:translateY(112%) rotate(2deg);transition:transform 1.25s var(--ease);transition-delay:calc(var(--line-index,0) * 90ms);transform-origin:left bottom}
.in-view .title-line>span,.title-line.visible>span{transform:none}
.welcome{overflow:clip;padding-block:130px 105px}.welcome-watermark{position:absolute;right:-100px;top:-130px;width:440px;opacity:.065;transform:rotate(-16deg);pointer-events:none}
.welcome h2{font-size:clamp(60px,6.7vw,105px);line-height:.99;letter-spacing:-.028em}.welcome .lead{font:34px/1.23 var(--serif);max-width:19ch}.welcome-grid{gap:9%;grid-template-columns:1.1fr .9fr}.welcome .body-copy{font-size:14px;line-height:1.9;max-width:42ch}.welcome .signature{color:var(--gold)}
.welcome-bottom{border-top-color:rgba(149,118,52,.3)}
/* Friday, Saturday, Sunday as a stack of invitations. */
.chapter-scene{height:270svh;position:relative;background:var(--ink);color:var(--paper);padding:0;z-index:4}
.chapter-sticky{height:100svh;position:sticky;top:0;overflow:clip;display:flex;align-items:center;padding-top:var(--header)}
.chapter-layout{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;position:relative;z-index:2;padding-bottom:45px}
.chapter-palm{position:absolute;width:640px;left:-235px;bottom:-280px;opacity:.08;transform:rotate(-24deg);pointer-events:none}
.chapter-copy{max-width:520px}.chapter-copy .section-no{color:var(--sand);margin-bottom:34px}.chapter-copy .eyebrow{color:var(--sand)}.chapter-copy .section-no::after{background:var(--gold)}
.weekend .chapter-copy h2{font:400 clamp(65px,6.9vw,107px)/.96 var(--serif);letter-spacing:-.025em;color:var(--paper)}.chapter-copy h2 em{font-weight:400;text-transform:none;color:var(--sand)}
.chapter-copy>p{font-size:13px;line-height:1.85;max-width:32ch;margin-top:29px;color:var(--sand)}
.chapter-steps{display:flex;gap:24px;margin-top:34px;padding-bottom:17px;border-bottom:1px solid rgba(243,225,207,.19);width:max-content;max-width:100%}
.chapter-steps button{color:var(--sand);font-size:8px;letter-spacing:.12em;display:flex;align-items:center;gap:9px;opacity:.45;padding:7px 0;transition:opacity .4s,color .4s}
.chapter-steps button span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid currentColor;border-radius:50%;font-size:8px}
.chapter-steps button.active{opacity:1;color:var(--sand)}.chapter-steps button.active span{background:var(--sand);color:var(--ink);border-color:var(--sand)}
.chapter-copy>.chapter-help{font-size:7px;letter-spacing:.14em;margin-top:19px;display:flex;gap:25px;align-items:center;max-width:40ch;opacity:.75}.chapter-help span{font-size:16px}
.days.card-deck{position:relative;display:block;height:min(590px,72svh);width:min(450px,100%);margin-left:auto;perspective:1300px;border:0;overflow:visible}
.days .weekend-card{position:absolute;inset:0;padding:13px!important;background:var(--paper);color:var(--ink);box-shadow:0 20px 45px rgba(0,0,0,.25);border:1px solid rgba(149,118,52,.3)!important;transform-origin:50% 85%;will-change:transform;transition:none;min-height:0;display:flex;flex-direction:column;overflow:hidden;opacity:1}
.weekend-card[data-day="0"]{z-index:1;transform:rotate(-4deg)}.weekend-card[data-day="1"]{z-index:2;background:var(--sand);transform:translateY(115%) rotate(10deg)}.weekend-card[data-day="2"]{z-index:3;transform:translateY(115%) rotate(-9deg);background:var(--paper)}
.weekend-card::before,.day-highlight::before{display:none!important}
.day-photo{position:relative;height:39%;min-height:125px;overflow:hidden;flex-shrink:0}
.day-photo img{width:100%;height:100%;object-fit:cover;object-position:center 46%;transform:scale(1.05)}
.day-photo>span{position:absolute;bottom:12px;left:16px;color:var(--paper);font:italic 23px var(--serif);text-shadow:0 1px 9px var(--ink)}
.day-photo::after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,rgba(44,44,30,.3));pointer-events:none}
.day-copy{padding:23px 19px 17px;display:flex;flex-direction:column;flex:1}.weekend-card .day-meta{margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;color:var(--gold)}
.weekend-card .day-number{position:static;top:auto;left:auto;font:23px/1 var(--serif);color:var(--gold);letter-spacing:.02em}
.weekend-card .day-label{font-size:8px;letter-spacing:.09em;color:var(--gold)}
.weekend-card h3{font-size:36px;line-height:.99;color:var(--ink);margin:0 0 15px;max-width:none}.weekend-card h3 br{display:none}
.weekend-card p{color:var(--ink);font-size:12px;line-height:1.8;max-width:38ch;margin:0}
.weekend-card .day-foot{display:block;margin-top:auto;padding-top:15px;color:var(--gold);font-size:7px;letter-spacing:.07em;line-height:1.6;max-width:none}
.chapter-footer{position:absolute;bottom:24px;left:var(--gutter);right:var(--gutter);font-size:7px;letter-spacing:.12em;display:flex;align-items:center;justify-content:space-between;color:var(--sand);opacity:.6;border-top:1px solid rgba(243,225,207,.2);padding-top:18px}
.chapter-footer span:last-child{font-size:11px;letter-spacing:.16em}
/* The large photograph reveals from a curved opening and drifts beneath its frame. */
.place-cinematic{padding-block:120px 100px;overflow:clip}.place-cinematic h2{font-size:clamp(58px,6vw,90px);letter-spacing:-.025em;line-height:1.0}
.place-cinematic .place-picture{height:70svh;min-height:420px;max-height:750px;margin:55px 0 0;overflow:hidden;clip-path:inset(0 8% 0 8% round 42% 42% 0 0);will-change:clip-path}
.place-cinematic .place-picture>img{width:100%;height:120%;max-width:none;object-fit:cover;object-position:50% 50%;will-change:transform;transform:translateY(-6%)}
.place-cinematic .place-picture figcaption{z-index:3;max-width:80%;color:var(--paper);background:rgba(44,44,30,.35);padding:7px 10px;left:22px;bottom:22px;font-size:8px}
.place-cinematic .place-card{padding-top:45px}.place-title h3{font-size:clamp(40px,4.1vw,64px)}
.lodging{background:var(--sand)}.lodging h2{font-size:clamp(56px,5.8vw,88px);letter-spacing:-.025em;line-height:1.02}
.stay{border-color:rgba(149,118,52,.4);transition:transform .65s var(--ease),box-shadow .6s var(--ease);position:relative;overflow:hidden}
.stay::after{content:'';position:absolute;inset:10px;pointer-events:none;border:1px solid rgba(149,118,52,.16)}.stay-resort{background:var(--olive);color:var(--paper)}
.stay-resort h3,.stay-resort>p,.stay-resort .stay-index,.stay-resort .status{color:var(--ink)}
.stay:hover{transform:translateY(-7px);box-shadow:0 20px 35px rgba(44,44,30,.1)}
/* The approved message unfolds in two lines; neither line is crossed out. */
.gift-scene{height:180svh;background:var(--paper);padding:0;position:relative}
.gift-sticky{height:100svh;position:sticky;top:0;display:flex;align-items:center;justify-content:center;overflow:clip;padding-top:var(--header)}
.gift-orbit{position:absolute;width:780px;height:780px;border:1px solid rgba(149,118,52,.13);border-radius:50%;pointer-events:none;left:50%;top:50%;transform:translate(-50%,-45%) rotate(-25deg) scaleX(1.06)}
.gift-orbit-two{width:970px;height:580px;opacity:.55;transform:translate(-50%,-42%) rotate(25deg)}
.gift-content{position:relative;z-index:2;text-align:center;width:100%;padding-bottom:30px}
.gift-content .presence-illustration{width:99px;height:105px;object-fit:contain;margin:0 auto 20px}
.gift-content>.eyebrow{font-size:8px;letter-spacing:.17em;color:var(--gold);max-width:none;margin:0 auto 25px}
.gift-content h2{font-size:clamp(34px,5.2vw,78px);line-height:1.14;letter-spacing:-.025em;margin:0 auto 28px;display:flex;flex-direction:column;align-items:center;gap:3px;max-width:100%;text-transform:none}
.gift-title-line{display:block;overflow:hidden;padding:.04em .08em .16em;max-width:100%}
.gift-title-line>span{display:block;will-change:transform,opacity}
.gift-answer{font-size:1.1em;color:var(--gold)}
.gift-answer>span{transform:translateY(110%)}
.gift-answer em{font-weight:400;font-style:italic}
.presence .gift-explanation{font-size:14px;line-height:1.95;max-width:58ch;margin:0 auto;color:var(--ink)}
/* Photographs start together, then fan out in depth with the scroll. */
.gallery-scene{height:205svh;background:var(--ink);padding:0;position:relative;overflow:visible}
.gallery-sticky{height:100svh;position:sticky;top:0;overflow:clip;padding-top:calc(var(--header) + 38px)}
.gallery-sticky>.container{width:100%;height:100%;position:relative}
.gallery-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin:0;position:relative;z-index:2;pointer-events:none}
.gallery-head .section-no{margin-bottom:18px}.gallery h2{font:400 clamp(42px,4vw,62px)/1.03 var(--serif);letter-spacing:-.016em}
.gallery-head>p{font:italic 24px/1.25 var(--serif);color:var(--sand);max-width:17ch}
.gallery-grid{position:relative;display:block;height:calc(100% - 230px);margin:0;padding:0;border:0;overflow:visible;perspective:1400px}
.gallery-item,.gallery-item:nth-child(2),.gallery-item:nth-child(3){position:absolute;top:28px;left:50%;width:min(28vw,380px);height:min(52svh,450px);padding:10px 10px 26px;background:var(--paper);margin:0;display:flex;flex-direction:column;transform:translateX(-50%);box-shadow:0 15px 24px rgba(0,0,0,.25);will-change:transform;transition:box-shadow .35s;z-index:3;overflow:visible}
.gallery-item:nth-child(2){z-index:2}.gallery-item:nth-child(3){z-index:1}
.gallery-item img,.gallery-item:nth-child(2) img,.gallery-item:nth-child(3) img{width:100%;height:calc(100% - 34px);min-height:0;object-fit:cover;flex:1;object-position:center 46%}
.gallery-item>span{font:20px/1 var(--serif);display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:5px;flex-shrink:0;width:100%;color:var(--gold)}.gallery-item>span small{font:8px var(--sans)}
.gallery-item:focus-visible{z-index:8;outline-color:var(--sand);outline-offset:8px}.gallery-item:hover{z-index:8;box-shadow:0 28px 50px rgba(0,0,0,.3)}
.gallery-note{position:absolute;bottom:24px;left:var(--gutter);right:var(--gutter);margin:0;text-align:center;font-size:7px;letter-spacing:.18em;color:var(--sand);opacity:.7}
.mobile-gallery-hint{display:none!important}
.rsvp{padding-block:125px;background:var(--paper)}.rsvp-card{border-color:rgba(149,118,52,.3);box-shadow:0 20px 60px rgba(44,44,30,.04)}
.rsvp-envelope{background:var(--sand);position:relative;isolation:isolate;overflow:hidden;min-height:440px}
.rsvp-envelope::after{content:'';position:absolute;inset:22px;border:1px solid rgba(149,118,52,.35);z-index:-1;transform:rotate(-4deg);transition:transform 1.1s var(--ease)}
.rsvp-card:hover .rsvp-envelope::after{transform:rotate(0)}
.rsvp-body{background:var(--paper)}.rsvp h2{font-size:clamp(45px,4.5vw,69px);letter-spacing:-.02em;line-height:1.02}.rsvp-art img{transition:transform 1.5s var(--ease)}.rsvp-card:hover .rsvp-art img{transform:scale(1.09)}
.faq h2{font-size:clamp(44px,4.5vw,68px);letter-spacing:-.02em}.faq details{border-color:rgba(149,118,52,.2)}
.footer{padding-top:75px;background:var(--ink);overflow:hidden}.footer-names{font-size:clamp(60px,12.3vw,195px);letter-spacing:-.05em;color:var(--sand)}
.footer-logo{transition:transform 1s var(--ease)}.footer:hover .footer-logo{transform:translateY(-6px)}
.preview-toolbar{background:var(--paper);border-color:rgba(149,118,52,.4);box-shadow:0 4px 20px rgba(44,44,30,.08);max-width:calc(100vw - 24px)}.preview-badge{color:var(--gold)}
.preview-toolbar button{padding:11px 12px;gap:7px;border-left:1px solid rgba(149,118,52,.15);font-size:8px}
.palette-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--paper);border:1px solid var(--gold)}
.preview-toolbar #replay-intro{font-size:20px;line-height:1;min-width:38px;padding:6px 10px}
/* Smaller screens keep all effects, without sideways scrolling or unreadable cards. */
@media(max-width:1100px){
 .header-links{gap:17px}.site-header{padding-inline:26px}.header-links>a:not(.btn){font-size:8px}.header-links .btn{font-size:8px;padding-inline:12px}
 .hero-margin-left{left:5vw}.hero-margin-right{right:5vw}.hero-margin-right img{width:92px;height:100px}
 .chapter-layout{gap:8%;grid-template-columns:1fr 1fr}.chapter-copy .section-no{gap:9px}.chapter-copy .eyebrow{font-size:9px}
 .weekend-card h3{font-size:31px}.day-copy{padding-inline:13px}.chapter-steps{gap:15px}.chapter-copy>.chapter-help{font-size:6px}
 .gallery-head h2{font-size:48px}.gallery-item,.gallery-item:nth-child(2),.gallery-item:nth-child(3){width:29vw;height:46svh}
}
@media(max-width:760px){
 :root{--header:66px;--gutter:24px}.site-header{padding-inline:22px}.brand img{width:54px}.brand span{font-size:7px}.header-links{display:none}
 .intro-top,.intro-bottom{left:24px;right:24px;font-size:7px}.intro-top{top:20px;padding-bottom:18px}.intro-top span:last-child{max-width:110px;text-align:right}
 .intro-bottom{bottom:23px}.intro-bottom button{font-size:7px;gap:13px}.intro-eyebrow{font-size:8px;max-width:30ch;margin-bottom:60px;line-height:1.8}
 .envelope-perspective{width:min(330px,77vw)}.envelope{height:210px;transform:rotate(-6deg)}.wax-seal{height:116px;width:116px;left:calc(50% - 58px);top:41.8%}
 .envelope-letter{inset:8px 11px;gap:10px}.envelope-letter img{height:56px;width:42px}.envelope-letter p{font-size:22px}.envelope-letter>span{font-size:7px}.intro-action{font-size:7px;margin-top:52px}
 .invitation-intro.is-opening .envelope-letter{transform:translateY(-99px)}
 .cinematic-hero{height:250svh;min-height:0}.hero-scene{height:100svh}.hero-fine-border{inset:calc(var(--header) + 8px) 12px 14px}
 .hero-content{top:calc(var(--header) + 24px);padding:0 18px;gap:0;height:auto;justify-content:initial}
 .hero-overline{font-size:6px;letter-spacing:.18em;margin-bottom:12px;opacity:.9}
 .hero h1{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14.4vw;line-height:.94;gap:6px;letter-spacing:.02em}
 .hero h1 .amp{font-size:.22em;align-self:center;padding:0;line-height:1;margin:0;opacity:.7}
 .hero h1 .hero-name-left,.hero h1 .hero-name-right{grid-column:auto;grid-row:auto;justify-self:auto}
 .hero-date{font-size:7px;letter-spacing:.16em;margin-top:18px;gap:11px;line-height:1.2}.hero-date::before,.hero-date::after{width:20px}
 .hero-aperture,.film-shell{left:24px;top:37svh;width:calc(100vw - 48px);height:55svh;border-radius:50% 50% 0 0 / 35% 35% 0 0}
 .hero-margin-note{display:none}.hero-bottom{bottom:23px;left:24px;right:24px;display:block;text-align:center}.hero-location{font-size:7px;text-align:center;letter-spacing:.09em}.hero-location span{font-size:6px;margin-top:2px;letter-spacing:.08em}
 .scroll-cue{bottom:calc(8svh + 12px);font-size:6px;width:auto;gap:7px;letter-spacing:.13em}.scroll-cue span:last-child{height:19px}
 .cinema-copy{padding:15vh 20px 0}.cinema-title{font-size:clamp(60px,15.9vw,98px)}.cinema-copy>.eyebrow{font-size:7px;max-width:34ch;line-height:1.7;margin-bottom:23px}.cinema-copy>span{font-size:7px;letter-spacing:.10em;margin-top:28px}
 .hero-after{padding:25px}.hero-after>p{font-size:14vw}.hero-after img{width:44px;height:63px;margin-bottom:25px}.hero-after>.eyebrow{font-size:6px;max-width:32ch}
 .film-shell.is-docked .film-controls{gap:5px;top:5px;right:5px}.film-shell.is-docked .round-btn{width:25px;height:25px}.film-shell.is-docked .film-caption{font-size:6px;left:5px;bottom:5px}
 .welcome{padding-block:80px 68px}.welcome h2{font-size:17vw;line-height:1}.welcome-grid{grid-template-columns:1fr;gap:31px}.welcome .lead{font-size:29px;max-width:23ch}.welcome .body-copy{font-size:13px;max-width:41ch}.welcome-watermark{width:290px;right:-105px;top:30px}.welcome-bottom{gap:13px}
 .chapter-scene{height:270svh}.chapter-sticky{height:100svh;padding-top:calc(var(--header) + 17px);align-items:stretch}
 .chapter-layout{display:flex;flex-direction:column;gap:0;align-items:stretch;width:100%;height:100%;padding-bottom:60px}
 .chapter-copy{max-width:100%}.chapter-copy .section-no{margin-bottom:16px;font-size:10px;gap:11px}.chapter-copy .eyebrow{font-size:7px}.chapter-copy .section-no::after{width:26px}
 .weekend .chapter-copy h2{font-size:12.8vw;line-height:.93;max-width:100%;letter-spacing:-.02em}.chapter-copy h2 br:nth-of-type(1){display:none}.chapter-copy h2 br:nth-of-type(1)::after{content:' '}
 .chapter-copy>p:not(.chapter-help){display:none}.chapter-steps{margin-top:18px;gap:23px;padding-bottom:11px;width:100%}.chapter-steps button{font-size:7px;gap:7px;padding:0}.chapter-steps button span{height:18px;width:18px;font-size:7px}
 .chapter-copy>.chapter-help{display:none}
 .days.card-deck{margin:20px auto 0;width:calc(100% - 26px);height:auto;min-height:0;flex:1;max-height:480px}
 .days .weekend-card{padding:9px!important}.day-photo{height:35%;min-height:90px}.day-photo>span{font-size:19px;bottom:8px;left:12px}
 .day-copy{padding:16px 12px 10px;flex:1}.weekend-card .day-meta{margin-bottom:10px;justify-content:space-between}.weekend-card .day-number{font-size:22px!important;position:static}.weekend-card .day-label{font-size:7px}
 .weekend-card h3{font-size:29px;margin-bottom:11px;line-height:1.04}.weekend-card p{font-size:11.5px;line-height:1.75;max-width:100%}.weekend-card .day-foot{font-size:6px;letter-spacing:.035em;padding-top:12px;margin-top:auto}
 .chapter-footer{bottom:15px;padding-top:12px;font-size:5.5px;gap:25px;left:24px;right:24px}.chapter-footer span:first-child{max-width:38ch}.chapter-footer span:last-child{font-size:9px}
 .place-cinematic{padding-block:78px 72px}.place-cinematic h2{font-size:14vw;line-height:1.02}.place-cinematic .place-picture{margin:30px -24px 0;height:59svh;min-height:340px;max-height:560px}.place-cinematic .place-picture>img{object-position:43% center}.place-cinematic .place-picture figcaption{font-size:6px;left:18px;bottom:18px;max-width:70%}.place-cinematic .place-card{padding-top:29px}.place-title h3{font-size:39px}
 .lodging{padding-block:72px}.lodging h2{font-size:14.5vw}.stay h3{font-size:37px}.stay:hover{transform:none}.stay{min-height:320px}.stay p{font-size:13px}
 .gift-scene{height:180svh}.gift-sticky{padding-top:var(--header)}.gift-content{padding-inline:24px;padding-bottom:30px}.gift-content .presence-illustration{width:79px;height:88px;margin-bottom:23px}.gift-content>.eyebrow{font-size:6.5px;letter-spacing:.15em;margin-bottom:23px}
 .gift-content h2{font-size:clamp(22px,6.8vw,48px);line-height:1.18;margin-bottom:22px;letter-spacing:-.025em;gap:6px}.gift-answer{font-size:1.1em}
 .presence .gift-explanation{font-size:12px;max-width:37ch;line-height:1.85}.gift-orbit{width:500px;height:650px}.gift-orbit-two{width:680px;height:430px}
 .gallery-scene{height:185svh}.gallery-sticky{padding-top:calc(var(--header) + 26px)}.gallery-head{display:block;margin:0}.gallery-head .section-no{font-size:10px;gap:10px;margin-bottom:19px}.gallery-head .eyebrow{font-size:7px}.gallery h2,.gallery-head h2{font-size:12vw;line-height:1.04}.gallery-head>p{font-size:19px;margin-top:15px;max-width:100%}.gallery-head>p br{display:none}
 .gallery-grid{height:calc(100% - 225px);margin:0;padding:0;display:block;overflow:visible;scroll-snap-type:none}
 .gallery-item,.gallery-item:nth-child(2),.gallery-item:nth-child(3){width:65vw;height:min(44svh,405px);top:42px;padding:9px 9px 20px;left:50%;margin:0;flex:none;scroll-snap-align:none}
 .gallery-item img,.gallery-item:nth-child(2) img,.gallery-item:nth-child(3) img{height:calc(100% - 30px);object-position:48% center}.gallery-item>span{font-size:18px;margin-top:13px;line-height:1.1}.gallery-item>span small{font-size:7px}
 .gallery-note{font-size:6px;line-height:1.7;letter-spacing:.11em;bottom:25px;max-width:34ch;margin:auto}.mobile-gallery-hint{display:none!important}
 .rsvp{padding-block:76px}.rsvp-envelope{min-height:280px}.rsvp-art{padding:34px 25px}.rsvp h2{font-size:11vw;line-height:1.03}.rsvp-body{padding:34px 26px 38px}.rsvp-body p{font-size:13px}.rsvp-body .eyebrow{font-size:8px}.faq h2{font-size:12.5vw}.faq details p{font-size:13px;line-height:1.85}.faq summary{font-size:13px}
 .footer{padding-top:58px}.footer-names{font-size:11.6vw;letter-spacing:-.04em}.footer .eyebrow{font-size:7px}
 .preview-toolbar{left:10px;bottom:12px}.preview-toolbar button{padding:9px 9px;font-size:6.5px}.preview-toolbar .preview-badge{font-size:7px;padding-inline:9px}.preview-toolbar button .icon{width:12px;height:12px}.preview-toolbar #replay-intro{font-size:18px;min-width:28px;padding:5px 7px}.palette-dot{height:8px;width:8px}
}
@media(max-width:760px) and (max-height:740px){
 .hero-content{top:calc(var(--header) + 13px)}.hero-overline{margin-bottom:8px}.hero h1{font-size:13.2vw}.hero-date{margin-top:10px}.hero-aperture,.film-shell{top:40svh;height:52svh}
 .chapter-sticky{padding-top:calc(var(--header) + 12px)}.chapter-copy .section-no{margin-bottom:11px}.weekend .chapter-copy h2{font-size:10.5vw}.chapter-steps{margin-top:11px}.days.card-deck{margin-top:16px}.day-photo{min-height:72px;height:28%}.day-copy{padding-top:12px}.weekend-card h3{font-size:25px;margin-bottom:7px}.weekend-card .day-meta{margin-bottom:7px}.weekend-card p{font-size:11px;line-height:1.6}.weekend-card .day-foot{padding-top:8px}
 .gift-content .presence-illustration{width:57px;height:62px;margin-bottom:15px}.gift-content>.eyebrow{margin-bottom:15px}.gift-content h2{font-size:clamp(22px,6.8vw,42px);margin-bottom:18px}.presence .gift-explanation{font-size:11px}
 .gallery-sticky{padding-top:calc(var(--header) + 18px)}.gallery-head .section-no{margin-bottom:12px}.gallery h2,.gallery-head h2{font-size:10.6vw}.gallery-head>p{font-size:18px;margin-top:10px}.gallery-item,.gallery-item:nth-child(2),.gallery-item:nth-child(3){top:30px;height:44svh}
}
/* Reduced motion keeps every piece of information and removes all long pinned scenes. */
html:is(.reduced-motion,:not(.motion-ready)) .cinematic-hero{height:100svh}
html:is(.reduced-motion,:not(.motion-ready)) .film-shell{will-change:auto}
html:is(.reduced-motion,:not(.motion-ready)) .chapter-scene,html:is(.reduced-motion,:not(.motion-ready)) .gift-scene,html:is(.reduced-motion,:not(.motion-ready)) .gallery-scene{height:auto}
html:is(.reduced-motion,:not(.motion-ready)) .chapter-sticky,html:is(.reduced-motion,:not(.motion-ready)) .gift-sticky,html:is(.reduced-motion,:not(.motion-ready)) .gallery-sticky{position:relative;height:auto;min-height:0;padding-block:90px}
html:is(.reduced-motion,:not(.motion-ready)) .chapter-layout{display:block;height:auto;padding-block:0}
html:is(.reduced-motion,:not(.motion-ready)) .chapter-copy{max-width:100%;margin-bottom:40px}
html:is(.reduced-motion,:not(.motion-ready)) .chapter-copy>p{display:block}
html:is(.reduced-motion,:not(.motion-ready)) .chapter-steps,html:is(.reduced-motion,:not(.motion-ready)) .chapter-help,html:is(.reduced-motion,:not(.motion-ready)) .chapter-footer{display:none}
html:is(.reduced-motion,:not(.motion-ready)) .days.card-deck{height:auto;max-height:none;display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:20px;max-width:none;margin:0}
html:is(.reduced-motion,:not(.motion-ready)) .weekend-card{position:relative;transform:none!important;min-height:450px;inset:auto}
html:is(.reduced-motion,:not(.motion-ready)) .gallery-grid{display:flex;gap:24px;justify-content:center;margin:35px 0;height:auto;flex-wrap:wrap}
html:is(.reduced-motion,:not(.motion-ready)) .gallery-item{position:relative;top:auto;left:auto;transform:none!important;height:400px;width:28%;min-width:240px}
html:is(.reduced-motion,:not(.motion-ready)) .gallery-head{display:block}
html:is(.reduced-motion,:not(.motion-ready)) .gallery-note{position:static;margin:25px auto 0}
html:is(.reduced-motion,:not(.motion-ready)) .gift-title-line>span,html:is(.reduced-motion,:not(.motion-ready)) .title-line>span{transform:none}
html:is(.reduced-motion,:not(.motion-ready)) .place-picture{clip-path:none!important}
@media(max-width:760px){html:is(.reduced-motion,:not(.motion-ready)) .days.card-deck{grid-template-columns:1fr}html:is(.reduced-motion,:not(.motion-ready)) .weekend-card{min-height:430px}html:is(.reduced-motion,:not(.motion-ready)) .gallery-item{width:85%;height:430px}html:is(.reduced-motion,:not(.motion-ready)) .gift-content{padding-bottom:0}}
@media print{.invitation-intro,.chapter-steps,.chapter-help,.chapter-footer{display:none!important}.chapter-scene,.gift-scene,.gallery-scene{height:auto!important}.chapter-sticky,.gift-sticky{position:static;height:auto;padding:30px 0}.chapter-layout{display:block}.days.card-deck{display:block;height:auto;width:100%}.weekend-card{position:relative!important;transform:none!important;margin:20px 0}.title-line>span,.gift-title-line>span{transform:none!important}.gallery-scene{display:none!important}}

/* Keep pinned scenes attached to the document viewport. */
.chapter-scene,.gift-scene{overflow:visible}

/* Final typographic spacing and preview-toolbar clearance. */
.hero-bottom{bottom:72px}
#presence-title .gift-answer em{font-style:italic}
.wax-seal:focus-visible{outline:1px solid var(--foil);outline-offset:8px;border-radius:999px}
@media(max-width:760px){
 .chapter-copy h2 br:nth-of-type(1){display:revert}
 .hero-bottom{top:calc(37svh - 26px);bottom:auto}
 .hero-location{font-size:6.5px;line-height:1.5}
 .hero-location span{font-size:5.8px;line-height:1.5}
}
@media(max-width:760px) and (max-height:740px){.hero-bottom{top:calc(40svh - 25px)}}

/* The full message stays legible with motion disabled or a short viewport. */
html:is(.reduced-motion,:not(.motion-ready)) .gift-title-line>span{opacity:1!important;transform:none!important}
@media(max-height:560px){
 .gift-scene{height:auto}
 .gift-sticky{position:relative;height:auto;min-height:100svh;padding-block:75px 65px}
 .gift-content{padding-bottom:0}
 .gift-title-line>span{opacity:1!important;transform:none!important}
}
@media print{.gift-title-line>span{opacity:1!important;transform:none!important}}

/* V5 · Film controls; the video element itself is never recreated on scroll. */
.intro-action{gap:13px}
.intro-sound-note{font-family:var(--sans);font-size:10px;font-weight:400;line-height:1.6;letter-spacing:.015em;text-transform:none;color:var(--sand);opacity:.85}
.sound-cta{position:absolute;left:18px;bottom:18px;z-index:8;display:flex;align-items:center;gap:9px;min-height:36px;padding:8px 13px;border:1px solid rgba(248,244,238,.6);border-radius:40px;background:rgba(44,44,30,.88);color:var(--paper);font:500 10px/1.4 var(--sans);letter-spacing:.03em;backdrop-filter:blur(8px);max-width:calc(100% - 115px)}
.sound-cta .icon{width:16px;height:16px}
.film-help{position:absolute;z-index:7;left:14px;right:14px;top:50%;transform:translateY(48px);text-align:center;color:var(--paper);font:400 11px/1.5 var(--sans);text-shadow:0 1px 5px #000;pointer-events:none}
.provider-bunny.is-docked .film-caption{display:none}
.provider-bunny.is-docked .sound-cta{left:8px;bottom:9px;font-size:9px;padding:6px 10px;min-height:30px;max-width:calc(100% - 16px)}
.provider-bunny.is-docked .film-help{font-size:9px;left:7px;right:7px;top:auto;bottom:46px;transform:none}
@media(max-width:760px){.intro-sound-note{font-size:9px;max-width:28ch}.intro-action{margin-top:36px}.sound-cta{left:12px;bottom:17px;font-size:9px;padding:8px 10px;gap:6px;max-width:calc(100% - 92px)}.provider-bunny.is-docked .sound-cta{font-size:8px;min-height:27px;padding:5px 7px;gap:5px}.provider-bunny.is-docked .sound-cta .icon{width:13px;height:13px}.film-help{font-size:10px}}

/* V6 · Reading mode: no floating video and no editing toolbar. */
.film-shell{transition:none}
.film-shell.is-audio-only{pointer-events:none;box-shadow:none;border:0}
/* opacity is set by the scroll scene. Never use display:none, visibility:hidden,
   zero-size frames or a new source to switch from picture to audio. */
.site-header{gap:24px}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:25px;min-width:0}
.header-actions .header-links{flex-shrink:1}
.ambient-controls{display:flex;align-items:center;flex-shrink:0;height:42px;border:1px solid rgba(149,118,52,.3);border-radius:40px;color:var(--gold);background:transparent;animation:audio-enter .45s var(--ease)}
.ambient-controls button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 13px;font:500 8px/1 var(--sans);letter-spacing:.13em;border-radius:40px;transition:background .2s}
.ambient-controls button:hover{background:rgba(149,118,52,.08)}
.ambient-controls .ambient-play{width:42px;padding:0}
.ambient-controls .icon{width:16px;height:16px}
.ambient-divider{width:1px;height:14px;background:rgba(149,118,52,.25)}
.ambient-controls.needs-native .ambient-divider{display:none}
.ambient-controls.is-playing{border-color:rgba(149,118,52,.55)}
body.intro-open .ambient-controls{opacity:0;pointer-events:none}
@keyframes audio-enter{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:1100px){
 .header-actions{gap:12px}.site-header{gap:16px}
 .header-actions .header-links{display:none}.header-actions .menu-toggle{display:block}
 .menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
 .menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
}
@media(max-width:760px){
 .site-header{gap:10px}.header-actions{gap:6px}
 .ambient-controls{height:38px}.ambient-controls button{min-height:36px;padding:0 10px;gap:6px;font-size:7px}
 .ambient-controls .ambient-play{width:36px}.ambient-controls .icon{width:15px;height:15px}
 .brand{gap:11px}.brand span{padding-left:11px}
}
@media(max-width:390px){.brand span{display:none}}
@media(prefers-reduced-motion:reduce){.ambient-controls{animation:none}}
@media print{.ambient-controls{display:none!important}}


/* ===== official.css ===== */
/* Official wedding information · preserves the approved visual and media behaviour. */
.official-schedule .day-photo{height:32%;min-height:110px}
.official-schedule .day-copy{padding:20px 17px 14px;min-height:0}
.official-schedule .weekend-card h3{font-size:34px;line-height:1.06;margin-bottom:17px}
.official-schedule .day-meta{margin-bottom:12px}
.schedule-events{margin:0;width:100%;display:grid;gap:14px}
.schedule-event{display:grid;grid-template-columns:80px minmax(0,1fr);gap:13px;align-items:start}
.schedule-event + .schedule-event{border-top:1px solid rgba(149,118,52,.19);padding-top:12px}
.schedule-event dt{margin:0;display:flex;flex-direction:column;align-items:flex-start;color:var(--gold);font:26px/1.05 var(--serif);padding-top:1px}
.schedule-event dt .time-pending{font-size:20px;white-space:nowrap}
.schedule-event dt small{display:block;font:500 6px/1.5 var(--sans);letter-spacing:.055em;margin-top:7px}
.schedule-event dd{margin:0}
.schedule-event dd strong{display:block;font:500 12px/1.5 var(--sans);color:var(--ink);margin-bottom:3px}
.schedule-event dd>span{display:block;font:400 11px/1.65 var(--sans);color:var(--ink);max-width:none}
.official-schedule .day-foot{text-transform:uppercase;padding-top:14px;font-size:7px;letter-spacing:.07em}
.official-schedule .checkout-signoff{font:italic 26px/1.2 var(--serif);color:var(--gold);margin-top:28px}
.official-schedule .chapter-steps{gap:22px}
.official-schedule .chapter-footer{letter-spacing:.06em;line-height:1.6}

/* Arrival information is kept beside the location, never hidden in a booking link. */
.place-directions strong{font-weight:500}
.access-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:26px;margin-top:48px;scroll-margin-top:110px}
.access-card{border-top:1px solid var(--line);padding-top:27px}
.access-card .eyebrow{font-size:8px;letter-spacing:.14em;color:var(--gold);display:block;margin-bottom:12px}
.access-card h3{font-size:34px;margin-bottom:14px}
.access-card p{font-size:13px;line-height:1.85;color:var(--muted);max-width:49ch}

/* Club Med contacts supplied by the couple. No unprovided booking URL or discount. */
.resort-booking{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:65px;padding:48px 50px;background:var(--ink);color:var(--paper);border:1px solid var(--gold)}
.resort-booking::after{content:'';position:absolute;inset:11px;border:1px solid rgba(243,225,207,.17);pointer-events:none}
.resort-booking .eyebrow{font-size:8px;letter-spacing:.14em;color:var(--sand);margin-bottom:18px}
.resort-copy h3{font-size:clamp(39px,4.3vw,64px);color:var(--paper);line-height:1.02;letter-spacing:-.025em;margin-bottom:23px}
.resort-copy>p:not(.eyebrow){font-size:13px;line-height:1.9;color:var(--sand);max-width:40ch}
.resort-contact{align-self:center;border-left:1px solid rgba(243,225,207,.23);padding-left:38px;min-width:0}
.resort-contact h4{font:400 27px/1.2 var(--serif);margin:0 0 15px;color:var(--paper)}
.resort-contact>p:not(.eyebrow){font-size:13px;line-height:1.85;max-width:39ch;color:var(--sand);margin-bottom:15px}
.contact-phone{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:48px;font:400 clamp(20px,2vw,29px)/1.3 var(--serif);padding:9px 0;color:var(--paper);border-bottom:1px solid rgba(243,225,207,.3)}
.contact-email{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;font-size:12px;line-height:1.6;overflow-wrap:anywhere;color:var(--sand);padding:13px 0;border-bottom:1px solid rgba(243,225,207,.3)}
.contact-email>span,.contact-phone>span{flex-shrink:0;font-size:18px}
.contact-email:hover,.contact-phone:hover{color:white;border-color:currentColor}
.nearby-head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin:55px 0 29px}
.nearby-head h3{font-size:39px;line-height:1.1;letter-spacing:-.015em}
.nearby-head p{font-size:13px;line-height:1.85;color:var(--muted);max-width:49ch}
.nearby-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.nearby-stay{background:var(--paper);padding:31px 28px;min-height:342px}
.nearby-stay .stay-index{margin-bottom:25px;gap:11px;font-size:7px;letter-spacing:.1em;color:var(--gold)}
.nearby-stay h3{font-size:34px;line-height:1.09;letter-spacing:-.018em;margin-bottom:21px}
.nearby-stay>p{font-size:13px;line-height:1.85;max-width:none;margin-bottom:22px}
.stay-distance{border-top:1px solid var(--line);padding-top:17px;margin-top:auto;width:100%}
.stay-distance>strong{display:block;font:400 28px/1.2 var(--serif);color:var(--gold)}
.stay-distance strong>span{font:400 10px/1.4 var(--sans);color:var(--muted);margin-left:6px}
.stay-distance>p{font-size:11px;line-height:1.8;margin-top:10px;color:var(--muted)}
.official-lodging .booking-note{max-width:95ch}
.booking-note a,.faq-list a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.booking-note a:hover,.faq-list a:hover{color:var(--gold)}

/* A quiet attire section in the same type and colours as the invitation. */
.dresscode{border-bottom:1px solid rgba(149,118,52,.16);padding-block:100px}
.dresscode-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:9%;align-items:center}
.dresscode h2{font:400 clamp(58px,6vw,88px)/1 var(--serif);letter-spacing:-.025em}
.dresscode h2 em{font-weight:400;font-style:italic;color:var(--gold)}
.dresscode-copy>.eyebrow{display:block;color:var(--gold);font-size:8px;letter-spacing:.16em;margin-bottom:20px}
.dresscode-copy>p{font:400 26px/1.5 var(--serif);max-width:28ch}
.official-schedule .day-copy>p{max-width:none}

@media(min-width:761px) and (max-height:800px){
 .official-schedule .day-photo{height:29%;min-height:90px}
 .official-schedule .day-copy{padding:16px 16px 10px}
 .official-schedule .weekend-card h3{font-size:31px;margin-bottom:12px}
 .official-schedule .day-meta{margin-bottom:9px}
 .official-schedule .schedule-events{gap:11px}
 .official-schedule .schedule-event + .schedule-event{padding-top:10px}
 .official-schedule .day-foot{padding-top:10px}
}
@media(max-width:1220px){
 .header-actions .header-links{display:none}
 .header-actions .menu-toggle{display:block}
 .menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
 .menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
 .resort-booking{gap:35px;padding:40px}
 .resort-contact{padding-left:30px}
 .nearby-stay{padding:30px 24px}
 .nearby-stay h3{font-size:31px}
}
@media(min-width:761px) and (max-width:950px){
 .nearby-grid{grid-template-columns:1fr}
 .nearby-stay{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;min-height:0}
 .nearby-stay .stay-index{grid-column:1/-1;margin-bottom:20px}
 .nearby-stay h3{margin-bottom:0}
 .nearby-stay>p{margin-bottom:0}
 .nearby-stay .stay-distance{grid-column:2;margin-top:18px}
 .resort-booking{gap:28px;padding:36px 30px}
 .resort-contact{padding-left:25px}
}
@media(max-width:760px){
 .official-schedule .day-photo{height:30%;min-height:82px}
 .official-schedule .day-copy{padding:15px 12px 10px}
 .official-schedule .weekend-card h3{font-size:28px;margin-bottom:13px}
 .official-schedule .day-meta{margin-bottom:10px}
 .official-schedule .day-label{font-size:6.5px;letter-spacing:.06em}
 .official-schedule .schedule-events{gap:11px}
 .schedule-event{grid-template-columns:66px minmax(0,1fr);gap:10px}
 .schedule-event dt{font-size:23px}
 .schedule-event dt .time-pending{font-size:17px}
 .schedule-event dt small{font-size:5.7px;letter-spacing:0;margin-top:5px}
 .schedule-event dd strong{font-size:11px;margin-bottom:2px}
 .schedule-event dd>span{font-size:10.5px;line-height:1.65}
 .schedule-event + .schedule-event{padding-top:10px}
 .official-schedule .day-foot{padding-top:12px;font-size:6px}
 .official-schedule .checkout-signoff{font-size:23px;margin-top:22px}
 .official-schedule .chapter-footer{font-size:5.7px;gap:18px}
 .official-schedule .chapter-footer>span:first-child{max-width:46ch}
 .official-schedule .chapter-steps{gap:22px}
 .access-grid{grid-template-columns:1fr;gap:25px;margin-top:32px;scroll-margin-top:85px}
 .access-card{padding-top:24px}
 .access-card h3{font-size:32px}
 .access-card p{font-size:13px}
 .access-card .eyebrow{font-size:7px}
 .resort-booking{display:block;padding:35px 27px}
 .resort-copy h3{font-size:44px;margin-bottom:19px}
 .resort-booking .eyebrow{font-size:7px}
 .resort-copy>p:not(.eyebrow){font-size:13px;line-height:1.8}
 .resort-contact{border-left:0;border-top:1px solid rgba(243,225,207,.24);padding:26px 0 0;margin-top:27px}
 .resort-contact h4{font-size:26px}
 .resort-contact>p:not(.eyebrow){font-size:12px}
 .contact-phone{font-size:26px}
 .contact-email{font-size:11px}
 .nearby-head{display:block;margin:36px 0 24px}
 .nearby-head h3{font-size:34px}
 .nearby-head p{font-size:12px;margin-top:17px;max-width:none}
 .nearby-grid{grid-template-columns:1fr;gap:18px}
 .nearby-stay{min-height:0;padding:28px}
 .nearby-stay .stay-index{margin-bottom:22px;font-size:7px}
 .nearby-stay h3{font-size:36px;margin-bottom:19px}
 .nearby-stay>p{font-size:13px}
 .nearby-stay .stay-distance{padding-top:18px}
 .nearby-stay:last-child>p{margin-bottom:22px}
 .official-lodging .booking-note{font-size:11px}
 .dresscode{padding-block:75px}
 .dresscode-grid{grid-template-columns:1fr;gap:30px}
 .dresscode h2{font-size:16vw}
 .dresscode .section-no{margin-bottom:25px}
 .dresscode-copy>.eyebrow{margin-bottom:15px;font-size:7px}
 .dresscode-copy>p{font-size:24px;line-height:1.5;max-width:28ch}
}
@media(max-width:760px) and (max-height:740px){
 .official-schedule .chapter-copy h2{font-size:10vw;line-height:.97}
 .official-schedule .chapter-copy .section-no{margin-bottom:10px}
 .official-schedule .chapter-steps{margin-top:10px;padding-bottom:9px}
 .official-schedule .days.card-deck{margin-top:17px}
 .official-schedule .day-photo{height:24%;min-height:70px}
 .official-schedule .day-copy{padding:12px 10px 8px}
 .official-schedule .day-meta{margin-bottom:7px}
 .official-schedule .weekend-card h3{font-size:25px;margin-bottom:10px}
 .official-schedule .schedule-events{gap:8px}
 .schedule-event dt{font-size:22px}
 .schedule-event dd strong{font-size:10.5px}
 .schedule-event dd>span{font-size:10px;line-height:1.5}
 .schedule-event + .schedule-event{padding-top:8px}
 .official-schedule .day-foot{font-size:5.5px;padding-top:9px}
}
/* Never force a long timetable into a short landscape screen. */
@media(max-height:640px){
 .official-schedule.chapter-scene{height:auto}
 .official-schedule .chapter-sticky{position:relative;height:auto;min-height:0;padding-block:85px 65px}
 .official-schedule .chapter-layout{display:block;height:auto;padding-block:0}
 .official-schedule .chapter-copy{max-width:100%;margin-bottom:35px}
 .official-schedule .chapter-copy>p{display:block}
 .official-schedule .chapter-steps,.official-schedule .chapter-help,.official-schedule .chapter-footer{display:none}
 .official-schedule .days.card-deck{height:auto;max-height:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;width:100%;max-width:none;margin:0}
 .official-schedule .weekend-card{position:relative;transform:none!important;visibility:visible!important;inset:auto;min-height:450px}
 .official-schedule .day-photo{height:150px;min-height:0}
 .official-schedule .day-copy{padding:18px 12px 12px}
 .official-schedule .schedule-event{grid-template-columns:65px minmax(0,1fr);gap:10px}
}
@media(max-height:640px) and (max-width:1000px){
 .official-schedule .days.card-deck{grid-template-columns:1fr}
 .official-schedule .weekend-card{min-height:460px}
 .official-schedule .day-photo{height:190px}
 .official-schedule .weekend-card h3{font-size:30px}
 .official-schedule .schedule-events{gap:14px}
 .official-schedule .schedule-event{grid-template-columns:77px minmax(0,1fr)}
 .official-schedule .schedule-event dd strong{font-size:12px}
 .official-schedule .schedule-event dd>span{font-size:12px;line-height:1.75}
 .official-schedule .day-foot{font-size:7px}
}
html:is(.reduced-motion,:not(.motion-ready)) .official-schedule .day-photo{height:165px;min-height:0}
html:is(.reduced-motion,:not(.motion-ready)) .official-schedule .day-copy{padding:20px 14px 14px}
html:is(.reduced-motion,:not(.motion-ready)) .official-schedule .schedule-event{grid-template-columns:68px minmax(0,1fr);gap:10px}
@media(max-width:760px){
 html:is(.reduced-motion,:not(.motion-ready)) .official-schedule .day-photo{height:180px}
 html:is(.reduced-motion,:not(.motion-ready)) .official-schedule .weekend-card{min-height:460px}
}
@media print{
 .resort-booking{background:white;color:var(--ink);border-color:var(--line)}
 .resort-booking *{color:var(--ink)!important}
 .official-schedule .schedule-event dd *{color:var(--ink)}
 .access-grid,.dresscode-grid{break-inside:avoid}
 .nearby-stay{break-inside:avoid}
 .nearby-stay,.resort-booking,.access-card,.dresscode .reveal{opacity:1!important;transform:none!important}
 .official-schedule .weekend-card{visibility:visible!important}
}


/* ===== revisoes.css ===== */
/* V9 · Ajustes dos noivos. A identidade e a coreografia aprovadas são preservadas. */
.brand img{width:56px;height:56px;object-fit:contain}
.envelope-letter img{width:74px;height:74px;object-fit:contain}
.hero-after img{width:99px;height:99px;object-fit:contain}
.footer-logo{width:110px;height:110px;object-fit:contain}
.rsvp-art img{width:157px;height:157px;object-fit:contain}
.rsvp-dialog .dialog-inner>img{width:100px;height:100px;object-fit:contain}
.intro-action{font-size:13px;line-height:1.5;letter-spacing:.14em;margin-top:47px;gap:15px}
.intro-sound-note{font-size:11px;letter-spacing:.02em;line-height:1.6}
.wax-seal{width:148px;height:148px;left:calc(50% - 74px);top:40.5%}
.opening-photo{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden;will-change:opacity}
.opening-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:46% 44%}
/* No decorative line or separate word competes with the meaning of the title. */
.official-schedule #weekend-title{font:400 1rem/1 var(--serif);max-width:none;letter-spacing:-.015em}
.schedule-title-main{display:block;font-size:clamp(68px,6.2vw,100px);line-height:1;letter-spacing:-.025em}
.schedule-title-rest{display:block;font:italic 400 clamp(45px,4.5vw,70px)/1.1 var(--serif);letter-spacing:-.02em;color:var(--sand);margin-top:19px}
.official-schedule .schedule-events{margin-top:6px}
.official-schedule .weekend-card h3{max-width:none}
.official-schedule .schedule-event dd>span{font-size:12px;line-height:1.75}
.official-schedule .day-photo img{object-fit:cover;object-position:45% 40%}
.place-picture>img{object-position:46% 43%}
.access-card .access-audience{font-size:clamp(12px,1.05vw,15px);letter-spacing:.08em;line-height:1.6;margin-bottom:17px}
.access-card p{font-size:14px;line-height:1.9}
.access-card strong{font-weight:550;color:var(--ink)}
.access-address{font-style:normal;font-size:13px;line-height:1.85;color:var(--muted);margin:19px 0 6px}
.access-card .parking-instruction{padding:17px 21px;margin-top:18px;border-left:1px solid var(--gold);background:var(--sand);color:var(--ink)}
#arrival-extra p{margin-top:15px}
/* A dedicated gift section, now placed BEFORE hotel booking. */
.presence .gift-no-list{display:table;font:400 clamp(22px,2.1vw,30px)/1.3 var(--serif);letter-spacing:0;max-width:90%;color:var(--gold);border-top:1px solid rgba(149,118,52,.28);padding-top:19px;margin:23px auto 0}
.presence .gift-explanation{font-size:14px;line-height:1.9;max-width:56ch}
.gift-content .presence-illustration{height:99px;width:99px}
.gift-content{padding-bottom:20px}
/* The coupon has priority over general hotel links. No made-up code is displayed. */
.coupon-card{display:grid;grid-template-columns:160px 1fr;gap:35px;align-items:center;border:1px solid rgba(149,118,52,.48);background:var(--sand);padding:37px 42px;margin:0 0 23px}
.coupon-value{font:400 96px/.95 var(--serif);letter-spacing:-.04em;color:var(--gold)}
.coupon-value>span{font-size:.4em;letter-spacing:-.02em}
.coupon-copy>.eyebrow{font-size:8px;color:var(--gold);margin-bottom:9px;max-width:none}
.coupon-copy h3{font-size:37px;line-height:1.2;letter-spacing:-.015em;margin-bottom:12px}
.coupon-copy>p:not(.eyebrow){font-size:13px;line-height:1.85;max-width:64ch}
.coupon-copy strong{font-weight:600}
.coupon-copy .coupon-pending{color:var(--gold);font-size:12px;margin-top:15px}
.coupon-code-row{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:20px}
.coupon-code-row code{font:400 27px var(--serif);letter-spacing:.07em;padding:10px 0;overflow-wrap:anywhere}
.coupon-feedback:empty{display:none}
.coupon-copy .coupon-feedback{font-size:11px;color:var(--gold);margin-top:10px}
.advisor-contact{display:grid;grid-template-columns:1.4fr 1fr;gap:45px;padding:28px 0 35px;border-bottom:1px solid var(--line);align-items:center}
.advisor-contact .eyebrow{font-size:8px;margin-bottom:11px;color:var(--gold)}
.advisor-contact h3{font-size:30px;line-height:1.15;margin-bottom:12px}
.advisor-contact p:not(.eyebrow){font-size:13px;line-height:1.85;color:var(--muted);max-width:50ch}
.advisor-action{justify-self:end;text-align:right}
.advisor-contact #advisor-pending{font-size:11px;max-width:29ch;color:var(--gold)}
/* Real resort photos come from the official Club Med page; an offline state is explicit. */
.resort-experiences{margin-top:83px}
.experiences-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:33px}
.experiences-heading .eyebrow{font-size:9px;color:var(--gold);margin-bottom:18px}
.experiences-heading h3{font-size:clamp(46px,4.3vw,65px);letter-spacing:-.025em;line-height:1.04}
.experiences-heading h3 em{color:var(--gold);font-weight:400}
.experiences-heading>p{font-size:13px;line-height:1.85;max-width:35ch}
.resort-photo-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:20px;margin:0 0 32px}
.remote-photo{position:relative;overflow:hidden;background:var(--olive);height:clamp(330px,37vw,540px)}
.remote-photo>img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.remote-photo:hover>img{transform:scale(1.035)}
.resort-sport>img{object-position:50% 68%}
.remote-photo:not(.image-unavailable)::after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(20,28,21,.65));pointer-events:none}
.remote-photo figcaption{position:absolute;bottom:27px;left:27px;right:27px;z-index:2;color:var(--paper);font:italic 26px/1.2 var(--serif);max-width:26ch}
.remote-photo figcaption small{display:block;font:400 8px/1.5 var(--sans);letter-spacing:.11em;text-transform:uppercase;margin-top:12px}
.resort-photo-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:35px;color:var(--paper);background:var(--olive)}
.resort-photo-fallback>span{font-size:9px;letter-spacing:.18em;margin-bottom:25px}
.resort-photo-fallback>p{font:400 25px/1.3 var(--serif);max-width:22ch}
.resort-photo-fallback>a{font-size:10px;text-decoration:underline;text-underline-offset:4px;margin-top:28px;line-height:1.8}
.image-unavailable figcaption{display:none}
.resort-amenities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:29px}
.resort-amenities article{border-top:1px solid var(--line);padding-top:20px}
.amenity-index{display:block;font:16px var(--serif);color:var(--gold);margin-bottom:19px}
.resort-amenities h4{font:400 28px/1.13 var(--serif);margin:0 0 15px;color:var(--ink)}
.resort-amenities p{font-size:12px;line-height:1.85;color:var(--muted)}
.resort-conditions{font-size:11px;line-height:1.9;color:var(--muted);margin-top:28px;max-width:90ch}
.resort-source{font-size:9px;letter-spacing:.08em;margin-top:8px;color:var(--gold)}
.official-lodging .nearby-head{margin-top:77px}
/* The invitation's chosen examples, in editorial frames rather than generic icons. */
.attire-references{padding-top:37px}
.attire-intro{font-size:13px;line-height:1.8;max-width:none;margin-bottom:28px;color:var(--muted)}
.attire-boards{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:start}
.attire-card{background:#fff;border:1px solid rgba(149,118,52,.22);padding:30px 25px 22px}
.attire-card figcaption{margin-bottom:24px}
.attire-card figcaption .eyebrow{font-size:8px;color:var(--gold);margin-bottom:11px;display:block}
.attire-card h3{font:400 36px/1.1 var(--serif)}
.attire-card>p{font-size:10px;color:var(--muted);margin-top:20px;letter-spacing:.02em}
.attire-zoom{display:block;padding:0;width:100%;border:0;cursor:zoom-in}
.attire-zoom img{width:100%;height:auto;object-fit:contain}
.attire-suits{margin-top:95px}
.attire-suits .attire-zoom{padding-block:30px}
.attire-lightbox{width:min(1040px,calc(100% - 28px));padding:12px;background:var(--paper);max-height:95svh;overflow:hidden}
.attire-lightbox .lightbox-viewport{max-height:82svh;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:white}
.attire-lightbox #lightbox-image{display:block;width:100%;height:auto;max-width:none;max-height:none;object-fit:contain;margin:0;background:white;cursor:zoom-in}
.attire-lightbox.is-zoomed #lightbox-image{width:160%;min-width:800px;cursor:zoom-out}
.attire-lightbox .dialog-close{z-index:4;background:var(--paper);border:1px solid var(--line)}
.attire-lightbox .lightbox-caption{color:var(--ink);font-size:13px;padding:13px 12px;margin:0;text-align:center}
@media(max-width:1450px){
 .site-header{padding-inline:28px}.header-actions{gap:15px}.header-links{gap:20px}
 .header-links>a:not(.btn){font-size:8px}.header-links .btn{padding:10px 12px;font-size:8px;gap:12px}
}
@media(max-width:1100px){
 .coupon-card{grid-template-columns:120px 1fr;gap:24px;padding:32px}
 .coupon-value{font-size:81px}.coupon-copy h3{font-size:33px}
 .resort-amenities{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
 .attire-card{padding-inline:20px}
}
@media(max-width:760px){
 .brand img{width:49px;height:49px}.site-header{padding-inline:21px}
 .envelope-letter img{width:57px;height:57px}
 .wax-seal{width:114px;height:114px;left:calc(50% - 57px);top:40%}
 .intro-action{font-size:11px;letter-spacing:.11em;line-height:1.6;margin-top:38px;gap:10px}
 .intro-sound-note{font-size:10px;max-width:29ch;line-height:1.5}
 .hero-after img{width:84px;height:84px;margin-bottom:22px}
 .schedule-title-main{font-size:clamp(39px,11vw,71px);line-height:1}
 .schedule-title-rest{font-size:clamp(28px,8.2vw,48px);line-height:1.1;margin-top:8px}
 .schedule-title-rest br{display:none}
 .official-schedule .chapter-copy h2{max-width:100%}
 .official-schedule .chapter-steps{margin-top:19px}
 .official-schedule .day-copy{padding:18px 13px 12px}
 .official-schedule .weekend-card h3{font-size:28px;line-height:1.05}
 .official-schedule .schedule-event dd>span{font-size:12px;line-height:1.7}
 .official-schedule .schedule-event dt{font-size:27px}
 .access-card .access-audience{font-size:12px;letter-spacing:.075em;margin-bottom:16px}
 .access-card p{font-size:13px}.access-address{font-size:12px}
 .access-card .parking-instruction{padding:17px 18px}
 .presence .gift-explanation{font-size:12px;line-height:1.9;max-width:39ch}
 .presence .gift-no-list{font-size:24px;padding-top:17px;margin-top:21px;max-width:100%}
 .gift-content .presence-illustration{width:80px;height:80px}
 .coupon-card{grid-template-columns:1fr;gap:17px;padding:27px 25px;margin-bottom:18px}
 .coupon-value{font-size:70px}
 .coupon-copy>.eyebrow{font-size:7px;line-height:1.8}
 .coupon-copy h3{font-size:32px;max-width:16ch}
 .coupon-copy>p:not(.eyebrow){font-size:12px;line-height:1.9}
 .coupon-copy .coupon-pending{font-size:11px}
 .coupon-code-row{gap:12px}.coupon-code-row code{font-size:25px;max-width:100%}
 .advisor-contact{display:block;padding:27px 0 32px}
 .advisor-contact h3{font-size:29px}
 .advisor-action{margin-top:20px;text-align:left}
 .advisor-contact #advisor-pending{max-width:none}
 .advisor-contact .btn{width:100%;gap:10px;font-size:9px}
 .resort-experiences{margin-top:55px}
 .experiences-heading{display:block;margin-bottom:26px}
 .experiences-heading h3{font-size:45px}
 .experiences-heading .eyebrow{font-size:8px;margin-bottom:15px}
 .experiences-heading>p{font-size:12px;margin-top:21px;max-width:none}
 .resort-photo-grid{grid-template-columns:1fr;gap:15px}
 .remote-photo{height:auto;aspect-ratio:1.15}
 .resort-sport{aspect-ratio:1.25}.resort-sport>img{object-position:50% 71%}
 .remote-photo figcaption{left:21px;bottom:22px;right:21px;font-size:24px}
 .remote-photo figcaption small{font-size:7px;margin-top:9px}
 .resort-photo-fallback{padding:25px}.resort-photo-fallback>p{font-size:24px}
 .resort-amenities{gap:24px 20px}
 .resort-amenities h4{font-size:24px;line-height:1.13}
 .resort-amenities p{font-size:11px;line-height:1.9}
 .resort-conditions{font-size:10px;line-height:1.9}
 .resort-source{font-size:8px;letter-spacing:.055em;gap:12px}
 .official-lodging .nearby-head{margin-top:50px}
 .attire-references{padding-top:30px}
 .attire-intro{font-size:12px;margin-bottom:24px}
 .attire-boards{grid-template-columns:1fr;gap:23px}
 .attire-card{padding:25px 18px 21px}
 .attire-card h3{font-size:33px}.attire-card figcaption{padding-inline:5px;margin-bottom:20px}
 .attire-suits{margin-top:0}.attire-suits .attire-zoom{padding-block:9px}
 .attire-card>p{font-size:9px;padding-inline:5px}
 .rsvp-art img{height:126px;width:126px}
 .footer-logo{height:100px;width:100px}
}
@media(max-width:760px) and (max-height:740px){
 .intro-eyebrow{margin-bottom:45px}
 .intro-action{margin-top:30px}
 .schedule-title-main{font-size:10.6vw}
 .schedule-title-rest{font-size:7.8vw;margin-top:6px}
 .official-schedule .chapter-steps{margin-top:14px}
 .official-schedule .schedule-event dd>span{font-size:11px}
 .official-schedule .weekend-card h3{font-size:25px}
 .gift-content .presence-illustration{width:59px;height:59px;margin-bottom:15px}
 .presence .gift-no-list{font-size:21px;margin-top:16px;padding-top:15px}
 .presence .gift-explanation{font-size:11px}
}
@media(max-height:640px){
 .gift-scene{height:auto}.gift-sticky{position:relative;height:auto;min-height:0;padding:85px 0}
 .gift-title-line>span{transform:none!important;opacity:1!important}
 .gift-content{padding-bottom:0}
 .intro-eyebrow{margin-bottom:22px}.envelope-perspective{width:min(330px,56vw)}
 .envelope{height:200px}.intro-action{margin-top:25px}
 .intro-action .intro-hairline{display:none}
 .intro-top{top:14px}.intro-bottom{bottom:14px}
}
@media(prefers-reduced-motion:reduce){
 .opening-photo{display:none}
 .remote-photo>img{transition:none}
}
@media print{
 .opening-photo,.attire-zoom::after{display:none!important}
 .coupon-card,.advisor-contact,.resort-experiences,.attire-card{break-inside:avoid}
 .resort-amenities{grid-template-columns:repeat(2,1fr)}
 .remote-photo{height:230px}
 .gift-title-line>span{transform:none!important;opacity:1!important}
}

.showing-opening-photo .film-help{opacity:0;pointer-events:none}
/* Keep the no-gift-list message larger than the generic body-copy selectors. */
#presentes .gift-no-list{font:400 clamp(24px,2.1vw,30px)/1.3 var(--serif);color:var(--ink)}
@media(max-width:760px){#presentes .gift-no-list{font-size:24px}}
@media(max-width:760px) and (max-height:740px){#presentes .gift-no-list{font-size:22px}}
@media(max-height:480px){
 .intro-content{display:flex;align-items:center;justify-content:center;gap:35px;padding:20px 24px}
 .intro-eyebrow{display:none}
 .envelope-perspective{width:min(280px,42vw);margin:0}
 .envelope{height:176px}
 .wax-seal{width:100px;height:100px;left:calc(50% - 50px);top:40%}
 .intro-action{margin:0;max-width:220px;font-size:11px}
 .intro-action .intro-hairline{display:none}
}


/* ===== Confirmação de presença: formulário dentro do convite ===== */
.rsvp-form{text-align:left;margin-top:10px}
.rsvp-choice{display:grid;gap:10px;margin-bottom:28px}
.rsvp-choice-option{position:relative;display:block;cursor:pointer}
.rsvp-choice-option input{position:absolute;opacity:0;width:1px;height:1px}
.rsvp-choice-option span{display:flex;flex-direction:column;gap:4px;padding:15px 17px;border:1px solid var(--line);transition:border-color .25s,background .25s}
.rsvp-choice-option strong{font:500 14px/1.3 var(--sans)}
.rsvp-choice-option small{font-size:10px;letter-spacing:.04em;color:var(--muted)}
.rsvp-choice-option:hover span{border-color:var(--gold)}
.rsvp-choice-option input:checked+span{border-color:var(--gold);background:var(--sand)}
.rsvp-choice-option input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.rsvp-field{display:block;margin-bottom:22px}
.rsvp-field-label{display:block;font-size:11px;font-weight:500;margin-bottom:9px}
.rsvp-optional{font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-left:8px}
.rsvp-form input[type=text],.rsvp-form input[type=tel]{width:100%;min-height:48px;background:transparent;border:1px solid var(--line);padding:11px 13px;color:var(--ink);border-radius:0;font-size:13px}
.rsvp-form input::placeholder{color:#a09f8b}
.rsvp-form input:focus{outline:none;border-color:var(--gold)}
.rsvp-companions{margin-bottom:22px}
.rsvp-hint{font-size:10px;line-height:1.7;color:var(--muted);margin-bottom:12px}
.rsvp-companion-row{display:grid;gap:9px;padding:13px;border:1px dashed var(--line);margin-bottom:10px}
.rsvp-companion-meta{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;height:44px}
.rsvp-companion-kind{display:flex;border:1px solid var(--line);height:44px}
.rsvp-companion-kind label{position:relative;cursor:pointer;margin:0;display:grid}
.rsvp-companion-kind input{position:absolute;opacity:0;width:1px;height:1px}
.rsvp-companion-kind span{display:grid;place-items:center;min-height:42px;padding:0 14px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);transition:background .2s,color .2s}
.rsvp-companion-kind label:hover span{color:var(--ink)}
.rsvp-companion-kind input:checked+span{background:var(--ink);color:var(--paper)}
.rsvp-companion-kind input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.rsvp-form .rsvp-companion-age{display:flex;align-items:center;gap:8px;margin:0;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rsvp-form .rsvp-companion-age-input[type=text]{width:62px;min-height:44px;padding:6px 9px;font-size:13px;text-align:center}
.rsvp-companion-remove{width:44px;height:44px;border:1px solid var(--line);font-size:15px;line-height:1;color:var(--muted);display:grid;place-items:center;flex-shrink:0;margin-left:auto}
.rsvp-companion-remove:hover{border-color:var(--gold);color:var(--ink)}
.rsvp-add-companion{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid currentColor;padding-bottom:3px}
.rsvp-add-companion:hover{color:var(--ink)}
.rsvp-form-status{min-height:20px;font-size:11px;line-height:1.6;color:var(--muted);margin-bottom:4px}
.rsvp-form-status.is-error{color:#8c3f2f}
.rsvp-form .btn{width:100%;margin-top:8px}
.rsvp-privacy{font-size:9px;line-height:1.7;color:var(--muted);margin-top:13px;text-align:center}
.rsvp-success{text-align:center;padding-block:8px 4px}
.rsvp-success h3{font:400 32px/1.1 var(--serif);margin-bottom:14px}
.rsvp-success p{font-size:12px;line-height:1.85;color:var(--muted)}
.rsvp-again{margin-top:18px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.rsvp-again:hover{color:var(--ink)}
.rsvp-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
@media(max-width:768px){
 .rsvp-choice-option span{padding:13px 14px}
 .rsvp-choice-option strong{font-size:13px}
 .rsvp-companion-meta{gap:7px}
 .rsvp-companion-kind span{padding:0 9px}
 .rsvp-form .rsvp-companion-age{gap:6px}
 .rsvp-companion-age-word{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .rsvp-form .rsvp-companion-age-input[type=text]{width:74px;font-size:12px}
 .rsvp-success h3{font-size:27px}
}

@media(max-width:380px){
 .rsvp-companion-meta{gap:6px}
 .rsvp-companion-kind span{padding:0 7px}
 .rsvp-form .rsvp-companion-age-input[type=text]{width:50px}
}

@media(max-width:340px){
 .rsvp-companion-meta{gap:4px}
 .rsvp-companion-kind span{padding:0 5px}
 .rsvp-form .rsvp-companion-age-input[type=text]{width:44px;padding:6px 4px}
}


/* ===== Mobile typography: legibilidade (nada abaixo de 10px no celular) ===== */
@media(max-width:760px){
  /* rótulos em caixa alta com espaçamento */
  .eyebrow{font-size:11px!important;letter-spacing:.16em!important}
  .section-no{font-size:11px!important}
  .dialog .eyebrow{font-size:11px!important}
  .footer .eyebrow{font-size:11px!important;letter-spacing:.13em!important}
  .access-audience{font-size:11px!important}

  /* capa */
  .hero-date{font-size:11px!important;letter-spacing:.15em!important}
  .hero-location{font-size:11px!important;letter-spacing:.04em!important}
  .hero-location span{font-size:10px!important;letter-spacing:.06em!important}
  .scroll-cue{font-size:10px!important;letter-spacing:.14em!important}

  /* fim de semana */
  .day-label{font-size:10px!important;letter-spacing:.09em!important}
  .day-foot{font-size:10px!important;letter-spacing:.07em!important}
  .weekend-note{font-size:12px!important}
  .chapter-steps button{font-size:11px!important;letter-spacing:.1em!important}
  .chapter-steps button span{font-size:11px!important}
  .chapter-footer,.chapter-footer span{font-size:10px!important;letter-spacing:.1em!important}
  #chapter-counter{font-size:10px!important}

  /* local, hospedagem, traj */
  .place-picture figcaption{font-size:10px!important;letter-spacing:.07em!important}
  .stay-index{font-size:10px!important;letter-spacing:.09em!important}
  .stay .status{font-size:11px!important}
  .booking-note{font-size:12px!important}
  .stay-distance{font-size:11px!important}
  figcaption small{font-size:10px!important}
  .attire-card p{font-size:12px!important}

  /* galeria */
  .gallery-note{font-size:10px!important;letter-spacing:.08em!important}
  .mobile-gallery-hint{font-size:10px!important;letter-spacing:.1em!important}
  .gallery-item>span small{font-size:10px!important}

  /* texto corrido */
  .welcome .body-copy,.day p,.place-header p,.place-directions p,.stay>p,
  .rsvp-body>p:not(.eyebrow):not(.micro-note),.faq details p,.weekend-head p,
  .lodging-head p,.presence p:not(.eyebrow):not(.signature),.parking-instruction,
  .access-address,.coupon-copy p,.resort-copy p{font-size:15px!important;line-height:1.8!important}
  .faq summary{font-size:15px!important}
  .welcome-bottom span{font-size:10px!important;letter-spacing:.07em!important}
  .footer-line{font-size:10px!important;letter-spacing:.05em!important}

  /* botões e links */
  .btn{font-size:11.5px!important;letter-spacing:.12em!important}
  .text-link{font-size:11.5px!important;letter-spacing:.1em!important}

  /* avisos e caixas */
  .micro-note{font-size:11px!important}
  .brief-note{font-size:12px!important}
  .dialog p{font-size:15px!important}
  .dialog .helper{font-size:12px!important}
  .dialog-divider{font-size:10px!important}
  .dialog-small-actions button{font-size:11px!important}
  .toast{font-size:13px!important}
  .lightbox-caption{font-size:16px!important}

  /* formulário de confirmação */
  .rsvp-field-label{font-size:13px!important}
  .rsvp-optional{font-size:10px!important;letter-spacing:.12em!important}
  .rsvp-choice-option strong{font-size:15px!important}
  .rsvp-choice-option small{font-size:12px!important}
  .rsvp-hint{font-size:12px!important}
  .rsvp-companion-kind span{font-size:11px!important;letter-spacing:.09em!important}
  .rsvp-form .rsvp-companion-age{font-size:11px!important;letter-spacing:.1em!important}
  .rsvp-add-companion{font-size:11px!important}
  .rsvp-form-status{font-size:13px!important}
  .rsvp-privacy{font-size:11px!important}
  .rsvp-success p{font-size:14px!important}
  .rsvp-again{font-size:11px!important}

  /* campos: 16px evita o zoom automático do iPhone ao digitar */
  .dialog label{font-size:13px!important}
  .rsvp-form input[type=text],.rsvp-form input[type=tel],
  .rsvp-form .rsvp-companion-age-input[type=text],
  .dialog input[type=text],.dialog input[type=url]{font-size:16px!important}

  /* controles flutuantes */
  .sound-cta{font-size:10px!important}
  #ambient-label{font-size:10px!important}
  .preview-badge,.preview-toolbar button,.video-reopen{font-size:10px!important}
}

@media(max-width:760px){
  .cinema-copy>span{font-size:11px!important;letter-spacing:.1em!important}
  .schedule-event dt small{font-size:10px!important;letter-spacing:.05em!important}
  .schedule-event dd strong{font-size:13px!important}
  .schedule-event dd>span,.official-schedule .schedule-event dd>span{font-size:13px!important;line-height:1.7!important}
}
