@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{--ink:#33433d;--green:#345d4b;--paper:#faf8f2}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#d8ded7;font-family:'Noto Sans KR',system-ui,sans-serif;color:var(--ink)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #dcaa7e;outline-offset:3px}#experience{height:100dvh;position:relative}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.top-ui{position:absolute;top:26px;left:32px;right:32px;display:flex;align-items:center;justify-content:space-between;gap:15px;pointer-events:none}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-size:16px;font-weight:800;background:#fffdf3e8;padding:13px 18px;border-radius:17px;backdrop-filter:blur(14px);box-shadow:0 8px 30px #253f2a0a;pointer-events:auto}.brand small{display:block;font-size:8px;letter-spacing:1.9px;font-weight:500;margin-top:5px;color:#8c9383}.brand-icon{background:#e0e7d9;width:37px;height:37px;border-radius:11px;display:grid;place-items:center;font:bold 30px Georgia;color:#45614d}.top-actions{display:flex;align-items:center;gap:8px;pointer-events:auto}.top-actions button,.floor-tag,.view-tools button{border:1px solid #e0e4d4;background:#fffdf2e8;color:#52634e;border-radius:12px;padding:11px 15px;font-size:11px;backdrop-filter:blur(12px)}.top-actions #help{width:38px;padding:10px;font-weight:700}.floor-tag i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7c9769;margin-right:7px}.location{position:absolute;top:137px;left:44px;pointer-events:none;text-shadow:0 1px 8px #ffffff}.location>span{font-size:9px;letter-spacing:2px;color:#62715c}h1{font-size:25px;letter-spacing:-1px;margin:9px 0 6px;font-weight:600}.location p{font-size:11px;color:#6f7d67;margin:0}.bottom-ui{position:absolute;left:32px;right:32px;bottom:32px;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none}.instructions{display:flex;align-items:center;gap:12px;border:1px solid #ffffff80;background:#f8f8eddd;backdrop-filter:blur(12px);padding:14px 17px;border-radius:14px;font-size:11px;color:#5a6b51}.key{border:1px solid #c8d1bd;padding:8px;border-radius:6px;font-size:10px;letter-spacing:2px}.instructions i{margin:0 5px;color:#aab39e}.instructions small{display:block;font-size:9px;color:#929d85;margin-top:5px}.actions{display:flex;gap:8px;pointer-events:auto;margin-left:auto}.primary,.secondary{border-radius:13px;padding:15px 24px;font-size:12px;font-weight:600;box-shadow:0 5px 20px #26372b10}.primary{background:#345d4bf2;color:white;border:1px solid #345d4b}.primary:hover{background:#274b3b}.secondary{background:#fffdf1ee;color:#627154;border:1px solid #e2e6d7}.secondary:hover{background:#f3f5e9}.view-tools{display:flex;gap:5px;pointer-events:auto}.view-tools button{padding:11px;min-width:35px}.bubble{position:absolute;top:120px;left:50%;transform:translateX(-50%) translateY(-10px);background:#fffdf4f2;backdrop-filter:blur(10px);box-shadow:0 8px 35px #293b2415;border:1px solid white;border-radius:30px;padding:14px 25px;font-size:12px;color:#526649;max-width:85%;text-align:center;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:5}.bubble.show{opacity:1;transform:translateX(-50%) translateY(0)}.corner-label{position:absolute;left:44px;bottom:116px;color:#54654c;font-size:9px;letter-spacing:.4px;pointer-events:none;text-shadow:0 1px 8px white}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#7b925f;margin-right:5px}#clock{margin-left:14px;opacity:.7}.loading{position:absolute;inset:0;background:#eeeee5;display:grid;place-items:center;font-size:13px;color:#70816c;z-index:9;transition:opacity .5s}.loading.done{opacity:0;pointer-events:none}dialog{border:1px solid #e3e5d8;border-radius:23px;padding:34px;width:min(400px,calc(100% - 32px));max-height:calc(100dvh - 30px);overflow:auto;background:#fcfbf5;color:var(--ink);box-shadow:0 30px 100px #19332228;z-index:20}dialog::backdrop{background:#263a3259;backdrop-filter:blur(7px)}.modal-icon{font-size:26px;display:block;margin-bottom:22px}.eyebrow{font-size:8px;letter-spacing:1.6px;color:#7d8c72;font-weight:600}dialog h2{font-size:26px;letter-spacing:-1px;margin:10px 0 14px}dialog p{font-size:12px;line-height:1.9;color:#87917d;margin:0}dialog label{display:block;font-size:11px;font-weight:600;margin:22px 0 8px}input{width:100%;border:1px solid #d9dece;border-radius:10px;padding:12px;background:white;color:var(--ink);outline:none}input:focus{border-color:#78916b}.outfits{display:flex;gap:12px}.swatch{width:30px;height:30px;border-radius:50%;background:var(--swatch);border:3px solid #fcfbf5;outline:1px solid transparent}.swatch.selected{outline-color:#58734c}.enter{width:100%;margin-top:25px}.modal-note{font-size:9px;color:#969f8d;text-align:center;display:block;margin-top:15px}#joystick,.mobile-look{display:none}@media(max-width:700px){.top-ui{top:16px;left:14px;right:14px;gap:8px}.brand{padding:10px 12px;font-size:12px;gap:8px;border-radius:13px}.brand small{font-size:6px;letter-spacing:1px}.brand-icon{width:29px;height:29px;font-size:25px}.top-actions{gap:5px}.top-actions button{font-size:9px;padding:10px}.floor-tag{display:none}.location{left:23px;top:105px}h1{font-size:21px}.location p{font-size:10px}.bottom-ui{left:14px;right:14px;bottom:20px;align-items:end;gap:8px}.instructions{display:none}.actions{gap:6px;margin-left:auto}.actions button{padding:13px 15px;font-size:11px}.view-tools{position:absolute;right:0;bottom:59px}.view-tools button{padding:8px;font-size:10px;min-width:31px}.corner-label{left:21px;bottom:177px;font-size:8px}.corner-label #clock{display:none}.bubble{top:175px;font-size:11px;padding:12px 18px;width:max-content;max-width:85%}#joystick{display:block;position:absolute;bottom:38px;left:29px;width:104px;height:104px;touch-action:none}.joystick-ring{width:100%;height:100%;border-radius:50%;border:1px solid #fdfdf7b0;background:#f7f7ed45;backdrop-filter:blur(4px);display:grid;place-items:center}.joystick-ring span{width:44px;height:44px;background:#fffdf1b8;border:1px solid #d4dcc6;border-radius:50%;box-shadow:0 2px 10px #34442d0d;pointer-events:none}.mobile-look{display:block;position:absolute;bottom:12px;left:30px;font-size:8px;color:#6c7d5f;text-shadow:0 1px 4px white;pointer-events:none}dialog{padding:27px}.modal-icon{margin-bottom:15px}}
[hidden]{display:none!important}.cat-menu{position:absolute;z-index:20;left:50%;bottom:110px;transform:translateX(-50%);width:min(470px,calc(100% - 32px));max-height:70vh;overflow:auto;padding:24px;background:#faf9f3f5;border:1px solid #d9ddce;border-radius:24px;box-shadow:0 18px 70px #263a3130;backdrop-filter:blur(16px);color:#34493d}.cat-menu-head{display:flex;gap:18px;align-items:center}.cat-portrait{width:110px;height:110px;flex-shrink:0;background-image:url('assets/nurungji-emotions-v2.png');background-size:300% 200%;background-position:0 0;border-radius:20px;background-color:#e8e9dd}.cat-menu h2{font-size:24px;margin:5px 0}.cat-menu small{font-size:9px;letter-spacing:.1em;color:#71816b}.cat-menu-head p{font-size:12px;line-height:1.7;margin:0}.cat-close{position:absolute;right:12px;top:10px;width:32px;height:32px;border:0;background:transparent;font-size:25px;color:#66735f;cursor:pointer}.cat-dialogue{font-size:16px;line-height:1.85;min-height:60px;margin:22px 0}.cat-menu-actions{display:flex;gap:8px;flex-wrap:wrap}.cat-menu-actions button{flex:1;padding:13px 15px;white-space:nowrap}.cat-menu-actions button:disabled{opacity:.45;cursor:not-allowed}.cat-menu button:focus-visible{outline:3px solid #bd985c;outline-offset:3px}@media(max-width:650px){.cat-menu{bottom:145px;padding:20px}.cat-portrait{width:88px;height:88px}.cat-menu-actions button{font-size:12px;padding:12px 10px}.cat-dialogue{font-size:14px}}
.intro-steps{list-style:none;padding:0;margin:19px 0 5px;display:grid;gap:11px}.intro-steps li{display:flex;gap:11px;align-items:flex-start}.intro-steps li>span{font-size:10px;font-weight:700;color:#718069;background:#edf0e6;border-radius:8px;padding:6px}.intro-steps strong{font-size:11px;display:block;font-weight:600}.intro-steps small{font-size:10px;display:block;color:#819078;line-height:1.7;margin-top:3px}.manager-card{position:absolute;z-index:15;left:50%;bottom:112px;transform:translateX(-50%);width:min(390px,calc(100% - 32px));padding:22px;border:1px solid #ddd9cb;border-radius:20px;background:#fcfaf2f5;box-shadow:0 18px 60px #182a3229;backdrop-filter:blur(15px)}.manager-card-top{display:flex;gap:12px;align-items:center}.manager-badge{width:43px;height:43px;background:#30343b;color:#101318;border-radius:13px;display:grid;place-items:center;font-size:27px}.manager-card small{font-size:9px;letter-spacing:.13em;color:#8a877a}.manager-card h2{font-size:18px;margin:3px 0 0}.manager-card p{font-size:14px;line-height:1.8;margin:16px 0}.manager-actions button{width:100%;padding:12px}.manager-card.scolding{border-color:#bd8d75}.manager-card.scolding .manager-badge{background:#685046}.manager-actions:has(button:not([hidden])){display:block}.manager-actions:not(:has(button:not([hidden]))){display:none}@media(max-width:650px){.manager-card{bottom:145px;padding:18px}.manager-card p{font-size:13px}#welcome .modal-icon{margin-bottom:10px}#welcome h2{font-size:23px}.intro-steps{margin-top:14px;gap:9px}}
.coffee-quest{position:absolute;right:32px;top:112px;max-width:300px;padding:15px 18px;border-radius:15px;background:#fcf8eaf2;border:1px solid #d9d5bd;box-shadow:0 8px 30px #24332810;pointer-events:none}.coffee-quest small{display:block;font-size:11px;font-weight:700;color:#846845}.coffee-quest span{display:block;font-size:12px;line-height:1.6;margin-top:6px}.coffee-quest em{display:block;font-size:10px;font-style:normal;color:#8b927e;margin-top:5px}.coffee-card{position:absolute;left:50%;bottom:112px;transform:translateX(-50%);z-index:16;background:#fcfaf2f5;border:1px solid #d7d7c6;border-radius:20px;padding:22px;width:min(390px,calc(100% - 32px));box-shadow:0 18px 60px #182a3229}.coffee-card small{font-size:9px;letter-spacing:.15em;color:#8a877a}.coffee-card h2{font-size:20px;margin:8px 0}.coffee-card p{font-size:12px;line-height:1.7}.coffee-card button{width:100%;padding:12px}.coffee-card button:disabled{opacity:.55;cursor:wait}@media(max-width:650px){.coffee-quest{right:14px;top:90px;max-width:220px;padding:12px}.coffee-quest span{font-size:11px}.coffee-quest em{font-size:9px}.coffee-card{bottom:145px;padding:18px}}

#welcome h2{word-break:keep-all}.manager-badge{background:#727b77;color:#e2e5e1}.manager-card.scolding .manager-badge{background:#7e7974}
.desk-menu{position:absolute;z-index:21;left:50%;bottom:112px;transform:translateX(-50%);width:min(450px,calc(100% - 32px));padding:25px;border:1px solid #d9d6bd;border-radius:23px;background:#fcfaf1f5;box-shadow:0 18px 65px #24382c26;backdrop-filter:blur(15px)}.desk-menu>small{font-size:9px;color:#9b8b6b;letter-spacing:.13em}.desk-menu h2{font-size:20px;line-height:1.6;margin:9px 0}.desk-menu p{min-height:60px;line-height:1.9;font-size:13px;margin:12px 0 20px}.desk-actions{display:flex;gap:8px;flex-wrap:wrap}.desk-actions button{padding:12px 13px;flex:1;white-space:nowrap;font-size:11px}.desk-actions button:first-child{flex-basis:100%}@media(max-width:650px){.desk-menu{bottom:145px;padding:20px}.desk-menu h2{font-size:18px}.actions{flex-wrap:wrap;justify-content:flex-end}#desk-open{font-size:10px;padding:10px}}
/* Hands-on desk toys */
.desk-menu{width:min(490px,calc(100vw - 24px));max-height:calc(100dvh - 28px);overflow:auto;padding:27px 25px 20px;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);z-index:26;background:#fcfaf4;box-shadow:0 0 0 100vmax #1b302950,0 22px 90px #1c30293d;border-radius:22px}
.desk-menu h2{font-size:22px;margin:7px 0 5px}.desk-menu>p{margin:0 0 15px;font-size:11px}.desk-menu>small{font-size:8px;letter-spacing:1.8px;color:#8d9787}.desk-game-tabs{display:flex;gap:6px;border-bottom:1px solid #e2e4d8;padding-bottom:13px;margin-bottom:16px}.desk-game-tabs button{flex:1;border:1px solid #dce1d4;border-radius:11px;padding:11px 5px;background:#f7f6ee;font-size:11px;color:#6b7766;white-space:nowrap}.desk-game-tabs button.selected{color:#fff;background:#466652;border-color:#466652}.desk-game-heading{display:flex;gap:8px;align-items:center;justify-content:space-between}.desk-game-heading h3{font-size:14px;margin:0}.desk-game-heading span{font-size:10px;white-space:nowrap;color:#8a917f}#desk-game-help{font-size:10px;line-height:1.65;color:#7e8776;margin:7px 0 10px}.desk-play-stage{width:100%;aspect-ratio:1;display:block;position:relative;overflow:hidden;border-radius:15px;border:1px solid #e8e2d6;background:radial-gradient(ellipse at 50% 40%,#fcf7e7 0%,#eee6d7 85%);padding:0;touch-action:none;user-select:none;-webkit-user-select:none}.desk-play-stage:focus-visible{outline:3px solid #c49468;outline-offset:3px}.squish-touch{cursor:grab}.squish-touch:active{cursor:grabbing}#squish-hands{display:block;width:100%;height:100%;pointer-events:none}.desk-stage-caption{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);background:#fcfaf2e8;color:#6f7968;border:1px solid #ffffffa0;border-radius:20px;padding:6px 12px;font-size:9px;white-space:nowrap;pointer-events:none}#desk-play-status{min-height:18px;margin:12px 0 0;font-size:11px;color:#65745a;text-align:center;line-height:1.7}.rabbit-hands{position:absolute;inset:0;background-image:url('assets/tokki-head-punch-v1.png');background-size:200% 100%;background-position:0 0;pointer-events:none;transform-origin:49% 20%}.rabbit-touch.punching .rabbit-hands{background-position:100% 0;animation:plush-punch .23s ease-out}.punch-mark{position:absolute;top:61%;left:56%;opacity:0;font-weight:800;font-size:23px;color:#8b6c4e;transform:rotate(-10deg);pointer-events:none}.punching .punch-mark{animation:plush-hit .23s ease-out}.coffee-cup-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#coffee-hairs{position:absolute;inset:0}.coffee-hair{position:absolute;width:44px;height:44px;transform:translate(-50%,-50%) rotate(var(--hair-angle));background:none;border:0;border-radius:50%;padding:0;transition:opacity .22s,translate .3s;touch-action:manipulation}.coffee-hair svg{width:44px;height:44px;overflow:visible;filter:drop-shadow(0 1px 1px #1d160c77)}.coffee-hair path{fill:none;stroke:#eec190;stroke-width:1.8;stroke-linecap:round}.coffee-hair:hover{background:#fff2d52a}.coffee-hair.removed{opacity:0;translate:0 -25px;pointer-events:none}#coffee-clean-done{position:absolute;bottom:15px;left:0;right:0;text-align:center;color:#4b6c4e;pointer-events:none}#coffee-clean-done span{display:block;font-size:21px;margin-bottom:5px}#coffee-clean-done strong{font-size:12px}#coffee-clean-reset{display:block;margin:10px auto 0;padding:10px 18px;font-size:11px}.npc-cat-speech{position:absolute;top:110px;left:50%;transform:translateX(-50%);z-index:7;max-width:85vw;width:max-content;padding:14px 22px;background:#fffaf0f5;border:1px solid #dec7af;border-radius:17px;box-shadow:0 8px 30px #3a31291a;pointer-events:none}.npc-cat-speech strong{display:block;font-size:10px;color:#92775a;margin-bottom:5px}.npc-cat-speech span{font-size:13px;color:#544b3f}
@keyframes plush-punch{0%{transform:rotate(0)}40%{transform:rotate(-3deg) translateX(-4px)}100%{transform:rotate(0)}}@keyframes plush-hit{0%{opacity:0;scale:.7}35%{opacity:1;scale:1.1}100%{opacity:0;translate:8px -9px}}
@media(max-width:700px){.desk-menu{padding:23px 17px 17px;width:min(440px,calc(100vw - 22px))}.desk-menu h2{font-size:20px}.desk-game-tabs{margin-bottom:12px}.desk-play-stage{max-height:45dvh;aspect-ratio:1;width:auto;margin:auto}.desk-game-heading h3{font-size:12px}.npc-cat-speech{top:90px;padding:11px 15px}.npc-cat-speech span{font-size:11px}}
@media(prefers-reduced-motion:reduce){.punching .rabbit-hands,.punching .punch-mark{animation:none}.coffee-hair{transition:none}}
.desk-menu p{min-height:0}#desk-game-help{margin:7px 0 10px;font-size:10px;line-height:1.65}#desk-play-status{margin:12px 0 0;font-size:11px;min-height:18px;line-height:1.7}
.plant-card{position:absolute;right:28px;bottom:112px;z-index:12;width:min(310px,calc(100vw - 28px));padding:22px;border:1px solid #d9e3cc;border-radius:19px;background:#fbfcf1f5;box-shadow:0 12px 40px #2b45321f;backdrop-filter:blur(12px)}.plant-card>small{font-size:9px;letter-spacing:1.2px;color:#8b9b78}.plant-card h2{font-size:18px;margin:8px 0 10px}.plant-card p{font-size:12px;line-height:1.8;margin:0 0 15px;color:#6d7c5c}.plant-card button{width:100%;padding:13px}.plant-card .plant-note{display:block;font-size:9px;letter-spacing:0;margin-top:10px;color:#89957b}.plant-card progress{display:block;width:100%;height:7px;margin:0 0 13px;accent-color:#789f68}@media(max-width:700px){.plant-card{right:14px;bottom:145px;padding:17px;width:280px}.plant-card h2{font-size:16px}}
.brand .brand-portrait{display:block;width:48px;height:48px;flex:0 0 48px;object-fit:cover;object-position:center;border-radius:11px;border:1px solid #e0dfd4;background:#e9e6df}@media(max-width:700px){.brand .brand-portrait{width:37px;height:37px;flex-basis:37px;border-radius:9px}}
@media(max-width:700px){.actions{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 142px);gap:5px}.actions button{padding:11px 12px;font-size:10px}}
.actions{flex-wrap:wrap;justify-content:flex-end;max-width:760px}.actions button{white-space:nowrap}.floor-tag #online-count{color:#849078;font-size:10px}@media(max-width:1100px){.instructions{display:none}.actions{max-width:calc(100vw - 180px)}}@media(max-width:700px){.actions{max-width:calc(100vw - 142px)}.actions button{padding:10px;font-size:10px}}
