@import url('https://fonts.googleapis.com/css2?family=Gowun+Dodum&display=swap');
:root{font-family:'Gowun Dodum',system-ui,sans-serif;color:#5a513c;background:#b5ce8b;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;color:inherit;touch-action:manipulation}button:focus-visible{outline:3px solid #8e673e;outline-offset:4px}button:disabled{cursor:default}button{border:0}#game{position:relative;width:100%;height:100dvh;overflow:hidden;user-select:none}#world{width:100%;height:100%;display:block;touch-action:none}.hud{position:absolute;top:max(18px,env(safe-area-inset-top));left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:2}.hud>*{pointer-events:auto}.wallet{display:flex;align-items:center;gap:9px;padding:8px 16px 8px 10px;border-radius:24px;background:#fff7d6;box-shadow:0 3px 0 #84905b33;border:2px solid #fbf5da;min-width:120px}.wallet strong{font-size:23px;line-height:1.2;font-weight:800;color:#776441}.wallet small{font-size:11px;color:#9d885e}.acorn{display:block;background:#bc8c52;color:#e2b26b;width:27px;height:28px;border-radius:11px 11px 14px 14px;position:relative;text-align:center;line-height:26px;font-size:15px;box-shadow:inset -4px -3px #a476443d}.acorn:before{content:'';position:absolute;top:-2px;left:-2px;width:31px;height:12px;background:#825e38;border-radius:12px 12px 5px 5px}.acorn:after{content:'';position:absolute;width:4px;height:6px;top:-7px;left:12px;border-radius:3px;background:#825e38;transform:rotate(12deg)}.hud-right{display:flex;gap:9px}.round-button{height:42px;width:42px;display:grid;place-items:center;border-radius:50%;background:#fff9e9e8;color:#7d7653;font-size:25px;box-shadow:0 3px 0 #82905c36;border:2px solid #fffaf0}.place-sign{position:absolute;top:max(76px,calc(env(safe-area-inset-top) + 60px));left:50%;transform:translateX(-50%);padding:5px 13px;border-radius:16px;background:#557747a8;color:#fff9df;font-size:11px;letter-spacing:.3px;white-space:nowrap;pointer-events:none}.decorate-button{position:absolute;top:max(117px,calc(env(safe-area-inset-top) + 100px));left:50%;transform:translateX(-50%);border-radius:19px;background:#fff3d0;color:#8a693e;font-weight:700;font-size:13px;padding:8px 16px;border:2px solid #f7e3b3;box-shadow:0 3px 0 #69583d25}.nearby-label{position:absolute;background:#fff8e3;padding:7px 14px;border:2px solid #e2d9b7;box-shadow:0 3px 0 #77734f25;border-radius:14px;font-size:12px;transform:translate(-50%,-100%);white-space:nowrap;pointer-events:none;color:#766349}.nearby-label:after{content:'';position:absolute;bottom:-8px;left:calc(50% - 6px);border-width:6px 6px 0;border-style:solid;border-color:#fff8e3 transparent transparent}#controls{position:absolute;bottom:max(32px,calc(env(safe-area-inset-bottom) + 22px));left:23px;right:23px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:2}#joystick{width:116px;height:130px;touch-action:none;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:5px}.joystick-rim{width:112px;height:112px;border-radius:50%;background:#fffaf032;border:2px solid #fffde587;box-shadow:inset 0 0 0 9px #fff8e013;display:grid;place-items:center;backdrop-filter:blur(1px)}.joystick-center{width:52px;height:52px;border-radius:50%;background:#fff9e8bd;border:3px solid #fffceb;box-shadow:0 5px 0 #6c805034;pointer-events:none;will-change:transform}#joystick small{font-size:10px;color:#ffffe6;text-shadow:0 1px 3px #566743}#interact-button{width:98px;height:98px;border-radius:50%;background:#f6f1cc;box-shadow:0 5px 0 #927b4350,0 0 0 7px #fff8da39;border:3px solid #fff9e6;pointer-events:auto;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;transition:transform .14s,opacity .2s;color:#7e6943}#interact-button:disabled{opacity:.52;background:#edeed199}#interact-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #927b4350,0 0 0 7px #fff8da39}#interact-button b{font-size:13px}#interact-symbol{font-size:25px;height:30px;line-height:30px}.walk-tip{position:absolute;bottom:max(10px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);font-size:10px;color:#fffbe9;text-shadow:0 1px 4px #4a673e;white-space:nowrap;pointer-events:none}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}[hidden]{display:none!important}dialog{color:#665d46;background:#fff8e8;border:3px solid #fffcef;box-shadow:0 7px 0 #796e3d26,0 20px 70px #394b3540;border-radius:28px;max-height:88dvh;overflow:auto;padding:26px;overscroll-behavior:contain}dialog::backdrop{background:#32483438;backdrop-filter:blur(2px)}.intro-dialog{width:min(350px,calc(100% - 36px));text-align:center;padding:29px 22px 24px;background:#fff5db;overflow:visible;transform:rotate(-1deg)}.intro-dialog::backdrop{background:#3d603b50;backdrop-filter:blur(4px)}.intro-leaf{font-size:33px;color:#84a568}.intro-small{font-size:11px;color:#a49065;letter-spacing:1px;margin:8px 0 12px}.intro-dialog h1{font-size:43px;font-weight:900;line-height:1.25;letter-spacing:-2px;color:#617b48;margin:5px 0 18px;text-shadow:0 3px 0 #dfe5c6;transform:rotate(-2deg)}.intro-dialog h1 small{display:block;font-size:19px;letter-spacing:5px;color:#9e7e4a;text-shadow:none;margin-bottom:6px}.intro-dialog>p:not(.intro-small){font-size:13px;line-height:1.9;color:#9a8861;margin:15px 0 25px}.intro-foot{display:block;font-size:10px;color:#b4a279;margin-top:16px}.green-button{border:2px solid #739b5c;background:#81a76b;border-radius:17px;color:#fffde9;padding:12px 23px;font-size:15px;font-weight:700;box-shadow:0 4px 0 #5d8149;transition:transform .12s}.green-button:active{transform:translateY(3px);box-shadow:0 1px 0 #5d8149}.green-button:disabled{background:#bcc8a7;border-color:#acb89b;box-shadow:0 3px 0 #9ca98c;color:#edf0df}.intro-dialog .green-button{width:100%;display:flex;justify-content:space-between;align-items:center}.talk-dialog{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));top:auto;margin:0 auto;width:min(560px,calc(100% - 24px));padding:27px 24px 22px;overflow:visible;border-radius:27px}.npc-name{position:absolute;top:-18px;left:24px;background:#d5a16c;padding:5px 19px;color:#fff8df;border-radius:12px;transform:rotate(-4deg);font-size:14px;font-weight:700;border:2px solid #f6d6a3}.dialog-close{position:absolute;right:14px;top:13px;background:#eee7d4;color:#ad9e7a;border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font-size:21px;line-height:1}.speech{font-size:17px;line-height:1.8;white-space:pre-line;margin:10px 0 17px;word-break:keep-all;padding-right:4px}.speech small{font-size:13px;color:#9c8f70}.talk-actions{display:flex;gap:10px;justify-content:flex-end}.soft-button{background:#eee7d1;border:2px solid #e5ddc4;border-radius:14px;padding:10px 17px;color:#9f8e66;font-size:13px}.quiz-topic{font-size:10px;color:#a59672;margin-top:3px}.question{font-size:18px;font-weight:700;line-height:1.75;margin:10px 0 18px;padding-right:8px;word-break:keep-all}.choices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.choice{border:2px solid #e6ddbd;border-radius:15px;padding:12px 8px;font-size:15px;background:#fffdf1;min-height:51px}.choice.correct{background:#dce9c7;border-color:#9ebc83;color:#5f814a}.choice.wrong{background:#f1dfc7;border-color:#d6b98f;color:#b09166}.choice:disabled{opacity:.72}.choice.correct:disabled{opacity:1}.quiz-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:10px}.hint-button{background:none;color:#aa9b76;padding:6px 0;font-size:11px;border-bottom:1px dashed #bdb08a}.hint{padding:10px 13px;background:#f2ebcf;border-radius:12px;margin-top:13px;font-size:12px;color:#9c8c63;line-height:1.8}.feedback{font-size:12px;line-height:1.9;color:#8e8d64;margin:13px 0 0;white-space:pre-line}.coin-reward{color:#b68a46;font-size:13px;font-weight:700}.sheet-head{display:flex;position:relative;align-items:center;padding-right:25px}.sheet-head small{font-size:10px;color:#b19c74;letter-spacing:.5px}.sheet-head h2{font-size:21px;line-height:1.4;margin:4px 0 0;letter-spacing:-.5px}.sheet-head .dialog-close{top:0;right:-8px}.shop-dialog{width:min(540px,calc(100% - 22px));padding:22px 20px 25px}.shop-caption{font-size:11px;color:#ab9974;display:flex;justify-content:space-between;gap:10px}.shop-caption span{color:#a98044;white-space:nowrap;font-weight:700}#shop-items{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.shop-item{border:2px solid #e9dfc1;border-radius:18px;overflow:hidden;background:#fffbec}.furniture-preview{width:100%;height:108px;display:block;background:#f0e9ce}.shop-item-info{padding:12px}.shop-item h3{font-size:14px;margin:0 0 4px;letter-spacing:-.3px}.shop-item p{font-size:10px;color:#b09d74;line-height:1.6;margin:0 0 9px}.shop-item button{width:100%;padding:7px;border-radius:11px;background:#dce7be;border:1px solid #c4d6a3;color:#6e8348;font-size:13px;font-weight:700}.shop-item button:disabled{background:#eee9d8;border-color:#e5ddc6;color:#b9ae91}.map-dialog{width:min(440px,calc(100% - 24px));padding:22px 18px}.map-dialog canvas{width:100%;height:auto;display:block;margin-top:18px;border-radius:18px;background:#e1e9bd}.map-dialog p{font-size:12px;line-height:1.8;text-align:center;color:#a1946e;margin-bottom:0}.settings-dialog{width:min(410px,calc(100% - 24px));padding:24px}.settings-dialog p{font-size:13px;line-height:1.8;color:#9b8d6c}.settings-dialog ol{padding-left:18px;font-size:13px;line-height:1.9}.settings-dialog li{margin:11px 0}.settings-dialog li small{font-size:10px;color:#a99b7d}.sound-row{display:flex;justify-content:space-between;border-top:1px dashed #ded4b7;border-bottom:1px dashed #ded4b7;padding:12px 0;font-size:13px}.sound-row input{accent-color:#7da461;width:19px;height:19px}.settings-dialog .save-note{font-size:11px;color:#b1a181}.save-buttons{display:flex;gap:8px}.save-buttons button{flex:1;background:#eae4ce;border-radius:11px;padding:10px 6px;font-size:11px;color:#9a885f}.settings-dialog #save-error{font-size:11px;color:#b87c58}.toast{position:fixed;bottom:183px;left:50%;transform:translate(-50%,10px);background:#fff6d9f5;color:#8c754b;border:2px solid #fffbe9;padding:10px 18px;border-radius:20px;box-shadow:0 4px 0 #65774332;font-size:12px;line-height:1.6;text-align:center;max-width:90vw;white-space:nowrap;opacity:0;pointer-events:none;transition:.2s;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}#edit-panel{position:absolute;bottom:0;left:0;right:0;padding:15px 16px max(17px,env(safe-area-inset-bottom));background:#fff7e4f2;border-top:3px solid #fffbee;border-radius:24px 24px 0 0;z-index:4;box-shadow:0 -5px 25px #665f3420}.edit-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.edit-title strong{font-size:12px}.edit-title button{font-size:11px;background:#dce8bd;padding:7px 12px;border-radius:13px;color:#74874f;white-space:nowrap}.inventory-strip{display:flex;gap:9px;overflow-x:auto;scrollbar-width:thin;touch-action:pan-x;min-height:83px}.inventory-item{position:relative;min-width:75px;width:75px;background:#eee6cc;border:2px solid #e3d9b8;border-radius:14px;padding:4px 4px 7px;flex-shrink:0}.inventory-item.active{border-color:#91ac64;background:#e5eccd}.inventory-item:disabled{opacity:.45}.inventory-item canvas{width:60px;height:49px;display:block;margin:auto}.inventory-item b{position:absolute;top:3px;right:5px;font-size:10px;background:#fff9e6;border-radius:8px;padding:0 4px}.inventory-item span{font-size:9px;white-space:nowrap}.inventory-empty{font-size:12px;color:#a4926b;line-height:1.9;padding:8px}.edit-actions{display:flex;justify-content:center;gap:8px;margin-top:11px}.edit-actions button{border-radius:12px;padding:8px 11px;background:#ece4cb;font-size:11px;color:#9c895e}.edit-actions .green-button{background:#80a469;color:#fff9e7;border:2px solid #75995f;box-shadow:0 2px 0 #64884d;flex:1;max-width:200px}.edit-actions .green-button:disabled{background:#bbc7a4;border-color:#adb99a;color:#eef1de;box-shadow:none}@media(min-width:800px){.hud{left:30px;right:30px;top:25px}#controls{left:40px;right:40px;bottom:40px}#joystick{width:135px;height:140px}.joystick-rim{width:124px;height:124px}#interact-button{height:110px;width:110px}#interact-button b{font-size:15px}.place-sign{top:30px;padding:8px 18px;font-size:13px}.decorate-button{top:80px}#edit-panel{left:50%;right:auto;width:650px;max-width:95%;transform:translateX(-50%)}.toast{bottom:80px}.walk-tip{bottom:23px}.talk-dialog{bottom:35px}}@media(max-height:650px){.talk-dialog{max-height:85dvh;overflow:auto;padding:22px 20px 18px}.npc-name{position:static;display:inline-block;transform:none;margin-bottom:3px}.question{font-size:15px;margin:6px 0 12px}.choice{padding:8px;min-height:42px}.talk-dialog .dialog-close{top:14px}.speech{font-size:15px}.intro-dialog{padding:16px}.intro-dialog h1{font-size:34px}.intro-dialog>p:not(.intro-small){margin:12px 0}.intro-leaf{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Soft controls floating above the little 3D village. */
.action-stack{display:flex;flex-direction:column;align-items:center;gap:16px;pointer-events:none}
#jump-button{pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:62px;height:62px;border-radius:50%;border:3px solid #fff9e7;background:#aed7a8;color:#4e754f;box-shadow:0 4px 0 #678a5d61,0 0 0 5px #fffae52e;touch-action:none}
#jump-button span{font:800 26px system-ui;line-height:26px}#jump-button b{font-size:11px}#jump-button:active{transform:translateY(3px);box-shadow:0 1px 0 #678a5d61}
#controls{align-items:flex-end}.shop-tabs{display:flex;padding:4px;background:#eee6ce;border-radius:18px;gap:5px;margin:15px 0}.shop-tabs button{flex:1;border-radius:14px;background:transparent;padding:9px 12px;color:#9a8c6f;font-size:14px}.shop-tabs button.active{background:#fff9e7;color:#65845c;box-shadow:0 2px 0 #bca97a30;font-weight:800}
.talk-dialog::backdrop{background:#40583c20;backdrop-filter:none}.talk-dialog{border-radius:32px 30px 34px 27px}.npc-name{background:#be9367;color:#fffdf2}.speech{color:#6c654e}.closet-dialog{width:min(540px,calc(100% - 22px));padding:22px 20px 25px}.nearby-label{border-radius:17px;background:#fff9e9;border-color:#fbf6dc;font-weight:700;color:#7c714f;box-shadow:0 4px 8px #515b3520}
@media(max-width:360px){#controls{left:17px;right:17px}#joystick{width:104px;height:117px}.joystick-rim{width:101px;height:101px}#interact-button{width:88px;height:88px}#jump-button{width:57px;height:57px}.action-stack{gap:13px}.edit-actions{gap:5px}.edit-actions button{padding:8px;font-size:10px}}
@media(max-height:650px){#controls{bottom:23px}.action-stack{flex-direction:row;align-items:flex-end;gap:14px}#jump-button{width:54px;height:54px}#interact-button{height:80px;width:80px}.walk-tip{bottom:3px}}
