:root{--ink: #1c1814;--paper: #f3ebe0;--gold: #c4a35a;--wood: #5c4030;--mist: rgba(28, 24, 20, .55);--glass: rgba(243, 235, 224, .14);--glass-border: rgba(243, 235, 224, .28);--font-display: "Cormorant Garamond", Georgia, serif;--font-ui: "Source Sans 3", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;overflow:hidden;background:#0d0b09;color:var(--paper);font-family:var(--font-ui)}#scene{display:block;width:100%;height:100%}.boot-overlay{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;padding:2rem;background:radial-gradient(ellipse at center,#1a1510,#0d0b09 70%);text-align:center;transition:opacity .45s ease}.boot-overlay.is-hidden{opacity:0;pointer-events:none}.boot-overlay.is-error .boot-status{color:#e8a090}.boot-status{font-size:.95rem;opacity:.85;letter-spacing:.04em}.boot-bar{width:min(16rem,70vw);height:.35rem;border-radius:999px;background:#f3ebe01f;overflow:hidden}.boot-bar-fill{height:100%;width:8%;border-radius:inherit;background:linear-gradient(90deg,#c4a35a,#e8d5a0);transition:width .35s ease}.boot-overlay.is-error .boot-bar{display:none}.top-bar{position:fixed;top:1.25rem;left:1.5rem;z-index:2;pointer-events:none;text-shadow:0 1px 12px rgba(0,0,0,.45)}.top-right-bar{position:fixed;top:1.15rem;right:1.15rem;z-index:5;display:flex;align-items:center;gap:.85rem;pointer-events:none}.top-right-bar>*{pointer-events:auto}.merit-counter{display:flex;align-items:center;gap:.35rem;color:var(--paper);text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.35);-webkit-user-select:none;user-select:none}.merit-icon{font-size:1.35rem;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.merit-label{font-family:var(--font-ui);font-size:.92rem;font-weight:500;letter-spacing:.02em;opacity:.92}.merit-value{font-family:var(--font-display);font-size:1.15rem;font-weight:600;min-width:1.4rem;color:#f0d9a0}.merit-value.merit-pop{animation:merit-pop .35s ease}@keyframes merit-pop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.settings-btn{appearance:none;border:0;background:transparent;color:var(--paper);width:2.5rem;height:2.5rem;padding:0;font-size:2.35rem;line-height:1;cursor:pointer;display:grid;place-items:center;text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.35)}.settings-btn:hover{color:#f0d9a0;transform:rotate(28deg);transition:transform .2s ease,color .2s ease}.brand{font-family:var(--font-display);font-weight:600;font-size:clamp(1.75rem,4vw,2.4rem);letter-spacing:.04em;line-height:1.1}.subtitle{margin-top:.2rem;font-size:.85rem;opacity:.72;letter-spacing:.04em}.actions{position:fixed;left:50%;bottom:1.75rem;transform:translate(-50%);z-index:2;display:flex;gap:.55rem;padding:.45rem;border-radius:999px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.action-btn{appearance:none;border:0;cursor:pointer;min-width:6.2rem;padding:.7rem .85rem;border-radius:999px;background:transparent;color:var(--paper);font-family:var(--font-ui);font-size:.82rem;font-weight:500;letter-spacing:.04em;display:flex;flex-direction:column;align-items:center;gap:.15rem;transition:background .2s ease,color .2s ease}.action-btn:hover{background:#f3ebe01f}.action-btn:disabled{opacity:.55;cursor:wait}.action-btn.primary.active,.action-btn.active{background:#c4a35a47;color:#f7e7c0}.action-btn .icon{width:1.1rem;height:1.1rem;opacity:.9}.action-btn .icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.social-dock{position:fixed;left:1.25rem;bottom:1.75rem;z-index:3;display:flex;flex-direction:column;gap:.4rem;width:min(22rem,calc(100vw - 12rem));pointer-events:none}.social-dock>*{pointer-events:auto}.chat-log{max-height:8.5rem;min-height:3.5rem;overflow-y:auto;font-size:.8rem;line-height:1.4;color:#f3ebe0e6;padding:.55rem .7rem;border-radius:12px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.chat-line{margin-bottom:.3rem;word-break:break-word}.chat-line strong{font-weight:600;margin-right:.35rem}.chat-form{display:flex;gap:.35rem;padding:.4rem;border-radius:999px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.chat-form input{flex:1;appearance:none;border:0;border-radius:999px;background:#0d0b0959;color:var(--paper);padding:.5rem .8rem;font-family:var(--font-ui);font-size:.85rem}.chat-form input::placeholder{color:#f3ebe066}.chat-emoji,.chat-send{appearance:none;border:0;border-radius:999px;width:2.25rem;height:2.25rem;flex-shrink:0;cursor:pointer;display:grid;place-items:center;font-size:1rem;background:#0d0b0959;color:var(--paper)}.chat-send{background:#c4a35a66}.chat-emoji:hover,.chat-send:hover{background:#c4a35a80}.emote-panel{position:absolute;left:0;bottom:calc(100% + .45rem);width:100%;padding:.65rem .7rem;border-radius:14px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.emote-panel[hidden]{display:none!important}.emote-heading{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;opacity:.6;margin:.2rem 0 .4rem}.emote-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin-bottom:.55rem}.emote-item{appearance:none;border:1px solid var(--glass-border);border-radius:10px;background:#0d0b0959;color:var(--paper);padding:.45rem .3rem;font-size:.72rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.15rem}.emote-item:hover,.emoji-item:hover{background:#c4a35a38}.emote-emojis{display:flex;flex-wrap:wrap;gap:.3rem}.emoji-item{appearance:none;border:0;border-radius:8px;background:#0d0b094d;font-size:1.15rem;width:2rem;height:2rem;cursor:pointer}.avatar-emoji{position:fixed;left:0;top:0;z-index:4;font-size:1.6rem;pointer-events:none;opacity:0;transition:opacity .2s ease;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45))}.avatar-emoji.show{opacity:1}.avatar-name{position:fixed;left:0;top:0;z-index:4;pointer-events:none;font-family:var(--font-ui);font-size:.85rem;font-weight:500;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.85),0 0 8px rgba(0,0,0,.55);white-space:nowrap;background:none;border:0;padding:0}.track-picker{position:fixed;right:1.25rem;bottom:1.75rem;z-index:2;display:flex;flex-direction:column;gap:.35rem;padding:.7rem .85rem;border-radius:12px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:#f3ebe0bf}.track-picker select{appearance:none;border:1px solid var(--glass-border);border-radius:8px;background:#0d0b098c;color:var(--paper);padding:.45rem .6rem;font-family:var(--font-ui);font-size:.85rem;text-transform:none;letter-spacing:0;max-width:14rem}.mala-overlay{position:fixed;inset:0;z-index:20;background:#f2ece4;color:#3a2e24}.mala-overlay[hidden]{display:none!important}.mala-canvas{display:block;width:100%;height:100%}.mala-back{position:absolute;top:1.25rem;left:1.25rem;z-index:2;appearance:none;border:1px solid rgba(58,46,36,.2);border-radius:999px;background:#fffcf7bf;color:#3a2e24;padding:.55rem 1rem;font-family:var(--font-ui);font-size:.85rem;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mala-back:hover{background:#fffcf7f2}.mala-hud{position:absolute;left:1.5rem;bottom:1.75rem;z-index:2;color:#3a2e24}.mala-count{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.8rem);font-weight:600;letter-spacing:.04em}.mala-round{margin-top:.15rem;font-size:.9rem;opacity:.7;letter-spacing:.06em}body:has(.char-select) .social-dock,body:has(.char-select) .actions,body:has(.char-select) .track-picker,body:has(.char-select) .avatar-name{opacity:0;pointer-events:none}.char-select{position:fixed;inset:0;z-index:30;display:flex;align-items:stretch;justify-content:flex-end;background:linear-gradient(90deg,transparent 0%,transparent 42%,rgba(10,8,6,.55) 58%,rgba(10,8,6,.82) 100%);pointer-events:auto}.char-select-card{width:min(22rem,92vw);margin:1.25rem;padding:1.25rem 1.2rem 1.35rem;border-radius:18px;background:#14100cc7;border:1px solid var(--glass-border);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);align-self:center;max-height:calc(100vh - 2.5rem);overflow-y:auto}.char-select-title{font-family:var(--font-display);font-size:1.85rem;font-weight:600;letter-spacing:.03em}.char-select-sub{margin:.25rem 0 1rem;font-size:.85rem;opacity:.7}.char-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.85}.char-field-hint{font-size:.7rem;letter-spacing:.02em;text-transform:none;opacity:.65;line-height:1.35}.char-field input{appearance:none;border:1px solid var(--glass-border);border-radius:10px;background:#0d0b098c;color:var(--paper);padding:.65rem .8rem;font-family:var(--font-ui);font-size:1rem;letter-spacing:0;text-transform:none}.char-section{margin-bottom:.9rem}.char-section-label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;opacity:.65;margin-bottom:.4rem}.char-swatches{display:flex;flex-wrap:wrap;gap:.45rem}.char-swatch{appearance:none;border:2px solid transparent;width:2.1rem;height:2.1rem;border-radius:999px;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff26}.char-swatch.active{border-color:#f0d9a0;box-shadow:0 0 0 2px #f0d9a059}.char-faces{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.char-face{appearance:none;border:1px solid var(--glass-border);border-radius:10px;background:#0d0b0966;color:var(--paper);padding:.55rem .4rem;font-family:var(--font-ui);font-size:.82rem;cursor:pointer}.char-face.active{background:#c4a35a47;border-color:#f0d9a08c}.char-actions{display:flex;gap:.5rem;margin-top:.5rem}.char-enter,.char-cancel{appearance:none;border:0;flex:1;padding:.85rem 1rem;border-radius:999px;font-family:var(--font-ui);font-size:.95rem;font-weight:500;letter-spacing:.04em;cursor:pointer}.char-enter{background:#c4a35a73;color:#fff8e8}.char-enter:hover{background:#c4a35a9e}.char-cancel{background:#0d0b0973;color:#f3ebe0d9;border:1px solid var(--glass-border)}.char-cancel:hover{background:#0d0b09a6}body:has(.char-select) .top-right-bar{opacity:0;pointer-events:none}@media(max-width:640px){.top-bar{left:1rem;top:1rem}.track-picker{right:.75rem;bottom:5.6rem;max-width:calc(100vw - 1.5rem)}.social-dock{left:.75rem;right:.75rem;bottom:5.6rem;width:auto}.actions{bottom:1rem;width:calc(100vw - 1.5rem);justify-content:space-evenly}.action-btn{min-width:0;flex:1;padding:.65rem .4rem}.char-select{background:#0a0806b8;justify-content:center;align-items:flex-end}.char-select-card{width:100%;margin:0;border-radius:18px 18px 0 0;max-height:70vh}}
