:root{font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#294d43;background:#d9eee7;font-synthesis:none;-webkit-text-size-adjust:100%;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 10%,#edf5dd 0,transparent 50%),radial-gradient(ellipse at 90% 80%,#b9deda 0,transparent 50%),#d9eee7;min-height:100vh;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #b26b31;outline-offset:4px}a{color:inherit}svg{display:block;width:100%;height:100%}.sprite-sheet{position:absolute;width:0;height:0;overflow:hidden}.skip{position:absolute;top:-100px;left:16px;z-index:50;background:white;padding:12px}.skip:focus{top:12px}.game-shell{max-width:462px;margin:22px auto 0;padding:0 12px}.game-header{display:flex;justify-content:space-between;align-items:center;height:48px;padding:0 5px}.brand{display:flex;align-items:center;gap:6px;text-decoration:none;font-size:14px;font-weight:750;letter-spacing:-.3px}.brand>svg{width:21px;height:26px}.brand-light{font-weight:450}.header-actions{display:flex;gap:5px}.icon-button{min-width:44px;min-height:44px;padding:7px 10px;border:1px solid #8db6a666;border-radius:12px;background:#ffffff65;color:#365a4d;font-size:12px;font-weight:600}.icon-button:hover{background:#fff}.game{background:#f8f9ef;border:1px solid #b4c7ad;border-radius:27px;overflow:hidden;box-shadow:0 9px 0 #a3bba440,0 24px 60px #2d66551a}.game-top{display:flex;justify-content:space-between;align-items:center;padding:21px 22px 16px}.eyebrow{font-size:10px;letter-spacing:2px;color:#7b9276;font-weight:750;margin:0 0 4px}h1{font-size:27px;letter-spacing:-1px;line-height:1.1;margin:0;font-weight:850}.level{display:grid;grid-template-columns:22px 1fr;gap:3px 7px;align-items:center;min-width:81px;font-size:13px;font-weight:750}.level>svg{width:22px;height:22px}.level progress{grid-column:1/-1;width:81px;height:5px;accent-color:#d6b75f}.inventory{display:flex;gap:9px;margin:0 18px 16px}.resource{flex:1;display:flex;align-items:center;gap:8px;min-width:0;background:#eeefdf;border:1px solid #e0e3cf;border-radius:14px;padding:9px 10px}.resource svg{width:27px;height:30px;flex-shrink:0}.resource span{font-size:10px;color:#6c7a60;display:block;font-weight:600;line-height:1.3}.resource strong{display:block;font-size:18px;line-height:1.2;font-weight:800;font-variant-numeric:tabular-nums}.resource.bump{animation:inventory-bump .22s ease-out}
.world{height:335px;position:relative;isolation:isolate;background:linear-gradient(#cce9df 0%,#dcefdc 45%,#a8d8cf 45%,#99cec5 100%);overflow:hidden;border-block:1px solid #b9d8c2;transition:background .6s}.world::after{content:"";position:absolute;bottom:14px;left:17px;width:39px;height:6px;border-top:2px solid #d7f2e0;border-radius:50%;box-shadow:317px -22px 0 -1px #d7f2e0,26px -27px 0 -1px #d7f2e0,278px 5px 0 -1px #d7f2e0;z-index:-1;animation:wave 5s ease-in-out infinite}.world-sky{position:absolute;inset:0;z-index:-2;overflow:hidden}.cloud{position:absolute;width:67px;height:17px;border-radius:50px;background:#fff9e8b0}.cloud::before{content:"";position:absolute;width:34px;height:26px;background:inherit;border-radius:50%;bottom:0;left:13px}.cloud-one{left:-12px;top:88px;animation:cloud 14s ease-in-out infinite}.cloud-two{right:-16px;top:35px;transform:scale(.75);animation:cloud 18s ease-in-out infinite reverse}.sun{position:absolute;right:48px;top:81px;width:29px;height:29px;background:#f4dfa0;border-radius:50%;box-shadow:0 0 0 7px #f4dfa01a}.area-heading{position:absolute;top:17px;left:0;width:100%;text-align:center;pointer-events:none}.area-number{font-size:9px;letter-spacing:2px;font-weight:700;opacity:.6}.area-heading h2{font-size:18px;font-weight:800;margin:5px 0 5px;letter-spacing:-.5px}.area-heading p{font-size:11px;margin:0;color:#55786c}.island-ground{position:absolute;width:100%;height:calc(100% - 25px);bottom:-8px;z-index:-1;filter:drop-shadow(0 14px 0 #3e8b7b20)}.building{position:absolute;transition:opacity .3s,transform .3s;opacity:0;transform:translateY(7px);pointer-events:none}.building.visible{opacity:1;transform:translateY(0)}.campfire{width:53px;height:62px;left:38%;top:191px}.cottage{width:104px;height:95px;left:49%;top:126px}.dock{width:81px;height:40px;top:247px;left:64%;transform:rotate(-10deg)!important;display:flex;gap:3px;border-inline:5px solid #856647;align-items:stretch}.dock i{flex:1;background:#c7a479;border-block:2px solid #8a6e4e}.construction{position:absolute;left:55%;top:151px;width:63px;height:49px;border:2px dashed #73966980;border-radius:50%;display:grid;place-content:center;text-align:center;transform:rotate(-9deg);color:#6c8e61}.construction span{font-size:25px;line-height:1}.construction small{font-size:9px;line-height:1.8}.construction[hidden]{display:none}
.gather{touch-action:none;position:absolute;border:0;padding:0;background:none;color:#294d43;user-select:none;-webkit-user-select:none;min-width:65px;min-height:65px}.gather svg{overflow:visible;filter:drop-shadow(0 3px 0 #37674f0d);transform-origin:50% 85%;transition:filter .15s}.gather:hover:not(:disabled) svg{filter:brightness(1.07) drop-shadow(0 3px 0 #37674f0d)}.gather.hit svg{animation:hit .18s ease-out}.gather.wood{width:113px;height:153px;left:9%;top:105px}.gather.stone{width:95px;height:105px;right:7%;top:190px}.gather.wool{width:97px;height:97px;left:35%;top:197px}.gather.wool:disabled{filter:saturate(.25);opacity:.65}.gather-label{display:inline-flex;align-items:center;gap:4px;position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid #b2c8aa;border-bottom-width:2px;border-radius:12px;background:#fffceeeF;padding:5px 9px;font-size:10px;font-weight:700;line-height:1;color:#426148}.gather-label b{color:#317b55}.gather:disabled .gather-label{font-size:9px;padding-inline:7px}.tap-hint{position:absolute;bottom:8px;width:100%;text-align:center;font-size:10px;color:#356a60;margin:0;pointer-events:none}.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.particle{position:absolute;width:13px;height:13px;border-radius:3px;background:#e5b67f;animation:chip .55s ease-out forwards;transform:translate(-50%,-50%)}.particle.stone{background:#ccdbd3;border:1px solid #6f8e91;border-radius:2px}.particle.wool{background:#fff8df;border-radius:50%}.float-count{position:absolute;font-size:24px;font-weight:850;color:#fff;paint-order:stroke; -webkit-text-stroke:3px #497b56;text-shadow:0 2px 0 #497b56;animation:float .8s ease-out forwards;transform:translateX(-50%)}.toast{position:absolute;left:15px;right:15px;bottom:35px;padding:10px 12px;margin:0;border-radius:13px;background:#fffced;color:#3b624b;text-align:center;font-size:12px;font-weight:700;box-shadow:0 4px 16px #365a4426;opacity:0;transform:translateY(8px);transition:opacity .15s,transform .15s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}
.quest{padding:17px 20px 15px;background:#fffdf1}.quest-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#69795e;margin-bottom:9px;font-weight:650}.quest-heading p{margin:0;display:flex;align-items:center;gap:6px}.quest-dot{width:6px;height:6px;border-radius:50%;background:#8eab6b}.quest-main{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:50px}.quest h3{font-size:16px;letter-spacing:-.3px;margin:0 0 7px;font-weight:800}.cost{display:flex;gap:9px;flex-wrap:wrap;font-size:11px;min-height:16px}.cost-item{display:inline-flex;align-items:center;gap:3px;font-weight:650;color:#8b6552}.cost-item svg{width:16px;height:16px}.cost-item.ready{color:#377754}.build-button{flex-shrink:0;min-height:45px;min-width:89px;padding:11px 14px;border:1px solid #326b51;border-bottom:4px solid #2b5f49;border-radius:13px;background:#4b8968;color:#fffdf0;font-size:13px;font-weight:750;white-space:nowrap}.build-button span{padding-left:6px}.build-button:disabled{border-color:#d1d8bf;background:#e6ead9;color:#6e7d62}.build-button:not(:disabled):active{transform:translateY(2px);border-bottom-width:2px}.quest progress{width:100%;height:5px;margin-top:10px;display:block;accent-color:#6f9e72}progress{border:0;border-radius:10px;overflow:hidden;background:#e6ead8}progress::-webkit-progress-bar{background:#e6ead8;border-radius:10px}progress::-webkit-progress-value{background:#8eae73;border-radius:10px;transition:width .16s}progress::-moz-progress-bar{background:#8eae73;border-radius:10px}.level progress::-webkit-progress-value{background:#d7b85d}
.bottom-controls{display:flex;gap:10px;padding:14px 18px 0}.upgrade{flex:1;min-width:0;display:flex;align-items:center;gap:9px;border:1px solid #d4c698;border-bottom:3px solid #c4b67f;border-radius:14px;background:#f3e8bd;color:#635b34;padding:10px;text-align:left;min-height:59px}.upgrade:disabled{background:#eeeddf;border-color:#d6d8c5}.tool-icon{font-size:30px;line-height:1;font-weight:850;transform:rotate(-18deg);color:#8b7a45}.upgrade strong{font-size:12px;display:block}.upgrade small{font-size:9px;display:block;margin-top:4px;white-space:nowrap}.upgrade-arrow{margin-left:auto;font-size:17px}.travel{display:flex;align-items:center;gap:5px}.travel button{width:44px;min-height:47px;border:1px solid #bfcfba;border-bottom:3px solid #aabb9d;border-radius:12px;background:#eaf0dd;color:#41694f;font-size:26px;line-height:1}.travel button:disabled{background:#f0f1e6;border-color:#dce1cf;color:#a0ad96}.travel>span{font-size:11px;min-width:29px;text-align:center;font-weight:650}.save-line{display:flex;justify-content:space-between;gap:8px;padding:12px 22px 16px;color:#6f8068;font-size:9px}.save-line .save-error{color:#a45639;font-weight:650}.below-game{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#637f70;padding:19px 6px}.below-game p{margin:0}.below-game a{text-decoration:none}.guide{padding:25px 8px 40px;line-height:1.8;font-size:13px;color:#4d6e5d}.guide h2{font-size:16px;margin:0 0 10px}.guide p{margin:10px 0}.night-star{display:none}.game[data-theme=meadow] .world{background:linear-gradient(#e0eacb 0%,#eef2da 45%,#a4c5a1 45%,#9dbb95 100%)}.game[data-theme=meadow] .ground-top{fill:#c0d98f}.game[data-theme=night] .world{background:linear-gradient(#294f65 0%,#3b6a76 45%,#588d8e 45%,#588d8e 100%)}.game[data-theme=night] .ground-top{fill:#82ae88}.game[data-theme=night] .area-heading{color:#f9edc7}.game[data-theme=night] .area-heading p,.game[data-theme=night] .tap-hint{color:#d0e2cc}.game[data-theme=night] .cloud{opacity:.15}.game[data-theme=night] .sun{background:#fff2bc;box-shadow:inset -9px -3px #294f65}.game[data-theme=night] .night-star{display:block;position:absolute;color:#fff0bb;animation:twinkle 3s ease-in-out infinite}.s1{left:30px;top:30px;font-size:14px}.s2{left:102px;top:87px;font-size:10px}.s3{right:28px;top:134px;font-size:13px}.game[data-theme=night] .construction{color:#edf2c7;border-color:#d7dfae88}.game[data-theme=night] .cottage{filter:drop-shadow(0 0 9px #ffe7a440)}
dialog{max-width:340px;width:calc(100% - 36px);padding:24px;border:1px solid #b9c8aa;border-radius:24px;background:#fffcef;color:#365543;text-align:center;box-shadow:0 20px 70px #193e4738}dialog::backdrop{background:#153f4780;backdrop-filter:blur(3px)}dialog h2{font-size:22px;letter-spacing:-.7px;margin:0 0 12px}dialog p{font-size:13px;line-height:1.8;margin:0 0 18px;white-space:pre-line}.dialog-art{width:93px;height:85px;margin:0 auto 15px}.dialog-primary{width:100%;min-height:47px;border:1px solid #386a4e;border-bottom-width:3px;border-radius:12px;background:#4b8968;color:#fffcef;font-weight:750}.reset-link{margin-top:15px;padding:8px 10px;border:0;background:none;color:#817358;text-decoration:underline;font-size:11px;min-height:44px}#reset-confirm{margin-top:16px;padding-top:16px;border-top:1px solid #dddcc5}#reset-confirm p{font-size:12px}.confirm-buttons{display:flex;gap:8px}.confirm-buttons button{flex:1;border:1px solid #c3cbb3;border-radius:10px;background:#eff1df;min-height:44px;color:#4e654c;font-size:12px}#reset-yes{background:#a35b49;color:white;border-color:#8d4e3e}.noscript{background:#fff5db;padding:15px;position:fixed;top:0;width:100%;text-align:center}.celebration{position:absolute;inset:0;pointer-events:none}.celebrate-piece{position:absolute;top:-15px;width:8px;height:11px;background:var(--color);left:var(--left);animation:confetti 1.9s var(--delay) ease-out forwards}
@keyframes hit{0%{transform:scale(1)}35%{transform:scale(.9,.95) rotate(-3deg)}75%{transform:scale(1.06,1.02) rotate(2deg)}100%{transform:scale(1)}}@keyframes chip{to{transform:translate(var(--dx),var(--dy)) rotate(160deg);opacity:0}}@keyframes float{to{transform:translate(-50%,-65px) scale(.8);opacity:0}}@keyframes inventory-bump{50%{transform:scale(1.06)}}@keyframes cloud{50%{translate:15px 0}}@keyframes wave{50%{translate:7px 0;opacity:.6}}@keyframes twinkle{50%{opacity:.4}}@keyframes confetti{to{transform:translateY(340px) rotate(430deg);opacity:0}}
@media(max-width:480px){.game-shell{margin:0 auto;padding:0 10px}.game-header{height:47px}.game{border-radius:23px}.game-top{padding-top:17px;padding-bottom:14px}.inventory{margin-bottom:13px}.below-game{padding-top:18px}}@media(max-width:360px){.game-shell{padding:0 7px}.game-top{padding-inline:17px}.inventory{margin-inline:13px;gap:6px}.resource{gap:5px;padding:8px}.resource svg{width:23px}.world{height:310px}.gather.wood{top:90px}.gather.stone{top:170px}.gather.wool{top:177px}.cottage{top:113px}.campfire{top:175px}.dock{top:229px}.bottom-controls{padding-inline:13px;gap:6px}.travel{gap:3px}.travel button{width:44px}.quest{padding-inline:16px}.upgrade{padding-inline:8px;gap:6px}.upgrade small{font-size:8px}.save-line{padding-inline:17px}.area-heading p{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.particle,.float-count,.celebrate-piece{display:none}}

.flying-resource{position:fixed;width:24px;height:24px;z-index:40;pointer-events:none;filter:drop-shadow(0 2px 2px #294d4326)}


.wind-blades{transform-origin:76px 70px;animation:wind-turn 9s linear infinite}@keyframes wind-turn{to{transform:rotate(360deg)}}
html{height:100%;overflow:hidden;overscroll-behavior:none}
body{height:100dvh;min-height:0;overflow:hidden;display:grid;place-items:center;overscroll-behavior:none}
.game-shell{width:100%;height:100dvh;max-height:940px;margin:0 auto;padding:0;display:flex;flex-direction:column;min-height:0}
.game-header{flex:0 0 48px;height:48px}
.game{flex:1;min-height:0;display:flex;flex-direction:column;border:0;border-radius:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.game-top,.inventory,.quest,.bottom-controls,.save-line{flex-shrink:0}
.world{flex:1;height:auto;min-height:0}
.world-stage{position:absolute;left:50%;top:50%;width:calc(100% / var(--scene-scale,1));height:335px;transform:translate(-50%,-50%) scale(var(--scene-scale,1));transform-origin:50% 50%}
.area-heading{z-index:1}.world-stage .world-sky{z-index:0}
.guide{padding:0;margin-top:10px;font-size:12px;text-align:left;line-height:1.6}
.guide summary{min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#5b765e;font-weight:650}
.guide p{font-size:12px;margin:8px 0;line-height:1.6}.guide a{display:block;text-align:center;padding:8px}
dialog{max-height:calc(100dvh - 28px);overflow:hidden}
dialog:has(#guide[open]) :is(.dialog-art,#dialog-title,#dialog-copy,#dialog-close){display:none}
@media(max-height:700px){.game-header{flex-basis:46px}.game-top{padding:12px 17px 10px}h1{font-size:23px}.inventory{margin:0 13px 9px}.resource{padding:6px 9px}.resource strong{font-size:17px}.quest{padding:11px 16px 10px}.quest-heading{margin-bottom:6px}.quest-main{min-height:46px}.quest h3{font-size:15px}.quest progress{margin-top:7px}.bottom-controls{padding:10px 13px 0}.upgrade{min-height:52px;padding-block:7px}.save-line{padding:8px 17px 10px}.dialog-art{width:65px;height:59px;margin-bottom:10px}dialog{padding:19px}dialog h2{font-size:20px}dialog p{margin-bottom:12px}}

.game-header{padding-inline:12px}.game-header .icon-button{display:grid;place-items:center;width:44px;height:44px;padding:9px;border-radius:14px;border-bottom:3px solid #b4c7a6;background:#fffcef;color:#52745d}.game-header .icon-button svg{width:24px;height:24px}.game-header .icon-button:active{translate:0 2px;border-bottom-width:1px}#sound[aria-pressed=false]{background:#e6e9dd;color:#84907b}.home-button{text-decoration:none}.game-top{padding-top:5px;padding-bottom:12px}.game-top .eyebrow{display:none}.inventory{margin-bottom:12px}.world{border:0}
.mission{position:absolute;top:85px;left:50%;translate:-50% 0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:90%;min-height:44px;padding:7px 15px;border:1px solid #91b5a080;border-radius:15px;background:#fffceee6;color:#3e654f;box-shadow:0 3px 0 #47785c16;font-size:10px}.mission strong{display:block;font-size:12px;margin-top:3px}.mission>span:last-child{font-size:24px}
.game-nav{flex-shrink:0;display:flex;gap:9px;padding:10px 14px 0;background:#f8f9ef}.game-nav button{flex:1;min-width:0;min-height:85px;display:grid;justify-items:center;align-content:center;gap:3px;border:1px solid #bec9a9;border-bottom:4px solid #a8b990;border-radius:16px;background:#eff1dc;color:#3b624b}.game-nav button:active{translate:0 2px;border-bottom-width:2px}.game-nav svg{width:40px;height:36px}.game-nav strong{font-size:12px}.game-nav small{font-size:10px;color:#657d60}.save-line{padding:8px 16px 10px}
.popup-close{position:absolute;right:9px;top:8px;width:44px;height:44px;border:0;border-radius:12px;background:#edf0db;color:#527155;font-size:27px}.action-dialog{padding-top:28px}.action-dialog h2{margin:8px 28px 20px;font-size:21px}.action-dialog .dialog-art{width:128px;height:116px}.action-dialog .quest{padding:14px 0;background:transparent}.action-dialog .quest-main{flex-direction:column;gap:16px}.action-dialog .cost{justify-content:center}.action-dialog .build-button{width:100%;margin-top:3px}.action-dialog .quest progress{width:100%;height:7px;accent-color:#7ba16c}.action-dialog .popup-note{margin:12px 0 0;font-size:11px;color:#758264}.tool-art{margin:12px auto 18px;width:110px;height:110px;display:grid;place-items:center;border:2px solid #a5bd87;border-radius:30px;background:#eef0ce;color:#76945d;font-size:80px;font-weight:800}.action-dialog h3{margin:0 0 10px;font-size:21px}.tool-price{justify-content:center;margin:22px 0}.dialog-primary:disabled{background:#e6ead9;color:#6e7d62;border-color:#c5cfb4}
.area-list{display:grid;gap:12px}.area-list button{display:flex;align-items:center;gap:13px;width:100%;padding:12px;border:1px solid #bec9a9;border-bottom:3px solid #a8b990;border-radius:16px;background:#eff1dc;color:#3b624b;text-align:left}.area-list svg{width:49px;height:52px;flex-shrink:0}.area-list span{flex:1}.area-list strong{display:block;font-size:14px}.area-list small{display:block;margin-top:7px;font-size:10px}.area-list b{font-size:26px}.area-list button:disabled{opacity:.55;filter:grayscale(.5)}.area-list [aria-current=true]{border-color:#598b64;background:#e0edce}
.version-line{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #dedfc9;margin-top:10px;padding-top:5px;font-size:10px;color:#7e8b70}.version-line button{border:0;background:transparent;color:#527155;min-height:44px;font-size:11px;text-decoration:underline}#guide[open] summary::after{content:' · 접기'}
@media(max-height:700px){.game-top{padding-top:0}.game-nav{padding-top:8px}.game-nav button{min-height:76px}.area-heading{top:10px}.area-heading p,.area-number{display:none}.area-heading h2{font-size:15px;margin:0}.mission{top:35px;min-height:44px;padding-block:4px}.mission strong{font-size:11px}.action-dialog .dialog-art{width:85px;height:77px}.action-dialog h2{margin-bottom:14px}.tool-art{width:85px;height:85px;font-size:64px;margin-bottom:12px}.area-list{gap:9px}.area-list button{padding:9px 12px}}
.site-dialog input{width:100%;padding:12px 8px;font:inherit;font-size:12px;border:1px solid #b5c8aa;border-radius:10px;margin-bottom:18px;background:#f2f5e7;color:#365a4d}.site-dialog input[hidden]{display:none}#guide .move-link{min-height:44px;padding:12px 0}#import-error:empty{display:none}#import-error{color:#9c4e38}#import-yes{background:#4b8968;color:#fffcef}.game-header .header-actions{gap:5px}
