:root{
 --fm-rose:#b86786;--fm-pink:#efd1dc;--fm-blush:#f8e8ee;--fm-lavender:#e9e3f3;
 --fm-cream:#fff9ed;--fm-peach:#f6dfcf;--fm-blue:#dceff1;--fm-gold:#c9a96e;
 --fm-ink:#584553;--fm-soft:#846d7a;--fm-paper:#fffaf0f2;--fm-line:#b980962e;
 --fm-radius:24px;--fm-shadow:0 18px 55px #76576718;--fm-shadow-soft:0 8px 24px #76576712;
 --fm-spring:cubic-bezier(.2,.8,.2,1);--fm-dock-height:66px;
}
body{--fm-accent:var(--fm-rose);--fm-scene:#fff8ed}
body[data-chapter="our-days"]{--fm-accent:#b7778f;--fm-scene:#fff3e9}
body[data-chapter="gallery"],body[data-chapter="photo-wall"]{--fm-accent:#9d7395;--fm-scene:#fbf3f6}
body[data-chapter="memory-room"]{--fm-accent:#b78b6b;--fm-scene:#fff5e6}
body[data-chapter="cinema"],body[data-chapter="video-library"]{--fm-accent:#8b728f;--fm-scene:#342d3a}
body[data-chapter="constellation"]{--fm-accent:#a16f8f;--fm-scene:#f8f0f5}
body[data-chapter="letters"]{--fm-accent:#ad6e7f;--fm-scene:#fff7e9}
body[data-chapter="petal-fall"]{--fm-accent:#c27f91;--fm-scene:#fff4f0}
body[data-chapter="small-things"]{--fm-accent:#ad7b9c;--fm-scene:#fff7df}
body[data-chapter="trips"]{--fm-accent:#6e9295;--fm-scene:#eff7f5}
body[data-chapter="secret-room"]{--fm-accent:#8f6e91;--fm-scene:#f3edf6}
body[data-chapter="finale"]{--fm-accent:#9c7188;--fm-scene:#f8f2f1}

body[data-ambience="evening"]{--fm-ambient-glow:#f1b8992e}
body[data-ambience="night"]{--fm-ambient-glow:#a7a6d72d}
body[data-ambience="day"]{--fm-ambient-glow:#ffe9b82d}
body:after{/* [CHỮ / BIỂU TƯỢNG CSS] Chuỗi sau content là chữ vẽ thêm bằng ::before/::after của bộ chọn này; không phải nội dung album. Chuỗi rỗng tạo lớp trang trí trống. Chỉ đổi phần trong nháy nếu muốn đổi nhãn / biểu tượng. */content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 72% 12%,var(--fm-ambient-glow,#ffe9b82d),transparent 34%);transition:background 1.2s ease}
body[data-readable="true"] :is(p,li,.letter-reading,.day-note,.inspect-note,.surprise-body){font-size:max(1em,17px);line-height:1.85;letter-spacing:.005em}
body[data-contrast="true"]{--ink:#3f303b;--soft-ink:#5d4b58;--fm-ink:#3f303b;--fm-soft:#5d4b58}

/* Persistent memory compass */
.memory-dock{position:fixed;left:50%;bottom:18px;translate:-50% 0;z-index:84;display:flex;gap:4px;align-items:center;padding:7px;background:#fffaf1e8;border:1px solid #a7758b28;border-radius:22px;box-shadow:0 12px 42px #5d42582b,0 1px 0 #fff inset;backdrop-filter:blur(18px) saturate(1.12);max-width:calc(100vw - 32px)}
.memory-dock:before{/* [CHỮ / BIỂU TƯỢNG CSS] Chuỗi sau content là chữ vẽ thêm bằng ::before/::after của bộ chọn này; không phải nội dung album. Chuỗi rỗng tạo lớp trang trí trống. Chỉ đổi phần trong nháy nếu muốn đổi nhãn / biểu tượng. */content:"";position:absolute;inset:4px;border:1px dashed #bd8ba62c;border-radius:18px;pointer-events:none}
.memory-dock-button{position:relative;z-index:1;min-width:54px;height:50px;padding:5px 8px;border:0;border-radius:16px;background:transparent;color:#76556a;display:grid;place-items:center;gap:1px;font:600 12px var(--body);cursor:pointer;transition:transform .22s var(--fm-spring),background .22s,color .22s;touch-action:manipulation}
.memory-dock-button>span{font:22px/1 Georgia,serif}.memory-dock-button small{font-size:9px;letter-spacing:.02em;white-space:nowrap}.memory-dock-button:hover,.memory-dock-button:focus-visible{background:#f6e6ed;transform:translateY(-3px);outline:2px solid #c1849d55;outline-offset:2px}.memory-dock-button:active{transform:translateY(1px) scale(.97)}.memory-dock-button[aria-current="page"]{background:#ead0dc;color:#7d425e}.memory-dock-button:disabled{opacity:.34;cursor:default;transform:none}
.experience-tools{bottom:88px!important;z-index:86!important}.music-dock{bottom:142px!important;z-index:88!important}.extra-nav{z-index:86!important}.toast{bottom:96px!important}
body:not(.odyssey-story-ended) :is(.memory-dock,.music-dock,.experience-tools,.extra-nav){visibility:visible}
#settingsPanel[open],#chapterMenu[open],#memorySearch[open],#journeyProgress[open],#musicPlaylist[open]{visibility:visible!important;opacity:1!important}

/* Home becomes a hub, while the existing storybook remains the emotional hero. */
.page-gateway .album-entry{padding-bottom:150px}.page-gateway .storybook{isolation:isolate}.page-gateway .storybook:after{/* [CHỮ / BIỂU TƯỢNG CSS] Chuỗi sau content là chữ vẽ thêm bằng ::before/::after của bộ chọn này; không phải nội dung album. Chuỗi rỗng tạo lớp trang trí trống. Chỉ đổi phần trong nháy nếu muốn đổi nhãn / biểu tượng. */content:"";position:absolute;inset:-14px;border:1px solid #fff8ef99;border-radius:28px;box-shadow:0 24px 70px #8d68751d;pointer-events:none;z-index:-1}
.home-journey{width:min(1180px,92vw);margin:64px auto 20px;position:relative}.home-journey:before{/* [CHỮ / BIỂU TƯỢNG CSS] Chuỗi sau content là chữ vẽ thêm bằng ::before/::after của bộ chọn này; không phải nội dung album. Chuỗi rỗng tạo lớp trang trí trống. Chỉ đổi phần trong nháy nếu muốn đổi nhãn / biểu tượng. */content:"";position:absolute;left:24px;right:24px;top:-22px;border-top:1px dashed #af7d9136}
.home-journey-heading{text-align:center;max-width:700px;margin:0 auto 30px}.home-journey-heading h2{font:clamp(36px,5vw,66px)/1.08 var(--display);color:#5a4354;margin:8px 0 12px}.home-journey-copy{color:#856d7b;font-size:15px}
.home-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.home-preview-card{min-height:132px;padding:20px 18px;display:flex;gap:15px;align-items:flex-start;background:linear-gradient(145deg,#fffaf0f3,#f8e8eff0);border:1px solid #b87d9823;border-radius:20px;box-shadow:var(--fm-shadow-soft);color:#5d4657;position:relative;overflow:hidden;transition:transform .28s var(--fm-spring),box-shadow .28s,border-color .28s}
.home-preview-card:after{/* [CHỮ / BIỂU TƯỢNG CSS] Chuỗi sau content là chữ vẽ thêm bằng ::before/::after của bộ chọn này; không phải nội dung album. Chuỗi rỗng tạo lớp trang trí trống. Chỉ đổi phần trong nháy nếu muốn đổi nhãn / biểu tượng. */content:"";position:absolute;width:70px;height:70px;border-radius:50%;right:-22px;bottom:-25px;background:radial-gradient(circle,#f1c9d9aa,transparent 68%)}
.home-preview-card:hover,.home-preview-card:focus-visible{transform:translateY(-5px) rotate(-.25deg);box-shadow:0 16px 34px #76576722;border-color:#a9698740;outline:none}.home-preview-card[data-visited="true"]:before{/* [CHỮ / BIỂU TƯỢNG CSS] Chuỗi sau content là chữ vẽ thêm bằng ::before/::after của bộ chọn này; không phải nội dung album. Chuỗi rỗng tạo lớp trang trí trống. Chỉ đổi phần trong nháy nếu muốn đổi nhãn / biểu tượng. */content:"♡";position:absolute;top:9px;right:12px;color:#a86582;font-size:13px}.home-preview-icon{width:42px;height:42px;flex:0 0 auto;border-radius:14px;background:#fff8f0;display:grid;place-items:center;font:24px Georgia;color:#a85e7d;box-shadow:inset 0 0 0 1px #b47c9428}.home-preview-copy{display:grid;gap:7px}.home-preview-copy strong{font:20px/1.2 var(--display);font-weight:600}.home-preview-copy small{font:12px/1.55 var(--body);color:#8a7480}
.home-journey-lower{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:16px;margin-top:18px}.home-journey-lower>section{min-height:210px;padding:24px;background:#fffaf0e6;border:1px solid #a7748d20;border-radius:var(--fm-radius);box-shadow:var(--fm-shadow-soft);position:relative}.home-journey-lower h3{font:26px/1.18 var(--display);margin:8px 0 11px;color:#5e4757}.home-journey-lower p:not(.kicker){font-size:13px;line-height:1.65;color:#846e7a}.home-progress-track,.journey-progress-track{height:9px;border-radius:999px;background:#eadde2;overflow:hidden;margin:17px 0}.home-progress-track i,.journey-progress-track i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#c4879f,#d9a6b8,#b99ec9);transition:width .5s var(--fm-spring)}
.home-daily-card{background:linear-gradient(150deg,#fff7eb,#f4ecf6)!important}.home-ambient-card{grid-column:1/-1;min-height:auto!important;display:grid;grid-template-columns:auto 1fr 1fr;gap:12px 28px;align-items:center;padding-block:18px!important}.home-ambient-card h3,.home-ambient-card p{margin:0}.home-ambient-card .kicker{grid-row:1/3}

/* Search and progress are soft album sheets, not command palettes. */
.memory-search{width:min(780px,94vw)}.memory-search-field{display:grid;gap:8px}.memory-search-field span{font-size:12px;color:#806b79}.memory-search-field input{width:100%;padding:15px 17px;border:1px solid #b88aa032;background:#fffaf1;color:#5d4658;border-radius:16px;font:16px var(--body);outline:none}.memory-search-field input:focus{border-color:#a66281;box-shadow:0 0 0 4px #c78ba329}.memory-search-status{min-height:22px;margin:12px 0!important}.memory-search-results{display:grid;gap:8px;max-height:48vh;overflow:auto;padding-right:4px}.memory-search-result{width:100%;padding:14px 16px;border:1px solid #ae7e9524;border-radius:16px;background:#fffaf1;text-align:left;display:grid;gap:4px;color:#5c4656;cursor:pointer}.memory-search-result:hover,.memory-search-result:focus-visible{background:#f4e3eb;outline:2px solid #c58aa342}.memory-search-result strong{font:18px var(--display)}.memory-search-result small{font:11px/1.55 var(--body);color:#856f7c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journey-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.journey-stat{padding:18px 12px;background:#fff9ef;border:1px solid #b3819624;border-radius:18px;text-align:center}.journey-stat strong{display:block;font:30px var(--display);color:#8d5670}.journey-stat span{display:block;font-size:10px;color:#816b78;margin-top:4px}.journey-last{min-height:24px}.journey-actions{display:flex;gap:10px;flex-wrap:wrap}

/* Settings categories */
#settingsPanel[data-final-master="true"]{width:min(850px,94vw)}#settingsPanel[data-final-master="true"]>p{font-size:12px}.settings-section{margin:14px 0;padding:18px;border:1px solid #ad7c9224;border-radius:20px;background:#fffaf0b5}.settings-section>h3{font:22px var(--display);margin:0 0 15px;color:#654d5d}.settings-section .settings-grid{display:grid;gap:12px}.settings-section .settings-grid label,.final-setting-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:13px;color:#67525f}.final-setting-row input[type="checkbox"]{width:20px;height:20px;accent-color:#a56582}.final-setting-row select{padding:9px 12px;border:1px solid #ad7d9435;border-radius:10px;background:#fff9f0;color:#5e4858}.settings-audio .audio-mixer{margin:0;border:0;padding:0}.settings-experience .btn{margin-top:12px}

/* Subtle tactile finish across chapters. */
.btn,.collection-memory,.letter-card,.memory-charm,.day-door,.archive-entry{transition-timing-function:var(--fm-spring)!important}.btn:focus-visible,.collection-memory:focus-visible,.letter-card:focus-visible,.memory-charm:focus-visible,.day-door:focus-visible,.archive-entry:focus-visible{outline:2px solid var(--fm-accent);outline-offset:3px}.page main> :is(section,header):not(.season-theatre){scroll-margin-top:92px}
.collection-empty,.playlist-empty{border-radius:20px;background:#fffaf0b8}.odyssey-dialog{border-radius:24px!important}.odyssey-dialog::backdrop{background:#46334275!important;backdrop-filter:blur(10px)!important}.odyssey-dialog>.dialog-close{box-shadow:0 8px 26px #6e4f6320!important}

@media(max-width:1100px){.home-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-journey-lower{grid-template-columns:1fr 1fr}.home-progress-card{grid-column:1/-1}.home-ambient-card{grid-column:1/-1}.memory-dock-button{min-width:48px;padding-inline:6px}}
@media(max-width:760px){
 body{padding-bottom:76px}.memory-dock{left:8px;right:8px;bottom:8px;translate:0;max-width:none;overflow-x:auto;justify-content:flex-start;scrollbar-width:none;border-radius:18px;padding:5px}.memory-dock::-webkit-scrollbar{display:none}.memory-dock-button{min-width:52px;height:50px}.memory-dock-button small{font-size:8px}.memory-dock-button>span{font-size:20px}
 .experience-tools{bottom:70px!important;left:8px!important}.music-dock{bottom:122px!important;left:8px!important;max-height:60dvh}.toast{bottom:72px!important}
 .page-gateway .album-entry{padding-inline:14px;padding-bottom:110px}.home-journey{width:100%;margin-top:38px}.home-journey-heading h2{font-size:38px}.home-preview-grid{grid-template-columns:1fr 1fr;gap:10px}.home-preview-card{min-height:118px;padding:15px 12px;gap:10px;border-radius:17px}.home-preview-icon{width:36px;height:36px;font-size:20px}.home-preview-copy strong{font-size:16px}.home-preview-copy small{font-size:10px}.home-journey-lower{grid-template-columns:1fr}.home-progress-card,.home-ambient-card{grid-column:auto}.home-journey-lower>section{min-height:0;padding:20px}.home-ambient-card{display:block}.home-ambient-card>*{margin:5px 0!important}
 .journey-stats{grid-template-columns:1fr 1fr}.memory-search-results{max-height:52dvh}.settings-section{padding:14px}.final-setting-row{min-height:48px}.final-setting-row select{max-width:52%}
}
@media(max-width:430px){.home-preview-grid{grid-template-columns:1fr}.home-preview-card{min-height:92px}.memory-dock-button{min-width:49px}.journey-stats{gap:7px}.journey-stat{padding:14px 8px}.journey-stat strong{font-size:25px}.memory-search-result small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}
@media(prefers-reduced-motion:reduce){.memory-dock-button,.home-preview-card,.home-progress-track i,.journey-progress-track i{transition:none!important}}
