/* Pixel scrapbook shell; original photographs retain their native rendering. */
#scrapbook-invite{position:absolute;left:20px;right:20px;top:32%;z-index:2;min-height:64px;padding:10px 16px;text-align:left;background:#f7f2e6;color:#654e43;border:2px solid #627a64;box-shadow:4px 4px #374e42;font:16px/1.5 var(--game-font)}
#scrapbook-invite small{display:block;font-size:12px;color:#79674f}.bottom [data-open=journal]{position:relative}.memory-ribbon{position:absolute;right:2px;top:-20px;padding:4px 6px;border:2px solid #74453d;background:#ad594d;color:#fff5dc;font:12px var(--game-font);box-shadow:2px 2px #493d32}
#scrapbook-dialog{box-sizing:border-box;padding:0;border:4px solid #9f8974;border-radius:0;width:min(900px,calc(100vw - 24px));max-height:92dvh;background:#ede7d9;color:#654e43;box-shadow:6px 6px #58473b55;font:14px/1.7 var(--game-font);overflow:hidden}
#scrapbook-dialog::backdrop{background:#20382eb3}#scrapbook-dialog *{box-sizing:border-box}#scrapbook-dialog button{font:inherit;min-height:44px;border-radius:0;touch-action:manipulation;cursor:pointer}#scrapbook-dialog button:focus-visible,#memory-seaside button:focus-visible,#scrapbook-invite:focus-visible{outline:3px solid #b65445;outline-offset:3px}
.scrap-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#ede7d9;border-bottom:2px solid #b5a58e}.scrap-toolbar small{display:block;color:#74664c;font-size:12px;letter-spacing:2px}.scrap-toolbar strong{font-size:24px;font-weight:400}.scrap-close{border:2px solid #aa9580;width:44px;padding:0;background:#f7f2e6;color:#735d4d;box-shadow:2px 2px #d2c4af;font-size:24px!important}
.scrap-tabs{display:flex;gap:6px;padding:12px 18px 0;background:#ede7d9;overflow-x:auto;scrollbar-width:thin}.scrap-tabs button{border:2px solid #a89b77;border-bottom:0;padding:4px 16px;background:#dfede2;color:#52735c;white-space:nowrap}.scrap-tabs button:nth-child(even){background:#f1dbd0;color:#864a54}.scrap-tabs button[aria-pressed=true]{background:#f5f2e8;color:#9e4741;box-shadow:inset 0 4px #c85f58}
.scrap-body{max-height:calc(92dvh - 190px);overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 20px;background:#dfede2}.scrap-spread{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);position:relative;isolation:isolate;border:2px solid #b09a83;box-shadow:4px 4px #b5a58e}.scrap-spread:after{content:'';position:absolute;left:calc(50% - 4px);top:0;bottom:0;width:8px;background:repeating-linear-gradient(0deg,#b5a58e 0 4px,#ede7d9 4px 8px);border-left:2px solid #d2c4af;border-right:2px solid #fffbef;pointer-events:none;z-index:3}
.scrap-page{position:relative;min-width:0;min-height:548px;padding:26px 24px 32px;overflow:hidden;background-color:#f5f2e8;background-image:linear-gradient(#aa95801f 1px,transparent 1px),linear-gradient(90deg,#aa95801f 1px,transparent 1px);background-size:20px 20px}.scrap-page:before{content:'';position:absolute;left:0;right:0;top:0;height:12px;background:repeating-linear-gradient(90deg,#85b69b 0 8px,#dfede2 8px 16px);border-bottom:2px solid #b7dcca}.scrap-page:last-child{background-color:#f7f2e6}.scrap-page:last-child:before{background:repeating-linear-gradient(90deg,#c85f58 0 8px,#f1dbd0 8px 16px);border-bottom-color:#ce8d79}
.scrap-label{display:inline-block;max-width:calc(100% - 34px);background:#c85f58;color:#f5f2e8;letter-spacing:1px;padding:2px 8px;font-size:12px;box-shadow:2px 2px #e4cabc}.scrap-page h2{font:24px/1.4 var(--game-font);color:#52735c;margin:16px 0 8px;letter-spacing:2px}.scrap-page p{font-size:16px;line-height:1.8}.scrap-page .hand-note{color:#74664f;font-size:14px;margin:8px 0;position:relative;z-index:1}.scrap-page .page-no{position:absolute;bottom:8px;right:16px;font-size:12px;color:#8c7857}.scrap-page .page-no:before{content:'— ';color:#ad594b}
.scrap-photo-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:28px 0 18px;position:relative}.scrap-photo{position:relative;border:2px solid #b5a58e;display:block;background:#fffbef;padding:6px 6px 25px;box-shadow:3px 3px #d8ccbb;width:100%;cursor:zoom-in!important}.scrap-photo:nth-child(2){margin-top:12px;align-self:start}.scrap-photo:before{content:'';position:absolute;top:-10px;left:24%;width:52%;height:18px;background-color:#b7dcca;background-image:linear-gradient(90deg,#f5f2e880 2px,transparent 2px),linear-gradient(#f5f2e880 2px,transparent 2px);background-size:8px 8px;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% 14px,calc(100% - 4px) 14px,calc(100% - 4px) 18px,0 18px,0 4px,4px 4px);z-index:1}.scrap-photo img{display:block;width:100%;height:150px;object-fit:contain;image-rendering:auto;background:#f3eee2}.scrap-photo .photo-name{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:12px;color:#857459}.firework-photo{margin:26px 0 18px;padding-bottom:8px}.firework-photo:before{background-color:#e0ada0;left:32%;width:40%}.firework-photo img{height:auto;max-height:190px;object-fit:contain}
.scrap-quote{position:relative;margin:20px 0 12px;padding:12px 0;border:0;border-top:2px dashed #bfa37d;border-bottom:2px dashed #bfa37d;color:#9e4741;font:18px/1.9 var(--game-font);text-align:center}.scrap-quote em{font-style:normal;color:#477d68;white-space:nowrap;background:#dfede2}.scrap-ticket{display:inline-block;margin-top:16px;padding:6px 10px;background:#dfede2;border:2px dashed #9fb6a0;color:#52735c;font-size:12px}.scrap-doodle{position:absolute;pointer-events:none;color:#c85f58}.scrap-doodle.star{right:20px;top:30px;width:24px;height:24px}.scrap-doodle svg{display:block;width:100%;height:100%;image-rendering:pixelated}.scrap-doodle.mint{color:#85b69b}.scrap-shell{width:48px;height:36px;vertical-align:middle;margin:4px 8px 0 0;image-rendering:pixelated}.scrap-horizon{height:10px;width:65%;margin:16px 0 0 20%;background:repeating-linear-gradient(90deg,#9ab8a5 0 20px,transparent 20px 28px);clip-path:polygon(0 0,40% 0,40% 4px,100% 4px,100% 8px,36% 8px,36% 4px,0 4px)}.scrap-sticker-pair{display:flex;justify-content:flex-end;gap:4px;margin-top:8px;padding-right:4px}.scrap-sticker{display:block;width:34px;height:44px;background-image:var(--resident-atlas);background-size:204px 44px;image-rendering:pixelated}.scrap-sticker.jimi{background-position:-34px 0}.scrap-sticker.han{background-position:0 0}
.scrap-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;background:#ede7d9;border-top:2px solid #b5a58e}.scrap-footer p{font-size:12px;color:#746143;margin:0;text-align:center}.scrap-footer button,.scrap-empty button{padding:6px 12px;border:2px solid #aa9580;background:#f7f2e6;color:#536749;box-shadow:2px 2px #d2c4af}.scrap-footer button:disabled{opacity:.4;cursor:default!important;box-shadow:none}.scrap-empty{min-height:360px;padding:54px 24px;text-align:center;background-color:#f5f2e8;background-image:linear-gradient(#aa95801f 1px,transparent 1px),linear-gradient(90deg,#aa95801f 1px,transparent 1px);background-size:20px 20px;border:2px solid #aa9877}.blank-flower{display:inline-block;width:48px;height:48px}.blank-flower svg{width:100%;height:100%}.scrap-empty h2{font:22px/1.6 var(--game-font);color:#617853}.scrap-empty p{font-size:14px;color:#796b52}.scrap-save-note{color:#964e45;font-size:12px;margin:8px 0 0}.scrap-new .scrap-photo{animation:photo-stick .48s steps(4,end)}.scrap-new .scrap-quote{animation:quote-in .64s steps(4,end)}.scrap-view-caption{color:#6c5941;font-size:14px}.scrap-view-image{display:block;width:auto;height:auto;max-width:100%;max-height:67dvh;object-fit:contain;image-rendering:auto;margin:auto}.scrap-view-back{margin-bottom:14px;border:2px solid #9d8864;background:#f7f2e6;color:#745440;padding:6px 12px;box-shadow:2px 2px #a08b68}
#memory-seaside{position:absolute;inset:0;z-index:12;background:#183444;color:#f8ead0;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;overflow:hidden;font-family:var(--game-font)}#memory-seaside[hidden]{display:none}.sea-sky{position:absolute;inset:0;background:linear-gradient(#172d3c 0 35%,#294a59 35% 48%,#668a89 48% 49%,#355765 49% 60%,#284b58 60% 70%,#8e927c 70% 73%,#c3b99b 73%);z-index:-2}.sea-stars{position:absolute;inset:0 0 45%;z-index:-1;background-image:linear-gradient(#efddb2,#efddb2),linear-gradient(#efddb2,#efddb2),linear-gradient(#efddb2,#efddb2),linear-gradient(#b6d9d2,#b6d9d2);background-size:3px 3px,4px 4px,2px 2px,3px 3px;background-position:12% 22%,70% 16%,38% 9%,83% 35%;background-repeat:no-repeat}.sea-wave{position:absolute;left:8%;right:18%;top:61%;height:4px;background:repeating-linear-gradient(90deg,#b6c8bc88 0 28px,transparent 28px 36px)}.sea-wave.second{top:68%;left:24%;right:8%;opacity:.5}.sea-caption{position:absolute;top:13%;left:22px;color:#e6dcc4;font-size:14px;letter-spacing:3px}.sea-caption strong{display:block;font-size:24px;font-weight:400;margin-top:12px;letter-spacing:2px}.sea-residents{position:absolute;display:flex;align-items:flex-end;gap:3px;left:50%;top:57%;transform:translateX(-50%)}.sea-person{width:68px;height:88px;background-image:var(--resident-atlas);background-size:408px 88px;image-rendering:pixelated;position:relative}.sea-person.jimi{background-position:-68px 0}.sea-person.han{background-position:0 0;transform:translateY(4px)}.hand-spark{position:absolute;width:4px;height:28px;background:#776754;left:58%;top:64%;z-index:2}.hand-spark svg{position:absolute;top:-28px;left:-14px;width:32px;height:32px;color:#ffe3a3;opacity:0}.sea-lit .hand-spark svg{opacity:1;animation:spark-glow .6s steps(2,end) alternate infinite}.sky-firework{position:absolute;width:96px;height:96px;left:17%;top:27%;color:#ecd5a6;opacity:0}.sky-firework svg{width:100%;height:100%}.sky-firework.two{width:64px;height:64px;left:61%;top:18%;color:#b9d7cd}.sea-lit .sky-firework{animation:firework 2.4s steps(5,end) infinite}.sea-lit .sky-firework.two{animation-delay:1s}.sea-controls{position:relative;padding:16px 18px max(22px,env(safe-area-inset-bottom));background:#182e3be6;border-top:2px solid #65817b;text-align:center}.sea-controls p{min-height:58px;font:16px/1.8 var(--game-font);margin:10px 0 14px}.sea-controls button{display:block;margin:9px auto;width:100%;max-width:330px;min-height:48px;background:#e8d9b9;border:2px solid #b59e7b;border-radius:0;box-shadow:3px 3px #102c35;color:#5d5947;font:14px var(--game-font)}.sea-controls .sea-back{background:transparent;color:#ebdfc6;border:0;box-shadow:none;font-size:12px;min-height:44px}.sea-error{font-size:12px;color:#ebc2ad}#memory-seaside button{touch-action:manipulation}
@keyframes photo-stick{from{opacity:0;translate:0 -12px}to{opacity:1;translate:0 0}}@keyframes quote-in{from{opacity:0}to{opacity:1}}@keyframes spark-glow{to{opacity:.55}}@keyframes firework{0%,15%{opacity:0;scale:.25}35%{opacity:.9;scale:1}85%,100%{opacity:0;scale:1.25}}
@media(max-width:620px){#scrapbook-dialog{width:calc(100vw - 16px);max-height:94dvh}.scrap-toolbar{padding:8px 12px}.scrap-toolbar strong{font-size:20px}.scrap-tabs{padding:8px 10px 0;gap:4px}.scrap-tabs button{padding:4px 12px}.scrap-body{padding:12px 10px 16px;max-height:calc(94dvh - 186px)}.scrap-spread{display:block}.scrap-spread:after{display:none}.scrap-page{min-height:508px;padding:26px 20px 30px}.scrap-page:not(.scrap-page-active){display:none}.scrap-page h2{font-size:24px}.scrap-photo img{height:150px}.firework-photo img{height:auto;max-height:200px}.scrap-quote{font-size:18px}.scrap-footer{padding:8px 10px;gap:6px}.scrap-footer button{padding:4px 8px}.scrap-footer p{font-size:12px}#scrapbook-invite{top:30%}}
@media(max-width:360px){.scrap-label{font-size:12px;letter-spacing:0}.scrap-page{padding-left:14px;padding-right:14px}.scrap-quote{font-size:16px}.scrap-photo-pair{gap:8px}.scrap-photo .photo-name{font-size:10px}.scrap-footer button{font-size:12px}.scrap-footer p{font-size:10px}}
@media(max-height:650px){.scrap-body{max-height:calc(92dvh - 184px)}.sea-caption{top:8%}.sea-residents{top:44%}.hand-spark{top:52%}.sea-controls{padding-bottom:8px}.sea-controls p{margin-top:4px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.scrap-new .scrap-photo,.scrap-new .scrap-quote,.sea-lit .hand-spark svg,.sea-lit .sky-firework{animation:none}.sea-lit .sky-firework{opacity:.7;scale:1}}

/* Room palette first; collage composition follows the supplied scrapbook references. */
#scrapbook-dialog{--scrap-paper:var(--paper,#f5f2e8);--scrap-red:var(--warm-red,#c85f58);--scrap-mint:var(--soft-mint,#dfede2);color:var(--ink,#654e43);background:#ede7d9;box-shadow:inset 0 0 0 2px #fffbef,4px 5px #58473b55}
.scrap-toolbar{background:var(--scrap-paper);border-bottom:3px solid #ce8d79}.scrap-toolbar strong{color:#864a54}.scrap-toolbar small{color:#648b70}.scrap-close{background:var(--scrap-paper);border-color:#aa9580;box-shadow:inset 0 0 0 2px #fffbef,2px 2px #d2c4af}
.scrap-tabs{background:#ede7d9}.scrap-tabs button{border-width:1px;border-bottom:0}.scrap-tabs button[aria-pressed=true]{box-shadow:inset 0 3px var(--scrap-red)}.scrap-body{background:var(--scrap-mint);padding:18px 20px 22px}.scrap-spread{box-shadow:3px 4px #b4c5b5}.scrap-page{min-height:582px;padding:30px 26px 34px;background-size:24px 24px}.scrap-page:last-child{background-color:var(--scrap-paper)}
.scrap-page:before{height:14px;background-color:#dfede2;background-image:repeating-linear-gradient(90deg,#85cbb866 0 8px,transparent 8px 16px),repeating-linear-gradient(0deg,#85cbb855 0 7px,transparent 7px 14px);border-bottom:1px solid #9fb6a0}.scrap-page:last-child:before{background-color:#f1dbd0;background-image:repeating-linear-gradient(90deg,#c85f5844 0 8px,transparent 8px 16px),repeating-linear-gradient(0deg,#c85f5833 0 7px,transparent 7px 14px);border-bottom-color:#ce8d79}
.scrap-label{background:var(--scrap-mint);color:#52735c;border:1px solid #9fb6a0;box-shadow:2px 2px #d2c4af;padding:3px 9px;transform:rotate(-2deg)}.scrap-page:last-child .scrap-label{background:#f1dbd0;color:#864a54;border-color:#ca9280;transform:rotate(2deg)}.scrap-page h2{position:relative;z-index:1;display:table;font-size:26px;letter-spacing:1px;margin:20px 0 12px;box-shadow:inset 0 -9px #dfede2;color:#654e43}.scrap-page:last-child h2{box-shadow:inset 0 -9px #f1dbd0}
.scrap-page .hand-note{font-family:'PingFang SC',system-ui,sans-serif;font-size:13px;line-height:1.9;color:#735d4d}.scrap-page h2+.hand-note{display:table;max-width:95%;padding:9px 14px;background:#fffbef;border-left:3px solid #85b69b;box-shadow:2px 3px #d2c4af55;transform:rotate(-1deg)}.scrap-page:last-child h2+.hand-note{padding:0;background:transparent;border:0;box-shadow:none;transform:none}
.scrap-photo-pair{gap:10px;margin:30px 0 20px;padding:0 3px}.scrap-photo{border:1px solid #b5a58e;padding:7px 7px 28px;box-shadow:3px 4px #77624c26;transform:rotate(-3deg)}.scrap-photo:nth-child(2){transform:rotate(3deg);margin-top:18px}.scrap-photo:before{height:22px;top:-12px;transform:rotate(3deg);opacity:.9}.scrap-photo:nth-child(2):before{background-color:#e0ada0;transform:rotate(-4deg)}.scrap-photo .photo-name{font-size:12px;color:#796454;bottom:4px}.scrap-photo img{height:152px}.scrap-photo-pair+.hand-note{margin:10px 0 4px;padding-left:6px}.scrap-shell{width:40px;height:30px;transform:rotate(-8deg)}.scrap-horizon{margin-top:10px;background:repeating-linear-gradient(90deg,#85cbb8 0 20px,transparent 20px 28px)}
.scrap-ticket{position:relative;max-width:calc(100% - 68px);margin-top:18px;background:#dfede2;border:1px dashed #83baa4;border-left:4px solid #83baa4;transform:rotate(-3deg);font-size:12px;padding:8px 10px;box-shadow:2px 3px #77624c1a}.scrap-sticker-pair{position:absolute;right:22px;bottom:36px;gap:0;transform:rotate(4deg);background:#fffbef;border:1px solid #d2c4af;padding:4px 2px 2px;box-shadow:2px 3px #77624c26}.scrap-doodle.star{width:36px;height:36px;top:36px;right:20px;color:#c85f58;transform:rotate(8deg)}.scrap-doodle.mint{color:#85b69b}
.firework-photo{width:93%;margin:28px auto 24px;transform:rotate(2deg);padding-bottom:9px}.firework-photo img{height:auto;max-height:188px}.firework-photo:before{transform:rotate(-4deg)}.scrap-quote{margin:22px 0 16px;padding:16px 9px 18px;border:0;background:#f1dbd0;color:#864a54;font-size:18px;line-height:1.9;transform:rotate(-1deg);clip-path:polygon(0 2px,18% 0,37% 3px,59% 0,78% 2px,100% 0,100% calc(100% - 3px),83% 100%,60% calc(100% - 2px),39% 100%,20% calc(100% - 3px),0 100%)}.scrap-quote em{background:#fffbef;color:#477d68;padding:0 2px}.scrap-page:last-child .scrap-quote+.hand-note{padding-left:10px;border-left:2px solid #c28e78}.scrap-footer{background:var(--scrap-paper);border-top:1px solid #b5a58e}.scrap-footer button,.scrap-empty button{border-width:1px;background:#dfede2;box-shadow:inset 0 0 0 2px #f2f7ed,1px 2px #77624c22;color:#52735c}.scrap-footer p{color:#735d4d}.scrap-empty{background-color:var(--scrap-paper);background-size:24px 24px;border-color:#b5a58e}
#scrapbook-invite{background:#f7f2e6;color:#654e43;border:1px solid #b09a83;border-left:4px solid #c85f58;box-shadow:inset 0 0 0 2px #fffbef,2px 3px #77624c22}.memory-ribbon{background:#c85f58;border-color:#9e4741;color:#fff8eb}
@media(max-width:620px){.scrap-body{padding:14px 12px 18px}.scrap-page{min-height:570px;padding:30px 24px 34px}.scrap-page h2{font-size:25px}.scrap-photo-pair{gap:10px}.scrap-photo img{height:155px}.firework-photo img{height:auto;max-height:200px}.scrap-sticker-pair{right:20px;bottom:35px}.scrap-quote{font-size:18px}}
@media(max-width:360px){.scrap-page{padding-left:18px;padding-right:18px}.scrap-page h2{font-size:24px}.scrap-photo img{height:140px}.firework-photo img{height:auto}.scrap-photo-pair{gap:8px}.scrap-quote{font-size:16px}.scrap-ticket{font-size:11px;padding:8px 6px}.scrap-sticker-pair{right:14px}.scrap-doodle.star{right:14px;width:28px;height:28px}}

/* Collage finish: layered paper, linen binding, keepsake stamps and quieter spacing. */
#scrapbook-dialog{border-width:2px;border-color:#9f8974;box-shadow:0 2px 0 #fffbef,0 5px 0 #d2c4af,0 7px 0 #aa9580,6px 10px 0 #58473b44}
.scrap-toolbar{padding:12px 18px 11px;position:relative;border-bottom:1px solid #d2c4af;background-image:linear-gradient(90deg,#c85f58 0 5px,transparent 5px);background-repeat:no-repeat;background-size:5px 36px;background-position:0 center}.scrap-toolbar small{letter-spacing:3px;font-size:11px;margin-bottom:2px}.scrap-toolbar strong{font-size:22px;letter-spacing:1px}.scrap-close{border:1px solid #ca9280;color:#9e4741;background:#f1dbd0;box-shadow:inset 0 0 0 3px #f9eee7,1px 2px #77624c22}
.scrap-tabs{padding-top:14px;padding-bottom:0;gap:7px;background:#f5f2e8}.scrap-tabs button{position:relative;min-height:44px;padding:5px 15px 8px;transform:translateY(4px);border-color:#bac4ad;border-radius:3px 3px 0 0;transition:transform .12s,background-color .12s}.scrap-tabs button:nth-child(even){border-color:#d0ae9b}.scrap-tabs button[aria-pressed=true]{transform:translateY(0);background:#dfede2;box-shadow:inset 0 3px #85b69b;color:#477d68}.scrap-tabs button[aria-pressed=true]:after{content:'';position:absolute;bottom:6px;left:calc(50% - 2px);width:4px;height:2px;background:#648b70}
.scrap-body{border-top:1px solid #b5c6b6;padding:20px 22px 24px;background-color:#dfede2;background-image:repeating-linear-gradient(90deg,#85b69b0a 0 1px,transparent 1px 4px)}.scrap-spread{border-color:#b5a58e;box-shadow:0 2px #fffbef,0 4px #d2c4af,0 5px #b5a58e,4px 7px #648b7026}.scrap-spread:after{left:calc(50% - 5px);width:10px;background:linear-gradient(90deg,#b5a58e66,#fffbef88 45%,#b5a58e55 55%,#fffbef33);border-left:1px solid #d2c4af;border-right:1px solid #fffbef}
.scrap-page{min-height:618px;padding-top:35px;background-image:linear-gradient(#aa958016 1px,transparent 1px),linear-gradient(90deg,#aa958016 1px,transparent 1px);box-shadow:inset 0 0 0 5px #fffbef66}.scrap-page:before{left:8px;right:8px;height:13px;top:7px;transform:rotate(-.5deg);opacity:.85}.scrap-page:last-child:before{transform:rotate(.5deg)}.scrap-page:after{content:'';position:absolute;right:8px;top:89px;width:110px;height:110px;z-index:0;background:repeating-linear-gradient(0deg,#85b69b14 0 1px,transparent 1px 6px),#dfede233;transform:rotate(9deg);clip-path:polygon(0 0,100% 2%,98% 100%,4% 98%);pointer-events:none}.scrap-page:last-child:after{top:104px;right:0;background:repeating-linear-gradient(0deg,#c85f5810 0 1px,transparent 1px 6px),#f1dbd044;transform:rotate(-7deg)}
.scrap-label{position:relative;z-index:1;font-size:11px;letter-spacing:1px}.scrap-page h2{margin-top:19px;margin-bottom:14px}.scrap-page h2+.hand-note{position:relative;margin-left:3px;padding:10px 15px;border-left:0;border-bottom:1px solid #e4dac6;background-image:repeating-linear-gradient(0deg,transparent 0 23px,#aa95801a 23px 24px);background-position:0 7px;box-shadow:2px 3px #77624c14}.scrap-page h2+.hand-note:before{content:'';position:absolute;top:-7px;right:16px;width:38px;height:13px;background:#85cbb855;transform:rotate(4deg)}.scrap-page:last-child h2+.hand-note:before{display:none}
.scrap-photo-pair{isolation:isolate;margin-top:34px;margin-bottom:24px}.scrap-photo{background:#fffcf4;border-color:#c8bba5;box-shadow:1px 1px #fffbef,3px 5px #77624c22;transition:box-shadow .15s}.scrap-photo:before{background-size:6px 6px;box-shadow:0 1px #77624c14}.scrap-photo:after{content:'';position:absolute;right:3px;bottom:3px;width:13px;height:13px;background:linear-gradient(135deg,transparent 50%,#e8dfce 51%);pointer-events:none}.scrap-photo-pair .scrap-photo img{background:#f3eee2}.scrap-photo .photo-name{letter-spacing:1px;font-size:11px}.scrap-photo-pair .scrap-photo:nth-child(2){margin-top:22px}.scrap-photo-pair+.hand-note{padding-top:3px;padding-bottom:2px}.scrap-ticket{margin-top:19px;padding:8px 11px;background-image:linear-gradient(90deg,transparent calc(100% - 12px),#85b69b44 calc(100% - 12px),#85b69b44 calc(100% - 11px),transparent calc(100% - 11px));padding-right:21px}.scrap-sticker-pair{right:24px;bottom:43px;border:0;background:#fffaf0;outline:1px solid #d2c4af;outline-offset:2px;padding:8px 5px 9px;box-shadow:3px 5px #77624c1f}
.scrap-coast-stamp{position:absolute;left:28px;bottom:33px;width:72px;height:72px;color:#648b70;opacity:.6;transform:rotate(-14deg);pointer-events:none}.scrap-coast-stamp svg,.scrap-moon-stamp svg{width:100%;height:100%;display:block}.scrap-page-rule{position:absolute;left:25px;right:50px;bottom:17px;height:4px;background:repeating-linear-gradient(90deg,#c85f5866 0 7px,transparent 7px 11px,#85b69b66 11px 18px,transparent 18px 22px);opacity:.65}.scrap-page .page-no{bottom:9px;font-size:11px;letter-spacing:1px}
.firework-photo{position:relative;z-index:1;margin-top:30px;margin-bottom:26px;width:92%;padding:8px 8px 10px}.firework-photo:before{left:24%;width:48%;background-color:#e0ada0}.firework-photo:after{right:9px;top:-13px;bottom:auto;width:10px;height:29px;border:2px solid #a28c76;border-radius:5px;background:transparent;transform:rotate(7deg);box-shadow:inset 1px 0 #fffbef}
.scrap-quote{position:relative;z-index:1;margin-left:2px;margin-right:2px;padding-top:21px;padding-bottom:21px;background-color:#f1dbd0;background-image:linear-gradient(#fffbef55 1px,transparent 1px);background-size:100% 32px;background-position:0 15px}.scrap-page:last-child .scrap-quote+.hand-note{max-width:calc(100% - 58px);margin-top:19px;padding-left:9px;font-size:12px}.scrap-moon-stamp{position:absolute;right:22px;bottom:48px;width:49px;height:56px;transform:rotate(8deg);opacity:.85;pointer-events:none}
.scrap-footer{padding:11px 16px;background:#f5f2e8}.scrap-footer button{padding:6px 13px}.scrap-footer p{font-size:11px;color:#88735f}.scrap-empty{box-shadow:inset 0 0 0 6px #fffbef66,2px 4px #648b7026}.blank-flower{margin-bottom:8px;transform:rotate(-8deg)}
@media(hover:hover){.scrap-photo:hover{box-shadow:1px 1px #fffbef,4px 7px #77624c33}.scrap-tabs button:hover{transform:translateY(0)}.scrap-footer button:not(:disabled):hover,.scrap-view-back:hover{background:#cce3d3}}
@media(max-width:620px){.scrap-toolbar{padding:10px 14px}.scrap-toolbar strong{font-size:20px}.scrap-tabs{padding-top:10px;gap:5px}.scrap-tabs button{padding-left:12px;padding-right:12px}.scrap-body{padding:17px 14px 22px}.scrap-page{min-height:612px;padding:34px 24px 37px}.scrap-page h2{font-size:25px}.scrap-photo img{height:155px}.firework-photo img{height:auto;max-height:200px}.scrap-footer{padding:9px 11px}.scrap-footer button{padding:5px 9px}.scrap-spread:after{display:none}}
@media(max-width:360px){.scrap-body{padding-left:10px;padding-right:10px}.scrap-page{padding-left:17px;padding-right:17px;min-height:596px}.scrap-page h2{font-size:23px}.scrap-photo img{height:140px}.firework-photo img{height:auto}.scrap-photo-pair{gap:7px}.scrap-quote{font-size:16px;padding-left:6px;padding-right:6px}.scrap-doodle.star{width:26px;height:26px;right:12px}.scrap-sticker-pair{right:17px}.scrap-coast-stamp{left:20px;width:64px;height:64px}.scrap-moon-stamp{right:15px}.scrap-ticket{font-size:10px;max-width:calc(100% - 66px);padding-left:7px;padding-right:17px}.scrap-footer button{font-size:12px}.scrap-footer p{font-size:10px}}
@media(prefers-reduced-motion:reduce){.scrap-tabs button,.scrap-photo{transition:none}}

/* Staggered multicolour fireworks: soft coral, mint, lilac and gold. */
.sky-firework{color:#f2a7a1;top:29%;pointer-events:none}.sky-firework.two{color:#9cdecb;top:23%}.sky-firework.three{width:64px;height:64px;left:36%;top:39%;color:#c9b7ed}.sky-firework.four{width:48px;height:48px;left:76%;top:38%;color:#f5d68d}.sky-firework.two .firework-glints{fill:#c9b7ed}.sky-firework.three .firework-glints{fill:#9cdecb}.sky-firework.four .firework-glints{fill:#f2a7a1}
.sea-lit .sky-firework{animation:firework 3.2s steps(7,end) infinite,firework-palette 12.8s steps(1,end) infinite}.sea-lit .sky-firework.two{animation-delay:.8s,-3.2s}.sea-lit .sky-firework.three{animation-delay:1.6s,-6.4s}.sea-lit .sky-firework.four{animation-delay:2.4s,-9.6s}.hand-spark svg{color:#ffe4a5}.hand-spark svg path{fill:currentColor}.sea-lit .hand-spark svg{animation:spark-glow .6s steps(2,end) alternate infinite,spark-palette 4.8s steps(1,end) infinite}
@keyframes firework-palette{0%,100%{color:#f2a7a1}25%{color:#9cdecb}50%{color:#c9b7ed}75%{color:#f5d68d}}
@keyframes spark-palette{0%,100%{color:#ffe4a5}33%{color:#f4b9c7}66%{color:#b5e7d3}}
@media(prefers-reduced-motion:reduce){.sea-lit .sky-firework,.sea-lit .hand-spark svg{animation:none}.sea-lit .sky-firework{opacity:.7;scale:1}}

/* Production journal: archived records remain one click away. */
#scrapbook-dialog:has(.memory-archive-link) .scrap-body{max-height:calc(92dvh - 234px)}
.memory-real-spread .scrap-page{min-height:580px;padding-bottom:145px}.memory-real-spread .memory-photo-page{padding-bottom:62px}.memory-real-spread .scrap-page h2{max-width:calc(100% - 25px);font-size:23px}.memory-real-spread .memory-story{font-size:14px;line-height:1.95;margin-top:22px;white-space:normal;overflow-wrap:anywhere}.memory-full-story{position:relative;z-index:1;margin:16px 0;color:#735d4d;font:13px/1.9 'PingFang SC',sans-serif}.memory-full-story summary{min-height:44px;padding:10px 0;cursor:pointer}.memory-full-story p{font-size:13px}.memory-real-spread .scrap-ticket{max-width:100%;margin-top:22px}.memory-real-spread .scrap-photo-pair{margin-top:36px}.memory-real-spread .scrap-photo-pair img{height:180px}.memory-single-photo{width:94%;margin:34px auto 25px}.memory-single-photo .scrap-photo{padding-bottom:12px;transform:rotate(2deg)}.memory-single-photo img{height:auto;max-height:245px}.memory-real-spread .photo-name{position:static;display:block;overflow-wrap:anywhere;margin-top:4px;line-height:1.4}.memory-real-spread .scrap-photo{padding-bottom:9px}.memory-real-spread .scrap-quote{font-size:17px;overflow-wrap:anywhere}.memory-credits{position:relative;z-index:1;font:11px/1.7 'PingFang SC',sans-serif;color:#8a735f;margin:20px 5px 0}.memory-category-dot{display:inline-block;width:5px;height:5px;background:#c85f58;vertical-align:top;margin-left:4px}.memory-archive-link{padding:0 14px 8px;background:#f5f2e8;text-align:center}.memory-archive-link button{min-height:44px;background:transparent;border:0;color:#648b70;font-size:12px!important}.memory-birthday-banner{position:relative;z-index:1;margin:22px 0;padding:10px;background:#f1dbd0;border:1px dashed #c85f58;text-align:center;color:#9e4741;transform:rotate(-2deg)}.memory-seaside-invite{padding:12px 14px;margin:14px 0;background:#dfede2;border:1px solid #9fb6a0;border-left:4px solid #85b69b}.memory-seaside-invite h3{color:#52735c;margin:0 0 8px}.memory-archive-return{margin-bottom:16px;border-bottom:1px dashed #b5a58e;padding-bottom:10px}
#memory-seaside:modal{position:fixed;width:min(100vw,480px);height:100dvh;max-width:100vw;max-height:100dvh;margin:auto;padding:0;border:0;inset:0}#memory-seaside::backdrop{background:#20382eb3}
@media(max-width:620px){#scrapbook-dialog:has(.memory-archive-link) .scrap-body{max-height:calc(94dvh - 224px)}.memory-real-spread .scrap-page-active{display:block}.memory-real-spread .scrap-page{min-height:500px}.memory-real-spread .memory-photo-page{margin-top:14px;min-height:440px;padding-top:35px}.memory-real-spread .scrap-page h2{font-size:23px}.memory-real-spread .scrap-photo-pair img{height:165px}.memory-single-photo img{height:auto;max-height:240px}}
@media(max-width:360px){.memory-real-spread .scrap-photo-pair img{height:140px}.memory-real-spread .scrap-page h2{font-size:21px}.memory-real-spread .memory-story{font-size:13px}.memory-real-spread .scrap-quote{font-size:16px}}

/* Campus uses the same warm paper, coral and sage palette as the house. */
.campus-pair{display:flex;justify-content:center;align-items:flex-end;gap:8px;height:92px}.campus-figure{display:block;width:68px;height:88px;flex:0 0 68px;background-size:136px 88px;background-repeat:no-repeat;image-rendering:pixelated}.campus-invite{text-align:center;background:#f6efdc;border:2px solid #bda58c;padding:16px;margin-bottom:20px}.campus-invite h2{margin:6px}.campus-invite .sub{font-size:12px}
#memory-campus{padding:0;width:min(600px,calc(100vw - 24px));max-height:90dvh;overflow:auto;background:#f5eddb;border:3px solid #82634f;color:#604c3e;font-family:inherit;box-shadow:6px 6px #604c3e35}#memory-campus::backdrop{background:#3b332e99}#memory-campus button{font:inherit;color:inherit;min-height:44px;cursor:pointer;border:2px solid #b49b80;background:#fff7e6;padding:8px 12px}#memory-campus button:disabled{opacity:.5;cursor:default}#memory-campus button:focus-visible{outline:3px solid #b55350;outline-offset:2px}.campus-toolbar{display:flex;justify-content:space-between;padding:16px 20px;align-items:center;border-bottom:2px solid #ccb99e}.campus-toolbar h2{font-size:19px;margin:4px 0}.campus-toolbar small{color:#7a8d72}.campus-toolbar>button{font-size:22px}.campus-yard{height:260px;position:relative;overflow:hidden;background:linear-gradient(#dbe4d4 0 62%,#98ab81 62% 100%);image-rendering:pixelated}.campus-building{position:absolute;left:20%;right:20%;top:20px;height:145px;border:6px solid #aa8a6b;background:#dfc7a3;box-shadow:0 -8px #9e6557;display:flex;justify-content:center;gap:12px;align-items:center}.campus-building span{position:absolute;top:8px;font-size:12px;color:#785b48}.campus-building i{width:20px;height:36px;background:repeating-linear-gradient(0deg,transparent 0 16px,#f1dfbd 16px 20px),repeating-linear-gradient(90deg,#7f9f99 0 8px,#f1dfbd 8px 12px);border:3px solid #f1dfbd}.campus-tree{width:64px;height:76px;background:#849a71;box-shadow:8px -8px #849a71,-8px 12px #93a97d;position:absolute;top:42px}.campus-tree:after{content:'';position:absolute;left:25px;top:60px;width:10px;height:85px;background:#9b7e61}.campus-tree.left{left:5%}.campus-tree.right{right:5%}.campus-walk{position:absolute;left:0;right:0;bottom:0;height:75px;background:repeating-linear-gradient(0deg,#d7c8a5 0 22px,#c5b590 22px 25px)}.campus-actors{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);transition:transform .3s}.campus-actors .campus-pair{gap:18px;transition:gap .3s}.pose-shoulder .campus-actors .campus-pair,.pose-cheek .campus-actors .campus-pair{gap:0}.pose-rail .campus-actors{bottom:26px;transform:translateX(-50%);z-index:2}.pose-rail .campus-actors .campus-pair{gap:12px}.pose-rail .campus-figure{transform:none}.campus-hand{display:none;position:absolute;width:30px;height:7px;background:#edcda8;border:2px solid #c7a383;top:49px;left:53px;z-index:2;transform:rotate(-7deg)}.pose-shoulder .campus-hand,.pose-cheek .campus-hand{display:block}.pose-cheek .campus-hand{width:24px;top:38px;left:48px;transform:rotate(-20deg)}.campus-railing{display:none;position:absolute;bottom:36px;left:18%;right:18%;height:32px;border-top:7px solid #91a29a;border-bottom:5px solid #91a29a;background:repeating-linear-gradient(90deg,transparent 0 40px,#91a29a 40px 46px)}.pose-rail .campus-railing{display:block;bottom:10px;height:34px;left:20%;right:20%;border-top-width:6px;z-index:3}.campus-camera{position:absolute;right:8%;bottom:20px;font-size:32px;color:#755b49}.campus-controls{text-align:center;padding:16px 18px}.campus-controls p{font-size:14px}.campus-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0}.campus-choices [aria-pressed=true]{background:#dce5cd!important;border-color:#7f926e!important}.campus-shutter{background:#ba655a!important;color:#fff7e5!important;border-color:#9c514b!important}.campus-later{margin-left:8px}.campus-error{color:#ac4d43}.campus-keepsake{width:min(360px,calc(100vw - 28px))!important;padding:18px!important;text-align:center}.campus-keepsake-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#7c8d70}.campus-print{display:block;width:190px;max-width:100%;max-height:150px;object-fit:contain;margin:18px auto 12px;background:#fffaec;border:7px solid #fff8e7;box-shadow:3px 4px #8c735033;transform:rotate(-3deg)}.campus-keepsake h2{font-size:18px}.campus-keepsake p{font-size:13px}.campus-keepsake .actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}@media(prefers-reduced-motion:reduce){.campus-actors,.campus-actors .campus-pair{transition:none}}

/* Click-to-play birthday keepsakes. Videos never load before a player starts one. */
#memory-video-prompt{width:min(390px,calc(100vw - 28px));max-height:88dvh;overflow:auto;background:#f5eddb;color:#604c3e;border:3px solid #82634f;padding:0;box-shadow:5px 5px #604c3e35;font-family:inherit}#memory-video-prompt::backdrop{background:#3b332e99}.memory-video-head{padding:14px 16px;display:flex;align-items:center;gap:12px;justify-content:space-between;border-bottom:2px solid #ccb99e}.memory-video-head h2{font-size:17px;margin:5px 0}.memory-video-head small{color:#71866a;font-size:11px}.memory-video-body{padding:16px}.memory-video-body>p{font-size:12px}.memory-video-body .actions{display:flex;gap:8px;flex-wrap:wrap}#memory-video-prompt button,.memory-clip-card button{font:inherit;color:inherit;cursor:pointer;min-height:44px;border:2px solid #b49b80;background:#fff7e6;padding:8px 12px}#memory-video-prompt button:focus-visible,.memory-clip-card button:focus-visible{outline:3px solid #b55350;outline-offset:2px}.memory-clip-list{margin:18px 0}.memory-clip-list>small{display:block;color:#7b896a;margin-bottom:8px}.memory-clip-card{background:#faf4e5;border:1px solid #cdbda1;margin:8px 0;padding:6px}.memory-clip-card .memory-clip-launch{display:block;width:100%;padding:0;border:0!important;background:transparent!important;text-align:left}.memory-clip-card img{display:block;width:100%;max-height:155px;object-fit:contain;background:#e7dfca}.memory-clip-card span{display:block;padding:8px;font-size:12px}.memory-clip-card video{display:block;width:100%;max-height:300px;background:#292724;object-fit:contain}.memory-video-error{color:#a95145}

/* Three small playable moments in the house palette; media remains an optional keepsake. */
.light-invite{padding:14px 16px;margin:16px 0;background:#f4ecd9;border:2px solid #b8a081}.light-invite>small{color:#6a826c}.light-invite h3{margin:4px 0}.light-invite .sub{font-size:12px}.light-invite .action{min-height:44px}
#memory-light-scene{padding:0;width:min(620px,calc(100vw - 24px));max-height:90dvh;overflow:auto;background:#f5eddb;border:3px solid #82634f;color:#604c3e;font-family:inherit;box-shadow:6px 6px #604c3e35}#memory-light-scene::backdrop{background:#3b332e99}.light-toolbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:2px solid #ccb99e}.light-toolbar small{color:#71866a;font-size:12px}.light-toolbar h2{font-size:19px;margin:5px 0}#memory-light-scene button{font:inherit;color:inherit;min-height:44px;padding:8px 12px;border:2px solid #b49b80;background:#fff7e6;cursor:pointer}#memory-light-scene button:focus-visible{outline:3px solid #b55350;outline-offset:2px}.light-playground{height:260px;position:relative;overflow:hidden;background:#dfd6bd}.light-pair{display:flex;align-items:flex-end;gap:18px;transition:gap .25s}.light-figure{display:block;flex:0 0 68px;width:68px;height:88px;background-size:408px 88px;background-repeat:no-repeat;image-rendering:pixelated}.light-actors{position:absolute;left:50%;transform:translateX(-50%);bottom:38px;z-index:3}.light-controls{padding:16px 18px;text-align:center}.light-controls>p{font-size:14px}.light-options{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:15px 0}.light-secondary{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.light-secondary button{font-size:12px!important;background:transparent!important}.light-finish{background:#ba655a!important;color:#fff7e5!important;border-color:#9c514b!important}.light-error{color:#a95145}.light-support{display:none;position:absolute;left:57px;top:50px;width:32px;height:7px;background:#efd3ad;border:2px solid #c5a27e;transform:rotate(-10deg)}
.light-pottery .light-backdrop{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 51px,#c6af8c 51px 57px),linear-gradient(#d7c3a0 0 70%,#b79c77 70%)}.light-pottery .light-window{position:absolute;width:108px;height:85px;left:calc(50% - 54px);top:18px;background:linear-gradient(90deg,transparent 47%,#a58c6f 47% 53%,transparent 53%),linear-gradient(transparent 47%,#a58c6f 47% 53%,transparent 53%),#acc3af;border:7px solid #f3e4c9}.light-pottery-table{display:none;position:absolute;left:15%;right:15%;bottom:32px;height:35px;background:#b28b60;border:5px solid #8e6e4b;z-index:4;box-shadow:0 24px #a3845b}.light-pottery .light-pottery-table{display:block}.light-wheel{position:absolute;left:calc(50% - 40px);top:-12px;width:80px;height:14px;background:#a6a18b;border:3px solid #7d806d}.light-clay{position:absolute;left:calc(50% - 20px);top:-28px;width:40px;height:23px;background:#bd8060;border:4px solid #996a51;border-radius:14px 14px 0 0}.light-step-1.light-choice-cup .light-clay,.light-step-2.light-choice-cup .light-clay{top:-42px;height:36px;width:30px;left:calc(50% - 15px);border-radius:0}.light-choice-cup .light-clay:after{content:'';position:absolute;left:22px;top:4px;width:14px;height:16px;border:5px solid #a67354}.light-step-1.light-choice-bowl .light-clay,.light-step-2.light-choice-bowl .light-clay{top:-30px;height:26px;width:50px;left:calc(50% - 25px);border-top:6px solid #92644a;border-radius:0 0 15px 15px}.light-pottery.light-step-1 .light-wheel{animation:light-wheel .8s steps(2) infinite}.light-pottery.light-step-2 .light-clay{box-shadow:0 -3px #e2ae86}
.light-boat .light-backdrop{position:absolute;inset:0;background:linear-gradient(#cddfd4 0 62%,#91afa5 62% 100%)}.light-boat .light-window{position:absolute;left:0;right:0;top:52px;height:50px;background:linear-gradient(135deg,transparent 0 30%,#afc2a8 30% 45%,transparent 45% 60%,#a4b99d 60% 75%,transparent 75%)}.light-water{display:none;position:absolute;left:-10%;right:-10%;bottom:12px;height:90px;background:repeating-linear-gradient(0deg,transparent 0 22px,#d1dfc9 22px 26px);animation:light-water 3s steps(8) infinite}.light-boat .light-water{display:block}.light-boat-hull{display:none;position:absolute;width:230px;height:44px;background:#ad7957;border-bottom:10px solid #835c47;left:calc(50% - 115px);bottom:35px;clip-path:polygon(0 0,100% 0,87% 100%,12% 100%);z-index:4}.light-boat .light-boat-hull{display:block}.light-boat .light-actors{bottom:69px}.light-boat-rail{display:none;position:absolute;left:calc(50% - 112px);width:224px;bottom:80px;height:31px;border-top:6px solid #e2d7bc;border-bottom:4px solid #e2d7bc;background:repeating-linear-gradient(90deg,transparent 0 48px,#e2d7bc 48px 54px);z-index:4}.light-boat .light-boat-rail{display:block}.light-boat.light-step-1 .light-actors{animation:light-sway 1.8s steps(4) infinite}.light-boat.light-step-2 .light-pair{gap:4px}.light-boat.light-step-2 .light-support{display:block;z-index:5}
.light-night .light-playground{background:#5b655c}.light-night .light-backdrop{position:absolute;inset:0;background:linear-gradient(#545e59 0 70%,#858c73 70% 84%,#b1a287 84%)}.light-night .light-window{position:absolute;left:8%;right:8%;bottom:68px;height:36px;background:repeating-linear-gradient(90deg,#3d5149 0 45px,transparent 45px 65px)}.light-lantern{display:none;position:absolute;top:30px;width:8px;height:165px;background:#6f604b}.light-lantern:after{content:'';position:absolute;top:0;left:-14px;width:36px;height:27px;background:#ebcf8f;border:5px solid #8b7355;box-shadow:0 0 24px #e3cb8d60}.light-night .light-lantern{display:block}.light-lantern.one{left:15%}.light-lantern.two{right:15%}.light-bench{display:none;position:absolute;left:calc(50% - 105px);width:210px;bottom:40px;height:39px;border-top:9px solid #a58b65;border-bottom:9px solid #88704f;background:repeating-linear-gradient(90deg,transparent 0 40px,#88704f 40px 48px);z-index:2}.light-night.light-step-2 .light-bench{display:block}.light-night.light-step-2 .light-actors{bottom:51px}.light-night.light-step-2 .light-pair{gap:4px}.light-night.light-step-1.light-choice-chase .light-figure.jimi{animation:light-steps 1s steps(4) 3}.light-night.light-step-1.light-choice-walk .light-actors{animation:light-sway 2s steps(4) infinite}.light-star{display:none;width:4px;height:4px;background:#eeddb1;position:absolute;top:22px;left:35%}.light-night .light-star{display:block}.light-star.two{top:43px;left:65%;background:#e6cabc}@keyframes light-sway{50%{transform:translateX(-50%) translateY(3px)}}@keyframes light-water{to{transform:translateX(12px)}}@keyframes light-wheel{50%{border-color:#bdb59c}}@keyframes light-steps{50%{transform:translateX(8px) translateY(-4px)}}@media(prefers-reduced-motion:reduce){.light-event *{animation:none!important;transition:none!important}}

/* Separate shoots: camera framing and studio props belong to the playable scene. */
.light-studio-camera,.light-studio-softbox,.light-frame{display:none}.light-photoShoot .light-backdrop,.light-videoShoot .light-backdrop{position:absolute;inset:0;background:linear-gradient(#deded1 0 74%,#b9ad93 74%);border-left:20px solid #c9cdbd;border-right:20px solid #c9cdbd}/* Warm studio: a quiet apricot sweep, restrained edge folds and a separate floor. */
.light-photoShoot.light-choice-warm .light-backdrop{border-color:#d9c9b4;background:linear-gradient(0deg,#c9b597 0 3px,#ddcbb0 3px 22%,#ead8bf 22% 24%,transparent 24%),linear-gradient(90deg,#ddc6ae 0 5%,#e6d0b8 5% 8%,#f0dfc8 8% 12%,#ead5bd 12% 15%,#f3e3ce 15% 85%,#ead5bd 85% 88%,#f0dfc8 88% 92%,#e6d0b8 92% 95%,#ddc6ae 95%)}
.light-photoShoot.light-choice-warm .light-backdrop:before{content:'';position:absolute;left:6%;right:6%;top:17px;height:6px;background:#bda98c;box-shadow:0 3px #fff0d9,0 -3px #e5d6bf}
.light-photoShoot.light-choice-warm .light-backdrop:after{content:'';position:absolute;left:20%;right:20%;bottom:22%;height:6px;background:#d4bea147;box-shadow:0 6px #dfc9ab40}
.light-photoShoot.light-choice-warm .light-frame{border-color:#cfb99b}
.light-photoShoot.light-choice-warm.light-step-2 .light-frame{border-color:#fff6e7}.light-photoShoot.light-choice-cool .light-backdrop{background:repeating-linear-gradient(90deg,#d4ded7 0 68px,#c2cec7 68px 72px)}.light-photoShoot .light-studio-camera,.light-videoShoot .light-studio-camera{display:block;position:absolute;left:calc(50% - 22px);bottom:16px;width:44px;height:26px;background:#5c5b57;border:4px solid #777465;z-index:5}.light-studio-camera:before{content:'';position:absolute;top:22px;left:17px;width:4px;height:23px;background:#6b6659;box-shadow:-10px 18px #6b6659,10px 18px #6b6659}.light-studio-camera i{display:block;width:16px;height:16px;border:4px solid #b2b9a9;background:#596e68;margin:1px auto}.light-photoShoot .light-studio-softbox,.light-videoShoot .light-studio-softbox{display:block;position:absolute;top:45px;width:48px;height:62px;background:#f2ead3;border:6px solid #8a826c;box-shadow:0 0 20px #ece4c344}.light-studio-softbox:after{content:'';position:absolute;left:16px;top:56px;width:5px;height:92px;background:#928774}.light-studio-softbox.one{left:8%;transform:rotate(9deg)}.light-studio-softbox.two{right:8%;transform:rotate(-9deg)}.light-photoShoot .light-frame,.light-videoShoot .light-frame{display:block;position:absolute;left:26%;right:26%;top:67px;bottom:66px;border:2px dashed #b6b6a0;z-index:4;pointer-events:none}.light-photoShoot .light-actors,.light-videoShoot .light-actors{bottom:54px}.light-photoShoot.light-step-2 .light-pair,.light-videoShoot.light-step-2 .light-pair{gap:5px}.light-videoShoot.light-step-2 .light-figure.han{transform:rotate(-4deg)}.light-photoShoot.light-step-2 .light-frame{border-color:#f5ebd0}.light-videoShoot.light-step-1 .light-figure.jimi{transform:rotate(3deg)}
.light-photoShoot.light-pose-lean .light-figure.han{transform:rotate(-4deg)}.light-photoShoot.light-pose-lean .light-figure.jimi{transform:rotate(3deg)}

/* Seaside filming stays an in-game coastal scene, with its own white-shirt outfits. */
.light-seaShoot .light-backdrop{position:absolute;inset:0;background:linear-gradient(#dce8dd 0 44%,#9ebdb5 44% 64%,#c9d9c8 64% 67%,#e5d7b9 67%)}
.light-seaShoot .light-water{display:block;bottom:85px;height:56px;background:repeating-linear-gradient(0deg,transparent 0 20px,#e8edda 20px 23px);opacity:.65}
.light-seaShoot .light-actors{bottom:47px}
.light-seaShoot .light-frame{display:block;position:absolute;left:25%;right:25%;top:70px;bottom:42px;border:2px dashed #faf2d5;z-index:4;pointer-events:none}
.light-seaShoot .light-studio-camera{display:block;position:absolute;left:calc(50% - 18px);bottom:12px;width:36px;height:23px;background:#6b7166;border:4px solid #899081;z-index:5}
.light-seaShoot .light-studio-camera i{width:14px;height:14px;border-width:3px;margin:0 auto}
.light-seaShoot.light-step-1 .light-actors{animation:light-sway 2.6s steps(4) infinite}
.light-seaShoot.light-step-2 .light-pair{gap:7px}
@media(prefers-reduced-motion:reduce){.light-seaShoot .light-actors{animation:none}}

.sea-residents .light-pair{gap:3px;height:92px}.sea-residents .light-figure.han{transform:translateY(4px)}

/* A small optional rooftop concert in the house's muted palette. */
.light-roof-rail,.light-roof-balloons,.light-roof-mic,.light-roof-notes{display:none}
.light-rooftop .light-backdrop{position:absolute;inset:0;background:linear-gradient(#4b5654 0 59%,#68756b 59% 61%,#ae9e83 61%);border-bottom:7px solid #8b7c66}
.light-rooftop .light-window{position:absolute;left:6%;right:6%;top:34px;height:94px;background:linear-gradient(90deg,transparent 0 6%,#59655d 6% 17%,transparent 17% 24%,#59655d 24% 42%,transparent 42% 53%,#59655d 53% 63%,transparent 63% 74%,#59655d 74% 92%,transparent 92%);border-bottom:3px solid #7c8574}
.light-rooftop .light-roof-rail{display:block;position:absolute;left:0;right:0;top:119px;height:46px;border-top:5px solid #8e9885;border-bottom:5px solid #8e9885;background:repeating-linear-gradient(90deg,transparent 0 57px,#8e9885 57px 62px);z-index:1}
.light-rooftop .light-roof-balloons{display:flex;position:absolute;left:10%;right:10%;top:89px;justify-content:space-between;z-index:2}
.light-roof-balloons i{width:19px;height:23px;background:#afbd91;box-shadow:4px 4px #839475;position:relative;clip-path:polygon(20% 0,80% 0,100% 22%,100% 70%,60% 100%,40% 100%,0 70%,0 22%)}
.light-roof-balloons i:nth-child(2){background:#eed7a3;transform:translateY(-8px)}.light-roof-balloons i:nth-child(3){background:#d9a39a}
.light-rooftop .light-actors{bottom:42px}.light-rooftop .light-pair{gap:25px}
.light-rooftop .light-roof-mic{display:block;position:absolute;left:calc(50% - 98px);bottom:41px;width:4px;height:45px;background:#686a5f;z-index:4;box-shadow:-7px 43px #686a5f,7px 43px #686a5f}
.light-roof-mic:before{content:'';position:absolute;left:-3px;top:-9px;width:10px;height:14px;background:#63695f;border:2px solid #b5b9a4;transform:rotate(-15deg)}
.light-rooftop .light-roof-notes{display:block;position:absolute;left:calc(50% - 57px);top:64px;color:#f1d4a2;font-size:21px;letter-spacing:15px;opacity:0}
.light-rooftop.light-step-1 .light-roof-notes{opacity:1;animation:roof-notes 1.8s steps(4) infinite}.light-rooftop.light-step-1 .light-figure.jimi{animation:roof-perform 1s steps(2) infinite}
.light-rooftop.light-step-2 .light-roof-notes{opacity:1;color:#e4b3a3;transform:translateX(64px)}.light-rooftop.light-step-2 .light-figure.han{animation:roof-perform .7s steps(2) 2}
@keyframes roof-notes{50%{transform:translateY(-5px)}}@keyframes roof-perform{50%{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.light-rooftop *{animation:none!important}}

/* Practice interludes share a quiet rehearsal room, each retaining its own outfit. */
.light-practicePhoto .light-backdrop,.light-practicePlay .light-backdrop,.light-practiceLift .light-backdrop,.light-practiceLaugh .light-backdrop,.light-practiceBlue .light-backdrop{position:absolute;inset:0;background:linear-gradient(#d7ded1 0 73%,#c8b69b 73%);border-bottom:6px solid #a48e70}
.light-practicePhoto .light-window,.light-practicePlay .light-window,.light-practiceLift .light-window,.light-practiceLaugh .light-window,.light-practiceBlue .light-window{position:absolute;left:9%;right:9%;top:22px;height:139px;border:5px solid #abaf9b;background:linear-gradient(115deg,#edf0df 0 22%,#dce5d6 22% 24%,#e6ebdc 24% 63%,#d4dfcf 63% 65%,#edf0df 65%);box-shadow:0 5px #b9bda8}
.light-practicePhoto .light-actors,.light-practicePlay .light-actors,.light-practiceLift .light-actors,.light-practiceLaugh .light-actors,.light-practiceBlue .light-actors{bottom:38px}.light-practicePhoto.light-step-2 .light-pair{gap:0}
.light-practicePhoto.light-step-2 .light-support{display:block;top:45px;left:50px;width:37px;transform:none;background:#f1d5b0}

.light-practicePlay .light-frame{display:block;position:absolute;left:calc(50% - 20px);bottom:56px;width:40px;height:25px;background:#fff2d8;border:2px solid #b8b99c;z-index:4;transform:rotate(-7deg)}
.light-practicePlay .light-frame:after{content:'';position:absolute;left:6px;right:6px;top:6px;height:3px;background:#9cae8b;box-shadow:0 6px #c6cbb3}
.light-practicePlay.light-step-1 .light-figure.jimi{animation:practice-play .9s steps(3) 3}.light-practicePlay.light-step-1 .light-figure.han{animation:practice-play .9s steps(3) .25s 3}
.light-practicePlay.light-step-2 .light-frame{display:none}
.light-practiceLift .light-pair{gap:4px}.light-practiceLift.light-step-1 .light-support{display:block;left:49px;top:67px;width:40px;height:6px;transform:rotate(19deg);transform-origin:left center;z-index:4}
.light-practiceLift.light-step-2 .light-support{display:none}.light-practiceLift.light-step-2 .light-figure.han{animation:practice-rise .35s steps(3) 1}
.light-practiceLaugh.light-step-2 .light-figure{animation:practice-laugh .8s steps(2) 3}.light-practiceLaugh.light-step-2 .light-figure.han{animation-delay:.15s}
.light-practiceBlue.light-step-1 .light-pair{gap:3px}.light-practiceBlue.light-step-1 .light-support{display:block;left:50px;top:58px;width:27px;height:6px;transform:none}
@keyframes practice-play{50%{transform:translateX(3px) translateY(-2px)}}@keyframes practice-laugh{50%{transform:translateY(-2px)}}@keyframes practice-rise{from{transform:translateY(8px)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.light-practicePlay *,.light-practiceLift *,.light-practiceLaugh *,.light-practiceBlue *{animation:none!important}}

.light-reward-preview,.memory-reward{color:#617b61;font-size:13px;line-height:1.8}.memory-reward{background:#e8eddb;border:1px solid #b7c4a4;padding:9px 12px;text-align:left}

.memory-real-spread .memory-video-only{min-height:0;padding-bottom:36px}.memory-video-only .memory-clip-list{margin-top:18px}.memory-video-only .memory-credits:empty{display:none}

/* Fit common memories in the viewport; keep a flexible, readable space for dialogue. */
#scrapbook-dialog[open]{display:flex;flex-direction:column;max-height:94dvh;width:min(900px,calc(100vw - 20px))}
#scrapbook-dialog .scrap-toolbar,#scrapbook-dialog .scrap-tabs,#scrapbook-dialog .scrap-footer,#scrapbook-dialog .memory-archive-link{flex-shrink:0}
#scrapbook-dialog .scrap-toolbar{padding:8px 14px}
#scrapbook-dialog .scrap-toolbar strong{font-size:20px}
#scrapbook-dialog .scrap-toolbar small{font-size:10px;margin-bottom:1px}
#scrapbook-dialog .scrap-tabs{padding:6px 12px 0;gap:5px}
#scrapbook-dialog .scrap-tabs button{padding:4px 12px;transform:none}
#scrapbook-dialog .scrap-body{flex:1 1 auto;min-height:0;max-height:none;padding:12px;overflow-y:auto}
#scrapbook-dialog .scrap-footer{padding:5px 10px}
#scrapbook-dialog .memory-archive-link{padding:0 10px 3px}
.memory-real-spread .scrap-page{min-height:clamp(300px,48dvh,460px);padding:22px 20px 96px}
.memory-real-spread .scrap-page h2{font-size:21px;line-height:1.4;margin:12px 0 10px}
.memory-real-spread .memory-story{min-height:clamp(80px,12dvh,128px);margin-top:12px;font-size:14px;line-height:1.85}
.memory-real-spread .scrap-ticket{margin-top:12px;padding:5px 8px}
.memory-real-spread .memory-photo-page{padding:22px 18px 30px}
.memory-real-spread .memory-single-photo{margin:18px auto 12px;width:96%}
.memory-real-spread .memory-single-photo img{max-height:clamp(120px,24dvh,220px)}
.memory-real-spread .scrap-photo-pair{margin:20px 0 12px;gap:9px}
.memory-real-spread .scrap-photo-pair img{height:clamp(110px,20dvh,180px)}
.memory-real-spread .scrap-photo:nth-child(2){margin-top:10px}
.memory-real-spread .scrap-quote{font-size:15px;line-height:1.7;margin:12px 0;padding:10px}
.memory-real-spread .memory-credits{margin:8px 3px 0;font-size:11px}
.memory-real-spread .memory-credits:empty{display:none}
.memory-real-spread .memory-clip-list{margin:12px 0 0}
.memory-clip-gallery{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:0 2px 6px;scrollbar-width:thin}
.memory-clip-gallery>.memory-clip-card{flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:start}
.memory-clip-gallery img{max-height:clamp(100px,20dvh,175px)}
.memory-clip-gallery video{max-height:clamp(150px,30dvh,260px)}
.memory-clip-gallery .memory-clip-launch span{padding:6px;font-size:12px;line-height:1.5}
.memory-photo-page:has(.memory-single-photo) .memory-clip-gallery img{max-height:clamp(90px,14dvh,130px)}
.memory-text-only{grid-template-columns:minmax(0,1fr)}.memory-text-only:after{display:none}
.scrap-empty{min-height:220px;padding:28px 20px}
#scrapbook-dialog .scrap-view-image{max-height:calc(94dvh - 270px)}
@media(max-width:620px){
 #scrapbook-dialog .scrap-body{padding:8px}
 #scrapbook-dialog .scrap-toolbar{padding:6px 11px}
 #scrapbook-dialog .scrap-toolbar strong{font-size:18px}
 #scrapbook-dialog .scrap-tabs{padding-left:8px;padding-right:8px;gap:4px}
 #scrapbook-dialog .scrap-tabs button{font-size:13px;padding:4px 10px}
 .memory-real-spread .scrap-page{min-height:0;padding:19px 16px 14px}
 .memory-real-spread .scrap-page h2{font-size:20px;margin:10px 0 8px}
 .memory-real-spread .memory-story{min-height:64px;margin:8px 0;font-size:14px;line-height:1.8;padding:8px 11px}
 .memory-real-spread .scrap-ticket{max-width:calc(100% - 80px);margin:8px 0 10px;font-size:11px}
 .memory-real-spread .scrap-coast-stamp{display:none}
 .memory-real-spread .scrap-sticker-pair{right:14px;bottom:14px;padding:2px;transform:none}
 .memory-real-spread .scrap-sticker{width:27px;height:35px;background-size:162px 35px}
 .memory-real-spread .scrap-sticker.jimi{background-position:-27px 0}
 .memory-real-spread .scrap-page .page-no,.memory-real-spread .scrap-page-rule{display:none}
 .memory-real-spread .scrap-doodle.star{width:22px;height:22px;top:20px;right:15px}
 .memory-real-spread .memory-photo-page{margin:0;padding:2px 16px 16px}
 .memory-real-spread .memory-photo-page:before,.memory-real-spread .memory-photo-page>.scrap-label,.memory-real-spread .memory-photo-page>.scrap-doodle,.memory-real-spread .memory-photo-page>h2{display:none}
 .memory-real-spread .memory-single-photo{margin:8px auto 9px}
 .memory-real-spread .memory-single-photo img{height:auto;max-height:clamp(115px,23dvh,190px)}
 .memory-real-spread .scrap-photo-pair{margin:10px 0 9px}
 .memory-real-spread .scrap-photo-pair img{height:clamp(105px,19dvh,165px)}
 .memory-real-spread .memory-photo-page .scrap-photo{transform:none;padding:5px 5px 7px}
 .memory-real-spread .memory-photo-page .scrap-photo:before{top:-5px;height:12px}
 .memory-real-spread .scrap-photo:nth-child(2){margin-top:0}
 .memory-real-spread .photo-name{font-size:11px;line-height:1.4;letter-spacing:0}
 .memory-real-spread .memory-clip-list{margin-top:6px}
 .memory-clip-list>small{margin-bottom:5px}
 .memory-clip-gallery img{max-height:clamp(110px,21dvh,175px)}
 .memory-real-spread .scrap-quote{margin:8px 0;padding:8px 10px;font-size:14px}
 .memory-real-spread .memory-full-story{margin:6px 0 10px}
 .memory-real-spread .memory-full-story[open]{padding-bottom:42px}
}

/* Scenic layers: quiet movement behind the actors, never over the controls. */
.scene-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.light-playground .light-actors{z-index:3}
.roof-city{position:absolute;inset:32px 0 auto;height:82px;display:flex;align-items:flex-end;justify-content:space-around;opacity:.8}
.roof-city>i{width:9%;height:62px;background:#354e4b;position:relative;border-top:4px solid #63756b}
.roof-city>i:nth-child(3n){height:40px}.roof-city>i:nth-child(3n + 1){height:77px}
.roof-city b{position:absolute;left:20%;top:14px;width:4px;height:6px;background:#d5bb7c;box-shadow:12px 0 #a4ba9b,0 18px #9ba58c,12px 18px #d5bb7c;opacity:.7}
.roof-city b+b{display:none}
.roof-festoon{position:absolute;left:-2%;right:-2%;top:11px;height:36px;border-bottom:2px solid #9c9276;border-radius:0 0 50% 50%;display:flex;justify-content:space-around;align-items:flex-end;transform:rotate(-3deg)}
.roof-festoon i{display:block;width:7px;height:9px;background:#f2d99c;box-shadow:0 0 12px 4px #ebcf8d44;animation:roof-lamp-warmth 7s ease-in-out infinite;animation-delay:calc(var(--n)*-.6s)}
.roof-festoon i:nth-child(3n){background:#b9d8c4}.roof-festoon i:nth-child(3n + 1){background:#eab8af}
.roof-beams{position:absolute;inset:38px 0 0;opacity:.55;transition:opacity 1.5s}
.roof-beams i{position:absolute;left:12%;top:0;width:43%;height:220px;transform-origin:50% 0;clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);background:linear-gradient(#e7c99060,#e7c99008);animation:roof-light-sweep 11s ease-in-out infinite alternate}
.roof-beams i:nth-child(2){left:42%;background:linear-gradient(#aacfc35c,#aacfc308);animation-delay:-6s;animation-duration:14s}
.roof-beams i:nth-child(3){left:28%;background:linear-gradient(#d9aab14d,#d9aab108);animation-delay:-9s;animation-duration:17s}
.light-rooftop.light-step-1 .roof-beams{opacity:1}.light-rooftop.light-step-2 .roof-beams{opacity:.38}
.roof-floor-glow{position:absolute;left:16%;right:16%;bottom:12px;height:72px;border-radius:50%;background:radial-gradient(ellipse,#efd39b45,transparent 70%);animation:roof-floor-color 13s ease-in-out infinite alternate}
.roof-speaker{position:absolute;bottom:30px;width:28px;height:43px;border:4px solid #515952;background:repeating-radial-gradient(circle at 50% 65%,#424e49 0 3px,#627068 3px 5px);box-shadow:4px 4px #584f4133}.roof-speaker.left{left:5%}.roof-speaker.right{right:5%}
.roof-cable{position:absolute;bottom:22px;left:12%;right:12%;height:15px;border-bottom:2px solid #6c6656;border-radius:50%}
.light-rooftop .light-roof-balloons i{animation:roof-balloon-drift 5s ease-in-out infinite alternate;transform-origin:50% 100%}.light-rooftop .light-roof-balloons i:nth-child(2){animation-delay:-2s}.light-rooftop .light-roof-balloons i:nth-child(3){animation-delay:-4s}
.light-rooftop .light-roof-notes{z-index:4}
@keyframes roof-light-sweep{from{transform:rotate(-22deg)}to{transform:rotate(24deg)}}
@keyframes roof-lamp-warmth{50%{opacity:.65;box-shadow:0 0 8px 2px #d9bba133}}
@keyframes roof-floor-color{to{background-color:#a7bfc522;transform:scaleX(.85)}}
@keyframes roof-balloon-drift{from{transform:translateY(-2px) rotate(-5deg)}to{transform:translateY(3px) rotate(6deg)}}
.night-shop{position:absolute;top:74px;left:27%;width:46%;height:72px;border:6px solid #59685e;border-top:9px solid #dadbc9;background:#3f514b;display:flex;justify-content:space-around;padding:12px 9px}
.night-shop i{width:19%;height:28px;background:#c3b186;box-shadow:0 0 12px #dfc58a22;border:3px solid #758174}
.night-snow-bank{position:absolute;bottom:58px;left:0;right:0;height:12px;background:#dce1d0;clip-path:polygon(0 30%,12% 0,29% 40%,48% 15%,64% 50%,83% 10%,100% 35%,100% 100%,0 100%);opacity:.8}
.night-snowflake{position:absolute;top:-12px;width:3px;height:3px;background:#f1f0dc;opacity:.65;animation:night-snow-drift 10s linear infinite;animation-delay:calc(var(--n)*-.77s)}
.night-snowflake:nth-child(3n){width:2px;height:2px;animation-duration:14s;opacity:.45}
.light-night .light-lantern{z-index:2}.light-night .light-lantern:after{animation:night-lantern-glow 8s ease-in-out infinite alternate}
@keyframes night-snow-drift{to{transform:translate(26px,290px)}}
@keyframes night-lantern-glow{to{background:#e7c393;box-shadow:0 0 38px 8px #e3cb8d30}}
.coast-cloud{position:absolute;width:74px;height:14px;background:#eef0df99;box-shadow:12px -8px #eef0df99,32px -4px #eef0df99;top:24px;animation:coast-cloud-drift 28s linear infinite alternate}.coast-cloud.one{left:10%}.coast-cloud.two{left:65%;top:46px;opacity:.6;animation-delay:-12s}
.coast-sail{position:absolute;left:78%;top:84px;width:28px;height:9px;background:#809b91;clip-path:polygon(0 0,100% 0,75% 100%,20% 100%);animation:coast-cloud-drift 24s ease-in-out infinite alternate}
.coast-bird{position:absolute;left:35%;top:43px;width:14px;height:5px;border-top:2px solid #7c9488;transform:rotate(-12deg);animation:coast-bird-glide 18s ease-in-out infinite alternate}.coast-bird:after{content:'';position:absolute;left:11px;top:-2px;width:12px;border-top:2px solid #7c9488;transform:rotate(24deg)}
.coast-glints{position:absolute;inset:145px 0 0}.coast-glints i{position:absolute;top:calc(var(--n)*9px);height:2px;width:18px;background:#edf0d6;opacity:.35;animation:coast-shimmer 5s ease-in-out infinite;animation-delay:calc(var(--n)*-.8s)}
@keyframes coast-cloud-drift{to{transform:translateX(35px)}}@keyframes coast-bird-glide{to{transform:translate(75px,8px) rotate(7deg)}}@keyframes coast-shimmer{50%{opacity:.75;transform:translateX(12px) scaleX(1.3)}}
.pottery-shelf{position:absolute;left:8%;right:8%;top:33px;height:48px;border-bottom:7px solid #a98b67;display:flex;justify-content:space-around;align-items:flex-end}
.pottery-shelf i{width:23px;height:27px;background:#c5ab89;border:3px solid #a48a6a;border-top:4px solid #8c785e;border-radius:5px 5px 9px 9px}.pottery-shelf i:nth-child(2n){height:36px;width:19px;background:#adb59a}.pottery-shelf i:nth-child(3n){height:19px;width:33px}
.pottery-sunbeam{position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,#fff1c41a 41%,#fff1c438 55%,transparent 56%);animation:pottery-daylight 16s ease-in-out infinite alternate}
.pottery-tools{position:absolute;right:8%;bottom:35px;width:24px;height:24px;background:#b59876;z-index:2}.pottery-tools i{position:absolute;left:5px;bottom:16px;height:25px;width:3px;background:#806e53;transform:rotate(-15deg)}.pottery-tools i:nth-child(2){left:12px;height:30px;transform:rotate(8deg)}.pottery-tools i:nth-child(3){left:18px;transform:rotate(22deg)}
@keyframes pottery-daylight{to{opacity:.45;transform:translateX(12px)}}
@media(prefers-reduced-motion:reduce){.scene-atmosphere *,.light-roof-balloons i,.light-lantern:after{animation:none!important;transition:none!important}.night-snowflake{top:calc(var(--n)*13px)}}
.practice-mirror-lines{position:absolute;left:8%;right:8%;top:26px;height:130px;border:3px solid #a7b5aa;background:repeating-linear-gradient(90deg,transparent 0 31%,#a7b5aa80 31% 32%,transparent 32% 33%)}
.practice-window-light{position:absolute;inset:0;background:linear-gradient(120deg,transparent 23%,#fff6d325 24%,#fff6d310 47%,transparent 48%);animation:pottery-daylight 19s ease-in-out infinite alternate}
.practice-bag{position:absolute;left:8%;bottom:27px;width:37px;height:24px;background:#7d8d7c;border:3px solid #677a6d;border-radius:5px}.practice-bag:before{content:'';position:absolute;width:16px;height:8px;border:3px solid #677a6d;left:6px;top:-10px}
.practice-bottles{position:absolute;right:10%;bottom:28px;display:flex;align-items:flex-end;gap:8px}.practice-bottles i{width:9px;height:23px;background:#c0d9ce;border-top:5px solid #678f84;box-shadow:inset 2px 0 #e7efdf}.practice-bottles i+i{height:19px;border-color:#b98076;background:#e4c1ae}
.practice-floor-marks{position:absolute;left:30%;right:30%;bottom:32px;height:12px;border-left:3px solid #dad6be;border-right:3px solid #dad6be;opacity:.7}
.studio-overhead{position:absolute;left:15%;right:15%;top:13px;height:4px;background:#a9aa95}.studio-overhead:before,.studio-overhead:after{content:'';position:absolute;top:0;width:27px;height:12px;background:#f3edda;border:3px solid #a9aa95}.studio-overhead:before{left:8%}.studio-overhead:after{right:8%}
.studio-soft-pool{position:absolute;inset:20px 0 0;background:radial-gradient(ellipse at 50% 35%,#fff3d24a,transparent 65%);animation:pottery-daylight 15s ease-in-out infinite alternate}
.studio-floor-tape{position:absolute;left:35%;right:35%;bottom:29px;height:14px;border-left:3px solid #d7b19a;border-right:3px solid #d7b19a;border-bottom:2px solid #d7b19a;opacity:.7}.studio-cable{position:absolute;left:5%;bottom:18px;width:70px;height:24px;border-bottom:2px solid #a49177;border-radius:50%}
.campus-yard:before{content:'';position:absolute;top:20px;left:6%;width:65px;height:10px;background:#f4f1de88;box-shadow:12px -6px #f4f1de88;animation:coast-cloud-drift 30s ease-in-out infinite alternate;pointer-events:none}
.campus-tree{transform-origin:50% 100%;animation:campus-breeze 9s ease-in-out infinite alternate}.campus-tree.right{animation-delay:-5s}
.campus-walk:after{content:'';position:absolute;inset:8px 0;background:linear-gradient(115deg,transparent 25%,#f4ebd520 26% 40%,transparent 41%);pointer-events:none}
.sea-wave{animation:sea-tide 7s ease-in-out infinite alternate}.sea-wave.second{animation-delay:-3s}.sea-stars{animation:sea-star-warmth 10s ease-in-out infinite alternate}
@keyframes campus-breeze{to{transform:skewX(1.5deg)}}@keyframes sea-tide{to{transform:translate(10px,3px);opacity:.45}}@keyframes sea-star-warmth{to{opacity:.65}}
@media(prefers-reduced-motion:reduce){.scene-atmosphere *,.campus-yard:before,.campus-tree,.sea-wave,.sea-stars{animation:none!important}}

/* The preview is replaced by the full story when expanded. */
.memory-full-story summary{list-style:none}
.memory-full-story summary::-webkit-details-marker{display:none}
.memory-full-story .memory-story-preview{display:block;margin:0 0 14px}
.memory-full-story .memory-collapse-label{display:none}
.memory-full-story[open] .memory-story-preview,.memory-full-story[open] .memory-expand-label{display:none}
.memory-full-story[open] .memory-collapse-label{display:inline}
.memory-real-spread .memory-full-story p.memory-story{font-size:14px;margin-top:4px}

/* School gate: layered school facade, courtyard and planted entrance. */
#memory-campus .campus-yard{background:linear-gradient(#d9e9e2 0 54%,#b5c7a0 54% 72%,#e0cbaa 72%);height:260px}
#memory-campus .campus-building{left:19%;right:19%;top:25px;height:148px;border:4px solid #b39a79;background:repeating-linear-gradient(0deg,#f0dfbf 0 45px,#d2b796 45px 49px);box-shadow:0 -7px #b56e61,0 -11px #d3977d,5px 5px #8b9b7b33;display:block}
#memory-campus .campus-building>span{top:9px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fff1d7;border:2px solid #c2a07c;padding:2px 10px;font-size:12px;letter-spacing:2px}
.campus-windows{position:absolute;inset:44px 12px 34px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:9px 13px}
#memory-campus .campus-windows i{width:auto;height:auto;min-width:0;border:3px solid #fff0d1;background:linear-gradient(130deg,transparent 40%,#dceee3 41% 49%,transparent 50%),linear-gradient(90deg,#93b9ae 45%,#f3e3c3 45% 55%,#93b9ae 55%);box-shadow:0 3px #b99c79}
.campus-school-door{position:absolute;bottom:0;left:42%;width:16%;height:29px;border:3px solid #ab8463;border-bottom:0;background:linear-gradient(90deg,#749b90 47%,#dfc9a3 47% 54%,#749b90 54%)}
.campus-school-door:after{content:'';position:absolute;left:-10px;right:-10px;bottom:-8px;height:5px;background:#c1aa89;box-shadow:0 5px #dfcfaf}
.campus-school-clock{position:absolute;right:10px;top:8px;width:15px;height:15px;background:#fff3d5;border:3px solid #a77c5e}
.campus-school-clock:after{content:'';position:absolute;left:6px;top:3px;width:2px;height:6px;background:#8c6e54;box-shadow:2px 4px #8c6e54}
#memory-campus .campus-tree{top:57px;width:46px;height:59px;background:#83a58a;box-shadow:8px -10px #a8bd91,-7px 13px #96b28b,9px 20px #739782}
#memory-campus .campus-tree.left{left:5%}#memory-campus .campus-tree.right{right:5%}
#memory-campus .campus-tree:after{left:20px;top:49px;height:71px;width:8px;background:#ac8966}
#memory-campus .campus-walk{height:75px;background:repeating-linear-gradient(90deg,transparent 0 58px,#c5b49366 58px 60px),repeating-linear-gradient(0deg,#e2d2b3 0 23px,#cbb997 23px 25px)}
.campus-gate{position:absolute;top:148px;width:18px;height:47px;background:repeating-linear-gradient(0deg,#d9ba98 0 10px,#ecd7b7 10px 12px);border:2px solid #b49372;z-index:1}
.campus-gate:before{content:'';position:absolute;left:-4px;right:-4px;top:-5px;height:6px;background:#b27160}
.campus-gate.left{left:23%}.campus-gate.right{right:23%}
.campus-notice{position:absolute;left:3%;top:139px;width:52px;height:35px;border:4px solid #a7805d;background:#d2bd91;display:flex;gap:4px;padding:5px;box-shadow:0 4px #8f745a}
.campus-notice i{width:13px;height:23px;background:#fff0d2;border-top:5px solid #c77d6d}.campus-notice i:nth-child(2){border-color:#7ba38e;transform:rotate(-5deg)}
.campus-flowerbed{position:absolute;bottom:66px;width:18%;height:12px;background:#b88768;border-top:5px solid #94ab7c;z-index:2}
.campus-flowerbed.left{left:2%}.campus-flowerbed.right{right:2%}
.campus-flowerbed:before{content:'';position:absolute;left:10%;right:10%;top:-13px;height:9px;background:repeating-linear-gradient(90deg,#d58b79 0 6px,transparent 6px 17px,#eac587 17px 23px,transparent 23px 34px)}
#memory-campus .campus-actors{z-index:3}#memory-campus.pose-rail .campus-railing{z-index:4}
#memory-campus .campus-controls{padding:10px 14px}#memory-campus .campus-controls p{margin:6px 0}#memory-campus .campus-choices{gap:6px;margin:10px 0}#memory-campus .campus-choices button{padding:6px 8px;font-size:13px}
.discovery-dialog{width:min(540px,calc(100vw - 28px));max-height:90vh;overflow:auto;padding:0;background:#fff5e4;color:#68513f;border:4px solid #a48667;box-shadow:5px 5px #60463855}
.discovery-head{padding:16px 20px;border-bottom:3px solid #cbb494;background:#e7eddb}.discovery-head small{color:#658573}.discovery-head h2{margin:7px 0 0;font-size:19px}
.discovery-stage{height:300px;position:relative;overflow:hidden;background:#e4ddc6;border-bottom:3px solid #b9a484}
.discovery-backdrop{position:absolute;inset:0;background:linear-gradient(#dae2cf 0 55%,#baaa8b 55% 58%,#e2cfaa 58%);}
.discovery-backdrop:before{content:'';position:absolute;left:8%;top:9%;width:22%;height:28%;background:#b1cdd0;border:7px solid #f4e7c8;box-shadow:3px 3px #9d896c}
.discovery-backdrop:after{content:'';position:absolute;left:12%;right:12%;bottom:19%;height:13%;background:#b48860;border:4px solid #927456;box-shadow:0 10px #d2b189}
.setting-fish .discovery-backdrop,.setting-pet .discovery-backdrop{background:linear-gradient(#d4e6d5 0 32%,#8fb5a1 32% 38%,#acc8ae 38% 52%,#ded0a7 52%)}
.setting-fish .discovery-backdrop:before{left:0;top:0;width:100%;height:45%;border:0;background:repeating-linear-gradient(0deg,#adc9c5 0 13px,#bed7ce 13px 15px);box-shadow:none}
.setting-fish .discovery-backdrop:after{left:8%;right:8%;bottom:17%;background:repeating-linear-gradient(90deg,#c5a67b 0 24px,#a58964 24px 27px);height:34%;border-color:#a58964;transform:perspective(100px) rotateX(12deg)}
.setting-rest .discovery-backdrop:after{height:26%;background:#90b7a1;border:8px solid #6f9c85;box-shadow:inset 0 10px #b6d3bc}
.setting-fit .discovery-backdrop:before{height:65%;width:33%;background:#c6d4c7;border:9px solid #a18462}
.setting-practice .discovery-backdrop:before{width:78%;height:40%;background:#cad8d0;border:6px solid #b49f7f}
.setting-pet .discovery-backdrop:after{background:#a2bc89;border:0;box-shadow:8px 8px #87a675}
.discovery-actors{position:absolute;bottom:22%;left:50%;transform:translateX(-50%);width:220px;height:88px}
.discovery-actors .light-pair{position:relative;display:flex;justify-content:space-between;width:100%;height:88px}
.discovery-actors .light-figure{position:relative;display:block;width:68px;height:88px;image-rendering:pixelated;flex:none;animation:none}
.discovery-actors .han{animation-delay:.4s}
.discovery-find{position:absolute;z-index:2;left:calc(50% - 18px);bottom:16%;width:36px;height:30px;animation:none}
.discovery-find.envelope{background:#f8eed8;border:3px solid #bfa47b;transform:rotate(-8deg);box-shadow:2px 3px #80694c55}.discovery-find.envelope:after{content:'✦';display:block;text-align:center;color:#bb7466;font-size:18px}
.discovery-find.knot i{position:absolute;left:7px;top:-14px;width:19px;height:15px;border:5px double #997851;border-radius:50%;transform:rotate(35deg)}
.discovery-find.knot b{display:block;width:30px;height:29px;border:3px solid #829c8c;background:#d7e5cb;box-shadow:inset 0 5px #9fb5a4;transform:rotate(-8deg)}
.discovery-find.bottle{width:23px;background:#c1dbca;border:3px solid #6f9e91;border-radius:3px 3px 8px 8px}.discovery-find.bottle:before{content:'';position:absolute;left:6px;top:-12px;width:9px;height:12px;background:#c1dbca;border-top:5px solid #a48a69}.discovery-find.bottle i{position:absolute;inset:9px 4px;background:#fff0cf}
.discovery-find.box{background:#ad805b;border:3px solid #805b43;box-shadow:inset 0 7px #d0a37c}.discovery-find.box:after{content:'';position:absolute;left:14px;top:9px;width:6px;height:8px;background:#eed397}
.discovery-bubble{position:absolute;z-index:3;top:15px;left:12px;width:43%;box-sizing:border-box;padding:10px 12px;margin:0;background:#fff0e8;border:2px solid #c88172;font-size:13px;line-height:1.6;animation:discovery-appear .3s ease-out}
.discovery-bubble small{display:block;color:#ad5146;font-size:11px;margin-bottom:4px}.discovery-bubble:after{content:'';position:absolute;bottom:-9px;left:28px;width:12px;height:12px;background:inherit;border-right:2px solid #c88172;border-bottom:2px solid #c88172;transform:rotate(45deg)}
.discovery-bubble.han{left:auto;right:12px;top:49px;background:#e5f0df;border-color:#83a48d}.discovery-bubble.han small{color:#527b62}.discovery-bubble.han:after{border-color:#83a48d;left:auto;right:28px}
.discovery-caption{padding:0 20px;line-height:1.7;font-size:13px}.discovery-dialog>.actions{padding:0 20px 16px;justify-content:flex-end}.discovery-dialog button{min-height:44px;padding:9px 22px;border:2px solid #9a8064;background:#e6edda;color:#53745d;font:inherit}
.discovery-photo{background:#f4ecd9;background-image:repeating-linear-gradient(0deg,transparent 0 23px,#bcab8515 23px 24px)}
.discovery-photo .campus-print{box-sizing:border-box;display:block;width:calc(100% - 48px);max-height:48vh;object-fit:contain;background:#fffdf3;border:10px solid #fffdf3;border-bottom-width:26px;margin:22px auto 14px;box-shadow:3px 5px #8c795744;transform:rotate(-1deg);image-rendering:auto;animation:discovery-appear .4s ease-out}
.discovery-photo h2{font-size:16px;text-align:center}.discovery-photo .actions{justify-content:center;gap:12px}
@keyframes discovery-rise{from{opacity:0;translate:0 55px;rotate:-15deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes discovery-lean{50%{translate:0 -3px;rotate:2deg}}
@keyframes discovery-appear{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.discovery-dialog *,.discovery-photo *{animation:none!important}}
@media(max-width:380px){.discovery-stage{height:270px}.discovery-bubble{font-size:12px;padding:8px}.discovery-actors{width:200px}}

/* The retrieval happens once; later dialogue renders hold the object in place. */
.discovery-stage.step-0 .discovery-find{animation:discovery-rise 1.2s ease-out both}
.discovery-stage.step-1 .light-figure.jimi,.discovery-stage.step-2 .light-figure.han{transform:translateY(-2px)}
.discovery-pond{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}
.setting-fish .discovery-backdrop{display:none}
.setting-fish .discovery-actors{bottom:18%;width:200px}
.setting-fish .discovery-find{bottom:12%}
.discovery-bubble{top:50px;left:calc(50% - 145px);width:200px;max-width:65%;box-shadow:3px 3px #745d4533}
.discovery-bubble.han{top:50px;right:calc(50% - 145px);left:auto}
.discovery-bubble:after{left:42px}.discovery-bubble.han:after{right:42px}
.discovery-find.knot:after{content:'';position:absolute;top:-14px;left:23px;width:20px;height:25px;border-right:3px solid #a68a64;border-bottom:3px solid #a68a64;transform:rotate(12deg)}
.discovery-room-details{position:absolute;inset:0;pointer-events:none}
.discovery-room-details i{position:absolute;right:7%;bottom:27%;width:23px;height:29px;background:#be876b;border-top:5px solid #a9755c;box-shadow:inset 4px 0 #d8aa85}
.discovery-room-details i:before{content:'';position:absolute;bottom:28px;left:4px;width:16px;height:24px;background:#8ca67a;box-shadow:-8px -8px #aac197,7px -16px #93b387}
.discovery-room-details b{position:absolute;left:10%;bottom:25%;width:35px;height:8px;background:#c27f6d;border-top:5px solid #ecd2ad;box-shadow:0 -7px #91aca0}
.discovery-room-details em{position:absolute;right:11%;top:13%;width:30px;height:24px;border:5px solid #b08e69;background:#e5cdaa;box-shadow:inset 0 10px #b8ccaf}
@media(max-width:380px){.discovery-bubble{left:15px;top:39px;width:185px}.discovery-bubble.han{right:15px;left:auto;top:39px}}

.scrap-stage-stickers{position:absolute;right:14px;bottom:16px;width:84px;height:55px;overflow:visible;pointer-events:none}.scrap-stage-stickers .stage-outfit-pair{display:flex;gap:8px;transform:scale(.55);transform-origin:top left;background:none;border:0;margin:0;padding:0;min-height:0}.scrap-stage-stickers .stage-figure{flex:none;animation:none!important}
