@import url('https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root{--ink:#463b2c;--cream:#fff9e9;--accent:#9c492e}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#e4cfac;color:var(--ink);font-family:'Noto Sans KR',sans-serif}button,a{touch-action:manipulation}button{font:inherit;color:inherit;border:0;cursor:pointer}button:focus-visible{outline:3px solid #fff;outline-offset:4px}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.hidden{display:none!important}#world,#world canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}#world canvas{display:block}.glass{background:rgba(255,249,231,.74);border:1px solid rgba(255,255,255,.65);box-shadow:0 4px 24px #4930140c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}#loading{position:absolute;inset:0;background:#f1e9db;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:50}#loading svg{color:#a75e37;width:45px;height:45px;animation:float 2s infinite ease-in-out}#loading p{font-size:13px;letter-spacing:2px;color:#8b7b65;margin-top:24px}#intro{position:absolute;inset:0;background:linear-gradient(0deg,#40311f38,transparent 60%);z-index:10;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;padding:38px 24px 32px}.intro-top{position:absolute;top:max(40px,env(safe-area-inset-top));font-size:9px;letter-spacing:4px;color:#67482a;opacity:.8}.intro-card{padding:34px 36px 26px;border-radius:28px;width:min(100%,360px);background:#fffaecd9;border:1px solid #fff9;backdrop-filter:blur(12px);text-align:center;margin-bottom:20px;box-shadow:0 18px 70px #5d3a201c}.eyebrow{font-size:11px;letter-spacing:3px;color:#886d4a}.intro-card h1{font-family:'Gowun Batang',serif;font-weight:400;font-size:43px;letter-spacing:-2px;margin:10px 0 13px}.intro-card h1 span{color:#bc603b}.intro-card p{font-size:13px;line-height:1.9;color:#8b785c;margin:0 0 25px}.intro-card button{display:flex;align-items:center;justify-content:space-between;width:100%;background:#85472f;color:#fff8e8;border-radius:15px;padding:16px 21px;font-size:14px}.intro-card button span{font-size:23px;line-height:1}.intro-card small{display:block;color:#9b8b73;font-size:10px;margin-top:15px}.intro-footer{font-family:'Gowun Batang',serif;font-size:12px;letter-spacing:1px;color:#fff4dc;text-shadow:0 1px 4px #3c261d66}#hud{position:absolute;inset:0;pointer-events:none}#hud button,#hud nav{pointer-events:auto}header{position:absolute;top:max(20px,env(safe-area-inset-top));left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;gap:10px}.brand{display:flex;align-items:center;gap:10px;padding:10px 15px;border-radius:20px;text-align:left}.brand>svg{color:#a44d2e;width:27px;height:27px}.brand strong{display:block;font-family:'Gowun Batang',serif;font-size:18px;font-weight:700;letter-spacing:-.7px}.brand small{display:block;font-size:9px;color:#8d785b;margin-top:2px;letter-spacing:1px}.chevron{margin-left:5px;opacity:.6}.top-actions{display:flex;gap:8px}.round{width:45px;height:45px;border-radius:50%;display:grid;place-items:center}.round svg{width:20px;height:20px}.under-header{position:absolute;top:100px;left:24px;right:22px;display:flex;justify-content:space-between;align-items:center}.presence{font-size:10px;letter-spacing:.2px;color:#5f543b;display:flex;align-items:center;gap:6px;text-shadow:0 1px 5px #fff8}.presence i{width:5px;height:5px;background:#9c8e4c;border-radius:50%}.map-btn{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:30px;font-size:10px}.map-btn svg{width:15px;height:15px}#hint{position:absolute;top:158px;width:100%;text-align:center;font-size:11px;color:#fffce9;letter-spacing:.3px;text-shadow:0 2px 8px #32250e;transition:opacity 1s}#nameTag{position:absolute;left:0;top:0;transform:translate(-50%,-100%);background:#fff9e8e6;border-radius:22px;padding:5px 10px 5px 5px;display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:10px;box-shadow:0 2px 8px #00000008}#nameTag span{display:grid;place-items:center;border-radius:50%;width:21px;height:21px;background:#9a9469;color:#fff;font-size:10px}#nameTag b{font-weight:500}.bottom{position:absolute;bottom:max(14px,env(safe-area-inset-bottom));left:20px;right:20px;display:flex;align-items:center;flex-direction:column;gap:12px}.actionbar{display:flex;width:100%;max-width:450px;border-radius:25px;padding:7px}.actionbar button{position:relative;flex:1;padding:10px 0 8px;border-radius:19px;background:transparent;display:flex;align-items:center;flex-direction:column;gap:7px;transition:background .2s,transform .2s}.actionbar button svg{width:27px;height:27px;stroke-width:1.3}.actionbar button span{font-size:10px;font-weight:500;letter-spacing:-.3px}.actionbar button.active{background:#a85e3622;color:#8e472a}.actionbar button:active{transform:scale(.94);background:#a85e3622}#location{font-size:10px;color:#fff8e5;display:flex;align-items:center;gap:6px;text-shadow:0 1px 6px #352714}#location span{width:4px;height:4px;border-radius:50%;background:#ffe7ac}.bottom-note{font-family:'Gowun Batang',serif;font-size:10px;color:#fff7de;text-shadow:0 1px 6px #352714;letter-spacing:1px}.photo-button{position:absolute;bottom:170px;right:23px;width:43px;height:43px;display:grid;place-items:center;border-radius:50%}.photo-button svg{width:21px;height:21px}#toast{position:absolute;left:50%;bottom:190px;transform:translate(-50%,15px);border-radius:40px;background:#453827df;color:#fff7e8;padding:12px 20px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;white-space:nowrap;z-index:35}#toast.show{opacity:1;transform:translate(-50%,0)}#modal,#photoView{position:absolute;inset:0;background:#30271755;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:30}.sheet{position:relative;background:#fff9ed;border:1px solid #fff9;border-radius:28px;width:100%;max-width:390px;padding:30px 25px;box-shadow:0 20px 100px #39231133}.close{position:absolute;top:17px;right:17px;display:grid;place-items:center;background:#b69a7320;width:33px;height:33px;border-radius:50%}.close svg{width:16px}.sheet h2{font-family:'Gowun Batang',serif;font-size:26px;font-weight:400;margin:3px 0 8px}.sheet p{font-size:12px;color:#978164;line-height:1.8;margin-bottom:22px}.place{display:flex;align-items:center;gap:15px;padding:16px;background:#ece2d24d;border:1px solid #e5d7c4;border-radius:15px;width:100%;text-align:left;margin-top:9px}.place .emoji{font-size:28px}.place strong{display:block;font-size:13px;font-weight:500}.place small{display:block;margin-top:4px;color:#a18c6f;font-size:10px}.place .arrow{margin-left:auto;color:#a18c6f}.room-list{display:flex;gap:8px}.room-list button{flex:1;padding:16px 8px;background:#f0e5d3;border-radius:15px}.room-list button.current{background:#8a4c31;color:white}.sheet .primary{width:100%;padding:14px;border-radius:14px;background:#8a4c31;color:#fff7e5;margin-top:15px;font-size:12px}.sheet .link-copy{display:flex;background:#f0e5d3;border-radius:12px;overflow:hidden}.link-copy input{min-width:0;flex:1;border:0;outline:none;background:transparent;padding:12px;font-size:11px;color:#7d6a50}.link-copy button{background:#e2cbb1;padding:0 14px;font-size:11px}.photo-card{background:#fff8ea;padding:24px 20px 20px;border-radius:23px;max-width:370px;width:100%;max-height:95%;overflow:auto;text-align:center}.photo-card h2{font-family:'Gowun Batang',serif;font-weight:400;font-size:23px;margin:0}.photo-card p{font-size:11px;color:#978164;margin:8px 0 18px}.photo-card img{display:block;width:100%;max-height:61vh;object-fit:contain;background:#e5dac4;border-radius:6px}.photo-actions{display:flex;gap:8px;margin-top:17px}.photo-actions button{flex:1;padding:13px 10px;border-radius:12px;background:#e9decb;font-size:12px}.photo-actions button:first-child{background:#8a4c31;color:#fff8e9}#flash{position:absolute;inset:0;background:#fff8e5;opacity:0;pointer-events:none;z-index:40}#flash.flash{animation:flash .5s ease-out}.remote-label{position:absolute;font-size:9px;color:#fff8e5;background:#564d3e88;border-radius:20px;padding:5px 9px;transform:translate(-50%,-100%);pointer-events:none;white-space:nowrap}.error-note{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:40px;background:#f1e9db;z-index:100;text-align:center;line-height:2}@keyframes float{0%,100%{transform:translateY(0) rotate(-10deg)}50%{transform:translateY(-9px) rotate(7deg)}}@keyframes flash{0%{opacity:.8}100%{opacity:0}}@media(min-width:700px){header{left:35px;right:35px;top:28px}.under-header{left:40px;right:40px;top:110px}.bottom{bottom:23px}.brand{padding:12px 18px}.brand strong{font-size:20px}.round{width:49px;height:49px}.actionbar{padding:9px;max-width:420px}.actionbar button{padding:12px 0 10px}.actionbar button span{font-size:11px}.intro-card{margin-bottom:30px}.photo-button{bottom:41px;right:40px;width:48px;height:48px}#hint{top:165px}.intro-top{top:45px}.bottom-note{font-size:11px}}
/* More actions, still one compact touch panel. */
.actionbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;max-width:450px}.actionbar button{min-width:0;padding:8px 2px 7px;gap:5px}.actionbar button svg{width:24px;height:24px}.actionbar button span{font-size:10px}.actionbar #rustleBtn{grid-column:span 2;flex-direction:row;justify-content:center;gap:10px;background:#c9893920}.actionbar #rustleBtn span{font-size:11px}.photo-button{bottom:225px}#toast{bottom:243px}.bottom{gap:9px}.bottom-note{font-size:9px}
#rustleView{position:absolute;inset:0;z-index:26;display:flex;align-items:center;flex-direction:column;background:radial-gradient(ellipse at 50% 45%,#f4dfb1df,#5b3d25dd);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);color:#fff3d8;overflow:hidden}.rustle-header{position:absolute;top:max(22px,env(safe-area-inset-top));left:25px;right:22px;display:flex;justify-content:space-between;align-items:center}.rustle-header .eyebrow{color:#fff4d2;letter-spacing:3px;font-size:9px}.rustle-header .round{width:39px;height:39px;color:#63442c}.rustle-title{text-align:center;padding-top:max(95px,calc(env(safe-area-inset-top) + 65px));z-index:1}.rustle-title h2{font-family:'Gowun Batang',serif;font-size:35px;font-weight:400;margin:0 0 12px;text-shadow:0 2px 20px #6f361c33}.rustle-title p{font-size:11px;letter-spacing:.3px;margin:0;color:#fff5ded9}#rustleCanvas{display:block;width:min(100vw,480px);height:calc(100dvh - 335px);min-height:200px;max-height:520px;touch-action:none;cursor:grab;flex:1;max-width:100%}#rustleCanvas:active{cursor:grabbing}.rustle-bottom{padding:0 20px max(28px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:18px;width:100%}.rustle-bottom>span{font-family:'Gowun Batang',serif;font-size:16px;letter-spacing:1px;height:23px}.rustle-bottom>div{display:flex;gap:8px}.rustle-bottom button{border-radius:30px;padding:13px 24px;font-size:12px;color:#63442c}.rustle-bottom #rustleSound{padding:12px 15px;display:grid;place-items:center}.rustle-bottom svg{width:19px;height:19px}.rustle-bottom small{font-size:10px;letter-spacing:.5px;color:#fff5d899}@media(min-width:700px){.photo-button{bottom:41px}.actionbar button{padding:9px 2px}.rustle-title{padding-top:85px}#rustleCanvas{width:520px}.rustle-bottom{gap:16px}}@media(max-height:620px){.rustle-title{padding-top:65px}.rustle-title h2{font-size:26px;margin-bottom:8px}.rustle-bottom{gap:10px;padding-bottom:15px}.rustle-bottom small{display:none}#rustleCanvas{min-height:140px}.actionbar button{padding:5px 2px}.actionbar button svg{width:20px;height:20px}.bottom-note{display:none}.photo-button{bottom:175px}}

/* Six actions after removing sitting. */
.actionbar{grid-template-columns:repeat(3,minmax(0,1fr))}.actionbar #rustleBtn{grid-column:auto;flex-direction:column;gap:5px}.actionbar #rustleBtn span{font-size:10px}

#intro{transition:opacity .35s ease;pointer-events:none}#intro.leaving{opacity:0}

.photo-external{display:block;margin-top:12px;padding:12px;border-radius:12px;background:#70402c;color:#fff8e9;text-decoration:none;font-size:13px}.photo-card img{-webkit-touch-callout:default;user-select:auto}button:disabled{opacity:.6}

#rustleView{position:fixed;inset:0;width:100%;height:100%;height:100dvh;touch-action:none;overscroll-behavior:none}#world{position:fixed;inset:0}html,body{overscroll-behavior:none}

#hud #skipStoneBtn{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);background:#dff7f2ed;border:2px solid #fff;border-radius:32px;color:#3d6870;padding:10px 15px;font-size:12px;font-weight:700;box-shadow:0 4px 15px #335a5a40;white-space:nowrap;animation:stonebob 1.5s ease-in-out infinite;z-index:4}@keyframes stonebob{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-62%)}}
