:root{--ink:#f6ead8;--ink-dim:#cbb9b0;--glass:#1c172694;--glass-strong:#1c1726db;--line:#ffdcbe29;--ember:#ffb06a;--ember-deep:#e5784a;--paper:#fff6e8;--radius:14px;--font:"Pretendard Variable", Pretendard, -apple-system, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:#262a57;height:100%;margin:0;overflow:hidden}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}::selection{color:var(--paper);background:#ffb06a61}input{caret-color:var(--ember)}input::placeholder{color:#b7a39f;opacity:1}:focus-visible{outline:2px solid var(--ember);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:#ffdcbe47 transparent}.app,.stage{position:fixed;inset:0}.stage canvas{touch-action:none;display:block}.topbar{top:max(12px, env(safe-area-inset-top));pointer-events:none;text-shadow:0 1px 8px #140a1e99;justify-content:space-between;align-items:flex-start;gap:12px;font-size:13px;display:flex;position:fixed;left:16px;right:16px}.topbar-right{flex-direction:column;align-items:flex-end;gap:12px;min-width:0;display:flex;position:relative}.topbar-row{pointer-events:auto;align-items:center;gap:8px;display:flex;position:relative}.topbar-right>:not(.topbar-row){pointer-events:auto}.topbar .settings,.topbar .person-menu{text-shadow:none}.me{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(6px);background:#1c17266b;border-radius:999px;padding:4px 10px;font-size:13px}.me:hover{border-color:#ffb06a80}.me[aria-expanded=true]{color:var(--paper);border-color:#ffb06a99}.settings-open{width:30px;height:26px;color:var(--ink-dim);place-items:center;padding:0;display:grid}.settings-open.with-name{align-items:center;gap:8px;width:auto;padding:0 10px 0 12px;display:inline-flex}.me-name{color:var(--paper);text-overflow:ellipsis;white-space:nowrap;max-width:10em;overflow:hidden}.settings-open.with-name svg{flex-shrink:0}.topbar .settings{position:absolute;top:calc(100% + 8px);right:0}.topbar-left{pointer-events:auto;align-items:center;gap:8px;min-width:0;display:flex;position:relative}.about-open{width:26px;height:26px;color:var(--ink-dim);place-items:center;padding:0;font-weight:700;display:grid}.topbar .about{z-index:30;border-radius:var(--radius);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px)saturate(1.1);width:min(320px,100vw - 24px);text-shadow:none;background:#1c1726b8;outline:none;padding:14px 16px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 10px 30px #0a061066}.about h2{color:var(--paper);margin:0 0 8px;font-size:15px;font-weight:600}.about ul{word-break:keep-all;overflow-wrap:anywhere;flex-direction:column;gap:7px;margin:0;padding-left:1.1em;font-size:13px;line-height:1.6;display:flex}.about-foot{margin:12px 0 0;font-size:12px}.about-foot a{color:var(--ink-dim);text-underline-offset:3px}.about-foot a:hover{color:var(--ink)}.place,.people,.me{white-space:nowrap}.place,.people{-webkit-backdrop-filter:blur(6px);background:#1c17266b;border-radius:999px;align-items:center;gap:.3em;min-height:26px;padding:4px 10px;display:inline-flex}.place{letter-spacing:.02em;font-weight:600}.channel,.people{color:var(--ink-dim);font-weight:400}.radio{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:8px;padding:6px 8px 6px 6px;display:flex}.radio .now{color:var(--ember);white-space:nowrap;text-overflow:ellipsis;max-width:160px;padding-left:8px;font-size:12px;overflow:hidden}.radio button{width:28px;height:28px;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.radio button:hover{color:var(--ink);background:#ffdcbe1a}.radio input{width:84px;accent-color:var(--ember)}.radio-skip{border:1px solid var(--line);background:var(--glass-strong);clip-path:inset(50%);opacity:0;border-radius:999px;padding:8px 14px;font-size:13px;position:absolute;top:calc(100% + 12px);right:0}.radio-skip:focus-visible{clip-path:none;opacity:1}.chat{left:16px;bottom:max(16px, env(safe-area-inset-bottom));flex-direction:column;gap:8px;width:min(380px,100vw - 32px);display:flex;position:fixed}.chat-head{display:flex}.chat-toggle{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:32px;color:var(--ink-dim);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12px}.chat-log.peek{cursor:pointer;max-height:none;padding:8px 12px;overflow:hidden}.chat-log.peek li{padding:1px 0}.chat-log.peek .line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-log{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overscroll-behavior:contain;max-height:min(34vh,280px);margin:0;padding:10px 12px;font-size:13px;line-height:1.5;list-style:none;overflow-y:auto}.chat-log li{grid-template-columns:1fr auto;column-gap:8px;padding:3px 0;display:grid}.chat-log .line{overflow-wrap:anywhere}.chat-log .who{color:var(--ember);margin-right:6px;font-weight:600}.chat-log button.who{font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0}.chat-log button.who:hover{text-underline-offset:3px;text-decoration:underline}.chat-log button.who:focus-visible{outline:2px solid var(--ember);outline-offset:2px}.chat-log .self .who{color:var(--paper)}.chat-log time{color:var(--ink-dim);font-variant-numeric:tabular-nums;padding-top:2px;font-size:11px}.chat-log .note{color:var(--ink-dim);grid-column:1/-1;font-size:11px}.chat-empty{color:var(--ink-dim)}.chat-input{flex-direction:column;gap:6px;display:flex;position:relative}.commands{z-index:20;border-radius:var(--radius);background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);max-height:min(40vh,280px);margin:0;padding:6px;font-size:13px;list-style:none;position:absolute;bottom:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 30px #0a061066}.commands li{cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-height:36px;padding:6px 10px;display:flex}.commands li[aria-selected=true]{background:#ffb06a29}.commands-name{color:var(--paper)}.commands-kind{color:var(--ink-dim);font-size:11px}.commands .commands-empty{color:var(--ink-dim);cursor:default}.chat-input input{border-radius:var(--radius);border:1px solid var(--line);background:var(--glass-strong);outline:none;width:100%;padding:11px 14px;font-size:15px}.chat-input input:focus-visible{border-color:var(--ember);outline:none;box-shadow:0 0 0 3px #ffb06a38}.gestures{flex-wrap:wrap;gap:6px;display:flex}.gestures button{border:1px solid var(--line);background:var(--glass);cursor:pointer;border-radius:999px;min-height:32px;padding:6px 12px;font-size:12px}.gestures button:active{background:#ffb06a2e}.gestures button:hover{border-color:#ffb06a80}.sit{left:50%;bottom:max(28px, env(safe-area-inset-bottom));cursor:pointer;background:linear-gradient(180deg, var(--ember), var(--ember-deep));color:#2a1712;border:0;border-radius:999px;padding:14px 28px;font-size:16px;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 10px 24px -6px #12080e99,inset 0 1px #ffffff59}.sit:hover{filter:brightness(1.05)}.dialog-backdrop{background:#100a1873;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;flex-direction:column;gap:14px;width:min(420px,100%);max-height:calc(100dvh - 32px);padding:24px;display:flex;position:relative;overflow-y:auto}.dialog h2{margin:0;font-size:19px;font-weight:700}.dialog .lead{color:var(--ink-dim);margin:0;font-size:14px}.dialog label{color:var(--ink-dim);flex-direction:column;gap:6px;font-size:13px;display:flex}.dialog input[type=text],.dialog .dev-login input{border:1px solid var(--line);color:var(--ink);background:#00000040;border-radius:12px;outline:none;padding:11px 13px;font-size:15px}.dev-login{flex-direction:column;gap:10px;display:flex}.primary{cursor:pointer;background:linear-gradient(180deg, var(--ember), var(--ember-deep));color:#2a1712;border:0;border-radius:12px;padding:12px 16px;font-weight:600}.primary:disabled{color:var(--ink-dim);cursor:default;background:#ffdcbe1f}.provider{border:1px solid var(--line);color:var(--ink-dim);background:0 0;border-radius:12px;padding:11px}.primary,.provider{justify-content:center;align-items:center;gap:8px;display:inline-flex}.primary[aria-busy=true]{background:linear-gradient(180deg, var(--ember), var(--ember-deep));color:#2a1712;cursor:progress}.provider[aria-busy=true]{color:var(--paper);cursor:progress;border-color:#ffb06a99}.spinner{opacity:.8;border:2px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.notices{flex-direction:column;gap:8px;margin:0;padding-left:18px;font-size:14px;line-height:1.55;display:flex}.agree{align-items:center;color:var(--ink)!important;flex-direction:row!important;font-size:14px!important}.agree input{width:18px;height:18px;accent-color:var(--ember)}.dialog-wide{width:min(780px,100%)}.dialog>form:not(.dev-login){flex-direction:column;gap:14px;display:flex}.dialog>*{flex-shrink:0}.builder{grid-template-columns:240px 1fr;gap:16px;min-height:0;display:grid}.builder-preview{border-radius:var(--radius);cursor:grab;border:1px solid var(--line);background:radial-gradient(120% 80% at 50% 100%,#ffb06a38,#0000 60%),#0000002e;height:360px;position:relative;overflow:hidden}.builder-preview:active{cursor:grabbing}.builder-controls{flex-direction:column;gap:12px;min-width:0;display:flex}.builder-quick{flex-wrap:wrap;gap:6px;display:flex}.builder-quick button,.choices button{border:1px solid var(--line);min-height:32px;color:var(--ink);cursor:pointer;white-space:nowrap;background:#0003;border-radius:999px;flex:none;padding:6px 12px;font-size:12px}.builder-quick button:hover,.choices button:hover{border-color:#ffb06a80}.builder-random{color:var(--ember)!important}.builder-tabs{background:#00000040;border-radius:10px;gap:2px;padding:2px;display:flex}.builder-tabs button{min-height:34px;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;font-size:13px}.builder-tabs button:hover{color:var(--ink)}.builder-tabs button[aria-selected=true]{color:var(--paper);background:#ffb06a33;font-weight:600}.builder-panel{overscroll-behavior:contain;flex-direction:column;gap:14px;max-height:300px;padding-right:4px;display:flex;overflow-y:auto}.builder-row{flex-direction:column;gap:8px;display:flex}.choices{border:0;flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.choices legend{letter-spacing:.02em;color:var(--ink-dim);padding:0 0 6px;font-size:12px;font-weight:600}.choices button.on{border-color:var(--ember);color:var(--paper);background:#ffb06a29;font-weight:600}@media (width<=560px){.builder{grid-template-columns:1fr;gap:12px}.builder-preview{height:200px}.builder-panel{max-height:none;overflow:visible}.builder-quick button,.choices button{min-height:38px}}.colors{border:0;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:0;display:flex}.colors legend{letter-spacing:.02em;color:var(--ink-dim);width:100%;padding:0 0 6px;font-size:12px;font-weight:600}.colors button{cursor:pointer;border:2px solid #ffdcbe38;border-radius:50%;width:32px;height:32px}.colors button.on{border-color:var(--paper);box-shadow:0 0 0 2px #ffb06a99}.link{color:var(--ink-dim);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-self:center;padding:8px;font-size:13px;text-decoration:underline}.close{width:40px;height:40px;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:8px;right:8px}.close:hover{color:var(--ink);background:#ffdcbe14}.error{color:#ffb4a8;margin:0;font-size:13px}.toast{left:50%;bottom:calc(var(--chat-h,0px) + 16px);text-align:center;background:var(--glass-strong);border:1px solid var(--line);border-radius:999px;max-width:calc(100vw - 32px);padding:9px 16px;font-size:13px;position:fixed;transform:translate(-50%)}.fatal{text-align:center;background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:18px;flex-direction:column;gap:12px;width:min(360px,100vw - 32px);padding:20px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.fatal p{margin:0;font-size:15px}@media (width<=560px){.topbar{left:12px;right:12px}.radio{padding:4px 6px 4px 4px}.topbar-right{gap:10px}.radio input{width:64px}.place,.people,.me{min-height:34px}.settings-open{width:38px;height:34px}.about-open{width:34px;height:34px}.me-name{max-width:6em}.segmented label,.settings-switch{min-height:40px}.account-actions button{min-height:40px;padding:8px 14px}.chat{width:auto;left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom))}.chat-log{max-height:30vh}.chat .sit{width:100%;padding:13px;position:static;transform:none}.gestures button,.chat-toggle{min-height:40px;padding:8px 14px}.commands li{min-height:40px}}@media (width<=420px){.people-extra{display:none}}@media (width<=360px){.channel{display:none}.topbar{font-size:12px}.place,.people,.me{padding:4px 8px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.settings{z-index:30;border-radius:var(--radius);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px)saturate(1.1);background:#1c1726b8;flex-direction:column;gap:12px;width:min(300px,100vw - 24px);padding:14px;font-size:13px;display:flex;box-shadow:0 10px 30px #0a061066}.settings-group{border:0;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.settings-group legend{color:var(--ink-dim);letter-spacing:.02em;padding:0 0 6px;font-size:12px;font-weight:600}.segmented{background:#00000040;border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:2px;display:grid}.segmented label{min-height:32px;color:var(--ink-dim);cursor:pointer;border-radius:8px;place-items:center;display:grid;position:relative}.segmented label:hover{color:var(--ink)}.segmented label.on{color:var(--paper);background:#ffb06a33;font-weight:600}.segmented input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented label:has(input:focus-visible){outline:2px solid var(--ember);outline-offset:1px}.account{padding-bottom:4px}.account-who{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;display:flex}.account-name{color:var(--paper);overflow-wrap:anywhere;font-size:14px;font-weight:600}.account-via{color:var(--ink-dim);font-size:12px}.account-actions{flex-wrap:wrap;gap:6px;display:flex}.account-actions button{border:1px solid var(--line);min-height:32px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:12px}.account-actions button:hover{border-color:#ffb06a80}.account-actions button:focus-visible{outline:2px solid var(--ember);outline-offset:2px}.account-actions button.danger{color:#ff9a86;border-color:#0000}.settings-hint{min-height:3em;color:var(--ink-dim);margin:0;font-size:12px;line-height:1.5}.settings-row{align-items:center;gap:10px;display:flex}.settings-row input{accent-color:var(--ember);flex:1}.settings-value{text-align:right;min-width:2.5em;color:var(--ink-dim);font-variant-numeric:tabular-nums}.agree-links a{color:var(--ink-dim);text-underline-offset:3px}.agree-links a:hover{color:var(--ink)}.agree-links{margin:-6px 0 0;font-size:12px}.settings-switch{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:32px;display:flex}.settings-switch input{appearance:none;cursor:pointer;background:#ffdcbe33;border-radius:999px;flex:none;width:36px;height:22px;margin:0;transition:background .18s;position:relative;box-shadow:inset 0 0 0 1px #ffdcbe59}.settings-switch input:before{content:"";background:var(--ink);border-radius:50%;width:16px;height:16px;transition:transform .18s;position:absolute;top:3px;left:3px}.settings-switch input:checked{background:var(--ember-deep);box-shadow:none}.settings-switch input:checked:before{background:var(--paper);transform:translate(14px)}.app[data-text=small] .chat-log{font-size:12px}.app[data-text=large] .chat-log{font-size:15px}.app[data-text=large] .chat-input input{font-size:17px}.app[data-text=large] .chat-log time{font-size:12px}.person-menu{z-index:30;border-radius:var(--radius);background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);width:212px;padding:10px;position:fixed;box-shadow:0 10px 30px #0a061066}.person-name{padding:2px 4px 8px;font-size:14px;font-weight:600}.person-actions{flex-direction:column;gap:4px;display:flex}.person-actions button{text-align:left;min-height:36px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:8px 10px;font-size:13px}.person-actions button:hover,.person-actions button:focus-visible{background:#ffdcbe1a;outline:none}.person-actions button.danger{color:#ff9a86}.person-actions button.ghost{color:var(--ink-dim)}.person-hint{color:var(--ink-dim);padding:2px 4px 6px;font-size:12px;line-height:1.5}.admin{color:var(--ink);background:#1c1726;padding:20px;font-size:14px;position:fixed;inset:0;overflow:auto}.admin-head{align-items:center;gap:16px;margin-bottom:14px;display:flex}.admin-head h1{font-size:20px}.admin-tabs{gap:6px;display:flex}.admin-tabs button,.admin-levels button{border:1px solid var(--line);color:var(--ink);cursor:pointer;font:inherit;background:0 0;border-radius:999px;padding:6px 12px}.admin-tabs button[aria-selected=true]{border-color:var(--ember);background:#ffb06a2e}.admin-body{grid-template-columns:minmax(260px,1fr) 2fr;align-items:start;gap:16px;display:grid}@media (width<=760px){.admin-body{grid-template-columns:1fr}}.admin-list{flex-direction:column;gap:6px;list-style:none;display:flex}.admin-list button{text-align:left;border:1px solid var(--line);width:100%;color:var(--ink);cursor:pointer;font:inherit;background:#ffffff08;border-radius:12px;flex-wrap:wrap;gap:4px 8px;padding:10px 12px;display:flex}.admin-list button[aria-pressed=true]{border-color:var(--ember);background:#ffb06a14}.admin-sub{width:100%;color:var(--ink-dim);font-size:12px}.admin-quote{width:100%;color:var(--ink-dim);overflow-wrap:anywhere}.admin-tag{color:var(--ink-dim);background:#ffdcbe1a;border-radius:999px;padding:1px 8px;font-size:12px}.admin-tag.warn{color:#ffb39a;background:#e5784a33}.admin-detail{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px;display:flex}.admin-detail h2{font-size:16px}.admin-context{flex-direction:column;gap:4px;max-height:50vh;list-style:none;display:flex;overflow:auto}.admin-context li{overflow-wrap:anywhere;border-radius:8px;padding:4px 8px}.admin-context li.target{background:#e5784a29}.admin-context .who{color:var(--ember);font-weight:600}.admin-context time{color:var(--ink-dim);margin-left:6px;font-size:11px}.admin-actions{flex-direction:column;gap:8px;display:flex}.admin-actions input{border:1px solid var(--line);color:var(--ink);font:inherit;background:#0003;border-radius:10px;padding:8px 10px}.admin-levels{flex-wrap:wrap;gap:6px;display:flex}.admin-levels button.ghost,.admin-empty{color:var(--ink-dim)}.admin-error{color:#ffb39a;margin-bottom:10px}#root.doc-root{background:linear-gradient(#262a57,#1c1726 40%);overflow-y:auto}.doc{min-height:100%;padding:max(32px, env(safe-area-inset-top)) 20px 64px}.doc article{word-break:keep-all;overflow-wrap:anywhere;max-width:34em;margin:0 auto;font-size:15px;line-height:1.7}.doc h1{color:var(--paper);margin:20px 0 4px;font-size:19px;font-weight:700}.doc h2{color:var(--paper);margin:28px 0 8px;font-size:15px;font-weight:600}.doc ul{flex-direction:column;gap:6px;margin:0;padding-left:1.2em;display:flex}.doc-meta{color:var(--ink-dim);margin:0;font-size:12px}.doc-lead{color:var(--ink);margin:16px 0 0}.doc-home{color:var(--ember);font-size:13px;text-decoration:none}.doc-home:hover{text-underline-offset:3px;text-decoration:underline}.perf-meter{z-index:100;background:var(--glass-strong);color:var(--ink);white-space:pre;pointer-events:none;border-radius:8px;padding:6px 8px;font:11px/1.4 ui-monospace,Menlo,monospace;position:fixed;bottom:8px;left:8px}
