@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&family=Noto+Serif+KR:wght@400;600&display=swap');
:root{font-family:'Noto Sans KR',system-ui,sans-serif;color:#243d35;font-synthesis:none;font-size:16px;--ink:#243d35;--muted:#718077;--line:#dce2d9;--accent:#b65c38;--surface:rgba(251,252,247,.96)}*{box-sizing:border-box}body{margin:0;background:#b7ced0}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit}button:focus-visible,input:focus-visible{outline:3px solid #b65c38;outline-offset:4px}button:disabled{opacity:.45;cursor:default}button svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}#app,#world{position:fixed;inset:0;overflow:hidden}#world canvas{width:100%;height:100%;display:block;touch-action:none}.topbar{position:absolute;top:28px;left:32px;right:32px;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:23px}.brand strong{font-family:'Noto Serif KR',serif;font-size:34px;letter-spacing:4px;font-weight:600;color:#193a30;text-shadow:0 1px 10px #ffffff55}.brand strong span{font-size:12px;letter-spacing:2px;display:block;opacity:.64;margin-top:2px;text-align:center}.place{font-size:15px;font-weight:600;line-height:1.8;border-left:1px solid #49645a55;padding-left:23px}.place span{display:block;font-size:12px;font-weight:400}.utilities{display:flex;align-items:center;gap:8px}.icon-button,.weather{background:var(--surface);box-shadow:0 3px 18px #15362912;display:inline-flex;align-items:center;justify-content:center;border:1px solid #ffffff88;border-radius:50%;width:42px;height:42px;transition:background .2s,transform .2s}.icon-button:hover,.weather:hover{background:#fff;transform:translateY(-1px)}.weather{border-radius:25px;gap:9px;width:auto;padding:0 17px;font-size:14px}.view-controls{position:absolute;top:120px;left:32px;display:flex;gap:5px;flex-wrap:wrap;max-width:calc(100% - 385px)}.view{border:1px solid #ffffff77;background:#f4f7efbc;font-size:13px;padding:9px 14px;border-radius:22px;backdrop-filter:blur(12px)}.view.active{background:#294a3f;color:white;border-color:#294a3f}.panel{position:absolute;right:28px;top:110px;width:300px;max-height:calc(100dvh - 225px);overflow:auto;border:1px solid #ffffffaa;background:var(--surface);box-shadow:0 16px 50px #143b281a;border-radius:18px;padding:24px;scrollbar-width:thin;scrollbar-color:#bfcbbb transparent;backdrop-filter:blur(20px)}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.eyebrow{font-size:10px;letter-spacing:2.3px;color:#7e8d80;font-weight:600}h1{font-family:'Noto Serif KR',serif;font-size:23px;letter-spacing:-.6px;margin:6px 0 0;font-weight:600}.panel .icon-button{width:28px;height:28px;background:none;border:0;box-shadow:none}.panel p{font-size:14px;line-height:1.7;color:#67776d;margin:0 0 18px}.panel h2{font-size:14px;font-weight:600;margin:22px 0 12px}.panel hr{border:0;border-top:1px solid var(--line);margin:20px 0}.primary{border-radius:9px;padding:13px 14px;background:var(--ink);color:white;display:block;width:100%;font-size:14px;font-weight:500;margin-top:9px;transition:background .2s}.primary:hover{background:#416252}.secondary{background:#eaf0e5;color:var(--ink)}.small{font-size:12px!important;color:#849084!important;line-height:1.7}.catalog{display:grid;grid-template-columns:1fr 1fr;gap:9px}.item-card{border:1px solid #dfe5dc;border-radius:11px;background:#f2f5ed;text-align:left;overflow:hidden;position:relative;padding:0;transition:all .2s}.item-card:hover{border-color:#92a485;transform:translateY(-2px)}.item-card.selected{border:2px solid #a35e3e;background:#f2ece2}.item-card img{width:100%;height:87px;object-fit:contain;display:block}.item-card .item-icon{display:flex;align-items:center;justify-content:center;height:65px}.item-card .item-icon svg{width:32px;height:32px;stroke-width:1.2}.item-card strong{font-size:13px;font-weight:500;display:block;padding:2px 10px 9px}.item-card .check{position:absolute;top:6px;right:8px;color:var(--accent);font-size:14px}.choice-list{display:grid;gap:8px}.choice{display:flex;align-items:center;gap:11px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f5f7f0;font-size:14px}.choice.active{border-color:#849b80;background:#e9efdf}.choice small{display:block;font-size:12px;color:#7e897d;margin-top:3px}.swatch{width:27px;height:27px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px #0001}.swatches{display:flex;gap:13px}.swatches button{padding:4px;background:none;border-radius:50%;border:1px solid transparent}.swatches button.active{border-color:#41563e}.range-label{font-size:14px;display:flex;justify-content:space-between;margin-bottom:11px}input[type=range]{width:100%;accent-color:#426449}.toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:14px}.toggle-row input{accent-color:#426449;width:18px;height:18px}.dock{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;gap:6px;align-items:center;border:1px solid #ffffffbb;border-radius:19px;background:var(--surface);padding:9px 12px;box-shadow:0 8px 40px #16352224;backdrop-filter:blur(20px)}.dock button{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:67px;padding:10px 9px 8px;background:none;border-radius:12px;font-size:12px;white-space:nowrap}.dock button svg{height:23px;width:23px}.dock button:hover{background:#e9eee4}.dock button.active{background:#2a493d;color:#fff}.dock-divider{height:36px;width:1px;background:var(--line);margin:0 4px}.dock i{position:absolute;width:6px;height:6px;right:10px;top:8px;border-radius:50%;background:#c78344}.bottom-left{position:absolute;bottom:33px;left:32px;display:flex;flex-direction:column;gap:7px;color:#294d38;text-shadow:0 1px 4px #ffffffe0}.save-state{font-size:12px;font-weight:500}.control-hint{font-size:12px;opacity:.75}.bottom-right{position:absolute;bottom:39px;right:32px;display:flex;align-items:center;gap:12px;font-size:13px}.bottom-right button{border:1px solid #fff8;background:#f4f7edbd;padding:7px 12px;border-radius:20px;font-size:12px}.toast{position:absolute;left:50%;bottom:139px;transform:translate(-50%,15px);pointer-events:none;opacity:0;padding:13px 22px;border-radius:12px;box-shadow:0 5px 20px #18392a22;background:#263f35ed;color:#fff;font-size:14px;max-width:90%;text-align:center;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}.selection{position:absolute;left:50%;bottom:145px;transform:translateX(-50%);background:var(--surface);border-radius:12px;box-shadow:0 8px 30px #183a2533;padding:10px;display:flex;align-items:center;gap:8px}.selection[hidden]{display:none}.selection strong{font-size:13px;margin:0 8px}.selection button{padding:8px 11px;background:#e9eee4;border-radius:8px;font-size:13px}.selection .danger{color:#ac573a}.plot-list{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.plot-button{padding:12px 3px;border-radius:9px;border:1px solid #dce2d7;background:#edf1e6;font-size:12px}.plot-button.active{border-color:#52724b;background:#e1ead7}.plot-button b{display:block;font-size:16px;margin-bottom:4px}.growth-track{height:5px;background:#e4eadb;border-radius:3px;overflow:hidden;margin:13px 0}.growth-track i{height:100%;display:block;background:#7e9b66;transition:width 1s}.status-card{padding:16px;background:#edf2e7;border-radius:12px;margin-top:14px}.status-card h2{margin:0 0 8px}.status-card p{margin-bottom:10px}.seed-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.seed-buttons button{font-size:12px;padding:10px 4px;border-radius:8px;border:1px solid #dae3d2;background:#f6f8f0}.seed-buttons button.active{background:#3b5b43;color:white}.stats-row{display:flex;justify-content:space-between;font-size:12px;color:#788570;margin-top:10px}.mode-pill{background:#e8efdf;color:#6a8255;padding:4px 8px;border-radius:6px;font-size:11px;display:inline-block;margin-bottom:12px}#loading{position:absolute;inset:0;z-index:100;background:#edf2e9;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .8s;pointer-events:none}.loader-mark{font-family:'Noto Serif KR',serif;font-size:52px;letter-spacing:10px}#loading p{font-size:14px;color:#7b887b;margin:22px 0}.loading-line{display:block;height:2px;width:140px;background:linear-gradient(90deg,transparent,#829471,transparent);animation:load 1.5s infinite}#loading.loaded{opacity:0;visibility:hidden;transition:opacity .8s,visibility 0s .8s}@keyframes load{50%{transform:scaleX(.3);opacity:.4}}dialog{border:0;border-radius:20px;padding:34px;max-width:470px;width:calc(100% - 32px);background:#f8faf3;color:var(--ink);box-shadow:0 30px 100px #102c3866}dialog::backdrop{background:#20382c6b;backdrop-filter:blur(5px)}dialog h2{font-family:'Noto Serif KR',serif;font-size:23px;margin:13px 0 20px}dialog p,dialog dd{font-size:14px;line-height:1.85;color:#6a786c}dialog dt{font-size:14px;font-weight:600;margin:16px 0 4px}dialog dd{margin:0}.dialog-close{position:absolute;right:15px;top:15px}.rest-note{font-family:'Noto Serif KR',serif;font-size:19px;line-height:1.9;color:#486341}.rest-note small{display:block;font-family:'Noto Sans KR',sans-serif;font-size:12px;margin-top:14px;color:#86927d}.error-box{background:#fff;padding:25px;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);max-width:440px;border-radius:20px;color:#243d35}
@media(max-width:1000px){.bottom-left .control-hint{display:none}.bottom-right{bottom:123px;right:22px}.bottom-left{bottom:123px;left:22px}.topbar{left:22px;right:22px;top:20px}.panel{right:20px;top:106px;width:275px}.view-controls{left:22px;max-width:calc(100% - 320px)}.brand .place{font-size:13px}.utilities{gap:5px}.place span{font-size:11px}.dock{bottom:19px}}
@media(max-width:680px){.topbar{top:16px;left:16px;right:16px;gap:8px}.brand{gap:12px}.brand strong{font-size:27px}.brand strong span{display:none}.place{font-size:12px!important;padding-left:12px}.place span{display:none}.utilities .icon-button{width:34px;height:34px}.weather{width:auto;height:34px;padding:0 10px}.weather #time-label{display:inline;font-size:12px;max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#help-button{display:none}.view-controls{top:75px;left:16px;right:16px;max-width:none;gap:4px}.view{font-size:11px;padding:7px 10px}.panel{width:calc(100% - 24px);left:12px;right:12px;top:auto;bottom:115px;max-height:38dvh;padding:17px 20px;border-radius:16px}.panel-head{margin-bottom:12px}.panel h1{font-size:21px}.panel .eyebrow{display:none}.catalog{grid-template-columns:repeat(3,1fr)}.item-card img{height:64px}.panel h2{margin-top:14px}.panel p{margin-bottom:12px}.dock{bottom:13px;padding:7px 8px;gap:2px;max-width:calc(100% - 20px)}.dock button{min-width:54px;padding:9px 6px;font-size:11px}.dock-divider{margin:0 2px}.bottom-left{left:16px;bottom:103px}.bottom-right{right:16px;bottom:102px}.bottom-right #harvest-count{display:none}.bottom-left .save-state{font-size:10px}.toast{bottom:120px;font-size:13px;z-index:6}.selection{bottom:120px;max-width:calc(100% - 20px);gap:4px;z-index:7;white-space:nowrap}.selection button{font-size:12px;padding:7px}.selection strong{font-size:12px;margin:0 3px}.choice-list{grid-template-columns:repeat(3,1fr)}.choice{padding:9px;font-size:12px}.choice small{font-size:10px}.choice .swatch{display:none}}
.error-box{pointer-events:auto}.panel[hidden]{display:none}
.welcome{position:absolute;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:24px;background:#20382c55;backdrop-filter:blur(7px)}
.welcome[hidden]{display:none!important}
.welcome-card{background:var(--surface);border:1px solid #ffffffaa;border-radius:20px;padding:34px 32px 28px;max-width:420px;width:min(420px,calc(100% - 24px));box-shadow:0 20px 70px #102c3866;text-align:center}
.welcome-card .eyebrow{display:block;margin-bottom:4px}
.welcome-card h2{font-family:'Noto Serif KR',serif;font-size:26px;letter-spacing:-.4px;margin:10px 0 12px;font-weight:600}
.welcome-card p{font-size:15px;line-height:1.85;color:#5d6c62;margin:0 0 22px}
.welcome-card .primary{width:auto;min-width:200px;margin:0 auto;display:inline-flex;justify-content:center}
.villa-name{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#f5f7f0;color:var(--ink);margin:0 0 16px}
.leave-sit{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:6;border-radius:24px;padding:12px 22px;background:var(--surface);border:1px solid #ffffffbb;box-shadow:0 8px 40px #16352224;backdrop-filter:blur(20px);font-size:14px;font-weight:500}
.leave-sit[hidden]{display:none!important}
body.sitting .dock,body.sitting .panel,body.sitting .view-controls,body.sitting .bottom-right,body.sitting .camera-tools,body.sitting .selection,body.sitting .placement-bar{opacity:0;visibility:hidden;pointer-events:none}
body.sitting .weather{pointer-events:auto;opacity:1;visibility:visible}
