.space-actions{--action-ink:#fff3dc;--action-glass:#26352de8;position:absolute;z-index:32;right:28px;color:var(--action-ink)}.space-actions-create{bottom:max(26px,env(safe-area-inset-bottom))}.space-actions-utility{top:max(22px,env(safe-area-inset-top))}.space-action-scrim{position:fixed;inset:0;z-index:30;touch-action:none;cursor:default}.space-actions button{font-family:inherit;cursor:pointer}.space-action-trigger{display:flex;align-items:center;justify-content:center;gap:9px;min-width:52px;height:52px;padding:0 17px;border-radius:30px;background:#e4cca0;color:#293b31;border:1px solid #fff0cd99;box-shadow:0 4px 22px #181d2326;transition:transform .22s,background .22s}.space-action-trigger>span{font-size:12px;letter-spacing:1px}.space-action-trigger>svg{transition:transform .32s cubic-bezier(.2,.8,.3,1.3)}.space-actions-create.is-open .space-action-trigger>svg{transform:rotate(45deg)}.space-actions-utility .space-action-trigger{height:44px;min-width:44px;padding:0;background:#27372a80;color:var(--action-ink);border-color:#fff4df33;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.space-actions-utility .space-action-trigger>span{display:none}.space-action-list{position:absolute;right:0;bottom:68px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;min-width:218px}.space-action-list[hidden]{display:none}.space-actions-utility .space-action-list{bottom:auto;top:58px;gap:8px}.space-action{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:48px;padding:0;border:0;background:none;color:var(--action-ink);animation:action-unfold .32s cubic-bezier(.2,.8,.3,1.15) both;animation-delay:calc(var(--order)*35ms);transform-origin:right bottom}.space-action-copy{padding:9px 12px;border:1px solid #fff4df26;border-radius:10px;background:var(--action-glass);box-shadow:0 4px 24px #141a2220;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:right;font-size:12px;line-height:1.5}.space-action-copy small{display:block;font-size:10px;color:#d7c9b4;margin-top:2px}.space-action-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:50%;border:1px solid #fff4df66;background:#f1e8d5;color:#39493b;box-shadow:0 6px 18px #16201829;transition:transform .22s cubic-bezier(.2,.8,.3,1.4),background .2s}.space-action:hover .space-action-icon,.space-action:focus-visible .space-action-icon{transform:scale(1.12);background:#fff6e2}.space-action:has(+.space-action:hover) .space-action-icon,.space-action:hover+.space-action .space-action-icon{transform:scale(1.04)}.space-actions button:focus-visible{outline:2px solid #ffe2a1;outline-offset:5px}.space-actions button:disabled{opacity:.45;cursor:default}.space-action[aria-pressed=true] .space-action-icon{background:#dfbc7e}.space-action-trigger:hover{transform:scale(1.04)}@keyframes action-unfold{0%{opacity:0;transform:translate(8px,18px) scale(.88)}to{opacity:1;transform:translate(0) scale(1)}}@media(max-width:768px){.space-actions{right:20px}.space-actions-create{bottom:max(20px,env(safe-area-inset-bottom))}.space-actions-utility{top:max(18px,env(safe-area-inset-top))}.space-action-list{gap:10px;max-width:calc(100vw - 40px)}.space-action-trigger{height:50px;min-width:50px}}@media(prefers-reduced-motion:reduce){.space-actions *{animation:none!important;transition:none!important}}.memory-bloom{position:absolute;inset:0;z-index:8;color:#fff3dc;pointer-events:none;outline:none;isolation:isolate;text-shadow:0 2px 15px #20180b}.memory-bloom:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#201b164a,transparent 24%,transparent 52%,#14241cb0 81%,#12221ce8);pointer-events:none}.is-blooming .room-fallback,.is-blooming .home-header,.is-blooming .home-welcome,.is-blooming .home-bottom,.is-blooming .room-hotspot,.is-blooming .room-stick,.is-blooming .generation-ticket{visibility:hidden!important;pointer-events:none!important}.bloom-header{position:absolute;top:max(30px,env(safe-area-inset-top));left:40px;right:34px;display:flex;justify-content:space-between;align-items:flex-start}.bloom-header>div>span{font-size:10px;letter-spacing:3px;color:#f7e1b8}.bloom-header h2{font:30px/1.5 var(--serif);font-weight:400;margin:8px 0}.bloom-header h2 small{font:11px sans-serif;letter-spacing:2px;margin-left:18px;color:#e4d6ba}.bloom-header>button{pointer-events:auto;display:flex;align-items:center;gap:8px;min-height:44px;border:1px solid #fae1af4d;border-radius:40px;background:#302d2480;color:#f8e8c8;padding:10px 16px;font-size:12px}.bloom-scope{position:absolute;top:38px;left:50%;transform:translate(-50%);display:flex;gap:22px;pointer-events:auto}.bloom-scope button{display:flex;align-items:center;gap:6px;border:0;border-bottom:1px solid transparent;background:#2430267d;color:#e1d6bf;min-height:44px;padding:8px 12px;font-size:12px;border-radius:3px}.bloom-scope button[aria-pressed=true]{border-bottom-color:#ffdaa3;color:#ffedc6}.bloom-scope small{opacity:.7;margin-left:3px}.bloom-petals{position:absolute;inset:0;pointer-events:none}.bloom-hit{visibility:hidden;position:absolute;pointer-events:auto;min-width:44px;min-height:44px;padding:0;background:transparent;border:0;touch-action:pan-y;border-radius:1px;color:#fff6de}.bloom-hit-label{position:absolute;bottom:6px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:9px;background:#283329c9;padding:9px 15px;border:1px solid #eed6a55c;white-space:nowrap;font-size:11px;letter-spacing:1px;max-width:100%;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 18px #0003}.bloom-hit:not(.is-selected) .bloom-hit-label{opacity:0}.bloom-hit:not(.is-selected):hover .bloom-hit-label,.bloom-hit:focus-visible .bloom-hit-label{opacity:1}.bloom-hit:focus-visible{outline:2px solid #ffe1a5;outline-offset:6px}.bloom-hit.is-selected:hover .bloom-hit-label{background:#50654ae8}.bloom-footer{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));left:24px;right:24px;display:flex;flex-direction:column;align-items:center;pointer-events:none;transition:opacity .3s,transform .4s}.bloom-picker{display:flex;align-items:center;gap:24px;pointer-events:auto}.bloom-picker button{width:44px;height:44px;display:grid;place-items:center;border:1px solid #f4d69b60;border-radius:50%;background:#172b2480;color:#ffe6b4}.bloom-picker button:disabled{opacity:.3}.bloom-picker>span{font:16px Georgia,serif;letter-spacing:3px;text-align:center;min-width:145px}.bloom-picker small{display:block;font:10px/1.8 sans-serif;letter-spacing:1px;color:#d7d5bd;margin-top:5px}.bloom-story{text-align:center;max-width:600px;margin:16px auto 12px}.bloom-story>small{font-size:10px;letter-spacing:2px;color:#edddbb}.bloom-story h3,.bloom-empty h3{font:400 23px/1.5 var(--serif);margin:8px 0;text-wrap:balance}.bloom-story p{font:13px/1.8 var(--serif);color:#e8e4d2;margin:6px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:48px}.bloom-add{pointer-events:auto;display:flex;align-items:center;gap:10px;min-height:44px;background:transparent;border:0;border-bottom:1px solid #edd5a46b;color:#ffe5b3;padding:9px 18px;font-size:13px}.bloom-add small{font-size:10px;color:#d4d9c1;margin-left:14px}.bloom-empty{text-align:center;margin-bottom:25px}.bloom-empty p{font-size:13px;color:#e0dbc7}.bloom-pending{pointer-events:auto;max-height:110px;overflow:auto;width:min(500px,100%)}.bloom-pending button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px;background:#1a2b21b0;border:1px solid #c3b78966;color:#fff0cb;font-size:12px}.bloom-pending small{font-size:10px;color:#c9cdb2}.bloom-entering .bloom-header,.bloom-entering .bloom-scope,.bloom-entering .bloom-footer,.bloom-closing .bloom-header,.bloom-closing .bloom-scope,.bloom-closing .bloom-footer{opacity:0;pointer-events:none;transform:translateY(10px)}.bloom-entering:before{opacity:0;transition:opacity .5s}.bloom-entering button,.bloom-closing button{pointer-events:none}.bloom-entering .bloom-header>button,.bloom-closing .bloom-header>button{pointer-events:auto}.bloom-flat{background:#253c31}.bloom-flat .bloom-hit{visibility:visible;left:calc(50% + var(--offset)*170px);top:36%;width:250px;height:190px;transform:translate(-50%,-50%) rotate(calc(var(--offset)*12deg));background:#eee3ca;padding:8px}.bloom-flat .bloom-hit img{width:100%;height:100%;object-fit:cover}.bloom-flat .bloom-hit.is-selected{z-index:3}.home-bottom nav .home-add-photo{background:#d8bd87;color:#26382a;border-color:#e1c996}.object-choice{display:grid;gap:10px;margin-top:25px}.object-choice button{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;background:#ece6d5;border:1px solid #d1c5a3;color:#374b36;min-height:60px;text-align:left}.object-choice small{display:block;font-size:10px;color:#8b856e;margin-top:6px}@media(max-width:768px){.bloom-header{top:max(22px,env(safe-area-inset-top));left:22px;right:18px}.bloom-header>div>span{font-size:9px;letter-spacing:2px}.bloom-header h2{font-size:26px}.bloom-header h2 small{font-size:10px;margin-left:12px}.bloom-header>button{padding:9px 12px}.bloom-scope{top:114px;gap:18px;width:max-content}.bloom-scope button{font-size:11px;padding:6px 10px}.bloom-footer{left:22px;right:22px;bottom:max(20px,env(safe-area-inset-bottom))}.bloom-story{margin:12px auto 8px}.bloom-story h3{font-size:20px}.bloom-story p{font-size:12px;max-height:44px}.bloom-picker{gap:16px}.bloom-picker>span{font-size:14px;min-width:140px}.bloom-add{font-size:12px}.bloom-add small{font-size:9px;margin-left:8px}.bloom-hit-label{font-size:10px;padding:8px;gap:5px;letter-spacing:0;bottom:-4px}.bloom-flat .bloom-hit{width:190px;height:145px;left:calc(50% + var(--offset)*125px)}}@media(max-height:650px){.bloom-story p{display:none}.bloom-story{margin:5px auto}.bloom-footer{bottom:12px}.bloom-story h3{font-size:18px;margin:4px}.bloom-header{top:14px}.bloom-scope{top:22px;left:55%}}@media(prefers-reduced-motion:reduce){.memory-bloom *{animation:none!important;transition:none!important}}[data-reduced-motion=true] .memory-bloom *{animation:none!important;transition:none!important}.bloom-dismiss{position:absolute;inset:0;width:100%;height:100%;border:0;background:none;pointer-events:auto;cursor:default;z-index:0}.bloom-header,.bloom-scope,.bloom-footer{z-index:3}.bloom-petals{z-index:2}.bloom-dismiss-hint{font-size:10px;color:#dfd5bc;letter-spacing:1px;padding:12px 0}.bloom-hit,.bloom-flat .bloom-hit{border-radius:12px}.bloom-flat .bloom-hit img{object-fit:contain;border-radius:8px}.bloom-add{border:1px solid #e8cf9c66;border-radius:30px;background:#25392ba0;margin-top:6px;padding:10px 22px}.bloom-story{pointer-events:auto}@media(max-width:600px){.bloom-dismiss-hint{max-width:90px;line-height:1.8;text-align:right}}.memory-ritual{position:absolute;inset:0;z-index:7;overflow:hidden;background:#172e2b;color:#f4ebd5;isolation:isolate;display:grid;place-items:center}.ritual-entry{pointer-events:none;background:radial-gradient(ellipse at 50% 60%,#344b40,#142725)}.ritual-content{position:relative;z-index:2;max-width:680px;width:100%;padding:60px 24px;text-align:center}.ritual-kicker{display:block;font-size:10px;letter-spacing:5px;color:#d0c3a3;margin-bottom:34px}.ritual-photo{width:210px;height:160px;margin:0 auto 32px;position:relative;border:7px solid #e5dac0;border-bottom-width:23px;background:#3a4d42;box-shadow:0 20px 85px #0007;transform:rotate(-4deg);animation:photo-breath 8s ease-in-out infinite}.ritual-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.72)}.ritual-photo>span{font-size:58px;display:grid;place-items:center;height:100%;color:#dcc495}.ritual-photo-light{position:absolute;inset:-9px;background:linear-gradient(115deg,transparent 25%,#ffefba66 48%,transparent 70%);mix-blend-mode:screen;background-size:250% 100%;animation:photo-light 6s ease-in-out infinite}.ritual-photo>i{position:absolute;width:300px;height:300px;left:50%;top:50%;border:1px solid #d6b46f20;border-radius:50%;transform:translate(-50%,-50%);z-index:-1}.ritual-photo>i:last-child{width:360px;height:360px;border-style:dashed;border-color:#d6b46f10}.ritual-content h2{text-wrap:balance;font:400 clamp(22px,3vw,32px)/1.6 var(--serif);letter-spacing:2px;margin:0 0 14px}.ritual-status{display:flex;justify-content:center;align-items:center;gap:10px;font-size:12px;letter-spacing:1px;color:#e1cda4;margin:16px 0}.ritual-status>span{width:5px;height:5px;background:#efd3a0;border-radius:50%;box-shadow:0 0 15px #f6d080;animation:light-breath 2.5s ease-in-out infinite}.ritual-detail{font-size:11px;line-height:1.8;color:#b7c3b3}.ritual-thought{margin:35px auto 20px;max-width:390px;font:15px/2 var(--serif);color:#d8d4c0;animation:thought-in 1s both;min-height:60px}.ritual-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}.ritual-atmosphere>i{position:absolute;left:10%;top:-40%;width:35%;height:160%;background:linear-gradient(90deg,transparent,#edcf8240,transparent);filter:blur(50px);transform:rotate(28deg);animation:window-light 15s ease-in-out infinite}.ritual-atmosphere>i:nth-child(2){left:60%;opacity:.3;animation-delay:-6s}.ritual-atmosphere>i:nth-child(3){left:35%;opacity:.15;animation-delay:-10s}.ritual-atmosphere>b{position:absolute;left:calc(8% + var(--i)*4.7%);width:3px;height:3px;background:#f0d6a2;border-radius:50%;box-shadow:0 0 12px #ddc48b;opacity:0;animation:memory-dust calc(8s + var(--i)*.3s) ease-in-out infinite;animation-delay:calc(var(--i)*-.8s)}@keyframes memory-dust{0%{transform:translateY(120px);opacity:0}30%{opacity:.5}80%{opacity:.15}to{transform:translate(25px,-170px);opacity:0}}@keyframes photo-breath{50%{transform:rotate(-2deg) translateY(-8px)}}@keyframes photo-light{0%,20%{background-position:150% 0}80%,to{background-position:-100% 0}}@keyframes light-breath{50%{opacity:.35;box-shadow:0 0 2px #f6d080}}@keyframes window-light{50%{transform:rotate(21deg) translate(8%);opacity:.4}}@keyframes thought-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ritual-still *{animation:none!important}.ritual-still .ritual-atmosphere>b{opacity:.3}.generation-shell{min-height:100dvh;background:#172e2b;color:#efe6d1}.generation-header{position:fixed;top:0;left:0;right:0;z-index:12;display:flex;justify-content:space-between;padding:23px 32px;background:linear-gradient(#142725dd,transparent)}.generation-header button{display:flex;gap:8px;align-items:center;min-height:44px;color:#f4e7ce;background:#182b2680;border:1px solid #ffffff20;padding:10px 15px}.generation-header span{font:italic 30px Georgia,serif}.generation-shell>.memory-ritual{position:relative;min-height:100dvh}.generation-shell .ritual-content{padding-top:110px;padding-bottom:40px}.generation-form{max-width:950px;margin:auto;padding:120px 26px 50px}.generation-form h1{text-wrap:balance;font:34px/1.6 var(--serif);margin:10px 0}.generation-form>p{font-size:13px;line-height:2;color:#c0c6b4}.generation-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:35px}.generation-grid .photo-focus-wrap{max-width:100%}.generation-upload{width:100%;min-height:280px;border:1px dashed #cdbb8a77;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#ffffff06;color:#e3d7b6;padding:30px}.generation-upload strong{font:23px var(--serif)}.generation-upload small{font-size:11px;line-height:1.8}.generation-fields label{display:block;margin:0 0 22px;font-size:12px;color:#c3ccb9}.generation-fields textarea,.generation-fields input{display:block;width:100%;padding:14px;background:#e6e0cf0d;border:1px solid #b4bea542;color:#fff2da;margin-top:10px;border-radius:2px;font-size:16px}.generation-fields textarea{min-height:118px;resize:vertical}.generation-fields p{font-size:11px;line-height:1.9;color:#b9c4b2}.generation-error{padding:15px;background:#613f3080;border:1px solid #d0a57955;color:#ffe3c0;font-size:12px;line-height:1.8}.generation-gold{background:#d8bd87;color:#25382e;border:0;padding:15px 25px;min-height:48px;font-size:13px;display:inline-flex;gap:9px;align-items:center;justify-content:center}.generation-gold:disabled{opacity:.4}.generation-quiet{background:none;border:0;border-bottom:1px solid #f3dfb344;color:#d1c7ad;padding:10px 6px;min-height:44px;margin:12px}.generation-note{font-size:11px;line-height:1.8;color:#b7c4b5;max-width:460px;margin:15px auto}.generation-steps{display:flex;justify-content:center;gap:14px;margin:24px auto;font-size:10px;color:#8e9d8b}.generation-steps span.active{color:#f0d197}.generation-steps span.done{color:#c1cbb7}.generation-ticket{position:absolute;z-index:6;right:32px;top:90px;border:1px solid #dfcfa14d;background:#24382ee8;color:#f2e2bd;padding:13px 18px;display:flex;align-items:center;gap:12px;min-height:48px;font-size:12px;max-width:300px;text-align:left}.generation-ticket small{display:block;font-size:10px;color:#bfc8ae;margin-top:5px}.object-add{display:flex;gap:12px;flex-wrap:wrap}.generation-auth{max-width:400px;margin:90px auto;padding:30px}.generation-auth label{display:block;margin:22px 0;font-size:13px}.generation-auth input{display:block;width:100%;padding:15px;margin-top:12px;font-size:16px;background:#f4ead5;color:#25382e;border:0}.generation-auth p{font-size:13px;line-height:1.9;color:#c1c9b8}@media(max-width:768px){.generation-header{padding:15px 20px}.generation-grid{grid-template-columns:1fr;gap:25px}.generation-form{padding-top:100px}.generation-form h1{font-size:27px}.generation-shell .ritual-content{padding:100px 22px 30px}.ritual-photo{width:175px;height:135px;margin-bottom:26px}.ritual-kicker{margin-bottom:25px}.ritual-thought{font-size:14px;margin-top:25px}.generation-ticket{top:80px;right:18px;font-size:11px;max-width:250px}.generation-steps{gap:10px;font-size:9px}.generation-auth{margin:60px 15px}.generation-gold{width:100%}.generation-quiet{font-size:12px}.ritual-entry .ritual-content h2{text-wrap:balance;font-size:23px}}@media(prefers-reduced-motion:reduce){.memory-ritual *{animation:none!important}.ritual-atmosphere>b{opacity:.3}}.generation-wait-note{max-width:420px;margin:18px auto}.generation-wait-note label{font-size:12px;line-height:1.8;color:#d4d5be}.generation-wait-note textarea{display:block;width:100%;margin-top:10px;background:#e8d6ab12;border:1px solid #ead2a844;color:#f5e6c9;font-size:16px;line-height:1.8;padding:12px;min-height:95px;resize:vertical}.generation-wait-note .generation-quiet{font-size:12px}.generation-step-label{display:block;color:#cbb987;font-size:10px;letter-spacing:2px;margin-bottom:20px}.generation-grid .generation-upload{min-height:285px;background:radial-gradient(ellipse,#d4b87c0e,transparent 75%)}.upload-empty-frame{display:grid;place-items:center;width:78px;height:90px;border:1px solid #c7b48370;background:#e8d5a508;transform:rotate(-7deg);color:#d6c38f}.photo-source-buttons{display:flex;gap:10px;margin-top:15px}.photo-source-buttons button{flex:1;display:flex;justify-content:center;align-items:center;gap:10px;background:#d5bd87;color:#27392d;border:0;padding:15px;min-height:50px;font-size:13px}.photo-source-buttons button:disabled{opacity:.45}.photo-source-buttons .camera-source{display:none}.mobile-upload-copy{display:none!important}.photo-source-hint{font-size:10px;line-height:1.9;color:#aebaa5;margin-top:12px}.photo-drop{border:1px solid transparent;transition:border-color .2s,background .2s}.photo-drop.is-dragging{border-color:#eed39c;background:#d5c18a19;outline:5px solid #d5c18a19}.generation-fields .generation-step-label{margin-bottom:20px}.generation-unlock{padding:20px;border:1px solid #d5be8555;background:#bfa76c0b;margin-top:16px}.generation-unlock>strong{font:18px/1.6 var(--serif);color:#e7d5af}.generation-unlock p{font-size:12px;line-height:1.8;color:#bfc7b3}.generation-unlock label{display:block;font-size:12px;margin:14px 0}.generation-unlock input{width:100%;display:block;padding:13px;border:1px solid #c5c9ae55;background:#ffffff0a;color:#f5e9cf;font-size:16px;margin-top:8px}.generation-unlock .generation-gold{width:100%}.ritual-wireframe{position:absolute;inset:-45px;z-index:-2;border:1px solid #e6c88f33;transform:perspective(700px) rotateY(-25deg) rotateX(8deg);background-image:linear-gradient(#efd6a314 1px,transparent 1px),linear-gradient(90deg,#efd6a314 1px,transparent 1px);background-size:28px 28px;opacity:0;transition:opacity 1.5s}.ritual-photo-echo{position:absolute;inset:8px -18px -8px 18px;border:1px solid #ead4a447;background:#ead4a407;z-index:-1;transform:rotate(8deg);opacity:.5}.ritual-forming .ritual-wireframe{opacity:1;animation:memory-outline 12s ease-in-out infinite}.ritual-ready .ritual-photo{animation:memory-arrived 1.2s ease-out both;box-shadow:0 0 90px #e3c48c33,0 25px 80px #0005}.ritual-paused .ritual-photo,.ritual-paused .ritual-photo-light,.ritual-paused .ritual-status>span{animation:none}.ritual-ready .ritual-status>span{animation:none}@keyframes memory-outline{50%{transform:perspective(700px) rotateY(25deg) rotateX(-8deg);opacity:.4}}@keyframes memory-arrived{0%{transform:rotate(-4deg) scale(.94)}to{transform:rotate(0) scale(1)}}@media(max-width:768px),(pointer:coarse){.photo-source-buttons .camera-source{display:flex;background:transparent;border:1px solid #d2bd86;color:#e4d2a6}.mobile-upload-copy{display:inline!important}.desktop-upload-copy{display:none!important}.generation-upload .mobile-upload-copy{display:block!important}.generation-grid .generation-upload{min-height:240px}.generation-upload strong{font-size:22px}.generation-step-label{margin-bottom:15px}}@media(prefers-reduced-motion:reduce){.photo-drop,.ritual-wireframe{transition:none}.ritual-ready .ritual-photo,.ritual-forming .ritual-wireframe{animation:none}}.ritual-visual{position:relative;isolation:isolate}.ritual-long .ritual-visual{height:340px;display:grid;place-items:center;margin:-24px -24px 8px}.memory-constellation{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}.ritual-long .ritual-photo{width:150px;height:112px;margin:0;border-width:4px;border-bottom-width:15px;box-shadow:0 0 45px #f4d39433,0 20px 50px #0009}.ritual-long .ritual-wireframe,.ritual-long .ritual-photo>i{display:none}.ritual-long .ritual-kicker{margin-bottom:8px}.generation-embedded .ritual-visual{height:280px;margin:-18px -24px 0}.generation-embedded .ritual-photo{width:132px;height:102px;margin:0}.memory-input-modal:has(.ritual-long){background:#152b29f5!important}.ritual-long .ritual-detail{max-height:76px;overflow:auto;scrollbar-width:thin;padding:0 8px}.memory-input-modal .ritual-thought{opacity:1;color:#ece1c5}.ritual-long .ritual-content h2{font-size:24px}@media(max-width:600px){.generation-embedded .ritual-visual{height:240px;margin-inline:-18px}.ritual-long .ritual-content h2{font-size:21px}.generation-embedded .ritual-photo{width:116px;height:90px}.ritual-long .ritual-thought{min-height:42px}}.memory-input-modal-backdrop{background:#14201940;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.home-shell .modal.memory-input-modal{width:min(490px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:30px;background:#20362fef;color:#eee2c6;border:1px solid #d8c18e55;border-radius:18px;box-shadow:0 30px 100px #101c2270}.memory-input-modal>.modal-star{display:none}.memory-input-modal>h2{font-size:23px;margin:5px 34px 22px 0;color:#eee2c6}.memory-input-modal>.modal-close{color:#e9dec5;top:16px;right:12px}.generation-embedded{min-height:0;background:none}.generation-form{max-width:490px}.generation-embedded .generation-form{padding:0}.generation-form .generation-grid{grid-template-columns:1fr;gap:16px;margin-top:18px}.memory-input-tabs{display:flex;gap:8px;padding:4px;background:#111f1a50;border-radius:10px}.memory-input-tabs button{flex:1;min-height:44px;background:none;border:0;border-radius:7px;color:#c4cab9;font-size:13px}.memory-input-tabs button[aria-pressed=true]{background:#d7c394;color:#263d30}.generation-form .generation-upload{min-height:185px;gap:12px;padding:20px;border-radius:10px}.generation-form .generation-upload strong{font-size:18px}.generation-form .upload-empty-frame{width:48px;height:58px}.generation-form .photo-source-buttons{margin:10px 0}.generation-form .photo-source-buttons button{min-height:44px;padding:10px;border-radius:8px}.memory-input-preview{display:block;width:100%;height:205px;object-fit:contain;background:#15261f80;border-radius:10px}.memory-optional{margin:0 0 16px}.memory-optional summary{display:flex;align-items:center;gap:14px;min-height:44px;cursor:pointer;color:#e4d7b7;font-size:13px}.memory-optional summary:before{content:"＋";font-size:18px}.memory-optional[open] summary:before{content:"−"}.memory-optional summary small,.generation-fields label>small{font-size:11px;color:#b4bda9;line-height:1.7}.memory-optional label{margin-top:12px}.generation-form .generation-gold{width:100%;border-radius:9px}.generation-embedded .memory-ritual{min-height:0;background:none}.generation-embedded .ritual-content{padding:15px 0 0}.generation-embedded .ritual-photo{width:150px;height:115px;margin:36px auto}.generation-embedded .ritual-content h2{font-size:23px}.generation-embedded .ritual-kicker{margin-bottom:20px}.generation-embedded .ritual-thought{font-size:13px;margin:18px 0}.generation-embedded .generation-steps{gap:8px;font-size:9px;flex-wrap:wrap}.generation-embedded .generation-auth{padding:0;margin:0}@media(max-width:600px){.home-shell .modal.memory-input-modal{padding:22px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.memory-input-modal>h2{font-size:21px}.generation-form .generation-upload{min-height:155px}.memory-input-preview{height:175px}}.memory-input-modal .generation-fields p{color:#bac9b6;font-size:11px;line-height:1.9}.memory-input-modal .photo-source-hint{color:#bac5b4}.memory-input-modal .ritual-status{color:#f5deb0;font-size:13px}.memory-input-modal .ritual-detail{color:#d3ddca;font-size:12px;line-height:1.9}.memory-input-modal .ritual-thought{color:#e8dec3}.memory-input-modal .generation-note{color:#c5d2bf}.memory-input-modal .generation-error{color:#ffe3c0}.memory-input-modal .ritual-atmosphere>i{opacity:.28}.memory-input-modal .generation-embedded .memory-ritual{border-radius:12px}.memory-input-modal .ritual-photo img{object-fit:contain}.home-shell{--home-ink:#fff6e4;--home-glass:rgba(39,32,24,.66);position:fixed;inset:0;background:#c1b298;color:var(--home-ink);overflow:hidden;font-family:var(--font-body, sans-serif)}.home-world{position:absolute;inset:0;touch-action:none;outline:none}.home-world canvas{display:block}.home-world:focus-visible{outline:2px solid #eec990;outline-offset:-3px}.home-header{position:absolute;z-index:4;left:36px;right:32px;top:max(25px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;pointer-events:none;text-shadow:0 1px 12px #2c241ab0}.home-header>*{pointer-events:auto}.home-brand{font:italic 38px Georgia,serif;letter-spacing:-2px;color:#fff5df;text-decoration:none;display:flex;align-items:center;gap:23px}.home-brand span{font:12px sans-serif;letter-spacing:3px;border-left:1px solid #ffffff50;padding-left:22px}.home-header>div{display:flex;align-items:center;gap:10px}.home-header button{width:44px;height:44px;background:var(--home-glass);border:1px solid #ffffff26;border-radius:50%;color:#fff1d9;display:grid;place-items:center}.home-demo{font-size:11px;letter-spacing:1px;margin-right:12px;color:#ffefd7}.home-welcome{position:absolute;pointer-events:none;top:130px;left:44px;text-shadow:0 2px 16px #35291e9c}.home-welcome>span{font:10px sans-serif;letter-spacing:4px;color:#fff0cf}.home-welcome h1{font-family:var(--font-display,"Songti SC",serif);font-size:47px;font-weight:400;letter-spacing:5px;margin:13px 0 9px}.home-welcome p{font-size:12px;letter-spacing:1px;color:#fff2dc}.room-hotspot{position:absolute;z-index:3;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:8px 12px 8px 7px;min-height:44px;background:#1f1e17c2;border:1px solid #f8e2b52b;border-radius:3px;color:#fff3dc;text-align:left;white-space:nowrap;box-shadow:0 4px 18px #221c1520;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s,border-color .2s}.room-hotspot:active:not(:disabled){transform:translate(-50%,-50%)}.room-hotspot:hover,.room-hotspot[data-near=true]{background:#3a2e1ce6;border-color:#ead3a7aa}.room-hotspot>span:last-child{font-size:12px;letter-spacing:1px}.room-hotspot small{display:block;font-size:9px;color:#e3cba8;letter-spacing:.5px;margin-top:4px}.hotspot-light{display:block;width:7px;height:7px;margin:8px;border-radius:50%;background:#ffdf9c;box-shadow:0 0 0 5px #ffdb9c17,0 0 20px #ffce76}.home-bottom{position:absolute;z-index:5;bottom:max(26px,env(safe-area-inset-bottom));left:36px;right:32px;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none;gap:16px}.home-bottom>*{pointer-events:auto}.home-instructions{font-size:10px;letter-spacing:1px;display:flex;flex-direction:column;gap:14px;text-shadow:0 1px 8px #000}.home-instructions>span:nth-child(2){display:none}kbd{font:10px sans-serif;border:1px solid #ffffff52;padding:5px 7px;border-radius:3px;background:#241e1670;color:#fff1da}.home-instructions button{display:flex;gap:9px;align-items:center;border:none;background:var(--home-glass);color:#fff2d8;font-size:12px;padding:7px 12px;min-height:44px;border-radius:3px}.home-bottom nav{display:flex;gap:7px}.home-bottom nav button{display:flex;align-items:center;gap:8px;background:var(--home-glass);color:#fff2d8;border:1px solid #ffffff20;padding:12px 16px;min-height:44px;border-radius:3px;font-size:11px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.room-stick{display:none;position:absolute;bottom:95px;left:28px;width:104px;height:104px;border:1px solid #ffffff60;border-radius:50%;background:#2f271f33;z-index:5;touch-action:none}.room-stick>span{display:block;position:absolute;left:30px;top:30px;width:44px;height:44px;border-radius:50%;border:1px solid #ffffff90;background:#fff3d34d;pointer-events:none}.room-stick small{position:absolute;bottom:-25px;width:100%;text-align:center;letter-spacing:3px;font-size:10px;pointer-events:none}.room-loading{position:absolute;z-index:8;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#eee5d4;color:#4a4b3d}.room-loading p{font:26px Songti SC,serif;letter-spacing:3px;margin:20px}.room-loading small{font-size:12px;color:#83765e}.room-loading button{margin-top:25px;border:0;background:none;color:#6d634e;text-decoration:underline;min-height:44px}.room-guide{position:absolute;z-index:6;right:32px;bottom:100px;width:325px;padding:24px 25px;background:#f8f1e3;color:#4b483c;box-shadow:0 12px 60px #20180d35;border-radius:3px}.room-guide>small{font-size:10px;letter-spacing:1px;color:#928366}.room-guide h2{font:23px Songti SC,serif;margin:15px 0}.room-guide p{font-size:13px;line-height:1.9;color:#756c59}.room-guide>div{display:flex;gap:16px;margin-top:17px}.room-guide button{border:0;background:none;color:#596547;min-height:44px;font-size:12px;display:flex;align-items:center;gap:7px;padding:0}.room-guide .guide-close{position:absolute;top:3px;right:10px;padding:10px}.home-shell .modal-backdrop{color:#353f35}.home-shell .modal{max-height:calc(100dvh - 48px);overflow:auto;width:min(700px,calc(100vw - 36px));background:#f7f1e5;border-radius:4px}.album-tabs{display:flex;gap:14px;margin:24px 0 15px}.album-tabs button{padding:10px 0;border:0;border-bottom:1px solid transparent;background:none;color:#93836c;min-height:44px}.album-tabs button[aria-pressed=true]{color:#314537;border-color:#314537}.album-search{display:flex;align-items:center;gap:10px;padding:0 12px;background:#ebe5d8;border:1px solid #c4baaa55}.album-search input{border:0;background:none;width:100%;padding:12px 0;outline:none;color:#4b483b;font-size:13px}.album-places{display:flex;overflow:auto;gap:8px;margin:12px 0 18px}.album-places button{white-space:nowrap;background:none;border:0;color:#837860;font-size:11px;min-height:44px;padding:8px}.album-places button[aria-pressed=true]{color:#314537;background:#e3e5d7}.album-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}.album-memory{position:relative;display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:8px 8px 15px;background:#fffaf0;border:1px solid #d7cbb644;color:#4b483b;box-shadow:0 4px 14px #695e3e0a}.album-memory img{width:100%;aspect-ratio:1.5;object-fit:cover;display:block}.album-memory>span{padding:12px 5px 0}.album-memory small{font-size:10px;color:#9a896c;display:block;margin-bottom:7px}.album-memory strong{font:17px Songti SC,serif;display:block;padding-right:24px}.album-memory>svg{position:absolute;bottom:17px;right:14px}.album-empty{text-align:center;padding:25px}.album-empty button{background:none;border:0;text-decoration:underline;color:#55674a;min-height:44px}.room-fallback{position:absolute;inset:0;overflow:auto;padding:150px max(30px,calc((100vw - 700px)/2)) 70px;background:linear-gradient(145deg,#464e42,#242f2c)}.room-fallback h1{font:35px Songti SC,serif;line-height:1.5}.room-fallback p{font-size:14px;color:#cec5b2;line-height:1.8}.room-fallback>div{display:grid;gap:12px;margin:28px 0}.room-fallback button{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;background:#ffffff0b;border:1px solid #ffffff22;color:#f8ecd4;min-height:48px}@media(max-width:768px){.home-header{left:20px;right:17px;top:max(16px,env(safe-area-inset-top))}.home-brand{font-size:32px}.home-brand span,.home-demo{display:none}.home-header button{width:40px;height:44px}.home-welcome{top:96px;left:24px}.home-welcome h1{font-size:36px;margin:10px 0}.home-welcome>span{font-size:8px}.home-welcome p{font-size:10px;letter-spacing:0}.room-hotspot{gap:2px;padding:5px 9px 5px 2px}.room-hotspot>span:last-child{font-size:11px}.room-hotspot small{display:none}.home-bottom{left:20px;right:20px;bottom:max(20px,env(safe-area-inset-bottom));display:block}.home-bottom nav{justify-content:flex-end}.home-bottom nav button{font-size:10px;padding:11px;gap:5px}.home-instructions{position:absolute;bottom:67px;right:0;text-align:right;gap:10px;font-size:9px;max-width:210px}.home-instructions>span:first-child{display:none}.home-instructions>span:nth-child(2){display:block}.home-instructions button{align-self:flex-end;font-size:10px}.home-instructions kbd{display:none}.room-stick{display:block}.room-guide{right:20px;left:20px;width:auto;bottom:210px;padding:20px}.room-guide p{font-size:12px}.room-guide h2{font-size:21px}.home-shell .modal{max-height:calc(100dvh - 24px);padding:28px 22px}.album-grid{gap:12px}.album-memory strong{font-size:15px}.room-fallback{padding:120px 24px 50px}.room-fallback h1{font-size:28px}}@media(pointer:coarse)and (min-width:769px){.room-stick{display:block;bottom:120px}}@media(prefers-reduced-motion:reduce){.home-shell *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.room-hotspot{border-color:transparent;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:10px;min-width:44px}.room-hotspot>span:last-child{opacity:0;max-width:0;overflow:hidden;transition:opacity .2s;pointer-events:none}.room-hotspot:hover>span:last-child,.room-hotspot:focus-visible>span:last-child,.room-hotspot[data-near=true]>span:last-child{opacity:1;max-width:220px}.room-hotspot:hover,.room-hotspot:focus-visible,.room-hotspot[data-near=true]{background:#342c21c9;border-color:#e6cc9d55;padding-right:15px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.home-welcome{animation:home-intro 8s forwards;pointer-events:none}.home-welcome h1{font-size:39px}.home-welcome p{max-width:310px;line-height:1.8}.home-shell{animation:space-in .35s ease-out}.reader-shell{animation:none}.album-grid{margin-top:20px}.memory-loading{position:absolute;z-index:7;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f9e8c8;background:#26352eef;pointer-events:none}.memory-loading p{font:24px Songti SC,serif;letter-spacing:3px}.memory-loading small{color:#b6baa7;font-size:11px}@keyframes space-in{0%{opacity:0}to{opacity:1}}@keyframes home-intro{0%,60%{opacity:1}to{opacity:0}}[data-reduced-motion=true] .home-shell,[data-reduced-motion=true] .reader-shell,[data-reduced-motion=true] .home-welcome{animation:none}@media(max-width:768px){.room-hotspot{padding:6px}.room-hotspot>span:last-child{opacity:1;max-width:170px;font-size:10px}.room-hotspot{background:#352c21b0;border-color:#ffffff20;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.home-welcome h1{font-size:30px}.home-welcome p{max-width:220px}.home-bottom nav{gap:6px}.home-bottom nav button{padding:11px 10px}.home-instructions{bottom:73px}.home-header{background:linear-gradient(#31271933,transparent)}.room-hotspot[data-near=true]{padding-right:8px}}.room-preview-note{position:fixed;z-index:24;top:80px;left:50%;transform:translate(-50%);max-width:calc(100% - 32px);width:max-content;padding:8px 12px;border-radius:20px;background:#213b31c9;color:#fff4db;font-size:11px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.room-preview-note a{color:#ffdc91}@media(max-width:600px){.room-preview-note{top:72px;font-size:10px}}.home-memory-places{position:absolute;z-index:5;bottom:88px;right:32px;display:flex;gap:6px}.home-memory-places button{min-height:44px;padding:7px 14px;border:1px solid #e6dbbb45;background:#263b2bb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff2d9;border-radius:30px;display:flex;align-items:center;gap:8px;font-size:12px}.home-memory-places small{opacity:.7}.home-memory-places button:hover,.home-memory-places button:focus-visible{background:#57674c;outline:2px solid #e2c482}@media(max-width:600px){.home-memory-places{bottom:92px;right:16px;gap:4px}.home-memory-places button{min-width:70px;padding:7px 10px}}.room-hotspot>span:last-child{opacity:1;max-width:220px}.room-hotspot{background:#342c21bd;border-color:#e6cc9d55;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@media(max-width:600px){.home-instructions button{display:none}}.is-blooming .home-memory-places{display:none}.room-collision-notice{position:absolute;bottom:156px;left:50%;transform:translate(-50%);padding:10px 16px;border-radius:24px;background:#263b2bde;color:#fff2d9;font-size:12px;pointer-events:none;opacity:0;transition:opacity .15s;width:max-content;max-width:90%}.room-collision-notice[data-visible=true]{opacity:1}.is-blooming .room-collision-notice{display:none}.home-help-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.home-help-actions button{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px;border:1px solid #b6b5a477;border-radius:4px;background:#eee8db;color:#495944;font-size:12px}.home-instructions{animation:home-intro 12s forwards;pointer-events:none}.room-preview-note{font-size:10px;opacity:.8}.home-shell:has(.space-actions.is-open) .room-hotspot,.home-shell:has(.space-actions.is-open) .home-welcome{opacity:0}.room-hotspot{background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:10px;min-width:44px;gap:3px}.room-hotspot>span:last-child{opacity:0;max-width:0;overflow:hidden;transition:opacity .18s}.room-hotspot small{display:none}.room-hotspot:hover,.room-hotspot:focus-visible,.room-hotspot[data-near=true]{background:#342c21bd;border-color:#e6cc9d40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.room-hotspot:hover>span:last-child,.room-hotspot:focus-visible>span:last-child,.room-hotspot[data-near=true]>span:last-child{opacity:1;max-width:180px}.room-hotspot:hover small,.room-hotspot:focus-visible small{display:block}@media(max-width:768px){.room-hotspot{padding:6px;gap:0;background:#342c2199;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.room-hotspot>span:last-child{opacity:1;max-width:90px;font-size:10px}.room-hotspot:hover small,.room-hotspot:focus-visible small{display:none}}.is-blooming .room-preview-note{display:none}.home-arrival{background:radial-gradient(ellipse at 50% 45%,#fff4d9 0,#eee3cf 46%,#d8cdb9);text-align:center;padding:30px}.home-arrival .arrival-overline{font:10px/1.8 var(--font-body,sans-serif);letter-spacing:4px;color:#867153;margin:34px 0 0}.home-arrival p{font:400 clamp(23px,3vw,34px)/1.8 var(--serif,"Songti SC",serif);letter-spacing:2px;max-width:700px;min-height:64px;text-wrap:balance;margin:16px 0;animation:thought-in 1.6s both}.home-arrival small{font-size:12px;letter-spacing:2px}.home-arrival button{font-size:12px;text-decoration:none;border-bottom:1px solid #b4a184;padding:8px 0}.arrival-door{position:relative;width:86px;height:126px;border:1px solid #b39a70;border-radius:42px 42px 0 0;background:linear-gradient(#ffecc3,#fff9e9);box-shadow:0 0 90px #e7bb6966;perspective:350px}.arrival-door i{position:absolute;inset:3px;border-radius:40px 40px 0 0;background:#a18d6b;border:1px solid #b5a180;transform-origin:left center;animation:arrival-open 6s ease-in-out infinite alternate}.arrival-door b{position:absolute;inset:100% -60% -70%;background:linear-gradient(#f6d48b77,transparent);clip-path:polygon(28% 0,72% 0,100% 100%,0 100%)}.arrival-door span{position:absolute;right:15px;top:62px;width:3px;height:3px;background:#fff7df;border-radius:50%;box-shadow:0 0 18px 6px #ffe4a780}.arrival-still *{animation:none!important}.arrival-still .arrival-door i{transform:rotateY(-50deg)}@keyframes arrival-open{0%{transform:rotateY(-24deg)}to{transform:rotateY(-68deg)}}.room-hotspot[data-new=true] .hotspot-light{background:#fff4d5;box-shadow:0 0 0 7px #ffdc9a20,0 0 26px 5px #ffd18a77;animation:memory-arrives 2.8s ease-in-out 2}.room-hotspot[data-new=true] .hotspot-light:after{content:"";display:block;position:absolute;width:25px;height:25px;margin:-9px;border:1px solid #ffdf9c66;border-radius:50%;animation:memory-ripple 2.8s ease-out 2;opacity:0}.room-hotspot[data-generating=true]:not([data-new=true]) .hotspot-light{background:#e6c891;box-shadow:0 0 0 6px #ffdb9c15,0 0 16px 3px #ffce7644}@keyframes memory-arrives{0%,to{transform:scale(1)}45%{transform:scale(1.6);box-shadow:0 0 0 13px #ffdc9a14,0 0 38px 9px #ffd18a99}}@keyframes memory-ripple{0%{transform:scale(.7);opacity:0}25%{opacity:.55}to{transform:scale(2.4);opacity:0}}@media(prefers-reduced-motion:reduce){.room-hotspot[data-new=true] .hotspot-light,.room-hotspot[data-new=true] .hotspot-light:after{animation:none}}.home-world[data-reduced=true] .room-hotspot .hotspot-light,.home-world[data-reduced=true] .room-hotspot .hotspot-light:after{animation:none}.memory-arrival{position:fixed;inset:0;z-index:90;background:#26392f;color:#fff0d1;opacity:1;transition:opacity .9s ease;overflow:hidden;isolation:isolate}.memory-arrival>img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.03)}.arrival-shade{position:absolute;inset:0;background:linear-gradient(transparent 30%,#172b2455 65%,#172b24bc)}.arrival-words{position:absolute;left:24px;right:24px;bottom:17%;text-align:center;text-shadow:0 2px 16px #10221c}.arrival-words small{font-size:11px;letter-spacing:5px}.arrival-words p{font:27px/1.6 var(--serif);text-wrap:balance;letter-spacing:2px;margin:17px auto;max-width:600px}.arrival-words>span{font-size:12px;color:#ebe5cc}.memory-arrival>button{position:absolute;bottom:30px;left:50%;transform:translate(-50%);min-height:44px;padding:10px 17px;background:#263c31b0;color:#ffe9c1;border:1px solid #ecd2a155;border-radius:30px;font-size:12px}.memory-arrival.has-arrived{opacity:0;pointer-events:none}.memory-arrival.has-arrived .arrival-words{opacity:0;transition:opacity .3s}.reader-shell.is-arriving .reader-header,.reader-shell.is-arriving .reader-scene-top,.reader-shell.is-arriving .reader-scene-actions,.reader-shell.is-arriving .reader-scene-caption,.reader-shell.is-arriving .scene-family-tabs,.reader-shell.is-arriving .scene-view-nav{opacity:0}.reader-shell .reader-header,.reader-shell .reader-scene-top,.reader-shell .reader-scene-actions,.reader-shell .reader-scene-caption,.reader-shell .scene-family-tabs,.reader-shell .scene-view-nav{transition:opacity .65s ease}@media(max-width:768px){.arrival-words p{font-size:23px}.arrival-words{bottom:18%}}@media(prefers-reduced-motion:reduce){.memory-arrival,.reader-shell *{transition:none!important}}[data-reduced-motion=true] .memory-arrival{transition:none}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#24392f;background:#f6f3ec;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper:#f6f3ec;--ink:#24392f;--muted:#7d8579;--forest:#244638;--forest-deep:#19352e;--gold:#e9c590;--line:#e4e3d8;--serif:"Noto Serif SC","Songti SC",STSong,Georgia,serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.5}button{border:0;color:inherit;background:none}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #b88a4b;outline-offset:4px}button{transition:background .18s,color .18s,transform .18s}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit}input,textarea,select{min-width:0}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500}svg{flex-shrink:0}button:disabled:hover{transform:none}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-only{display:none}.eyebrow{font-size:10px;letter-spacing:2.2px;line-height:1.7;font-weight:500;display:flex;align-items:center;gap:9px}.btn{min-height:48px;padding:13px 20px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:13px;border-radius:5px;line-height:1.6;font-weight:500}.btn-gold{background:var(--gold);color:#2e3f30;box-shadow:0 5px 20px #0000000b}.btn-gold:hover{background:#f1d3a4}.btn-green{background:var(--forest);color:#fffaf0}.btn-green:hover{background:#315b47}.btn-outline{border:1px solid #aab7a8;background:transparent;color:#355444}.btn-outline:hover{background:#e8eadd}.icon-btn{min-width:44px;min-height:44px;padding:10px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px}.icon-btn:hover{background:#73846e15}.text-button,.text-action{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;font-size:12px}.text-action{color:#eadcc5}.text-action:hover{color:#fff9ea}.quiet-button{display:block;min-height:44px;font-size:12px;color:#788371;margin:7px auto 0}.quiet-button:hover{color:#233f2f}.subtle{font-size:12px!important;line-height:1.85!important;color:#7c8375}.brand{display:flex;align-items:center;text-align:left;gap:12px;min-height:55px;padding:0}.brand-mark{font-family:Georgia,serif;font-size:40px;line-height:1;font-weight:400;color:#a9864c}.brand>span:last-child{font-family:Georgia,serif;font-size:32px;line-height:1;letter-spacing:-1px}.brand small{display:block;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;letter-spacing:2.7px;font-size:9px;margin-top:10px;color:#7b846e}.gallery-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100dvh}.sidebar{padding:31px 24px 18px;background:var(--paper);border-right:1px solid #dedfd3;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;z-index:3;overflow-y:auto}.sidebar .brand{margin-left:8px}.sidebar-family{margin:38px 0 25px;display:flex;gap:11px;align-items:center;padding:15px 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.family-symbol{width:32px;height:35px;display:grid;place-items:center;color:#74876a}.sidebar-family strong{font-size:13px;display:block;font-weight:500}.sidebar-family small{font-size:10px;color:#8c9183;display:block;margin-top:7px;white-space:nowrap}.collection-nav{display:grid;gap:6px}.collection-nav button{display:flex;align-items:center;gap:11px;text-align:left;padding:0 14px;height:46px;font-size:12px;border-radius:5px;color:#76816e}.collection-nav button>span{margin-left:auto;font-size:10px;opacity:.7}.collection-nav button.active{background:#e5eadc;color:#31533d}.collection-nav button:hover{background:#e9ecdf}.side-section-title{font-size:9px;letter-spacing:1.2px;color:#929581;display:flex;align-items:center;justify-content:space-between;margin:31px 12px 14px}.place-nav{display:grid;gap:1px}.place-nav button{display:flex;gap:12px;align-items:center;min-height:41px;padding:9px 14px;font-size:12px;color:#697762;text-align:left;border-radius:4px}.place-nav button>span:last-child{margin-left:auto;font-size:10px;color:#9da18e}.place-nav button:hover,.place-nav button.active{background:#e9ecdf;color:#294b35}.place-nav button.active{font-weight:600}.place-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 4px #c4cbb01c}.all-dot{background:#697e5a}.family-note{margin:auto 8px 0;padding-top:33px}.little-star{color:#ac8b53;font-size:23px}.family-note p{font-family:var(--serif);font-size:12px;line-height:2.1;color:#8a8b75;margin:11px 0 15px}.avatar-stack,.mini-avatars{display:flex;align-items:center}.avatar-stack>span{width:27px;height:27px;display:flex;align-items:center;justify-content:center;border:2px solid var(--paper);border-radius:50%;color:#fff;font-size:10px;margin-left:-5px}.avatar-stack>span:first-child{margin-left:0}.avatar-stack .avatar-extra{background:#e3e8d9;color:#80906e;font-size:8px}.family-note>small{font-size:8px;color:#999c88;display:block;margin-top:11px;line-height:1.8}.sidebar-foot{margin-top:25px;padding-top:17px;border-top:1px solid var(--line);font-size:9px;color:#929580;display:flex;align-items:center;gap:7px;min-height:44px}.sidebar-foot>svg:last-child{margin-left:auto}.gallery-main{min-width:0}.topbar{height:72px;background:#1c382f;border-bottom:1px solid #d3dcc317;color:#b5c1af;padding:0 46px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{display:flex;gap:10px;align-items:center;font-size:10px;color:#8da690}.breadcrumb span:first-child{color:#c3ceba}.top-actions{display:flex;align-items:center;gap:22px}.preview-badge{font-size:9px;letter-spacing:.7px;display:inline-flex;align-items:center;gap:7px;color:#a6bda8;min-height:36px}.preview-badge>span{width:5px;height:5px;background:#acc08f;border-radius:50%}.self-avatar{width:30px;height:30px;border:1px solid #78947563;background:#2e4d3d;display:grid;place-items:center;border-radius:50%;font-size:10px;color:#d8dec6}.mobile-brand,.mobile-collections{display:none}.hero{height:553px;position:relative;overflow:hidden;background:#19352e}.scene{position:relative;width:100%;height:100%;isolation:isolate;overflow:hidden}.scene canvas{display:block;width:100%;height:100%}.hero>.scene{position:absolute;inset:0}.scene-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#19352e10 38%,#19352e29 75%,#19352e)}.scene-caption{position:absolute;left:24px;bottom:15px;color:#95aa91;font-size:8px;letter-spacing:1px;display:flex;align-items:center;gap:6px;pointer-events:none}.scene-caption i{width:3px;height:3px;background:#b8ba8d;border-radius:50%}.hero .scene-caption{display:none}.hero-copy{position:relative;z-index:1;padding:42px 0 0 49px;max-width:500px;pointer-events:none}.hero-copy .eyebrow{color:#a8b598;font-size:8px;letter-spacing:2px}.tiny-star{color:#dfbd82;font-size:16px}.hero h1{font-size:43px;letter-spacing:2px;line-height:1.6;color:#f1efdf;margin:17px 0 15px;text-shadow:0 3px 30px #19352e88}.hero h1>span{color:var(--gold)}.hero-copy>p{font-size:12px;line-height:2;color:#b5c3ae;letter-spacing:.4px;text-shadow:0 1px 10px #19352e}.hero-actions{display:flex;align-items:center;gap:23px;margin-top:26px;pointer-events:auto}.hero-actions .btn{min-height:44px;font-size:11px;padding:12px 16px;gap:8px}.hero-actions .text-action{font-size:11px}.featured-invite{position:absolute;z-index:1;right:44px;bottom:70px;width:305px;text-align:left;padding:0;color:#e6e7d3}.invite-line{display:block;width:33px;height:1px;background:#c2a26a;margin-bottom:14px}.invite-location{font-size:9px;letter-spacing:1px;display:flex;gap:7px;align-items:center;color:#bcceac}.invite-location>span{width:4px;height:4px;background:#ddb66d;border-radius:50%;box-shadow:0 0 8px #f3c674}.featured-invite strong{font-family:var(--serif);font-size:17px;font-weight:400;line-height:2.1;display:block;margin:5px 0 12px}.invite-bottom{display:flex;align-items:center;gap:9px;font-size:8px;color:#bac6a9}.mini-avatars>span{width:22px;height:22px;display:grid;place-items:center;border:1.5px solid var(--paper);border-radius:50%;margin-left:-5px;font-size:8px;color:#fff}.mini-avatars>span:first-child{margin-left:0}.invite-bottom .mini-avatars>span{border-color:#284635}.invite-bottom i{margin-left:auto;border:1px solid #a6b68c55;border-radius:50%;width:31px;height:31px;display:grid;place-items:center;font-style:normal;transition:background .2s}.featured-invite:hover .invite-bottom i{background:#56694c}.hero-bottom-note{position:absolute;left:49px;right:46px;bottom:21px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #c9d1b81a;padding-top:14px;color:#93a48b;font-size:9px;letter-spacing:.5px;pointer-events:none}.memory-library{padding:33px 45px 16px;background:var(--paper)}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.library-heading .eyebrow{color:#999c85;font-size:8px;letter-spacing:2px}.library-heading h2{font-size:23px;letter-spacing:1px;margin-top:9px;display:flex;gap:14px;align-items:center}.library-heading h2 small{font-size:12px;font-family:Georgia,serif;color:#b0b39d;border-left:1px solid #d9ddcb;padding-left:12px;font-style:italic}.wander-button{font-size:10px;min-height:44px;display:flex;align-items:center;gap:9px;color:#6d7f60}.wander-button:hover{color:#264b36}.library-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 22px;border-bottom:1px solid #dfe2d4;padding-bottom:11px}.location-chips{display:flex;gap:5px;min-width:0;overflow:auto;scrollbar-width:none}.location-chips::-webkit-scrollbar{display:none}.location-chips button{font-size:10px;min-height:35px;white-space:nowrap;color:#858d79;padding:7px 9px;border-radius:3px}.location-chips button.active{background:#e3e8d8;color:#36583d}.location-chips button:hover{background:#e9ecdf}.search-field{display:flex;align-items:center;gap:8px;color:#8c967e;flex:0 1 210px;min-width:155px}.search-field input{border:0;background:none;outline:0;font-size:10px;width:100%;padding:8px 0;color:#526745}.search-field input::placeholder{color:#a1a48e}.search-field button{min-width:26px;min-height:32px}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 21px}.memory-card{padding:0;text-align:left;min-width:0;display:block}.memory-card-image{height:155px;position:relative;overflow:hidden;border-radius:3px;background:#d8dfcf}.memory-card-image>img{width:100%;height:100%;object-fit:cover;transition:transform .55s,filter .55s;filter:saturate(.75)}.memory-card:hover .memory-card-image>img{transform:scale(1.045);filter:saturate(1)}.memory-card-image:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#172b2590);pointer-events:none}.card-place{position:absolute;z-index:1;bottom:10px;left:12px;font-size:9px;letter-spacing:1px;display:flex;align-items:center;gap:5px;color:#fff7e5}.card-open{position:absolute;z-index:1;bottom:9px;right:12px;color:#fff9e8;display:grid;place-items:center;width:24px;height:24px;border:1px solid #ffffff66;border-radius:50%;opacity:.8}.sample-tag{position:absolute;right:10px;top:9px;font-size:7px;letter-spacing:1px;color:#fff8e8;padding:3px 5px;background:#2b3d3290;border-radius:2px}.memory-card-copy{padding:13px 1px 3px}.card-date{font-size:8px;letter-spacing:1px;color:#a1a38c;display:flex;justify-content:space-between;align-items:center}.card-date>span{font-family:Georgia,serif;font-style:italic}.memory-card h3{font-size:14px;line-height:1.8;margin:7px 0 10px;color:#354c37;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-bottom{display:flex;align-items:center;gap:8px}.card-bottom>span:last-child{font-size:8px;color:#969d87;display:flex;align-items:center;gap:4px}.card-bottom .mini-avatars span{width:18px;height:18px;font-size:6px}.library-footer{margin-top:29px;padding:19px 0 2px;border-top:1px solid var(--line);color:#a0a38d;display:flex;gap:14px;justify-content:space-between;font-size:8px;letter-spacing:.2px}.empty-state{text-align:center;padding:50px 20px 65px;color:#819273;min-height:270px}.empty-state>svg{color:#b7a47e;margin-bottom:17px}.empty-state h3{font-size:22px;color:#59704d}.empty-state p{font-size:12px;line-height:2;margin:13px 0 23px}.empty-state>.text-action{display:block;color:#697f5a;margin:10px auto auto}.scene-flat{position:absolute;inset:0;background:#19352e;display:flex;align-items:center;justify-content:center;overflow:hidden}.scene-flat img{width:50%;max-height:70%;object-fit:contain;transform:perspective(900px) rotateY(-12deg) rotate(2deg);border:8px solid #c5ac7d;box-shadow:0 26px 100px #0009,0 0 70px #d9bc6820}.scene-flat-hall img{margin-left:30%;max-height:55%;margin-top:40px}.flat-light{position:absolute;inset:0;background:radial-gradient(ellipse at 65% 40%,transparent,#19352e80)}.creation-shell{min-height:100dvh;background:var(--paper)}.creation-header{height:93px;max-width:1360px;padding:0 44px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.creation-header>.brand .brand-mark{font-size:34px}.creation-header>.brand>span:last-child{font-size:28px}.creation-header>span{font-size:10px;color:#89927d;display:flex;align-items:center;gap:6px}.creation-main{max-width:1180px;padding:39px 40px 30px;margin:auto}.creation-intro{text-align:center;margin-bottom:30px}.creation-intro>.eyebrow{justify-content:center;color:#a19a7f;font-size:8px}.creation-intro h1{font-size:31px;line-height:1.8;margin:8px 0;letter-spacing:1px}.creation-intro p{font-size:12px;color:#8c917e;line-height:1.9}.stepper{max-width:690px;display:flex;list-style:none;padding:0;margin:0 auto 33px;justify-content:space-between}.stepper li{display:flex;align-items:center;gap:8px;color:#a5a895;font-size:11px;position:relative;flex:1}.stepper li:after{content:"";height:1px;background:#dde0d0;flex:1;margin:0 13px}.stepper li:last-child{flex:none}.stepper li:last-child:after{display:none}.stepper li>span{border:1px solid #cbd2bc;color:#a0ac90;width:25px;height:25px;border-radius:50%;font-size:8px;display:grid;place-items:center;flex-shrink:0}.stepper li>strong{font-weight:400;white-space:nowrap}.stepper li.current{color:#365c40}.stepper li.current>span,.stepper li.complete>span{background:#365540;border-color:#365540;color:#fff9e9}.stepper li.complete{color:#728966}.creation-workspace{border:1px solid #dde0d1;border-radius:8px;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:490px;background:#faf8f2;box-shadow:0 12px 45px #233e2d06}.creation-visual{position:relative;background:#e6e8dc;display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0;min-height:490px;padding:36px}.step-0 .creation-visual{padding:26px;background:#e9ecdf}.creation-visual>.scene{position:absolute;inset:0}.creation-visual .scene-caption{display:none}.upload-zone{width:100%;min-height:439px;border:1px dashed #bcc6aa;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:background .2s;padding:24px 20px}.upload-zone.dragging{background:#d8e3cc;border-color:#597b50}.upload-art{height:78px;width:100px;position:relative;display:grid;place-items:center;margin-bottom:18px;color:#9aaa81}.upload-art span{position:absolute;width:60px;height:68px;border:1px solid #b3bfa0;background:#eff0e4;border-radius:3px;transform:rotate(-14deg);left:12px;top:5px}.upload-art span:nth-child(2){transform:rotate(11deg);left:25px;top:3px;background:#f6f4e9}.upload-art svg{position:relative;transform:rotate(4deg)}.upload-zone h2{font-size:17px;text-align:center;line-height:1.9;color:#61774e}.upload-zone>p{font-size:10px;margin:10px 0 19px;color:#929b7d}.upload-zone>small{font-size:9px;color:#9ea58c;margin-top:13px}.upload-zone .btn{min-height:43px;font-size:11px;min-width:145px}.upload-divider{display:flex;align-items:center;gap:10px;color:#a7ad95;font-size:9px;margin:22px 0 13px}.upload-divider>span{width:43px;height:1px;background:#d1d8c3}.sample-photo-button{display:flex;align-items:center;gap:11px;text-align:left;font-size:9px;color:#7e8f6a}.sample-photo-button img{width:40px;height:31px;object-fit:cover;border:3px solid #f7f5e9;transform:rotate(-7deg)}.sample-photo-button>span{display:flex;align-items:center;gap:7px;line-height:1.8}.creation-form{padding:40px 43px;display:flex;align-items:flex-start;flex-direction:column;min-width:0}.form-step-label{font-size:9px;letter-spacing:1px;color:#9d9e84;line-height:1.8}.creation-form h2{font-size:25px;line-height:1.85;letter-spacing:.5px;margin:19px 0;color:#3b573d;white-space:pre-line;word-break:break-word}.creation-form>p{font-size:12px;color:#87927b;line-height:2.2}.privacy-note{padding:18px 15px;background:#eff0e5;border:1px solid #e3e6d4;border-radius:5px;display:flex;align-items:flex-start;gap:10px;color:#788b65;font-size:11px;width:100%;margin:28px 0}.privacy-note>svg{margin-top:1px}.privacy-note>span{line-height:1.8;display:block}.privacy-note small{font-size:9px;display:block;line-height:1.9;color:#99a08a;margin-top:5px}.creation-form>.btn{width:100%;margin-top:auto}.creation-form>.quiet-button{margin-top:8px}.gentle-note{font-family:var(--serif);font-size:12px;color:#98a187;padding:25px 0;line-height:2.1}.creation-bottom{display:flex;align-items:center;justify-content:space-between;padding:14px 0}.creation-bottom>span{font-size:9px;display:flex;gap:6px;align-items:center;color:#969f87}.creation-bottom .text-button{color:#718765;font-size:11px}.photo-focus-wrap{width:100%;min-width:0}.photo-focus{position:relative;width:fit-content;max-width:100%;margin:auto;line-height:0;box-shadow:0 12px 35px #354d2920;border:7px solid #fdfcf6;border-bottom-width:18px}.photo-focus>img{max-height:340px;width:auto;max-width:100%;object-fit:contain;touch-action:manipulation}.photo-focus.interactive>img{cursor:crosshair}.focus-marker{position:absolute;pointer-events:none;transform:translate(-50%,-50%);width:35px;height:35px;border:1px solid #fff8e2;box-shadow:0 0 0 6px #e9c38340,0 0 30px #f4c66c80;border-radius:50%;display:grid;place-items:center;transition:left .45s,top .45s}.focus-marker:before,.focus-marker:after{content:"";position:absolute;background:#fff5d9;opacity:.6;width:8px;height:1px}.focus-marker:after{transform:rotate(90deg)}.focus-tip{font-size:9px;color:#8c9977;display:flex;gap:6px;align-items:center;justify-content:center;margin-top:22px;line-height:1.8;text-align:center}.focus-controls{margin:12px 0 0;color:#879575;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px}.focus-controls>span{font-size:8px}.focus-controls>div{display:flex}.focus-controls .icon-btn{min-width:35px;min-height:40px;padding:6px;font-size:14px}.photo-paper-caption{text-align:center;margin-top:22px;display:grid;gap:10px}.photo-paper-caption>span{font-size:7px;letter-spacing:2px;color:#a6ac95}.photo-paper-caption>i{font-family:var(--serif);font-size:11px;font-style:normal;color:#91a17f}.field-label{display:flex;gap:5px;align-items:center;font-size:10px;line-height:1.8;color:#748767;margin:0 0 8px}.field-label small{color:#a2a78f;font-size:8px;margin-left:auto}.creation-form textarea,.creation-form input,.creation-form select{border:1px solid #d8decb;border-radius:4px;background:#fcfbf6;color:#506a45;padding:12px;font-size:12px;line-height:1.8;width:100%;min-height:44px}.creation-form textarea{resize:vertical;min-height:114px;font-size:13px;line-height:2}.creation-form textarea::placeholder,.creation-form input::placeholder{color:#b1b69f}.creation-form .field-count{align-self:flex-end;font-size:8px;color:#aab099;margin:5px 0 14px}.creation-form .form-row{display:grid;grid-template-columns:1fr 1.2fr;gap:14px;width:100%;margin-bottom:15px}.block-field{display:block;width:100%;margin-bottom:16px}.step-2 .creation-form{padding-top:28px;padding-bottom:26px}.step-2 .creation-form h2{font-size:21px;margin:12px 0 18px}.step-2 .creation-form>.btn{margin-top:8px}.preview-quote{position:absolute;bottom:30px;left:29px;right:29px;z-index:1;color:#e3e6cb;pointer-events:none;text-align:center;background:linear-gradient(transparent,#19352eaa);padding-top:30px}.preview-quote>span{font-size:9px;letter-spacing:1px;color:#afbf9c}.preview-quote blockquote{margin:13px 0;line-height:2;font-family:var(--serif);font-size:15px;max-height:130px;overflow:hidden}.preview-quote>small{font-size:8px;color:#9db18d}.preview-honesty{font-size:9px;line-height:1.8;margin-top:14px;color:#a1a78e}.inline-error{color:#a85e48;font-size:11px;line-height:1.8;background:#f8ebe3;padding:11px 12px;border-radius:4px;margin-top:14px;width:100%}.reader-shell{min-height:100dvh;background:var(--paper);display:flex;flex-direction:column}.reader-header{height:83px;display:flex;align-items:center;padding:0 40px;border-bottom:1px solid #dedfd2;gap:35px}.reader-header>.brand .brand-mark{font-size:33px}.reader-header>.brand>span:last-child{font-size:28px}.reader-header>.text-button{color:#7e8d72;margin-left:28px;font-size:10px}.reader-header>.preview-badge{margin-left:auto;color:#87967a}.reader-main{display:grid;grid-template-columns:minmax(0,1fr) 356px;flex:1;min-height:680px}.reader-scene{position:relative;min-height:620px;background:#19352e;overflow:hidden}.reader-scene>.scene{position:absolute;inset:0}.reader-scene .scene-caption{bottom:85px}.reader-scene-top{position:absolute;top:28px;left:37px;right:37px;display:flex;justify-content:space-between;font-size:10px;color:#bdc9af;letter-spacing:1px}.reader-scene-top>span:first-child{display:flex;align-items:center;gap:6px}.reader-scene-caption{position:absolute;bottom:100px;left:37px;right:37px;color:#edeedb;pointer-events:none}.reader-scene-caption .eyebrow{color:#adc19d;font-size:8px;letter-spacing:2px}.reader-scene-caption h1{font-size:27px;letter-spacing:1px;line-height:1.8;margin:12px 0}.reader-scene-caption p{font-size:10px;line-height:1.9;color:#aebf9e}.reader-scene-actions{position:absolute;bottom:26px;left:37px;right:37px;display:flex;align-items:center;justify-content:space-between;gap:10px}.reader-scene-actions button{display:flex;gap:8px;align-items:center;font-size:9px;color:#c7d2b8;border:1px solid #b9c7a638;padding:8px 12px;min-height:41px;border-radius:4px;background:#19352e66}.reader-scene-actions button:hover{background:#4c624366}.perspective-panel{background:#f6f3eb;padding:36px 30px;display:flex;flex-direction:column;min-width:0}.panel-header .eyebrow{font-size:7px;letter-spacing:1.8px;color:#a0a18a}.panel-header h2{font-size:23px;margin:14px 0 12px;letter-spacing:.7px}.panel-header p{font-size:10px;color:#929b82;line-height:1.8}.perspective-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:26px 0 22px}.perspective-tabs button{display:flex;align-items:center;gap:6px;min-height:39px;padding:6px 8px;border:1px solid #dfe1d2;font-size:10px;border-radius:30px;color:#849176}.perspective-tabs button>span{height:21px;width:21px;border-radius:50%;display:grid;place-items:center;font-size:8px;color:#fff}.perspective-tabs button.active{border-color:#8c9e76;background:#e9eddd;color:#3e5a37}.perspective-story{animation:story-reveal .45s ease}.quote-mark{font-family:Georgia,serif;font-size:55px;line-height:.8;color:#c7b48d;display:block;height:28px}.perspective-story blockquote{margin:8px 0 19px;font-family:var(--serif);font-size:16px;line-height:2.15;color:#4d6046;overflow-wrap:anywhere;max-height:250px;overflow-y:auto}.story-author{display:flex;align-items:center;gap:7px;font-size:10px;color:#8d977e}.author-dash{width:18px;height:1px;background:#adba9c}.story-author small{margin-left:auto;display:flex;gap:4px;align-items:center;font-size:8px;color:#a8ac93}.photo-souvenir{position:relative;margin:30px 0 26px;transform:rotate(-3deg);border:7px solid #fffdf6;border-bottom-width:26px;box-shadow:0 6px 17px #3d573214;width:68%;align-self:center;line-height:0}.photo-souvenir img{width:100%;max-height:140px;object-fit:cover}.photo-souvenir>small{position:absolute;bottom:-18px;left:4px;font-size:7px;line-height:1.5;color:#a0a48e;letter-spacing:.7px}.souvenir-focus{position:absolute;transform:translate(-50%,-50%);width:18px;height:18px;border:1px solid #fff2cb;border-radius:50%;box-shadow:0 0 0 3px #f8d78833;transition:left .5s,top .5s}.perspective-bottom{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:10px}.perspective-bottom>.btn{width:100%;font-size:11px;min-height:45px}.perspective-bottom>small{display:flex;justify-content:center;gap:5px;align-items:center;font-size:8px;color:#a2a88f;line-height:1.8}.reader-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:9px 35px;font-size:9px;color:#96a083;border-top:1px solid #dee2d1}.reader-footer>div{display:flex;align-items:center;gap:18px;font-size:10px;color:#748968;font-family:Georgia,serif}.reader-photo-overlay{position:absolute;z-index:3;inset:25px 25px 90px;background:#203d33ed;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:45px;border:1px solid #78916744;box-shadow:0 20px 70px #0004;border-radius:5px}.reader-photo-overlay .photo-focus{max-width:90%}.reader-photo-overlay .photo-focus img{max-height:380px}.reader-photo-overlay>p{font-size:11px;color:#cad3b6;margin-top:22px}.photo-overlay-close{position:absolute;right:15px;top:10px;min-width:44px;min-height:44px;font-size:26px;color:#d2d9bc}.reader-photo-overlay .photo-focus-wrap{max-width:660px}.modal-backdrop{position:fixed;inset:0;z-index:60;background:#112b24a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;animation:story-reveal .2s ease}.modal{width:460px;max-width:100%;max-height:calc(100dvh - 48px);overflow-y:auto;padding:37px 38px 25px;background:var(--paper);border:1px solid #ffffec66;border-radius:10px;position:relative;box-shadow:0 25px 120px #0c261f55;outline:0}.modal-close{position:absolute;right:10px;top:10px;color:#a0aa91}.modal-star{color:#b5965b;font-size:35px;display:block;margin-bottom:19px}.modal h2{font-size:23px;line-height:1.8;margin-bottom:18px}.modal p{font-size:12px;line-height:2.1;color:#839174;margin:10px 0 20px}.modal>.btn{width:100%;margin-top:12px;font-size:12px}.modal-facts{display:grid;gap:15px;margin:25px 0;font-size:11px;color:#698158}.modal-facts>span{display:flex;align-items:center;gap:9px}.modal .privacy-note{margin:18px 0}.share-preview{font-family:var(--serif);font-size:15px;line-height:2.1;padding:20px;background:#e9eddf;border-left:2px solid #b9c5a3;color:#586e48;max-height:220px;overflow-y:auto;overflow-wrap:anywhere}.service-status{font-size:10px;color:#909a7f;display:flex;align-items:center;gap:7px;padding:15px 0;border-top:1px solid #dfe3d3;line-height:1.8}.service-status i{width:5px;height:5px;background:#c5a86b;border-radius:50%}.toast{position:fixed;z-index:90;bottom:25px;left:50%;transform:translate(-50%);max-width:min(90vw,600px);background:#f7f6e9;border:1px solid #cbd7bb;box-shadow:0 8px 35px #10291c25;color:#527345;display:flex;gap:10px;align-items:center;padding:8px 10px 8px 17px;border-radius:6px;font-size:11px;line-height:1.9}.toast>.icon-btn{min-width:32px;min-height:32px}.toast>span{flex:1}.toast-error{background:#fff1e8;color:#a66c50;border-color:#e5c8b4}.loading-page,.resume-empty{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;padding:30px;text-align:center;background:var(--forest-deep);color:#d8dfc5}.loading-page p{font-size:12px;line-height:2;color:#a3b594}.loading-page h1{font-size:25px}.loading-star{font-size:50px;color:var(--gold);animation:spin-light 5s linear infinite}.resume-empty{position:fixed;inset:0;background:var(--paper);color:#526c45}.resume-empty h1{font-size:25px}.storage-banner{padding:14px 25px;background:#fcdfbc;display:flex;gap:12px;align-items:center;font-size:11px;color:#855c37;position:relative;z-index:9;line-height:1.8}.storage-banner button{min-height:35px;border:1px solid #d8ac75;padding:0 10px;border-radius:3px;white-space:nowrap}@keyframes story-reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-light{to{transform:rotate(180deg)}}@media(min-width:1600px){.hero{height:625px}.hero-copy{padding-top:55px;padding-left:65px}.hero h1{font-size:52px}.featured-invite{right:65px;bottom:95px;width:360px}.featured-invite strong{font-size:21px}.memory-library{padding:39px 65px 20px}.memory-card-image{height:190px}.memory-card h3{font-size:16px}.hero-bottom-note{left:65px;right:65px}.reader-main{grid-template-columns:minmax(0,1fr) 410px;min-height:740px}.perspective-panel{padding:45px 37px}.reader-scene-caption h1{font-size:35px}}@media(max-width:1100px)and (min-width:769px){.gallery-shell{grid-template-columns:204px minmax(0,1fr)}.sidebar{padding-left:16px;padding-right:16px}.topbar{padding:0 28px}.hero{height:560px}.hero-copy{padding-left:30px}.hero h1{font-size:35px}.featured-invite{width:245px;right:28px;bottom:59px}.featured-invite strong{font-size:15px}.hero-bottom-note{left:30px;right:28px}.memory-library{padding:29px 28px 15px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-tools{flex-wrap:wrap;gap:6px}.search-field{margin-left:auto;max-width:230px}.reader-main{grid-template-columns:minmax(0,1fr) 320px}.perspective-panel{padding:27px 23px}.reader-scene-caption h1{font-size:23px}.creation-form{padding:35px 29px}.creation-form h2{font-size:22px}}@media(max-width:768px){.gallery-shell{display:block}.sidebar{display:none}.topbar{height:75px;padding:0 24px}.mobile-brand{display:block}.mobile-brand .brand{gap:9px}.mobile-brand .brand-mark{font-size:32px;color:#dbbd86}.mobile-brand .brand>span:last-child{font-size:28px;color:#eeead8}.mobile-brand .brand small{color:#8fa68d;font-size:7px;letter-spacing:2.3px;margin-top:7px}.breadcrumb{display:none}.top-actions{gap:14px}.mobile-collections{display:flex;justify-content:center;gap:27px;height:52px;background:#1c382f;border-bottom:1px solid #d3dcc317;color:#a9b99e}.mobile-collections button{display:flex;gap:7px;align-items:center;min-height:44px;font-size:11px;position:relative}.mobile-collections button.active{color:#e6d7b8}.mobile-collections button.active:after{content:"";position:absolute;bottom:0;left:15px;right:15px;height:2px;background:#ddbd85}.hero{height:585px}.hero-copy{padding:35px 28px 0;max-width:100%}.hero h1{font-size:36px;margin:11px 0 12px;line-height:1.65}.hero-copy>.eyebrow{font-size:7px;letter-spacing:1.9px}.hero-copy>p{font-size:11px;line-height:2}.hero-actions{margin-top:20px;gap:20px}.hero-actions .btn{font-size:10px;min-height:43px}.hero-actions .text-action{font-size:10px}.hero>.scene canvas{transform:translateY(50px)}.featured-invite{bottom:51px;right:28px;width:260px}.featured-invite strong{font-size:15px;line-height:1.9;margin:5px 0 8px}.invite-location{font-size:8px}.invite-line{margin-bottom:10px}.hero-bottom-note{left:28px;right:28px;bottom:15px;padding-top:11px;font-size:8px}.memory-library{padding:29px 26px 17px}.library-heading h2{font-size:22px}.wander-button{font-size:9px;gap:5px}.wander-button>svg:last-child{display:none}.library-tools{flex-direction:column;align-items:stretch;gap:12px;margin-top:21px;padding-bottom:14px}.location-chips{margin:0 -26px;padding:0 26px}.location-chips button{font-size:10px;padding:6px 11px;min-height:36px}.search-field{flex-basis:auto;max-width:100%;min-height:40px;background:#ebeedd;padding:0 10px;border-radius:4px}.search-field input{font-size:11px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 18px}.memory-card-image{height:155px}.memory-card h3{font-size:13px}.library-footer{font-size:8px;line-height:1.8;flex-wrap:wrap;justify-content:center;text-align:center;gap:5px}.reader-header{height:77px;padding:0 23px;gap:18px}.reader-header>.brand .brand-mark{font-size:29px}.reader-header>.brand>span:last-child{font-size:25px}.reader-header>.brand small{font-size:7px;letter-spacing:2px}.reader-header>.text-button{margin-left:auto;font-size:10px;gap:6px}.reader-header>.preview-badge{display:none}.reader-main{display:block;min-height:0}.reader-scene{height:490px;min-height:0}.reader-scene-top{left:26px;right:26px;top:23px;font-size:9px}.reader-scene-caption{left:27px;right:27px;bottom:86px}.reader-scene-caption h1{font-size:24px;max-width:400px;margin:11px 0}.reader-scene-caption p{font-size:9px}.reader-scene-actions{left:26px;right:26px;bottom:21px}.reader-scene-actions button{font-size:8px;min-height:40px}.reader-scene .scene-caption{display:none}.perspective-panel{padding:31px 30px 28px;max-width:650px;margin:auto}.panel-header h2{font-size:25px}.panel-header .eyebrow{font-size:8px}.perspective-tabs{margin-top:23px;margin-bottom:25px}.perspective-tabs button{min-height:44px;padding:7px 12px;font-size:11px}.perspective-story blockquote{font-size:17px;line-height:2.2;max-height:none}.photo-souvenir{width:50%;max-width:220px;margin:29px 0 30px}.photo-souvenir img{max-height:none}.perspective-bottom>.btn{min-height:47px;font-size:12px}.perspective-bottom>small{font-size:9px}.reader-footer{padding:9px 20px;font-size:8px;flex-wrap:wrap}.reader-footer>span:last-child{display:none}.reader-photo-overlay{inset:15px 15px 75px;padding:30px 16px}.reader-photo-overlay .photo-focus img{max-height:290px}.creation-header{height:78px;padding:0 24px}.creation-header>.brand .brand-mark{font-size:29px}.creation-header>.brand>span:last-child{font-size:25px}.creation-header>.brand small{font-size:7px;letter-spacing:2px}.creation-header>span{font-size:8px;margin-left:auto;margin-right:12px;max-width:130px;line-height:1.7}.creation-main{padding:25px;max-width:650px}.creation-intro{margin-bottom:24px}.creation-intro h1{font-size:26px;margin:10px 0}.creation-intro p{font-size:10px}.stepper{margin-bottom:24px}.stepper li{gap:5px;font-size:9px}.stepper li>span{width:22px;height:22px;font-size:7px}.stepper li:after{margin:0 7px}.stepper li>strong{font-size:9px}.creation-workspace{grid-template-columns:1fr;min-height:0}.creation-visual{min-height:300px;padding:26px}.step-0 .creation-visual{padding:20px}.upload-zone{min-height:350px;padding:23px 13px}.upload-zone h2{font-size:16px}.upload-art{height:70px;margin-bottom:12px}.upload-zone>.desktop-only{display:none}.upload-zone>.mobile-only{display:block}.creation-form{padding:28px 29px;min-height:330px}.creation-form h2{font-size:24px;margin:14px 0}.creation-form>p{font-size:12px}.creation-form .privacy-note{margin:22px 0 10px}.step-0 .creation-form h2 br,.step-0 .creation-form>p br{display:none}.step-0 .creation-form{min-height:0}.step-0 .creation-form h2{font-size:21px;line-height:1.7}.step-0 .creation-form>p{font-size:11px;line-height:2}.step-1 .creation-form>.btn{margin-top:22px}.step-1 .creation-form .gentle-note{padding:20px 0 0}.photo-focus>img{max-height:300px}.photo-focus-wrap{max-width:450px}.photo-paper-caption{margin-top:15px}.focus-controls .icon-btn{min-width:44px;min-height:44px}.step-2 .creation-visual{min-height:250px;padding:25px 35px}.step-2 .photo-focus>img{max-height:210px}.step-2 .creation-form{padding:28px}.step-2 .creation-form h2{font-size:23px}.step-2 textarea{font-size:16px;min-height:145px}.creation-form input,.creation-form select{font-size:14px;min-height:46px}.form-row input{max-width:100%}.creation-form .field-label{font-size:11px}.step-3 .creation-visual{height:400px}.preview-quote{bottom:24px;left:24px;right:24px}.preview-quote blockquote{font-size:13px;line-height:2}.step-3 .creation-form{min-height:350px}.step-3 .creation-form>.btn{margin-top:22px}.creation-bottom{padding:10px 0;gap:8px}.creation-bottom>span{font-size:8px}.creation-bottom>.text-button{font-size:10px}.desktop-only{display:none}.mobile-only{display:block}.storage-banner{flex-wrap:wrap;padding:11px 20px}}@media(max-width:480px){.hero{height:613px}.hero-copy{padding-left:25px;padding-right:20px}.hero h1{font-size:32px}.hero>.scene canvas{transform:translateY(84px)}.featured-invite{left:25px;right:25px;width:auto;bottom:51px}.featured-invite strong{font-size:16px}.invite-line{width:25px}.invite-bottom{gap:8px}.invite-bottom i{width:30px;height:30px}.hero-bottom-note{left:25px;right:25px}.hero-copy>p{font-size:11px;max-width:280px}.hero-actions{gap:16px}.hero-actions .btn{padding:12px 13px;font-size:10px;gap:6px}.memory-library{padding:28px 22px 15px}.library-heading h2{font-size:21px}.library-heading .eyebrow{font-size:7px;letter-spacing:1.6px}.library-heading h2 small{font-size:11px;gap:9px;padding-left:9px}.wander-button{font-size:8px;gap:5px}.location-chips{margin:0 -22px;padding:0 22px}.memory-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -22px;padding:0 22px 12px;gap:16px;scrollbar-width:thin;scrollbar-color:#c0cbb0 transparent}.memory-card{flex:0 0 258px;scroll-snap-align:start}.memory-card-image{height:169px}.memory-card h3{font-size:14px}.card-date{font-size:8px}.card-bottom>span:last-child{font-size:8px}.card-bottom .mini-avatars span{width:20px;height:20px;font-size:7px}.library-footer{margin-top:14px;padding-top:17px}.reader-scene{height:445px}.reader-scene-caption h1{font-size:22px;line-height:1.9}.reader-scene-top{font-size:8px}.reader-scene-actions button span{display:none}.reader-scene-caption p{font-size:9px}.perspective-panel{padding:30px 26px}.panel-header h2{font-size:24px}.perspective-tabs{gap:8px}.perspective-tabs button{padding:6px 11px}.photo-souvenir{width:60%}.reader-footer{gap:4px;padding-left:22px;padding-right:14px}.reader-footer>span:first-child{font-size:7px;max-width:175px;line-height:1.8}.reader-footer>div{gap:6px}.creation-main{padding:25px 16px}.creation-header{padding:0 18px}.creation-header>.brand small{font-size:6px}.creation-header>span{max-width:108px;font-size:7px;margin-right:4px}.creation-intro h1{font-size:23px}.creation-intro p{font-size:10px;padding:0 6px}.stepper{gap:7px}.stepper li{gap:4px;display:flex;flex-direction:column;flex:1;font-size:8px}.stepper li:last-child{flex:1}.stepper li:after{position:absolute;width:calc(100% - 24px);top:11px;left:calc(50% + 15px);margin:0}.stepper li>span{width:23px;height:23px}.stepper li>strong{font-size:8px;margin-top:3px}.stepper li:last-child:after{display:none}.creation-workspace{border-radius:6px}.creation-visual{padding:21px;min-height:280px}.creation-form{padding:26px 25px}.creation-form h2{font-size:23px}.step-0 .creation-visual{padding:15px}.upload-zone{min-height:345px}.upload-zone h2{font-size:14px}.upload-zone>p{font-size:9px}.sample-photo-button{font-size:8px;gap:8px}.step-2 .creation-form{padding:26px 22px}.step-2 .creation-form h2{font-size:22px}.creation-form .form-row{gap:9px;grid-template-columns:1fr 1.2fr}.creation-form input,.creation-form select{font-size:13px;padding:10px 9px}.creation-form .field-label{font-size:10px}.creation-form .field-label small{font-size:7px}.creation-bottom>span{font-size:7px}.creation-bottom>.text-button{font-size:10px}.focus-tip{font-size:8px;gap:5px}.focus-controls>span{display:none}.step-3 .creation-visual{height:355px}.step-3 .creation-form h2{font-size:22px}.modal-backdrop{padding:17px}.modal{padding:32px 26px 23px;max-height:calc(100dvh - 34px)}.modal h2{font-size:21px}.modal p{font-size:11px}.toast{bottom:calc(14px + env(safe-area-inset-bottom));padding-left:12px;font-size:10px;width:90vw}.creation-bottom{padding-bottom:calc(8px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero>.scene canvas{transform:none}.focus-marker,.souvenir-focus{transition:none}}.hero>.scene:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#19352ef2,#19352eac 27%,#19352e00 62%);pointer-events:none}@media(max-width:768px){.hero>.scene:after{background:linear-gradient(180deg,#19352ef2,#19352ed9 26%,#19352e08 64%,#19352e88)}}button,.place-nav button,.location-chips button,.preview-badge{min-height:44px}.search-field button,.focus-controls .icon-btn{min-width:44px;min-height:44px}@media(max-width:768px){.creation-form input,.creation-form select,.creation-form textarea{font-size:16px}.creation-header>.brand small{letter-spacing:1.8px}}.sidebar-family small,.side-section-title,.place-nav button>span:last-child,.family-note>small,.sidebar-foot,.library-heading .eyebrow,.card-date,.card-bottom>span:last-child,.library-footer,.creation-intro p,.form-step-label,.creation-form>p,.privacy-note small,.focus-tip,.focus-controls,.photo-paper-caption>span,.photo-paper-caption>i,.field-count,.field-label small,.preview-honesty,.panel-header p,.panel-header .eyebrow,.story-author,.story-author small,.photo-souvenir>small,.perspective-bottom>small,.reader-footer,.creation-header>span,.creation-bottom>span,.modal p,.subtle,.service-status{color:#637055}.search-field input::placeholder,.creation-form textarea::placeholder,.creation-form input::placeholder{color:#6d785e}@media(max-width:480px){.memory-grid{scroll-padding-inline:22px}.library-footer,.card-date{font-size:9px}.card-bottom>span:last-child{font-size:9px}}.motion-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 0;border-top:1px solid var(--line);font-size:12px;color:#5a704b}.motion-toggle span{font-size:9px;color:#7d886c}[data-reduced-motion=true] *,[data-reduced-motion=true] *:before,[data-reduced-motion=true] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.photo-souvenir img{height:auto;max-height:none;object-fit:contain}.scene-landmarks{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.scene-landmark{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;min-height:44px;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #d8c6a36b;border-radius:4px;background:#172e27e8;color:#e8dfc9;font-size:10px;white-space:nowrap;box-shadow:0 8px 25px #071c2433;transition:background .25s,border-color .25s,opacity .25s}.scene-landmark:after{content:"";position:absolute;width:1px;height:17px;background:linear-gradient(#d9bf8e99,transparent);left:50%;top:100%}.scene-landmark:hover,.scene-landmark.active{background:#d4bd8e;color:#203b30;border-color:#e5cfa2}.scene-landmark:active:not(:disabled){transform:translate(-50%,-100%)}.landmark-light{width:5px;height:5px;background:#efd3a0;border-radius:50%;box-shadow:0 0 10px #e4bc77}.scene-landmark.active .landmark-light{background:#315646;box-shadow:none}.scene-view-nav{position:absolute;top:61px;left:37px;right:37px;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:5;pointer-events:none}.scene-view-nav>span{display:flex;align-items:center;gap:7px;color:#ddd9be;font-size:10px;letter-spacing:.6px}.scene-view-nav i{width:4px;height:4px;border-radius:50%;background:#ddc18f;box-shadow:0 0 9px #ddc18f80}.scene-view-nav button{pointer-events:auto;display:flex;align-items:center;gap:7px;min-height:44px;color:#d8ddc7;background:#19352ec9;border:1px solid #a8b99940;border-radius:4px;padding:8px 12px;font-size:10px}.guided-scene:after{content:"";position:absolute;inset:50% 0 0;pointer-events:none;background:linear-gradient(transparent,#102c259c 70%,#102c25d9);z-index:1}.guided-scene .reader-scene-top,.guided-scene .reader-scene-caption,.guided-scene .reader-scene-actions{z-index:4}.guided-scene .reader-scene-caption{animation:memory-arrival 1.5s both;max-width:560px}.guided-scene .reader-scene-caption h1{font-size:29px;line-height:1.65;margin:11px 0}.guided-scene .reader-scene-caption blockquote{font-family:var(--serif);font-size:16px;line-height:1.95;color:#e0e2ce;margin:0;max-width:470px;overflow-wrap:anywhere;text-shadow:0 2px 12px #102d26}.guided-scene.is-close .scene-caption{display:none}.memory-tour{margin-top:25px;padding:17px 0 0;border-top:1px solid #dce0d1}.tour-intro{display:flex;align-items:center;gap:10px;color:#6d7d60;font-size:11px}.tour-intro>svg{color:#ac8b54}.tour-intro small{display:block;font-size:9px;color:#88907e;margin-top:5px}.tour-stops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:17px 0 14px}.tour-stops button{display:flex;align-items:flex-start;text-align:left;gap:6px;min-height:68px;padding:11px 7px;border:1px solid #dce0d1;border-radius:4px;background:#eeeee366}.tour-stops button>span{font-size:8px;color:#a6a58c;padding-top:2px}.tour-stops strong{font-size:11px;font-weight:500;color:#5a6d4c;line-height:1.6}.tour-stops small{font-size:8px;display:block;color:#7c876f;line-height:1.8;margin-top:3px;overflow-wrap:anywhere}.tour-stops button.active{background:#e3e8d8;border-color:#8c9e76;box-shadow:inset 0 -2px #a38e60}.tour-stops button.active>span,.tour-stops button.active small{color:#5f734e}.tour-controls{display:flex;align-items:center;gap:3px}.tour-play{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;flex:1;padding:10px 8px;border:1px solid #b8c1a7;background:#e6eadd;border-radius:4px;color:#355239;font-size:10px}.tour-controls .icon-btn{padding:8px;min-width:36px}.tour-progress{height:2px;background:#e0e3d5;margin-top:14px;overflow:hidden}.tour-progress span{height:100%;display:block;background:#b3935d;transition:width .1s linear}.tour-note{font-size:9px;color:#77836a;line-height:1.8;margin:10px 0 0;min-height:32px}.memory-tour+.perspective-tabs:empty{display:none}.memory-tour~.perspective-story{margin-top:20px}.family-response-prompt{font-family:var(--serif);font-size:12px;color:#69765c;line-height:1.9;margin:15px 0 8px}.prefers-still .reader-scene-caption,.prefers-still .perspective-story{animation:none}.prefers-still .tour-progress span{transition:none}@keyframes memory-arrival{0%,20%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.guided-scene.reader-scene{height:540px;min-height:540px}.scene-view-nav{left:27px;right:27px;top:54px;align-items:flex-start}.scene-view-nav>span{font-size:9px;padding-top:14px}.scene-view-nav button{font-size:9px;padding:7px 9px}.scene-landmark{font-size:9px;padding:7px 9px;gap:5px}.guided-scene .reader-scene-caption{left:27px;right:27px;bottom:94px;max-width:none}.guided-scene .reader-scene-caption h1{font-size:23px;line-height:1.65;margin:9px 0}.guided-scene .reader-scene-caption blockquote{font-size:13px;line-height:1.95;max-width:450px}.memory-tour{margin-top:23px;padding-top:18px}.tour-stops{gap:10px}.tour-stops button{min-height:70px;padding:12px}.tour-stops strong{font-size:12px}.tour-stops small{font-size:9px}.tour-play{font-size:11px}.tour-note{font-size:10px}.tour-controls .icon-btn{min-width:44px}}@media(prefers-reduced-motion:reduce){.guided-scene .reader-scene-caption{animation:none}.tour-progress span{transition:none}}.scene-family-tabs,.reader-scene-actions .scene-tour-play{display:none}.reader-scene-caption h1:focus{outline:none}@media(max-width:768px){.scene-family-tabs{position:absolute;z-index:5;top:109px;left:27px;right:27px;display:flex;justify-content:center;gap:7px}.scene-family-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:84px;padding:7px 12px;border:1px solid #c0c9ac47;background:#19352ed9;color:#e1e4d1;border-radius:24px;font-size:11px}.scene-family-tabs button>span{width:19px;height:19px;display:grid;place-items:center;color:#fff;font-size:8px;border-radius:50%}.scene-family-tabs button[aria-pressed=true]{background:#d4bd8e;color:#203b30;border-color:#e5cfa2}.reader-scene-actions .scene-tour-play{display:flex;background:#d4bd8e;color:#203b30;font-size:10px;border-color:#e5cfa2;justify-content:center;flex:1;max-width:180px}.guided-scene .reader-scene-actions>button:first-child{font-size:0;padding:10px;min-width:44px;justify-content:center}.guided-scene .reader-scene-actions>button:last-child{min-width:44px;justify-content:center}}.reader-shell{position:fixed;inset:0;overflow:hidden;background:#172b29}.reader-shell .reader-header{position:absolute;z-index:8;top:0;left:0;right:0;background:linear-gradient(#142622a8,transparent);border:0;padding:22px 30px;color:#fff3dd;pointer-events:none}.reader-shell .reader-header>*{pointer-events:auto}.reader-shell .reader-header .brand,.reader-shell .reader-header .text-button{color:#fff1d5}.reader-shell .reader-header .brand small{color:#e7d3b2}.reader-shell .reader-main{display:block;height:100%;min-height:0}.reader-shell .reader-scene{height:100%;min-height:0;border-radius:0}.reader-shell .reader-footer{display:none}.reader-shell .reader-scene-top{top:92px}.reader-shell .scene-view-nav{top:125px}.reader-shell .scene-family-tabs{inset:172px auto auto 28px;display:flex}.reader-shell .reader-scene-caption{bottom:105px;max-width:600px;pointer-events:none}.reader-shell .reader-scene-caption h1{font-size:clamp(23px,3vw,38px)}.reader-shell .reader-scene-actions{bottom:max(24px,env(safe-area-inset-bottom));left:28px;right:28px;display:flex;justify-content:flex-start;gap:9px;flex-wrap:wrap}.reader-shell .reader-scene-actions button{min-height:44px;background:#21372de0;color:#fff1d7;border:1px solid #ffffff33;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:12px}.reader-shell .modal-backdrop{z-index:20}.reader-shell .modal{max-height:calc(100dvh - 30px);overflow:auto}.reader-shell .perspective-panel{border:0;padding:0;background:transparent;overflow:visible;max-height:none}.reader-shell .panel-header{display:none}.reader-shell .reader-photo-overlay{z-index:12;inset:85px 20% 90px}@media(max-width:768px){.reader-shell .reader-header{padding:18px}.reader-shell .reader-header .preview-badge{display:none}.reader-shell .reader-scene-top{top:82px;left:20px}.reader-shell .scene-view-nav{top:113px;left:20px;right:20px}.reader-shell .scene-family-tabs{top:156px;left:20px;right:20px;width:auto}.reader-shell .reader-scene-caption{left:23px;right:23px;bottom:155px}.reader-shell .reader-scene-caption blockquote{font-size:14px;line-height:1.8}.reader-shell .reader-scene-actions{left:20px;right:20px;bottom:max(20px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:8px}.reader-shell .reader-scene-actions button{font-size:10px;justify-content:center;padding:10px 7px}.reader-shell .reader-photo-overlay{inset:85px 18px 135px}.reader-shell .modal{width:calc(100vw - 28px);max-height:calc(100dvh - 28px)}}.reader-shell .scene-family-tabs{position:absolute;z-index:5;gap:7px}.reader-shell .scene-family-tabs button{display:flex;align-items:center;gap:7px;min-height:44px;min-width:82px;padding:8px 12px;border:1px solid #ffffff38;background:#233b32dc;color:#fff2db;border-radius:24px;font-size:12px}.reader-shell .scene-family-tabs button>span{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;color:#fff;font-size:10px}.reader-shell .scene-family-tabs button[aria-pressed=true]{background:#d4bd8e;color:#203b30}.reader-shell .reader-scene-actions .scene-tour-play{display:flex;align-items:center;background:#d4bd8e;color:#203b30}@media(max-width:768px){.reader-shell .guided-scene .reader-scene-actions>button:first-child{font-size:11px;gap:6px}.reader-shell .reader-scene-actions button{font-size:11px}}.world-credit{font-size:11px;line-height:1.7;padding:12px 0;border-bottom:1px solid #d9ddcf;color:#647766}.world-credit small{display:block;margin-top:4px}.world-explore-hint{position:absolute;left:50%;top:110px;transform:translate(-50%);padding:10px 16px;border-radius:30px;background:#172c38d9;color:#eee4ce;font-size:12px;pointer-events:none;white-space:nowrap}.is-exploring .reader-scene-caption,.is-exploring .scene-view-nav,.is-exploring .scene-family-tabs{display:none}.is-exploring .scene-shade{opacity:.2}.reader-shell .reader-scene-actions button[aria-pressed=true]{background:#ddcda3;color:#233d35}@media(max-width:768px){.reader-shell:has(.world-explore-hint) .reader-scene-actions{grid-template-columns:1fr 1fr}.world-explore-hint{top:125px;font-size:10px}.reader-shell:has(.reader-scene-actions>button[aria-pressed]) .reader-scene-caption{bottom:205px}.is-exploring .scene-caption{bottom:205px}}.reader-shell .reader-header{background:linear-gradient(180deg,#10251ec9,transparent)}.reader-shell .reader-scene-top>span{background:#152c25aa;padding:6px 10px;border-radius:4px;color:#f4ecd9}.reader-shell .scene-view-nav>span{text-shadow:0 1px 6px #10251e}.reader-shell:has(.scene[data-mode=immersive]) .reader-scene-caption h1{font-size:clamp(22px,2.4vw,34px);line-height:1.4}.scene[data-mode=immersive] .scene-shade{opacity:.55}.reader-shell .reader-header .preview-badge{margin-right:62px}.reader-shell .reader-scene-caption{bottom:100px;max-width:min(600px,calc(100% - 64px))}.reader-shell .reader-scene-top{right:28px}.reader-shell .return-to-story{position:absolute;z-index:5;left:28px;bottom:max(28px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;background:#26372bd9;border:1px solid #fff4de44;border-radius:30px;color:#f4e6ce;font-size:12px}.reader-shell .scene-caption{bottom:90px;font-size:9px;opacity:.65}.reader-shell .world-explore-hint{animation:explore-hint-fade 7s forwards}.reader-shell .reader-photo-overlay{inset:90px 24px 100px}.reader-shell .space-actions{z-index:32}@keyframes explore-hint-fade{0%,60%{opacity:1}to{opacity:0}}@media(max-width:768px){.reader-shell .reader-header{padding-right:78px}.reader-shell .reader-scene-caption{left:23px;right:23px;bottom:100px;max-width:none}.reader-shell .reader-scene-caption h1{font-size:24px}.reader-shell .reader-scene-top{right:20px}.reader-shell .return-to-story{left:20px;bottom:max(22px,env(safe-area-inset-bottom))}.reader-shell .scene-caption{display:none}.reader-shell .reader-photo-overlay{inset:90px 18px 100px}}@media(prefers-reduced-motion:reduce){.reader-shell .world-explore-hint{animation:none}}.reader-shell:has(.space-actions.is-open) .reader-scene-caption,.reader-shell:has(.space-actions.is-open) .scene-view-nav,.reader-shell:has(.space-actions.is-open) .scene-landmarks{opacity:0}.reader-shell .reader-scene-caption{transition:opacity .2s}.reader-shell .reader-header>.text-button{min-height:44px;padding:0 12px;border-radius:24px;background:#26372b91;color:#fff4df;font-size:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.reader-shell:has(.space-actions.is-open) .reader-scene-caption,.reader-shell:has(.space-actions.is-open) .scene-view-nav,.reader-shell:has(.space-actions.is-open) .scene-landmarks{visibility:hidden}.memory-audio{position:absolute;z-index:8;left:28px;bottom:26px;display:flex;gap:8px;align-items:center}.memory-audio button{min-height:44px;display:flex;gap:8px;align-items:center;color:#f1e7d1;background:#21352dc2;border:1px solid #e6d2a233;border-radius:24px;padding:8px 14px;font-size:12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.old-room-story{font-family:Songti SC,STSong,SimSun,serif;line-height:2.1}.old-room-story p{margin:1em 0}@media(max-width:600px){.memory-audio{left:14px;bottom:88px;max-width:calc(100% - 28px)}.memory-audio button{font-size:11px}}.voice-recorder{margin:18px 0;padding:16px 0;border-top:1px solid #9ba99544;display:grid;gap:12px}.voice-recorder label{font-size:15px}.voice-recorder small{font-size:12px;line-height:1.7;opacity:.7}.voice-controls{display:flex;gap:8px;flex-wrap:wrap}.voice-controls button{min-height:44px;display:flex;align-items:center;gap:8px;border:1px solid #9ba99566;border-radius:8px;padding:8px 12px;background:transparent;color:inherit}.voice-recorder audio{max-width:100%;height:40px}.voice-recorder [role=alert]{color:#c68870;font-size:13px}
