/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--paper:#f4ebdd;--paper-light:#fbf7f0;--ink:#382b2a;--burgundy:#6a1f32;--burgundy-hover:#7a2940;--rose-faded:#c98f99;--mauve:#a86f7b;--gold:#b49a67;--hairline:#d8c7ae}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);margin:0;font-family:Noto Sans SC,Source Han Sans SC,PingFang SC,Microsoft YaHei,sans-serif}button{font:inherit}button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.page-shell{background-color:var(--paper);background-image:repeating-linear-gradient(93deg,#573b2a04 0 1px,#0000 1px 5px),radial-gradient(circle at 30% 12%,#ffffffa6,#0000 28%),radial-gradient(circle at 80% 80%,#754b3509,#0000 32%);min-height:100svh;position:relative;overflow:hidden}.page-shell:after{content:"";pointer-events:none;opacity:.18;mix-blend-mode:multiply;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");position:fixed;inset:0}.book-spine{z-index:5;background-color:var(--burgundy);background-image:repeating-linear-gradient(0deg,#ffffff0b 0 1px,#0000 1px 4px),repeating-linear-gradient(90deg,#1604081f 0 1px,#0000 1px 3px);width:48px;position:absolute;inset:0 auto 0 0;box-shadow:inset -5px 0 9px #1e050c38,5px 0 12px #4b32281a}.book-spine:after{content:"";border-right:1px dashed #d2b476ad;position:absolute;top:0;bottom:0;right:7px}.top-rule{text-align:center;height:1px;color:var(--gold);z-index:2;background:#b49a67bf;position:absolute;top:42px;left:8.8%;right:5.4%}.top-rule span{background:var(--paper);padding:0 16px;font-size:12px;position:relative;top:-11px}.cover-copy{z-index:3;width:min(47vw,650px);margin-left:13.4vw;padding-top:clamp(140px,18.8vh,180px);animation:.9s cubic-bezier(.22,1,.36,1) both rise-in;position:relative}.date-mark{color:var(--burgundy);letter-spacing:.04em;margin:0 0 12px;font-family:Georgia,Songti SC,serif;font-size:21px}.date-ornament{border-top:1px solid var(--gold);width:66px;height:10px;position:relative}.date-ornament span{background:var(--gold);width:6px;height:6px;position:absolute;top:-4px;right:0;transform:rotate(45deg)}.cover h1,.stage-card h2{letter-spacing:.018em;font-family:Noto Serif SC,Source Han Serif SC,Songti SC,SimSun,serif;font-weight:600}.cover h1{margin:27px 0 24px;font-size:clamp(54px,5vw,76px);line-height:1.22}.cover-intro{opacity:.88;max-width:560px;margin:0 0 28px;font-family:Noto Serif SC,Songti SC,serif;font-size:18px;line-height:1.9}.primary-button{min-width:270px;height:60px;color:var(--paper-light);background:var(--burgundy);cursor:pointer;border:0;border-radius:14px;padding:0 28px;transition:transform .22s,background .22s,box-shadow .22s;box-shadow:0 10px 24px #4a19272e}.primary-button span{margin-left:20px;font-size:22px;transition:transform .22s;display:inline-block}.primary-button:hover{background:var(--burgundy-hover);transform:translateY(-2px);box-shadow:0 14px 30px #4a19273d}.primary-button:hover span{transform:translate(4px)}.primary-button.compact{min-width:230px;height:52px;margin-top:30px}.journey-note{align-items:center;gap:15px;margin-top:38px;font-family:Noto Serif SC,Songti SC,serif;font-size:16px;display:flex}.clock{border:2px solid var(--gold);border-radius:50%;width:22px;height:22px;position:relative}.clock:before{content:"";background:var(--gold);transform-origin:bottom;width:1px;height:7px;position:absolute;top:4px;left:9px;transform:rotate(-8deg)}.clock:after{content:"";background:var(--gold);width:5px;height:1px;position:absolute;top:10px;left:9px;transform:rotate(18deg)}.mini-dots{align-items:center;margin-left:8px;display:flex}.mini-dots i{background:var(--hairline);border-radius:50%;width:9px;height:9px;margin-left:32px;display:block;position:relative}.mini-dots i:before{content:"";border-top:1px solid var(--hairline);width:32px;position:absolute;top:4px;right:8px}.mini-dots i:first-child{background:var(--burgundy);animation:1.2s 1.1s both pulse}.memory-stack{z-index:1;width:min(47vw,620px);height:min(78vh,690px);animation:1s cubic-bezier(.22,1,.36,1) .35s both paper-in;position:absolute;top:10.8vh;right:2.8vw}.paper-back{clip-path:polygon(2% 1%,29% 0,31% 2%,54% 0,78% 1%,100% 4%,98% 38%,100% 71%,97% 100%,74% 98%,49% 100%,24% 98%,0 100%,2% 72%,0 41%);background:#f7efe4;position:absolute;inset:0 2% 0 8%;transform:rotate(-1.2deg);box-shadow:0 18px 38px #4b322821}.rose-paper{clip-path:polygon(1% 2%,25% 0,51% 2%,76% 0,99% 3%,97% 28%,100% 54%,98% 78%,100% 98%,71% 100%,44% 98%,20% 100%,0 96%,2% 66%,0 35%);background-color:#c98f999e;background-image:radial-gradient(circle at 60% 45%,#ffffff47,#0000 35%),repeating-linear-gradient(86deg,#ffffff08 0 1px,#0000 1px 5px);position:absolute;inset:7% 0 4% 15%;box-shadow:0 13px 24px #5f353824}.scribble{color:#6a1f32a6;letter-spacing:.18em;font:italic 38px Brush Script MT,cursive;position:absolute;bottom:10%;left:15%}.ribbon{background-color:#651f31;background-image:repeating-linear-gradient(0deg,#ffffff0a 0 1px,#0000 1px 4px),repeating-linear-gradient(90deg,#1e040c21 0 1px,#0000 1px 4px);width:59%;height:64%;position:absolute;bottom:-18%;right:-16%;transform:rotate(42deg);box-shadow:-8px -3px 18px #28070f29}.gold-thread{border-top:1px solid #c6a05ce6;border-radius:50%;width:58%;height:150px;position:absolute;bottom:-5%;left:-2%;transform:rotate(-12deg)}.page-tab{z-index:5;border:0;border-top:2px solid var(--burgundy);width:94px;height:36px;color:var(--burgundy);cursor:pointer;background:#eee1cf;transition:transform .2s;position:absolute;bottom:-1px;left:50%;box-shadow:0 -3px 12px #4b32281a}.page-tab:hover{transform:translateY(-6px)}.music-pill{z-index:7;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fbf7f0d6;border:1px solid #b49a67a6;border-radius:999px;align-items:center;gap:11px;padding:8px 15px 8px 8px;display:flex;position:absolute;bottom:28px;right:34px;box-shadow:0 8px 22px #4b32281a}.music-pill>span:last-child{text-align:left;gap:1px;display:grid}.music-pill b{color:var(--burgundy);letter-spacing:.04em;font:14px Georgia,serif}.music-pill small{color:#382b2a9e;font-size:10px}.music-disc{width:38px;height:38px;color:var(--paper-light);background:var(--burgundy);border-radius:50%;place-items:center;animation:7s linear infinite spin;display:grid}.music-hint{z-index:7;background:var(--burgundy);width:270px;color:var(--paper-light);border-radius:10px;margin:0;padding:12px 15px;font-size:12px;line-height:1.6;position:absolute;bottom:94px;right:34px;box-shadow:0 10px 26px #4a192733}.story{min-height:100svh;padding:0 7.5vw 52px 11vw;overflow:visible}.book-spine.slim{width:28px;position:fixed}.story-header{z-index:2;border-bottom:1px solid #b49a6780;justify-content:space-between;align-items:center;height:92px;display:flex;position:relative}.wordmark{color:var(--burgundy);cursor:pointer;background:0 0;border:0;padding:0;font-family:Noto Serif SC,Songti SC,serif;font-size:16px}.chapter-count{color:var(--gold);letter-spacing:.12em;font:15px Georgia,serif}.progress-track{z-index:2;background:#d8c7ae73;height:3px;margin-top:-2px;position:relative}.progress-track span{background:var(--burgundy);height:100%;transition:width .5s cubic-bezier(.22,1,.36,1);display:block}.reader-tools{z-index:20;gap:8px;display:flex;position:fixed;top:106px;right:26px}.reader-tools button{color:var(--burgundy);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fbf7f0e6;border:1px solid #b49a67b3;border-radius:999px;padding:9px 14px;box-shadow:0 8px 20px #4b322814}.reader-tools button span{margin-left:5px;font-size:12px}.stage-card{z-index:2;width:min(100%,1040px);margin:0 auto;padding:clamp(62px,9vh,96px) 0 36px;animation:.6s cubic-bezier(.22,1,.36,1) both rise-in;position:relative}.chapter-label{color:var(--burgundy);letter-spacing:.14em;align-items:center;gap:14px;margin-bottom:28px;font-size:15px;display:flex}.chapter-label span{border:1px solid var(--gold);letter-spacing:0;border-radius:50%;place-items:center;width:34px;height:34px;font:12px Georgia,serif;display:grid}.stage-card h2{max-width:880px;margin:0;font-size:clamp(37px,4vw,58px);line-height:1.3}.soft-hint{color:#382b2aa3;margin:20px 0 34px;font-family:Noto Serif SC,Songti SC,serif}.options-grid{grid-template-columns:1fr 1fr;gap:15px;max-width:900px;display:grid}.option{text-align:left;border:1px solid var(--hairline);min-height:68px;color:var(--ink);cursor:pointer;background:#fbf7f09e;border-radius:12px;padding:12px 18px;transition:all .2s}.option:hover:not(:disabled){border-color:var(--gold);background:var(--paper-light);transform:translateY(-2px);box-shadow:0 8px 18px #4b322814}.option span{border:1px solid var(--hairline);width:30px;height:30px;color:var(--burgundy);border-radius:50%;place-items:center;margin-right:13px;font:13px Georgia,serif;display:inline-grid}.option.correct{border-color:var(--gold);background:#f2e6d3}.option.correct span{background:var(--burgundy);border-color:var(--burgundy);color:#fff}.option.wrong{opacity:.46}.reveal-panel{border-left:3px solid var(--burgundy);background:#c98f9921;max-width:900px;margin-top:30px;padding:26px 30px;animation:.45s cubic-bezier(.22,1,.36,1) both rise-in}.reveal-panel p{margin:0 0 6px;line-height:1.8}.reveal-panel .reveal-title{color:var(--burgundy);font-weight:600}.reveal-panel blockquote{margin:18px 0 0;font-family:Noto Serif SC,Songti SC,serif;font-size:19px;line-height:1.7}.reveal-panel small{color:var(--gold);letter-spacing:.08em;margin-top:6px;font:12px Georgia,serif;display:block}.text-button{color:var(--burgundy);cursor:pointer;background:0 0;border:0;padding:18px 0 0;font-weight:600}.text-button span{margin-left:10px}.number-grid{background:var(--hairline);border:1px solid var(--hairline);grid-template-columns:repeat(2,1fr);gap:1px;margin-top:46px;display:grid}.number-grid article{background:#fbf7f0bf;min-height:190px;padding:28px 30px}.number-grid strong{color:var(--burgundy);font:50px Georgia,serif;display:block}.number-grid span{font-family:Noto Serif SC,Songti SC,serif;font-size:17px}.number-grid p{color:#382b2aa8;margin:17px 0 0;font-size:14px;line-height:1.7}.love-ledger{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:20px;max-width:920px;margin:44px 0 24px;display:grid}.love-ledger article{text-align:center;border:1px solid var(--hairline);background:#fbf7f0ad;min-height:230px;padding:36px;box-shadow:0 12px 32px #4b32280f}.love-ledger p{color:var(--burgundy);margin:0 0 20px;font-family:Noto Serif SC,Songti SC,serif;font-size:22px}.love-ledger strong{color:var(--burgundy);font:600 clamp(28px,4vw,46px) Noto Serif SC,Songti SC,serif;display:block}.love-ledger article span{color:#382b2a8f;margin-top:20px;font-size:13px;display:block}.love-ledger>i{color:var(--burgundy);align-self:center;font-size:22px;font-style:normal;animation:1.6s ease-in-out infinite pulse}.love-footnote{color:#382b2ab3;max-width:780px;font-family:Noto Serif SC,Songti SC,serif;line-height:1.9}.gallery-heading{justify-content:space-between;align-items:end;gap:42px;margin-bottom:36px;display:flex}.gallery-heading h2{flex:1}.gallery-heading>p{color:#382b2aa6;width:min(28vw,290px);margin:0 0 8px;font-family:Noto Serif SC,Songti SC,serif;line-height:1.8}.photo-collage{background:#fbf7f0bd;border:1px solid #b49a6773;grid-template-rows:240px 240px;grid-template-columns:1.2fr .8fr .8fr;gap:14px;padding:20px;display:grid;position:relative;transform:rotate(-.35deg);box-shadow:0 22px 44px #4b32281a}.photo-card{cursor:pointer;background:#ead9c0;border:8px solid #fffaf1;padding:0;transition:transform .25s,box-shadow .25s;overflow:hidden;box-shadow:0 6px 16px #36201b24}.photo-card:hover{z-index:2;transform:translateY(-5px)rotate(.5deg);box-shadow:0 14px 24px #36201b33}.photo-card img{object-fit:cover;width:100%;height:100%;display:block}.photo-card.portrait{grid-row:1/3}.photo-card.eye-one{grid-area:1/2;transform:rotate(-1.2deg)}.photo-card.eye-two{grid-area:1/3;transform:rotate(1.3deg)}.photo-card.eye-three{grid-area:2/2;transform:rotate(.8deg)}.photo-card.eye-four{grid-area:2/3;transform:rotate(-.7deg)}.photo-card.eye img{object-position:center 33%}.tape{z-index:3;background:#d8c7aeb8;width:84px;height:24px;position:absolute;box-shadow:inset 0 0 0 1px #b49a672e}.tape-one{top:6px;left:35%;transform:rotate(-8deg)}.tape-two{bottom:5px;right:6%;transform:rotate(7deg)}.hand-note{z-index:3;color:var(--burgundy);letter-spacing:.08em;margin:0;font:italic 25px Brush Script MT,cursive;position:absolute;bottom:-46px;left:35%;transform:rotate(-2deg)}.eye-note{border:1px solid var(--gold);width:min(100%,760px);color:var(--ink);cursor:pointer;background:#c98f9926;margin:62px auto 0;padding:24px 28px;font:20px/1.8 Noto Serif SC,Songti SC,serif;animation:.45s cubic-bezier(.22,1,.36,1) both rise-in;display:block}.eye-note span,.eye-note small{color:var(--burgundy);letter-spacing:.1em;font-family:Noto Sans SC,sans-serif;font-size:12px;display:block}.eye-note small{color:#382b2a73;letter-spacing:0;margin-top:9px}.gallery-stage>.primary-button{margin-top:56px}.preference-board{grid-template-columns:1fr 1fr;gap:18px;max-width:980px;margin-top:44px;display:grid;position:relative}.preference-board article{border:1px solid var(--hairline);background:#fbf7f0b3;min-height:220px;padding:30px 32px;position:relative;box-shadow:0 10px 28px #4b32280f}.preference-board article>p{color:var(--burgundy);letter-spacing:.12em;margin:0 0 16px;font-size:13px}.preference-board h3{color:var(--burgundy);margin:0 0 14px;font:600 32px Noto Serif SC,Songti SC,serif}.preference-board small{color:#382b2aad;font-size:14px;line-height:1.8;display:block}.favorite-card{overflow:hidden}.strawberries{gap:12px;margin-bottom:18px;font-size:42px;display:flex}.strawberries span{filter:saturate(.82);transition:transform .25s}.favorite-card:hover .strawberries span:first-child{transform:rotate(-8deg)translateY(-3px)}.favorite-card:hover .strawberries span:nth-child(2){transform:rotate(7deg)translateY(-6px)}.care-card{background:#c98f9921!important}.care-stamp{color:#6a1f329e;border:2px solid #6a1f3273;border-radius:50%;place-items:center;width:70px;height:70px;font-family:Noto Serif SC,serif;font-size:12px;display:grid;position:absolute;top:24px;right:24px;transform:rotate(10deg)}.love-language-card{grid-column:1/-1;grid-template-columns:180px 1fr;align-content:center;column-gap:24px;display:grid;min-height:250px!important}.love-language-card>p{grid-column:1}.love-language-card blockquote{color:var(--burgundy);grid-area:1/2/3;align-self:center;margin:0;font:600 clamp(34px,5vw,58px) Noto Serif SC,Songti SC,serif}.love-language-card small{grid-column:2;max-width:620px;margin-top:16px}.egg-star{color:var(--gold);cursor:pointer;background:0 0;border:0;font-size:20px;transition:transform .25s;position:absolute;bottom:110px;right:2px}.egg-star:hover{transform:rotate(45deg)scale(1.2)}.egg-copy{max-width:820px;color:var(--burgundy);border-left:3px solid var(--burgundy);background:#c98f9921;margin:24px 0 0;padding:18px 22px;font-family:Noto Serif SC,Songti SC,serif;line-height:1.8;animation:.4s both rise-in}.timeline{max-width:900px;margin-top:42px}.timeline article{grid-template-columns:70px 20px 1fr;gap:22px;min-height:112px;display:grid}.timeline time{color:var(--burgundy);padding-top:1px;font:16px Georgia,serif}.timeline-dot{background:var(--burgundy);border-radius:50%;width:9px;height:9px;margin-top:5px;position:relative}.timeline-dot:after{content:"";border-left:1px solid var(--hairline);height:91px;position:absolute;top:9px;left:4px}.timeline article:last-child .timeline-dot:after{display:none}.timeline h3{margin:0 0 8px;font-family:Noto Serif SC,Songti SC,serif;font-size:21px}.timeline p{color:#382b2aad;margin:0;line-height:1.7}.envelope-wrap{text-align:center;max-width:720px;margin:0 auto}.envelope{width:min(92vw,430px);height:250px;color:var(--burgundy);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);background:#ead9c0;border:1px solid #d4b98f;place-items:center;margin:0 auto 42px;display:grid;position:relative;box-shadow:0 18px 38px #4b32281f}.envelope:before{content:"";background:linear-gradient(32deg,#0000 49.5%,#d4b98f 50%,#0000 50.5%),linear-gradient(-32deg,#0000 49.5%,#d4b98f 50%,#0000 50.5%);position:absolute;inset:0}.envelope span{z-index:1;border:1px solid var(--gold);background:#f4ebdde0;padding:9px 16px;font-family:Noto Serif SC,Songti SC,serif;position:relative}.envelope-wrap h2{font-size:clamp(34px,4vw,50px)}.envelope-wrap>p{color:#382b2aad;margin:18px 0 0}.letter-paper{background:#fbf7f0db;border:1px solid #b49a6773;max-width:760px;margin:-20px auto 0;padding:clamp(34px,6vw,72px);font-family:Noto Serif SC,Songti SC,serif;font-size:18px;line-height:2.05;position:relative;box-shadow:0 22px 50px #4b32281a}.letter-paper:before{content:"";pointer-events:none;border:1px solid #b49a6742;position:absolute;inset:14px}.letter-paper p{position:relative}.salutation{color:var(--burgundy);font-size:22px}.letter-ending{margin-top:30px}.final-page .story-header,.final-page .progress-track,.final-page footer{display:none}.final-page{padding-top:0}.final-letter-stage{align-items:center;width:100%;max-width:none;min-height:calc(100svh - 104px);padding:24px 0 112px;display:grid;position:relative}.final-letter-paper{background:#fbf7f0b8;border:1px solid #b49a6780;width:min(100%,1240px);min-height:min(78vh,760px);margin:0 auto;padding:clamp(64px,7vw,108px) clamp(66px,8vw,128px);font:26px/2.05 Noto Serif SC,Source Han Serif SC,Songti SC,serif;position:relative;box-shadow:0 22px 52px #4b322814}.final-letter-paper:before{content:"";pointer-events:none;border-left:1px solid #b49a6747;border-right:1px solid #b49a6747;position:absolute;inset:0 24px}.final-letter-paper p{margin:0 0 14px;position:relative}.final-letter-paper .salutation{color:var(--burgundy);margin-bottom:18px;font-size:33px}.final-letter-body .letter-ending{margin-top:42px}.final-signature{color:var(--burgundy);text-align:right;justify-items:end;gap:4px;display:grid;position:absolute;bottom:clamp(42px,5vw,76px);right:clamp(66px,8vw,128px);transform:rotate(-2.5deg)}.signature-name{letter-spacing:-.08em;text-shadow:0 1px #6a1f321f;font-family:STKaiti,KaiTi,Kaiti SC,FZKai-Z03,cursive;font-size:clamp(30px,3.2vw,46px);font-weight:700;line-height:1}.signature-stroke{opacity:.72;border-top:2px solid;border-radius:55% 40% 50% 30%;width:112%;height:7px;margin:-2px -5% 1px 0;transform:rotate(-3deg)skew(-20deg)}.final-signature time{letter-spacing:.13em;opacity:.82;font:italic 15px/1.2 Georgia,Times New Roman,serif}footer{z-index:2;text-align:center;color:#382b2a8a;border-top:1px solid #b49a6780;margin-top:50px;padding:24px 0 0;font-family:Noto Serif SC,Songti SC,serif;font-size:13px;position:relative}.page-navigation{z-index:18;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbf7f0e6;border:1px solid #b49a6799;border-radius:999px;grid-template-columns:120px 1fr 120px;align-items:center;width:min(100%,760px);margin:48px auto 0;padding:8px;display:grid;position:sticky;bottom:16px;left:0;right:0;box-shadow:0 12px 32px #4b32281f}.page-navigation>button{height:42px;color:var(--burgundy);cursor:pointer;background:0 0;border:0;border-radius:999px}.page-navigation>button:hover:not(:disabled){background:#c98f9924}.page-navigation>button:disabled{opacity:.28;cursor:default}.page-navigation>div{justify-content:center;gap:8px;display:flex}.page-navigation>div button{background:var(--hairline);cursor:pointer;border:0;border-radius:50%;width:8px;height:8px;padding:0}.page-navigation>div button.current{background:var(--burgundy);border-radius:999px;width:24px}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes paper-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=900px){.cover{min-height:100svh;padding-bottom:330px;overflow:hidden}.book-spine{width:18px}.book-spine:after{right:4px}.top-rule{top:28px;left:11%;right:7%}.cover-copy{width:auto;margin:0 25px 0 46px;padding-top:92px}.cover h1{margin-top:22px;font-size:clamp(42px,12vw,58px)}.cover-intro{font-size:16px;line-height:1.8}.primary-button{width:100%}.journey-note{flex-wrap:wrap;font-size:13px}.mini-dots{display:none}.memory-stack{opacity:.85;width:92vw;height:300px;top:auto;bottom:-35px;right:-12vw}.ribbon{width:46%;height:90%;bottom:-38%;right:-3%}.scribble{font-size:28px}.story{padding:0 22px 44px 42px}.book-spine.slim{width:18px}.story-header{height:72px}.reader-tools{flex-direction:column;align-items:flex-end;top:auto;bottom:82px;right:13px}.reader-tools button{padding:8px 12px}.reader-tools button span{display:none}.wordmark{white-space:nowrap;text-overflow:ellipsis;text-align:left;max-width:220px;overflow:hidden}.stage-card{padding-top:52px}.stage-card h2{font-size:37px}.options-grid,.number-grid{grid-template-columns:1fr}.option{min-height:62px}.number-grid article{min-height:150px}.number-grid strong{font-size:42px}.timeline article{grid-template-columns:55px 14px 1fr;gap:12px;min-height:126px}.timeline-dot:after{height:106px}.letter-paper{padding:34px 28px;font-size:16px}.final-letter-stage{min-height:calc(100svh - 80px);padding:18px 0 98px}.final-letter-paper{min-height:auto;padding:48px 28px 142px;font-size:18px;line-height:1.95}.final-letter-paper:before{inset:0 10px}.final-letter-paper .salutation{margin-bottom:18px;font-size:27px}.final-letter-body p{margin-bottom:18px}.final-letter-body p br{display:none}.final-letter-body .letter-ending{margin-top:34px}.final-signature{bottom:28px;right:28px}.signature-name{font-size:28px}.final-signature time{font-size:12px}.music-pill{bottom:14px;right:16px}.music-pill small{display:none}.music-hint{width:240px;bottom:76px;right:16px}.love-ledger{grid-template-columns:1fr}.love-ledger>i{justify-self:center}.love-ledger article{min-height:180px}.gallery-heading{display:block}.gallery-heading>p{width:auto;margin-top:18px}.photo-collage{grid-template-rows:repeat(4,150px);grid-template-columns:1.1fr .9fr;padding:12px}.photo-card.portrait{grid-area:1/1/5}.photo-card.eye-one{grid-area:1/2}.photo-card.eye-two{grid-area:2/2}.photo-card.eye-three{grid-area:3/2}.photo-card.eye-four{grid-area:4/2}.photo-card{border-width:5px}.hand-note{font-size:21px;bottom:-40px;left:3%}.preference-board{grid-template-columns:1fr}.love-language-card{grid-column:1;display:block}.love-language-card blockquote{margin:12px 0}.egg-star{bottom:96px;right:4px}.page-navigation{grid-template-columns:72px 1fr 72px;padding:6px;bottom:10px}.page-navigation>button span{display:none}.page-navigation>div{gap:5px}.page-navigation>div button{width:6px;height:6px}.page-navigation>div button.current{width:16px}}@media (width<=600px){html{-webkit-text-size-adjust:100%}body{overflow-x:hidden}.page-shell{min-height:100dvh}.cover{flex-direction:column;min-height:100dvh;padding-bottom:248px;display:flex}.top-rule{top:24px;left:42px;right:20px}.top-rule span{padding:0 10px}.cover-copy{margin:0 20px 0 38px;padding-top:68px}.date-mark{margin-bottom:8px;font-size:16px}.date-ornament{width:50px}.cover h1{margin:16px 0;font-size:clamp(34px,10.6vw,46px);line-height:1.22}.cover-intro{margin-bottom:20px;font-size:15px;line-height:1.72}.primary-button{border-radius:12px;min-width:0;height:52px;padding:0 18px;font-size:15px}.primary-button span{margin-left:10px}.journey-note{gap:10px;margin-top:22px}.memory-stack{width:100vw;height:248px;bottom:-50px;right:-18vw}.page-tab{display:none}.music-pill{padding:6px 11px 6px 6px;bottom:12px;right:12px}.music-disc{width:34px;height:34px}.music-pill b{font-size:12px}.music-hint{width:min(240px,100vw - 48px);bottom:66px;right:12px}.story{padding:0 14px 32px 31px}.story-header{height:58px}.wordmark{max-width:calc(100vw - 120px);font-size:13px}.chapter-count{flex:none;font-size:12px}.reader-tools{bottom:70px;right:9px}.reader-tools button{place-items:center;width:38px;height:38px;padding:0;display:grid;box-shadow:0 6px 16px #4b32281c}.stage-card{width:100%;padding:34px 0 20px}.chapter-label{letter-spacing:.09em;gap:10px;margin-bottom:20px;font-size:12px}.chapter-label span{width:29px;height:29px;font-size:10px}.stage-card h2{font-size:clamp(28px,8.2vw,35px);line-height:1.34}.soft-hint{margin:15px 0 24px;font-size:14px;line-height:1.7}.options-grid{gap:10px}.option{min-height:56px;padding:10px 13px;font-size:14px}.option span{width:26px;height:26px;margin-right:9px}.reveal-panel{margin-top:22px;padding:20px 18px}.reveal-panel p{font-size:14px}.reveal-panel blockquote{font-size:16px}.primary-button.compact{min-width:0;height:50px;margin-top:24px}.number-grid{margin-top:28px}.number-grid article{min-height:0;padding:20px}.number-grid strong{font-size:38px}.number-grid span{font-size:15px}.number-grid p{margin-top:10px}.love-ledger{gap:12px;margin:28px 0 18px}.love-ledger article{min-height:0;padding:24px 18px}.love-ledger p{margin-bottom:12px;font-size:18px}.love-ledger strong{font-size:34px}.love-ledger article span{margin-top:13px;font-size:12px;line-height:1.7}.love-footnote{font-size:14px;line-height:1.75}.gallery-heading{margin-bottom:24px}.gallery-heading>p{margin-top:12px;font-size:14px}.photo-collage{grid-template-rows:300px repeat(2,118px);grid-template-columns:1fr 1fr;gap:8px;padding:9px;transform:none}.photo-card.portrait{grid-area:1/1/auto/-1}.photo-card.eye-one{grid-area:2/1}.photo-card.eye-two{grid-area:2/2}.photo-card.eye-three{grid-area:3/1}.photo-card.eye-four{grid-area:3/2}.hand-note{font-size:18px;bottom:-34px;left:10px}.eye-note{margin-top:50px;padding:18px;font-size:16px}.preference-board{gap:12px;margin-top:28px}.preference-board article{min-height:0;padding:22px 20px}.preference-board h3{padding-right:56px;font-size:25px}.strawberries{font-size:34px}.care-stamp{width:56px;height:56px;font-size:10px;top:18px;right:14px}.love-language-card blockquote{font-size:31px}.egg-star{bottom:76px;right:0}.timeline{margin-top:28px}.timeline article{grid-template-columns:44px 10px 1fr;gap:10px;min-height:132px}.timeline time{font-size:13px}.timeline h3{font-size:17px}.timeline p{font-size:13px}.timeline-dot:after{height:112px}.final-page{padding:0 12px 20px 28px}.final-letter-stage{align-items:start;min-height:100dvh;padding:14px 0 76px}.final-letter-paper{width:100%;padding:34px 21px 132px;font-size:clamp(15px,4.25vw,17px);line-height:1.84;box-shadow:0 12px 30px #4b322814}.final-letter-paper:before{inset:0 7px}.final-letter-paper .salutation{margin-bottom:14px;font-size:22px}.final-letter-body p{margin-bottom:13px}.final-letter-body .letter-ending{margin-top:24px}.final-signature{bottom:24px;right:22px}.signature-name{font-size:27px}.signature-stroke{height:5px}.page-navigation{bottom:max(7px, env(safe-area-inset-bottom));grid-template-columns:48px 1fr 48px;width:calc(100% - 4px);margin-top:30px;padding:5px}.page-navigation>button{height:38px;font-size:15px}.page-navigation>div{gap:4px}.page-navigation>div button{width:5px;height:5px}.page-navigation>div button.current{width:13px}}@media (width<=900px) and (orientation:landscape) and (height<=520px){.cover{min-height:100dvh;padding-bottom:24px}.cover-copy{width:58vw;padding-top:54px}.cover h1{font-size:34px}.cover-intro{font-size:13px}.journey-note{display:none}.memory-stack{width:45vw;height:calc(100dvh - 70px);top:56px;bottom:auto;right:-5vw}.stage-card{padding-top:26px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
