:root{--paper:#fff7f8;--ink:#654953;--muted:#987680;--line:#ecd3dd;--rose:#b65b7e;--serif:'Songti SC','Noto Serif CJK SC','SimSun',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;font-size:14px}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;font:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--rose);outline-offset:5px}button{border:0}button:disabled{opacity:.35;cursor:default}img{display:block;width:100%;height:100%;object-fit:cover}header,main>section,footer{padding-left:max(6.5vw,24px);padding-right:max(6.5vw,24px)}.header{height:104px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:40px}.brand{font-family:Georgia,serif;font-size:28px;display:flex;align-items:center;gap:7px}.brand-star{font-size:19px;color:var(--rose)}.brand-small{font-family:Arial,sans-serif;font-size:9px;letter-spacing:2px;width:100px;line-height:1.6;margin-left:12px}.header nav{display:flex;gap:34px;margin:auto;font-size:12px}.header nav a:hover{color:var(--rose)}.header-date{font-size:9px;letter-spacing:2px}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:705px;align-items:center;overflow:hidden}.hero-copy{padding:68px 0 48px;z-index:1}.eyebrow{font-size:10px;letter-spacing:2px;line-height:1.7;color:var(--muted)}.tiny-line{display:inline-block;width:24px;border-top:1px solid;vertical-align:middle;margin-right:12px}.salutation{font-size:13px;margin-top:38px;letter-spacing:3px}h1{font-family:var(--serif);font-weight:400;font-size:clamp(45px,5.1vw,78px);line-height:1.3;letter-spacing:2px;margin:21px 0 28px}.italic{color:var(--rose)}.hero-description{font-size:13px;color:#886773;line-height:2.1;letter-spacing:.6px}.primary{background:var(--rose);color:#fff;padding:18px 26px;min-width:190px;margin-top:24px}.primary span{float:right;margin-left:28px}.primary:hover{background:#994364}.text-link{display:inline-block;margin-left:23px;font-size:12px;border-bottom:1px solid #dfbccb;padding-bottom:8px}.text-link span{margin-left:12px}.dedication{font-size:8px;letter-spacing:2px;margin-top:55px}.dedication span{color:#a88793;margin-left:10px}.hero-art{position:relative;height:590px;margin-left:20px}.photo-paper{position:absolute;background:#fffdf7;padding:12px 12px 0;box-shadow:0 14px 28px #a0476920;width:265px;height:385px}.photo-paper img{height:325px}.photo-paper>span{display:block;text-align:center;font-family:var(--serif);font-size:12px;padding:16px 0}.photo-back{transform:rotate(12deg);left:39%;top:60px}.photo-front{transform:rotate(-8deg);left:8%;top:140px;z-index:1}.orbit-text{position:absolute;top:65px;left:9%;font-size:8px;letter-spacing:3px;transform:rotate(-8deg)}.scribble{position:absolute;top:535px;left:17%;font-family:Georgia,serif;font-style:italic;font-size:18px;transform:rotate(-6deg);color:var(--rose)}.flower{position:absolute;left:2%;top:67px;font-size:66px;font-family:serif;font-weight:200;color:var(--rose)}.art-note{position:absolute;right:-8px;bottom:58px;writing-mode:vertical-rl;letter-spacing:2px;font-size:8px;line-height:2.2;color:#a17e8c}.birthday-strip{background:#f9e8ee;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-top:31px;padding-bottom:31px;gap:30px}.birthday-label h2{font-family:var(--serif);font-size:23px;font-weight:400;margin:12px 0 0}.countdown{display:flex;gap:22px;align-items:center}.countdown>div{text-align:center}.countdown strong{font-family:Georgia,serif;font-size:39px;font-weight:400;font-variant-numeric:tabular-nums}.countdown span{display:block;font-size:8px;letter-spacing:1px;margin-top:7px;color:var(--muted)}.countdown i{font-style:normal;font-size:22px;color:#cca4b5;align-self:flex-start;margin-top:7px}.birthday-aside{font-family:var(--serif);font-size:14px;line-height:1.9;margin:0}.birthday-aside span{display:block;font-family:Arial,sans-serif;font-size:9px;color:var(--muted);margin-top:8px}.section{padding-top:90px;padding-bottom:10px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:40px}.section-heading .eyebrow{margin-top:0}.section-heading h2{font-family:var(--serif);font-size:32px;font-weight:400;letter-spacing:1px;margin:15px 0 0}.section-heading>p{font-size:12px;line-height:2;color:var(--muted);margin:0}.book-layout{display:grid;grid-template-columns:360px 1fr;gap:7vw;align-items:center}.cover{position:relative;text-align:left;display:flex;flex-direction:column;min-height:480px;background:#e7b4c8;color:#674553;padding:40px 36px 28px 45px;box-shadow:inset 6px 0 8px #b46d8c30,10px 14px 25px #b3648120;border-radius:2px 5px 5px 2px;transition:transform .3s}.cover:hover{transform:translateY(-5px)}.cover:before{content:'';position:absolute;left:13px;top:0;bottom:0;border-left:1px solid #fff6fa80}.cover-top{font-size:9px;letter-spacing:3px}.cover-title{font-family:var(--serif);font-size:34px;line-height:1.6;margin-top:38px;letter-spacing:3px}.cover-flower{font-size:45px;font-family:serif;margin:22px 0 16px;color:#fff3f8}.cover-sub{font-family:var(--serif);font-size:12px;line-height:1.8;color:#7d5063}.cover-bottom{margin-top:auto;display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;border-top:1px solid #ffffff30;padding-top:21px}.cover-open{position:absolute;right:24px;bottom:67px;font-size:10px;opacity:.7}.contents-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;margin-bottom:16px;color:var(--muted)}.contents-top span:last-child{letter-spacing:1px}.chapter-row{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:20px;min-height:55px;font-family:var(--serif);font-size:16px}.chapter-index{font-family:Georgia,serif;font-size:12px;color:#bd8b9f}.chapter-range{margin-left:auto;font-family:Georgia,serif;font-size:10px;color:var(--muted);white-space:nowrap}.chapter-status{font:9px -apple-system,sans-serif;color:#ac8494}.draft-note{font-size:10px;line-height:1.9;color:var(--muted);margin-top:24px}.status-dot{display:inline-block;border-radius:50%;width:5px;height:5px;background:var(--rose);margin-right:6px}.small-note{font-size:11px;color:var(--muted)}.journal-card{display:grid;grid-template-columns:1fr 1fr;min-height:390px;border:1px solid var(--line)}.journal-image{padding:0;overflow:hidden;background:#f5e2e9}.journal-image img{max-height:410px;object-position:50% 38%;transition:transform .6s}.journal-image:hover img{transform:scale(1.03)}.journal-copy{padding:45px 48px;align-self:center}.journal-copy .eyebrow{display:flex;justify-content:space-between}.journal-copy h3{font-family:var(--serif);font-size:29px;font-weight:400;margin:24px 0}.journal-copy p{font-family:var(--serif);font-size:14px;line-height:2.1;color:#8e6b7b}.read-link{padding:10px 0;border-bottom:1px solid #cc9db2;background:none;margin-top:15px;font-size:12px}.read-link span{margin-left:65px}.gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px}.gallery button{background:none;padding:0;text-align:left}.gallery button>div{height:380px;overflow:hidden;background:#f5e2e9}.gallery img{transition:transform .5s}.gallery button:hover img{transform:scale(1.035)}.gallery button:nth-child(1) img{object-position:center 45%}.gallery button:nth-child(3) img{object-position:50% 28%}.gallery button>span{display:flex;align-items:center;font-size:10px;color:var(--muted);padding:20px 0;border-bottom:1px solid var(--line);gap:15px}.gallery em{font-family:var(--serif);font-size:14px;font-style:normal;color:var(--ink);flex:1}.closing{text-align:center;padding-top:110px;padding-bottom:85px}.closing h2{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.7;margin:22px 0}.closing>span{display:block;font-size:10px;letter-spacing:2px;color:var(--muted)}.closing a{display:inline-block;font-size:10px;margin-top:33px;border-bottom:1px solid var(--line);padding-bottom:8px}footer{display:flex;justify-content:space-between;padding-top:26px;padding-bottom:26px;border-top:1px solid var(--line);font-size:9px;letter-spacing:1px;color:var(--muted)}dialog{color:var(--ink);border:none;padding:0;background:var(--paper);max-height:92dvh}dialog::backdrop{background:#50303dd9;backdrop-filter:blur(6px)}.modal-open{overflow:hidden}.reader-dialog{width:min(1000px,94vw);box-shadow:0 20px 80px #0004}.reader-toolbar,.reader-controls{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;font-size:11px;gap:12px}.reader-toolbar button,.reader-controls button{background:none;padding:9px}.reader-toolbar{border-bottom:1px solid var(--line)}.reader-toolbar>div{display:flex;gap:10px}.spread{display:grid;grid-template-columns:1fr 1fr;min-height:480px}.reader-photo{position:relative;overflow:hidden}.reader-photo img{position:absolute;inset:0;object-position:center 42%}.reader-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#0008)}.reader-photo>span,.reader-photo>p{position:absolute;z-index:1;color:white;left:32px;bottom:100px;font-family:Georgia,serif;font-size:10px;letter-spacing:3px}.reader-photo>p{font-family:var(--serif);font-size:25px;line-height:1.7;bottom:22px;letter-spacing:2px}.reader-page{padding:45px 42px 28px;box-shadow:inset 10px 0 18px #a34e760b;max-height:62dvh;overflow-y:auto;display:flex;flex-direction:column}.reader-page h2{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.5;margin:25px 0}.reader-page #page-body{font-family:var(--serif);font-size:17px;line-height:2.2}.reader-page #page-number{margin-top:auto;padding-top:30px;text-align:right;font-family:Georgia,serif;font-size:12px;color:var(--muted)}.reader-controls{border-top:1px solid var(--line)}.reader-controls select{font:inherit;background:transparent;border:1px solid var(--line);color:var(--ink);padding:5px}.letter-dialog{width:min(640px,92vw);padding:55px 50px}.dialog-close{position:absolute;top:16px;right:18px;background:none;font-size:12px;padding:8px}.letter-dialog h2{font-family:var(--serif);font-weight:400;font-size:30px;margin:30px 0}.letter-dialog #letter-body{font-family:var(--serif);font-size:17px;line-height:2.3}.letter-sign{font-family:var(--serif);text-align:right;color:var(--muted);font-size:13px;margin-top:30px}.lightbox{width:min(750px,94vw);background:#593d49;color:#fff3f7;padding:45px 20px 10px}.lightbox img{height:72dvh;object-fit:contain}.lightbox p{text-align:center;font-size:11px;letter-spacing:2px}
@media(min-width:1500px){.hero{min-height:790px}.hero-art{transform:scale(1.1);transform-origin:center}.photo-back{left:38%}.photo-front{left:12%}}
@media(max-width:1050px){.header-date{display:none}.header nav{margin-left:auto;margin-right:0}.hero{min-height:650px;grid-template-columns:1.05fr 1fr}.hero-art{margin-left:0;transform:scale(.85);transform-origin:left center;width:470px}.hero-copy{padding-top:45px}.hero-description{font-size:12px}.text-link{margin-left:14px}.primary{min-width:160px;padding:16px 20px}.book-layout{grid-template-columns:300px 1fr;gap:40px}.cover{min-height:450px;padding-left:35px}.cover-title{font-size:30px}.chapter-row{gap:12px;font-size:14px}.birthday-aside{display:none}.gallery button>div{height:310px}.journal-copy{padding:30px}.journal-copy h3{font-size:25px}}
@media(max-width:700px){.header{height:78px;gap:10px}.brand{font-size:24px}.brand-small{font-size:7px;letter-spacing:1px;width:65px;margin-left:4px}.header nav{gap:17px;font-size:11px}.hero{display:flex;flex-direction:column;align-items:stretch;min-height:0}.hero-copy{padding-top:45px;padding-bottom:0}.hero-copy>.eyebrow{font-size:8px;letter-spacing:1.5px}.salutation{margin-top:28px;font-size:12px}h1{font-size:49px;line-height:1.3;margin:18px 0 23px}.hero-description{font-size:12px}.dedication{font-size:7px;letter-spacing:1px;margin-top:29px}.dedication span{margin-left:4px}.hero-art{transform:none;width:100%;height:450px;margin-top:15px}.photo-paper{width:205px;height:295px;padding:9px 9px 0}.photo-paper img{height:249px}.photo-paper>span{padding:11px 0;font-size:10px}.photo-front{top:80px;left:3%;transform:rotate(-7deg)}.photo-back{top:30px;left:40%;transform:rotate(9deg)}.orbit-text{top:18px;left:3%;font-size:6px;letter-spacing:1.5px}.flower{font-size:44px;top:32px;left:4%}.scribble{font-size:15px;top:397px;left:10%}.art-note{font-size:6px;bottom:35px;right:-6px}.birthday-strip{flex-direction:column;align-items:flex-start;gap:22px;padding-top:27px;padding-bottom:27px}.birthday-label{display:flex;flex-direction:column;gap:2px}.birthday-label h2{font-size:23px;margin-top:8px}.birthday-label .eyebrow{font-size:8px}.countdown{width:100%;justify-content:space-between;gap:10px}.countdown strong{font-size:34px}.countdown span{font-size:7px}.section{padding-top:60px}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:26px;line-height:1.5;margin-top:12px}.section-heading>p,.section-heading>.small-note{display:block;margin-top:16px;font-size:11px}.eyebrow{font-size:8px;letter-spacing:1.6px}.book-layout{grid-template-columns:1fr;gap:40px}.cover{width:min(310px,90%);justify-self:center;min-height:440px}.contents-top{font-size:9px}.chapter-row{min-height:54px;font-size:14px;gap:13px}.chapter-range{font-size:10px}.chapter-status{font-size:8px}.draft-note{font-size:9px}.journal-card{grid-template-columns:1fr}.journal-image{height:320px}.journal-copy{padding:30px 25px}.journal-copy h3{font-size:25px}.journal-copy p{font-size:14px}.gallery{gap:14px;grid-template-columns:1fr 1fr}.gallery button>div{height:240px}.gallery button:nth-child(3){grid-column:1/-1;width:65%;margin:10px auto 0}.gallery button:nth-child(3)>div{height:300px}.gallery em{font-size:11px}.gallery button>span{gap:8px;font-size:8px;padding:15px 0}.closing{padding-top:70px;padding-bottom:60px}.closing h2{font-size:25px}.closing>span{font-size:8px}footer{font-size:7px;gap:15px}footer span:nth-child(2){letter-spacing:0}.spread{grid-template-columns:1fr;min-height:0}.reader-photo{display:none}.reader-dialog{max-height:94dvh}.reader-toolbar,.reader-controls{padding:12px 13px;font-size:10px;gap:4px}.reader-toolbar>div{gap:0}.reader-toolbar button{font-size:9px;padding:7px}.reader-page{min-height:440px;max-height:65dvh;padding:28px 28px 24px}.reader-page h2{font-size:26px}.reader-page #page-body{font-size:17px;line-height:2.2}.reader-controls button{padding:8px 3px}.reader-controls label{font-size:9px}.reader-controls select{padding:4px}.letter-dialog{padding:50px 27px 30px}.letter-dialog h2{font-size:26px}.letter-dialog #letter-body{font-size:16px}.lightbox{padding:45px 8px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Blush stationery and character stickers */
body{background-image:radial-gradient(#d99ab31a .65px,transparent .65px);background-size:7px 7px}
.header{background:#fff9fbd9}.brand-star{font-size:21px}.primary{border-radius:3px;box-shadow:0 5px 16px #b65b7e19}.hero-art .flower{color:#d68aa8;font-size:52px}.photo-paper{background:#fffdfd}.photo-front:before,.photo-back:before{content:'';position:absolute;width:82px;height:24px;background:#f3bdd29c;left:calc(50% - 41px);top:-10px;transform:rotate(6deg);border-left:1px dashed #fffbfdc9;border-right:1px dashed #fffbfdc9;z-index:2}.photo-back:before{background:#eec5dbb0;transform:rotate(-8deg)}
.hero-stickers{position:absolute;width:250px;height:110px;object-fit:contain;left:43%;top:445px;z-index:3;filter:drop-shadow(0 5px 3px #b65b7e0c);pointer-events:none}.scribble{color:#b65b7e;left:6%;font-size:16px;top:552px}.art-note{bottom:78px}.birthday-strip{background:linear-gradient(110deg,#fae8ef,#fff2f6)}.cover{background:linear-gradient(125deg,#edbfd1,#e4acc3);color:#704659;box-shadow:inset 6px 0 8px #b46d8c30,10px 14px 25px #b3648120}.cover-top{color:#8f5870}.cover-flower{color:#fff3f8;font-size:38px}.cover-bottom{border-top-color:#af6d8a40}.cover-open{color:#7d5063}.chapter-status{color:#936574}.status-dot{background:#c97799}.journal-card{background:#fffbfc}.closing{position:relative}.closing-stickers{width:220px;height:100px;object-fit:contain;margin:0 auto 24px;pointer-events:none}.closing .eyebrow{color:#bc7896}.reader-page{background:#fff9fb}.reader-controls,.reader-toolbar{background:#fceef4}.letter-dialog{background:#fff9fb}.lightbox{background:#593d49}.countdown strong{color:#a45373}
@media(max-width:1050px){.hero-stickers{left:39%;top:450px}}
@media(max-width:700px){.hero-stickers{width:188px;height:85px;left:auto;right:0;top:320px}.scribble{top:415px;left:5%;font-size:13px}.hero-art{height:462px}.hero-art .flower{font-size:36px;top:35px}.art-note{bottom:65px}.closing-stickers{width:190px;height:83px;margin-bottom:20px}}
