/* Interaction invariants. Decorative layers never own hit-testing. */
[hidden]{display:none!important}
.wand-cursor,.wand-cursor *,.cursor-tail,.cursor-halo,.magic-spark,#nebula,#seasonParticles,.living-atmosphere,.living-atmosphere *,.chapter-transition,.chapter-transition *,.scroll-line{pointer-events:none!important}
.screen-room:before,.screen-room:after,.odyssey-dialog:before,.odyssey-dialog:after,.scrapbook-board:before{pointer-events:none!important}
body.wand-active{cursor:auto}body.wand-active a,body.wand-active button,body.wand-active [role=button]{cursor:pointer}
.polaroid-field{isolation:isolate}.polaroid{will-change:auto}.polaroid img{pointer-events:none}.polaroid .photo-flip{z-index:3}
html.modal-open{overflow:hidden}dialog{overscroll-behavior:contain}dialog:not([open]){display:none!important}
.odyssey-dialog{position:fixed;isolation:isolate;padding:20px 28px 32px;max-height:88dvh;scrollbar-gutter:stable}
.odyssey-dialog>.dialog-close{position:sticky;top:0;float:none;display:block;margin:0 0 8px auto;width:48px;height:48px;min-height:48px;z-index:100;pointer-events:auto;touch-action:manipulation;border:1px solid #b69cb6;border-radius:50%;background:#fff9ef;color:#59435f;font:32px/1 sans-serif;box-shadow:0 3px 12px #50325225}
.odyssey-dialog button,.odyssey-dialog a{touch-action:manipulation}.odyssey-dialog::backdrop{background:#211d35a6}
:focus-visible{outline:3px solid #528c98!important;outline-offset:4px}
.viewer-toolbar,.collection-pages{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.collection-pages{margin:40px 0}
.viewer-toolbar .btn{padding:12px;min-height:44px}.inspect-media{overflow:hidden;isolation:isolate}.inspect-media img{user-select:none;max-width:100%;transform-origin:center}.inspect-media.zoomed{touch-action:none;cursor:grab}.inspect-media video{position:relative;z-index:1}.viewer-playlist{max-width:100%;padding:12px;color:#574360;background:#fff8e9}.viewer-status{min-height:1.8em}.collection-memory{content-visibility:auto;contain-intrinsic-size:auto 350px}img[data-loading=true]{opacity:.65}img[data-failed=true]{filter:saturate(.4)}
.world-loading{pointer-events:none}.world-loading button{pointer-events:auto}
.audio-mixer{border:1px solid #c4b0c6;border-radius:16px;padding:16px;margin-top:24px}.audio-mixer label{display:flex;justify-content:space-between;gap:10px;margin:12px 0}.audio-mixer input{max-width:55%}
.music-dock{position:fixed;bottom:78px;left:24px;z-index:54;max-width:min(430px,calc(100vw - 36px));background:#fff8eeed;border:1px solid #c4adbc;border-radius:18px;padding:10px 14px;box-shadow:0 8px 30px #58436322;color:#624667}.music-dock summary{cursor:pointer;font:16px var(--note)}.music-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.music-controls button{min-width:42px;min-height:42px;border:1px solid #c9b5c6;border-radius:12px;background:#f2e6f0;color:#5b435f;cursor:pointer}.music-dock select,.music-dock input{max-width:100%}.music-dock p{font-size:12px;margin:8px 0}.music-dock audio{max-width:100%;height:36px}
@media(max-width:700px){.odyssey-dialog{padding:12px 16px 24px}.experience-tools{left:8px;bottom:10px;gap:4px}.experience-tools button{padding:10px 8px}.music-dock{left:10px;bottom:60px}.settings-grid{grid-template-columns:1fr}.inspect-media img{height:42vh}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}

html,body.page{overflow-x:clip}.living-atmosphere{overflow:clip}

/* A restrained palette per season: paper stays warm, highlights change mood. */
.page[data-season=spring]{--chapter-glow:#c8e4d8;--chapter-paper:#fff5e9;--chapter-accent:#bd8199}
.page[data-season=summer]{--chapter-glow:#b2dfe5;--chapter-paper:#f5f7e8;--chapter-accent:#568d98}
.page[data-season=autumn]{--chapter-glow:#e7c598;--chapter-paper:#fbefdf;--chapter-accent:#9f6772}
.page[data-season=winter]{--chapter-glow:#c9d9ed;--chapter-paper:#f5f1fa;--chapter-accent:#827499}
.page:not(.page-video-library){background:radial-gradient(ellipse at 85% 15%,var(--chapter-glow,#efdcdf),transparent 58%),var(--chapter-paper,#fff5ed)}
.collection-heading h1,.small-things-heading h1{color:var(--chapter-accent,#87617b)}
.collection-memory:nth-child(4n+2){background:#f2f8ee}.collection-memory:nth-child(4n+3){background:#edf5fa}.film-library .collection-memory:nth-child(n){background:#3e3347}
.small-things-shell{width:min(1080px,88vw);margin:70px auto 140px}.small-things-heading{max-width:710px;margin:0 auto 70px;text-align:center}.small-things-heading h1{font:clamp(48px,7vw,88px)/1.12 var(--display);margin:22px 0}.small-things-heading p{font:22px/1.7 var(--note);color:#806a80}.small-things-heading .small-things-hint{font:13px var(--body);opacity:.75}.small-things-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:start}.small-note{position:relative;background:#fffaf0;padding:35px 28px;min-height:185px;box-shadow:0 12px 35px #73516015;rotate:var(--note-turn);border:1px solid #d8c9b788;animation:note-breathe 9s ease-in-out infinite;animation-delay:-2s}.small-note:nth-child(3n+2){background:#e9f2ef;margin-top:28px;animation-delay:-5s}.small-note:nth-child(3n){background:#efedf7;animation-delay:-7s}.small-note: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;left:42%;height:22px;width:52px;background:#d8bd9780;rotate:-4deg;pointer-events:none}.small-note p{font:26px/1.5 var(--note);color:#69586d}.note-number{font:12px var(--body);letter-spacing:.15em;color:#a18d99}.small-note img{width:100%;max-height:220px;object-fit:cover;margin-bottom:20px}
@keyframes note-breathe{50%{translate:0 -5px;box-shadow:0 18px 40px #7351601d}}
.response-dialog{width:min(820px,94vw)}.response-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:0;padding:0;margin:24px 0}.response-options legend{font:16px var(--body);margin-bottom:14px}.response-options label{display:flex;align-items:center;gap:12px;padding:14px;background:#f4eee4;border:1px solid #d1bdca;border-radius:14px;cursor:pointer;font:19px/1.4 var(--note);min-height:65px}.response-options label:has(input:checked){background:#e4eeec;border-color:#6f9396}.response-options input{accent-color:#867095;flex-shrink:0}.response-note{display:grid;gap:10px;font:18px var(--note)}.response-note textarea{width:100%;padding:15px;font:18px/1.6 var(--note);border:1px solid #c8b6c8;border-radius:12px;background:#fffdf6;color:#56415c}.response-actions{display:flex;flex-wrap:wrap;gap:12px}.response-privacy{font-size:13px!important}.response-status{min-height:1.7em}.response-actions .btn{font-size:12px;letter-spacing:.03em}
.emotional-ending{width:min(780px,94vw);min-height:460px;text-align:center;background:radial-gradient(ellipse at 50% 35%,#faf1e5,#d8d6e8);transition:background 2s}.emotional-ending[data-ending=warm]{background:radial-gradient(ellipse at 50% 35%,#fff1c7,#edc7bd)}.emotional-ending[data-ending=sunset]{background:radial-gradient(ellipse at 50% 35%,#f5dfcb,#c7becf)}.emotional-ending .closing-message{position:static;font:clamp(27px,4vw,40px)/1.5 var(--display);margin:30px auto;max-width:570px;opacity:1;transform:none;filter:none;animation:none}.emotional-ending .closing-after{font:23px var(--note)}.emotional-ending .finale-return{position:static;display:inline-block;margin:20px 0;opacity:1;color:#68516f;background:#ffffff70}.ending-papers{font:50px var(--note);color:#a68ba7;letter-spacing:.4em;transition:transform 3s,opacity 3s;pointer-events:none}.emotional-ending.settled .ending-papers{transform:translateY(-24px);opacity:.3}.debug-panel{position:fixed;right:10px;bottom:12px;z-index:1000;background:#17232ded;color:#d6f4e5;font:11px/1.4 monospace;max-width:310px;padding:12px;pointer-events:none}
@media(max-width:700px){.small-things-wall{grid-template-columns:1fr 1fr;gap:20px 14px}.small-note{padding:24px 15px;min-height:165px}.small-note p{font-size:21px}.response-options{grid-template-columns:1fr}.small-things-heading{margin-bottom:45px}.small-things-shell{margin-top:45px}.emotional-ending{min-height:420px}}
