@font-face{font-family:BookSerif;src:local("Baskerville"),local("Georgia");font-display:swap}
:root{color-scheme:dark;--ink:#32272a;--paper:#f5eee3;--wine:#27161c;--gold:#dfba83;--muted:#bbaaac;--serif:BookSerif,Georgia,"Times New Roman",serif;--sans:"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 38%,#493039 0,#2b1b23 46%,#1c1218 100%);color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.3}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button{touch-action:manipulation}dialog{color:var(--ink)}.skip-link{position:absolute;top:-100px;left:20px;z-index:100;background:var(--paper);color:var(--wine);padding:12px}.skip-link:focus{top:12px}.masthead{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:26px 5vw 22px;border-bottom:1px solid #ffffff12;gap:20px}.wordmark{display:flex;align-items:center;text-decoration:none;font:italic 2rem var(--serif);letter-spacing:-2px;color:var(--gold)}.wordmark-heart{font:1.15rem var(--sans);padding:0 9px;letter-spacing:0}.masthead-note{color:#d1bfc3;font:italic 1rem var(--serif)}.outline-button{border:1px solid #c3a89a44;background:transparent;color:var(--paper);border-radius:30px;padding:11px 20px;font-size:.875rem}.outline-button span{margin-left:12px;font-size:1rem;color:var(--gold)}main{width:min(1210px,91vw);margin:26px auto 0}.book-heading{display:flex;align-items:center;justify-content:space-between;margin:0 6px 18px;gap:20px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;line-height:1.6;font-weight:500;color:var(--gold)}.edition{letter-spacing:.22em;font-size:.75rem;color:#b39a9e}.book-stage{perspective:2200px;padding-bottom:10px}.book{position:relative;min-height:610px;background:var(--paper);color:var(--ink);border-radius:3px 9px 9px 3px;box-shadow:0 36px 70px #08030680,0 4px 0 #bfb29e,0 8px 0 #ded2bf,0 11px 0 #4b2d34,0 15px 0 #38212a;isolation:isolate;touch-action:pan-y}.book-surface{display:grid;grid-template-columns:1fr 1fr;min-height:610px}.binding{position:absolute;z-index:3;left:50%;top:0;width:36px;height:100%;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#2c211212 35%,#2c21121e 50%,#fff4 56%,transparent);pointer-events:none}.page{position:relative;padding:32px 36px 38px;min-width:0;display:flex;flex-direction:column;background:linear-gradient(110deg,#fff5,var(--paper));min-height:610px}.page:nth-child(even){background:linear-gradient(90deg,#b9a68a09,var(--paper) 12%,#fff3)}.page-top{display:flex;justify-content:space-between;gap:14px;color:#7e6b69;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;border-bottom:1px solid #7c655622;padding-bottom:12px;margin-bottom:22px}.page-top span:last-child{white-space:nowrap}.page h2{font:normal clamp(1.6rem,2.5vw,2.2rem)/1.1 var(--serif);letter-spacing:-.035em;margin:0 0 15px;text-wrap:balance}.page-copy{font:1rem/1.7 var(--serif);margin:0 0 20px;max-width:42ch;color:#625054;white-space:pre-line}.page-footer{display:flex;justify-content:space-between;align-items:center;color:#89766c;font-size:.75rem;margin-top:auto;padding-top:20px}.page-footer .small-heart{color:#a77973}.photos{display:grid;gap:10px;flex:1;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(125px,1fr);max-height:375px}.photo-frame{display:block;border:0;padding:0;background:#e8ddcf;overflow:hidden;position:relative;width:100%;min-height:0;border-radius:1px}.photo-frame img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s;pointer-events:none}.photo-frame:hover img{transform:scale(1.035)}.photo-frame::after{content:"Agrandir";position:absolute;bottom:8px;right:8px;background:#21151da6;color:#fff;border-radius:20px;padding:5px 10px;font-size:.75rem;opacity:0;transition:opacity .2s}.photo-frame:hover::after,.photo-frame:focus-visible::after{opacity:1}.photos[data-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr;max-height:390px}.photos[data-count="3"] .photo-frame:first-child{grid-row:span 2}.photos[data-count="5"]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(140px,1fr))}.photos[data-count="5"] .photo-frame:first-child{grid-row:span 2}.photos[data-count="6"]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(140px,1fr))}.photos.childhood img{object-fit:contain}.photos.childhood{max-height:355px}.page.quote-page .page-copy{font-size:1.15rem;line-height:1.75}.page.quote-page h2{font-size:2.5rem}.page.photo-page .photos{order:0;max-height:400px;margin-bottom:20px}.page.photo-page h2{order:1;margin-bottom:10px}.page.photo-page .page-copy{order:2;margin-bottom:0}.page.photo-page .page-footer{order:3}.cover{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;min-height:610px;background:var(--paper)}.cover-letter{padding:58px 48px 42px;display:flex;flex-direction:column;align-items:flex-start;position:relative}.cover .eyebrow{color:#947553;font-size:.75rem;margin-bottom:26px}.cover h1{font:normal clamp(3.25rem,5.9vw,5.2rem)/.96 var(--serif);letter-spacing:-.07em;margin:0 0 28px}.cover h1 em{font-weight:normal;color:#9f605e}.cover-dedication{font:italic 1.3rem var(--serif);color:#79615e;margin:0 0 24px}.cover-copy{font:1rem/1.8 var(--serif);color:#75605e;max-width:28ch;margin:0 0 34px}.cover-bottom{margin-top:auto;display:flex;justify-content:space-between;width:100%;align-items:center;border-top:1px solid #80604733;padding-top:22px;color:#897164}.handwritten{font:italic 1.7rem var(--serif)}.cover-number{font-size:.75rem;letter-spacing:.16em}.cover-image{margin:28px 28px 28px 8px;position:relative;min-width:0;display:flex;background:#cfc3b0;overflow:hidden}.cover-image img{width:100%;height:100%;object-fit:cover;object-position:58% center}.cover-image::after{content:"toi & moi";position:absolute;bottom:28px;left:30px;color:#fff;font:italic 2rem var(--serif);text-shadow:0 2px 10px #0008}.reading-controls{display:grid;grid-template-columns:1fr 220px 1fr;align-items:center;gap:25px;margin-top:34px}.nav-button{color:var(--paper);background:transparent;border:1px solid #c3a89a44;border-radius:30px;padding:13px 24px;font-size:.875rem;justify-self:start;min-width:132px;transition:border-color .2s,background .2s}.nav-button:last-child{justify-self:end}.nav-button:hover:not(:disabled){background:#ffffff08;border-color:#dfba8380}.nav-button#next[data-cover="true"]{background:var(--gold);color:#33211c;border-color:var(--gold)}.reading-position{text-align:center;min-width:0}#page-counter{font-size:.8125rem;color:#d2bdc1;font-variant-numeric:tabular-nums}.progress-track{height:2px;background:#ffffff15;margin-top:12px;overflow:hidden}#progress{display:block;height:100%;width:3.333%;background:var(--gold);transition:width .7s}.reading-hint{margin:24px 0 0;text-align:center;font:italic .875rem var(--serif);color:#ba9fa5}.reading-hint span{color:#967e85}footer{max-width:1440px;display:flex;justify-content:space-between;margin:28px auto 0;padding:0 5vw 24px;color:#9f868d;font-size:.75rem}.footer-signature{font:italic 1rem var(--serif);color:var(--gold)}.turning-leaf{position:absolute;top:0;bottom:0;left:50%;width:50%;z-index:5;transform-style:preserve-3d;transform-origin:left center;pointer-events:none;animation:turn-forward .75s cubic-bezier(.35,.05,.2,1) forwards}.turning-leaf.reverse{left:0;transform-origin:right center;animation-name:turn-back}.leaf-face{position:absolute;inset:0;backface-visibility:hidden;overflow:hidden;background:var(--paper);box-shadow:0 5px 25px #0002}.leaf-face.back{transform:rotateY(180deg)}.leaf-face>.page{height:100%;min-height:100%}.leaf-face::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#3c272700,#3c27271a);pointer-events:none}.turning-leaf.mobile-leaf{width:100%;left:0}.turning-leaf .cover{grid-template-columns:1fr;height:100%;min-height:100%}.turning-leaf .cover-image{display:none}.turning-leaf .cover-letter{padding:32px}.contents-dialog{border:0;border-radius:8px;padding:34px;width:min(600px,calc(100% - 32px));max-height:86vh;background:var(--paper);box-shadow:0 25px 80px #0008}.contents-dialog::backdrop,.photo-dialog::backdrop{background:#170b15d9;backdrop-filter:blur(7px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.dialog-heading .eyebrow{color:#93764f;font-size:.75rem}.dialog-heading h2{font:2.25rem var(--serif);letter-spacing:-.04em;margin:12px 0 22px}.close-button{display:grid;place-items:center;border:1px solid #8a716044;background:transparent;color:inherit;border-radius:50%;width:42px;height:42px;flex-shrink:0;font:1.6rem var(--sans)}.chapter-list{display:grid}.chapter-link{border:0;border-bottom:1px solid #7e615622;padding:17px 0;background:none;text-align:left;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:20px}.chapter-link:hover .chapter-title{color:#9f605e}.chapter-title{font:1.25rem var(--serif)}.chapter-index{font-size:.75rem;color:#91746a;white-space:nowrap}.dialog-note{font:italic .875rem/1.6 var(--serif);color:#8b7167;margin:22px 0 0}.photo-dialog{border:0;padding:0 0 15px;background:transparent;color:#f5eee3;max-width:94vw;max-height:94vh;overflow:visible}.photo-dialog .close-button{position:absolute;top:10px;right:10px;z-index:2;background:#23151ec9;border-color:#ffffff40;color:#fff}.photo-dialog img{display:block;max-width:90vw;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:3px}.photo-dialog p{font:italic 1rem var(--serif);text-align:center;max-width:80vw;margin:14px auto 0}.noscript{text-align:center}.page.empty-side{justify-content:center;align-items:center;background:var(--paper)}.end-monogram{font:italic 5rem var(--serif);color:#bc9387}.end-note{font:italic 1.2rem var(--serif);color:#94796e}.book.is-turning .book-surface{pointer-events:none}.book:focus{outline:none}@keyframes turn-forward{from{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes turn-back{from{transform:rotateY(0)}to{transform:rotateY(180deg)}}
.cover-image img{position:absolute;inset:0}.photos .photo-frame img{position:absolute;inset:0}
@media(min-width:1500px){main{margin-top:36px}.book,.book-surface,.page,.cover{min-height:660px}.photos{max-height:410px}.cover-letter{padding-top:70px}.cover-image{margin:30px 30px 30px 8px}}
@media(max-width:1000px){main{width:94vw}.page{padding:26px 26px 34px}.cover-letter{padding:46px 30px 34px}.book,.book-surface,.page,.cover{min-height:590px}.cover-image{margin:24px 20px 24px 5px}.photos{gap:8px}.page-copy{line-height:1.65}.masthead{padding:20px 4vw}.reading-controls{margin-inline:10px}}
@media(max-width:700px){.masthead{padding:18px 6vw}.masthead-note{display:none}.wordmark{font-size:1.8rem}.outline-button{font-size:.875rem;padding:10px 16px}main{width:89vw;margin-top:24px}.book-heading{margin-bottom:14px}.edition{display:none}.eyebrow{letter-spacing:.16em}.book,.book-surface,.page,.cover{min-height:590px}.book-surface{grid-template-columns:1fr}.binding{left:0;transform:none;width:15px;background:linear-gradient(90deg,#60443322,transparent)}.cover{grid-template-columns:1fr;min-height:660px}.cover-letter{padding:28px 28px 20px}.cover .eyebrow{margin-bottom:16px;font-size:.7rem}.cover h1{font-size:3.65rem;line-height:.98;margin-bottom:18px}.cover h1 br{display:none}.cover h1 em{display:block}.cover-dedication{font-size:1.15rem;margin-bottom:12px}.cover-copy{font-size:.9375rem;line-height:1.6;max-width:32ch;margin-bottom:17px}.cover-bottom{padding-top:14px}.handwritten{font-size:1.4rem}.cover-image{height:280px;margin:0 24px 24px;min-height:0}.cover-image img{object-position:50% 40%}.cover-image::after{font-size:1.6rem;bottom:18px;left:18px}.page{padding:28px 27px 30px;min-height:590px}.page h2{font-size:2rem}.page-top{font-size:.7rem;margin-bottom:21px}.page-copy{font-size:1rem}.photos{max-height:360px;grid-auto-rows:minmax(120px,1fr)}.photos[data-count="5"],.photos[data-count="6"]{grid-template-rows:repeat(2,minmax(125px,1fr))}.page.quote-page h2{font-size:2.3rem}.reading-controls{grid-template-columns:1fr 1fr;gap:16px;margin:28px 0 0}.reading-position{grid-column:1/-1;grid-row:1;max-width:200px;width:100%;justify-self:center}.nav-button{min-width:0;padding:12px 19px;justify-self:stretch;text-align:center}.nav-button:last-child{justify-self:stretch}.reading-hint{line-height:1.7;margin-top:22px}.reading-hint span{display:block}footer{padding:0 6vw 24px;margin-top:25px}.contents-dialog{padding:26px}.dialog-heading h2{font-size:1.9rem}.chapter-title{font-size:1.1rem}.photo-dialog img{max-height:78vh}.photos.childhood{max-height:350px}}
@media(max-width:380px){main{width:92vw}.page{padding:25px 22px}.cover h1{font-size:3.25rem}.cover-letter{padding-inline:24px}.page-top{letter-spacing:.09em}.photos[data-count="5"],.photos[data-count="6"]{gap:6px}}
/* Edition rose : les effets restent derrière le livre, jamais sur le texte. */
:root{--gold:#f5a9cf;--paper:#fff4f7;--wine:#34182d}
html{font-size:100%}body{background:radial-gradient(ellipse at 50% 36%,#663450 0,#341c31 49%,#201420 100%);overflow-x:clip}
.masthead,main,footer{position:relative;z-index:1}.masthead-actions{display:flex;align-items:center;gap:10px}.motion-toggle{font-size:.8125rem;border-color:#df85b15c;color:#f5c5de;white-space:nowrap}.motion-toggle:disabled{opacity:.75}
.book{box-shadow:0 34px 80px #14061288,0 0 75px #ed7db322,0 4px 0 #d9b5c4,0 8px 0 #f1d5df,0 11px 0 #773a58,0 15px 0 #4c243d;animation:book-arrive 1s both}
.page,.page:nth-child(even),.cover,.leaf-face,.page.empty-side{background-color:var(--paper)}
.page:nth-child(even){background-image:linear-gradient(90deg,#b678940a,var(--paper) 12%,#fff5)}
.page{background-image:linear-gradient(110deg,#fff7,var(--paper))}.cover h1 em,.chapter-link:hover .chapter-title{color:#ac3e72}.cover .eyebrow,.dialog-heading .eyebrow{color:#934765}.cover-heart{position:absolute;top:45px;right:36px;color:#d66ba0;font-size:1.7rem;animation:tender-beat 3.5s ease-in-out infinite}
.wordmark-heart,.heading-heart{display:inline-block;color:#f5a9cf;animation:tender-beat 3.5s ease-in-out infinite}.heading-heart{margin-left:12px;font-size:.95rem;vertical-align:middle}.page-footer .small-heart{color:#b4487b;animation:tender-beat 4s ease-in-out infinite}
.cover-letter h1{animation:soft-reveal .9s .1s both}.cover-dedication{animation:soft-reveal .9s .22s both}.cover-copy{animation:soft-reveal .9s .33s both}.cover-bottom{animation:soft-reveal .9s .45s both}
.cover-image{border-radius:4px}.cover-image::before{content:"";position:absolute;z-index:1;inset:-10% -80%;background:linear-gradient(105deg,transparent 40%,#fff3 50%,transparent 60%);transform:translateX(-35%);animation:cover-glimmer 9s 1.2s ease-in-out infinite;pointer-events:none}
.book-surface .page h2{animation:soft-reveal .55s .15s both}.book-surface .page-copy{animation:soft-reveal .55s .23s both}.book-surface .photos .photo-frame{animation:photo-reveal .6s .3s both;transition:box-shadow .3s,transform .3s}.book-surface .photos .photo-frame:nth-child(2){animation-delay:.36s}.book-surface .photos .photo-frame:nth-child(3){animation-delay:.42s}.book-surface .photos .photo-frame:nth-child(4){animation-delay:.48s}.book-surface .photos .photo-frame:nth-child(5){animation-delay:.54s}
@media(hover:hover) and (pointer:fine){.photos .photo-frame:hover{transform:translateY(-3px);box-shadow:0 8px 20px #9b386f35}.outline-button:hover,.nav-button:hover:not(:disabled){box-shadow:0 0 22px #e981b926;border-color:#f2a2cd88}.wordmark:hover .wordmark-heart{color:#ffdaeb}}
.nav-button#next[data-cover="true"]{background:linear-gradient(120deg,#ffbedf,#ee94c5);border-color:#ffbfdf;color:#482136;animation:inviting-glow 4s ease-in-out infinite}.progress-track{height:3px;border-radius:2px}#progress{background:linear-gradient(90deg,#dc73ab,#ffc8e2)}
.contents-dialog[open],.photo-dialog[open]{animation:dialog-bloom .3s both}.contents-dialog::backdrop,.photo-dialog::backdrop{animation:backdrop-arrive .25s both}.photo-dialog p{color:#ffd5e8}.reading-hint{color:#dfb6cd}.reading-hint span{color:#c5a1b5}footer{color:#c5a1b5}.masthead-note{color:#edd0de}.reading-position #page-counter{color:#e9cadd}.edition{color:#d9b8cb}
.ambient-hearts,.heart-bursts{position:fixed;inset:0;overflow:hidden;pointer-events:none;user-select:none}.ambient-hearts{z-index:0}.ambient-hearts span{position:absolute;left:var(--x);bottom:-70px;display:block;font:var(--size)/1 var(--sans);color:#f8a6cf;opacity:0;animation:heart-drift var(--duration) var(--delay) linear infinite}.heart-bursts{z-index:8}.heart-particle{position:absolute;font:var(--size)/1 var(--sans);color:var(--particle-color);animation:heart-flight 1.5s ease-out both;text-shadow:0 0 9px #f68bc244}
.motion-off *,.motion-off *::before,.motion-off *::after{animation:none!important;transition:none!important}.motion-off .ambient-hearts,.motion-off .heart-bursts{display:none}.motion-off .photo-frame:hover img{transform:none}.motion-off .photos .photo-frame:hover{transform:none}.is-background *,.is-background *::before,.is-background *::after{animation-play-state:paused!important}
.book:focus-visible{outline:2px solid #c64988;outline-offset:8px}.cover-copy{font-size:1rem}.cover h1{letter-spacing:-.055em}.cover .eyebrow{font-size:.75rem}.photos{flex:none;height:320px;min-height:250px}.photos[data-count="1"]{height:330px;min-height:170px}.photos.childhood{height:320px}.page.photo-page .photos{height:340px}.page-top{flex-wrap:wrap;overflow-wrap:anywhere}.page-top span:first-child{min-width:0}.page-top span:last-child{margin-left:auto}
@keyframes heart-drift{0%{transform:translate3d(0,0,0) rotate(-12deg);opacity:0}12%{opacity:.24}55%{transform:translate3d(var(--sway),-65vh,0) rotate(10deg);opacity:.2}88%{opacity:.18}100%{transform:translate3d(0,-115vh,0) rotate(-8deg);opacity:0}}
@keyframes heart-flight{0%{transform:translate(-50%,-50%) scale(.25);opacity:0}12%{opacity:.95}65%{opacity:.7}100%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--spin)) scale(.8);opacity:0}}
@keyframes tender-beat{0%,65%,100%{transform:scale(1)}72%{transform:scale(1.16)}79%{transform:scale(1)}86%{transform:scale(1.1)}}
@keyframes soft-reveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes photo-reveal{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes book-arrive{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes cover-glimmer{0%,45%{transform:translateX(-35%);opacity:0}55%{opacity:.7}70%,100%{transform:translateX(35%);opacity:0}}
@keyframes inviting-glow{0%,100%{box-shadow:0 0 0 0 #ed93c000}50%{box-shadow:0 0 25px 3px #ed93c030}}@keyframes dialog-bloom{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.masthead{flex-wrap:wrap;gap:12px}.masthead-actions{gap:8px}.motion-toggle{font-size:.8125rem;padding:10px 12px}.masthead-actions .outline-button{min-height:42px}.cover-heart{top:20px;right:25px;font-size:1.45rem}.cover-copy{font-size:1rem}.cover .eyebrow{font-size:.75rem}.page-top{font-size:.75rem}.photos,.photos.childhood{height:300px}.page.photo-page .photos{height:320px}.turning-leaf{animation-duration:.62s}}
@media(max-width:400px){.masthead{padding-inline:4vw}.masthead-actions{gap:6px}.masthead-actions .outline-button{padding-inline:10px}.wordmark{font-size:1.55rem}.wordmark-heart{padding-inline:6px}.photos[data-count="5"]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(88px,1fr));height:330px}.photos[data-count="5"] .photo-frame:first-child{grid-row:span 2}}
html.motion-off{scroll-behavior:auto}.motion-toggle{font-size:.875rem}.close-button{width:44px;height:44px}.masthead-actions .outline-button{min-height:44px}.page-footer,.cover-bottom{color:#705662}.chapter-index,.dialog-note{color:#755161}
/* Le récit et le premier poème : vrais souvenirs, secrets à ouvrir sans pression. */
[hidden]{display:none!important}.page-copy{max-width:none;white-space:normal}.page-copy p{margin:0 0 12px}.page-copy p:last-child{margin-bottom:0}.memory-word{display:inline;padding:2px 0;border:0;border-bottom:1px dashed #ac3e72;background:none;color:#91335f;font:inherit;text-align:inherit}.memory-word:hover{color:#702449;border-bottom-style:solid}.memory-word span{white-space:nowrap}.photos{height:260px;min-height:220px;grid-auto-rows:minmax(100px,1fr)}.photos[data-count="1"]{height:250px}.photos[data-count="5"],.photos[data-count="6"]{grid-template-rows:repeat(2,minmax(100px,1fr))}.photos.childhood{height:300px}.secret-note{margin-top:16px;border-top:1px solid #ac3e7230;padding-top:12px;font:1rem/1.55 var(--serif);color:#755161}.secret-note summary{cursor:pointer;min-height:32px;display:list-item;padding-block:4px}.secret-note summary:focus-visible{outline:2px solid #ac3e72;outline-offset:4px}.secret-note p{margin:10px 0 0;font-style:italic;color:#625054}.secret-note[open] p{animation:soft-reveal .3s both}.document-photo img{object-fit:contain}.page.quote-page .page-copy{font-size:1.05rem;line-height:1.7}.letter-memory{margin-top:4px;display:grid;justify-items:center;gap:8px}.letter-cover{position:relative;width:min(260px,100%);padding:0;border:0;border-radius:4px;overflow:hidden;background:#f5d6e2;box-shadow:0 8px 25px #6d244020;transition:transform .5s,box-shadow .5s;transform-origin:left center}.letter-cover img{display:block;width:100%;height:250px;object-fit:cover;object-position:50% 55%}.letter-cover>span{display:block;padding:14px;background:#fce7ef;color:#91335f;font:italic 1.1rem var(--serif)}.letter-cover:hover{transform:perspective(850px) rotateY(-9deg);box-shadow:8px 10px 25px #6d244026}.memory-caption{font:italic .875rem/1.5 var(--serif);color:#755161;text-align:center;max-width:28ch;margin:6px 0}.letter-dialog{width:min(730px,calc(100% - 32px));max-height:90vh;border:0;border-radius:8px;padding:32px;background:var(--paper);box-shadow:0 25px 80px #0008;overflow-y:auto}.letter-dialog::backdrop{background:#170b15d9;backdrop-filter:blur(7px)}.letter-dialog[open]{animation:letter-unfold .55s ease-out both;transform-origin:top center}.letter-intro{font:italic 1.05rem/1.6 var(--serif);color:#755161;margin:0 0 22px}.letter-dialog .dialog-heading h2{margin-bottom:12px}.poem-panel{padding:18px 20px;background:#ffffff70;border:1px solid #ad6a8730;border-radius:4px;color:#274875}.poem-lines{font:italic 1.1rem/1.7 var(--serif)}.poem-line{margin:0 0 8px;overflow-wrap:anywhere}.poem-initial{font-weight:bold;transition:color .4s,text-shadow .4s}.decoded .poem-initial{color:#ac3e72;text-shadow:0 0 14px #eb9cba50}.transcription-note{font:.8125rem/1.6 var(--sans);color:#625054;margin:18px 0 15px}.secret-button{border:1px solid #ac3e7255;border-radius:25px;background:#fce2ee;color:#782747;font:.875rem var(--sans);padding:12px 17px;min-height:44px;line-height:1.4}.secret-message{margin:18px 0 0;text-align:center;color:#91335f;animation:soft-reveal .5s both}.secret-message>span{display:block;font:italic .95rem/1.5 var(--serif);margin-bottom:6px}.secret-message strong{font:normal clamp(1.5rem,3vw,2rem)/1.4 var(--serif);letter-spacing:.1em}.original-link{border:0;border-bottom:1px solid #ac3e7240;background:none;color:#91335f;padding:12px 0;text-align:left;font:.875rem/1.5 var(--sans);min-height:44px;margin-top:8px}.letter-signature{font:italic 1.6rem var(--serif);color:#91335f;margin-top:20px;text-align:right}.photo-version-button{display:block;margin:12px auto 0;border-color:#f5a9cf80;color:#ffd5e8;background:#341c31}.photo-dialog{max-height:94vh;overflow-y:auto}.photo-dialog img{max-height:72vh}.photo-dialog p{font-size:.9375rem;line-height:1.5}.poem-page .page-copy{font-size:.9375rem;line-height:1.6;margin-bottom:16px}.poem-page .poem-panel{padding:16px}.poem-page .poem-lines{font-size:1rem;line-height:1.65}.page.letter-page .page-copy{margin-bottom:10px}
@keyframes letter-unfold{from{opacity:0;transform:perspective(1100px) rotateX(-12deg) translateY(10px)}to{opacity:1;transform:none}}
.motion-off .letter-cover:hover{transform:none}
/* Une vraie invitation : chaque étape s'ouvre à son rythme, sans choix piégé. */
.little-joke{font:italic .9375rem/1.6 var(--serif);color:#91335f;border-left:2px solid #e9a4c6;padding:9px 0 9px 12px;margin:15px 0 0}.little-joke>span{margin-right:4px}.new-chapter-button{position:relative;margin-top:22px;padding:23px 55px 23px 23px;min-height:110px;text-align:left;width:100%;color:#fff4f7;background:linear-gradient(120deg,#66304e,#34182d);border:1px solid #bc7596;border-radius:4px;box-shadow:0 10px 25px #8c355424;overflow:hidden;animation:inviting-glow 5s ease-in-out infinite}.new-chapter-button>span:nth-child(2){display:block;font:normal 1.55rem/1.25 var(--serif)}.new-chapter-kicker{display:block;font:.75rem/1.7 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#ffd2e8;margin-bottom:7px}.new-chapter-heart{position:absolute;right:19px;top:45%;font-size:1.7rem;color:#f9b8d8;animation:tender-beat 3.5s infinite}.new-chapter-button:hover{background:linear-gradient(120deg,#7d365c,#442036)}
.next-chapter-dialog{width:min(1090px,calc(100% - 32px));max-width:1090px;max-height:92dvh;padding:0;border:1px solid #c783a650;border-radius:10px;background:#35192f;color:#fff4f7;box-shadow:0 30px 130px #090308c9,0 0 80px #ea92bb26;overflow-x:hidden;overflow-y:auto}.next-chapter-dialog::backdrop{background:#180b17ed;backdrop-filter:blur(12px);animation:backdrop-arrive .4s both}.next-chapter-dialog[open]{animation:chapter-unfold 1.1s cubic-bezier(.2,.7,.2,1) both}.chapter-close{position:absolute;right:14px;top:14px;z-index:5;color:#6d294c;border-color:#8e3c5d50;background:#fff4f7e6}.chapter-scene{display:grid;grid-template-columns:.9fr 1.1fr;min-height:640px;perspective:1400px}.chapter-photo-story{position:relative;overflow:hidden;min-height:620px;background:#34182d;isolation:isolate}.chapter-photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:57% center;animation:chapter-memory-arrive 1.5s ease-out both}.chapter-photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,#37162920,#2610212e 35%,#261021d9 90%);pointer-events:none}.chapter-photo-words{position:absolute;bottom:36px;left:30px;right:25px;z-index:3;color:white;text-shadow:0 2px 14px #18091480}.chapter-photo-words>span:first-child{display:block;font:italic 1.4rem var(--serif);color:#ffe0ee;margin-bottom:10px}.chapter-photo-words strong{font:normal clamp(2rem,3.5vw,3rem)/1.13 var(--serif);letter-spacing:-.02em}.chapter-photo-monogram{display:block;font:italic 2rem var(--serif);color:#ffc1df;margin-top:22px}.chapter-moments{position:absolute;inset:0;pointer-events:none;z-index:2}.chapter-memory{position:absolute;width:25%;height:145px;object-fit:cover;border:6px solid #fff4f7;border-bottom-width:16px;box-shadow:0 10px 35px #17081270;animation:chapter-souvenir 1.2s .25s both}.memory-one{left:22px;top:24px;transform:rotate(-8deg);--memory-angle:-8deg}.memory-two{right:22px;top:76px;transform:rotate(8deg);--memory-angle:8deg;animation-delay:.45s}.chapter-paper{position:relative;padding:56px 42px 36px;background:linear-gradient(120deg,#fff9fc,#ffeaf4);color:#422d39;min-width:0;transform-origin:left center;animation:chapter-paper-open 1.2s cubic-bezier(.2,.7,.2,1) both}.chapter-kicker{font:.75rem/1.8 var(--sans)!important;text-transform:uppercase;letter-spacing:.15em;color:#91335f;margin:0 0 15px!important}.chapter-paper h2{font:normal clamp(2.1rem,4vw,3.1rem)/1.08 var(--serif);margin:0 0 23px;letter-spacing:-.035em;text-wrap:balance;animation:soft-reveal .8s .15s both}.chapter-paper h2:focus{outline:none}.chapter-paper h2:focus-visible{outline:2px solid #91335f;outline-offset:7px}.chapter-paper h2 em{color:#9b3265;font-weight:normal}.chapter-paper>p{font:1.0625rem/1.7 var(--serif);margin:0 0 17px;animation:soft-reveal .8s .25s both}.chapter-paper .chapter-humour{font-size:1rem;font-style:italic;color:#7d355a;background:#f8dae8;border-left:2px solid #c37c9d;padding:12px 15px;margin:20px 0}.chapter-choices{display:grid;gap:10px;margin:25px 0 18px;animation:soft-reveal .8s .4s both}.chapter-action{display:block;width:100%;border:1px solid #aa588255;border-radius:4px;padding:14px 16px;min-height:48px;color:#6f254a;background:#fff7fb;text-align:left;font:1rem/1.5 var(--sans);transition:background .25s,box-shadow .25s}.chapter-action:hover{background:#f6dce9;box-shadow:0 0 20px #ac4e7c15}.chapter-choices .chapter-action{background:#fff7fb;color:#6f254a;border-color:#aa588266}.chapter-action:focus-visible,.hebrew-keyboard button:focus-visible,.chapter-hint-button:focus-visible{outline:2px solid #91335f;outline-offset:4px}.chapter-action.secondary{background:transparent;font-size:.875rem;min-height:44px;border-color:#ac638244;text-align:center}.chapter-small-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:24px}.chapter-paper .chapter-privacy{font:.8125rem/1.65 var(--sans);color:#755161;margin:18px 0 0}.chapter-promises{display:grid;gap:10px;border-top:1px solid #bc719743;border-bottom:1px solid #bc719743;padding:22px 0;margin:23px 0}.chapter-promises span{font:italic 1.4rem var(--serif);color:#91335f;animation:soft-reveal .85s .2s both}.chapter-promises span:nth-child(2){animation-delay:.45s}.chapter-promises span:nth-child(3){animation-delay:.7s}.chapter-hearts{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.chapter-hearts span{position:absolute;left:var(--heart-x);bottom:-50px;font-size:25px;color:#ffb5d8;opacity:0;animation:chapter-heart-rise var(--heart-duration) var(--heart-delay) linear infinite}.chapter-rendezvous{border-block:1px solid #c683a350;padding:20px 0;margin:23px 0}.chapter-rendezvous>span{display:block;font:.875rem/1.6 var(--sans);color:#755161}.chapter-rendezvous strong{display:block;color:#91335f;font:1.45rem/1.5 var(--serif);margin:9px 0;overflow-wrap:anywhere}.chapter-rendezvous p{font:1rem/1.6 var(--serif);margin:0;color:#624354}.chapter-paper .chapter-tender{font-style:italic}.chapter-signature{font:italic 1.65rem/1.5 var(--serif);color:#91335f;margin:24px 0}
#chapter-riddle-form{display:grid;gap:12px;margin:24px 0 10px}#chapter-riddle-form label{font:.9375rem/1.5 var(--sans);color:#755161}#chapter-answer{min-width:0;width:100%;font:1.25rem/1.5 "Segoe UI",Arial,sans-serif;color:#422d39;background:#fffafd;padding:12px 14px;border:1px solid #a45b8259;border-radius:4px;min-height:50px;caret-color:#91335f}#chapter-answer:focus{outline:2px solid #91335f;outline-offset:3px}#chapter-answer[aria-invalid="true"]{border-color:#91335f}.chapter-feedback{font:.875rem/1.65 var(--sans);color:#91335f;margin:8px 0 14px;min-height:0}.chapter-feedback:empty{margin:0}.chapter-hint{font:.9375rem/1.6 var(--serif);color:#755161;margin-top:18px}.chapter-hint summary{cursor:pointer;min-height:44px;padding:10px 0}.chapter-hint summary:focus-visible{outline:2px solid #91335f;outline-offset:3px}.chapter-hint p{margin:0 0 10px}.chapter-hint-button{font:.875rem/1.5 var(--sans);color:#91335f;background:transparent;border:0;border-bottom:1px dashed #91335f;padding:10px 0;min-height:44px}.chapter-hints{color:#755161;font:1rem/1.6 var(--serif);overflow-wrap:anywhere}.chapter-hints p{margin:10px 0}.hebrew-keyboard{display:flex;gap:6px;flex-wrap:wrap}.hebrew-keyboard button{flex:1 0 44px;min-height:44px;min-width:44px;border:1px solid #ac638255;border-radius:4px;color:#6f254a;background:#fff7fb;font:1.3rem "Segoe UI",Arial,sans-serif}.hebrew-keyboard .erase-letter{font-size:.875rem;padding:8px;flex:1 0 80px}.chapter-input-help{font:.8125rem/1.6 var(--sans);color:#755161;margin:0}.next-chapter-dialog[data-step="no"] .chapter-memory,.next-chapter-dialog[data-step="later"] .chapter-memory{display:none}.next-chapter-dialog[data-step="no"] .chapter-hearts,.next-chapter-dialog[data-step="later"] .chapter-hearts{display:none}
.chapter-map{margin-top:14px;text-decoration:none}
.chapter-response{margin-top:28px;padding:22px 18px;border:1px solid #ac638244;background:#fff7fb;border-radius:8px}.chapter-response h3{font:italic 1.4rem/1.4 var(--serif);color:#91335f;margin:0 0 12px}.chapter-response-choice{font:1rem/1.6 var(--sans);color:#6f254a;margin:0 0 12px}.chapter-response .chapter-privacy{margin:0 0 16px}.chapter-response .chapter-feedback{margin:14px 0;font-size:.875rem}.chapter-response .chapter-action:disabled{opacity:1;color:#755161;background:#f4e9ef;border-color:#ac638244}.chapter-mail{overflow-wrap:anywhere;text-decoration:none}.chapter-shy-joke{position:relative;padding-top:54px;margin-top:24px;overflow:hidden;border-top:1px dashed #ac638244}.chapter-shy-joke p{font:italic .875rem/1.6 var(--serif);color:#755161;margin:0}.chapter-shy-non{position:absolute;top:10px;left:calc(50% - 40px);width:80px;padding:5px 10px;border:1px solid #ac638244;border-radius:22px;font:.875rem/1.5 var(--sans);color:#91335f;text-align:center;pointer-events:none;animation:chapter-shy-step 4s ease-in-out 3}.motion-off .chapter-shy-non{animation:none}
@keyframes chapter-shy-step{0%,100%{transform:translateX(-35px) rotate(-5deg)}35%{transform:translateX(35px) rotate(5deg)}65%{transform:translateX(-20px) rotate(-3deg)}}
@keyframes chapter-unfold{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:none}}@keyframes chapter-paper-open{from{opacity:.4;transform:rotateY(-16deg) translateX(24px)}to{opacity:1;transform:none}}@keyframes chapter-memory-arrive{from{transform:scale(1.09);filter:brightness(.75)}to{transform:scale(1);filter:brightness(1)}}@keyframes chapter-souvenir{from{opacity:0;transform:translateY(25px) rotate(0) scale(.88)}to{opacity:1;transform:rotate(var(--memory-angle)) scale(1)}}@keyframes chapter-heart-rise{0%{opacity:0;transform:translateY(0) rotate(-12deg)}15%{opacity:.48}80%{opacity:.25}100%{opacity:0;transform:translateY(-800px) rotate(15deg)}}
.motion-off .chapter-hearts{display:none}
@media(max-width:800px){.chapter-paper{padding:56px 28px 30px}.chapter-photo-story{min-height:660px}.chapter-memory{height:120px;width:30%;border-width:5px;border-bottom-width:13px}.chapter-photo-words{left:24px}.chapter-small-actions{grid-template-columns:1fr}.chapter-paper h2{font-size:2.25rem}}
@media(max-width:700px){.next-chapter-dialog{width:calc(100% - 20px);max-height:94dvh;border-radius:7px}.chapter-scene{grid-template-columns:1fr;min-height:0}.chapter-photo-story{min-height:260px;height:260px}.chapter-photo{object-position:50% 38%}.chapter-photo-words{left:22px;bottom:20px}.chapter-photo-words>span:first-child{font-size:1rem;margin-bottom:8px}.chapter-photo-words strong{font-size:1.9rem}.chapter-photo-monogram{position:absolute;right:0;bottom:0;font-size:1.5rem;margin:0}.chapter-memory{width:82px;height:104px}.memory-one{top:16px;left:auto;right:112px}.memory-two{top:35px;right:20px}.chapter-paper{padding:30px 25px 25px;animation-name:soft-reveal}.chapter-paper h2{font-size:2.25rem}.chapter-close{color:#fff;background:#35192fe6;border-color:#ffffff60}.chapter-paper>p{font-size:1.0625rem}.chapter-small-actions{grid-template-columns:1fr 1fr}.chapter-kicker{font-size:.75rem!important}.chapter-choices{margin-top:22px}.chapter-signature{font-size:1.45rem}.chapter-hearts span{font-size:21px}}
@media(max-width:380px){.chapter-paper{padding-inline:20px}.chapter-paper h2{font-size:2rem}.chapter-small-actions{grid-template-columns:1fr}.chapter-memory{width:65px;height:89px}.memory-one{right:93px}.chapter-photo-words strong{font-size:1.65rem}}
@media(max-width:700px){.photos{height:260px;min-height:220px}.photos.childhood{height:300px}.page.quote-page .page-copy{font-size:1.05rem}.letter-dialog{padding:24px 20px}.letter-dialog .dialog-heading h2{font-size:1.8rem}.poem-panel{padding:16px}.poem-lines{font-size:1.05rem}.letter-cover img{height:250px}.photo-dialog img{max-height:66vh}.photo-dialog p{max-width:86vw}.photo-version-button{max-width:86vw}.letter-cover:hover{transform:none}}
@media(max-width:400px){.photos[data-count="5"]{height:290px;grid-template-rows:repeat(3,minmax(80px,1fr))}.poem-page .poem-panel{padding:12px}}
@media(max-width:700px){.motion-toggle{font-size:.875rem}.masthead-actions .outline-button{min-height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.turning-leaf,.ambient-hearts,.heart-bursts,.chapter-hearts{display:none}.photo-frame:hover img{transform:none}.photos .photo-frame:hover,.letter-cover:hover{transform:none}}
