html{scroll-behavior:smooth;scroll-padding-top:16px}
.chapter-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 24px;margin:28px 0;padding:12px 0;border-block:1px solid #d8c9b5;font:12px Georgia,serif}
.chapter-links a{padding:12px 4px;min-height:44px}
.invitation-chapters{width:min(100%,620px);margin:0 auto;background:#eee7d9;box-shadow:0 12px 40px #69584014}
.chapter{position:relative;isolation:isolate;container-type:inline-size;aspect-ratio:2/3;overflow:hidden;color:#493320;scroll-margin-top:16px}
.chapter-art,.chapter-film{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}
.chapter-film{opacity:0}.chapter.is-playing .chapter-film{opacity:1}
.chapter [hidden]{display:none!important}
.chapter h2{font-family:'Pinyon Script',Georgia,serif;font-size:clamp(38px,12cqw,76px);font-weight:400;line-height:1.15;margin:0}
.countdown-copy{position:absolute;top:28%;left:6%;right:6%;text-align:center}
.chapter-date{font:clamp(10px,3.05cqw,18px)/1.4 Georgia,serif;letter-spacing:.24em;text-transform:uppercase;margin:4.2cqw 0 7.5cqw}
.countdown-digits{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;align-items:center}
.countdown-digits>span{display:grid;gap:1.6cqw;padding:0 1.7cqw;border-right:1px solid #aa8554}
.countdown-digits>span:last-child{border:0}.countdown-digits b{font:400 clamp(34px,11.8cqw,74px)/1 Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:-.07em;white-space:nowrap}
.countdown-digits small{font:clamp(9px,2.3cqw,14px)/1.4 Georgia,serif;letter-spacing:.13em;text-transform:uppercase}
.countdown-place{font:clamp(17px,4.7cqw,28px)/1.3 Georgia,serif;margin:8cqw 0 3cqw}
.calendar-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;font:clamp(14px,3.4cqw,20px)/1.4 Georgia,serif;text-decoration-thickness:1px;text-underline-offset:6px;padding:5px 12px}
.calendar-link span{color:#8c6431}.countdown-footnote{font:italic clamp(12px,2.9cqw,17px)/1.5 Georgia,serif;margin:5cqw auto 0;max-width:80%}
.countdown-message{font:clamp(22px,6cqw,36px)/1.4 'Pinyon Script',Georgia,serif;margin:5cqw 0}
.story-chapter{touch-action:pan-y pinch-zoom}.story-chapter:focus-visible{outline:2px solid #8a6338;outline-offset:3px}
.story-heading{position:absolute;top:4.5%;left:8%;right:8%;text-align:center;z-index:3}
.story-heading p{font:clamp(11px,2.85cqw,17px)/1.5 Georgia,serif;letter-spacing:.02em;margin:2.7cqw 0 0}
.story-photo{position:absolute;left:72.9%;top:15%;width:23%;height:19%;object-fit:cover;object-position:50% 50%;border:5px solid #f3ecdc;transform:rotate(7deg);filter:sepia(.16) saturate(.74);clip-path:polygon(0 0,100% 0,100% 100%,49% 100%,49% 46%,0 46%);z-index:2;transition:opacity .3s}
.letter-copy{position:absolute;inset:0;z-index:3;text-align:center;transition:opacity .45s ease;color:#48311f}
.letter-copy p,.letter-copy h3{position:absolute;left:19%;right:19%;margin:0}
.letter-chapter{top:29%;font:clamp(9px,2.2cqw,14px)/1.5 Georgia,serif;letter-spacing:.14em;text-transform:uppercase}
.letter-copy h3{top:35%;font:400 clamp(25px,7.5cqw,46px)/1.1 'Pinyon Script',Georgia,serif;white-space:nowrap;left:14%;right:14%}
.letter-body{top:45.6%;font:italic clamp(15px,4.1cqw,25px)/1.5 Georgia,serif;white-space:pre-line}
.letter-closing{top:61%;font:clamp(22px,6.2cqw,38px)/1.1 'Pinyon Script',Georgia,serif}
.letter-signature{top:67%;font:clamp(24px,6.7cqw,42px)/1.1 'Pinyon Script',Georgia,serif}
.story-chapter.is-unfolding .letter-copy,.story-chapter.is-unfolding .story-photo{opacity:0}
.story-controls{position:absolute;top:88%;left:9%;right:9%;display:flex;justify-content:center;align-items:center;gap:2px;z-index:4}
.story-controls button{min-width:44px;min-height:44px;padding:0;background:transparent;border:0;border-radius:50%;font:27px/1 Georgia,serif;color:#694721;display:grid;place-items:center}
.story-controls button:hover{background:#e9dfcd99}.story-controls button:disabled{opacity:.3;cursor:default}
.story-controls [data-memory] span{width:7px;height:7px;border-radius:50%;background:#b7a18a}.story-controls [aria-current=true] span{background:#614124;box-shadow:0 0 0 3px #61412416}
.story-hint{position:absolute;top:95%;width:100%;margin:0;text-align:center;font:clamp(10px,2.6cqw,16px)/1.4 Georgia,serif;letter-spacing:.02em}.story-hint span{margin-left:12px;font-size:.8em;letter-spacing:.1em}
@media(max-width:350px){.chapter h2{font-size:11.5cqw}.letter-body{top:44.5%}.letter-copy h3{font-size:7.4cqw}.letter-closing{font-size:6.1cqw}.letter-signature{font-size:6.5cqw}.story-hint{top:96%}.story-controls{top:87.5%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.letter-copy,.story-photo{transition:none}}

/* Approved picture artwork, with a continuous marble transition between chapters. */
main{--invitation-width:min(100%,calc(max(540px,100svh - 190px)*.666667));--chapter-ground:#eee3d2}
.scene,.invitation-chapters{width:var(--invitation-width);box-shadow:none;background:var(--chapter-ground)}
.scene::after{content:'';position:absolute;z-index:5;pointer-events:none;inset:auto 0 0;height:12%;background:linear-gradient(transparent,var(--chapter-ground))}
.chapter-links{border:0;margin:0 0 10px;padding:0;gap:2px 18px}
.invitation-chapters{margin-top:-1px}.chapter{background:transparent}
.chapter-art{mask-image:linear-gradient(to bottom,transparent 0%,#000 11%,#000 86%,transparent 100%)}
.story-chapter{margin-top:-1px}.story-chapter .chapter-art{mask-image:linear-gradient(to bottom,transparent 0%,#000 13%,#000 89%,transparent 100%)}
.countdown-copy{top:30%}.countdown-place{margin-top:6.5cqw}
.story-heading{inset:0;pointer-events:none}.story-heading h2{position:absolute;top:5%;left:7%;right:7%;font-size:13cqw}
.story-heading p{position:absolute;top:18%;left:7%;right:7%;margin:0;font-size:clamp(10px,2.65cqw,17px)}
.letter-chapter{top:32.2%}.letter-copy h3{top:36.7%}
.story-photo{left:70.5%;top:17.3%;width:29.5%;height:25%;transform:none;border:0;clip-path:polygon(17% 0,100% 17%,77% 97%,41% 90%,23% 32%,0 28%);object-position:56% 50%}
.letter-copy{transform-origin:50% 69%}
.is-arriving .letter-copy{animation:letter-first-reveal 1.1s cubic-bezier(.2,.7,.2,1) both}
.is-arriving .story-photo{animation:photo-first-reveal .9s ease .1s both}
.is-changing .letter-copy,.is-changing .story-photo{animation:memory-change .28s ease both}
@keyframes letter-first-reveal{from{opacity:0;clip-path:inset(70% 0 0);transform:perspective(900px) rotateX(-9deg)}to{opacity:1;clip-path:inset(0);transform:none}}
@keyframes photo-first-reveal{from{opacity:0}to{opacity:1}}
@keyframes memory-change{from{opacity:.55}to{opacity:1}}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
@media(prefers-reduced-motion:reduce){.is-arriving .letter-copy,.is-arriving .story-photo,.is-changing .letter-copy,.is-changing .story-photo{animation:none}}

/* Softer illustrated correspondence, over the original pale château ground. */
main{--chapter-ground:#f3f0e9}
.countdown-art{filter:brightness(1.13) saturate(.72)}
.countdown-copy{top:31%}.countdown-place{margin-top:7cqw}
.chapter-art{mask-image:linear-gradient(to bottom,transparent,#000 13%,#000 84%,transparent)}
.story-chapter .chapter-art{mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent)}
.story-heading h2{top:4.5%;font-size:12.5cqw}.story-heading p{top:15.6%}
.story-photo{left:71.1%;top:17.45%;width:29.2%;height:25.2%;clip-path:polygon(17% 0,100% 17%,77% 97%,44% 88%,22% 32%,0 28%);filter:sepia(.22) saturate(.62)}
.letter-copy{inset:30.2% 20% auto;height:39%;display:flex;flex-direction:column;align-items:stretch;gap:2.6cqw;justify-content:center;transform-origin:50% 100%;perspective:900px}
.letter-copy p,.letter-copy h3{position:static;inset:auto;margin:0;flex:none;overflow-wrap:anywhere;white-space:normal}
.letter-chapter{font:clamp(9px,2.25cqw,14px)/1.35 Georgia,serif;letter-spacing:.12em}
.letter-copy h3{font:400 clamp(24px,7.2cqw,44px)/1.1 'Pinyon Script',Georgia,serif}
.letter-body{font:italic clamp(14px,3.9cqw,24px)/1.45 Georgia,serif}
.letter-closing{font:400 clamp(20px,5.8cqw,36px)/1.08 'Pinyon Script',Georgia,serif}
.letter-signature{font:400 clamp(20px,5.9cqw,36px)/1.05 'Pinyon Script',Georgia,serif}
.seal-initials{position:absolute;z-index:4;left:23.2%;top:72.15%;width:10%;text-align:center;font:700 3.05cqw/1.2 Georgia,serif;letter-spacing:-.08em;color:#735628;text-shadow:0 1px 0 #f5dca3,0 -1px 0 #69502e;transform:rotate(-3deg);pointer-events:none}
.is-arriving .letter-copy{animation:letter-first-reveal 1.35s cubic-bezier(.2,.7,.2,1) both}
.letter-fit-check{position:fixed!important;left:-10000px!important;top:0!important;visibility:hidden!important;pointer-events:none!important}
.personalisation-study{max-width:620px;margin:28px auto 0;padding:20px;border:1px solid #dacfbf;border-radius:8px;font:13px/1.6 Arial,sans-serif;background:#fbf9f4}
.personalisation-study summary{min-height:44px;cursor:pointer;font-weight:600;font-size:14px}
.personalisation-study p{margin:0 0 18px}.personalisation-study label{display:grid;gap:5px;margin-bottom:12px}
.personalisation-study input,.personalisation-study textarea{width:100%;min-width:0;border:1px solid #c5b6a0;background:#fffefa;padding:11px;border-radius:4px;font:16px/1.4 Arial,sans-serif;color:#493c2e}
.personalisation-study textarea{resize:vertical}.personalisation-study small{justify-self:end;color:#786955}
.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}#editing-memory{font-weight:600}#personalise-feedback{margin:12px 0 0}
@media(max-width:550px){.personalisation-study{margin-inline:12px;padding:16px}}
.letter-copy{gap:2cqw}
.letter-closing{font-size:clamp(17px,5.5cqw,34px)}
.countdown-chapter{aspect-ratio:2/2.65}
.countdown-copy{top:30%}.countdown-chapter .chapter-art{object-fit:cover}
.story-chapter{margin-top:-20px}
.door-live-type{position:absolute;left:0;top:0;z-index:3;transform-origin:0 0;pointer-events:none;fill:#4a3118;overflow:visible;filter:drop-shadow(0 .3px .15px #d3b783)}
.door-live-type[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.is-arriving .letter-copy{animation:none}}

/* One continuous ivory canvas. Chapters are content, not individually framed pages. */
main{--chapter-ground:#f3f0e9;--invitation-width:min(100%,620px)}
.scene{width:min(100%,calc(max(540px,100svh - 190px)*.666667),620px)}
.invitation-chapters{width:var(--invitation-width);background:transparent}
.scene::after{height:16%}
.countdown-chapter{aspect-ratio:auto;overflow:visible;padding:9cqw 6% 7cqw}
.countdown-copy{position:relative;inset:auto}
.countdown-copy h2{font-size:clamp(37px,10.5cqw,65px)}
.chapter-date{margin:4cqw 0 6cqw}
.countdown-place{margin:6cqw 0 2cqw}
.story-chapter{margin:0;aspect-ratio:2/3}
.story-chapter .chapter-art{mix-blend-mode:multiply;mask-image:linear-gradient(transparent,#000 22%,#000 85%,transparent 100%),linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-composite:intersect}
.story-heading h2{top:2.5%}.story-heading p{top:12.5%}
.story-controls{top:88%}.story-hint{top:95%}
