:root{--ink: #3c4743;--ink-soft: #66726b;--paper: #fff3d9;--paper-2: #f5e1b5;--teal: #4d8267;--teal-d: #2f5a52;--rose: #c98188;--gold: #c89657;--edge: #7d6a48;--sans: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--pixel: "Press Start 2P", "Zpix", "Microsoft YaHei", monospace;font-family:var(--sans);font-size:16px;line-height:1.5;color:var(--ink);background:#b5d6cf;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#b5d6cf,#d9e6c9 55%,#efe0b5);background-attachment:fixed}#root{min-height:100vh}button,input,textarea{font:inherit;color:inherit}h1,h2,p{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:3px solid #e0a23c;outline-offset:2px}.shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;padding:20px;max-width:1500px;margin:0 auto}.shell[data-mode=play]{grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr)}.shell[data-mode=menu]{max-width:1180px;align-content:center}.stage{min-width:0}.game-frame{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#83bdb1;border:4px solid var(--edge);box-shadow:0 0 0 4px var(--paper),0 0 0 8px var(--edge),8px 12px 0 8px #3f5a5266}.game-host,.game-host canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.pixel-button{cursor:pointer;padding:10px 18px;border:3px solid var(--teal-d);background:var(--teal);color:#fff8e6;font-weight:700;letter-spacing:1px;box-shadow:0 4px 0 var(--teal-d),0 6px #0002;transition:transform .08s}.pixel-button:hover{background:#5b9578}.pixel-button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--teal-d)}.pixel-button.ghost{background:var(--paper);color:var(--teal-d)}.pixel-button.ghost:hover{background:#fff9ea}.title-screen{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;text-align:center;background:radial-gradient(ellipse at center,#fff3d9cc,#fff3d955 45%,#2f5a5233)}.title-kicker{font-family:var(--pixel);font-size:clamp(8px,1.3vw,13px);letter-spacing:4px;color:var(--teal-d)}.title-screen h1{font-family:var(--pixel);font-size:clamp(20px,4.6vw,52px);line-height:1.2;color:#fff3d9;text-shadow:3px 3px 0 var(--rose),6px 6px 0 var(--teal-d)}.title-screen h2{font-size:clamp(14px,2vw,22px);color:var(--teal-d);background:var(--paper);padding:4px 16px;border:3px solid var(--edge)}.title-menu{display:flex;flex-direction:column;gap:14px;margin-top:18px;min-width:min(280px,70%)}.hud{position:absolute;inset:12px 14px auto;display:flex;justify-content:space-between;align-items:center;gap:10px;pointer-events:none;font-family:var(--pixel);font-size:clamp(8px,1.1vw,12px);color:#fff3d9;text-shadow:2px 2px 0 var(--teal-d)}.hud-actions{display:flex;gap:8px}.hud button{pointer-events:auto;cursor:pointer;padding:6px 12px;border:2px solid var(--edge);background:var(--paper);color:var(--teal-d);font-weight:700;text-shadow:none}.quest-hud{position:absolute;z-index:3;top:14px;left:16px;display:flex;align-items:center;gap:12px;max-width:calc(100% - 250px);padding:8px 12px;border:3px solid var(--edge);background:#fff3d9e8;box-shadow:4px 4px #385f5588;color:var(--teal-d);font-weight:700}.quest-hud strong{flex:none;min-width:52px;padding:3px 7px;background:var(--rose);color:#fff8e6;text-align:center}.game-actions{position:absolute;z-index:3;top:14px;right:16px}.game-actions button{cursor:pointer;padding:8px 12px;border:3px solid var(--edge);background:var(--paper);color:var(--teal-d);font-weight:700;box-shadow:3px 3px #385f5577}.interaction-prompt{position:absolute;z-index:3;left:50%;bottom:24px;translate:-50% 0;cursor:pointer;min-width:220px;padding:10px 16px;border:3px solid #fff1c9;background:#385f55eb;color:#fff6dc;font-weight:700;box-shadow:4px 4px #263f3aaa}.mobile-controls{display:none}.garden-return{position:absolute;z-index:3;bottom:18px;left:50%;translate:-50% 0;white-space:nowrap}.overlay-panel{position:absolute;z-index:3;inset:8% 12%;display:flex;flex-direction:column;gap:12px;overflow:auto;padding:24px;background:var(--paper);border:4px solid var(--edge);box-shadow:0 0 0 4px var(--paper-2),8px 8px #3f5a5299}.overlay-panel h2{font-family:var(--pixel);font-size:clamp(14px,2.2vw,24px);color:var(--teal-d);line-height:1.4}.overlay-panel .eyebrow{font-size:11px;letter-spacing:3px;color:var(--rose);font-weight:700}.overlay-panel button{cursor:pointer;padding:10px 16px;border:3px solid var(--teal-d);background:var(--teal);color:#fff8e6;font-weight:700;box-shadow:0 3px 0 var(--teal-d)}.overlay-panel button.danger{background:#b9605f;border-color:#7e3b3b;box-shadow:0 3px #7e3b3b}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.memory-card{display:grid;place-items:center;min-height:64px;padding:8px;background:var(--paper-2);border:3px solid var(--gold);font-size:13px;text-align:center}.memory-card[data-locked=true]{color:#817a6d;background:#e8ddc6;border-style:dashed}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-block:2px dashed var(--gold)}.setting-row input{width:22px;height:22px;accent-color:var(--teal)}.setting-row input[type=range]{width:min(220px,54vw);height:24px}.dialogue-box{position:absolute;left:4%;right:4%;bottom:4%;z-index:5;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:14px 18px;background:var(--paper);border:4px solid var(--edge);box-shadow:6px 6px #3f5a5299}.dialogue-box strong{color:var(--rose)}.dialogue-box p{margin-top:6px;white-space:pre-line}.dialogue-box button{cursor:pointer;padding:6px 14px;border:3px solid var(--teal-d);background:var(--teal);color:#fff8e6;font-weight:700}.journal{display:flex;flex-direction:column;gap:14px;min-width:0;max-height:calc(100vh - 40px);overflow-y:auto;padding:18px;background:var(--paper);background-image:linear-gradient(#f5e1b5 1px,transparent 1px);background-size:100% 28px;border:4px solid var(--edge);box-shadow:0 0 0 4px var(--paper-2),8px 10px #3f5a5266}.journal-head span{font-family:var(--pixel);font-size:10px;letter-spacing:3px;color:var(--rose)}.journal-head h1{font-size:26px;color:var(--teal-d);margin-top:6px}.journal-head p{margin-top:4px;color:var(--ink-soft);font-size:13px}.journal-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.journal-tab{cursor:pointer;min-height:52px;padding:6px 8px;border:3px solid var(--edge);background:var(--paper-2);font-weight:700;line-height:1.25}.journal-tab span{display:block;font-family:var(--pixel);font-size:8px;color:var(--rose);margin-bottom:3px}.journal-tab[aria-selected=true]{background:var(--rose);border-color:#8d4f57;color:#fff8e6;box-shadow:0 3px #8d4f57}.journal-tab[aria-selected=true] span{color:#fff8e6}.story-page{display:flex;flex-direction:column;gap:12px}.photo-frame{margin:0;aspect-ratio:4 / 3;overflow:hidden;background:#fffaf0;border:4px solid var(--edge);box-shadow:0 0 0 4px #fffaf0,0 0 0 8px var(--gold),6px 8px 0 8px #3f5a5233}.photo-frame img{width:100%;height:100%;object-fit:cover;display:block}.photo-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:repeating-linear-gradient(45deg,#fff3d9 0 12px,#f8e8c6 12px 24px);color:var(--ink-soft)}.photo-heart{font-size:40px;color:var(--rose)}.photo-actions,.form-actions,.journal-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.story-region{font-size:12px;letter-spacing:3px;color:var(--ink-soft)}.story-body{white-space:pre-wrap;margin-bottom:14px}.story-form{display:flex;flex-direction:column;gap:10px}.story-form label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:14px}.story-form input,.story-form textarea{padding:8px 10px;border:3px solid var(--edge);background:#fffaf0;font-weight:400;resize:vertical}.counter{align-self:flex-end;color:var(--ink-soft)}.journal-message{font-size:13px;color:var(--teal-d);font-weight:700;width:100%}.journal-tools{padding-top:10px;border-top:3px dashed var(--gold)}.journey-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;border-top:3px dashed var(--gold)}.journey-nav .pixel-button{padding-inline:12px}.journey-finish{color:var(--rose);font-weight:700}@media(max-width:960px){.shell[data-mode=play]{grid-template-columns:minmax(0,1fr)}.journal{max-height:none}}@media(max-width:640px),(orientation:landscape)and (pointer:coarse){.shell{padding:8px;gap:14px}.game-frame{border-width:3px;box-shadow:0 0 0 3px var(--paper),0 0 0 6px var(--edge)}.overlay-panel{inset:4%;padding:14px}.memory-grid{grid-template-columns:1fr 1fr}.title-menu{gap:8px;margin-top:8px}.pixel-button{padding:8px 12px}.dialogue-box{flex-direction:column;align-items:stretch}.journal-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-nav{align-items:stretch;flex-direction:column}.journey-nav>*{width:100%;text-align:center}.quest-hud{top:8px;left:8px;max-width:172px;gap:5px;padding:5px 7px;border-width:2px;font-size:9px;line-height:1.25}.quest-hud strong{min-width:38px;padding:2px 4px}.game-actions{top:8px;right:8px;gap:4px}.game-actions button{padding:5px 6px;border-width:2px;font-size:9px}.interaction-prompt{display:none}.mobile-controls{position:absolute;z-index:3;inset:auto 10px 10px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}.dpad{position:relative;width:112px;height:112px;pointer-events:auto;touch-action:none}.joystick-base{position:absolute;inset:12px;border-radius:50%;background:#fff1c933;border:2px solid #fff1c966;pointer-events:none}.joystick-stick{position:absolute;top:40px;left:40px;width:32px;height:32px;border-radius:50%;border:2px solid #fff1c9;background:#5d826be6;box-shadow:2px 3px #263f3a99;pointer-events:none}.dpad-button,.interact-button{position:absolute;display:grid;place-items:center;width:38px;height:38px;padding:0;border:2px solid #fff1c9;background:#385f55dd;color:#fff6dc;box-shadow:2px 2px #263f3aaa;touch-action:none;-webkit-user-select:none;user-select:none}.dpad-up{top:0;left:37px}.dpad-left{top:37px;left:0}.dpad-right{top:37px;right:0}.dpad-down{bottom:0;left:37px}.interact-button{position:static;width:66px;height:66px;border-radius:50%;pointer-events:auto;background:#b96873e8;font-weight:700}.interact-button:disabled{opacity:.4}.garden-return{bottom:12px;padding:7px 9px;font-size:11px}.dialogue-box{z-index:5;bottom:3%;padding:10px;font-size:12px}}html,body,#root{width:100%;height:100%}body{overflow:hidden;overscroll-behavior:none}.shell{width:100%;height:var(--viewport-height, 100dvh);min-height:0;max-width:none;display:grid;place-items:center;padding:16px}.shell[data-mode=play]{grid-template-columns:minmax(0,1fr)}.stage{width:min(100%,calc((100dvh - 32px) * 16 / 9));height:auto;margin-inline:auto}.game-frame{width:100%;height:auto;aspect-ratio:16 / 9}.game-host{position:absolute;inset:0;overflow:hidden;touch-action:none}.game-host canvas{touch-action:none}.dialogue-box{left:50%;right:auto;width:min(92%,760px);translate:-50% 0}.game-actions button,.overlay-panel button,.dialogue-box button,.pixel-button{touch-action:manipulation}.shell[data-touch=true]{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.shell[data-touch=true] .stage{width:100%;height:100%}.shell[data-touch=true] .game-frame{height:100%;min-height:0;border-width:2px;aspect-ratio:auto;box-shadow:none}.shell[data-touch=true] .quest-hud{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));max-width:calc(100% - 116px);gap:6px;padding:7px 8px;border-width:2px;font-size:11px;line-height:1.25}.shell[data-touch=true] .quest-hud strong{min-width:44px;padding:4px 6px}.shell[data-touch=true] .game-actions{top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));gap:5px}.shell[data-touch=true] .game-actions button{min-width:44px;min-height:44px;padding:5px 8px;border-width:2px;font-size:11px}.shell[data-touch=true] .game-actions .fullscreen-button{display:none}.shell[data-touch=true] .mobile-controls{position:absolute;z-index:4;inset:auto max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:end;pointer-events:none}.shell[data-touch=true] .virtual-joystick{position:relative;width:clamp(116px,26vw,148px);aspect-ratio:1;border-radius:50%;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.shell[data-touch=true] .joystick-base{position:absolute;inset:5%;border-radius:50%;background:#263f3a66;border:2px solid #fff1c988;pointer-events:none}.shell[data-touch=true] .joystick-stick{position:absolute;top:50%;left:50%;width:40%;height:40%;border-radius:50%;border:2px solid #fff1c9;background:#5d826bf2;box-shadow:2px 3px #263f3a99;pointer-events:none}.shell[data-touch=true] .interact-button{position:static;width:72px;height:72px;min-width:64px;min-height:64px;border-radius:50%;pointer-events:auto;background:#a85f70f2;font-size:14px;font-weight:700}.shell[data-touch=true] .interact-button:disabled{opacity:.48}.shell[data-touch=true] .interaction-prompt{display:none}.shell[data-touch=true] .dialogue-box{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);max-height:42%;overflow:auto;flex-direction:column;align-items:stretch;gap:10px;padding:12px;font-size:13px}.shell[data-touch=true] .dialogue-box button{min-height:44px}.shell[data-touch=true] .overlay-panel{inset:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));padding:16px}.shell[data-touch=true] .overlay-panel button{min-height:44px}@media(max-width:480px)and (orientation:portrait){.shell[data-touch=true] .quest-hud{max-width:calc(100% - 110px);align-items:flex-start}.shell[data-touch=true] .quest-hud>span{max-height:2.5em;overflow:hidden}.shell[data-touch=true] .mobile-controls{inset-inline:12px}.shell[data-touch=true] .virtual-joystick{width:clamp(112px,31vw,132px)}.shell[data-touch=true] .interact-button{width:68px;height:68px}}@media(orientation:landscape)and (pointer:coarse){.shell[data-touch=true] .quest-hud{max-width:42%}.shell[data-touch=true] .mobile-controls{inset-inline:max(22px,env(safe-area-inset-left)) max(22px,env(safe-area-inset-right))}.shell[data-touch=true] .virtual-joystick{width:clamp(104px,18vh,132px)}.shell[data-touch=true] .interact-button{width:64px;height:64px}}.shell .game-frame:fullscreen{width:100vw;height:100dvh;border:0;aspect-ratio:auto;box-shadow:none}.game-frame::backdrop{background:#213b35}.shell[data-device=phone] .game-actions .fullscreen-button{display:block}.shell[data-device=phone][data-orientation=portrait] .quest-hud{max-width:calc(100% - 178px)}.shell[data-device=phone][data-orientation=landscape] .quest-hud{max-width:42%}.shell[data-device=phone][data-orientation=landscape] .mobile-controls{inset-inline:max(22px,env(safe-area-inset-left)) max(22px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}.shell[data-device=phone][data-orientation=landscape] .virtual-joystick{width:clamp(100px,27vh,120px)}.shell[data-device=phone][data-orientation=landscape] .interact-button{width:64px;height:64px}.shell[data-device=phone][data-orientation=landscape] .title-screen{gap:6px;padding:10px 16px}.shell[data-device=phone][data-orientation=landscape] .title-screen h1{font-size:clamp(22px,4vw,36px)}.shell[data-device=phone][data-orientation=landscape] .title-screen h2{font-size:14px}.shell[data-device=phone][data-orientation=landscape] .title-menu{gap:8px;margin-top:6px}.shell[data-device=phone][data-orientation=landscape] .title-menu .pixel-button{min-height:44px;padding:6px 14px}.landscape-hint{position:absolute;z-index:4;left:50%;bottom:max(152px,calc(env(safe-area-inset-bottom) + 142px));transform:translate(-50%);display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;width:min(310px,calc(100% - 28px));padding:12px;border:2px solid #64755e;background:#f9f0dfee;color:#344d42;box-shadow:3px 4px #243e3a55;font-size:12px}.landscape-hint-icon{font-size:27px;line-height:1.1;align-self:center;color:#607f63}.landscape-hint-copy strong{display:block;margin-bottom:3px;font-size:15px}.landscape-hint-copy p{line-height:1.5}.landscape-hint-actions{grid-column:1 / -1;display:flex;gap:8px}.landscape-hint-actions button{flex:1;min-height:44px;padding:6px 8px;border:2px solid #456750;background:#557a5d;color:#fff6e2;font-size:12px;touch-action:manipulation}.landscape-hint-actions .landscape-hint-dismiss{background:transparent;color:#456750;border-color:#a9b29a}.shell[data-device=phone][data-orientation=landscape] .pause-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px 10px;padding:14px}.shell[data-device=phone][data-orientation=landscape] .pause-menu>.eyebrow,.shell[data-device=phone][data-orientation=landscape] .pause-menu>h2,.shell[data-device=phone][data-orientation=landscape] .pause-menu>button:first-of-type{grid-column:1 / -1}.shell[data-device=phone][data-orientation=landscape] .pause-menu>button{padding:6px 10px}html,body,#root{width:100%;height:100%;min-height:100%;overflow:hidden}.shell,.shell[data-mode=play],.shell[data-mode=menu]{display:block;width:100%;height:100dvh;max-width:none;margin:0;padding:0}.stage{width:100%;height:100%}.shell .game-frame{width:100%;height:100%;aspect-ratio:auto;border:0;box-shadow:none;background:#15283a}.game-host{position:absolute;inset:0}.game-host canvas{max-width:100%;max-height:100%}.world-help{position:absolute;bottom:18px;left:20px;z-index:2;color:#fff3d9;font-size:11px;letter-spacing:1px;background:#253e4488;padding:6px 10px;pointer-events:none}.garden-actions{position:absolute;z-index:3;left:50%;bottom:24px;transform:translate(-50%);display:flex;gap:12px;white-space:nowrap}.overlay-panel{position:fixed;z-index:15;inset:max(24px,5vh) max(24px,calc((100vw - 1180px)/2));max-height:90dvh}.pause-menu,.settings-panel{max-width:460px;margin:auto;height:fit-content}.journal-modal{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;gap:14px;overflow-y:auto;padding:26px;background:#122334e8}.journal-modal .journal{max-height:none;width:min(640px,100%);overflow:visible;flex:none}.journal-close{position:sticky;top:0;z-index:2}.archive-label{font:10px/1.5 var(--pixel);letter-spacing:2px;color:#956c70}.memory-book{background:#f5efdf;color:#394d4a;border-color:#514e43;padding:clamp(18px,3vw,40px);gap:22px}.archive-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:20px;border-bottom:2px dashed #c5b99a}.archive-header h2{font-family:var(--sans);font-size:clamp(23px,3vw,34px);letter-spacing:2px;margin-block:5px}.archive-header p:last-child{font-size:12px;color:#7b7b6a}.memory-book .memory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.memory-book .memory-card{display:flex;flex-direction:column;align-items:stretch;justify-content:start;padding:12px;border:1px solid #d5cbb5;background:#fffcf4;text-align:left;box-shadow:4px 4px #d5cbb566}.memory-number{font:9px/1.4 var(--pixel);letter-spacing:2px;color:#a98b66;padding-bottom:9px}.archive-photo{position:relative;display:grid;place-items:center;height:clamp(115px,14vw,180px);background:#d9e5d9;overflow:hidden;margin-bottom:10px}.archive-photo img{position:absolute;width:100%;height:100%;object-fit:cover}.memory-art{width:100px;height:100px;image-rendering:pixelated;flex:none}.memory-card h3{margin:0 0 3px;font-size:17px;color:#3b5650}.memory-location{font-size:11px;color:#a07b69}.archive-description{font-size:12px;line-height:1.8;margin:10px 0 16px;flex:1;white-space:pre-wrap}.archive-card-actions{display:flex;flex-wrap:wrap;gap:6px}.memory-book .archive-card-actions button{padding:6px 8px;border-width:1px;box-shadow:none;font-size:11px}.memory-book .archive-card-actions button:last-child{background:transparent;color:#547467}.memory-card[data-locked=true]{opacity:.7;background:#e7e6dd}.memory-card[data-locked=true] .archive-photo{background:#c5cac4}.memory-card[data-locked=true] .memory-art{opacity:.45;filter:blur(2px)}.locked-question{position:absolute;font:36px var(--pixel);color:#fdf9e9;text-shadow:3px 3px #61706c}.badge-collection{padding-top:16px;border-top:2px dashed #c5b99a}.badge-collection ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:16px 0 0}.badge-collection li{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid #c8b884;background:#ebdfb8}.badge-medal{display:grid;place-items:center;flex:none;width:44px;height:44px;border:3px solid #9b7547;outline:2px solid #e0b774;outline-offset:-6px;background:#eac980;color:#895a57;font-size:21px;clip-path:polygon(20% 0,80% 0,100% 20%,100% 80%,80% 100%,20% 100%,0 80%,0 20%)}.badge-collection li[data-unlocked=false]{filter:grayscale(1);opacity:.5}.badge-collection small,.badge-collection em{display:block;font-size:9px;font-style:normal;color:#8c795e}.badge-collection strong{font:9px var(--pixel);color:#766147}.memory-editor{display:flex;flex-direction:column;gap:12px;width:min(660px,100%);margin-inline:auto}.memory-editor h3{margin:0}.memory-editor label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.memory-editor textarea{border:2px solid #9cac91;background:#fffcf4;padding:10px;resize:vertical}.memory-editor small{font-size:11px;color:#7a816f}.editor-preview{max-width:220px;max-height:140px;object-fit:cover}.editor-actions{display:flex;gap:12px;margin-bottom:10px}.memory-reveal,.ending-reveal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;isolation:isolate;overflow-y:auto;padding:36px 20px 24px;color:#f6e8d1}.reveal-veil{position:fixed;inset:0;background:#101e2cdb;z-index:-1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.reveal-skip{position:fixed;top:18px;right:24px;z-index:2;padding:7px 13px;border:1px solid #b6ad8a77;background:#172832;color:#d9d2b6;cursor:pointer;font-size:12px}.memory-stage{width:min(940px,94vw);display:flex;flex-direction:column;align-items:center;gap:20px}.reveal-object{display:flex;align-items:center;justify-content:center;gap:10px;color:#f0dba6;font-size:12px;letter-spacing:4px;filter:drop-shadow(0 0 22px #ffe5ab99)}.reveal-object .memory-art{width:64px;height:64px}.film-frame{display:flex;width:100%;border:2px solid #a69c7e;box-shadow:0 25px 100px #0008;background:#172321}.film-perforations{width:28px;flex:none;background:repeating-linear-gradient(0deg,transparent 0 12px,#d9ceb0 12px 25px,transparent 25px 38px);margin:14px 9px;opacity:.8}.film-body{display:grid;grid-template-columns:1fr 1fr;flex:1;background:#f4edde;margin-block:16px;min-width:0}.developing-photo{min-height:320px;overflow:hidden;background:#dde2d1}.developing-photo>img{width:100%;height:100%;max-height:430px;display:block;object-fit:cover}.memory-photo-placeholder{height:100%;min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;background:radial-gradient(ellipse at 50% 40%,#e9dcb5,#9fb8a4);color:#3c6156}.memory-photo-placeholder .memory-art{width:128px;height:128px}.memory-photo-placeholder span{font-size:14px;letter-spacing:2px}.memory-photo-placeholder small{font-size:10px;opacity:.7}.film-caption{display:flex;flex-direction:column;padding:32px;color:#405449}.film-caption h2{font-size:clamp(24px,3vw,34px);letter-spacing:3px;margin:9px 0 20px}.memory-dialogue{min-height:115px;white-space:pre-wrap;font-size:15px;line-height:1.9;flex:1}.reveal-badge{display:flex;align-items:center;gap:12px;padding-top:20px;margin-top:16px;border-top:1px solid #d1c3a3}.reveal-badge small,.reveal-badge strong{display:block}.reveal-badge small{font-size:9px;letter-spacing:2px;color:#ad8663}.reveal-badge strong{font:13px/2 var(--pixel);letter-spacing:1px;color:#7d6848}.reveal-continue{min-width:190px}button:disabled{opacity:.45;cursor:wait}.ending-reveal{background:#101a2ce8;text-align:center}.ending-spark{position:absolute;width:3px;height:3px;border-radius:50%;background:#f4dba7;opacity:.3;pointer-events:none;animation-name:ending-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes ending-drift{to{transform:translate3d(8px,-13px,0);opacity:.68}}.ending-content{display:flex;align-items:center;flex-direction:column;gap:28px;width:min(760px,94vw)}.confession-lines{display:flex;flex-direction:column;gap:20px;font-size:clamp(14px,2vw,21px);line-height:1.8;letter-spacing:1px}.ending-heart{font-size:54px;color:#ddb1af;text-shadow:0 0 35px #ddb1af77}.ending-content h1{font:clamp(18px,4vw,36px)/1.8 var(--pixel);color:#f8e5be}.ending-content h2{font:clamp(14px,3vw,24px)/1.8 var(--pixel);color:#ddacac;letter-spacing:4px}.ending-footer{font:12px/2 var(--pixel);letter-spacing:4px;color:#a8b9c0;padding-bottom:25px}@media(max-width:900px){.memory-book .memory-grid,.badge-collection ol{grid-template-columns:repeat(2,minmax(0,1fr))}.film-caption{padding:22px}}@media(max-width:640px){.overlay-panel{inset:58px 12px 20px;max-height:none;padding:18px}.archive-header{flex-direction:column;align-items:stretch;gap:12px}.archive-header h2{font-size:23px}.archive-header>button{font-size:12px;padding:7px}.memory-book .memory-grid{gap:10px}.memory-book .memory-card{padding:8px}.archive-photo{height:112px}.memory-card h3{font-size:15px}.archive-description{font-size:11px}.badge-collection ol{gap:8px}.badge-collection li{padding:7px;gap:6px}.badge-collection strong{font-size:7px}.badge-medal{width:34px;height:34px;font-size:16px}.world-help{display:none}.garden-actions{bottom:145px;gap:10px;flex-direction:column;align-items:center}.garden-actions .pixel-button{font-size:11px}.memory-reveal,.ending-reveal{padding:54px 12px 24px}.memory-stage{width:100%;gap:12px}.reveal-object .memory-art{height:42px;width:42px}.film-perforations{width:10px;margin-inline:5px;background-size:auto 27px}.film-body{grid-template-columns:1fr;margin-block:9px}.developing-photo{min-height:170px;height:180px}.developing-photo>img{max-height:none}.memory-photo-placeholder{min-height:170px;gap:4px}.memory-photo-placeholder .memory-art{width:85px;height:85px}.memory-photo-placeholder small{font-size:9px}.film-caption{padding:17px}.film-caption h2{font-size:22px;margin-block:5px 12px}.memory-dialogue{font-size:13px;min-height:85px}.reveal-badge{padding-top:12px;margin-top:9px}.reveal-badge strong{font-size:11px}.reveal-skip{top:12px;right:12px}.ending-content{gap:22px}.confession-lines{gap:15px;font-size:14px}.journal-modal{padding:14px}}@media(max-height:560px)and (min-width:641px){.memory-stage{gap:8px;width:min(840px,90vw)}.reveal-object{display:none}.developing-photo,.memory-photo-placeholder{min-height:240px}.film-caption{padding:20px}.memory-dialogue{min-height:75px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important}}.archive-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.archive-photo.photo-open{width:100%;padding:0;border:0;color:inherit;cursor:zoom-in}.photo-count{position:absolute;inset:auto 0 0;padding:5px 7px;color:#fff8e8;background:#1c292bcc;font-size:10px;text-align:center}.developing-photo{width:100%;padding:0;border:0;color:inherit;cursor:zoom-in}.photo-viewer{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(50px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));background:#111820f2}.photo-viewer-image-button{display:grid;place-items:center;width:min(88vw,1040px);height:min(82dvh,900px);overflow:auto;padding:10px;border:2px solid #b9a77d;background:#161f25;cursor:zoom-in}.photo-viewer-image{display:block;width:100%;height:100%;object-fit:contain;transition:transform .2s ease}.photo-viewer-image.is-zoomed{transform:scale(1.55);cursor:zoom-out}.photo-viewer-close,.photo-viewer-nav{position:absolute;z-index:1;display:grid;place-items:center;border:2px solid #d8c9a5;background:#2e4647;color:#fff8e8;cursor:pointer}.photo-viewer-close{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:44px;aspect-ratio:1;font-size:27px}.photo-viewer-nav{top:50%;width:48px;aspect-ratio:1;font-size:32px;transform:translateY(-50%)}.photo-viewer-prev{left:max(12px,env(safe-area-inset-left))}.photo-viewer-next{right:max(12px,env(safe-area-inset-right))}.photo-viewer-caption{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));margin:0;color:#f2e7d3;font-size:13px}.ending-date,.ending-address{margin:0;color:#e4cfaa}.ending-title{margin:0;color:#f1e4c9;font:20px/1.6 var(--sans)}.ending-editor{display:flex;flex-direction:column;gap:12px;width:min(660px,100%);margin-inline:auto}.ending-editor h2{margin:0;font-size:23px}.ending-editor label{display:flex;flex-direction:column;gap:6px;color:#44564d;font-size:12px;font-weight:700}.ending-editor input,.ending-editor textarea{width:100%;min-width:0;border:1px solid #aaa184;background:#fffcf4;padding:9px 10px;color:#344b47;font:14px/1.6 var(--sans)}.ending-editor textarea{resize:vertical}.ending-editor-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:640px){.archive-header-actions{width:100%}.archive-header-actions button{flex:1}.photo-viewer{padding-inline:8px}.photo-viewer-image-button{width:min(86vw,640px);height:min(76dvh,820px);padding:6px}.photo-viewer-nav{width:42px}.photo-viewer-prev{left:max(7px,env(safe-area-inset-left))}.photo-viewer-next{right:max(7px,env(safe-area-inset-right))}.ending-editor-pair{grid-template-columns:1fr;gap:10px}}.environment-hud{position:absolute;z-index:3;top:66px;left:18px;display:flex;align-items:center;gap:10px;min-height:36px;padding:5px 10px;border:2px solid #59635e;background:#eee5d4ec;color:#405655;font:12px/1.4 var(--sans);box-shadow:2px 3px #20383b66;cursor:pointer;touch-action:manipulation}.environment-settings{min-width:0;border:1px solid #baaf96;padding:8px 12px;margin:0}.environment-settings legend{font-weight:700;color:#405655;padding:0 6px;font-size:14px}.environment-settings .setting-row{border:0;padding:6px 0;gap:12px}.environment-settings select{min-width:140px;min-height:44px;padding:5px 10px;border:2px solid #809181;background:#faf3e3;color:#405655;font:inherit}.environment-settings p{font-size:11px;line-height:1.7;color:#6e796d;margin:8px 0 2px}.shell[data-touch=true] .environment-hud{top:max(70px,calc(env(safe-area-inset-top) + 64px));left:max(8px,env(safe-area-inset-left));min-height:44px;font-size:11px}@media(max-width:640px){.environment-hud{top:61px;left:8px}}.memory-photo-panel{position:relative;display:flex;min-width:0}.memory-slideshow-toolbar,.photo-viewer-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 12px;padding:4px 10px;background:#172832e8;color:#f2e7d3;font-size:12px}.memory-slideshow-toolbar{position:absolute;inset:auto 0 0;justify-content:space-between}.slideshow-toggle{min-height:44px;min-width:88px;padding:6px 12px;border:1px solid #b9a77d;background:#2e4647;color:#fff8e8;font:inherit;cursor:pointer;touch-action:manipulation}.photo-viewer-toolbar{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));width:fit-content;max-width:calc(100% - 16px);margin-inline:auto}.photo-viewer-toolbar .photo-viewer-caption{position:static;margin:0;font-size:12px}.slideshow-note{font-size:11px;opacity:.8}@media(prefers-reduced-motion:reduce){.memory-photo-panel .developing-photo>img,.photo-viewer-image{animation:none;transition:none}}.photo-viewer-image-button{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.photo-viewer-image{min-width:0;min-height:0}.memory-photo-panel .developing-photo{position:relative}@media(orientation:landscape)and (max-height:560px){.memory-stage{gap:8px;width:min(840px,90vw)}.reveal-object{display:none}.film-body{grid-template-columns:1fr 1fr;margin-block:10px}.developing-photo,.memory-photo-placeholder{min-height:clamp(170px,calc(100dvh - 160px),240px);height:auto}.film-caption{padding:12px 16px}.film-caption .archive-label{margin:0}.film-caption h2{font-size:23px;margin:4px 0 8px}.memory-dialogue{min-height:44px;margin:0;font-size:13px;line-height:1.65}.reveal-badge{padding-top:8px;margin-top:8px}}.photo-viewer{padding-bottom:max(70px,env(safe-area-inset-bottom))}.photo-viewer-image-button{height:min(82dvh,calc(100dvh - 108px),900px)}.slideshow-photo{--film-entry: -24px;--film-tilt: -7deg;position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;isolation:isolate;animation:memory-film-enter .58s cubic-bezier(.2,.7,.25,1) both}.slideshow-photo[data-side=right]{--film-entry: 24px;--film-tilt: 7deg}.slideshow-photo[data-zoomed=true]{overflow:visible}.slideshow-photo>img{display:block;width:100%;height:100%;min-width:0;min-height:0;max-height:none;object-fit:contain}.slideshow-light-leak{position:absolute;inset:0;pointer-events:none;background:linear-gradient(108deg,transparent 24%,#edba7040 44%,#fff0c85c 50%,#edba702e 58%,transparent 76%);opacity:0;animation:memory-light-sweep .64s ease-out both}.memory-photo-panel .developing-photo>.slideshow-photo{position:absolute;inset:0}.memory-photo-panel.has-slideshow .developing-photo>.slideshow-photo{height:calc(100% - 52px)}@keyframes memory-film-enter{0%{opacity:.15;clip-path:inset(8% 0 6% 0);transform:perspective(900px) translate(var(--film-entry)) rotateY(var(--film-tilt)) scale(.97)}60%{opacity:1;clip-path:inset(0);transform:perspective(900px) translate(0) rotateY(0) scale(1.006)}to{opacity:1;clip-path:none;transform:none}}@keyframes memory-light-sweep{0%{opacity:0;transform:translate(-100%)}25%{opacity:.65}to{opacity:0;transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.slideshow-photo,.slideshow-light-leak{animation:none}.slideshow-light-leak{display:none}}:root{--ink: #39494a;--ink-soft: #70817a;--paper: #ede4d1;--paper-2: #d7c9ad;--teal: #537b75;--teal-d: #344e51;--rose: #bd8190;--gold: #d1b685;--edge: #56605b;--sans: "Microsoft YaHei", "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--pixel: "Courier New", "Microsoft YaHei", monospace;font-size:16px;color-scheme:light}body{background:#283b46}.game-frame{background:#344955}.title-screen{background:linear-gradient(180deg,#1e2a3538,#26363c18 38%,#172b32b8),url(../assets/maps/title-dusk.png) center / cover;color:#f3e4c6}.title-screen:before{position:absolute;inset:0;z-index:-1;content:"";background:linear-gradient(180deg,#17283200 28%,#17283275);pointer-events:none}.title-kicker{color:#e4cfaa;text-shadow:2px 2px #34494e}.title-screen h1{color:#f4e7c8;font-size:clamp(20px,4.6vw,50px);text-shadow:2px 3px 0 #876974,4px 5px 0 #344950}.title-screen h2{color:#435a59;background:#eee3cabf;border-color:#665e58;box-shadow:3px 3px #26383c}.pixel-button,.overlay-panel button{border:2px solid #53605c;background:#587b74;box-shadow:0 3px #364d4c,3px 4px #26383b80;color:#f7edd6;letter-spacing:0;transition:filter .12s ease,transform .12s ease}.pixel-button:hover,.overlay-panel button:hover{filter:brightness(1.12);transform:translateY(-1px)}.pixel-button.ghost{color:#435959;background:#e8dbc2}.opening-skip{position:absolute;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));padding:7px 11px;border:1px solid #e6d3b9;background:#283b46b8;color:#f2e6cf;cursor:pointer}.quest-hud,.game-actions button,.dialogue-box,.overlay-panel{border-color:#59635e;box-shadow:3px 4px #20383b88}.quest-hud{background:#eee5d4ed;color:#405655}.quest-hud strong{background:#af7685}.game-actions button{background:#e8ddc7;color:#405655}.interaction-prompt{background:#344f50f2;border-color:#e6d4ae;box-shadow:3px 4px #23383a}.dialogue-box,.overlay-panel{background:#eee5d5}.dialogue-box strong,.overlay-panel .eyebrow{color:#a96e7d}.overlay-panel button.danger{background:#a85f64;border-color:#78454a;box-shadow:0 3px #78454a}.memory-book{background:#e9dfcb;color:#394d4d;border-color:#58615a}.memory-book .memory-card{border-color:#bcae94;background:#f2ead8;box-shadow:3px 3px #b7aa9270}.memory-book .archive-photo{background:#bdc5b2;border-bottom:3px solid #b8a990}.badge-collection li{background:#d6c8a9;border-color:#ad9d79}.badge-medal{border-color:#927a55;background:#dfc58f;outline-color:#f0dfb7}.film-frame{border-color:#94836f;box-shadow:0 16px 52px #101d24a0;background:#27383b}.film-body{background:#e9dfcc}.reveal-continue{background:#587b74}.ending-reveal{background:#17242ff2}.ending-content h1{color:#f1e4c9}.ending-content h2{color:#d5a3a3}.game-frame{border-color:#59635e;box-shadow:0 0 0 3px #eee5d4,0 0 0 6px #59635e,8px 12px 0 8px #17283255}.photo-frame,.film-frame{image-rendering:pixelated}@media(max-width:640px){.opening-skip{top:10px;right:10px;font-size:11px}.quest-hud,.game-actions button{box-shadow:2px 2px #20383b88}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
