:root{color-scheme:dark;font-family:"Segoe UI",system-ui,sans-serif;color:#fff0dc;background:#1d1529;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait;opacity:.7}[hidden]{display:none!important}
button:focus-visible,video:focus-visible{outline:2px solid #ffe5b6;outline-offset:4px}button{touch-action:manipulation}#garden{height:100dvh;width:100%;position:relative;overflow:hidden;background:#21152f}#world{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;outline:none;user-select:none;-webkit-user-select:none}#world:focus-visible{outline:2px solid #f9cc9c;outline-offset:-4px}
.hud{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(16px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 20px max(20px,env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#191126b3,transparent)}.hud-actions{display:flex;gap:8px;pointer-events:auto;margin-left:auto}.hud button{min-width:44px;min-height:44px;border:1px solid #e9c5a433;border-radius:3px;background:#21152f66;padding:8px 12px;backdrop-filter:blur(4px);font-size:12px}#new-garden{font-size:24px;padding:0 10px}.hud button:hover{background:#4c2c4966}
.welcome{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;background:#1c10222b}.welcome-copy{padding:40px 24px;margin-top:5vh;text-shadow:0 2px 0 #23162f,0 2px 20px #170f2b;background:radial-gradient(ellipse,#21152fa6,transparent 70%)}.welcome-kicker{font-size:13px;letter-spacing:.04em;color:#fbc4a1;margin:0 0 15px}.welcome h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(42px,7vw,72px);font-weight:400;line-height:1.07;letter-spacing:-.04em;margin:0 0 20px}.welcome-copy>p:not(.welcome-kicker){line-height:1.6;color:#ffe6d4;font-size:15px;margin:0 0 28px}#start{min-height:48px;border:1px solid #ffe6c6;background:#ffe4c3;color:#432539;border-radius:2px;padding:13px 28px;font-size:14px;box-shadow:3px 4px 0 #4c253f;transition:transform .15s}#start:hover{background:#fff0d9;transform:translateY(-2px)}
.walking-hint{position:absolute;bottom:calc(24px + env(safe-area-inset-bottom));left:20px;right:20px;text-align:center;font-size:12px;line-height:1.5;color:#f7dfd4;text-shadow:0 1px 5px #100b21;pointer-events:none;transition:opacity 1s}.walking-hint.faded{opacity:0}.touch-hint{display:none}@media(pointer:coarse){.touch-hint{display:inline}.keyboard-hint{display:none}}
.joystick{position:fixed;z-index:3;width:90px;height:90px;border:1px solid #ffe1d466;border-radius:50%;background:#f6b2c00a;transform:translate(-50%,-50%);pointer-events:none}.joystick span{position:absolute;width:28px;height:28px;left:30px;top:30px;border:1px solid #ffd9cdbb;background:#ffe5d338;border-radius:50%;box-shadow:0 0 18px #ffc5d41a}
#gift-dialog{border:0;padding:0;margin:auto;background:transparent;color:#fff0dc;width:100vw;height:100dvh;max-width:none;max-height:none;overflow-y:auto;overscroll-behavior:contain}#gift-dialog::backdrop{background:#090610d9}.gift-toolbar{position:relative;z-index:5;width:min(620px,100%);margin:auto;padding:calc(12px + env(safe-area-inset-top)) 16px 0}.gift-toolbar button{min-height:44px;padding:10px 12px;background:#24162399;border:1px solid #e4bdcf33;border-radius:3px;font-size:12px}#gift-title{text-align:center;font:400 clamp(21px,4vw,28px)/1.2 Georgia,serif;margin:12px 20px 0;color:#ffe8db}#gift-stage{position:relative;width:min(560px,calc(100% - 24px));height:min(650px,calc(100dvh - 180px));min-height:250px;margin:0 auto;line-height:0}#gift-canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.art-button{position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px;background:transparent;border:0;padding:0;z-index:2}#open-chest:hover{filter:drop-shadow(0 0 8px #ffb1db)}#note-trigger:hover{outline:1px solid #ffe4ba;box-shadow:0 0 15px #ffa4cc55}#gift-hint{text-align:center;font-size:12px;line-height:1.5;color:#cbb4c2;position:relative;margin:8px 18px 24px}
#video-card{position:absolute;z-index:4;box-sizing:border-box;display:grid;place-items:center;width:min(420px,calc(100% - 24px));aspect-ratio:3/2;left:50%;transform:translateX(-50%);background:#fff1e1;border:2px solid #d5b58f;box-shadow:0 0 0 1px #806044,3px 4px 0 #0006;line-height:1;transform-origin:center center}#video-slot{width:60%;aspect-ratio:1;background:#f1dfd2}#video-slot video{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:cover;border:0;background:#f1dfd2}.letter-opening #video-slot{opacity:0}.letter-open #gift-canvas{opacity:0;transform:translateY(10px) scale(.94)}
.envelope{position:absolute;background:#f1d4c6;border:2px solid #b7897d;box-shadow:2px 3px 0 #48273566;isolation:isolate;line-height:1;overflow:visible;transform:translate(-50%,-50%) rotate(-7deg)}.envelope::before,.envelope::after{content:"";position:absolute;inset:0;pointer-events:none}.envelope::before{background:#e8bfb4;clip-path:polygon(0 0,51% 55%,100% 0,100% 100%,0 100%);z-index:-1}.envelope::after{background:#f8e2d2;clip-path:polygon(0 100%,50% 44%,100% 100%);z-index:-1}.envelope-flap{position:absolute;inset:0;background:#fff0de;clip-path:polygon(0 0,100% 0,50% 55%);filter:drop-shadow(0 1px #c99b8c);pointer-events:none}.envelope-label{position:absolute;left:0;right:0;bottom:6px;text-align:center;font:bold 11px/1.15 "Courier New",monospace;color:#37232c;letter-spacing:-.3px;pointer-events:none}#note-trigger{min-width:104px;min-height:50px;background:#f1d4c6;border:2px solid #b7897d;transform:translate(-50%,-50%) rotate(-7deg)}#note-trigger:hover{outline:1px solid #fff0de;box-shadow:0 0 18px #ffa4cc44,2px 3px 0 #48273566}#letter-shell{z-index:5;pointer-events:none}#letter-shell::before{clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(max-height:500px){.welcome-copy{padding:8px 24px;margin:0}.welcome h1{font-size:38px;margin-bottom:10px}.welcome-copy>p:not(.welcome-kicker){margin-bottom:12px}.welcome-kicker{margin-bottom:8px}.gift-toolbar{position:absolute;top:0;left:0;padding:8px}#gift-title{margin:12px 70px 0}#gift-stage{height:calc(100dvh - 88px);min-height:180px;width:min(500px,70vw)}#video-card{width:min(330px,55dvh)}#gift-hint{margin:0 12px 10px}.walking-hint{bottom:10px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
