@font-face{font-family:Cormorant;src:url(assets/cormorant.ttf)}@font-face{font-family:Pinyon;src:url(assets/pinyon.ttf)}:root{--paper:#eee7d9;--ink:#403e31;--wine:#632b34;--line:#403e3133}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Cormorant,Georgia,serif;font-size:20px}body:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}a{color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--wine);outline-offset:7px}header{height:80px;position:absolute;top:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;z-index:30}nav{display:flex;gap:32px}nav a,header button{font:11px Arial,sans-serif;letter-spacing:.1em;text-decoration:none}header button{background:none;border:1px solid var(--line);padding:10px 14px;border-radius:30px}.monogram{font:38px Pinyon,cursive;text-decoration:none}.monogram span{font-size:20px}.skip{position:fixed;top:-100px;left:20px;z-index:100;padding:15px;background:white}.skip:focus{top:15px}.eyebrow,.fine,.small,.credit{font:10px/1.7 Arial,sans-serif;letter-spacing:.19em}.small{letter-spacing:.06em;color:#575448}.script{font-family:Pinyon,cursive;font-weight:400}.envelope-scene{height:260vh}.envelope-stage{position:sticky;top:0;height:100svh;min-height:620px;display:flex;align-items:center;justify-content:center;perspective:1800px;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#f7f2e8 5%,#e2d9c9 100%)}.top-note{position:absolute;top:18%;text-align:center}.top-note span{margin:0 20px}.envelope{position:relative;width:min(700px,80vw);aspect-ratio:1.58;transform-style:preserve-3d;transform:rotate(-4deg);}.face{position:absolute;inset:0;background:#f5eedf;backface-visibility:hidden;border:1px solid #d8cebd;box-shadow:4px 28px 35px #4b392b33}.front{text-align:center;padding:40px 20px;background:linear-gradient(125deg,#f9f3e8,#efe5d3)}.invited{display:block;font-size:36px;margin-top:0}h1{font-size:76px;line-height:1.05;letter-spacing:-.055em;font-weight:400;margin:16px 0}h1 i{font-family:Pinyon;font-size:.85em;font-weight:400;margin:0 8px}.front p{font:11px Arial;letter-spacing:.16em;margin:24px 0 12px}.front address{font-style:normal;font-size:19px;line-height:1.5}.front .fine{display:block;font-size:8px;margin-top:28px}.postage{position:absolute;right:25px;top:20px;width:62px;height:78px;border:1px dashed #968e79;padding:5px;color:#76765a}.postage svg{height:48px;fill:none;stroke:currentColor;stroke-width:1.2}.postage small{display:block;font:6px Arial;letter-spacing:1px}.back{transform:rotateY(180deg);background:#e9deca}.folds{position:absolute;inset:0;background:linear-gradient(32deg,#efe6d5 49.6%,#cec1a9 49.9%,transparent 50.2%),linear-gradient(-32deg,#f5ecdb 49.6%,#c8bca6 49.9%,transparent 50.2%)}.flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 60%);background:linear-gradient(#f7eede,#e1d3bc);transform-origin:top;transition:transform .8s;filter:drop-shadow(0 3px 2px #56442c33)}.seal{position:absolute;left:calc(50% - 48px);top:calc(55% - 48px);height:96px;width:96px;border-radius:47% 53% 45% 52% / 51% 43% 56% 49%;background:radial-gradient(circle at 35% 25%,#ad5b60,#75303a 60%,#4e2029);box-shadow:1px 7px 8px #3f211c50,inset 2px 3px 3px #e69a8466,inset -3px -3px 4px #351923;border:2px solid #8e454d;transition:opacity .4s,transform .6s}.seal svg{width:100%;fill:none;stroke:#461d28;stroke-width:1.8;filter:drop-shadow(0 1px 0 #c87577)}.seal g{fill:#763540}.seal:hover{transform:scale(1.07)}.letter-peek{position:absolute;inset:12px 20px;background:#faf5ea;text-align:center;padding:35px;font:40px Pinyon;transition:transform 1s}.opened .flap{transform:rotateX(170deg)}.opened .seal{opacity:0;pointer-events:none;transform:scale(1.2)}.opened .letter-peek{transform:translateY(-90px)}.scroll-cue{position:absolute;bottom:5%;font:10px Arial;letter-spacing:.15em;text-align:center}.arrow{display:block;font:24px Cormorant;margin-top:15px}.invitation{position:relative;padding:110px 20px 140px;background:#e6ddcd}.paper{max-width:730px;margin:auto;background:#f9f4e9;padding:75px 50px 65px;text-align:center;box-shadow:0 20px 70px #52473115;outline:1px solid #9e8a6122;outline-offset:-15px}.together{font-size:47px;margin:35px 0 0}h2{font-size:clamp(48px,6.5vw,90px);line-height:.98;font-weight:400;letter-spacing:-.045em;margin:25px 0}h2 em{font-weight:400}h3{font-size:36px;font-weight:400;margin:8px 0}.rule{width:60px;height:1px;background:#968567;margin:30px auto}.names{font-size:33px;margin:22px 0}.invitation-copy{line-height:1.5}.date{font-size:27px;margin:34px 0 10px}.text-link{font:11px Arial,sans-serif;letter-spacing:.08em;display:inline-block;padding:15px 0;border-bottom:1px solid #857c68;text-decoration:none}.text-link span{margin-left:30px}.margin-note{position:absolute;bottom:48px;right:7%;font:25px/1.2 Pinyon;transform:rotate(-7deg)}.vineyard{height:300vh;background:#263527}.vineyard-stage{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;color:#fff8e9}.road{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#12241980,#18231d20)}.vineyard-copy{position:absolute;left:8%;top:25%;max-width:800px}.vineyard-copy h2{font-size:clamp(50px,6vw,86px)}.vineyard-copy p{font-size:24px}.toast-copy{position:absolute;left:10%;top:25%;opacity:0}#bottle-stage{position:absolute;inset:0;opacity:0;pointer-events:none}#bottle{width:100%;height:100%}.bottle-fallback{display:none;position:absolute;left:61%;top:30%;width:150px;height:300px;border-radius:50px 50px 20px 20px;background:linear-gradient(90deg,#13221b,#52683c 30%,#111d16 80%);box-shadow:inset 6px 0 12px #ffffff40;transform:rotate(12deg)}.neck{position:absolute;width:50px;height:110px;bottom:95%;left:50px;background:linear-gradient(90deg,#a08c49,#eee0a0,#a08740);border-radius:10px 10px 0 0}.label{position:absolute;top:95px;width:100%;padding:14px 4px;background:#ebe0b9;color:#3a3526;text-align:center;font-size:28px}.label small{display:block;font:7px/3 Arial;letter-spacing:1px}.label em{font:22px Pinyon}.foam{position:absolute;inset:-20%;background:radial-gradient(circle at 25% 40%,#fff9e8 0 12%,transparent 12.3%),radial-gradient(circle at 75% 60%,#f8edda 0 18%,transparent 18.3%),radial-gradient(ellipse at 50% 100%,#eee7d9 0 60%,transparent 60.3%);transform:translateY(110%);pointer-events:none}.memories{padding:110px 6vw;background:var(--paper)}.section-heading{text-align:center;margin-bottom:65px}.section-heading p{font-size:22px}.photo-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:30px;align-items:center;max-width:1350px;margin:auto}.photo-grid figure{margin:0}.photo-grid figure:first-child:last-child{grid-column:2}.photo-grid img{width:100%;max-height:620px;object-fit:cover;display:block}.photo-grid figure:nth-child(1){transform:rotate(-3deg)}.photo-grid figure:nth-child(3){transform:rotate(3deg)}figcaption{font:24px Pinyon;text-align:center;padding:18px 0}.credit{text-align:center;margin-top:40px;font-size:8px}.weekend{display:grid;grid-template-columns:1fr 1fr;gap:9vw;padding:110px 10vw;background:#56303a;color:#f4e9d9}.weekend-intro>.script{display:block;font-size:45px;margin-top:35px}.weekend-intro>p{line-height:1.6}.schedule-row{border-top:1px solid #e8d6bf44;padding:25px 0 35px;display:flex;gap:25px}.schedule-row>span{font:11px Arial;padding-top:15px;color:#d1b5a5}.schedule-row p{margin:10px 0}.schedule-row small{font:12px/1.7 Arial;color:#ddcbbc}.weekend .text-link{border-color:#c9afa0}.visit{display:grid;grid-template-columns:1.05fr 1fr;gap:7vw;padding:120px 6vw;align-items:center}.venue-photo{position:relative}.venue-photo img{width:100%;height:660px;object-fit:cover}.venue-photo>span{position:absolute;bottom:25px;left:25px;color:white;font:9px Arial;letter-spacing:.15em}.visit h2{font-size:65px}.address{line-height:1.5}details{border-top:1px solid var(--line);padding:20px 0;font-size:21px}details:first-of-type{margin-top:40px}summary{cursor:pointer}details p{font:14px/1.8 Arial;max-width:440px}.closing{text-align:center;padding:100px 20px 110px;background:#ded8c8}.closing .script{font-size:42px}.closing h2{font-size:clamp(45px,6vw,80px)}footer{display:flex;justify-content:space-between;padding:25px 4vw;font:8px Arial;letter-spacing:.16em}@media(max-width:700px){header{height:70px;padding:0 6vw}nav{gap:15px}nav a{font-size:9px}nav a:first-child{display:none}header button{font-size:9px;padding:9px}.envelope-stage{min-height:550px}.envelope{width:88vw}.front{padding:25px 12px}.invited{font-size:24px}h1{font-size:46px;margin:9px 0}.front p{font-size:7px;margin:15px 0 8px}.front address{font-size:14px}.front .fine{font-size:5px;margin-top:17px}.postage{width:37px;height:48px;right:12px;top:12px;padding:3px}.postage svg{height:29px}.postage small{font-size:4px;letter-spacing:0}.top-note{font-size:7px;top:22%;letter-spacing:.12em}.top-note span{margin:0 6px}.seal{width:72px;height:72px;left:calc(50% - 36px);top:calc(55% - 36px)}.paper{padding:55px 22px}.together{font-size:37px}.invitation{padding:65px 18px 110px}.paper h2{font-size:70px}.date{font-size:24px}.paper>p:not([class]){font-size:17px}.margin-note{font-size:22px;bottom:25px}.vineyard-copy{left:7%;right:7%;top:20%}.vineyard-copy h2{font-size:51px}.toast-copy{left:7%;top:16%}.toast-copy h2{font-size:60px}.photo-grid{grid-template-columns:1fr 1fr;gap:15px}.photo-grid figure:nth-child(2){grid-column:1 / -1;grid-row:1}.photo-grid figure:first-child:last-child{grid-column:1 / -1}.photo-grid img{max-height:520px}figcaption{font-size:21px}.memories{padding:75px 7vw}.weekend{grid-template-columns:1fr;padding:70px 8vw;gap:45px}.visit{grid-template-columns:1fr;padding:65px 7vw;gap:35px}.venue-photo img{height:390px}.visit h2{font-size:57px}.closing .script{font-size:32px}footer span:nth-child(2){display:none}.bottle-fallback{left:62%;transform:scale(.7) rotate(12deg)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.envelope-scene{height:100svh}.envelope-stage{min-height:550px}.vineyard{height:90svh}.vineyard-stage{min-height:550px}.road{transform:none!important}.foam,#bottle-stage,.toast-copy{display:none!important}.envelope{transform:rotate(-3deg)!important}.face.back{display:none}.letter-peek,.flap,.seal{transition:none}}
.intro-loader{display:none;position:fixed;inset:0;background:#282c24;color:#f5eddd;z-index:90;align-items:center;justify-content:center;flex-direction:column;pointer-events:none}.intro-loader.visible{display:flex;animation:loader-out .6s 1.3s both}.intro-loader svg{height:130px;fill:none;stroke:#d9cab0;stroke-width:1}.intro-loader p{font-size:49px;margin:25px 0 15px}.intro-loader>span{font:9px Arial;letter-spacing:.22em}.intro-loader>div{height:1px;width:170px;background:#dbcfb6;margin-top:35px;transform-origin:left;animation:load-line 1.2s both}.letter-portrait{width:145px;height:180px;object-fit:cover;border-radius:80px 80px 2px 2px;filter:sepia(.12);mix-blend-mode:multiply}.slide-controls{display:flex;gap:20px;align-items:center;justify-content:center}.slide-controls button{border:1px solid #9e9788;background:transparent;border-radius:50%;width:42px;height:42px;color:var(--ink)}.slide-controls span{font:9px Arial;letter-spacing:.1em}#slide-photo{aspect-ratio:3/4;object-fit:cover;transition:opacity .25s}.foam:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,#fffbed 0 2px,transparent 3px),radial-gradient(circle,#fffbed99 0 5px,transparent 7px);background-size:47px 61px,103px 137px;opacity:.8}.slideshow:focus-within{outline:1px solid #847765;outline-offset:10px}@keyframes load-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes loader-out{to{opacity:0;visibility:hidden}}@media(prefers-reduced-motion:reduce){.intro-loader.visible{display:none}#slide-photo{transition:none}}

/* Revision 2: a single reversible invitation theatre. */
header{position:fixed;height:68px;background:linear-gradient(#eee7d9e8,#eee7d9b0);backdrop-filter:blur(12px);border-bottom:1px solid #665f4415;transition:background .4s,color .4s}header nav{opacity:.8}header .monogram{font-size:31px}body.dark-chapter header{background:linear-gradient(#18251dda,#18251d80);color:#f7eddb;border-color:#f7eddb22}body.dark-chapter header button{border-color:#f7eddb55;color:inherit}.chapter-rail{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:35;display:flex;flex-direction:column;gap:0;width:122px;color:#645d4e}.chapter-rail>a{height:44px;display:flex;align-items:center;text-decoration:none;position:relative;gap:12px;padding-left:27px;opacity:.68}.chapter-number{font:9px Arial;letter-spacing:.08em}.chapter-label{font:9px Arial;letter-spacing:.06em;opacity:0;white-space:nowrap;transition:opacity .2s}.chapter-rail a[aria-current="step"],.chapter-rail a:hover,.chapter-rail a:focus-visible{opacity:1}.chapter-rail a[aria-current="step"] .chapter-label,.chapter-rail a:hover .chapter-label,.chapter-rail a:focus-visible .chapter-label{opacity:1}.chapter-rail a[aria-current="step"]:before{content:"";position:absolute;left:8px;width:7px;height:7px;background:#743f49;border-radius:50%;box-shadow:0 0 0 3px #743f491a}.vine-line{position:absolute;left:0;top:0;width:25px;height:100%;fill:none;stroke:currentColor;stroke-width:.7;opacity:.55}.dark-chapter .chapter-rail{color:#fff1d9}.dark-chapter .chapter-rail a[aria-current="step"]:before{background:#e6c692}.envelope-scene{height:600svh}.envelope-stage{height:100svh;min-height:560px;isolation:isolate;perspective:1600px}.envelope{z-index:3;width:min(670px,75vw);transform:rotate(-4deg);will-change:transform}.front:after,.folds:after,.flap:after,.paper:after{content:"";position:absolute;inset:0;background:url(assets/paper-cotton.png) center/500px;mix-blend-mode:multiply;opacity:.3;pointer-events:none}.front,.folds,.flap{background-color:#f2e8d7}.front{background-image:linear-gradient(135deg,#fff8e630,#bda98a1f)}.flap{transition:none;backface-visibility:visible;z-index:2}.seal{z-index:3;transition:box-shadow .2s;will-change:transform}.folds{z-index:1}.back{overflow:visible}.front .postage{z-index:1}.top-note{top:14%;z-index:6}.scroll-cue{z-index:7;bottom:3%;padding:10px 20px;border-radius:30px;background:#eee7d955;backdrop-filter:blur(4px)}.letter-flight{position:absolute;width:min(520px,74vw);height:min(690px,76svh);left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);will-change:transform;pointer-events:none}.paper{height:100%;position:relative;padding:30px 24px 20px;background:#faf5e9;outline-offset:-11px;box-shadow:0 25px 65px #3f322e38;transform-style:preserve-3d;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.paper .eyebrow{font-size:8px}.paper .together{font-size:34px;margin:10px 0 0}.paper h2{font-size:58px;margin:0 0 12px;letter-spacing:-.05em}.paper h2 i{font-family:Pinyon;font-weight:400}.paper .letter-portrait{width:102px;height:125px;flex-shrink:0}.paper .invitation-copy{font-size:20px;line-height:1.25;margin:14px 0 8px}.paper .date{font-size:23px;margin:9px 0}.paper .letter-place{font-size:18px;line-height:1.3;margin:0 0 9px}.paper .small{font-size:9px;margin:6px 0}.letter-signoff{font-size:29px;margin-top:9px}.letter-bend{width:100%;transform-origin:bottom center;backface-visibility:visible}.letter-bend:after{content:"";position:absolute;inset:0;background:linear-gradient(#392c161a,transparent 70%);opacity:var(--curl-shadow,0);pointer-events:none}.paper .letter-bend{position:relative}.vineyard{height:350svh}.road{transform:none!important}#vineyard-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}#bottle-stage{inset:auto;position:absolute;left:50%;top:67%;width:clamp(180px,25vw,390px);height:77svh;opacity:1;transform:translate(-50%,-100%) scale(.07);transform-origin:50% 100%;z-index:3}.real-bottle{height:100%;width:100%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(7px 5px 6px #18231555)}.bottle-ground-shadow{position:absolute;bottom:-1%;left:10%;width:110%;height:5%;border-radius:50%;background:#111b16a0;filter:blur(8px);transform:skewX(-35deg)}.vineyard-copy{z-index:4;max-width:65%}.toast-copy{z-index:4;pointer-events:none}.toast-copy h2{font-size:clamp(40px,5vw,74px)}.foam{z-index:6}.intro-loader{pointer-events:auto}.intro-loader.visible{animation:none;display:flex}.intro-loader.is-dismissed{opacity:0;visibility:hidden;transition:opacity 1.2s,visibility 1.2s}.intro-loader>div{animation:load-line 4.5s cubic-bezier(.2,.6,.2,1) both}.intro-loader>svg{stroke-dasharray:500;stroke-dashoffset:500;animation:draw-bottle 3s ease forwards}.intro-loader>p{animation:intro-letter 1.6s ease both}.intro-loader>span{animation:intro-letter 1.6s .4s both}.intro-loader #enter-site{margin-top:35px;padding:13px 5px;border:0;border-bottom:1px solid #cfbfa955;color:#f4ead5;background:none;font:10px Arial;letter-spacing:.12em;animation:intro-letter 1s .9s both}.intro-loader #enter-site span{margin-left:30px}@keyframes draw-bottle{to{stroke-dashoffset:0}}@keyframes intro-letter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}body.intro-active{overflow:hidden}.simple .letter-flight{position:relative;left:auto;top:auto;transform:none;margin:60px auto;opacity:1;clip-path:none;pointer-events:auto}.simple .envelope-stage{height:auto;display:flex;flex-direction:column;padding:180px 0 80px;overflow:visible}.simple .envelope-scene{height:auto!important}.simple .top-note{top:110px}.simple .scroll-cue{display:none}.simple .envelope{flex-shrink:0}.simple .chapter-rail a[href="#seal"]{display:none}@media(min-width:1100px){.weekend,.visit{padding-right:12vw}.memories{padding-right:10vw}}@media(max-width:900px){.chapter-rail{right:7px;width:35px}.chapter-label{position:absolute;right:33px;background:#eee7d9ed;color:#403e31;padding:8px 12px;border-radius:3px}.chapter-rail a{padding-left:23px;height:38px}.chapter-number{font-size:7px}.vine-line{width:22px}.chapter-rail a[aria-current="step"] .chapter-label{opacity:0}.chapter-rail a:hover .chapter-label,.chapter-rail a:focus-visible .chapter-label{opacity:1}.chapter-rail a[aria-current="step"]:before{left:6px}.vineyard-copy{max-width:80%}}@media(max-width:700px){.envelope{width:82vw}.front{padding:24px 12px}.front h1{font-size:43px}.front .fine{font-size:4.6px}.top-note{top:19%}.letter-flight{width:80vw;height:min(600px,73svh);left:48%}.paper{padding:22px 16px}.paper h2{font-size:43px;margin:0 0 10px}.paper .together{font-size:29px}.paper .eyebrow{font-size:6px}.paper .letter-portrait{width:85px;height:105px}.paper .date{font-size:20px}.paper .invitation-copy{font-size:17px}.paper .letter-place{font-size:16px}.letter-signoff{font-size:26px}#bottle-stage{width:40vw;height:69svh}.vineyard-copy h2{font-size:44px}.toast-copy{left:6%;top:20%}.toast-copy h2{font-size:45px}.scroll-cue{font-size:8px}.intro-loader>p{font-size:39px}.photo-grid{padding-right:10px}}@media(max-height:700px){.letter-flight{height:77svh}.paper .letter-portrait{height:75px;width:65px}.paper .together{font-size:26px}.paper h2{font-size:38px}.paper .invitation-copy{margin:8px 0 4px;font-size:16px}.paper .date{font-size:19px;margin:6px}.paper .letter-place{font-size:15px}.letter-signoff{font-size:22px}.paper .small{font-size:8px}.top-note{top:14%}}@media(prefers-reduced-motion:reduce){.intro-loader.visible{display:none}.letter-flight{will-change:auto}.envelope-stage{overflow:visible}.chapter-rail{transition:none}.simple .envelope-stage{min-height:0}.paper .letter-portrait{filter:none}}

@media(hover:hover) and (pointer:fine){body,body *{cursor:url("assets/grape-cursor.svg") 4 3,auto}a,button,summary,[role="button"],a *,button *,summary *{cursor:url("assets/grape-cursor-active.svg") 4 3,pointer}input,textarea,[contenteditable="true"]{cursor:text}}
/* Palette drawn from Aidan's supplied fall floral moodboard. */
:root{--ink:#303a47;--wine:#853f37;--copper:#a96d49;--navy:#26354b}.seal{background:radial-gradient(circle at 32% 23%,#b56c52,#893f36 64%,#592d32);border-color:#9c5846;box-shadow:1px 7px 8px #3f211c50,inset 2px 3px 3px #e2a17d77,inset -3px -3px 4px #49262b}.seal svg{stroke:#552c30;filter:drop-shadow(0 1px 0 #d49476)}.seal g{fill:#914a3c}.weekend{background:#26354b}.schedule-row>span{color:#dcab83}.weekend .text-link{border-color:#b9825f}.chapter-rail{color:#6b655a}.chapter-rail a[aria-current="step"]:before{background:#a96d49;box-shadow:0 0 0 3px #a96d491c}.closing{background:#e7d9c9}.postage{color:#35465b;border-color:#a79278}.paper .eyebrow,.letter-signoff{color:#855638}.rule{background:#b37a54}

/* Spatial revision: photographic depth, freely curling paper, tactile wax. */
#vineyard-space{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;transition:opacity 1s}.spatial-ready #vineyard-space{opacity:1}.spatial-ready .road{opacity:0}.vineyard .shade{z-index:2;pointer-events:none;background:linear-gradient(90deg,#19251d55,transparent 70%)}.spatial-message{position:absolute;z-index:4;left:9%;top:30%;opacity:0;transform:translateY(15px)}.spatial-message h2{font-size:clamp(48px,6vw,82px)}.vineyard-depth-cue{position:absolute;bottom:6%;left:8%;right:15%;z-index:4;display:flex;align-items:center;gap:20px;font:9px Arial;letter-spacing:.16em}.journey-line{width:100px;height:1px;background:#f8eddc55;position:relative}.journey-line i{position:absolute;inset:0;background:#f5d7a8;transform:scaleX(0);transform-origin:left}.look-hint{font-size:8px;letter-spacing:.05em;opacity:.8}.vineyard-mist{position:absolute;inset:0;background:#eee7d9;opacity:0;z-index:5;pointer-events:none}#letter-silk{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}.paper-webgl-ready .letter-flight{opacity:0!important}.seal{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:50%;width:118px;height:118px;left:calc(50% - 59px);top:calc(55% - 59px)}.seal img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(1px 4px 3px #513b2744)}.seal:focus-visible{outline:2px solid #70432d;outline-offset:5px}.envelope-stage .flap{filter:none}.spatial-message{text-shadow:0 2px 18px #15241955}@media(max-width:700px){.seal{width:90px;height:90px;left:calc(50% - 45px);top:calc(55% - 45px)}.spatial-message{left:7%;right:12%;top:27%}.spatial-message h2{font-size:48px}.vineyard-depth-cue{left:7%;right:12%;gap:12px}.look-hint{display:none}.journey-line{width:70px}}@media(prefers-reduced-motion:reduce){#letter-silk,#vineyard-space,.vineyard-depth-cue{display:none}.spatial-ready .road{opacity:1}.paper-webgl-ready .letter-flight{opacity:1!important}}
/* The vineyard enters through the paper instead of meeting it at a hard edge. */
.vineyard{position:relative;margin-top:clamp(-280px,-24svh,-160px);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 clamp(160px,24svh,280px),#000 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 clamp(160px,24svh,280px),#000 100%)}
@media(prefers-reduced-motion:reduce){.vineyard{margin-top:-100px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 100px);mask-image:linear-gradient(to bottom,transparent,#000 100px)}}

/* Full-screen embossed invitation, recreated from the supplied floral reveal reference. */
.botanical-reveal{position:absolute;inset:0;z-index:5;overflow:hidden;perspective:1500px;background:#eee9df;opacity:0;pointer-events:none;will-change:clip-path}
.botanical-bed{position:absolute;inset:0;background: url(assets/botanical-relief.svg) center/460px, url(assets/paper-cotton.png) center/550px;box-shadow:inset 0 0 110px #6e5c391b}
.botanical-veil{position:absolute;inset:-6%;z-index:2;background:linear-gradient(#f3eee3b0,#eee9df90),url(assets/botanical-relief.svg) center/105vh,url(assets/paper-cotton.png) center/600px;transform-origin:50% 20%;box-shadow:0 25px 65px #5c50392b}
.reveal-flap{position:absolute;inset:0 0 35%;z-index:4;transform-origin:50% 0;clip-path:polygon(0 0,100% 0,100% 37%,50% 97%,0 37%);background:linear-gradient(155deg,#faf6ef99,#e4dcca66),url(assets/paper-cotton.png) center/600px;backface-visibility:hidden}
.reveal-flap img{position:absolute;width:clamp(95px,11vw,150px);height:auto;left:50%;top:74%;transform:translateX(-50%);filter:drop-shadow(0 5px 5px #5c402f55)}
.botanical-opening #letter-silk{display:none}
.botanical-opening .letter-flight{z-index:3;left:50%;top:50%;width:min(490px,64vw);height:min(760px,79svh);transform:translate(-50%,-50%)}
.botanical-opening .paper{max-width:none;border-radius:48% / 30%;background:#fbf8f1;outline:none;padding:45px 32px;box-shadow:0 8px 35px #72614320,inset 0 0 20px #fffdf8;overflow:hidden}
.botanical-opening .paper:after{opacity:.14}
.botanical-opening .letter-portrait{border-radius:48% 48% 44% 44%;width:80px;height:100px;object-fit:cover}
.botanical-opening .paper .together{font-size:38px;margin:10px 0 3px}
.botanical-opening .paper h2{font-size:62px;margin:0 0 13px}
.botanical-opening .paper .eyebrow{letter-spacing:.14em}
.botanical-opening .scroll-cue{z-index:7}
.simple .botanical-reveal{position:relative;inset:auto;width:100%;opacity:1;overflow:visible;clip-path:none;will-change:auto;margin-top:45px;padding:40px 0}
.simple .botanical-veil,.simple .reveal-flap{display:none}
.simple .botanical-opening .letter-flight{position:relative;left:auto;top:auto;transform:none;opacity:1;margin:auto;height:690px;max-height:none}
@media(max-width:700px){.botanical-bed{background-size:310px,500px}.botanical-opening .letter-flight{width:80vw;left:48%;height:min(680px,76svh)}.botanical-opening .paper{padding:38px 16px;border-radius:49% / 24%}.botanical-opening .paper h2{font-size:44px}.botanical-opening .paper .together{font-size:30px}.botanical-opening .paper .eyebrow{font-size:6px}.botanical-opening .paper .date{font-size:19px}.botanical-opening .letter-portrait{width:72px;height:90px}.simple .botanical-opening .letter-flight{height:630px}}
@media(max-height:740px) and (prefers-reduced-motion:no-preference){.botanical-opening .paper{padding:28px 22px}.botanical-opening .paper .eyebrow{font-size:6px}.botanical-opening .paper .together{font-size:26px;margin:3px 0}.botanical-opening .paper h2{font-size:38px;margin-bottom:5px}.botanical-opening .paper .letter-portrait{width:48px;height:60px}.botanical-opening .paper .invitation-copy{font-size:16px;margin:6px 0}.botanical-opening .paper .date{font-size:18px;margin:5px 0}.botanical-opening .paper .letter-place{font-size:15px}.botanical-opening .letter-signoff{font-size:23px;margin:4px 0}}

.botanical-bed{background-image:url(assets/botanical-relief.svg),linear-gradient(#eee9dfbb,#eee9dfbb),url(assets/paper-cotton.png)}

/* Reference refinement: sealed folds → illustrated vellum → embossed oval invitation. */
.botanical-veil{z-index:4;inset:0;background:url(assets/hibiscus-vellum.svg) center/auto 110% no-repeat,linear-gradient(#edece4ed,#e8e7dfeb),url(assets/paper-cotton.png) center/650px;box-shadow:0 10px 45px #3e3a2322;transform-origin:50% 50%}
.reveal-flap{z-index:6;inset:0;clip-path:polygon(0 0,100% 0,100% 26%,50% 64%,0 26%);background:linear-gradient(160deg,#faf7ee44,#e4dfd522),url(assets/paper-cotton.png) center/650px;background-color:#ede9df;backface-visibility:visible}
.reveal-flap img{top:49%;width:clamp(100px,12vw,150px)}
.reveal-pocket{position:absolute;inset:0;z-index:5;clip-path:polygon(0 26%,50% 64%,100% 26%,100% 100%,0 100%);background:linear-gradient(35deg,transparent 49.8%,#bdb4a655 50%,transparent 50.2%),linear-gradient(-35deg,transparent 49.8%,#bdb4a655 50%,transparent 50.2%),linear-gradient(#ede9dfbb,#ede9dfbb),url(assets/paper-cotton.png) center/650px}
.botanical-bed{background-size:310px,auto,550px;background-color:#eeece5}
.botanical-opening .paper{border-radius:50%;box-shadow:0 3px 26px #72614317,inset 0 0 30px #fffdf8}
.simple .reveal-pocket{display:none}
/* Champagne stays behind controls and never captures pointer/touch events. */
.intro-loader{background:radial-gradient(ellipse at 30% 80%,#645133,#302e26 58%,#202824);isolation:isolate}
.champagne-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.intro-loader>svg,.intro-loader>p,.intro-loader>span,.intro-loader>div,.intro-loader>button{position:relative;z-index:1}
.weekend{position:relative;isolation:isolate;overflow:hidden}.weekend-intro,.schedule{position:relative;z-index:1}
.weekend .champagne-canvas{opacity:.7;mask-image:linear-gradient(90deg,#000,transparent 50%,#000)}
.champagne-toggle{position:absolute;bottom:24px;left:8%;z-index:2;background:#26354b;border:1px solid #c9b88c66;color:#eadcc4;border-radius:30px;padding:9px 14px;font:10px Arial;letter-spacing:.05em}
@media(prefers-reduced-motion:reduce){.champagne-canvas,.champagne-toggle{display:none}}

.envelope-film[hidden]{display:none}.envelope-film{position:fixed;inset:0;z-index:25;background:#eee9df}.envelope-film video{width:100%;height:100%;display:block;object-fit:contain}.film-controls{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:12px;white-space:nowrap}.film-controls button{border:1px solid #80735b77;background:#f6f0e5ee;color:#303a47;border-radius:30px;padding:11px 16px;font:11px Arial}.film-playing{overflow:hidden}.film-playing .chapter-rail{z-index:31}.film-playing header{z-index:32}.champagne-toggle{color:#fff4dc;background:#172337}
@media(max-width:700px){.film-controls{gap:6px}.film-controls button{font-size:10px;padding:11px 12px}}
/* Keep rail numbers readable when the rail straddles light and dark sections. */
.chapter-number{background:#eee7d9;color:#625c52;border-radius:3px;padding:2px}.dark-chapter .chapter-number{background:#26354b;color:#faeed9}
.chapter-rail>a{opacity:1}

/* Let the paper's sign-off clear before the vineyard starts entering. */
.vineyard{height:400svh;margin-top:clamp(-120px,-10svh,-70px)}
@media(prefers-reduced-motion:reduce){.vineyard{height:auto;margin-top:-45px}}
.botanical-bed{mask-image:linear-gradient(to bottom,#000 calc(100% - 160px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 160px),transparent 100%)}
/* Guest information: a persistent, quiet header and an editorial weekend itinerary. */
header .desktop-nav{gap:24px;opacity:1}header .desktop-nav a{padding:12px 0}header .nav-rsvp{border-bottom:1px solid currentColor}.header-actions{display:flex;align-items:center;gap:12px}.site-menu{display:none}.site-menu summary{font:11px Arial;letter-spacing:.08em;padding:12px;cursor:pointer}.site-menu nav{position:absolute;right:0;top:67px;width:min(330px,92vw);padding:18px 24px;background:#f5efe4;color:#303a47;border:1px solid #c4b8a0;box-shadow:0 15px 35px #29302222;display:flex;flex-direction:column;gap:0}.site-menu nav a{display:block!important;padding:15px 8px;border-bottom:1px solid #b7aa9133}.site-menu summary span{margin-left:10px;font-size:12px}.site-menu[open] summary{background:#b99b7030;border-radius:20px}
.weekend{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:7vw;padding-top:120px;padding-bottom:100px}.weekend-intro{position:sticky;top:115px;align-self:start}.weekend-intro h2{font-size:clamp(48px,5.3vw,76px)}.weekend-intro .schedule-note{font:12px/1.8 Arial;letter-spacing:0;color:#e1d8c9;max-width:370px}.weekend-days{position:relative;z-index:1;min-width:0}.weekend-day{border-top:1px solid #d3bc9444;padding:32px 0 46px;scroll-margin-top:95px}.weekend-day:first-child{padding-top:0;border-top:0}.weekend-day h3{font-size:37px;line-height:1.1;margin:10px 0 17px}.weekend-day>p{font-size:20px;line-height:1.6}.weekend-day>.eyebrow{font:10px/1.7 Arial;letter-spacing:.15em;color:#e7be91}.weekend-day .event-meta{font:11px/1.7 Arial;letter-spacing:.035em;color:#e1d8c9}.weekend-day .event-footnote{font:12px/1.8 Arial;color:#e1d8c9}.welcome-day>.script{display:block;font-size:36px;color:#ecd0a8;margin-top:22px}.day-jumps{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 12px}.day-jumps a{font:11px Arial;padding:12px 8px;border-bottom:1px solid #dfcaa266;text-decoration:none}.wedding-timeline{list-style:none;padding:0;margin:30px 0}.wedding-timeline li{display:grid;grid-template-columns:105px minmax(0,1fr);gap:22px;border-top:1px solid #e8d6bf33;padding:24px 0}.wedding-timeline time{font:11px/1.6 Arial;color:#ecd0a8;padding-top:6px}.wedding-timeline h4,.afterparty-note h4{font:400 28px/1.1 Cormorant,Georgia,serif;margin:0 0 10px}.wedding-timeline p{font-size:19px;line-height:1.5;margin:0}.afterparty-note{padding:26px;background:#18283c;border:1px solid #cab18d44}.afterparty-note .eyebrow{font-size:9px;color:#ecd0a8}.afterparty-note p{font-size:18px;line-height:1.6}.guest-section{padding:90px 12vw 90px 8vw;display:grid;grid-template-columns:1fr 1fr;gap:8vw;scroll-margin-top:68px}.guest-section h2{font-size:clamp(48px,5.3vw,76px);margin-top:18px}.guest-section p{line-height:1.6}.explore-section{background:#e8dece}.explore-copy{align-self:center}.faq-section{background:#f2ebdf}.faq-list details{border-top:1px solid #91857255;padding:18px 0}.faq-list details:last-child{border-bottom:1px solid #91857255}.faq-list summary{font:500 23px/1.35 Cormorant,Georgia,serif;cursor:pointer;padding:7px 25px 7px 0;list-style:revert}.faq-list details p{font:16px/1.75 Arial;letter-spacing:0;color:#454b4d;margin:15px 0}.response-section{background:#e8dece}.registry-note{align-self:center;border-left:1px solid #a7998255;padding-left:35px}.registry-note h3{font-size:36px}.visit-copy details p{font-size:18px}.site-footer{display:block;background:#e0d5c4;color:#303a47;padding:55px 8vw 22px;font:11px/1.8 Arial;letter-spacing:.05em}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}.footer-names{font:42px Pinyon,cursive;margin:0 0 12px}.site-footer nav{display:flex;flex-direction:column;gap:0}.site-footer nav a{font:12px/1.7 Arial;padding:8px 0;text-decoration:none}.site-footer a:hover{text-decoration:underline}.footer-contact a{display:inline-block;margin-top:12px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #91857255;padding-top:18px;margin-top:35px;font-size:9px}.site-footer p{margin:0 0 10px}
@media(max-width:1050px){header .desktop-nav{display:none}.site-menu{display:block;border:0;margin:0}.weekend{gap:5vw;padding-left:7vw;padding-right:10vw}.wedding-timeline li{grid-template-columns:90px minmax(0,1fr);gap:15px}}
@media(max-width:700px){.weekend{grid-template-columns:1fr;padding:75px 13vw 85px 7vw;gap:35px}.weekend-intro{position:relative;top:auto}.weekend-intro h2{font-size:51px}.weekend-day h3{font-size:34px}.wedding-timeline li{grid-template-columns:78px minmax(0,1fr);gap:14px}.wedding-timeline h4{font-size:25px}.wedding-timeline time{font-size:10px}.wedding-timeline p{font-size:18px}.afterparty-note{padding:20px}.guest-section{grid-template-columns:1fr;gap:25px;padding:70px 13vw 70px 7vw}.guest-section h2{font-size:51px}.registry-note{border-left:0;border-top:1px solid #a7998255;padding:25px 0 0}.footer-top{grid-template-columns:1fr;gap:25px}.footer-bottom{flex-direction:column;gap:5px}.site-footer{padding:45px 13vw 22px 7vw}.site-menu nav{right:0}.chapter-rail>a{height:34px}.chapter-rail .vine-line{height:100%}}
@media print{header,.chapter-rail,.intro-loader,.envelope-film,.champagne-canvas,.champagne-toggle,.envelope-scene,.vineyard,.memories,.venue-photo{display:none!important}.weekend,.guest-section,.visit,.site-footer{display:block!important;background:white!important;color:#222!important;padding:15px!important}.weekend-intro{position:static}.weekend p,.weekend time,.weekend .eyebrow{color:#222!important}.weekend-day{break-inside:avoid}.site-footer nav,.day-jumps{display:none!important}}
header details.site-menu{margin:0;padding:0;border:0}.day-jumps a:first-child,.site-footer nav a:first-child{display:block}.faq-list details:first-of-type{margin-top:0}

/* Keep navigation legible over dark scenes and preserve the itinerary sticky column. */
body.dark-chapter header .desktop-nav a,body.dark-chapter header .monogram,body.dark-chapter header .header-actions{color:#f7eddb}body.dark-chapter header #sound{color:#f7eddb}.weekend{overflow:clip}

/* Travel and local favorites: airy editorial sections, with useful links close to each place. */
.guest-jumps{display:flex;flex-wrap:wrap;gap:8px 18px;margin:25px 0}.guest-jumps a,.guest-jumps a:first-child{display:block;font:12px/1.5 Arial;text-decoration:none;border-bottom:1px solid #9c876455;padding:10px 0}.guest-jumps a:hover{border-color:currentColor}.travel-expanded{align-items:start;gap:65px 7vw}.travel-heading>p,.travel-block>p{font-size:22px;line-height:1.6;max-width:750px}.travel-heading h2{font-size:clamp(48px,5.3vw,76px)}.travel-venue img{display:block;width:100%;height:280px;object-fit:cover}.travel-venue>div{padding:24px 0}.travel-venue p{font-size:23px;line-height:1.4;margin:12px 0}.travel-block{grid-column:1/-1;scroll-margin-top:95px;border-top:1px solid #a7998266;padding-top:35px}.travel-block h3{font-size:39px;margin:15px 0}.airport-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:30px 0}.airport-card{border-top:1px solid #a7998255;padding-top:25px}.airport-code{font:48px/1 Cormorant,Georgia,serif;color:#80522f;letter-spacing:.06em}.airport-card h4,.stay-grid h4{font:400 28px Cormorant,Georgia,serif;margin:10px 0}.airport-card p,.stay-grid p,.getting-around p{font-size:20px;line-height:1.6}.place-links{display:flex;flex-wrap:wrap;gap:10px 25px}.place-links .text-link{line-height:1.5}.place-links .text-link span{margin-left:8px}.travel-block .travel-note{font:13px/1.8 Arial;max-width:900px;padding:20px 24px;background:#dfd4c133}.stay-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin:30px 0}.getting-around{display:grid;grid-template-columns:1fr 1.2fr;gap:7vw}.explore-expanded{display:block}.explore-heading{max-width:700px;margin-bottom:55px}.places-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px 6vw}.place-card{border-top:1px solid #a7998266;padding:28px 0 15px;min-width:0}.place-card h3{font-size:35px;margin:16px 0 8px}.place-card .place-meta{font:11px/1.7 Arial;letter-spacing:.035em;color:#705941}.place-card p{font-size:21px;line-height:1.6}.place-card>.eyebrow{color:#80522f}.faq-intro{position:sticky;top:100px;align-self:start}.faq-jumps{flex-direction:column;align-items:flex-start}.faq-group{scroll-margin-top:95px;margin-bottom:40px}.faq-group h3{font-size:29px;margin:0 0 15px}.faq-group details:first-of-type{margin-top:0}.faq-group:last-child{margin-bottom:0}.story-caption{font-style:italic}.faq-list a{ text-underline-offset:3px }
@media(max-width:700px){.travel-expanded{grid-template-columns:1fr;padding:70px 13vw 70px 7vw;gap:35px}.travel-heading h2{font-size:51px}.travel-block{grid-column:auto}.airport-grid,.stay-grid,.getting-around,.places-grid{grid-template-columns:1fr;gap:25px}.travel-venue img{height:220px}.travel-block h3{font-size:32px}.airport-code{font-size:42px}.travel-heading>p,.travel-block>p,.place-card p{font-size:20px}.place-card h3{font-size:31px}.faq-intro{position:static}.faq-jumps{flex-direction:row;gap:6px 16px}.guest-jumps a{font-size:11px}.explore-heading{margin-bottom:30px}.travel-block .travel-note{padding:17px}.getting-around{gap:5px}}
@media print{.faq-intro{position:static}.airport-grid,.stay-grid,.places-grid{display:block}.faq-group,.place-card{break-inside:avoid}}

/* Real engagement photographs beneath translucent paper; original image colors retained. */
.photo-story{position:relative;isolation:isolate;background:#eee7d9;overflow:clip}.photo-story:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#eee7d9 0%,#eee7d9e8 18%,#eee7d9e3 70%,#eee7d9 100%),url(assets/proposal-woods.jpg) center/cover no-repeat;pointer-events:none}.photo-story .section-heading{max-width:760px;margin:0 auto 70px}.photo-story .section-heading p{line-height:1.6}.photo-story .photo-grid{gap:35px;align-items:center}.photo-story .photo-grid figure{padding:9px 9px 0;background:#fbf7eed9;box-shadow:0 12px 35px #30271918}.photo-story .photo-grid img{height:auto;max-height:none;aspect-ratio:2/3;object-fit:contain;background:transparent;filter:none}.photo-story .photo-grid figure:nth-child(1){transform:rotate(-2deg)}.photo-story .photo-grid figure:nth-child(3){transform:rotate(2deg)}.photo-story .slide-controls{padding-bottom:18px}.story-details{max-width:1050px;margin:95px auto 0;display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:45px;align-items:center}.story-details figure{margin:0}.story-details img{display:block;width:100%;height:auto}.story-details figcaption{font-size:24px}.story-note{text-align:center}.story-note>.script{font-size:42px;line-height:1.15;margin:20px 0}.story-note>p:not(.script){font-size:22px;line-height:1.6}.place-card .place-photo{display:block;width:100%;height:370px;object-fit:cover;object-position:center 65%;margin:23px 0 27px}.photo-story figcaption{color:#403e31}.photo-story .credit{line-height:1.8}
@media(max-width:700px){.photo-story{padding:75px 13vw 70px 7vw}.photo-story .section-heading{margin-bottom:45px}.photo-story .photo-grid{grid-template-columns:1fr;gap:35px;padding:0;max-width:430px}.photo-story .photo-grid figure,.photo-story .photo-grid figure:nth-child(1),.photo-story .photo-grid figure:nth-child(3){display:block;transform:none}.story-details{grid-template-columns:1fr 1fr;gap:20px;margin-top:50px}.story-note{grid-column:1/-1;grid-row:1}.story-note>.script{font-size:37px}.story-details figcaption{font-size:21px}.place-card .place-photo{height:330px}}

@media(max-width:700px){.photo-story .photo-grid figure:nth-child(2){grid-column:auto;grid-row:auto}}

/* A photographic welcome, followed by the existing invitation theatre. */
.wedding-hero{position:relative;min-height:760px;height:100svh;isolation:isolate;overflow:hidden;background:#283326;color:#fff7e9}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 78%;z-index:-2}.wedding-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#172318b8 0%,#18231880 33%,transparent 68%),linear-gradient(0deg,#1e29194d,transparent 45%,#18251d44)}.hero-copy{position:absolute;left:8vw;top:50%;transform:translateY(-45%);max-width:42%;text-shadow:0 2px 15px #0003}.hero-copy .eyebrow{font-size:10px;letter-spacing:.2em}.hero-copy h1{font-size:clamp(85px,9.5vw,150px);line-height:.88;font-weight:400;letter-spacing:-.05em;margin:30px 0}.hero-copy h1 span{font:0.6em Pinyon,cursive}.hero-date{font-size:28px;margin:24px 0 12px}.hero-location{font:12px/1.8 Arial;letter-spacing:.09em}.hero-invite{display:inline-flex;align-items:center;gap:40px;padding:16px 0;margin-top:17px;border-bottom:1px solid #fff7e999;text-decoration:none;font:11px Arial;letter-spacing:.09em}.hero-invite span{font:25px Cormorant}.hero-invite:focus-visible{outline-color:#fff7e9}.hero-signoff{position:absolute;right:8vw;bottom:35px;font-size:32px;text-shadow:0 2px 10px #0009}.front .envelope-names{font-size:76px;line-height:1.05;letter-spacing:-.055em;font-weight:400;margin:16px 0}.front .envelope-names i{font-family:Pinyon;font-size:.85em;font-weight:400;margin:0 8px}
@media(max-width:700px){.wedding-hero{height:100svh;min-height:720px}.hero-photo{object-position:58% 65%}.wedding-hero:after{background:linear-gradient(180deg,#162417ad 0%,#15231670 35%,transparent 66%,#18241d66 100%)}.hero-copy{left:7vw;right:13vw;top:110px;transform:none;max-width:none}.hero-copy h1{font-size:76px;line-height:.93;margin:20px 0}.hero-copy h1 br{display:none}.hero-copy .eyebrow{font-size:8px}.hero-date{font-size:24px;margin:18px 0 7px}.hero-location{font-size:10px}.hero-invite{margin-top:4px;padding:9px 0}.hero-signoff{right:13vw;bottom:18px;font-size:27px}.front .envelope-names{font-size:43px}}
@media print{.wedding-hero{display:none}}

/* Frame the upper part of the portrait; keep faces clear of the header. */
.hero-photo{object-position:50% 48%}.envelope-film video{object-fit:cover}
@media(max-width:700px){.hero-photo{object-position:58% 30%}}

/* Give the portrait its own wide-screen area so the sign and faces fit together. */
@media(min-width:701px){.wedding-hero{background:#283326 url(assets/hero-korbel.jpg) center 35%/cover no-repeat}.hero-photo{left:auto;right:0;width:62%;object-position:50% 38%;mask-image:linear-gradient(90deg,transparent,black 22%)}.wedding-hero:after{background:linear-gradient(90deg,#172318e8 0%,#172318b3 32%,#17231822 62%,transparent),linear-gradient(0deg,#1e29194d,transparent 45%,#18251d33)}}
@media(min-width:701px){.wedding-hero{background:#243020}.hero-signoff{right:auto;left:8vw;bottom:22px}}
.botanical-bed{background:linear-gradient(#f5f0e6aa,#ebe4d5aa),url(assets/paper-cotton.png) center/650px}
/* Final framing adjustment: move the photograph slightly lower. */
@media(min-width:701px){.hero-photo{object-position:50% 32%}}
@media(max-width:700px){.hero-photo{object-position:58% 25%}}
