@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600&family=Noto+Serif+KR:wght@400;500&display=swap');
*{box-sizing:border-box}body{margin:0;background:#132c39;color:#f5edda;font-family:'Noto Sans KR',sans-serif;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #efca8e;outline-offset:5px}#world{position:fixed;inset:0}#world canvas{width:100%;height:100%;display:block;touch-action:none}header{position:fixed;top:0;left:0;right:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:28px 36px;background:linear-gradient(#10283888,transparent);pointer-events:none}header>*{pointer-events:auto}.brand{font-family:'Noto Serif KR',serif;font-size:25px;letter-spacing:2px;color:#f1e5ca;text-decoration:none;text-shadow:0 2px 20px #102838}.brand small{font:8px 'Noto Sans KR',sans-serif;display:block;letter-spacing:2.2px;color:#b2c4c9;margin-top:9px}.tools{display:flex;gap:8px}.pill{padding:10px 13px;border:1px solid #bacac636;border-radius:25px;background:#142e3cb5;color:#d6ded5;font-size:10px;backdrop-filter:blur(10px)}.intro{position:fixed;top:145px;left:42px;z-index:2;pointer-events:none;transition:opacity 1.5s}.eyebrow{font-size:8px;letter-spacing:2px;color:#d9bd89}h1{font:400 clamp(25px,3vw,42px)/1.6 'Noto Serif KR',serif;letter-spacing:-1px;margin:20px 0 14px;text-shadow:0 3px 20px #132c39}.intro p{font-size:11px;line-height:2;color:#b4c8cd}.alone{display:inline-flex;gap:7px;align-items:center;font-size:9px;letter-spacing:.5px;color:#9eb8b9;margin-top:13px}.alone i{display:block;width:4px;height:4px;border-radius:50%;background:#cbb880}.exploring .intro{opacity:.15}.intro:hover{opacity:1}.places{position:fixed;inset:0;pointer-events:none;z-index:2}.place{position:absolute;transform:translate(-50%,-50%);background:#13303cdb;border:1px solid #e4c79165;color:#f1e2c6;border-radius:24px;font-size:10px;padding:9px 14px;pointer-events:auto;white-space:nowrap;backdrop-filter:blur(8px);box-shadow:0 4px 20px #09212a44;transition:background .2s}.place:hover,.place[aria-busy=true]{background:#746147;color:#fff7df}.place:disabled{opacity:.4}.bottom{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;z-index:3;pointer-events:none}.bottom>*{pointer-events:auto}#journey{font:12px/1.8 'Noto Serif KR',serif;color:#f2e3c4;text-shadow:0 2px 8px #000;margin:10px 20px 16px}.characters{display:inline-flex;align-items:center;gap:9px;background:#102a39d9;border:1px solid #bed2c42b;border-radius:35px;padding:8px 18px;backdrop-filter:blur(16px)}.characters span{font-size:9px;color:#b4c7c9;margin-right:6px}.characters button{background:none;border:1px solid transparent;color:#ecd7ac;border-radius:50%;padding:6px;font-size:23px;line-height:1}.characters button.selected{background:#ddc38b22;border-color:#cfb77d66}.characters .divider{width:1px;height:20px;background:#b2c6c333;margin:0 3px}.hint{font-size:9px;color:#aec4c8;letter-spacing:.5px;margin:14px 0 0;text-shadow:0 2px 8px #112b38}#loading{position:fixed;inset:0;background:#142d3e;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;transition:opacity .8s}#loading.done{opacity:0;pointer-events:none}#loading h2{font:22px 'Noto Serif KR',serif;margin:22px 0 10px}#loading p{font-size:11px;line-height:2;color:#a4bdc6}.loading-star{font-size:45px;color:#dec391;animation:breathe 3s infinite}.scene-error #loading{inset:20% 20% 40%;border:1px solid #dec39144;border-radius:20px;z-index:2}.scene-error .place{position:static;transform:none;margin:5px}.scene-error .places{inset:auto 10% 29%;text-align:center;z-index:6}#rest{display:flex;align-items:center;gap:17px;max-width:490px;margin:0 auto 16px;padding:16px 22px;border:1px solid #f0ca8544;background:#132d3ce0;border-radius:14px;text-align:left;backdrop-filter:blur(12px)}#rest[hidden]{display:none}#rest strong{font:13px 'Noto Serif KR',serif}#rest p{font-size:10px;color:#afc6cc;margin-bottom:0}.rest-orb{width:32px;height:32px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle,#f6cf8c,#e3bd7522);animation:breathe 8s ease-in-out infinite}#stand{border:1px solid #dac18b55;background:none;color:#e0cdab;border-radius:25px;padding:9px;white-space:nowrap;font-size:10px;margin-left:auto}dialog{background:#f2eee2;color:#364749;border:1px solid #fff9;border-radius:12px;padding:40px;width:calc(100% - 36px);max-width:440px;max-height:85svh;box-shadow:0 30px 100px #04152580}dialog::backdrop{background:#081b2d99;backdrop-filter:blur(6px)}.close{position:absolute;right:16px;top:12px;color:#8b9288;border:0;background:none;font-size:25px}.kicker{color:#a0845d;letter-spacing:2px;font-size:9px;margin-bottom:16px}h2{font-family:'Noto Serif KR',serif;font-weight:500;font-size:26px;line-height:1.5;margin:10px 0 16px}.desc{font-size:12px;color:#7e897e;line-height:1.9}.primary{background:#8c4d46;border:0;border-radius:5px;width:100%;padding:15px;color:#fff4df;font-size:12px;margin-top:16px}.secondary{background:none;border:0;color:#808a7e;padding:14px;width:100%;font-size:11px}textarea{width:100%;height:145px;background:#fff7;border:1px solid #d8d6c9;border-radius:6px;resize:vertical;padding:13px;font:13px/1.8 'Noto Sans KR',sans-serif;color:#41534b;margin-top:10px}.note{font-size:10px;color:#969b8e;line-height:1.8;text-align:center}.count{text-align:right;font-size:10px;color:#969b8e}.gifts{display:flex;gap:10px;margin:30px 0}.gift{flex:1;background:#e7e6d9;border:1px solid #d4d5c6;border-radius:8px;font-size:42px;padding:20px 0}.gift:hover{background:#e4d9c4}.gift small{font-size:10px;display:block;color:#8b8c77;margin-top:10px}.seal{font-size:55px;text-align:center;margin:20px}.quote{text-align:center;font-family:'Noto Serif KR',serif;font-size:22px;line-height:1.8;white-space:pre-line}.center{text-align:center}.ornaments{display:flex;gap:10px;justify-content:center;margin:20px}.ornaments button{border:1px solid #d8d4c4;border-radius:50%;font-size:26px;background:#fff5;padding:12px}.ornaments button.active{background:#d9dfcf;border-color:#839477}.toast{position:fixed;bottom:150px;left:50%;transform:translateX(-50%);background:#f6eddb;color:#485848;border-radius:40px;padding:14px 22px;font-size:12px;z-index:8;max-width:90%;width:max-content}.floating{animation:float 2s ease-in-out infinite}.nojs{position:fixed;inset:30%;z-index:8;background:#132c39;padding:30px}@keyframes breathe{50%{transform:scale(1.3);opacity:.6}}@keyframes float{50%{transform:translateY(-12px)}}@media(max-width:600px){header{padding:20px}.brand{font-size:20px}.brand small{font-size:6px;letter-spacing:1.2px}.tools{gap:5px}.pill{padding:9px;font-size:9px}.intro{left:23px;top:105px}.eyebrow{font-size:6px;letter-spacing:1.5px}h1{font-size:26px;line-height:1.5;margin:12px 0}.intro p{font-size:10px}.alone{font-size:8px;margin-top:6px}.place{font-size:9px;padding:8px 10px}.bottom{bottom:max(15px,env(safe-area-inset-bottom))}.hint{font-size:8px;margin-top:11px}.characters{padding:6px 13px;gap:6px}.characters button{font-size:21px}#journey{font-size:11px;margin-bottom:12px}#rest{margin:0 18px 14px;padding:14px;gap:12px}#rest strong{font-size:11px}#rest p{font-size:9px}.rest-orb{width:25px;height:25px}dialog{padding:32px 26px}.scene-error #loading{inset:20% 6% 43%}.exploring .intro{opacity:0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
#entrance{max-width:470px;padding:34px;text-align:center}#entrance::backdrop{background:#0c2638bf;backdrop-filter:blur(12px)}.entry-mark{font-size:35px;color:#b99b66;margin:10px 0}#entryTitle{font-size:29px;line-height:1.6;letter-spacing:-1px}.entry-animals{display:flex;gap:10px;margin:25px 0}.entry-animals button{flex:1;min-width:0;padding:15px 4px;background:#fff5;border:1px solid #d5d7c9;border-radius:10px;color:#71806b;transition:transform .2s,background .2s}.entry-animals b{display:block;font-size:39px;font-weight:400;margin-bottom:11px}.entry-animals span{font-size:11px}.entry-animals .selected{background:#dce4d2;border-color:#889c79;transform:translateY(-4px)}.entry-name{background:#e6e5d9;border-radius:7px;padding:15px 9px}.entry-name small{display:block;color:#929782;font-size:9px;letter-spacing:1px;margin-bottom:8px}.entry-name strong{font:18px 'Noto Serif KR',serif;color:#56664f}#enterVillage:disabled{background:#bec4b4;color:#eff0e7;cursor:default}#entryClose[hidden]{display:none}#nameTag{position:fixed;z-index:2;transform:translate(-50%,-100%);pointer-events:none;border:1px solid #e7cf9a33;border-radius:15px;background:#13303cd9;color:#f5e6c7;font-size:9px;letter-spacing:.5px;padding:5px 9px;white-space:nowrap;backdrop-filter:blur(6px)}.characters #myEmoji{font-size:27px;margin-right:3px}.characters #myName{font-size:11px;font-weight:500;letter-spacing:.5px;color:#edddbc}.characters #changeCharacter{font-size:9px;border:1px solid #bccdc32b;border-radius:20px;color:#a7bebc;padding:8px 10px;margin-left:5px}@media(max-width:600px){#entrance{padding:28px 23px}#entryTitle{font-size:26px}.entry-animals{gap:7px}.entry-animals b{font-size:32px}.characters #myName{font-size:10px}.characters #changeCharacter{font-size:8px;padding:7px}.characters #myEmoji{font-size:23px}}
/* Generous touch targets and a stable map menu on narrow screens. */
button{min-height:44px}.close{min-width:44px;top:6px;right:8px}input[type=range]{width:100%;height:44px;accent-color:#8b6852;margin:0 0 15px;cursor:pointer}.volume-label{display:flex;justify-content:space-between;font-size:13px;color:#596a5b;margin-top:22px}.volume-label output{color:#969b86;font-size:11px}.volume-help{font-size:10px;color:#969b86;margin:8px 0 0}.pill:disabled{opacity:.6}.places .place{min-height:44px}.characters #changeCharacter{min-height:40px}#audioDialog{max-width:430px}#audioDialog::backdrop{background:#081b2daa;backdrop-filter:blur(7px)}#nameTag{font-size:10px}.tools{flex-wrap:wrap;justify-content:flex-end}#world{overscroll-behavior:none}.bottom{padding-bottom:env(safe-area-inset-bottom)}@media(max-width:650px){header{padding:15px 14px;align-items:flex-start}.brand{font-size:18px;flex-shrink:0}.brand small{letter-spacing:.7px;font-size:6px}.tools{gap:4px;max-width:215px}.pill{font-size:8px;padding:6px 8px;min-height:44px}#audioSettings{font-size:0}#audioSettings::after{content:'⚙';font-size:16px}#info{min-width:36px}.intro{top:95px;left:18px}.intro h1{font-size:24px}.places{inset:auto 18px calc(175px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:360px;margin:auto;pointer-events:none}.places .place{position:static;transform:none;left:auto!important;top:auto!important;visibility:visible!important;pointer-events:auto;width:100%;font-size:10px;min-height:44px;background:#183846dc}.resting .places{bottom:calc(265px + env(safe-area-inset-bottom))}.characters{max-width:calc(100vw - 24px);gap:5px}.characters #myName{max-width:115px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint{padding:0 12px;line-height:1.8}.bottom #journey{font-size:10px}#nameTag{font-size:9px}.toast{bottom:300px}#rest{max-width:420px}dialog{max-height:82svh}}@media(max-width:360px){header .brand small{display:none}header .tools{max-width:190px}.tools .pill{padding:5px 6px}.characters{gap:2px;padding:6px 9px}.characters #myName{max-width:100px}}@media(max-height:530px) and (orientation:landscape){.intro{display:none}.places{inset:auto 14px 120px;display:flex;justify-content:center;gap:7px;pointer-events:none;max-width:none}.places .place{position:static;transform:none;pointer-events:auto;left:auto!important;top:auto!important;visibility:visible!important}.hint{display:none}.bottom{bottom:7px}#journey{margin:0 10px 4px}header{padding:10px 20px}.resting .places{bottom:195px}}
/* Quiet viewing takes priority over navigation on every screen size. */
#placesDialog{max-width:410px;padding:32px 26px}#placesDialog .places{position:static!important;inset:auto!important;display:grid!important;grid-template-columns:1fr 1fr;gap:10px;max-width:none;margin:22px 0 0;pointer-events:auto}#placesDialog .place{position:static!important;transform:none!important;left:auto!important;top:auto!important;visibility:visible!important;width:100%;border-radius:10px;min-height:58px;font-size:12px;background:#405b56;color:#f3e7cf;box-shadow:none;backdrop-filter:none}#placesDialog::backdrop{background:#0b253b88;backdrop-filter:blur(5px)}#browsePlaces{margin:0 auto 9px;display:block;padding:9px 20px;color:#e8d3ab;background:#142e3cd9;font-size:11px;min-height:44px}#rest{width:max-content;max-width:calc(100vw - 24px);margin:0 auto 8px!important;padding:0!important;border:0!important;background:none!important;backdrop-filter:none!important;gap:9px!important}#rest .pill{min-height:44px;font-size:11px;padding:10px 17px;white-space:nowrap}#rest #stand{border:1px solid #dac18b55;margin:0}#restMenu{min-width:44px}#restCaption{position:fixed;z-index:2;top:14%;left:15%;right:15%;text-align:center;color:#f1dfbc;font:13px/2 'Noto Serif KR',serif;text-shadow:0 2px 15px #142e3c;pointer-events:none;transition:opacity 1.2s}#restCaption.fading{opacity:0}.resting header,.resting .intro,.resting #nameTag,.resting #journey,.resting .characters,.resting .hint,.resting #browsePlaces{display:none!important}.resting .bottom{bottom:calc(14px + env(safe-area-inset-bottom));padding-bottom:0}.resting.rest-controls header{display:flex!important;background:none}.resting.rest-controls .brand{display:none}.resting.rest-controls header{justify-content:flex-end}.resting.rest-controls #browsePlaces{display:block!important}.resting.rest-controls #rest{margin-top:10px!important}.resting .toast{bottom:90px}.intro{transition:opacity 1s}.exploring .intro{visibility:hidden}@media(max-width:650px){.bottom{bottom:calc(10px + env(safe-area-inset-bottom));padding-bottom:0}.bottom .characters{padding:3px 12px}.hint{margin-top:6px}#journey{margin:6px 14px 9px!important}#browsePlaces{font-size:10px;padding:8px 16px;margin-bottom:7px}#restCaption{font-size:11px;top:12%;left:10%;right:10%}#rest .pill{font-size:10px;padding:9px 14px}.resting header .tools{max-width:none}.resting.rest-controls .bottom{bottom:calc(10px + env(safe-area-inset-bottom))}}@media(max-height:530px) and (orientation:landscape){#browsePlaces{position:fixed;bottom:12px;left:18px;margin:0}.resting #browsePlaces{position:static;margin:0 auto}#placesDialog{max-height:87svh}#placesDialog .places{margin-top:10px}.resting .bottom{bottom:12px}}
#rest #cocoa{font-size:11px}#cocoa[aria-pressed=true]{border-color:#e9be7b99;background:#6d4c3ccc;color:#f6e6c5}@media(max-width:650px){#rest{gap:6px!important}#rest .pill{padding:9px 12px}#rest #cocoa{font-size:10px}#restMenu{padding:9px 12px!important}}@media(max-width:360px){#rest{gap:4px!important}#rest .pill{padding:8px 9px;font-size:9px}#rest #cocoa{font-size:9px}}
/* Keep the WebGL surface and fixed HUD inside the actual visible Safari viewport. */
html{width:100%;height:100%;overflow:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{width:100%;height:100%;overscroll-behavior:none}#appViewport{position:fixed;left:0;top:0;width:var(--view-width,100vw);height:var(--view-height,100dvh);transform:translate3d(var(--view-left,0px),var(--view-top,0px),0);overflow:hidden;isolation:isolate;background:#132c39}#world{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}#world canvas{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:100%;max-height:100%;touch-action:none}textarea,input[type=text],input[type=email],input[type=search]{font-size:16px!important}dialog{position:fixed;margin:0;left:calc(var(--view-left,0px) + var(--view-width,100vw)/2);top:calc(var(--view-top,0px) + var(--view-height,100dvh)/2);transform:translate(-50%,-50%);width:calc(var(--view-width,100vw) - 36px);max-height:calc(var(--view-height,100dvh)*.85);overscroll-behavior:contain}#entrance{max-height:calc(var(--view-height,100dvh)*.9)}#nameTag{max-width:calc(var(--view-width,100vw) - 24px)}header{max-width:100%;gap:10px}.intro{max-width:calc(var(--view-width,100vw) - 40px)}.hint{overflow-wrap:anywhere}@media(max-width:650px){header .brand{flex-shrink:1;min-width:0}header .tools{flex-shrink:0}.intro{left:18px}h1{max-width:100%;overflow-wrap:break-word}}

#musicToggle{width:100%;margin-top:2px}.audio-credits{margin-top:20px;text-align:left;font-size:11px;line-height:1.8;color:#596a5b}.audio-credits summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 0}.audio-credits a{color:#735440;text-decoration:underline;text-underline-offset:3px}.audio-credits p{overflow-wrap:anywhere}

.entry-animals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.entry-animals button{grid-column:span 2}.entry-animals button:nth-child(4){grid-column:2/span 2}.entry-animals button:nth-child(5){grid-column:4/span 2}

.visiting .intro,.visiting .characters,.visiting .hint,.visiting #browsePlaces{opacity:0;pointer-events:none}.visiting #journey{position:fixed;left:18px;right:18px;bottom:max(38px,env(safe-area-inset-bottom));margin:0;text-align:center;pointer-events:none;text-shadow:0 1px 8px #132c39}

#quietView{display:none;margin:0 auto 10px;min-height:44px;padding:10px 20px}.resting.rest-controls #quietView:not([hidden]){display:block}#quietExit{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:4;min-width:44px;min-height:44px;background:#142e3c55;border-color:#d7e0d52b;opacity:.42}#quietExit[hidden]{display:none}#quietExit:hover,#quietExit:focus-visible{opacity:1}.resting.quiet-rest .bottom,.resting.quiet-rest header,.resting.quiet-rest #restCaption{visibility:hidden!important;pointer-events:none!important}.resting.quiet-rest .toast{display:none}

.brand{font-size:22px;letter-spacing:.3px}@media(max-width:650px){.brand{font-size:14px;max-width:145px}.brand small{font-size:5px;letter-spacing:.3px}}@media(max-width:360px){.brand{font-size:12px}}

/* Quiet room controls stay below the scene, never covering a character. */
.characters{flex-wrap:wrap;gap:10px}#together{font-size:12px;white-space:nowrap;padding:10px 12px;border:1px solid #d7bf8233;border-radius:30px;color:#e7d7b5;background:transparent}#togetherDialog input{width:100%;font-size:16px;padding:12px;border:1px solid #cbb88855;border-radius:12px;color:#e8dfc7;background:#173443;margin:12px 0}#roomActions[hidden]{display:none}.visitor-label{position:absolute;pointer-events:none;transform:translate(-50%,-100%);border:1px solid #d9c79555;border-radius:18px;background:#183442c9;padding:5px 10px;color:#ece1c6;font:11px sans-serif;white-space:nowrap;z-index:3}.quiet-rest .visitor-label{opacity:0}@media(max-width:480px){.characters{max-width:96%;padding:12px 15px;gap:8px}.characters .divider{display:none}#together{font-size:11px;padding:9px}.characters #changeCharacter{font-size:10px;padding:9px}.characters #myName{font-size:13px}}

#restTogether{display:none;margin:0 auto 10px;min-height:44px}.resting.rest-controls #restTogether{display:block}
