/* ──────────────────────────────────────────────────────────────
   나스 포레스트 · 전체 화면 월드 (산사 sansatemple.com 의 셸을 따름)
   - 입장 화면(.boot) → 전체 화면 캔버스 → 상단 HUD · 하단 글래스 독(.modes) · 도구(.tools)
   - 핀/시트/범례 스타일은 sansa-map.css 의 .sm-* 를 그대로 쓴다
   ────────────────────────────────────────────────────────────── */
:root{
  --paper:#eeece3; --ink:#34382f; --ink-2:#4d5144; --muted:#838677; --moss:#596253; --bronze:#988762;
  --glass:#222820dc; --glass-edge:#e3d3b326; --glass-ink:#f8faf9; --glass-muted:#d5dcd7; --focus:#f2dca8;
  --ease:cubic-bezier(.22,1,.36,1); --safe-top:max(8px,env(safe-area-inset-top,0px)); --safe-bottom:max(8px,env(safe-area-inset-bottom,0px));
  --ui:"Wanted Sans Variable",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#20251f;color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;word-break:keep-all}
button{font:inherit}
button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* 월드 */
.world{position:fixed;inset:0}
.world canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}
.world canvas:active{cursor:grabbing}
.world.is-walk canvas{cursor:crosshair}
.world.is-sitting canvas{cursor:grab}
.world .sm-pin{position:absolute;transform:translate(-50%,-50%);width:auto;height:auto;min-width:0;min-height:0;background:transparent}
.world .sm-pin:hover,.world .sm-pin[aria-pressed=true]{background:transparent;box-shadow:none}
.world .sm-pin--chest .sm-dot{display:none}
.world .sm-pin--chest .sm-tag{opacity:0;transition:opacity .3s}
.world.is-hunt .sm-pin--chest .sm-tag,.world .sm-pin--chest[aria-pressed=true] .sm-tag,.world .sm-pin--chest.is-found .sm-tag{opacity:1}
.world .sm-pin--chest.is-found .sm-tag{background:#5a4a2c99;text-decoration:line-through;color:#f2dca8}
.world[data-focus] .sm-pin:not([aria-pressed=true]){opacity:.45}

/* 상단 HUD (산사 .game-header) */
.hud{position:fixed;top:calc(var(--safe-top) + 8px);left:0;right:0;z-index:20;display:flex;align-items:flex-start;justify-content:space-between;padding:0 14px;pointer-events:none}
.hud>*{pointer-events:auto}
.brand{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 10px;border-radius:16px;background:var(--glass);border:1px solid var(--glass-edge);color:var(--glass-ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 4px 24px #10150e22}
.brand svg{width:26px;height:26px;color:#e3d3b3;stroke-width:1.1;flex:none}
.brand h1{margin:0;font-size:15px;font-weight:500;letter-spacing:.22em;line-height:1.2}
.brand p{margin:2px 0 0;font-size:11px;color:var(--glass-muted);letter-spacing:.01em}
.tools{display:flex;gap:6px}
.tool{width:44px;height:44px;border-radius:22px;border:1px solid var(--glass-edge);background:var(--glass);color:var(--glass-ink);display:grid;place-items:center;cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 4px 24px #10150e22;transition:background .2s,transform .28s var(--ease)}
.tool:hover{background:#2b3229ec}
.tool:active{transform:scale(.96)}
.tool svg{width:20px;height:20px;stroke-width:1.45}
.tool[aria-pressed=true]{background:#f3efe5;color:var(--ink)}
.tool-time{width:auto;padding:0 12px 0 10px;display:inline-flex;gap:6px;align-items:center;font-size:12.5px;font-weight:500}
.tool-time .t-label{white-space:nowrap}

/* 보물 카운터 */
.hunt{position:fixed;top:calc(var(--safe-top) + 64px);right:14px;z-index:20;display:none;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#5a4a2cde;color:#fff3d7;border:1px solid #ffdfab4d;font-size:12.5px;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.hunt .sm-dot{width:9px;height:9px;animation:none}
.world.is-hunt ~ .hunt,.hunt.is-on{display:inline-flex}

.world .sm-pin--staff .sm-tag{background:#fffdf7f0;color:#2f5f3f;border-color:#3e8a5a66;font-weight:600}
/* 미션 진행 칩 (보물 칩 아래) */
.hunt.progress{top:calc(var(--safe-top) + 64px);background:var(--glass);color:var(--glass-ink);border-color:var(--glass-edge);cursor:pointer;font:inherit;font-size:12.5px;font-weight:500}
.hunt.is-on + .hunt.progress{top:calc(var(--safe-top) + 102px)}
.hunt.progress:hover{background:#2b3229ec}
/* 시트 액션 버튼 */
.sm-sheet .sm-act{grid-column:1;justify-self:start;margin-top:8px;height:34px;padding:0 14px;border-radius:17px;border:1px solid #93a38c;background:#e2e8d9;color:#40564a;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:transform .28s var(--ease)}
.sm-sheet .sm-act:active{transform:scale(.97)}
.sm-sheet .sm-act[hidden]{display:none}
/* 미션 목록 */
.missions li{grid-column:1 / -1}
.missions button{flex-direction:row;align-items:center;gap:12px;cursor:pointer}
.missions .mk{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid #c9c2ad;display:grid;place-items:center;color:#fff;background:#fffdf7;font-size:13px}
.missions li.done .mk{background:#6f8a5a;border-color:#6f8a5a}
.missions li.done b{color:var(--muted);text-decoration:line-through}
.missions .mt{display:flex;flex-direction:column;gap:2px}
.missions .go{margin-left:auto;flex:none;font-size:11.5px;color:#40564a;background:#e2e8d9;border:1px solid #93a38c;border-radius:999px;padding:4px 10px}
.missions li.done .go{display:none}
.toast{position:fixed;left:50%;top:calc(var(--safe-top) + 150px);z-index:30;transform:translateX(-50%) translateY(-6px);padding:10px 16px;border-radius:14px;background:var(--glass);color:var(--glass-ink);border:1px solid var(--glass-edge);font-size:13.5px;font-weight:500;box-shadow:0 4px 24px #10150e44;opacity:0;transition:opacity .35s,transform .45s var(--ease);pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;gap:8px;max-width:calc(100% - 28px)}
.toast.is-on{opacity:1;transform:translateX(-50%) translateY(0)}
.toast .mk{width:22px;height:22px;border-radius:50%;background:#6f8a5a;display:grid;place-items:center;font-size:12px;flex:none}

/* 힌트 */
.hint{position:fixed;left:50%;top:calc(var(--safe-top) + 66px);max-width:min(560px,calc(100% - 200px));z-index:19;transform:translateX(-50%);padding:7px 12px;border-radius:999px;font-size:12.5px;font-weight:500;color:var(--ink-2);background:#f3efe5d9;border:1px solid #ffffff99;box-shadow:0 2px 8px rgba(36,37,31,.15);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .6s,transform .6s var(--ease);white-space:nowrap;max-width:calc(100% - 28px);text-overflow:ellipsis;overflow:hidden}
.hint.is-hidden{opacity:0;transform:translate(-50%,-8px);pointer-events:none}

/* 하단 독 (산사 .game-modes) */
.dock{position:fixed;left:50%;bottom:var(--safe-bottom);z-index:20;transform:translateX(-50%);display:flex;align-items:center;gap:3px;width:358px;max-width:calc(100% - 20px);padding:5px;border-radius:14px;background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 4px 24px #10150e22}
.dock button{flex:1;height:50px;border:0;border-radius:10px;background:transparent;color:var(--glass-muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11.5px;font-weight:500;letter-spacing:.01em;cursor:pointer;transition:background .2s,color .2s,transform .28s var(--ease)}
.dock button svg{width:20px;height:20px;stroke-width:1.45}
.dock button:hover{background:#ffffff14;color:var(--glass-ink)}
.dock button[aria-pressed=true]{background:#f3efe5;color:var(--ink)}
.dock button:active{transform:scale(.96)}

/* 일어나기 (앉았을 때만) */
.act{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 72px);z-index:21;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;border-radius:20px;border:1px solid #93a38c;background:#e2e8d9;color:#40564a;font-size:13px;font-weight:500;cursor:pointer;box-shadow:0 4px 18px #10150e22;transition:transform .28s var(--ease)}
.act svg{width:18px;height:18px;stroke-width:1.5}
.act:active{transform:translateX(-50%) scale(.96)}
.act[hidden]{display:none}
.world.is-sitting ~ .sm-sheet{bottom:calc(var(--safe-bottom) + 120px)}

/* 장소 시트: 독 위에 */
.world .sm-sheet{position:fixed;bottom:calc(var(--safe-bottom) + 70px);z-index:21;width:min(460px,calc(100% - 24px))}

/* 지도 다이얼로그 (산사 '산사 둘러보기') */
.dialog{position:fixed;inset:0;z-index:40;display:none;align-items:flex-end;justify-content:center;background:#10150e66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.dialog.is-open{display:flex}
.dialog-card{width:min(560px,100%);max-height:calc(100% - var(--safe-top) - 10px);overflow:auto;border-radius:29px 29px 0 0;background:#f3efe5;color:var(--ink);box-shadow:0 -10px 40px #10150e55;animation:rise .4s var(--ease)}
@keyframes rise{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}
.dialog-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:.04em}
.dialog-head p{margin:2px 0 0;font-size:12px;color:var(--muted)}
.dialog-close{width:34px;height:34px;border-radius:50%;border:1px solid #d8d8c8;background:#fff8;color:var(--ink-2);cursor:pointer;display:grid;place-items:center}
.dialog-close svg{width:14px;height:14px}
.minimap{position:relative;margin:6px 14px 0;aspect-ratio:3/2;border-radius:18px;overflow:hidden;background:#d9cfb2;container-type:inline-size}
.minimap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.minimap .sm-pin{position:absolute;transform:translate(-50%,-50%);width:auto;height:auto;min-width:0;min-height:0}
.minimap .sm-pin .sm-tag{padding:3px 8px;font-size:clamp(9px,2cqi,11px)}
.minimap .sm-pin--chest .sm-tag{display:none}
.minimap .sm-pin--charge{display:none}
.minimap .sm-pin--chest .sm-dot{width:8px;height:8px}
.places{list-style:none;margin:0;padding:12px 14px calc(var(--safe-bottom) + 14px);display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.places button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;border-radius:14px;border:1px solid #e1dccb;background:#fffdf7;color:var(--ink);text-align:left;cursor:pointer;transition:background .2s,transform .28s var(--ease)}
.places button:hover{background:#fff}
.places button:active{transform:scale(.98)}
.places b{font-size:13.5px;font-weight:600}
.places span{font-size:11.5px;color:var(--muted);line-height:1.4}
.places li.wide{grid-column:1 / -1}

/* 사이니지 */
.sign-card{max-width:900px;border-radius:22px;align-self:center;margin-bottom:6vh;background:#15171b;color:#f4f5fb}
.dialog:has(.sign-card){align-items:center}
.sign-card .dialog-head p{color:#9aa3ad} .sign-card .dialog-close{border-color:#ffffff22;background:#ffffff12;color:#fff}
.sign-stage{position:relative;margin:0 14px;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:2362/827}
.sign-stage img{width:100%;height:100%;display:block;object-fit:contain}
.sign-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:1px solid #ffffff30;background:#0009;color:#fff;font-size:24px;line-height:1;cursor:pointer}
.sign-nav.prev{left:10px}.sign-nav.next{right:10px}
.sign-foot{margin:0;padding:12px 18px 18px;font-size:12.5px;color:#9aa3ad;text-align:center}

/* 웰컴 게이트 안내 */
.guide-card{max-width:620px;border-radius:22px;align-self:center;margin-bottom:5vh}
.dialog:has(.guide-card){align-items:center}
.guide-tabs{display:flex;gap:6px;padding:4px 14px 0}
.guide-tab{flex:1;height:38px;border-radius:12px;border:1px solid #d8d8c8;background:#fffdf7;color:var(--ink-2);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.guide-tab[aria-selected=true]{background:#2f5f3f;color:#fff;border-color:#2f5f3f}
.guide-desc{margin:10px 18px 0;font-size:13px;line-height:1.6;color:var(--muted)}
.guide-pane .missions{padding-bottom:6px}
.guide-pane .missions li{list-style:none;display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;border:1px solid #e1dccb;background:#fffdf7}
.guide-pane .missions li.done .mk{background:#6f8a5a;border-color:#6f8a5a}
.guide-foot{margin:0;padding:4px 18px 18px;text-align:center}
.guide-foot .act{position:static;transform:none}
/* 오락기 · 상담 */
.consult-list[hidden],.consult-result[hidden]{display:none!important}
.arcade-list li{grid-column:1 / -1}
.arcade-list button{flex-direction:row;align-items:center;gap:12px}
.arcade-list .mt{display:flex;flex-direction:column;gap:2px}.arcade-list .mt b{font-size:14px}.arcade-list .mt span{font-size:12px;color:var(--muted)}
.arcade-list img{width:150px;aspect-ratio:2362/827;object-fit:cover;border-radius:8px;flex:none}
.consult-list li{grid-column:auto}
.consult-result{padding:6px 14px 18px;display:flex;flex-direction:column;gap:10px}
.rec{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;background:#fffdf7;border:1px solid #e1dccb}
.rec img{width:200px;aspect-ratio:2362/827;object-fit:cover;border-radius:8px;flex:none}
.rec b{display:block;font-size:15px}.rec span{font-size:12px;color:var(--muted)}.rec p{margin:4px 0 8px;font-size:13px;line-height:1.5;color:var(--ink-2)}
.rec-links{display:flex;flex-wrap:wrap;gap:6px}.rec-links a{font-size:12px;color:#2f5f3f;background:#eef3e8;border:1px solid #93a38c;border-radius:999px;padding:4px 10px;text-decoration:none}
.consult-result .act{position:static;transform:none;align-self:center}
@media (max-width:640px){.arcade-list img,.rec img{width:110px}}
/* 오락기 캔버스 */
.arcade-card{max-width:520px}
.arcade-stage{display:flex;flex-direction:column;align-items:center;gap:8px;padding:4px 14px 16px}
.arcade-bezel{background:#1d2a3a;border-radius:18px;padding:12px;box-shadow:inset 0 0 0 3px #2b5f8f,0 10px 30px #0004}
.arcade-bezel canvas{display:block;width:min(360px,calc(100vw - 80px));height:auto;border-radius:10px;background:#000;touch-action:none;outline:none}
.arcade-keys{margin:0;font-size:12px;color:var(--muted)}
.arcade-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.arcade-actions .act,.consult-result .arcade-actions .act{position:static;transform:none}
.act.ghost{background:#fff;color:#2f5f3f;border:1px solid #93a38c}
/* 칭호 테스트 */
.quiz-card{max-width:520px}
.quiz-body{padding:6px 16px 18px;display:flex;flex-direction:column;gap:10px}
.quiz-body h3{margin:6px 0 4px;font-size:18px;line-height:1.4}
.quiz-bar{height:6px;border-radius:999px;background:#e8e4d6;overflow:hidden}.quiz-bar i{display:block;height:100%;background:#e0685a;transition:width .3s}
.quiz-opt{text-align:left;padding:14px 16px;border-radius:14px;border:1px solid #e1dccb;background:#fffdf7;font:inherit;font-size:15px;cursor:pointer}
.quiz-opt:hover{border-color:#e0685a;background:#fff6f2}
.quiz-result{text-align:center;padding:16px 10px 6px;border-radius:16px;background:linear-gradient(135deg,#fff6f2,#f3f7ee)}
.quiz-result .code{display:inline-block;font-weight:800;letter-spacing:.3em;font-size:28px;color:#e0685a;padding:2px 10px 2px 14px;border-radius:999px;background:#fff;border:1px solid #f2c4b8}
.quiz-result h3{font-size:24px;margin:10px 0 6px}.quiz-result p{margin:0 0 6px;font-size:14px;color:var(--ink-2);line-height:1.5}.quiz-result .axis{font-size:12px;color:var(--muted)}
.quiz-body h4{margin:8px 0 0;font-size:14px;color:var(--muted)}
.rec-btn{font:inherit;text-align:left;cursor:pointer;width:100%}.rec-btn:hover{border-color:#93a38c}
/* 동물 돌보기 */
.animal-card{max-width:520px}
.animal-body{padding:6px 16px 18px;display:flex;flex-direction:column;gap:10px}
.animal-body .story{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2)}
.animal-body .mem{display:flex;flex-wrap:wrap;gap:6px}.animal-body .mem span{font-size:12px;padding:4px 10px;border-radius:999px;background:#f3f7ee;border:1px solid #d7e0cc;color:#2f5f3f}
.animal-body .mood{display:flex;align-items:center;gap:10px;font-size:13px}.animal-body .mood .bar{flex:1;height:8px;border-radius:999px;background:#e8e4d6;overflow:hidden}.animal-body .mood .bar i{display:block;height:100%;background:linear-gradient(90deg,#f2a9c4,#e0685a);transition:width .4s}
.animal-body .care{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.animal-body .care button{font:inherit;font-size:13px;padding:12px 6px;border-radius:14px;border:1px solid #e1dccb;background:#fffdf7;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px}
.animal-body .care button:hover{border-color:#e0685a;background:#fff6f2}.animal-body .care small{font-size:11px;color:var(--muted)}
.animal-body .note{margin:0;font-size:12px;color:var(--muted);line-height:1.5}
@media (max-width:640px){.animal-body .care{grid-template-columns:1fr 1fr}}
/* 편의점 */
.store-body{display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 18px 20px;text-align:center}
.store-icon{font-size:52px;line-height:1}
.store-body p{margin:0;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.store-go{position:static;transform:none;text-decoration:none;display:inline-flex;align-items:center;height:42px;padding:0 18px;border-radius:12px;background:#2f5f3f;color:#fff;border-color:#2f5f3f;font-weight:600}

/* 이름 입력 */
.name-card{max-width:420px;border-radius:22px;align-self:center;margin-bottom:12vh}
.dialog:has(.name-card){align-items:center}
.name-form{display:flex;gap:8px;padding:6px 18px 18px;flex-wrap:wrap;align-items:center}
.name-form .nick{flex:1 1 100%;text-align:center;font-size:26px;font-weight:700;letter-spacing:-.01em;color:#2f5f3f;padding:14px 10px;border-radius:14px;background:#eef3e8;border:1px dashed #93a38c}
.name-form .nick-reroll{background:#fffdf7;border-color:#d8d8c8;color:var(--ink-2)}
.name-form input{flex:1;height:42px;border-radius:12px;border:1px solid #d8d8c8;background:#fffdf7;padding:0 14px;font:inherit;font-size:15px;color:var(--ink)}
.name-form input:focus{outline:2px solid #93a38c;outline-offset:1px}
.name-form .act{position:static;transform:none;height:42px;border-radius:12px;padding:0 16px}
.world .sm-pin--me .sm-tag{background:#222820e6;color:#fff;font-weight:600}
.world .sm-pin--me .sm-tag b{color:#ffdfab;font-weight:700;margin-right:4px}

/* 입장 화면 (산사 .sansa-boot) */
.boot{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:24px;background:var(--paper);color:var(--ink-2);text-align:center;transition:opacity .7s,visibility 0s .7s}
.boot.is-done{opacity:0;visibility:hidden}
.boot-mark{display:flex;margin-bottom:6px;color:#8a8068}
.boot-mark svg{width:32px;height:32px;stroke-width:1}
.boot h1{margin:0;padding-left:5px;font-size:27px;font-weight:500;letter-spacing:5px}
.boot p{margin:0;max-width:100%;color:#838677;font-size:12px;line-height:1.7}
.boot progress{appearance:none;-webkit-appearance:none;width:min(210px,64vw);height:5px;border:0;border-radius:999px;background:#d8d8c8;overflow:hidden}
.boot progress::-webkit-progress-bar{background:#d8d8c8;border-radius:inherit}
.boot progress::-webkit-progress-value{background:#8a9a78;border-radius:inherit;transition:width .4s}
.boot progress::-moz-progress-bar{background:#8a9a78}
.boot .boot-note{color:#596253}
.boot .boot-enter{margin-top:8px;border:1px solid #93a38c;border-radius:19px;padding:9px 18px;background:#e2e8d9;color:#40564a;cursor:pointer;visibility:hidden}
.boot.is-ready .boot-enter{visibility:visible}
.boot.is-ready progress,.boot.is-ready .boot-note{display:none}

/* 잠깐 쉬는 화면 (산사 .render-rest) */
.rest{position:fixed;inset:0;z-index:99;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;background:#eeece3e8;color:#52634e;font-size:14px}
.rest[hidden]{display:none}
.rest button{border:1px solid #93a38c;border-radius:19px;padding:9px 16px;background:#e2e8d9;color:#40564a;cursor:pointer}

@media (max-width:640px){
  .hunt.progress{top:calc(var(--safe-top) + 64px)} .hunt.is-on + .hunt.progress{top:calc(var(--safe-top) + 100px)}
  .brand h1{font-size:14px;letter-spacing:.18em}.brand p{display:none}
  .hint{top:calc(var(--safe-top) + 104px);font-size:12px}
  .dock button{height:48px;font-size:11px}
  .places{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){.dialog-card{animation:none}}
@media (max-width:640px){ .world.is-hunt .sm-pin--chest .sm-tag{display:inline-flex} }

/* 팝업(편의점 운영 iframe) */
.dialog:has(.popup-card){align-items:center}
.popup-card{width:min(1100px,calc(100vw - 24px));height:min(860px,calc(100vh - var(--safe-top) - 24px));max-height:none;display:flex;flex-direction:column;border-radius:22px;overflow:hidden}
.popup-card .dialog-head{flex:none}.popup-frame{flex:1;width:100%;border:0;background:#fff;min-height:0}
.head-actions{display:flex;align-items:center;gap:10px}.mini-link{font-size:12px;color:var(--ink-2);text-decoration:none;border:1px solid #d8d8c8;border-radius:999px;padding:6px 10px;background:#fff8;white-space:nowrap}
/* 게임방 키오스크 홈 */
.kiosk-home{display:flex;flex-direction:column;gap:12px;padding:4px 0 6px;text-align:center}
.kiosk-logo{font-size:22px;padding:18px 10px;border-radius:16px;background:linear-gradient(135deg,#2b1d5a,#6a3fb8);color:#fff}.kiosk-logo b{font-size:36px;display:block;letter-spacing:.08em}
.kiosk-home p{margin:0;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.kiosk-home .act{position:static;transform:none;height:auto;padding:12px 16px;justify-content:center;flex-direction:column;gap:2px;border-radius:14px}
.kiosk-home .act small{font-size:11px;opacity:.8;font-weight:400}.kiosk-go{background:#4a2f8a!important;color:#fff!important;border-color:#4a2f8a!important}
.kiosk-link{font-size:12px;color:var(--muted)}.kiosk-home hr{border:0;border-top:1px dashed #d8d8c8;margin:2px 0}.kiosk-mine{font-weight:600;color:#e0685a!important}
/* 동물 돌보기: 행동 3개 */
.care--big{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.care--big button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border-radius:14px;border:1px solid #e1dccb;background:#fffdf7;font:inherit;cursor:pointer}
.care--big button:hover{border-color:#e0685a;background:#fff6f2}.care--big .ic{font-size:28px;line-height:1}.care--big b{font-size:13.5px}.care--big small{font-size:11px;color:var(--muted)}
/* 원탁 스태프 말풍선 · 말 걸기 버튼 */
.act-talk{bottom:calc(var(--safe-bottom) + 120px);background:#fffdf7;border-color:#3e8a5a;color:#2f5f3f}
.world .sm-bubble{transform:translate(-50%,-100%);z-index:6}
.bubble{width:min(320px,calc(100vw - 40px));padding:12px 14px;border-radius:16px;background:#fffdf7f5;color:var(--ink);box-shadow:0 10px 30px #10150e33;border:1px solid #e1dccb;position:relative;text-align:left}
.bubble::after{content:'';position:absolute;left:50%;bottom:-9px;width:16px;height:16px;background:#fffdf7;border-right:1px solid #e1dccb;border-bottom:1px solid #e1dccb;transform:translateX(-50%) rotate(45deg)}
.bubble b{display:block;font-size:12px;color:#3e8a5a;margin-bottom:4px}.bubble p{margin:0;font-size:14px;line-height:1.55;min-height:44px}
.bubble-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:8px}.bubble-actions button{font:inherit;font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid #d8d8c8;background:#fff;cursor:pointer}.bubble-actions button:first-child{background:#3e8a5a;color:#fff;border-color:#3e8a5a}
.world.is-lying .sm-pin{opacity:0}

/* 게임 성향 MBTI 키오스크: 어두운 키오스크 화면 느낌 */
.quiz-card{background:#141628;color:#f4f5fb}
.quiz-card .dialog-head h2{color:#fff}.quiz-card .dialog-head p{color:#9aa0b8}.quiz-card .dialog-close{background:#ffffff14;border-color:#ffffff22;color:#fff}
.quiz-card .quiz-bar{background:#ffffff18}.quiz-card .quiz-bar i{background:#7c83ff}
.kiosk-q{margin-top:6px}.kiosk-q span{font-size:12px;font-weight:800;letter-spacing:.2em;color:#7c83ff}.quiz-card .quiz-body h3{color:#fff;font-size:19px}
.quiz-card .quiz-opt{background:#ffffff0f;border-color:#ffffff1a;color:#f4f5fb}.quiz-card .quiz-opt:hover{border-color:#7c83ff;background:#7c83ff22}
.kiosk-back{align-self:flex-start;background:none;border:0;color:#9aa0b8;font:inherit;font-size:12px;cursor:pointer;padding:4px 2px}.kiosk-back:disabled{opacity:.3}
.quiz-card .kiosk-home p{color:#c7cbe0}.kiosk-logo span{display:block;font-size:14px;letter-spacing:.2em;opacity:.85}.kiosk-logo small{display:block;font-size:12px;opacity:.8;margin-top:4px}
.kiosk-mine-btn{background:#ffffff10!important;color:#fff!important;border-color:#ffffff22!important}
.mb-result{text-align:center;padding:18px 14px 12px;border-radius:18px;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 38%,#141628),#141628);border:1px solid color-mix(in srgb,var(--c) 45%,transparent)}
.mb-emoji{font-size:46px;line-height:1}.mb-type{font-weight:900;font-size:36px;letter-spacing:.14em;color:var(--c);margin-top:6px}.mb-result h3{margin:4px 0 0;font-size:22px;color:#fff}.mb-sub{font-size:12px;letter-spacing:.15em;color:#9aa0b8;text-transform:uppercase}
.mb-line{margin:10px 0 6px;font-size:14px;color:#fff;font-weight:600;word-break:keep-all}.mb-desc{margin:0;font-size:13.5px;line-height:1.6;color:#c7cbe0;word-break:keep-all}
.mb-tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:10px}.mb-tags span{font-size:12px;padding:4px 10px;border-radius:999px;background:#ffffff14;color:#fff}
.mb-axes{display:flex;flex-direction:column;gap:6px;margin-top:12px}.ax{display:flex;align-items:center;gap:8px}.ax b{width:52px;font-size:14px;color:#9aa0b8;display:flex;flex-direction:column;line-height:1.1;text-align:center}.ax b small{font-size:10px;font-weight:500}.ax b.w{color:#fff}.ax-bar{flex:1;height:6px;border-radius:999px;background:#ffffff18;overflow:hidden}.ax-bar i{display:block;height:100%;background:var(--c)}
.mb-chars{display:flex;justify-content:center;gap:10px;margin:14px 0 0}.mb-chars img{width:96px;height:96px;border-radius:14px;object-fit:cover;border:2px solid color-mix(in srgb,var(--c) 60%,transparent);background:#0f1020}.mb-print small{display:block;margin-top:3px;color:#c7cbe0;font-size:11.5px}
.mb-print{margin:12px 0 0;font-size:12.5px;color:#ffdfab}.mb-best{margin:4px 0 0;font-size:13px;color:#c7cbe0;text-align:center}.mb-best b{color:#fff}
.quiz-card .quiz-body h4{color:#9aa0b8}
.quiz-card .rec{background:#ffffff0f;border-color:#ffffff1a}.quiz-card .rec b{color:#fff}.quiz-card .rec span,.quiz-card .rec p{color:#c7cbe0}
.quiz-card .act.ghost{background:#ffffff10;color:#fff;border-color:#ffffff22}

/* 미션 초기화 */
.mission-foot{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 18px 18px}
.reset-btn{font:inherit;font-size:13px;padding:9px 16px;border-radius:999px;border:1px solid #d8d8c8;background:#fff8;color:var(--ink-2);cursor:pointer}
.reset-btn.is-armed{background:#e0685a;border-color:#e0685a;color:#fff}.mission-foot-note{font-size:11.5px;color:var(--muted)}

/* 22차: 이름표 칭호 · MBTI 스냅샷 · 편의점 링크 카드 · 세븐브레스 결과 */
.world .sm-pin--me .sm-tag small.ttl{font-size:10.5px;color:#ffdfab;font-weight:600;margin-left:2px}
.mb-snap{width:168px;height:224px;border-radius:16px;object-fit:cover;border:2px solid color-mix(in srgb,var(--c) 70%,transparent);background:#0f1020;box-shadow:0 8px 24px #0006}
.store-body{padding:6px 0 4px;display:flex;flex-direction:column;gap:12px;align-items:stretch}.store-body p{margin:0;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.store-sign{align-self:center;background:#2f5f3f;color:#fff;font-weight:800;letter-spacing:.04em;padding:8px 18px;border-radius:999px;font-size:14px}
.store-go{position:static!important;transform:none!important;height:auto;padding:14px 16px;justify-content:center;border-radius:14px;text-decoration:none;background:#2f5f3f!important;color:#fff!important;border-color:#2f5f3f!important;text-align:center;display:flex}
.store-body small{font-size:11px;color:var(--muted);word-break:break-all;text-align:center}
.rec-emoji{width:96px;min-width:96px;height:72px;display:grid;place-items:center;font-size:40px;background:#0b2a4a;border-radius:12px}

.mb-ill{width:112px;height:112px;border-radius:14px;object-fit:cover;border:2px solid color-mix(in srgb,var(--c) 60%,transparent);background:#0f1020;align-self:center}
.mb-chars{align-items:center}

/* 27차: 창 안의 버튼 줄은 가운데 정렬 */
.name-form{justify-content:center}.name-form .act,.name-form button{flex:0 0 auto}.guide-foot,.consult-opts,.care,.quiz-body .mb-actions,.rec-links,.talk-acts,.arcade-actions,.mission-foot,.store-body,.kiosk-home{justify-content:center}.rec-links{justify-content:flex-start}
.dialog-card .act:not(.quiz-opt){margin-left:auto;margin-right:auto}.kiosk-home .act,.store-body .act,.name-form .act{margin-left:auto;margin-right:auto}
