@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--pink:#f795b8;--soft:#ffe3ed;--paper:#fffaf7;--ink:#33272d;--gray:#eadfe0;--line:1px solid #c8aab5}
*{box-sizing:border-box}body{margin:0;background:var(--soft);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--ink);outline-offset:5px}h1,h2,p,figure{margin:0}h1,h2{font-weight:600;letter-spacing:-.06em;line-height:.98}h1{font-size:clamp(3.4rem,7.8vw,7.8rem)}h2{font-size:clamp(2.8rem,5.5vw,5.8rem)}[hidden]{display:none!important}.page{max-width:1500px;padding:0 4%;margin:auto}.masthead{display:flex;justify-content:space-between;gap:16px;padding:22px 0;border-bottom:var(--line);font-size:14px}.navigation{display:flex;align-items:center;justify-content:space-between;min-height:68px;font-size:14px}.navigation:has(#back[hidden]){justify-content:flex-end}#back,.text-button{background:none;border:0;border-bottom:var(--line);padding:12px 0;min-height:44px}main{min-height:75svh}.screen{animation:arrive .32s ease both}.screen.reverse{animation-name:returning}.eyebrow{display:block;font-size:14px;line-height:1.5;letter-spacing:.02em}.serif{font-family:'Playfair Display',Georgia,serif;font-weight:500;letter-spacing:-.05em}.paper{background:var(--paper)}.pink{background:var(--pink)}.black{background:var(--ink);color:var(--paper)}.action{display:inline-flex;justify-content:center;align-items:center;min-height:52px;min-width:142px;padding:14px 28px;background:var(--ink);color:var(--paper);border:var(--line);font-weight:500;text-decoration:none;transition:transform .18s,background .18s}.action:hover{background:#363636;transform:translateY(-2px)}.photo{position:relative;background:var(--gray);overflow:hidden;min-width:0}.photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%;transition:transform .4s}.photo.missing{background:var(--gray)}.photo.missing:before{content:'';position:absolute;inset:0;display:grid;place-items:center;font-family:Georgia,serif;font-style:italic;font-size:clamp(1.5rem,3vw,3rem);color:#555;transform:rotate(-8deg)}.photo.missing:after{content:'Photo to come';position:absolute;top:18px;left:18px;font-size:12px;color:#555}.photo.missing img{opacity:0}.photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:12px 18px;background:var(--paper);font-size:14px;border-top:var(--line)}.photo-number{position:absolute;top:14px;right:14px;background:var(--paper);padding:7px 10px;font-size:14px}.cover{display:grid;grid-template-columns:1.05fr 1fr .15fr;grid-template-rows:auto auto auto;border:var(--line)}.cover-intro{padding:34px;grid-column:1;grid-row:1}.cover-intro h1{margin:30px 0 18px}.aside-word{font-style:italic;font-size:clamp(2rem,3vw,3.5rem);transform:rotate(-5deg);text-align:right;padding-right:20px}.cover-photo{grid-column:2;grid-row:1/3;border-left:var(--line);min-height:650px}.cover-note{padding:25px 34px;display:grid;gap:12px;border-top:var(--line)}.cover-note p{font-size:18px}.cover-note .action{justify-self:start;margin-top:9px}.cover-side{grid-column:3;grid-row:1/3;background:var(--ink);color:var(--soft);display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:25px 8px;font-size:clamp(1rem,2vw,2rem);writing-mode:vertical-rl}.cover-footer{grid-column:1/-1;background:var(--paper);padding:14px 24px;border-top:var(--line);display:flex;justify-content:space-between;font-size:14px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;padding:16px 0 30px}.section-heading h2{margin-top:13px}.section-heading>p{line-height:1.5}.contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:250px;border-top:var(--line);border-left:var(--line)}.contact-grid>*{border:0;border-right:var(--line);border-bottom:var(--line)}.tall{grid-row:span 2}.wide{grid-column:span 2}.photo-tile{padding:0;text-align:left}.photo-tile:hover img{transform:scale(1.035)}.tile-note{position:absolute;bottom:15px;left:15px;right:15px;padding:18px;background:var(--soft);border:var(--line);font-size:18px;line-height:1.35;opacity:0;transform:translateY(15px) rotate(-2deg);transition:opacity .2s,transform .2s;pointer-events:none}.photo-tile[aria-expanded=true] .tile-note{opacity:1;transform:translateY(0) rotate(-2deg)}.type-cell{padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:16px}.type-cell p{font-size:clamp(1.5rem,3vw,3rem);line-height:1.05}.type-cell>span{font-size:14px}.blank-cell{background:var(--paper);background-image:linear-gradient(var(--gray) 1px,transparent 1px),linear-gradient(90deg,var(--gray) 1px,transparent 1px);background-size:32px 32px}.screen-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 0;font-size:14px}.likes-grid{display:grid;grid-template-columns:1fr 1fr .5fr;grid-template-rows:260px 260px;border:var(--line)}.likes-portrait{grid-row:1/3}.likes-copy{grid-row:1/3;padding:35px;border-left:var(--line);border-right:var(--line)}#statements{margin:24px 0}#statements p{font-size:clamp(1.25rem,2.2vw,2rem);line-height:1.2;padding:12px 0;border-bottom:1px solid #ccc;animation:arrive .25s ease}.closing{margin-top:20px;line-height:1.5}.crop-one{border-bottom:var(--line)}.crop-two img{object-position:65% center}.puzzle-screen>h2{margin:16px 0 40px}.puzzle-layout{display:grid;grid-template-columns:1.5fr 1fr;border:var(--line);background:var(--paper)}.word-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));padding:35px;align-content:center}.letter{aspect-ratio:1;border:var(--line);margin:-1px 0 0 -1px;display:grid;place-items:center;font-size:clamp(1.1rem,3vw,2.8rem);position:relative}.letter.blank{background:var(--ink)}.letter span{animation:letter-in .28s both;animation-delay:calc(var(--i)*25ms)}.letter small{position:absolute;top:3px;left:5px;font-size:10px}.puzzle-note{border-left:var(--line);padding:35px;display:flex;flex-direction:column;gap:30px}.puzzle-note>span{font-size:40px}.puzzle-note .serif{font-size:clamp(3rem,5vw,5.5rem);line-height:1.05}.confession{display:grid;grid-template-columns:1fr 1.2fr;background:var(--paper);border:var(--line);min-height:650px}.confession-photo{border-right:var(--line)}.confession-copy{padding:clamp(25px,5vw,70px)}.confession-copy h2{margin:35px 0 25px}.confession-copy em{font-family:'Playfair Display',Georgia,serif;color:#a64b6d;font-weight:500}.confession-copy p{line-height:1.5;margin-top:18px;max-width:360px}.confession-copy .lead{font-size:22px}.confession-copy .signature{font-size:26px;margin:34px 0}.question{background:var(--paper);border:var(--line)}.question-top{display:flex;justify-content:space-between;padding:20px 30px;border-bottom:var(--line);font-size:14px}.question-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:60px;padding:60px}.question-copy h2{margin:25px 0}.question-copy p{margin-bottom:35px}.answers{display:grid;grid-template-columns:1fr 1fr;gap:15px}.answers button{min-height:60px;border:var(--line);background:var(--pink);font-size:20px;transition:background .2s,transform .2s}.answers button:hover{background:var(--soft);transform:translateY(-2px)}.question-photo{min-height:350px;transform:rotate(3deg);border:var(--line);margin:10px}.confirmation{background:var(--pink);padding:clamp(30px,8vw,110px);min-height:60svh;border:var(--line)}.confirmation h2{margin:30px 0}.confirmation p{line-height:1.5;margin-bottom:28px}.colophon{display:flex;justify-content:space-between;padding:28px 0;font-size:12px}.leaving{animation:leave .18s ease both}.leaving .cover-note{transform:translateY(5px);transition:transform .18s}
@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes returning{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes leave{to{opacity:0;transform:translateY(-6px)}}@keyframes letter-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(min-width:1500px){.page{padding:0 60px}}@media(max-width:900px){.cover-intro{padding:24px}.cover-photo{min-height:570px}.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:220px}.blank-cell{display:none}.likes-grid{grid-template-columns:1fr 1.2fr;grid-template-rows:auto 180px}.likes-portrait{grid-row:1}.likes-copy{grid-row:1;border-right:0}.crop-one,.crop-two{grid-row:2}.crop-one{border-bottom:0;border-top:var(--line)}.crop-two{border-top:var(--line);border-left:var(--line)}.puzzle-layout{grid-template-columns:1.2fr 1fr}.word-grid{padding:20px}.puzzle-note{padding:25px}.question-layout{gap:25px;padding:35px}}
@media(max-width:600px){.page{padding:0 16px}.masthead{font-size:12px;padding:18px 0}.masthead span:last-child{display:none}.navigation{min-height:60px}.cover{grid-template-columns:1fr .11fr;grid-template-rows:auto 340px auto auto}.cover-intro{grid-column:1;padding:24px}.cover-intro h1{margin:20px 0 10px;font-size:clamp(3.4rem,14vw,5.3rem)}.cover-photo{grid-column:1;grid-row:2;min-height:0;border-left:0;border-top:var(--line)}.cover-side{grid-column:2;grid-row:1/4;font-size:18px}.cover-note{grid-column:1;grid-row:3;padding:24px}.cover-footer{grid-row:4;padding:12px;font-size:12px;gap:10px}.aside-word{font-size:2.3rem}.section-heading{align-items:start;flex-direction:column;gap:18px}.section-heading>p br{display:none}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:205px}.tall{grid-row:span 2}.type-cell{padding:18px}.type-cell p{font-size:1.7rem}.wide{grid-column:span 1}.tile-note{left:8px;right:8px;bottom:8px;padding:12px;font-size:16px}.screen-footer{align-items:start}.screen-footer>span{max-width:135px;line-height:1.5}.action{min-width:125px;padding:14px 20px}.likes-grid{grid-template-columns:1fr 1fr;grid-template-rows:360px auto 170px}.likes-portrait{grid-column:1/-1;grid-row:1}.likes-copy{grid-column:1/-1;grid-row:2;border-left:0;border-top:var(--line);padding:24px}.crop-one,.crop-two{grid-row:3}#statements p{font-size:1.5rem}.puzzle-layout{grid-template-columns:1fr}.word-grid{padding:25px 18px;min-height:270px}.letter{font-size:1.7rem}.puzzle-note{border-left:0;border-top:var(--line);gap:20px}.puzzle-note .serif{font-size:3.6rem}.confession{grid-template-columns:1fr}.confession-photo{height:420px;border-right:0;border-bottom:var(--line)}.confession-copy{padding:30px 24px}.confession-copy h2{font-size:3.7rem}.question-top{padding:18px;font-size:12px}.question-layout{grid-template-columns:1fr;padding:26px 20px;gap:30px}.question-copy h2{font-size:clamp(2.6rem,11vw,4rem)}.question-photo{min-height:0;height:260px;width:75%;justify-self:center}.colophon{gap:15px;line-height:1.5}.confirmation h2{overflow-wrap:anywhere;font-size:2.9rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Loose paper compositions keep the editorial rhythm without a boxed page. */
body{background:var(--soft)}
h1,h2{line-height:1.06;letter-spacing:-.055em}
h1 em,.question-copy em{font-family:'Playfair Display',Georgia,serif;font-weight:500;color:#a64b6d}
.page{max-width:1380px}
.masthead{border-bottom:0;color:#755c67;padding-bottom:8px}
.navigation{min-height:60px;color:#755c67}
.screen{padding-top:20px}
.action{border:0;border-radius:4px;background:var(--ink)}
.cover{position:relative;border:0;grid-template-columns:1.05fr 1fr;grid-template-rows:auto auto auto;gap:18px 38px;padding:18px 0 28px}
.cover-intro{background:transparent;padding:24px 0 5px}
.cover-intro h1{font-size:clamp(3.5rem,7.3vw,6.6rem);margin-top:24px}
.aside-word{text-align:left;padding:0;font-size:clamp(1.6rem,2.5vw,2.3rem);margin:20px 0 10px 10px;transform:rotate(-3deg)}
.cover-photo{grid-column:2;grid-row:1/3;min-height:620px;border:10px solid var(--paper);border-bottom-width:48px;transform:rotate(2deg);box-shadow:8px 12px 0 #d5b8c433;align-self:stretch;margin:18px 12px 26px 0}
.photo figcaption{border:0;font-size:13px;background:var(--paper)}
.cover-photo figcaption{bottom:-38px;background:none}
.cover-photo{overflow:visible}
.cover-photo img{object-fit:cover}
.cover-photo.missing:after{content:'Photo to come'}
.cover-note{position:relative;z-index:1;border:0;padding:26px 30px;max-width:460px;transform:rotate(-1.5deg);box-shadow:5px 7px 0 #d5b8c433;gap:10px}
.cover-note .eyebrow{color:#684453}
.cover-note .action{margin-top:14px;transform:rotate(1.5deg)}
.cover-date{position:absolute;right:0;top:0;z-index:2;background:var(--paper);padding:13px 24px;display:flex;flex-direction:column;align-items:center;transform:rotate(7deg);box-shadow:3px 5px 0 #d5b8c455}
.cover-date span{font-size:13px}.cover-date strong{font-family:Georgia,serif;font-size:40px;line-height:1.15;font-weight:400}
.cover-footer{border:0;background:transparent;padding:12px 0;color:#755c67;grid-row:3}
.section-heading{padding:15px 0 40px}.section-heading h2{margin-top:10px}.section-heading>p{color:#755c67}
.contact-grid{border:0;gap:22px;grid-auto-rows:minmax(260px,auto);padding:15px 12px 25px}
.contact-grid>*{border:0;min-width:0}
.contact-grid>.photo{border:8px solid var(--paper);box-shadow:5px 7px 0 #d5b8c433;transform:rotate(1.5deg)}
.contact-grid>.tall{transform:rotate(-2deg)}
.contact-grid>.photo:nth-child(4){transform:rotate(-3deg)}
.contact-grid>.wide{transform:rotate(-1deg)}
.type-cell{transform:rotate(-1deg);padding:24px;min-height:260px}
.type-cell p{font-size:clamp(1.45rem,2.6vw,2.3rem);line-height:1.12}.type-cell.black{background:#59404b;transform:rotate(2deg)}
.blank-cell{background-color:transparent;opacity:.45}
.tile-note{background:var(--paper);border:0;font-size:17px;padding:16px;box-shadow:3px 4px 0 #755c6733}
.photo-number{background:var(--paper);padding:5px 8px;font-size:12px}
.likes-grid{border:0;gap:22px;grid-template-rows:minmax(280px,auto) minmax(280px,auto);padding:12px}
.likes-portrait{border:9px solid var(--paper);transform:rotate(-2deg);min-height:580px}
.likes-copy{border:0;padding:32px;transform:rotate(.7deg)}
#statements p{border:0;padding:13px 0;font-size:clamp(1.2rem,2vw,1.65rem);line-height:1.35}
.likes-copy .closing{font-family:Georgia,serif;font-style:italic;font-size:21px;color:#88516a}
.crop-one,.crop-two{border:7px solid var(--paper);transform:rotate(4deg)}.crop-two{transform:rotate(-3deg)}
.puzzle-layout{border:0;background:transparent;gap:40px;align-items:center;padding:10px}
.word-grid{padding:26px;background:var(--paper);transform:rotate(-2deg);box-shadow:6px 9px 0 #d5b8c433}
.letter{border-color:#c8aab5}.letter.blank{background:#edd5df;border-color:#e4c4d2}
.puzzle-note{border:0;padding:32px;transform:rotate(2deg)}.puzzle-note>.eyebrow{font-size:14px}.puzzle-note .serif{font-size:clamp(2.8rem,4.3vw,4.5rem)}
.confession{background:transparent;border:0;gap:40px;padding:25px 12px}
.confession-photo{border:10px solid var(--paper);transform:rotate(-2deg);min-height:650px;box-shadow:5px 8px 0 #d5b8c433}
.confession-copy{padding:30px 10px 30px 20px}.confession-copy h2{font-size:clamp(3rem,5.4vw,5.3rem)}
.confession-copy p{max-width:420px}.confession-copy .future-note{font-family:Georgia,serif;font-size:21px;font-style:italic;color:#88516a;margin:28px 0 32px}
.question{border:0;background:transparent;padding:20px 0}
.question-top{border:0;padding:15px 0;color:#755c67}.question-layout{padding:35px 10px;align-items:center;grid-template-columns:1.4fr 1fr}
.question-copy h2{font-size:clamp(3rem,5.6vw,5.5rem)}.question-copy em{display:inline-block}
.answers button{background:var(--paper);border-color:#b98b9d;border-radius:4px;color:var(--ink)}.answers button:hover{background:var(--pink)}
.question-photo{border:9px solid var(--paper);box-shadow:5px 8px 0 #d5b8c433}
.confirmation{border:0;transform:rotate(-.5deg);padding:clamp(30px,7vw,100px)}
.colophon{color:#755c67;border-top:1px solid #dec0cd;margin-top:25px}
@media(max-width:900px){
.cover{gap:20px}.cover-photo{min-height:600px}.cover-intro h1{font-size:clamp(3.3rem,7.4vw,5rem)}
.contact-grid{grid-auto-rows:minmax(260px,auto);gap:18px}
.likes-grid{grid-template-rows:auto 220px}.likes-portrait{min-height:580px}.likes-copy{padding:25px}.crop-one,.crop-two{border:7px solid var(--paper)}
.puzzle-layout{gap:20px}.word-grid{padding:18px}.puzzle-note{padding:24px}
.confession{gap:25px}.confession-photo{min-height:580px}.confession-copy{padding-left:5px}
.question-layout{gap:30px;padding:25px 10px}
}
@media(max-width:600px){
.page{padding:0 20px}.masthead{font-size:12px}.screen{padding-top:8px}
.cover{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 380px auto auto;gap:25px;padding-top:4px}
.cover-intro{grid-column:1;grid-row:1;padding:0 5px}.cover-intro h1{font-size:clamp(3rem,13.5vw,5rem);margin:19px 0}.cover-intro .eyebrow{max-width:220px}
.aside-word{font-size:1.7rem;margin-left:0}.cover-photo{grid-column:1;grid-row:2;min-height:0;margin:0 8px;border-width:8px;border-bottom-width:40px;transform:rotate(2deg)}
.cover-photo figcaption{bottom:-33px;padding:10px;font-size:12px}.cover-date{top:auto;bottom:265px;right:0;padding:10px 18px;transform:rotate(5deg)}.cover-date strong{font-size:32px}
.cover-note{grid-column:1;grid-row:3;padding:25px 22px;margin:6px 4px 0}.cover-note p{font-size:17px}.cover-note .eyebrow{font-size:13px}
.cover-footer{grid-column:1;grid-row:4;padding:0 5px;font-size:12px}
.section-heading{padding:12px 3px 28px}.section-heading h2{font-size:clamp(2.6rem,11vw,4rem)}
.contact-grid{gap:16px 12px;padding:12px 4px;grid-auto-rows:minmax(240px,auto)}.contact-grid>.photo{border-width:5px}.type-cell{padding:15px;min-height:240px}.type-cell p{font-size:1.5rem}.type-cell>span{font-size:12px}.tile-note{font-size:15px;left:4px;right:4px;padding:11px}.photo-number{top:8px;right:8px}
.likes-grid{padding:5px;gap:20px;grid-template-rows:380px auto 180px}.likes-portrait{min-height:0}.likes-copy{padding:24px;border:0}#statements p{font-size:1.3rem}.crop-one,.crop-two{border:6px solid var(--paper)}
.puzzle-layout{grid-template-columns:1fr;gap:28px;padding:6px}.word-grid{padding:20px 12px;min-height:0}.letter{font-size:1.4rem}.puzzle-note{border:0;padding:26px}.puzzle-note .serif{font-size:3rem}
.confession{grid-template-columns:1fr;padding:10px 6px;gap:30px}.confession-photo{min-height:0;height:400px;border:8px solid var(--paper)}.confession-copy{padding:15px 5px}.confession-copy h2{font-size:clamp(2.7rem,11.5vw,4rem)}.confession-copy .lead{font-size:20px}
.question-layout{grid-template-columns:1fr;padding:20px 3px;gap:35px}.question-copy h2{font-size:clamp(2.5rem,10.3vw,3.9rem)}.question-copy .eyebrow{font-size:16px}.question-photo{height:280px;width:80%;margin:8px}.question-top{font-size:13px}
.screen-footer{padding-top:28px}.screen-footer>span{font-size:12px;max-width:115px}.colophon{margin-top:20px}
}

.type-cell p,.type-cell .eyebrow{overflow-wrap:anywhere}
@media(max-width:380px){.type-cell p{font-size:1.3rem}.type-cell{padding:12px}}

/* Heavier type and compact print details give the pink collage a bolder tone. */
h1,h2{font-weight:700;letter-spacing:-.065em}
.cover-intro h1 em,.confession-copy h2 em,.question-copy h2 em{font-family:'DM Sans',Arial,sans-serif;font-style:normal;font-weight:700;color:var(--ink);letter-spacing:-.065em}
.cover-intro h1 em{display:inline-block;background:var(--pink);padding:0 12px 5px;margin-left:-12px;transform:rotate(-2deg)}
.eyebrow,.photo-number,.cover-date span,.question-top,.navigation{font-family:'Courier New',monospace;letter-spacing:0}
.aside-word{font-family:'DM Sans',Arial,sans-serif;font-style:normal;font-weight:500;letter-spacing:-.04em;font-size:clamp(1.3rem,2.3vw,2rem)}
.type-cell .serif,.puzzle-note .serif{font-family:'DM Sans',Arial,sans-serif;font-weight:700;letter-spacing:-.06em}
.cover-date{border-top:5px solid var(--ink);transform:rotate(3deg)}
.cover-date strong{font-family:'DM Sans',Arial,sans-serif;font-weight:700}
.contact-grid>.tall{transform:rotate(-1deg)}.contact-grid>.photo:nth-child(4){transform:rotate(-2deg)}
.type-cell.black{background:var(--ink)}
.action,.answers button{border-radius:0;font-weight:600}
.likes-copy .closing,.confession-copy .future-note{font-family:'DM Sans',Arial,sans-serif;font-style:normal;font-weight:500}
.question-copy h2{font-size:clamp(3rem,5.1vw,5.1rem);line-height:1.1;margin-bottom:24px}
.question-copy h2 em{background:var(--pink);padding:0 8px 5px;margin-left:-8px;transform:rotate(-1deg)}
.question-copy .question-intent{font-size:clamp(1.2rem,2vw,1.55rem);font-weight:600;line-height:1.35;margin-bottom:20px}
.question-copy .question-reassurance{font-size:16px;line-height:1.6;color:#755c67;margin-bottom:30px}
.question-top{border-top:2px solid var(--ink);padding-top:16px}
.music-toggle{background:transparent;border:1px solid #b98b9d;padding:8px 13px;min-height:44px;font-size:13px;white-space:nowrap}
.masthead{align-items:center}.masthead .music-toggle{display:inline-flex}
@media(max-width:600px){.question-copy h2{font-size:clamp(2.3rem,10vw,3.9rem)}.question-copy .question-intent{font-size:1.2rem}.masthead{padding-top:12px}.aside-word{font-size:1.5rem}}

.letter-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:48px;align-items:start;padding:15px 14px 25px}
.letter-paper{position:relative;background:var(--paper);padding:clamp(26px,4vw,54px);box-shadow:6px 9px 0 #d5b8c455;transform:rotate(-1deg);border-top:7px solid var(--pink)}
.letter-paper p{font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.85;margin:0 0 22px;max-width:60ch;animation:letter-copy .35s ease both}
.letter-paper p:nth-child(2){animation-delay:40ms}.letter-paper p:nth-child(3){animation-delay:80ms}.letter-paper p:nth-child(4){animation-delay:120ms}.letter-paper p:nth-child(5){animation-delay:160ms}.letter-paper p:nth-child(6){animation-delay:200ms}
.letter-paper .letter-greeting{font-size:24px;font-weight:600;line-height:1.4}.letter-paper .letter-signature{font-weight:600;font-size:20px;line-height:1.5;margin:30px 0 0}
.letter-photo{height:500px;border:9px solid var(--paper);transform:rotate(3deg);margin-top:65px;box-shadow:5px 7px 0 #d5b8c433}
.sender-snapshot img{object-position:center 30%}
.action,.answers button,.music-toggle,#back{transition:transform .16s ease,background .16s ease,box-shadow .16s ease}
.action:active,.answers button:active,.music-toggle:active,#back:active{transform:translateY(2px) scale(.96);box-shadow:none}
.contact-grid>.photo{transition:transform .22s ease,box-shadow .22s ease}
.photo-tile:active{transform:rotate(0) scale(.97)!important}
.photo-tile[aria-expanded=true]{transform:rotate(0)!important;box-shadow:0 0 0 3px var(--pink),7px 10px 0 #d5b8c455}
.photo-tile[aria-expanded=true] img{transform:scale(1.035)}
.tile-note{transition:opacity .2s ease,transform .24s cubic-bezier(.2,.8,.2,1)}
@media(hover:hover) and (pointer:fine){.action:hover{transform:translateY(-3px);box-shadow:4px 5px 0 #b98b9d}.answers button:hover{transform:translateY(-3px);box-shadow:3px 4px 0 #d5b8c4}.music-toggle:hover{background:var(--paper);transform:translateY(-2px)}#back:hover{transform:translateX(-2px)}.contact-grid>.photo-tile:hover{transform:rotate(0) translateY(-5px);box-shadow:7px 11px 0 #d5b8c455}}
@keyframes letter-copy{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.letter-layout{gap:28px;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr)}.letter-photo{height:420px}}
@media(max-width:600px){.letter-layout{grid-template-columns:minmax(0,1fr);gap:30px;padding:10px 5px}.letter-paper{padding:27px 23px;transform:rotate(-.7deg)}.letter-paper p{font-size:16px;line-height:1.75}.letter-photo{height:320px;max-width:85%;width:100%;justify-self:center;margin:0 0 15px;transform:rotate(2deg)}.sender-snapshot{grid-column:span 2;height:220px}.cover-intro h1{font-size:clamp(2.9rem,13vw,5rem)}}

/* Photo slots follow the supplied portrait, landscape and square ratios. */
.cover-photo{aspect-ratio:4/5;min-height:0;align-self:center}
.contact-grid{grid-auto-rows:auto;align-items:start}
.contact-grid .photo-tile{aspect-ratio:1/1;width:100%}
.contact-grid .tall{aspect-ratio:4/5;grid-row:span 2}
.contact-grid .wide{aspect-ratio:7/5}
.contact-grid .sender-snapshot{aspect-ratio:1/1;height:auto}
.letter-photo{aspect-ratio:4/5;height:auto;width:100%;max-width:100%}
.question-photo{aspect-ratio:4/5;height:auto;min-height:0;width:calc(100% - 20px)}
@media(max-width:600px){
.cover{grid-template-rows:auto auto auto auto}
.cover-photo{aspect-ratio:4/5;min-height:0;width:calc(100% - 16px)}
.cover-date{bottom:auto;top:390px}
.contact-grid .wide{grid-column:span 2;aspect-ratio:7/5}
.contact-grid .sender-snapshot{grid-column:span 1;aspect-ratio:1/1;height:auto}
.letter-photo{aspect-ratio:4/5;height:auto;width:85%}
.question-photo{aspect-ratio:4/5;height:auto;width:80%}
}

/* The date has its own grid row so it cannot cover the portrait. */
.cover-date{position:static;inset:auto;grid-column:1/-1;grid-row:1;justify-self:start;display:flex;flex-direction:row;align-items:baseline;gap:10px;padding:12px 18px;transform:none;border-top:0;border-left:4px solid var(--ink);box-shadow:none;margin:0 0 8px}
.cover-date strong{font-size:24px}.cover-date span{font-size:14px}
.cover-intro{grid-column:1;grid-row:2}.cover-photo{grid-column:2;grid-row:2/4}.cover-note{grid-column:1;grid-row:3}.cover-footer{grid-row:4}
@media(max-width:600px){.cover{grid-template-rows:auto auto auto auto auto}.cover-date{grid-row:1;grid-column:1;position:static;inset:auto;transform:none}.cover-intro{grid-row:2;grid-column:1}.cover-photo{grid-row:3;grid-column:1}.cover-note{grid-row:4;grid-column:1}.cover-footer{grid-row:5;grid-column:1}}
