@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700;900&display=swap');
:root{font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic',sans-serif;color:#3a4939;font-synthesis:none;--cream:#fffdf1;--ink:#3a4939;--green:#5d8747}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:#a8d7ce}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,canvas:focus-visible{outline:3px solid #d29b40;outline-offset:5px}button:disabled{cursor:default;opacity:.55}button svg,span svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}button{transition:transform .16s,background .16s,box-shadow .16s}button:active{transform:translateY(2px)}[hidden]{display:none!important}#game{position:relative;width:100%;height:100%;height:100dvh;isolation:isolate;overflow:hidden}#world{position:absolute;inset:0;width:100%;height:100%;display:block;outline:0;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(57,88,62,.12),transparent 22%,transparent 72%,rgba(45,75,53,.12))}.hud-header{position:absolute;top:30px;left:34px;right:30px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;gap:16px}.brand{display:flex;align-items:center;gap:12px;color:#fffdf3;filter:drop-shadow(0 2px 2px #446e5140)}.brand-mark{display:grid;place-items:center;transform:rotate(-9deg)}.brand-mark svg{height:43px;width:43px;stroke-width:2;stroke:currentColor;fill:none}.brand h1{font-size:29px;letter-spacing:.09em;line-height:1.1;margin:0;font-weight:900}.brand-caption{display:block;font-size:10px;letter-spacing:.29em;font-weight:700;margin-top:7px;padding-left:2px}.header-right{display:flex;align-items:center;gap:10px;pointer-events:auto}.time-chip,.round-button{border:1px solid #fff8;background:#fffdf0eb;box-shadow:0 3px 0 #72876c20,0 5px 18px #4166540d}.time-chip{border-radius:30px;display:flex;align-items:center;gap:9px;height:46px;padding:0 17px;font-size:14px;font-weight:700}.time-chip svg{color:#d29c45;width:21px}.day-label{border-left:1px solid #6f77582e;margin-left:5px;padding-left:12px;font-size:12px;color:#7c8069}.round-button{height:44px;width:44px;border-radius:50%;display:grid;place-items:center}.round-button svg{height:20px;width:20px}.help-button{font-size:21px;font-weight:700}.quest-card{position:absolute;left:34px;top:122px;width:279px;padding:19px 21px 16px;border:1px solid #fff9;border-radius:7px 24px 24px 24px;background:#fffdf1ed;box-shadow:0 5px 0 #70825e12,0 12px 35px #47644812}.quest-heading{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.03em;color:#778361}.quest-symbol{font-size:20px;color:#a0a056;line-height:1}.quest-number{margin-left:auto;font-size:11px;letter-spacing:.04em;opacity:.8}.quest-card h2{font-size:18px;letter-spacing:.015em;margin:11px 0 6px;font-weight:700}.quest-card p{font-size:12px;line-height:1.8;margin:0;color:#7b806e}.quest-progress{height:5px;border-radius:4px;background:#e4e8d4;margin:16px 0 8px;overflow:hidden}.quest-progress div{height:100%;width:0;background:#8cad5c;border-radius:4px;transition:width .6s}.quest-footer{display:flex;justify-content:space-between;font-size:12px;color:#7f856f}.quest-footer span:last-child{font-variant-numeric:tabular-nums}.inventory{position:absolute;top:97px;right:31px;display:flex;gap:8px}.inventory>span{display:flex;align-items:center;gap:7px;border:1px solid #fff8;border-radius:24px;padding:8px 13px;background:#fffdf1e0;box-shadow:0 3px 15px #41665408}.inventory svg{height:21px;width:21px;color:#a17c4e}.inventory>span:nth-child(2) svg{color:#829397}.inventory b{font-size:17px;min-width:14px;font-weight:700}.inventory>span>span{font-size:11px;color:#8b8f7a}.game-footer{position:absolute;bottom:19px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:11px;pointer-events:none}.hotbar{display:flex;padding:7px;gap:5px;border-radius:22px;background:#fffdf0ee;border:1px solid #fff9;box-shadow:0 5px 0 #81977433,0 14px 40px #214f4a24;pointer-events:auto}.tool{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:79px;height:81px;border:1px solid transparent;background:transparent;border-radius:15px;color:#737e65}.tool>svg{width:33px;height:33px;stroke-width:1.8}.tool>span:last-child{font-size:11px;font-weight:700;white-space:nowrap}.tool-key{position:absolute;top:5px;left:8px;font-size:10px;color:#959c85}.tool:hover{background:#e9edd8}.tool.selected{background:#e5edcd;border-color:#9bb677;box-shadow:inset 0 0 0 2px #fff8;color:#4f6a3c}.tool.selected .tool-key{color:#668346}.tool.selected:after{content:'';position:absolute;top:-12px;width:6px;height:6px;background:#fff8df;transform:rotate(45deg)}.filled-icon{stroke-width:1.2!important}.tool-caption{font-size:13px;font-weight:700;letter-spacing:.05em;background:#fffdf0df;padding:6px 17px;border-radius:18px;color:#65745a;box-shadow:0 3px 10px #47755812}.keyboard-help{display:flex;gap:12px;align-items:center;color:#fffdf2;font-size:11px;text-shadow:0 1px 4px #47755860;white-space:nowrap}.keyboard-help span{display:flex;align-items:center;gap:3px}.keyboard-help i{height:3px;width:3px;background:#fff9;border-radius:50%}kbd{font:inherit;display:inline-block;border:1px solid #fff8;padding:1px 3px;border-radius:3px;font-size:9px;min-width:13px;text-align:center}.location-label{position:absolute;left:36px;bottom:45px;color:#fffdf3;display:flex;flex-direction:column;text-shadow:0 2px 3px #47685430;pointer-events:none}.location-line{width:26px;height:2px;background:#fff9;margin-bottom:12px}.location-label>span:nth-child(2){font-weight:700;font-size:14px;letter-spacing:.14em}.location-sub{font-size:11px;letter-spacing:.02em;margin-top:5px;opacity:.85}.action-area{position:absolute;right:32px;bottom:66px;display:flex;align-items:flex-end;flex-direction:column;gap:10px}.action-area>span{font-size:11px;color:#fffef5;text-shadow:0 1px 4px #496d4e80}.action-button{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 19px;border-radius:35px;border:1px solid #fff9;background:#fffdf0ed;box-shadow:0 4px 0 #778b6640,0 8px 25px #41665414;font-size:14px;font-weight:700;min-width:155px}.action-key{display:inline-grid;place-items:center;border:1px solid #b7c3a0;border-radius:5px;font-size:12px;height:23px;width:23px;color:#7b8967}.action-button svg{color:#9ca16a;width:20px;height:20px}.camera-controls{position:absolute;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:7px}.camera-controls button{display:grid;place-items:center;width:38px;height:38px;border:1px solid #fff7;background:#fffdf0ca;border-radius:50%;font-size:22px;color:#697c64}.camera-controls svg{width:19px;height:19px}.world-label{position:absolute;transform:translate(-50%,-100%);padding:7px 13px;border-radius:15px;background:#fffdf1ed;color:#566c48;font-size:12px;font-weight:700;pointer-events:none;white-space:nowrap;box-shadow:0 3px 13px #52734226}.world-label:after{content:'';position:absolute;bottom:-4px;left:calc(50% - 4px);height:8px;width:8px;transform:rotate(45deg);background:#fffdf1}.toast{position:absolute;left:50%;top:100px;transform:translate(-50%,-8px);background:#fffdf1f2;box-shadow:0 6px 25px #47695022;border:1px solid #fff9;border-radius:24px;padding:12px 22px;font-size:14px;font-weight:700;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;max-width:90%;white-space:nowrap}.toast.visible{opacity:1;transform:translate(-50%,0)}.dialogue{position:absolute;bottom:194px;left:50%;transform:translateX(-50%);width:420px;max-width:calc(100% - 30px);padding:23px 27px 15px;background:#fffdf1f5;border:2px solid #fff;border-radius:7px 25px 25px 25px;box-shadow:0 10px 35px #4e775530}.dialogue-speaker{position:absolute;top:-14px;left:21px;background:#95ad64;color:#fff;padding:5px 22px;border-radius:13px;font-size:13px;font-weight:700}.dialogue p{font-size:15px;line-height:1.9;margin:2px 0 6px}.dialogue button{display:block;margin-left:auto;border:0;background:transparent;font-size:12px;color:#86926f;padding:5px}.dialogue button span{margin-left:6px}.joystick{display:none}dialog{padding:37px 40px 30px;border:1px solid white;border-radius:28px;background:#fffdf2;color:var(--ink);width:490px;max-width:calc(100% - 30px);box-shadow:0 25px 80px #21463850}dialog::backdrop{background:#31534950;backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:18px;top:13px;border:0;background:none;font-size:26px;color:#819175}.eyebrow{font-size:10px;letter-spacing:.2em;color:#9aa17c}dialog h2{font-size:24px;margin:13px 0 9px}dialog>p{font-size:14px;color:#7e866f;line-height:1.9}.help-rows{margin:24px 0 12px}.help-rows>div{display:flex;gap:20px;padding:13px 0;border-top:1px solid #e7e9dc;font-size:12px;line-height:1.8}.help-rows strong{min-width:98px;font-size:13px}.help-rows span{color:#7d856f}.primary-button{border:1px solid #689347;background:#7f9f5d;color:white;border-radius:30px;padding:12px 24px;font-size:14px;font-weight:700;display:block;margin:19px auto 0;min-width:180px}.local-note{font-size:11px!important;color:#9b9e8c!important}.loading,.error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#b5d9c3;z-index:10}.loading p{font-size:15px;letter-spacing:.1em;color:#5a7b5d}.loading-leaf{font-size:47px;color:#fcfde2;animation:breathe 1.2s infinite alternate}.error{text-align:center;padding:30px}.error button{border:1px solid white;border-radius:30px;background:#fffdf1;padding:12px 24px}.error p{max-width:400px;line-height:1.8}@keyframes breathe{to{transform:translateY(-12px) rotate(20deg);opacity:.5}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.loading-leaf{animation:none}}
@media(max-width:1200px){.location-label{bottom:181px}.action-area{bottom:184px}.action-area>span{display:none}.quest-card{width:247px;padding:16px 18px}.quest-card h2{font-size:17px}.quest-card p{font-size:11px}.hud-header{left:25px;right:25px}.quest-card{left:25px}.inventory{right:25px}}
@media(pointer:coarse){.joystick{display:grid;place-items:center;position:absolute;left:29px;bottom:174px;height:104px;width:104px;touch-action:none;background:#fffdf127;border:2px solid #fffdf150;border-radius:50%;box-shadow:inset 0 0 0 9px #fffdf109;pointer-events:auto}.joystick-knob{height:48px;width:48px;background:#fffdf1c9;border:2px solid #fff9;box-shadow:0 4px 12px #48764b21;border-radius:50%;pointer-events:none}.joystick-cross{position:absolute;width:70%;height:70%;border:1px dashed #fff5;border-radius:50%}.keyboard-help,.action-key,.location-label{display:none}.game-footer{bottom:23px}.tool-key{display:none}.action-area{bottom:191px;right:29px}.action-button{min-width:116px;padding:15px 19px}.camera-controls{top:auto;bottom:316px;right:25px;transform:none}.tool-caption{font-size:12px}}
@media(max-width:700px){.hud-header{left:18px;right:17px;top:max(21px,env(safe-area-inset-top));gap:8px}.brand{gap:7px}.brand-mark svg{height:31px;width:31px}.brand h1{font-size:22px}.brand-caption{font-size:8px;letter-spacing:.19em;margin-top:5px}.header-right{gap:6px}.round-button{width:35px;height:35px}.round-button svg{width:18px;height:18px}.time-chip{padding:0 10px;height:36px;font-size:11px;gap:5px}.time-chip svg{width:17px}.day-label{display:none}.quest-card{left:18px;top:91px;width:221px;padding:13px 15px 12px;border-radius:6px 20px 20px 20px}.quest-heading{font-size:10px}.quest-symbol{font-size:17px}.quest-number{font-size:10px}.quest-card h2{font-size:16px;margin:8px 0 4px}.quest-card p{font-size:10px}.quest-progress{margin:10px 0 6px;height:4px}.quest-footer{font-size:10px}.inventory{top:90px;right:17px;flex-direction:column;gap:6px}.inventory>span{padding:6px 10px;gap:5px}.inventory svg{height:18px;width:18px}.inventory b{font-size:14px}.inventory>span>span{display:none}.game-footer{bottom:max(19px,env(safe-area-inset-bottom));width:calc(100% - 24px);gap:10px}.hotbar{width:100%;gap:3px;padding:5px;border-radius:19px;justify-content:space-between}.tool{flex:1;min-width:0;width:auto;max-width:75px;height:66px;border-radius:12px;gap:2px}.tool>svg{height:28px;width:28px}.tool>span:last-child{font-size:9px}.tool-key{font-size:9px;top:3px;left:5px}.keyboard-help{display:none}.joystick{left:23px;bottom:160px;height:94px;width:94px}.joystick-knob{height:43px;width:43px}.action-area{right:22px;bottom:176px}.action-button{min-width:112px;font-size:13px;gap:9px;padding:14px 16px}.camera-controls{right:20px;top:auto;bottom:285px;transform:none;gap:6px}.camera-controls button{height:34px;width:34px}.toast{top:246px;font-size:12px;padding:10px 18px;white-space:normal;text-align:center;max-width:85%;width:max-content}.dialogue{bottom:280px;width:330px;padding:20px 21px 11px}.dialogue p{font-size:13px}.world-label{font-size:11px;padding:6px 11px}.location-label{display:none}dialog{padding:31px 25px 24px}dialog h2{font-size:20px}.help-rows>div{gap:12px;font-size:11px}.help-rows strong{font-size:12px;min-width:88px}.help-rows{margin:17px 0 10px}}
@media(max-height:560px){.quest-card{top:82px;padding:11px 15px}.quest-card p,.quest-progress,.quest-footer{display:none}.quest-card h2{margin-bottom:0}.hud-header{top:15px}.game-footer{bottom:12px}.hotbar{padding:4px}.tool{height:59px;width:67px}.tool-caption,.keyboard-help{display:none}.joystick{bottom:29px;left:24px;width:84px;height:84px}.action-area{bottom:37px;right:22px}.camera-controls{bottom:132px;top:auto;transform:none}.inventory{top:71px}.toast{top:160px}.dialogue{bottom:117px}.location-label{display:none}dialog{max-height:94%;overflow:auto}}

/* Short tool labels remain readable on narrow touch screens. */
.tool>span:last-child{font-size:12px}.quest-card p,.quest-footer,.quest-heading{font-size:12px}.action-area>span{font-size:12px}.help-rows>div,dialog>p{font-size:14px}.help-rows strong{font-size:14px}.keyboard-help{font-size:12px}.location-sub{font-size:12px}
@media(max-width:700px){.tool>span:last-child{font-size:12px}.quest-card p,.quest-footer{font-size:12px}.quest-heading{font-size:11px}.quest-card{width:231px}.quest-card p{line-height:1.65}.toast{top:272px}.help-rows>div{font-size:12px}.help-rows strong{font-size:13px}.eyebrow{font-size:10px}}
@media(max-width:380px){.time-chip #time-text{display:none}.time-chip{width:35px;padding:0;justify-content:center}.brand h1{font-size:21px}.quest-card{width:215px}.quest-card h2{font-size:15px}}
