:root{color-scheme:dark;font-family:Avenir Next,Trebuchet MS,sans-serif;background:#000;color:#fff4d6}*{box-sizing:border-box}body{margin:0;width:100vw;height:100vh;overflow:hidden}#app{width:100%;height:100%}.shell{position:fixed;inset:0}.boot-splash{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,rgba(180,70,24,.22),transparent 42%),linear-gradient(180deg,#180b07fa,#040405);z-index:20;transition:opacity .18s ease}.boot-splash--static{position:fixed}.boot-splash.is-hidden{opacity:0;pointer-events:none}.boot-splash__logo{width:min(484px,100vw);height:auto;filter:drop-shadow(0 18px 42px rgba(0,0,0,.48))}.character-select{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,rgba(61,154,214,.18),transparent 34%),linear-gradient(180deg,#0a0e12bd,#040405e0);z-index:19}.character-select[hidden]{display:none}.character-select__card{width:min(760px,100%);padding:28px;display:grid;gap:18px;border:1px solid rgba(255,240,209,.16);border-radius:24px;background:linear-gradient(180deg,#181d26f2,#0a0c11fa),#0b0c10eb;box-shadow:0 26px 60px #00000073;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.character-select__card h2,.character-select__card p{margin:0}.character-select__eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#ffdfa2d1}.character-select__copy{color:#ffeccdcc}.character-select__field{display:grid;gap:8px}.character-select__field span{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:#ffe4bcc7}.character-select__field input{width:100%;padding:14px 16px;border:1px solid rgba(255,235,205,.16);border-radius:14px;background:#090e14eb;color:#fff4d6;font:inherit}.character-select__field input:focus{outline:2px solid rgba(122,221,189,.54);outline-offset:2px}.character-select__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.character-select__option{padding:18px;display:grid;gap:10px;align-items:start;border:1px solid rgba(255,238,208,.14);border-radius:20px;background:radial-gradient(circle at top,rgba(97,170,220,.12),transparent 46%),linear-gradient(180deg,#1e2631f5,#0d1118fa);color:#fff4d6;text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.character-select__option:hover,.character-select__option:focus-visible{transform:translateY(-3px);border-color:#7dddba7a;box-shadow:0 18px 40px #00000047}.character-select__option.is-selected{border-color:#7dddbaad;box-shadow:0 20px 44px #00000052}.character-select__option img{width:100%;max-width:180px;height:180px;margin:0 auto;object-fit:contain;image-rendering:pixelated}.character-select__option strong{font-size:1.1rem}.character-select__option span{color:#ffeacac2}.character-select__actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.character-select__confirm{padding:14px 20px;border:0;border-radius:999px;background:linear-gradient(135deg,#e07a2d,#f0b15f);color:#1b120c;font:700 .98rem/1 Avenir Next,Trebuchet MS,sans-serif;cursor:pointer;transition:transform .16s ease,filter .16s ease}.character-select__confirm:hover,.character-select__confirm:focus-visible{transform:translateY(-2px);filter:brightness(1.05)}.character-select__status{margin:0;color:#ffeacab8;text-align:right}.character-select__status[data-status=connected]{color:#91f2c0}@media(max-width:700px){.character-select__options{grid-template-columns:1fr}.character-select__actions{flex-direction:column;align-items:stretch}.character-select__status{text-align:left}}canvas{position:fixed;inset:0;width:100vw;height:100vh;display:block;border:0;border-radius:0;background:#000;box-shadow:inset 0 0 60px #fffadc14;cursor:none}.chat-composer{position:fixed;left:24px;bottom:24px;width:min(360px,calc(100vw - 164px));padding:16px 18px;display:grid;gap:8px;border:3px solid #17120f;border-radius:22px;background:radial-gradient(circle at top left,#fffffff5,#faf4e8fa),#fff;box-shadow:0 16px 32px #00000047;z-index:14}.chat-composer[hidden]{display:none}.chat-composer:after{content:"";position:absolute;left:26px;bottom:-16px;width:24px;height:24px;border-right:3px solid #17120f;border-bottom:3px solid #17120f;background:#fcf7ec;transform:rotate(32deg);border-bottom-right-radius:10px}.chat-composer__label,.chat-composer__status{margin:0}.chat-composer__label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#534235}.chat-composer__input{width:100%;padding:12px 14px;border:2px solid rgba(23,18,15,.18);border-radius:14px;background:#ffffffe0;color:#17120f;font:600 1rem/1.2 Avenir Next,Trebuchet MS,sans-serif}.chat-composer__input:focus{outline:3px solid rgba(90,166,225,.35);outline-offset:1px}.chat-composer__status{min-height:1.1rem;font-size:.84rem;color:#17120fbd}@media(max-width:720px){.chat-composer{left:16px;right:16px;bottom:16px;width:auto}}.custom-cursor{position:fixed;top:0;left:0;width:48px;height:48px;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:30;transform-origin:top left;transform:translate3d(var(--cursor-x, 0),var(--cursor-y, 0),0);transition:opacity .14s ease,filter .12s ease,transform .12s ease}.custom-cursor[hidden]{display:none}.custom-cursor.is-visible{opacity:1}.custom-cursor.is-pressed{filter:brightness(1.12) sepia(.22) saturate(1.15) hue-rotate(-8deg)}.help-hud{position:fixed;right:24px;bottom:24px;z-index:12;display:grid;gap:12px;justify-items:end;pointer-events:none}.help-hud__buttons{display:flex;align-items:center;gap:12px;pointer-events:auto}.help-toggle,.help-panel,.settings-toggle,.settings-panel{pointer-events:auto}.help-toggle,.settings-toggle{width:67px;height:67px;padding:0;border:0;background:transparent;cursor:pointer}.settings-toggle__icon{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;box-shadow:0 10px 24px #00000052;transition:filter .16s ease}.help-toggle__icon{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;box-shadow:0 10px 24px #00000052}.settings-toggle:hover .settings-toggle__icon,.settings-toggle:focus-visible .settings-toggle__icon{filter:brightness(1.18)}.settings-toggle:active .settings-toggle__icon{filter:brightness(.78)}.help-panel{width:min(360px,calc(100vw - 48px));padding:18px;display:grid;gap:14px;border:1px solid rgba(255,240,209,.18);border-radius:18px;background:linear-gradient(180deg,#1b222bf0,#0f1218f5),#0b0c10eb;box-shadow:0 22px 54px #0000006b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.settings-panel{width:min(320px,calc(100vw - 48px));padding:18px;display:grid;gap:14px;border:1px solid rgba(255,240,209,.18);border-radius:18px;background:linear-gradient(180deg,#1b222bf0,#0f1218f5),#0b0c10eb;box-shadow:0 22px 54px #0000006b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.help-panel[hidden],.settings-panel[hidden]{display:none}.settings-panel__field{display:grid;gap:8px}.settings-panel__field span{font-size:.84rem;color:#fff0d6d6}.settings-panel__field input[type=range]{width:100%}.settings-panel__field strong{font-size:.88rem;color:#ffdf9f}@media(max-width:720px){.character-select__options{grid-template-columns:1fr}}.help-panel__eyebrow,.help-panel__label,.help-panel__section,.help-panel__row,.help-panel__header h2{margin:0}.help-panel__eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#ffdfa2d1}.help-panel__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.help-panel__header h2{font-size:1.2rem}.help-panel__close{border:0;border-radius:12px;padding:10px 12px;font:inherit;color:#f8f1dd;background:linear-gradient(180deg,#e9a14beb,#a55227f0);cursor:pointer}.help-panel__section{display:grid;gap:8px}.help-panel__label{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#ffeed0b3}.help-panel__row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.92rem;color:#fff4dceb}.help-panel__row span:last-child{text-align:right;color:#ffebc6d6}.editor-panel{position:fixed;top:24px;right:24px;width:min(360px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:18px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;overflow:hidden;border:1px solid rgba(255,240,209,.18);border-radius:18px;background:linear-gradient(180deg,#1b222bf0,#0f1218f5),#0b0c10eb;box-shadow:0 22px 54px #0000006b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10}.editor-panel.is-collapsed{grid-template-rows:auto;max-height:none}.editor-lock{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#05070a8f;z-index:11}.editor-lock[hidden]{display:none}.editor-lock__card{width:min(420px,100%);padding:22px;display:grid;gap:14px;border-radius:20px;border:1px solid rgba(255,238,208,.16);background:linear-gradient(180deg,#181d26f5,#0a0c11fa);box-shadow:0 26px 60px #00000073}.editor-lock__card h2{margin:0}.editor-panel[hidden]{display:none}.asset-sheet{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#05070ab8;z-index:12}.asset-sheet[hidden]{display:none}.asset-sheet__card{width:min(1280px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:22px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:16px;border-radius:20px;border:1px solid rgba(255,238,208,.16);background:linear-gradient(180deg,#181d26f5,#0a0c11fa);box-shadow:0 26px 60px #00000073}.asset-sheet__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.asset-sheet__header h2,.asset-sheet__meta{margin:0}.asset-sheet__layout{min-height:0;display:grid;grid-template-columns:minmax(0,1.9fr) minmax(320px,360px);gap:16px}.asset-sheet__workspace,.asset-sheet__sidebar,.asset-sheet__list{min-height:0;display:grid;gap:12px}.asset-sheet__sidebar{grid-template-rows:auto auto auto auto minmax(0,1fr);align-content:start;min-height:0}.asset-sheet__viewport{min-height:0;overflow:auto;padding:12px;border-radius:18px;border:1px solid rgba(255,236,210,.12);background:linear-gradient(45deg,rgba(255,255,255,.06) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.06) 75%),linear-gradient(45deg,rgba(255,255,255,.06) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.06) 75%),linear-gradient(180deg,#ffffff08,#ffffff03),#00000047;background-position:0 0,12px 12px,0 0;background-size:24px 24px,24px 24px,auto}.asset-sheet__image-wrap{position:relative;width:fit-content;margin:0 auto;touch-action:none;-webkit-user-select:none;user-select:none}.asset-sheet__image-wrap img{display:block;max-width:min(100%,900px);max-height:72vh;width:auto;height:auto;object-fit:contain;border-radius:14px;box-shadow:0 18px 50px #00000057}.asset-sheet__rect-layer,.asset-sheet__selection{position:absolute;inset:0;pointer-events:none}.asset-sheet__saved-rect,.asset-sheet__selection{border-radius:10px}.asset-sheet__saved-rect{position:absolute;border:1px solid rgba(255,228,157,.4);background:#ffb4480d;overflow:hidden;padding:0;appearance:none;cursor:pointer;pointer-events:auto}.asset-sheet__saved-rect--current{border-color:#7dddbaf5;background:transparent;box-shadow:0 0 0 2px #7dddba2e}.asset-sheet__saved-rect--saved{border-color:#7dddba85}.asset-sheet__saved-rect--skipped{border-color:#bec3cd6b;background:#79818e0f}.asset-sheet__saved-rect span{display:none}.asset-sheet__selection{border:2px solid rgba(125,221,186,.96);background:transparent;box-shadow:0 0 0 9999px #0000001f}.asset-sheet__actions{grid-template-columns:repeat(3,minmax(0,1fr))}.asset-sheet__preview{padding:12px;display:grid;place-items:center;border-radius:16px;border:1px solid rgba(255,236,210,.12);background:#ffffff0a}.asset-sheet__preview canvas{position:static;inset:auto;width:min(220px,100%);height:auto;max-height:220px;border-radius:12px;background:linear-gradient(45deg,rgba(255,255,255,.06) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.06) 75%),linear-gradient(45deg,rgba(255,255,255,.06) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.06) 75%),#0000003d;background-position:0 0,10px 10px;background-size:20px 20px;box-shadow:none;image-rendering:pixelated}.asset-sheet__list{overflow:auto;padding:12px;border-radius:16px;border:1px solid rgba(255,236,210,.12);background:#ffffff0a}.asset-sheet__list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 0;border-bottom:1px solid rgba(255,236,210,.08);border-left:0;border-right:0;border-top:0;background:transparent;color:inherit;text-align:left;cursor:pointer;appearance:none}.asset-sheet__list-item:last-child{border-bottom:0}.asset-sheet__list-item--current{color:#7dddbaf5}.asset-sheet__list-item strong,.asset-sheet__list-item span,.asset-sheet__empty{display:block}.asset-sheet__list-item span,.asset-sheet__empty,.asset-sheet__meta{font-size:.84rem;color:#ffecd2ad}.asset-library{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#05070ab8;z-index:13}.asset-library[hidden]{display:none}.asset-library__card{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:22px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:16px;border-radius:20px;border:1px solid rgba(255,238,208,.16);background:linear-gradient(180deg,#181d26f5,#0a0c11fa);box-shadow:0 26px 60px #00000073}.asset-library__list{min-height:0;overflow:auto;padding:12px;border-radius:16px;border:1px solid rgba(255,236,210,.12);background:#ffffff0a}.asset-library__item{display:grid;gap:14px;padding:12px 0;border-bottom:1px solid rgba(255,236,210,.08)}.asset-library__section{display:grid;gap:12px}.asset-library__item:last-child{border-bottom:0}.asset-library__item strong,.asset-library__item span{display:block}.asset-library__item>div:first-child{display:grid;gap:10px}.asset-library__item span{font-size:.84rem;color:#ffecd2ad}.asset-library__item button,.asset-library__subasset button{border:0;border-radius:12px;padding:10px 12px;font:inherit;color:#f8f1dd;background:linear-gradient(180deg,#e9a14beb,#a55227f0);cursor:pointer}.asset-library__subasset{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-radius:14px;border:1px solid rgba(255,236,210,.08);background:#ffffff08}.asset-library__subasset--standalone{padding:12px}.npc-picker{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#05070ab8;z-index:13}.npc-picker[hidden]{display:none}.npc-picker__card{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:22px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:16px;border-radius:20px;border:1px solid rgba(255,238,208,.16);background:linear-gradient(180deg,#181d26f5,#0a0c11fa);box-shadow:0 26px 60px #00000073}.npc-picker__list{min-height:0;overflow:auto;padding:12px;display:grid;gap:10px;border-radius:16px;border:1px solid rgba(255,236,210,.12);background:#ffffff0a}.npc-picker__item{width:100%;padding:14px 16px;display:grid;gap:6px;border:1px solid rgba(255,236,210,.1);border-radius:14px;background:#ffffff0a;color:inherit;text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.npc-picker__item:hover,.npc-picker__item:focus-visible,.npc-picker__item.is-selected{transform:translateY(-2px);border-color:#7dddba7a;box-shadow:0 18px 40px #0003}.npc-picker__item strong,.npc-picker__item span{display:block}.npc-picker__item span{font-size:.84rem;color:#ffecd2ad}.asset-sheet__list-item button{border:1px solid rgba(255,236,210,.18);border-radius:10px;padding:8px 10px;font:inherit;color:#fff5dc;background:#ffffff0f;cursor:pointer}.editor-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;cursor:grab;-webkit-user-select:none;user-select:none}.editor-panel__header:active{cursor:grabbing}.editor-panel__header-actions{display:flex;gap:8px}.editor-panel__header h2,.editor-panel__eyebrow,.editor-hint,.editor-status{margin:0}.editor-panel__eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#ffdfa2d1}.editor-panel__header h2{font-size:1.2rem}.editor-panel__toggle,.editor-actions button,.editor-field button{border:0;border-radius:12px;padding:10px 12px;font:inherit;color:#f8f1dd;background:linear-gradient(180deg,#e9a14beb,#a55227f0);cursor:pointer}.editor-panel__body{min-height:0;display:grid;gap:14px;align-content:start;overflow-x:hidden;overflow-y:auto;padding-right:2px}.editor-panel__body[hidden],.editor-panel.is-collapsed .editor-panel__body{display:none}.editor-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.editor-badges{display:flex;flex-wrap:wrap;gap:8px}.editor-badge{padding:6px 10px;border-radius:999px;font-size:.78rem;border:1px solid rgba(255,236,210,.12);background:#ffffff0f;color:#fff3dce6}.editor-badge[data-state=saved],.editor-badge[data-state=clean]{background:#52bf8a2e;color:#dfffe8}.editor-badge[data-state=dirty]{background:#e9a14b33;color:#ffe4b6}.editor-field{display:grid;gap:6px}.editor-field span{font-size:.82rem;color:#fff0d6cc}.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.editor-field input,.editor-field select,.editor-field textarea{width:100%;border:1px solid rgba(255,236,210,.16);border-radius:12px;padding:10px 12px;font:inherit;color:#fff5dc;background:#ffffff0f}.editor-field select,.editor-field select option{color:#fff5dc;background:#1a1f28}.editor-field select{color-scheme:dark}.editor-field select option,.editor-field select optgroup{color:#1d1b18;background:#fff}.editor-field select option:disabled{color:#8a8174}.editor-field small{font-size:.74rem;color:#ffecd29e}.editor-field textarea{min-height:180px;resize:vertical;font-family:SF Mono,Menlo,monospace;font-size:.84rem;line-height:1.5}.editor-hint{font-size:.85rem;color:#ffefd6b8}.editor-status{font-size:.9rem;color:#ffdf9f}kbd{border-radius:6px;padding:2px 6px;background:#ffffff1a;border:1px solid rgba(255,255,255,.12);font:inherit}body.editor-open canvas{cursor:crosshair}@media(max-width:720px){.help-hud{right:12px;bottom:12px}.help-hud__buttons{gap:8px}.help-panel{width:min(340px,calc(100vw - 24px));max-height:calc(100vh - 96px);overflow:auto}.settings-panel{width:min(340px,calc(100vw - 24px))}.help-panel__row{align-items:flex-start;flex-direction:column;gap:4px}.help-panel__row span:last-child{text-align:left}.editor-panel{inset:auto 12px 12px;width:auto;max-height:58vh}.editor-panel__header{cursor:default}.asset-sheet{padding:12px}.asset-sheet__card{max-height:calc(100vh - 24px);padding:16px}.asset-sheet__layout{grid-template-columns:1fr}.asset-sheet__image-wrap img{max-width:100%;max-height:44vh}.asset-sheet__sidebar,.asset-library__card{min-height:0}}
