:root{--sky:#d8edf6;--ink:#2b3a33;--muted:#5b6b63;--paper:#fffdf7;--glass:#fffdf7db;--line:#e1e7db;--brand:#2f7d5b;--brand-ink:#fff;--sun:#ffcf5a;--sun-ink:#4a3a10;--shade:#2b3a3329;--font-display:"Jua", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--font-body:"Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--sky);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.6;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--sun);outline-offset:2px}kbd{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:0 6px;font-family:inherit;font-size:12px;font-weight:700}#app{grid-template-rows:auto 1fr;height:100%;display:grid}.topbar{padding:10px max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));background:var(--paper);border-bottom:1px solid var(--line);z-index:20;flex-wrap:wrap;align-items:center;gap:12px;display:flex;position:relative}.brand{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.logo{background:var(--brand);width:38px;height:38px;color:var(--brand-ink);font-family:var(--font-display);border-radius:12px;flex:none;place-items:center;font-size:21px;display:grid}.logo.big{border-radius:18px;width:60px;height:60px;margin:0 auto 10px;font-size:32px}.brand h1{font-family:var(--font-display);margin:0;font-size:21px;font-weight:400;line-height:1.15}.brand p{color:var(--muted);margin:0;font-size:13px}.demo-chip{border:1px dashed var(--muted);color:var(--muted);border-radius:999px;flex:none;padding:2px 9px;font-size:12px;font-weight:700}.booth-nav{flex-wrap:wrap;gap:6px;display:flex}.booth-nav button{border:2px solid var(--line);background:var(--paper);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:4px 12px 4px 4px;font-size:13.5px;font-weight:700;display:inline-flex}.booth-nav .num{background:var(--c);color:#fff;width:26px;height:26px;font-family:var(--font-display);border-radius:50%;place-items:center;font-size:15px;display:grid}.booth-nav button:hover{border-color:var(--c)}.top-actions{align-items:center;gap:6px;display:flex}.call{background:var(--brand);color:var(--brand-ink);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:13.5px;font-weight:700;text-decoration:none;display:inline-flex}.call svg{width:18px;height:18px}.icon-btn{border:2px solid var(--line);background:var(--paper);cursor:pointer;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.icon-btn svg{width:20px;height:20px}.icon-btn[aria-pressed=true]{background:var(--sun);border-color:var(--sun);color:var(--sun-ink)}#stage{touch-action:none;-webkit-user-select:none;user-select:none;outline:none;position:relative;overflow:hidden}#stage canvas{width:100%;height:100%;display:block}#labels{pointer-events:none;position:absolute;inset:0}.char-ui{will-change:transform;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:0;left:0}.tag{white-space:nowrap;background:var(--c,#2b3a33bf);color:#fff;border-radius:999px;padding:1px 10px;font-size:12px;font-weight:700}.char-ui.me .tag{background:var(--ink)}.char-ui.peer .tag:before{content:"";vertical-align:1px;background:#a8f0bd;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.bubble{background:var(--paper);text-align:center;text-wrap:balance;max-width:min(250px,70vw);box-shadow:0 6px 18px var(--shade);border-radius:16px;margin-bottom:6px;padding:9px 13px;font-size:14px;line-height:1.45;position:relative}.bubble:after{content:"";background:var(--paper);border-radius:3px;width:14px;height:14px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.bubble.pop{animation:.28s ease-out pop}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.near-icon{background:var(--sun);width:32px;height:32px;color:var(--sun-ink);box-shadow:0 4px 12px var(--shade);border-radius:50%;place-items:center;animation:1.4s ease-in-out infinite bob;display:grid}.near-icon svg{width:19px;height:19px}@keyframes bob{50%{transform:translateY(-4px)}}.player-picker{z-index:15;top:12px;left:max(16px, env(safe-area-inset-left));scrollbar-width:none;background:var(--glass);max-width:calc(100% - 32px);box-shadow:0 4px 14px var(--shade);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;overflow-x:auto}.pp-label{font-family:var(--font-display);color:var(--ink);flex:none;padding:0 8px 0 10px;font-size:15px}.player-picker button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;flex:none;align-items:center;gap:5px;padding:2px 11px 2px 2px;font-size:12.5px;font-weight:700;display:inline-flex}.player-picker img{object-fit:cover;object-position:50% 5%;background:var(--paper);border-radius:50%;width:28px;height:28px}.player-picker button:hover{background:#fffc}.player-picker button[aria-pressed=true]{background:var(--ink);color:#fff}.help{z-index:10;left:max(16px, env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));background:var(--glass);box-shadow:0 4px 14px var(--shade);color:var(--muted);border-radius:12px;margin:0;padding:8px 14px;font-size:13px;position:absolute}.talk{z-index:10;right:max(16px, env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));background:var(--paper);color:var(--muted);cursor:pointer;font-family:var(--font-display);box-shadow:0 6px 18px var(--shade);border:0;border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-size:18px;transition:background .2s,transform .2s;display:inline-flex;position:absolute}.talk svg{width:22px;height:22px}.talk.ready{background:var(--c,var(--sun));color:#fff;transform:scale(1.05)}.wave-btn{z-index:10;right:max(16px, env(safe-area-inset-right));bottom:calc(76px + env(safe-area-inset-bottom));background:var(--paper);color:var(--ink);cursor:pointer;font-family:var(--font-display);box-shadow:0 6px 18px var(--shade);border:0;border-radius:999px;align-items:center;gap:7px;padding:9px 16px;font-size:16px;display:inline-flex;position:absolute}.wave-btn svg{width:20px;height:20px}.wave-btn:active{background:var(--sun);color:var(--sun-ink)}.room-chip{z-index:12;top:60px;left:max(16px, env(safe-area-inset-left));background:var(--glass);max-width:calc(100% - 32px);color:var(--muted);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 14px var(--shade);border:0;border-radius:999px;align-items:center;gap:7px;padding:5px 12px 5px 10px;font-size:12.5px;font-weight:700;display:inline-flex;position:absolute}.room-chip .dot{background:#b9c2bc;border-radius:50%;flex:none;width:8px;height:8px}.room-chip[data-status=on]{color:var(--ink)}.room-chip[data-status=on] .dot{background:#2fa866}.room-chip[data-status=connecting] .dot{background:var(--sun)}.joystick{z-index:10;left:max(20px, env(safe-area-inset-left));bottom:calc(24px + env(safe-area-inset-bottom));width:124px;height:124px;box-shadow:0 6px 18px var(--shade);touch-action:none;background:#fffdf78c;border:2px solid #fffdf7e6;border-radius:50%;display:none;position:absolute}.joystick .knob{background:var(--paper);width:54px;height:54px;box-shadow:0 4px 10px var(--shade);border-radius:50%;margin:-27px 0 0 -27px;position:absolute;top:50%;left:50%}.joystick.active .knob{background:var(--brand)}.welcome{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#d8edf68c;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.welcome-card{background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:min(560px,100%);max-height:100%;box-shadow:0 16px 40px var(--shade);border:1px solid #fffc;border-radius:26px;padding:26px;overflow:auto}.welcome-card h2{word-break:keep-all;font-family:var(--font-display);text-wrap:balance;color:var(--brand);margin:2px 0 8px;font-size:30px;font-weight:400;line-height:1.2}.welcome-card>p{margin:0 0 14px}.how{gap:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.setup{gap:8px;margin:0 0 16px;display:grid}.setup-label{margin:0;font-size:14px;font-weight:700}.setup-label span{color:var(--muted);margin-left:6px;font-size:12.5px;font-weight:400}.setup-note{color:var(--muted);word-break:keep-all;margin:-2px 0 0;font-size:12.5px;line-height:1.5}.together{cursor:pointer;align-items:center;gap:8px;margin-top:4px;font-size:14px;font-weight:700;display:flex}.together input{width:18px;height:18px;accent-color:var(--brand)}.char-grid{grid-template-columns:repeat(9,1fr);gap:4px;margin-bottom:6px;display:grid}.char-grid button{cursor:pointer;color:var(--muted);word-break:keep-all;background:0 0;border:0;border-radius:14px;justify-items:center;gap:3px;padding:6px 2px;font-size:11.5px;font-weight:700;line-height:1.2;display:grid}.char-grid img{object-fit:cover;object-position:50% 5%;background:var(--paper);border-radius:50%;width:46px;height:46px;box-shadow:0 0 0 2px #ffffffe6}.char-grid button:hover{background:#ffffffb3}.char-grid button[aria-pressed=true]{color:var(--ink);background:#ffffffe6}.char-grid button[aria-pressed=true] img{box-shadow:0 0 0 3px var(--brand)}#nameInput{border:2px solid var(--line);background:#fffffff2;border-radius:12px;width:100%;padding:11px 13px;font-size:16px}#nameInput:focus{border-color:var(--brand);outline:none}@media (width<=520px){.welcome-card{padding:22px 16px}.char-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}.char-grid button{letter-spacing:-.03em;padding:6px 0;font-size:10.5px}}.how li{background:#ffffffb3;border-radius:14px;padding:10px 14px;font-size:14px}.how b{min-width:82px;color:var(--brand);display:inline-block}.eyebrow{letter-spacing:.03em;color:var(--muted);margin:0;font-size:12.5px;font-weight:700}.enter{background:var(--brand);width:100%;color:var(--brand-ink);font-family:var(--font-display);cursor:pointer;border:0;border-radius:16px;padding:14px;font-size:19px}.loading{z-index:40;text-align:center;background:var(--sky);place-items:center;display:grid;position:absolute;inset:0}.loading strong{font-family:var(--font-display);font-size:24px;font-weight:400;display:block}.loading p{color:var(--muted);margin:4px 0 0}dialog.sheet{background:var(--glass);-webkit-backdrop-filter:blur(16px)saturate(1.15);width:min(680px,100vw - 32px);max-height:min(88vh,880px);color:var(--ink);border:1px solid #ffffffd9;border-radius:26px;padding:0;overflow:hidden;box-shadow:0 24px 60px #1e2d2647}dialog.sheet::backdrop{background:#1e2d2659}dialog.sheet.ask{width:min(520px,100vw - 32px)}.sheet-inner{flex-direction:column;max-height:min(88vh,880px);display:flex}.sheet-head{border-top:8px solid var(--c,var(--brand));background:var(--tint,transparent);align-items:center;gap:12px;padding:16px 18px 14px;display:flex}.sheet-head .guide{object-fit:cover;object-position:50% 6%;background:var(--paper);border:3px solid var(--c);border-radius:50%;flex:none;width:64px;height:64px}.head-text{flex:1;min-width:0}.sheet-head h2{font-family:var(--font-display);text-wrap:balance;margin:2px 0 0;font-size:25px;font-weight:400;line-height:1.25}.x{cursor:pointer;background:#ffffffd9;border:0;border-radius:50%;flex:none;align-self:flex-start;place-items:center;width:42px;height:42px;display:grid}.x svg{width:20px;height:20px}.sheet-scroll{gap:16px;padding:16px 20px 18px;display:grid;overflow-y:auto}.quote{border-left:5px solid var(--c);background:var(--tint);font-family:var(--font-display);border-radius:0 12px 12px 0;margin:0;padding:12px 16px;font-size:19px;line-height:1.4}.summary{margin:0;font-size:16px}.gallery{gap:8px;display:grid}.track{scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:18px;grid-auto-columns:100%;grid-auto-flow:column;display:grid;overflow-x:auto}.track::-webkit-scrollbar{display:none}.slide{scroll-snap-align:start;aspect-ratio:16/9;background:var(--tint);border-radius:18px;max-width:100%;margin:0;position:relative;overflow:hidden}.slide img{object-fit:cover;width:100%;height:100%;display:block}.slide figcaption{color:#fff;background:#2b3a33b8;border-radius:999px;padding:4px 12px;font-size:13.5px;font-weight:700;position:absolute;bottom:12px;left:12px}.slide.placeholder{background:repeating-linear-gradient(135deg, var(--tint) 0 18px, #ffffff8c 18px 36px)}.ph-art{color:var(--c);place-content:center;justify-items:center;gap:6px;font-size:14px;font-weight:700;display:grid;position:absolute;inset:0}.ph-art svg{width:54px;height:54px}.gal-ctrl{justify-content:center;align-items:center;gap:10px;display:flex}.gallery.single .gal-ctrl{display:none}.gal-ctrl .nav{cursor:pointer;width:36px;height:36px;box-shadow:0 2px 8px var(--shade);background:#ffffffe6;border:0;border-radius:50%;place-items:center;display:grid}.gal-ctrl .nav:disabled{opacity:.35;cursor:default}.gal-ctrl .nav svg{width:18px;height:18px}.dots{gap:6px;display:flex}.dot{cursor:pointer;background:#2b3a3338;border:0;border-radius:50%;width:10px;height:10px;padding:0}.dot[aria-current=true]{background:var(--c);border-radius:6px;width:24px}.block h3{font-family:var(--font-display);color:var(--c,var(--brand));margin:0 0 6px;font-size:19px;font-weight:400}.block ul{margin:0;padding-left:20px}.block li{margin:2px 0}.steps{gap:8px;margin:0;padding:0;list-style:none;display:grid}.steps li{background:#ffffffbf;border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.steps .n{background:var(--c,var(--brand));color:#fff;width:30px;height:30px;font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-size:16px;display:grid}.actions{flex-wrap:wrap;gap:8px;display:flex}.act{border:2px solid var(--c,var(--brand));color:var(--ink);cursor:pointer;background:#ffffffe6;border-radius:14px;align-items:center;gap:7px;padding:10px 16px;font-size:14.5px;font-weight:700;text-decoration:none;display:inline-flex}.act svg{width:18px;height:18px;color:var(--c,var(--brand))}.act.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.sheet-foot{padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:#fff9;border-top:1px solid #2b3a3314;grid-template-columns:1fr 1fr;gap:8px;display:grid}.foot-btn{cursor:pointer;font-variant-numeric:tabular-nums;border:0;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:13px 10px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.foot-btn svg{flex:none;width:20px;height:20px}.foot-btn.call{background:var(--brand);color:var(--brand-ink)}.foot-btn.apply{background:var(--c,var(--sun));color:#fff}#askForm{gap:12px;display:grid}.field{border:0;gap:4px;margin:0;padding:0;display:grid}.field label,.field legend{font-size:14px;font-weight:700}.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea,#askText{border:2px solid var(--line);background:#fffffff2;border-radius:12px;width:100%;padding:11px 13px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);outline:none}fieldset.field{flex-wrap:wrap;gap:8px 16px;display:flex}fieldset.field legend{width:100%;margin-bottom:4px}.choice{align-items:center;gap:6px;font-weight:500;display:inline-flex}.agree{align-items:flex-start;gap:8px;font-size:14px;display:flex}.agree input{margin-top:5px}.note{color:var(--muted);margin:0;font-size:13px}#askResult{gap:12px;display:grid}#askText{resize:vertical;font-size:14px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (pointer:coarse){.joystick{display:block}.help{display:none}.talk{text-align:center;border-radius:50%;flex-direction:column;justify-content:center;gap:2px;width:92px;height:92px;padding:6px;font-size:13px;line-height:1.2}.wave-btn{width:68px;height:68px;right:max(28px, calc(env(safe-area-inset-right) + 12px));bottom:calc(120px + env(safe-area-inset-bottom));border-radius:50%;flex-direction:column;justify-content:center;gap:1px;padding:4px;font-size:12px;line-height:1.2}}@media (width<=760px){.brand p,.top-actions .call span{display:none}.booth-nav{scrollbar-width:none;flex-wrap:nowrap;order:3;width:100%;overflow-x:auto}.booth-nav button{flex:none}.top-actions .call{padding:9px}dialog.sheet{border-radius:26px 26px 0 0;width:100vw;max-width:100vw;max-height:92vh;margin:auto 0 0}.sheet-inner{max-height:92vh}.sheet-head .guide{width:52px;height:52px}.sheet-head h2{font-size:21px}.sheet-foot{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.bubble.pop,.near-icon{animation:none}.talk{transition:none}}
