:root{--ink:#2d3943;--paper:#f4efdf;--wine:#334859;--wine-dark:#253a4b;--stage:#f4efdf;--muted:#d0d9de;--serif:'Fraunces',Georgia,serif;--rust:#a95f44;--lake:#a8c0cd;--line:rgba(244,239,223,.3)}
body{background:var(--paper);color:var(--ink)}::selection{background:#d4bb86;color:#253a4b}.cinema-header{color:#334859}.cinema-wordmark{font-size:39px;font-weight:400;letter-spacing:-.065em}.cinema-wordmark small{font-size:7px;letter-spacing:.18em;margin-top:13px}.cinema-header .wedding-link{border-color:#33485955}.cinema-header .menu-icon{height:8px}.reading .cinema-header{background:#f4efdfed;border-color:#33485922}.reading .cinema-wordmark{font-size:29px}.reading .cinema-wordmark small{font-size:6px}.poster-theatre{background:var(--paper);color:#334859}.poster-theatre:before{background:radial-gradient(ellipse at 65% 40%,#fffbed 0%,#f6f0df 40%,#e6e8df 100%)}.theatre-edition{color:#66737a}.theatre-edition span:nth-child(2){letter-spacing:.19em}.theatre-floor{background:radial-gradient(ellipse,#33485920,transparent 67%)}.theatre-footer{color:#59626a}.film-poster::after{content:'';position:absolute;left:100%;width:7px;top:2px;bottom:2px;transform-origin:left center;transform:rotateY(90deg);background:repeating-linear-gradient(0deg,#e9deca 0 1px,#fff7e5 1px 3px);border-right:1px solid #a5a194;pointer-events:none}.poster-face{box-shadow:3px 4px 0 #c2b9a6,5px 5px 1px #e6ddc9,0 24px 42px #30404c25;border-radius:1px 3px 3px 1px;outline:1px solid #67717a20}.poster-front:before{content:'';position:absolute;inset:0 auto 0 0;width:4%;z-index:5;background:linear-gradient(90deg,#3545521c,transparent 60%,#fff2 80%,#35455210);border-right:1px solid #fff2;pointer-events:none}.poster-front:after{box-shadow:inset 1px 0 #fff5,inset -1px 0 #0002}.paper-glint{background:linear-gradient(100deg,#fff1,transparent 25%,#fff1 48%,transparent);opacity:.4}.poster-one{color:#2b3c4e}.poster-one .poster-front>img{object-fit:cover;object-position:center}.poster-one .print-top{top:5%;left:14%;font-size:2cqw;letter-spacing:.16em}.poster-one .poster-title{top:13%;font-size:21cqw;line-height:.9;left:8%;right:2%;letter-spacing:-.075em}.poster-one .poster-title i{display:block;font-size:.68em;line-height:1.3;margin:0;letter-spacing:-.055em}.poster-one .poster-subtitle{position:absolute;left:8%;right:0;top:33%;font:3cqw var(--zh);letter-spacing:.1em}.poster-one .print-bottom{background:#f4efdfd9;left:8%;right:7%;bottom:4%;padding:3% 4%;color:#334859;font-size:1.9cqw}.print-bottom>span:first-child{font:italic 3.5cqw var(--serif);letter-spacing:0}.poster-two .poster-front{background:#f5e6c9;color:#70432f}.book-frame{position:absolute;inset:4%;border:1px solid #b792634d;outline:1px solid #b792632e;outline-offset:-4px}.poster-two .print-top{top:7%;font-size:2cqw;letter-spacing:.14em}.poster-two .poster-title{top:14%;font-size:17.2cqw;left:7%;right:7%;line-height:.95;letter-spacing:-.07em}.poster-two .poster-title i{position:static;display:block;font-size:.92em;line-height:1.05;letter-spacing:-.07em}.poster-two .poster-subtitle{position:absolute;top:39%;left:0;right:0;font:2.8cqw var(--zh);letter-spacing:.1em}.poster-two .poster-photo{top:45%;bottom:12%;left:9%;right:9%;transform:none;border:1px solid #8c775244;outline:1px solid #8c775244;outline-offset:4px}.poster-two .poster-photo img{object-position:48% 60%}.poster-two .print-bottom{bottom:7%;left:10%;right:10%;font-size:1.8cqw}.poster-three{color:#25384c}.poster-three .poster-front{background:#98b7cb;color:#25384c}.poster-three .poster-front>img{object-position:center}.poster-three .print-top{font-size:2cqw;top:5%}.poster-three .poster-title{top:13%;left:8%;right:3%;font-size:18cqw;line-height:1;text-shadow:none;letter-spacing:-.075em}.poster-three .poster-title i{display:block;font-size:.85em;line-height:1.05}.poster-three .poster-subtitle{top:35%;bottom:auto;left:8%;right:0;font:3cqw var(--zh);letter-spacing:.1em}.poster-three .print-bottom{background:#f4efdfdd;left:8%;right:7%;bottom:4%;padding:3% 4%;color:#334859;font-size:1.9cqw}.poster-four .poster-front{background:#e9e5d5;color:#334859}.poster-four .invitation-border{inset:5%;border:1px solid #7081846b;outline:1px solid #70818433;outline-offset:-6px}.poster-four .print-top{top:10%;font-size:1.8cqw;letter-spacing:.12em}.poster-four .poster-title{top:18%;font-size:20cqw;line-height:.9;left:4%;right:4%;letter-spacing:-.075em}.poster-four .poster-title>span:first-child{padding:0}.poster-four .poster-title i{display:block;font-size:.75em;line-height:1.05}.poster-four .poster-subtitle{top:39%;font:2.6cqw var(--zh);letter-spacing:.1em}.pressed-flower{position:absolute;top:45%;left:0;right:0;font:17cqw/1 var(--serif);color:#aa6541;transform:rotate(10deg);text-shadow:1px 1px #e2bf7f}.invitation-names{position:absolute;top:59%;left:0;right:0;font:6.5cqw var(--serif);letter-spacing:-.05em}.invitation-names i{font-size:.8em}.poster-four .poster-wedding-date{top:69%;font-size:14cqw}.poster-four .poster-wedding-date>span{font-size:2cqw;margin-top:5%;letter-spacing:.15em}.poster-four .poster-invite-line{bottom:10%;font-size:2.6cqw;letter-spacing:.05em}.poster-four .print-bottom{bottom:6%;font-size:1.6cqw;left:9%;right:9%}.poster-four .print-bottom>span:first-child{font:1.6cqw var(--sans);letter-spacing:.15em}.poster-back{background:#ebe6d7;color:#334859;background-image:linear-gradient(100deg,#c6c4ac22,transparent 40%,#fff4);padding-top:10%}.poster-two .poster-back{background:#d8e2e4}.poster-three .poster-back{background:#f1dfc0;color:#6f4c36}.poster-four .poster-back{background:#e5ebdf;color:#334859}.back-quote{font-size:12.5cqw;line-height:1.12;letter-spacing:-.055em}.back-flower{color:#ab6341;font-size:14cqw;margin:8% 0 2%}.back-caption{font-size:3cqw;line-height:2}.back-date{font-size:2cqw}.selected-title{font-size:20px;letter-spacing:.06em}.selected-chapter{gap:12px}.selected-english{font-size:17px}.selected-count{font-size:9px}.enter-scene{border-color:#33485980}.skip-transition{background:var(--paper);color:var(--ink);border-color:#33485955}.poster-stage:focus-within .film-poster:focus-visible{outline-color:#334859}.little-breeze{position:absolute;left:4.5%;top:24%;width:180px;height:70px;pointer-events:none;opacity:.25;z-index:0}.little-breeze path{fill:none;stroke:#5d7986;stroke-width:1;stroke-linecap:round}.little-breeze path:nth-child(2){stroke:#ae714f}.little-breeze{animation:breeze 9s ease-in-out infinite}.storybook-word{font:clamp(70px,8vw,128px)/.96 var(--serif);letter-spacing:-.075em;margin:32px 0 48px;color:#334859}.storybook-word em{font-size:.84em}.lake-spread{display:grid;grid-template-columns:1fr 1.05fr;gap:13%;align-items:center;padding:68px 0 28px}.lake-copy{padding-left:3%}.lake-copy .eyebrow{font-size:8px;letter-spacing:.17em;color:#6a706c}.lake-copy h2{font-size:clamp(28px,2.9vw,43px);line-height:1.65;letter-spacing:.03em;margin:28px 0}.lake-copy>p:not(.storybook-word){font-size:14px;line-height:2.3;letter-spacing:.04em;margin:20px 0;color:#58626a}.lake-art{aspect-ratio:2/3;box-shadow:8px 8px 0 #e4dac54d}.lake-art img{object-position:center}.chapter-mark{display:block;font:38px var(--serif);color:#a76645;margin-top:38px}.act-rule{font-size:9px}.act-rule>span:first-child{font:italic 19px var(--serif);letter-spacing:-.03em}.act-rule span:nth-child(2){font-size:10px}.encounter{background:#f4efdf}.scene-footnote{border-color:#33485935}.scene-footnote>span{font-size:11px}.becoming{background:#e3e9e5;color:#2d3943;padding-bottom:55px}.becoming .act-rule{border-color:#526a6e55}.cottage-heading{position:relative;margin:65px 0 45px;padding-left:3%;min-height:230px}.cottage-heading .eyebrow{font-size:8px;color:#5c6b70}.cottage-heading h2{font-size:clamp(30px,3.3vw,48px);line-height:1.6;margin:25px 0 20px}.cottage-heading>p{font-size:14px;line-height:2.2;color:#57646b}.cottage-title{position:absolute;right:1%;top:30px;font:clamp(65px,7vw,110px)/1.05 var(--serif);letter-spacing:-.065em;color:#6c7c82}.cottage-title em{font-size:.93em}.cottage-art{width:100%;aspect-ratio:1.5;box-shadow:0 16px 40px #33485915;border:10px solid #f5f0e2;outline:1px solid #9b9c9133;overflow:hidden}.cottage-art img{object-position:center}.cottage-afterword{display:flex;justify-content:space-between;align-items:center;margin:35px 3% 0}.cottage-afterword p{font-size:15px;line-height:2.1;letter-spacing:.03em}.choosing{background:#334b5c;color:#f4efdf}.choosing .act-rule{border-color:#c2d0d35c}.promise-spread{display:grid;grid-template-columns:1.1fr 1fr;gap:13%;align-items:center;margin:75px 0 50px}.forest-art{aspect-ratio:2/3;border:8px solid #b1c1c7;box-shadow:-8px 10px 0 #23364450}.forest-copy{position:relative;padding-top:12px}.forest-copy>.eyebrow{font-size:8px;letter-spacing:.18em;color:#cad6da}.forest-copy h2{font-size:clamp(27px,3vw,45px);line-height:1.8;margin:60px 0 24px;letter-spacing:.035em}.forest-copy>p:not(.forest-always){font-size:14px;line-height:2.5;color:#d4dce0}.forest-copy .signature{font:italic 30px var(--serif);margin-top:30px}.forest-always{font:clamp(40px,5vw,80px)/1.05 var(--serif);letter-spacing:-.065em;color:#bdced5;margin:65px 0 0}.little-moon{position:absolute;font:60px var(--serif);right:7%;top:23px;color:#e2c88e;transform:rotate(-16deg)}.choosing .scene-footnote{border-color:#b9c9cf66}.invitation{background:#f2eddd;color:#334859}.invitation-intro{margin-top:50px}.letter-flower{display:block;font:60px/1 var(--serif);color:#b2734d;margin:0 0 25px}.invitation-intro h2{font-size:clamp(32px,4vw,60px);line-height:1.6;letter-spacing:.03em}.invitation-intro .eyebrow{color:#66707a}.invitation-intro>p{color:#5a6469}.letter-card{background:#fbf7e9;border-color:#a7b1ae;box-shadow:0 18px 50px #384c4912;transform:rotate(-1deg)}.letter-card .ticket-main{background:#fbf7e9;border-color:#fbf7e9;outline-color:#b6b5a5;padding:34px 30px}.ticket-names{font-size:68px;letter-spacing:-.06em}.ticket-stub{background:#a8664b;color:#fff3df;border-left-color:#f2d5b5}.ticket-stub:before,.ticket-stub:after{background:#f2eddd}.letter-stamp{font:58px/1 var(--serif);color:#f4d89e}.rsvp-open{border-color:#f4ddc2}.rsvp-open:hover{background:#fff3df;color:#8e4e38}.ticket-stub>.micro{opacity:1;font-size:8px}.ticket-stub-bottom{opacity:.9}.ticket-label{font-size:8px;letter-spacing:.14em}.ticket-date strong{font-size:76px}.ticket-subtitle{font-size:7px}.event-details h3{border-color:#a3aaa4}.event-details h3>span{color:#64727c}.programme li{border-color:#c7cbbb}.programme time{font-size:30px;color:#805c3e}.programme small{color:#6a777d}.arrival p{color:#59636a}.closing{border-color:#a9b0a7}.closing-title{font-size:clamp(45px,6.8vw,106px);letter-spacing:-.07em;line-height:1.15}.closing-title em{color:#815d46}.closing>.micro{color:#66777e}.chapter-rail{background:#283e4eed;border-color:#a6b6b8;color:#f4efdf}.chapter-rail a.active:after{background:#e1c48b}.rail-progress{background:#d6ba82}.chapter-dialog{background:#334b5c}.chapter-dialog nav a{border-color:#b6c7c74d}.chapter-dialog strong{font-size:24px}.chapter-dialog em{font-size:23px;color:#c8d5d9}.chapter-dialog nav a>span{font-size:28px}.menu-footer{font-family:var(--serif)}.rsvp-dialog{background:#f4efdf;color:#334859;border-color:#b4b69c;box-shadow:12px 12px 0 -5px #dce2d3,0 35px 100px #0005}.rsvp-dialog .eyebrow,.rsvp-date{color:#657077}.rsvp-dialog input:not([type=radio]),.rsvp-dialog select,.rsvp-dialog textarea{color:#334859;border-color:#acb1a4}.solid-button{background:#334b5c;color:#fff5e3}.solid-button:hover{background:#253a4b}.reply-card{background:#fbf7e9;border-color:#a5b0a9}.reply-detail{color:#556976}.result-hint{color:#627079}.photo-dialog{background:#263b4a}.photo-frame img{transition:transform 1.2s ease}.photo-frame:hover img{transform:scale(1.018)}.photo-expand{background:#334859a3;border-color:#f4efdf88}.photo-dialog figcaption{color:#e8e6da}
@keyframes breeze{0%,100%{transform:translateX(0) rotate(-4deg);opacity:.2}50%{transform:translateX(16px) rotate(2deg);opacity:.35}}
@media(max-width:1100px){.selected-title{font-size:18px}.lake-spread,.promise-spread{gap:8%}.storybook-word{font-size:83px}.forest-copy h2{font-size:32px}}
@media(max-width:700px){.cinema-wordmark{font-size:30px;letter-spacing:-.07em}.cinema-wordmark small{font-size:5.6px;letter-spacing:.13em;margin-top:10px}.reading .cinema-wordmark{font-size:25px}.reading .cinema-wordmark small{font-size:5px}.cinema-header .wedding-link{font-size:10px}.cinema-header button{font-size:10px}.theatre-edition{font-size:7px}.little-breeze{width:90px;height:35px;left:8%;top:17%;opacity:.2}.selected-title{font-size:17px;letter-spacing:.025em}.selected-chapter{gap:10px}.selected-count{font-size:8px}.enter-scene{font-size:11px;gap:12px}.drag-hint{font-size:8px}.poster-one .print-top,.poster-three .print-top{font-size:2.2cqw}.poster-two .print-top{font-size:2.1cqw}.poster-back{padding-top:12%}.scene-footnote>span{font-size:10px;line-height:1.8}.act-rule span:nth-child(2){font-size:8px;letter-spacing:.03em}.act-rule>span:first-child{font-size:17px}.act-rule span:last-child{font-size:7px}.lake-spread{grid-template-columns:1fr;gap:30px;padding:38px 0 0}.lake-copy{padding:0}.lake-copy .eyebrow{font-size:7px;letter-spacing:.11em}.storybook-word{font-size:67px;line-height:.98;float:right;margin:20px -3px 15px 13px;max-width:60%;text-align:right}.lake-copy h2{font-size:28px;line-height:1.65;margin:30px 0 23px;clear:both}.lake-copy>p:not(.storybook-word){font-size:14px;line-height:2.2;margin:18px 0}.lake-copy .chapter-mark{display:none}.lake-art{width:90%;justify-self:end;aspect-ratio:2/3}.cottage-heading{margin:40px 0 27px;padding:0;min-height:0}.cottage-heading .eyebrow{font-size:7px}.cottage-heading h2{font-size:30px;margin:22px 0 18px;line-height:1.65}.cottage-heading>p{font-size:14px}.cottage-title{position:static;display:block;text-align:right;font-size:51px;line-height:1;margin:30px 5px -18px;z-index:2;position:relative;top:auto;right:auto;color:#3e5561}.cottage-art{aspect-ratio:1.05;border-width:6px}.cottage-art img{object-position:45% 60%}.cottage-afterword{margin:28px 0 0;display:block}.cottage-afterword p{font-size:14px}.cottage-afterword .text-link{float:right;margin:10px 0 12px}.cottage-afterword:after{content:'';display:block;clear:both}.promise-spread{display:flex;flex-direction:column;gap:30px;margin:40px 0 32px;align-items:stretch}.forest-art{width:88%;border-width:5px}.forest-copy{padding:0 0 0 6%}.forest-copy>.eyebrow{font-size:7px}.forest-copy h2{font-size:30px;margin:30px 0 20px;line-height:1.8}.forest-copy>p:not(.forest-always){font-size:14px;line-height:2.3}.forest-copy .signature{font-size:26px;margin-top:25px}.little-moon{top:10px;right:5%;font-size:55px}.forest-always{font-size:55px;margin:40px 0 0;text-align:right}.choosing .scene-footnote>span{font-size:6px;max-width:130px;letter-spacing:.08em}.letter-flower{font-size:45px;margin-bottom:20px}.invitation-intro h2{font-size:32px}.invitation-intro{margin-top:35px}.letter-card .ticket-main{padding:28px 22px}.ticket-names{font-size:56px}.ticket-label{font-size:6px}.ticket-subtitle{font-size:6px}.letter-stamp{font-size:40px}.ticket-stub{padding:20px 25px}.ticket-stub>.micro{display:none}.rsvp-open{font-size:12px;padding:13px 18px}.rsvp-open span{margin-left:13px}.programme time{font-size:28px}.closing-title{font-size:46px;margin:22px 0 38px}.closing-title em{display:block}.chapter-dialog strong{font-size:22px}.chapter-dialog em{display:none}.chapter-dialog nav a{gap:20px}.rsvp-dialog h2{font-size:25px}.rsvp-dialog .eyebrow{font-size:7px}.photo-dialog figure{margin-left:25px;margin-right:25px;width:calc(100% - 50px)}.photo-dialog figcaption{font-size:10px;line-height:1.8}.back-to-posters{font-size:10px!important}.reading .cinema-header{padding:0 18px}}
@media(max-width:370px){.cinema-wordmark{font-size:27px}.cinema-wordmark small{font-size:5px}.selected-chapter{gap:8px}.selected-title{font-size:16px}.enter-scene{font-size:11px;gap:10px}.storybook-word{font-size:62px}.rsvp-dialog h2{font-size:23px}.cottage-title{font-size:48px}}
@media(prefers-reduced-motion:reduce){.little-breeze{animation:none}}

/* Keep title and Chinese chapter captions on separate baselines. */
.poster-one .poster-title{top:12%;font-size:20cqw}.poster-one .poster-subtitle{top:38.5%}.poster-three .poster-subtitle{top:39%}.poster-four .poster-title{top:16%;font-size:18cqw}.poster-four .poster-subtitle{top:40%}.pressed-flower{width:27%;height:15%;left:36.5%;right:auto;top:45%;transform:rotate(-5deg);color:#8e6240;text-shadow:none}
/* A clipped 3D scene must not become a focus-scroll container. */
html,body{overflow-x:clip}.poster-theatre{overflow:clip}
