@font-face{font-family:Cormorant;src:url('assets/serif.ttf')}@font-face{font-family:Cormorant;src:url('assets/serif-italic.ttf');font-style:italic}@font-face{font-family:DM;src:url('assets/sans.ttf')}
:root{--paper:#f3ecd9;--page:#faf5e8;--ink:#302f29;--soft:#686352;--gold:#a7823e;--red:#923e32;--blue:#294d67;--green:#5c7252;--line:#cbbb97;--serif:Cormorant,Georgia,serif;--sans:DM,Arial,sans-serif}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth}body{margin:0;font-family:var(--sans);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23897347' opacity='.07' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");min-height:100svh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:5px}button:disabled{opacity:.35;cursor:default}button{touch-action:manipulation}a{color:var(--red)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:-80px;left:12px;background:var(--page);padding:14px;z-index:20}.skip-link:focus{top:12px}.masthead{max-width:1340px;margin:auto;padding:24px 46px;display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{display:flex;align-items:center;gap:13px;border:0;background:none;padding:0;font-size:10px;letter-spacing:2.4px}.brand-initial{display:grid;place-items:center;border:1px solid var(--gold);outline:1px solid #cbbb9780;outline-offset:3px;color:var(--red);font:30px var(--serif);width:33px;height:37px}.album-button{background:none;border:0;display:flex;align-items:center;gap:10px;font-size:12px;min-height:44px}.album-button>span:first-child{font-size:25px;color:var(--gold)}.counter{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:5px 8px;font-variant-numeric:tabular-nums}.book-shell{position:relative;margin:4px auto 0;max-width:1220px;padding:22px;background:var(--page);box-shadow:0 14px 60px #55452712,0 2px 5px #55452710;border:1px solid #cbbb9770}.book-shell:before{content:"";position:absolute;inset:9px;border:1px solid var(--line);pointer-events:none}.book-shell:after{content:"";position:absolute;inset:14px;border:1px solid #a7823e35;pointer-events:none}.corner{position:absolute;width:35px;height:35px;color:var(--gold);z-index:1;pointer-events:none}.corner.tl{top:3px;left:3px}.corner.tr{top:3px;right:3px;transform:rotate(90deg)}.corner.bl{bottom:3px;left:3px;transform:rotate(-90deg)}.corner.br{bottom:3px;right:3px;transform:rotate(180deg)}.cover-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:650px;gap:20px;padding:38px 48px 32px}.cover-copy{text-align:center;padding:0 10px}.eyebrow{font:10px/1.8 var(--sans);letter-spacing:2.6px;text-transform:uppercase;color:var(--soft);margin:0 0 22px}.cover-copy h1{font:500 clamp(64px,7.7vw,106px)/.88 var(--serif);letter-spacing:-3px;margin:23px 0;color:var(--ink)}.cover-copy h1 em{font-weight:500;color:var(--red);display:block}.flourish{color:var(--gold);width:150px;height:25px;margin:18px auto}.cover-subtitle{font:italic 23px/1.35 var(--serif);margin:12px auto 27px;max-width:320px}.cover-art{position:relative;margin:0 auto;width:100%;max-width:400px;aspect-ratio:2/3;min-width:0}.cover-art img{width:100%;height:100%;object-fit:cover;display:block;box-shadow:0 0 0 1px #a7823e70,0 0 0 6px var(--page),0 0 0 7px #a7823e55}.cover-art figcaption{position:absolute;bottom:15px;left:15px;right:15px;text-align:center;font:italic 17px var(--serif);color:#f9eac5;text-shadow:0 1px 5px #33271e;background:#31271a80;padding:7px;backdrop-filter:blur(4px)}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:25px;min-height:49px;padding:13px 25px;background:var(--red);color:#fff7e7;border:1px solid var(--red);font:12px var(--sans);letter-spacing:.3px;border-radius:2px;box-shadow:0 2px 0 #69291f}.primary-button:hover{background:#783328}.arrow{font-size:21px;line-height:1}.cover-instruction{max-width:275px;margin:20px auto 0;font:12px/1.8 var(--sans);color:var(--soft)}.cover-instruction span{color:var(--gold)}.cover-dedication{border-top:1px solid #cbbb9780;padding:18px 0 2px;text-align:center;font:italic 18px var(--serif);color:var(--soft)}.text-button{border:0;background:none;padding:12px 4px;text-decoration:underline;text-decoration-color:#a7823e70;text-underline-offset:5px;font-size:12px;min-height:44px}.site-footer{max-width:1220px;display:flex;gap:20px;justify-content:center;align-items:center;margin:25px auto 28px;padding:0 15px;color:var(--soft);font:8px var(--sans);letter-spacing:1.8px}.footer-star{font-size:15px;color:var(--gold)}
.chapter-layout{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:42px;padding:42px 40px 25px;min-height:565px}.chapter-copy h1{font:500 clamp(44px,4.6vw,64px)/1.02 var(--serif);letter-spacing:-1.5px;margin:13px 0 25px;max-width:420px}.chapter-copy h1 em{color:var(--red);font-weight:500}.chapter-copy .prose{font:20px/1.5 var(--serif);max-width:425px}.prose p{margin:0 0 15px}.prose p:first-child:first-letter{float:left;font:59px/.9 var(--serif);padding:5px 8px 0 0;color:var(--red)}.chapter-note{font:italic 18px/1.4 var(--serif);border-left:2px solid var(--gold);padding:0 0 0 17px;color:var(--soft);margin-top:23px}.route{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:20px 0;font-size:10px;line-height:1.8;color:var(--blue)}.route span:not(:last-child):after{content:' →';color:var(--gold);margin:0 4px}.scene-wrap{width:100%;max-width:470px;margin:auto}.miniature{position:relative;aspect-ratio:1;border:1px solid var(--gold);outline:1px solid #a7823e65;outline-offset:5px;background:#e9dfbf;overflow:hidden;border-radius:2px}.scene-painting{width:100%;height:100%;object-fit:contain;display:block}.discovery{position:absolute;transform:translate(-50%,-50%);border:0;background:none;width:74px;height:74px;padding:7px;color:var(--gold);transition:transform .2s,filter .2s;filter:drop-shadow(0 2px 1px #3c342529)}.discovery svg{width:100%;height:100%;overflow:visible}.discovery:hover{transform:translate(-50%,-50%) scale(1.1)}.discovery:focus-visible{outline:3px solid var(--red);outline-offset:1px;border-radius:50%}.discovery.found{filter:none}.discovery.found:after{content:'✓';position:absolute;right:3px;bottom:4px;background:var(--green);color:white;font:10px var(--sans);border-radius:50%;width:18px;height:18px;display:grid;place-items:center;border:2px solid var(--page)}.discovery.hint{animation:hint 1s ease-in-out 4}.discovery.hint:before{content:"";position:absolute;inset:-3px;border:2px dashed var(--red);border-radius:50%}@keyframes hint{50%{filter:drop-shadow(0 0 13px #ffe8a4);transform:translate(-50%,-50%) scale(1.15)}}.scene-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 0 0;font-size:11px;color:var(--soft)}.hint-button{background:none;border:0;color:var(--red);padding:10px 0 10px 12px;min-height:44px;font-size:11px}.chapter-navigation{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #cbbb9780;margin:15px 27px 0;padding:16px 5px 4px}.nav-button{border:0;background:none;font:12px var(--sans);min-height:44px;padding:10px;display:flex;align-items:center;gap:10px}.chapter-dots{display:flex;gap:4px}.chapter-dot{width:28px;height:44px;border:0;background:none;padding:0;display:grid;place-items:center}.chapter-dot:after{content:"";width:5px;height:5px;background:var(--line);border-radius:50%}.chapter-dot[aria-current=true]:after{background:var(--red);width:8px;height:8px}.chapter-label{font:9px var(--sans);letter-spacing:2px;text-align:center;color:var(--soft);margin:2px 0 0}.faith-note{font:italic 16px/1.45 var(--serif);color:var(--soft)}.faith-note a{text-decoration-color:#a7823e80}
.ending{max-width:700px;margin:0 auto;text-align:center;padding:37px 40px 27px}.ending h1{font:500 clamp(54px,6vw,80px)/1 var(--serif);color:var(--red);margin:20px 0}.ending .age{font:italic 42px var(--serif);color:var(--gold)}.ending .letter{font:22px/1.5 var(--serif);text-align:left;max-width:530px;margin:25px auto}.signature{font:italic 31px var(--serif);color:var(--red);text-align:right}.ending-photo{display:block;max-width:245px;margin:20px auto 28px;position:relative;border:1px solid var(--gold);padding:10px;background:#efe5cc;cursor:pointer;color:var(--blue);width:100%;min-height:140px}.ending-photo .icon{width:70px;height:70px;margin:auto}.ending-photo span{display:block;font:italic 20px var(--serif)}.ending-photo img{max-height:260px;max-width:100%;display:block;margin:auto}.ending-progress{font-size:12px;line-height:1.8;color:var(--soft)}.celebration{pointer-events:none;position:fixed;inset:0;z-index:25;overflow:hidden}.celebration i{position:absolute;top:-25px;color:var(--gold);font-style:normal;animation:fall 3s ease-in forwards}@keyframes fall{to{transform:translateY(110vh) rotate(250deg);opacity:0}}
dialog{border:1px solid var(--gold);padding:0;background:var(--page);color:var(--ink);box-shadow:0 15px 90px #21190c55;width:min(620px,calc(100% - 28px));max-height:92dvh;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#28251cba;backdrop-filter:blur(5px)}body:has(dialog[open]){overflow:hidden}.close-button{position:sticky;top:12px;float:right;margin:12px 12px -56px 0;z-index:3;width:44px;height:44px;flex-shrink:0;padding:0;appearance:none;border:1px solid #bca779;background:var(--page);color:var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:0;box-shadow:0 2px 8px #30291b14}.close-button svg{display:block;width:20px;height:20px;flex:none;pointer-events:none}.close-button:hover{background:#fffaf0;border-color:var(--gold)}.close-button:active{background:#eee3cb}.memory-image{padding:22px 22px 0;min-height:200px}.memory-image img{width:100%;max-height:58dvh;object-fit:contain;display:block;background:#e9e0cc}.memory-copy{text-align:center;padding:23px 33px 27px}.memory-copy .eyebrow{font-size:9px;margin:0 0 12px}.memory-copy h2{font:500 35px/1.1 var(--serif);margin:0 0 14px}.memory-copy p:not(.eyebrow){font:20px/1.4 var(--serif);margin:12px 0}.memory-copy .text-button{margin-top:5px}#album-dialog{width:min(900px,calc(100% - 28px));padding:20px 26px 30px}.album-header{padding:20px 20px 10px;text-align:center}.album-header .eyebrow{font-size:9px;margin-bottom:8px}.album-header h2{font:500 45px var(--serif);margin:0}.album-header>p:last-child{font-size:12px;color:var(--soft);line-height:1.7}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.album-tile{background:none;border:1px solid var(--line);padding:8px;text-align:left}.album-tile img{width:100%;aspect-ratio:1.1;object-fit:cover;display:block}.album-tile .locked-art{display:grid;place-items:center;aspect-ratio:1.1;background:#eee5d0;color:var(--gold);font-size:38px}.album-tile .tile-title{font:18px var(--serif);display:block;margin-top:8px}.album-tile .tile-meta{font:9px var(--sans);color:var(--soft);display:block;margin:5px 0}.no-script{padding:20px;text-align:center}
@media(min-width:1450px){.book-shell{margin-top:22px}.masthead{padding-top:32px}}
@media(max-width:900px){.book-shell{margin:0 20px}.cover-layout{padding:33px 23px;gap:25px;min-height:580px}.cover-copy h1{font-size:76px}.cover-subtitle{font-size:21px}.chapter-layout{gap:25px;padding:30px 22px;min-height:530px}.chapter-copy .prose{font-size:19px}.chapter-copy h1{font-size:49px}.discovery{width:64px;height:64px}.masthead{padding:20px 28px}.chapter-dots{gap:0}}
@media(max-width:640px){.masthead{padding:15px 20px;gap:8px}.brand{gap:10px;font-size:8px;letter-spacing:1.3px}.brand-initial{width:27px;height:31px;font-size:26px}.album-button{gap:6px;font-size:10px}.album-button>span:first-child{font-size:20px}.counter{padding:4px 6px;font-size:9px}.book-shell{margin:0 12px;padding:19px 13px}.book-shell:before{inset:7px}.book-shell:after{inset:11px}.cover-layout{display:flex;flex-direction:column;padding:20px 12px 10px;gap:30px;min-height:0}.cover-copy{padding:0}.eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:14px}.cover-copy h1{font-size:76px;margin:17px 0;letter-spacing:-2px}.cover-copy h1 em{display:inline}.cover-copy h1 .title-line{display:block}.cover-subtitle{font-size:22px;margin:8px auto 20px;max-width:260px}.flourish{margin:12px auto;height:20px}.cover-instruction{font-size:11px;margin-top:17px;max-width:250px}.cover-art{max-width:265px}.cover-art figcaption{font-size:15px;bottom:9px;left:9px;right:9px}.cover-dedication{font-size:16px;margin:15px 10px 0;padding-top:17px}.primary-button{min-height:48px}.site-footer{margin:21px auto;gap:12px;font-size:6.5px;letter-spacing:1.1px}.chapter-layout{display:flex;flex-direction:column;gap:25px;padding:22px 16px 6px;min-height:0}.chapter-copy{width:100%}.chapter-copy h1{font-size:44px;line-height:1.03;margin:10px 0 18px;max-width:320px}.chapter-copy .prose{font-size:20px;line-height:1.4}.chapter-copy .eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:11px}.chapter-note{font-size:17px;margin-top:17px}.prose p:first-child:first-letter{font-size:53px}.scene-wrap{max-width:390px;padding:0 3px}.miniature{aspect-ratio:1}.discovery{width:65px;height:65px}.scene-caption{font-size:10px;padding-top:10px}.chapter-navigation{margin:15px 10px 0;padding:10px 0 2px;gap:2px}.nav-button{font-size:10px;padding:8px 4px;gap:5px}.nav-button .arrow{font-size:18px}.chapter-dot{width:20px}.chapter-label{font-size:8px;letter-spacing:1px}.route{font-size:9px}.ending{padding:25px 17px 15px}.ending h1{font-size:55px}.ending .letter{font-size:21px;line-height:1.45}.ending .age{font-size:35px}.ending-photo{max-width:225px}.memory-image{padding:16px 16px 0}.memory-image img{max-height:51dvh}.memory-copy{padding:20px 22px}.memory-copy h2{font-size:30px}.memory-copy p:not(.eyebrow){font-size:19px}.album-grid{grid-template-columns:repeat(2,1fr);gap:12px}#album-dialog{padding:14px 16px 22px}.album-header{padding:30px 5px 8px}.album-tile .tile-title{font-size:17px}.album-tile .tile-meta{font-size:8px}.close-button{top:8px;margin-top:8px;margin-right:8px}.faith-note{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.discovery.hint{outline:3px dashed var(--red)}.celebration{display:none}}

/* Discoveries live inside the painted illustrations. Transparent targets preserve the artwork. */
.miniature .discovery{width:19%;height:19%;min-width:48px;min-height:48px;padding:0;filter:none;border-radius:50%}
.miniature .discovery:hover{box-shadow:0 0 0 1px #f4db8a99,0 0 18px #ffe9a354;background:#f9df8c12}
.miniature .discovery.hint:before{border-color:#fff1b2;box-shadow:0 0 0 1px #865525,0 0 16px #ffdf78}
.miniature .discovery:focus-visible{outline-color:#fff1b2;box-shadow:0 0 0 5px #86552599}
.ending-photo .ending-miniature{width:100%;height:auto;max-height:none;aspect-ratio:1;object-fit:contain;margin-bottom:12px}
