@font-face{font-family:Zoo;src:local('맑은 고딕')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Zoo,'Malgun Gothic',sans-serif;color:#4c3b27;background:#dce4bd}button,input{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid #d7783d;outline-offset:4px}button:disabled{opacity:.55;cursor:default}[hidden]{display:none!important}#world,#world canvas{position:fixed;inset:0;width:100%;height:100%;touch-action:none}button{border:0;transition:transform .16s,background .16s}button:active{transform:translateY(1px)}.glass{background:#fff5dfef;border:1px solid #fff8e9;box-shadow:0 4px 0 #805e3020,0 10px 35px #4b4f2520;backdrop-filter:blur(12px)}.brand{position:fixed;top:26px;left:28px;padding:12px 24px 13px 18px;border-radius:24px;display:flex;align-items:center;gap:12px;z-index:3}.brand-icon{font-size:40px;color:#b7864c}.brand h1{font-size:25px;letter-spacing:-1px;margin:0;font-weight:900}.brand p{font-size:11px;color:#7c7455;margin:4px 0 0;letter-spacing:.5px}.top-tools{position:fixed;top:30px;right:28px;display:flex;gap:10px;align-items:center;z-index:3}.round{border-radius:50%;background:#fff5dfeb;box-shadow:0 3px 0 #805e3020;width:46px;height:46px;font-size:23px}.solo{background:#fff5dfd9;padding:8px 14px;border-radius:30px;font-size:11px;letter-spacing:.5px}.solo:before{content:'';display:inline-block;width:6px;height:6px;background:#6f8941;border-radius:50%;margin-right:6px}.mini-map{position:fixed;top:98px;right:28px;width:184px;border-radius:28px;padding:8px;z-index:2}.mini-map canvas{width:100%;height:auto;border-radius:20px;background:#dae4b6}.mini-map span{display:block;font-size:12px;font-weight:bold;padding:5px}.intro{position:fixed;inset:0;z-index:4;background:linear-gradient(90deg,#243a2338,transparent 70%);pointer-events:none}.intro-card{position:absolute;left:5vw;top:50%;transform:translateY(-45%);width:365px;padding:30px 32px 22px;border-radius:28px;pointer-events:auto}.eyebrow{font-size:10px;letter-spacing:2px;color:#8c945e;font-weight:800}.intro h2{font-size:42px;line-height:1.28;letter-spacing:-2.7px;margin:18px 0 16px;font-weight:900}.intro-copy{font-size:14px;line-height:1.85;color:#8b806b;margin-bottom:24px}.avatar-choice{display:flex;align-items:center;justify-content:space-between;font-size:11px}.choices{display:flex;gap:5px}.choice{background:transparent;border:1px solid #d5ceb5;border-radius:12px;min-height:36px;font-size:11px;padding:7px 10px}.choice.active{background:#e6e8c9;border-color:#82914c;color:#52612d}.name-card{margin:16px 0 20px;border-top:1px solid #d9ceb5;padding-top:16px}.name-card small{font-size:10px;color:#938774}.name-card>div{display:flex;align-items:center;justify-content:space-between}.name-card strong{font-size:16px}.text-button{font-size:26px;background:none;width:42px;height:42px;color:#a2804d}.primary{background:#6d813d;color:white;border:1px solid #5a7033;box-shadow:inset 0 1px 0 #ffffff38,0 3px 0 #45572c35;padding:13px 18px;border-radius:16px;font-size:13px;font-weight:800;min-height:48px}.primary:hover{background:#5e7430}.secondary{background:#fff8e8;border:1px solid #c9af80;border-radius:16px;padding:12px 15px;font-size:12px;font-weight:700;min-height:48px}.secondary:hover{background:#f3e8ca}.wide{width:100%}.primary.wide{display:flex;justify-content:space-between;align-items:center}.intro-foot{text-align:center;font-size:10px;color:#a29176;margin:17px 0 0}.intro-note{position:absolute;bottom:35px;right:35px;color:#fff8df;font-size:12px;text-shadow:0 1px 8px #223617}.dot{background:#eff5d0;width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:6px}.animal-card{position:fixed;right:28px;bottom:100px;width:320px;border-radius:26px;padding:26px;z-index:5}.close{position:absolute;top:14px;right:14px;background:transparent;width:36px;height:36px;font-size:24px;color:#8d7956;border-radius:50%;line-height:1}.close:hover{background:#decda770}.animal-card h2{font-size:28px;margin:12px 0 5px;letter-spacing:-1px}.animal-card>p{font-size:13px;color:#857355}.satiety{display:flex;align-items:center;gap:15px;margin-top:22px;padding-top:18px;border-top:1px solid #dbc7a0;font-size:12px;font-weight:bold}.satiety>div{display:flex;gap:4px;flex:1}.satiety i{height:10px;border-radius:5px;flex:1;background:#e4d1a9}.satiety i.filled{background:#8a9c4f}.muted{font-size:11px!important;line-height:1.6;min-height:18px}.card-actions{display:flex;gap:8px;margin-top:15px}.card-actions>*{flex:1}.animal-card #animal-info{border-top:1px solid #d6c7ac;margin-top:17px;padding-top:12px;font-size:12px;line-height:1.8;max-height:170px;overflow-y:auto}.animal-card dl{display:grid;grid-template-columns:55px 1fr;margin:0;gap:6px}.animal-card dt{color:#958263}.animal-card dd{margin:0}.observe{position:fixed;bottom:145px;left:50%;transform:translateX(-50%);z-index:4;border-radius:40px;padding:12px 18px;font-size:13px;font-weight:bold;min-height:48px;white-space:nowrap}.observe kbd{margin-left:10px;background:#7c643f;color:#fff8e7;font-size:10px}.destination{position:fixed;top:32px;left:50%;transform:translateX(-50%);border-radius:30px;font-size:12px;padding:10px 12px 10px 20px;z-index:3}.destination button{background:none;margin-left:10px;font-size:20px}.keyboard{position:fixed;bottom:30px;left:30px;color:#fffce8;text-shadow:0 1px 5px #3a4c24;z-index:3;font-size:12px}.keyboard>div{margin-left:34px;margin-bottom:5px}.keyboard>span{margin-left:12px}.keyboard small{display:block;margin-top:10px;font-size:10px;letter-spacing:.3px}kbd{display:inline-flex;align-items:center;justify-content:center;background:#fff6dc;color:#6f5633;border-radius:7px;width:28px;height:28px;margin-right:4px;text-shadow:none;box-shadow:0 2px 0 #a7905c80;font-family:inherit;font-weight:900}.player-chip{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);border-radius:30px;padding:11px 20px;font-size:12px;font-weight:bold;z-index:3}.balloon-action{position:fixed;bottom:28px;right:28px;z-index:3}.loading{position:fixed;inset:0;background:#f7f0dc;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.loading .paw{font-size:56px;color:#b48b50;animation:breathe 2s infinite}.loading p{font-size:12px;color:#877d65}.loading.error{padding:30px;text-align:center}.loading.error a{color:#677d36}.loading.error p{max-width:400px;line-height:1.7}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);background:#384828ed;border:1px solid #ffffff30;color:#fffbe6;padding:12px 22px;border-radius:18px;font-size:12px;opacity:0;transition:.25s;z-index:15;pointer-events:none;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}dialog{border:1px solid #e9e0c9;box-shadow:0 30px 100px #18230f40;color:#4c3b27}dialog::backdrop{background:#23301b55;backdrop-filter:blur(5px)}.map-dialog{width:min(1120px,94vw);max-height:92vh;padding:28px;background:#fbf6e9;border-radius:26px;overflow:auto}.map-dialog header{position:relative;margin-bottom:20px}.map-dialog header h2{font-size:26px;margin:7px 0}.map-dialog header p{font-size:12px;color:#92856a;margin:0}.map-dialog .close{right:0;top:0}.map-layout{display:grid;grid-template-columns:1fr 240px;gap:24px}.map-area{position:relative;aspect-ratio:1.25;border-radius:22px;overflow:hidden;border:1px solid #dce0b8;background:#e2e9bc}.map-area canvas{width:100%;height:100%;display:block}.map-compass{position:absolute;right:16px;top:16px;font-size:14px;font-weight:900}.map-layout aside{display:flex;flex-direction:column;min-height:0;max-height:550px}.map-layout label{font-size:12px;font-weight:bold;margin-bottom:10px}.map-layout input{background:#fff;border:1px solid #ded6c1;border-radius:12px;padding:12px;width:100%;font-size:12px}.filters{display:flex;gap:5px;margin:12px 0}.filters button{border-radius:12px;padding:8px 10px;font-size:11px;background:#edead9;min-height:36px}.filters .active{background:#758746;color:white}#animal-list{overflow-y:auto;flex:1;min-height:120px;margin-bottom:12px}#animal-list button{width:100%;text-align:left;background:transparent;padding:11px 8px;border-bottom:1px solid #ebe4d2;display:flex;align-items:center;gap:10px;font-size:12px;min-height:48px}#animal-list button:hover{background:#e7eccc;border-radius:10px}#animal-list small{margin-left:auto;color:#9d9074;font-size:10px}.map-marker{position:absolute;transform:translate(-50%,-50%);padding:4px 7px;border:1px solid #bda879;background:#fff6df;border-radius:9px;font-size:10px;white-space:nowrap;box-shadow:0 2px 3px #54563a25;min-height:27px}.map-marker:hover{background:#768742;color:white;z-index:1}.map-marker:focus-visible{z-index:2}.help-dialog{max-width:460px;width:90vw;border-radius:26px;padding:34px}.help-dialog h2{font-size:24px;letter-spacing:-1px}.help-dialog ul{padding-left:18px;font-size:13px;line-height:1.9;color:#7e725b}.help-dialog li{margin-bottom:10px}#joystick{display:none;position:fixed;bottom:48px;left:28px;width:104px;height:104px;border-radius:50%;background:#fff4d52b;border:2px solid #fff7dc90;z-index:4;touch-action:none}#joystick span{position:absolute;width:45px;height:45px;left:27px;top:27px;border-radius:50%;background:#fff2cdbd;box-shadow:0 3px 8px #404f2330;pointer-events:none}@keyframes breathe{50%{transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:760px){.brand{top:16px;left:16px;padding:10px 14px;border-radius:20px;gap:8px}.brand-icon{font-size:28px}.brand h1{font-size:19px}.brand p{font-size:9px}.top-tools{right:16px;top:20px;gap:7px}.round{width:38px;height:38px;font-size:20px}.solo{display:none}.mini-map{top:85px;right:16px;width:127px;border-radius:21px;padding:5px}.mini-map span{font-size:10px;padding:2px}.intro-card{left:24px;width:320px;padding:26px;top:auto;bottom:28px;transform:none}.intro h2{font-size:35px}.intro-copy{font-size:12px;margin-bottom:18px}.intro-note{display:none}.keyboard{display:none}.walking #joystick{display:block}.player-chip{bottom:16px;max-width:60vw;white-space:nowrap;font-size:10px;padding:8px 15px}.animal-card{right:12px;bottom:60px;width:min(305px,calc(100vw - 24px));padding:22px;border-radius:22px}.animal-card h2{font-size:24px}.animal-card #animal-info{max-height:130px}.observe{bottom:185px;font-size:12px}.observe kbd{display:none}.balloon-action{bottom:60px;right:16px;font-size:11px;padding:10px}.destination{top:auto;bottom:55px;font-size:10px;max-width:90vw;white-space:nowrap}.map-dialog{padding:20px;max-height:94dvh;border-radius:22px}.map-layout{grid-template-columns:1fr;gap:18px}.map-layout aside{max-height:270px}.map-marker{font-size:8px;padding:2px 4px;min-height:22px}.map-dialog header h2{font-size:22px}.map-dialog header p{font-size:10px}#toast{bottom:210px;font-size:11px;min-width:230px}.map-compass{font-size:11px;top:8px;right:8px}}@media(max-width:380px){.intro-card{left:16px;width:calc(100vw - 32px);padding:24px}.intro h2{font-size:30px}.intro-copy{margin:10px 0}.intro-card .eyebrow{font-size:8px}.name-card{margin:10px 0}.mini-map{width:105px}}@media(max-height:650px) and (min-width:761px){.intro-card{top:auto;bottom:20px;transform:none;padding:22px 28px}.intro h2{font-size:30px;margin:12px 0}.intro-copy{margin:10px 0}.intro-note{display:none}.intro-foot{margin-top:12px}.animal-card{bottom:78px}}

@media(max-width:760px){.map-marker{width:22px;height:22px;min-height:22px;padding:0;font-size:0;border-radius:50%}.map-marker::after{content:attr(data-marker);font-size:8px;font-weight:bold}}

.run-action,.sit-action{position:fixed;z-index:4;bottom:85px;right:28px;min-width:90px}.run-action{display:none}.walking .run-action{display:block}.run-action[aria-pressed=true]{background:#6d813d;color:white}.sit-action{right:auto;left:50%;transform:translateX(-50%);bottom:110px}#bench-route{margin-top:8px}#diagnostics{position:fixed;top:105px;left:15px;width:320px;max-height:130px;overflow:auto;z-index:30;font:10px monospace;background:#152012d9;color:#eff5d0;padding:8px;pointer-events:none;word-break:break-all}@media(max-width:760px){.run-action{right:16px;bottom:120px}.sit-action{bottom:245px;font-size:12px}#diagnostics{top:90px;left:8px;width:190px;max-height:75px;font-size:8px}}

.habitats-open{border-radius:24px;padding:12px 17px;font-size:12px;font-weight:bold;min-height:44px}.habitat-browser{position:fixed;z-index:5;bottom:24px;left:50%;transform:translateX(-50%);width:min(550px,calc(100% - 32px));padding:18px 22px;border-radius:24px}.habitat-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.habitat-heading a{color:#738348;font-size:11px;text-decoration:none}.habitat-switch{display:flex;align-items:center;gap:8px}.habitat-switch select{flex:1;min-width:0;background:#fff9ec;border:1px solid #d2c5a7;border-radius:13px;font:700 17px Zoo,'Malgun Gothic',sans-serif;color:#4c3b27;padding:10px}.habitat-switch .secondary{padding:8px 14px;min-height:44px}.habitat-switch .primary{min-height:44px;font-size:11px;padding:10px 13px}.habitat-browser p{font-size:11px;margin:12px 0 7px;color:#6e7454}.habitat-browser>small{font-size:10px;color:#a09177}.habitat-preview #walk-controls,.habitat-preview #joystick,.habitat-preview #run-action,.habitat-preview #sit-action,.habitat-preview #inventory,.habitat-preview #consume-action,.habitat-preview #observe,.habitat-preview #world-hotspots,.habitat-preview #mini-map{display:none!important}.habitat-preview .brand p{display:none}.habitat-preview .habitats-open{background:#dce5bd}select:focus-visible{outline:3px solid #d7783d;outline-offset:3px}@media(max-width:760px){.habitat-browser{bottom:16px;padding:16px;border-radius:22px}.habitat-heading .eyebrow{font-size:8px;letter-spacing:1px}.habitat-switch{gap:6px}.habitat-switch select{font-size:15px;padding:10px 8px}.habitat-switch .secondary{padding:8px 12px}.habitat-switch .primary{padding:8px;font-size:10px}.habitat-browser p{font-size:10px;line-height:1.6}.habitat-preview .top-tools{top:82px}.habitat-preview .brand{top:18px}.habitats-open{padding:10px 13px}}

.habitat-play{position:absolute;right:22px;bottom:12px;min-height:34px;padding:6px 12px;font-size:11px}@media(max-width:760px){.habitat-browser:has(.habitat-play:not([hidden])){padding-bottom:58px}.habitat-play{right:16px;bottom:12px;min-height:38px}}

/* Visitor interactions keep the view clear and remain usable by touch. */
#world-hotspots{position:fixed;inset:0;pointer-events:none;z-index:2}.world-hotspot{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;border-radius:18px;padding:8px 13px;min-height:42px;font-size:11px;white-space:nowrap}.world-hotspot:active{transform:translate(-50%,-98%)}.world-hotspot::after{content:'';position:absolute;bottom:-6px;left:calc(50% - 6px);border-width:6px 6px 0;border-style:solid;border-color:#fff5df transparent transparent}
.inventory{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);padding:7px 13px;border-radius:20px;font-size:10px;z-index:3;white-space:nowrap}.consume-action{position:fixed;left:50%;bottom:172px;transform:translateX(-50%);z-index:5;min-width:145px}.visitor-dialog{position:relative;width:min(420px,92vw);max-height:90dvh;overflow:auto;border-radius:26px;padding:30px}.visitor-dialog h2{font-size:26px;margin:14px 0}.visitor-dialog p{font-size:12px;line-height:1.8;color:#7d725c}.visitor-dialog>small{display:block;color:#8c8069;font-size:10px;margin-top:17px}.visitor-dialog .wide{margin-top:12px}#food-menu{display:grid;gap:9px;grid-template-columns:1fr 1fr}.food-option{min-height:62px}.food-option:last-child{grid-column:1 / -1}.audio-channel{border:0;border-bottom:1px solid #dacfaf;margin:0;padding:13px 0}.audio-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.audio-toggle small{display:block;margin-top:4px;color:#948568;font-size:10px}.audio-toggle input{width:22px;height:22px;accent-color:#6d813d}.audio-volume{display:flex;align-items:center;gap:14px;margin-top:12px}.audio-volume input{flex:1;min-width:0;accent-color:#6d813d}.audio-volume output{font-size:11px;width:32px;color:#8c8069}#audio-status{min-height:42px;font-size:11px}#food-route{margin-top:8px}.seat-details{font-size:11px;margin-top:12px;padding-bottom:8px}.seat-details summary{cursor:pointer;padding:7px 0}#seat-list{display:grid;gap:6px}.map-layout aside{overflow-y:auto;max-height:600px;flex-shrink:0}#animal-list{min-height:160px;max-height:270px;flex-shrink:0}.top-tools .round[aria-pressed=true]{background:#dde5bd}
@media(max-width:760px){.top-tools{top:88px;right:auto;left:16px;gap:7px}.top-tools .round{width:40px;height:40px}.mini-map{top:16px;width:112px}.inventory{bottom:49px;font-size:9px;max-width:95vw}.consume-action{bottom:302px;min-width:145px;font-size:12px}.world-hotspot{font-size:10px;padding:8px 11px;min-height:44px}.map-layout aside{max-height:none;overflow:visible}#animal-list{max-height:200px}.visitor-dialog{padding:25px}.destination{bottom:185px}.observe{bottom:355px}.animal-card{bottom:180px}.sit-action{bottom:245px}.run-action{bottom:120px}.balloon-action{bottom:60px}}
