/* The paper theatre. All photographs are rigid, undistorted planes. */
:root{--stage:#f3eee8;--poster-h:min(65svh,620px);--poster-w:calc(var(--poster-h)*.665)}
html{scroll-behavior:auto}body{background:var(--stage)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.js:not(.reading) .story-reel{display:none}.js.reading .poster-theatre{display:none}.js:not(.reading) .chapter-rail{display:none}.cinema-header{position:absolute;inset:0 0 auto;z-index:25;height:96px;padding:0 4.5%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--wine);background:transparent}.cinema-wordmark{font:44px/.9 var(--serif);letter-spacing:-.055em;text-align:center;padding:15px 12px}.cinema-wordmark em{font-size:.7em;padding:0 2px}.cinema-wordmark small{display:block;font:8px var(--sans);letter-spacing:.17em;margin-top:10px}.header-left,.header-right{display:flex;align-items:center;gap:20px}.header-right{justify-content:flex-end}.cinema-header button,.cinema-header .wedding-link,.back-to-posters{font:12px var(--sans);letter-spacing:.07em;min-height:44px;display:inline-flex;align-items:center;gap:14px;padding:10px 0}.cinema-header .wedding-link{border-bottom:1px solid #64233440}.back-to-posters{display:none}.reading .cinema-header{position:fixed;height:72px;background:#f3eee8f5;border-bottom:1px solid #64233420}.reading .cinema-wordmark{font-size:30px}.reading .cinema-wordmark small{font-size:6px;margin-top:7px}.reading .back-to-posters{display:inline-flex}.reading .header-left .chapter-toggle{display:none}.reading .act{scroll-margin-top:72px}.reading .act:first-child{padding-top:110px}.reading .chapter-rail{bottom:24px}.reading .invitation{padding-top:110px}
.poster-theatre{height:100svh;min-height:660px;position:relative;overflow:hidden;background:var(--stage);color:var(--wine);isolation:isolate;user-select:none}.poster-theatre:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 50% 40%,#fffcf9 0%,#f6f1eb 45%,#ebe4dc 100%)}.theatre-edition{position:absolute;top:106px;left:4.5%;right:4.5%;margin:0;display:flex;justify-content:space-between;font:9px var(--sans);letter-spacing:.16em;color:#75685f;z-index:2;pointer-events:none}.theatre-floor{position:absolute;width:65%;height:60px;bottom:135px;left:17.5%;border-radius:50%;background:radial-gradient(ellipse,#58403920,transparent 65%);filter:blur(15px);pointer-events:none}.poster-stage{position:absolute;inset:124px 0 136px;perspective:1400px;perspective-origin:50% 48%;transform-style:preserve-3d;touch-action:pan-y;cursor:grab;outline:0;z-index:3}.poster-stage.is-dragging{cursor:grabbing}.film-poster{position:absolute;left:50%;top:50%;width:var(--poster-w);height:var(--poster-h);margin-left:calc(var(--poster-w)*-.5);margin-top:calc(var(--poster-h)*-.5);padding:0;background:none;border:0;border-radius:0;transform-style:preserve-3d;will-change:transform;cursor:inherit;text-align:center;font-family:var(--serif);opacity:0}.film-poster.is-selected{cursor:pointer}.poster-stage.is-dragging .film-poster{cursor:grabbing}.poster-face{position:absolute;inset:0;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:0 4px 8px #29130e12,0 24px 40px #3e252022;outline:1px solid #ffffff20;container-type:inline-size}.poster-front{transform:translateZ(.5px);background:var(--paper)}.poster-front:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 1px 0 #fff6,inset -1px 0 #0003}.poster-back{transform:rotateY(180deg);background:#eee3d7;color:var(--wine);display:flex;flex-direction:column;align-items:center;padding:8% 5% 7%;background-image:linear-gradient(105deg,#fff4,transparent 40%,#845e3820)}.poster-face>img{position:absolute;inset:0;pointer-events:none;object-fit:cover}.paper-glint{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,#fff1,transparent 35%,#fff1 60%,transparent);mix-blend-mode:screen;opacity:.5}.print-top{position:absolute;top:5%;left:6%;right:6%;font:2.1cqw var(--sans);letter-spacing:.16em;z-index:3}.print-bottom{position:absolute;bottom:4%;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;font:2.5cqw var(--sans);letter-spacing:.15em;z-index:4}.print-bottom>span:first-child{font:3cqw var(--zh);letter-spacing:.5em}.poster-title{display:block;position:absolute;left:0;right:0;line-height:.85;font-weight:400;letter-spacing:-.055em;z-index:2}.poster-title>span{display:block}.poster-title i{font-weight:400}.poster-photo{position:absolute;display:block;overflow:hidden}.poster-photo img{pointer-events:none}.poster-vignette{position:absolute;inset:0;background:linear-gradient(0deg,#1a1414b3,transparent 18%,transparent 68%,#1a141450);z-index:1}.poster-one{color:#fff8ed}.poster-one .poster-front>img{object-fit:cover;object-position:50% 68%}.poster-one .poster-title{top:10%;font-size:17.5cqw}.poster-one .poster-title i{display:block;font-size:.63em;line-height:.94;margin:3% 0 1%}.poster-one .poster-title>span:last-child{font-size:1.22em;letter-spacing:-.065em}.poster-vertical{position:absolute;right:5%;top:43%;writing-mode:vertical-rl;z-index:3;font:1.8cqw var(--sans);letter-spacing:.16em}.poster-two .poster-front{background:#ead8cf;color:#4a2030}.poster-two .print-top{top:4.8%}.poster-two .poster-title{top:11%;font-size:15.8cqw;left:3%;right:3%}.poster-two .poster-title i{display:block;font-size:1.6em;line-height:.7;position:relative;left:25%;top:7px;z-index:3}.poster-two .poster-photo{top:29%;left:6%;right:6%;bottom:10%;transform:rotate(-2deg)}.poster-two .poster-photo img{object-position:50% 48%}.poster-two .print-bottom{bottom:3.6%}.poster-three .poster-front{background:#642334;color:#f5e4d7}.poster-three .poster-photo{left:10%;right:10%;top:12%;bottom:14%}.poster-three .poster-photo img{object-position:50% 50%}.poster-three .poster-title{font-size:24cqw;top:61%;left:-2%;right:-1%;text-shadow:0 1px 14px #43172535}.poster-three .poster-subtitle{position:absolute;bottom:10%;left:0;right:0;font:2.2cqw var(--sans);letter-spacing:.25em}.poster-three .poster-back{background:#d6b9b0}.poster-four .poster-front{background:#f4e9d8;color:#642334}.invitation-border{position:absolute;inset:3%;border:1px solid #927d6666;outline:1px solid #927d6644;outline-offset:-5px}.poster-four .print-top{top:8%;font-size:2cqw}.poster-four .poster-title{top:16%;font-size:23cqw;line-height:.8}.poster-four .poster-title>span:first-child{padding-right:10%}.poster-four .poster-title>span:last-child{padding-left:14%;margin-top:1.5%}.poster-four .poster-title i{font-size:.6em}.poster-four .poster-subtitle{position:absolute;top:45%;left:0;right:0;font:2cqw var(--sans);letter-spacing:.18em}.poster-seal{position:absolute;left:50%;top:52%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:16%;aspect-ratio:1;border:1px solid #8c6666;border-radius:50%;font:italic 8cqw var(--serif);letter-spacing:-.1em}.poster-seal>span{font-size:.45em;align-self:flex-end;margin-bottom:17%;padding:0 5%}.poster-wedding-date{position:absolute;left:0;right:0;top:65%;font:18cqw/.9 var(--serif)}.poster-wedding-date>span{display:block;font:2.5cqw var(--sans);letter-spacing:.2em;margin-top:6%}.poster-invite-line{position:absolute;left:0;right:0;bottom:12%;font:3cqw var(--zh);letter-spacing:.12em}.poster-four .print-bottom{left:8%;right:8%;bottom:6%;font-size:2cqw}.poster-four .print-bottom>span:first-child{font-size:2.5cqw}.poster-four .poster-back{background:#f7eee3}.back-edition{font:2cqw var(--sans);letter-spacing:.1em}.back-quote{font:15cqw/.95 var(--serif);letter-spacing:-.06em;display:block;margin:auto 0 0}.back-quote i{font-weight:400}.back-flower{display:block;font:10cqw var(--serif);margin:8% 0 3%}.back-caption{font:3.2cqw/2 var(--zh);letter-spacing:.12em}.back-date{font:2.2cqw var(--sans);letter-spacing:.2em;margin-top:auto;padding-top:10%}
.gallery-bottom{position:absolute;bottom:65px;left:4.5%;right:4.5%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px;z-index:5}.selected-chapter{display:flex;align-items:baseline;gap:15px;margin:0}.selected-count{font:9px var(--sans);letter-spacing:.09em}.selected-title{font:22px var(--zh);letter-spacing:.1em}.selected-english{font:italic 19px var(--serif);letter-spacing:-.02em}.poster-controls{display:flex;gap:10px;align-items:center}.poster-controls>button{width:44px;height:44px;font:23px var(--serif)}.poster-dots{display:flex;gap:3px}.poster-dots>button{font:14px var(--serif);width:34px;height:44px;position:relative;opacity:.45}.poster-dots>button[aria-current=true]{opacity:1}.poster-dots>button:after{content:'';position:absolute;left:50%;bottom:4px;width:3px;height:3px;background:currentColor;border-radius:50%;opacity:0;transform:translateX(-50%);transition:opacity .3s}.poster-dots>button[aria-current=true]:after{opacity:1}.enter-scene{justify-self:end;display:inline-flex;align-items:center;gap:35px;border-bottom:1px solid #64233480;padding:12px 0;font:13px var(--zh);letter-spacing:.08em;min-height:44px}.enter-scene span{font:21px var(--sans);transition:transform .4s}.enter-scene:hover span{transform:translate(3px,-3px)}.theatre-footer{position:absolute;bottom:18px;left:4.5%;right:4.5%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font:9px var(--sans);letter-spacing:.08em;color:#6b6059;z-index:5}.theatre-footer .motion-control{display:inline-flex;justify-self:start;gap:10px;font:10px var(--sans);padding:8px 0;min-height:28px}.theatre-footer .motion-control span{opacity:.7}.theatre-signature{justify-self:end;font-size:8px;letter-spacing:.15em}.drag-hint{font-size:10px;letter-spacing:.1em}.is-entering .film-poster{pointer-events:none}.is-entering .gallery-bottom,.is-entering .theatre-footer{opacity:0;transition:opacity .3s}.poster-flight{position:fixed;inset:0;z-index:90;pointer-events:none;display:none;overflow:hidden}.poster-flight.active{display:block}.flying-paper{position:absolute;transform-origin:center center;box-shadow:0 20px 80px #1a101044}.flying-paper>.poster-face{transform:none;backface-visibility:visible;box-shadow:none}.flying-paper .poster-back{display:none}.skip-transition{background:#f3eee8;color:#642334;border:1px solid #64233450;padding:12px 18px;right:4.5%;bottom:20px}.scene-curtain>div{background:var(--stage)}.scene-curtain>span{color:var(--wine)}.scene-curtain.active{z-index:85}.scene-curtain[data-edit=cut]>div{background:var(--wine)}.scene-curtain[data-edit=cut]>span{color:var(--paper)}
/* Reading room retains the paper, photography and chapter identity. */
.story-reel{background:var(--paper)}.act-rule{min-height:30px}.act-rule>span:first-child{font:italic 19px var(--serif)}.encounter-heading{max-width:1050px;margin-top:55px}.encounter-heading h2{font-size:clamp(32px,4vw,62px);line-height:1.5;letter-spacing:.03em}.encounter-layout{grid-template-columns:1fr 2.9fr;gap:8%}.encounter-photo{margin-top:0;aspect-ratio:1.65}.intimacy-layout{margin-top:70px}.intimacy-photo{box-shadow:0 24px 70px #0003}.event-details,.premiere-card{max-width:1000px}.rsvp-dialog{border-left:1px solid #b7a395;box-shadow:12px 12px 0 -5px #e5dace,0 35px 100px #0005;transform-origin:left center}.rsvp-dialog[open]{animation:reply-unfold .55s cubic-bezier(.2,.7,.25,1)}.rsvp-dialog::before{content:'';position:absolute;inset:0 auto 0 0;width:14px;background:linear-gradient(90deg,#8d6f4d20,transparent);pointer-events:none}.reply-card{background:#f8f3eb}.rsvp-dialog form input:not([type=radio]),.rsvp-dialog select,.rsvp-dialog textarea{font-size:16px}.rsvp-dialog fieldset label{min-height:44px}.reply-status{line-height:1.8}.poster-stage:focus-within .film-poster:focus-visible{outline:2px solid #642334;outline-offset:8px}
@keyframes reply-unfold{from{opacity:0;transform:perspective(1200px) rotateY(-25deg) translateX(-15px)}to{opacity:1;transform:perspective(1200px) rotateY(0) translateX(0)}}
@media(min-width:1700px){:root{--poster-h:min(68svh,730px)}.poster-stage{perspective:1800px}.theatre-edition{top:120px}.gallery-bottom{bottom:78px}.theatre-footer{bottom:25px}}
@media(max-width:1100px){.selected-english{display:none}.gallery-bottom{gap:12px}.poster-stage{perspective:1200px}.cinema-header{padding:0 4%}.theatre-edition{left:4%;right:4%}}
@media(max-width:700px){:root{--poster-w:min(76vw,calc((100svh - 270px)*.665));--poster-h:calc(var(--poster-w)*1.5)}.cinema-header{height:88px;padding:0 22px;grid-template-columns:1fr auto 1fr}.cinema-wordmark{font-size:34px;padding:12px 0}.cinema-wordmark small{font-size:6px;letter-spacing:.13em;margin-top:8px}.cinema-header button,.cinema-header .wedding-link,.back-to-posters{font-size:11px;gap:6px;letter-spacing:0;white-space:nowrap}.cinema-header .menu-icon{display:none}.header-left,.header-right{gap:0}.cinema-header .wedding-link{border:0}.cinema-header .wedding-link>span{font-size:15px}.poster-theatre{min-height:650px}.theatre-edition{top:105px;left:24px;right:24px;font-size:7px;letter-spacing:.09em}.theatre-edition span:nth-child(2){display:none}.poster-stage{inset:138px 0 164px;perspective:1000px;perspective-origin:50% 50%}.theatre-floor{bottom:173px;left:8%;width:84%;height:30px;filter:blur(8px)}.film-poster{box-shadow:none}.poster-face{box-shadow:0 8px 13px #29130e12,0 22px 33px #3e252022}.gallery-bottom{bottom:60px;left:24px;right:24px;grid-template-columns:1fr auto;gap:12px;align-items:center}.selected-chapter{gap:12px}.selected-count{font-size:9px}.selected-title{font-size:19px;letter-spacing:.07em}.enter-scene{grid-column:2;grid-row:1;font-size:12px;gap:18px;min-height:44px;padding:12px 0}.poster-controls{grid-column:1/-1;grid-row:2;justify-self:center;gap:10px}.poster-controls>button{width:40px;height:34px}.poster-dots>button{height:34px;width:32px;font-size:13px}.poster-dots>button:after{bottom:0}.theatre-footer{left:24px;right:24px;bottom:18px;grid-template-columns:1fr auto;font-size:9px}.theatre-footer .motion-control{display:inline-flex;font-size:10px;min-height:30px}.drag-hint{font-size:9px;letter-spacing:.03em}.theatre-signature{display:none}.reading .cinema-header{height:66px;padding:0 22px}.reading .cinema-wordmark{font-size:28px}.reading .cinema-wordmark small{font-size:5px}.reading .back-to-posters{display:inline-flex;font-size:10px}.reading .act{scroll-margin-top:65px}.reading .act:first-child,.reading .invitation{padding-top:96px}.encounter-heading{margin-top:36px}.encounter-heading h2{font-size:31px}.encounter-layout{display:flex;gap:0}.encounter-photo{aspect-ratio:1.07}.intimacy-layout{margin-top:35px}.chapter-rail a{min-height:44px}.chapter-rail{padding:3px 4px}.reading .chapter-rail{bottom:14px}.skip-transition{font-size:11px;bottom:18px;right:22px}.scene-footnote{align-items:flex-start;gap:12px}.rsvp-dialog{max-height:90svh}.rsvp-dialog h2{font-size:27px}.rsvp-dialog .dialog-close{top:10px;right:10px}.result-actions .text-link{min-height:44px}.poster-three .poster-title{top:62%}.print-top{font-size:2.4cqw}.print-bottom{font-size:2.8cqw}}
@media(max-height:700px) and (min-width:701px){:root{--poster-h:58svh}.cinema-header{height:80px}.theatre-edition{top:90px}.poster-stage{inset:112px 0 130px}.poster-theatre{min-height:560px}}
@media(max-width:370px){.cinema-header{padding:0 18px}.cinema-wordmark{font-size:30px}.cinema-header .wedding-link{font-size:10px}.theatre-edition,.gallery-bottom,.theatre-footer{left:20px;right:20px}.selected-chapter{gap:10px}.selected-title{font-size:18px}.enter-scene{font-size:11px;gap:14px}.rsvp-dialog h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){.rsvp-dialog[open]{animation:none}.flying-paper{transition:none}}
.theatre-footer .motion-control{min-height:44px;font-size:12px}
@media(max-width:700px){.theatre-footer{bottom:8px}}
