@font-face{font-family:DotGothic16;src:url(/fonts/DotGothic16-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:dark;background-color:#344149;font-size:16px;--panel-bg: rgba(20, 32, 46, .9);--panel-border: rgba(152, 188, 255, .45);--panel-border-strong: rgba(152, 188, 255, .65);--panel-accent: rgba(116, 220, 152, .75);--panel-shadow: 0 18px 32px rgba(0, 0, 0, .4);--text-soft: rgba(212, 224, 255, .75);--text-strong: #f2f6ff;--console-line-height: 1.15rem}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{min-height:100vh;width:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#344149;color:var(--text-strong);display:flex;justify-content:center}#root{flex:1 1 auto;display:flex;justify-content:center;max-height:100vh;overflow:hidden}.app-shell{flex:1 1 auto;display:flex;justify-content:center;padding:8px;box-sizing:border-box;width:100%;margin:0 auto}@media (max-width: 600px){.app-shell{padding:4px}}.app-main{width:100%;display:flex;flex-direction:column;gap:18px;position:relative;color:var(--text-strong);text-shadow:0 0 6px rgba(8,15,33,.55);font-family:DotGothic16,monospace}.status-bar{display:flex;justify-content:center;width:100%}.status-strip{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;background:#182434d9;border-radius:12px;padding:8px 12px;pointer-events:auto}.status-strip--placeholder{display:flex;justify-content:center;align-items:center;font-size:.95rem;color:var(--text-soft)}.status-strip__identity{display:contents;border:none;background:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.status-strip__avatar{width:32px;height:32px;border-radius:8px;object-fit:cover;box-shadow:0 6px 14px #0006}.status-strip__avatar--placeholder{background:#98bcff40;border:1px dashed rgba(152,188,255,.4)}.status-strip__meta{display:flex;flex-direction:column;gap:1px;min-width:0}.status-strip__label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft)}.status-strip__name{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-strip__controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.status-strip__btn{background:#122034d9;border:1px solid rgba(152,188,255,.4);border-radius:8px;padding:4px 9px;font-family:inherit;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-strong);cursor:pointer;transition:background .2s ease,border-color .2s ease}.status-strip__btn:hover:not(:disabled){background:#1c2c46f2;border-color:var(--panel-border-strong)}.status-strip__btn.is-on{background:#183428e6;border-color:var(--panel-accent);color:#e2ffedf2}.status-strip__btn:disabled{opacity:.55;cursor:not-allowed}.status-strip__btn--ghost{background:transparent;border-color:#98bcff59}.status-strip__btn--ghost:hover{background:#182434b3}.status-error{width:100%;font-size:.8rem;color:#ff8a8a;text-shadow:none}.game-container{position:relative;width:100%;display:flex;justify-content:center;align-items:center}.game-surface{position:relative;display:flex;justify-content:center;align-items:center;margin:0 auto;width:fit-content;max-width:100%}.game-console-overlay{position:absolute;left:50%;bottom:clamp(16px,6vh,36px);transform:translate(-50%);display:flex;justify-content:center;width:min(720px,calc(100% - 48px));pointer-events:none}.game-console-overlay .console-region{width:100%;min-height:84px;background:#121c2eeb;border-color:#98bcff73;box-shadow:0 18px 42px #090e1c8c;pointer-events:auto;backdrop-filter:blur(8px)}.game-canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;background:#344149}.game-overlays{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.player-overlays{position:absolute;inset:0;pointer-events:none}.dpad{position:absolute;bottom:12px;right:12px;display:grid;grid-template-rows:auto auto auto;justify-items:center;gap:6px;pointer-events:auto;touch-action:none}.dpad-middle{display:flex;gap:6px}.dpad-btn{width:48px;height:48px;border-radius:12px;border:1px solid rgba(152,188,255,.4);background:#142236e6;color:var(--text-strong);font-size:1.3rem;font-family:inherit;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px #00000059;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.dpad-btn:active{transform:translateY(1px);background:#1e3046f2}@media (pointer: fine){.dpad{display:none}}@media (max-width: 960px){.game-container{flex-direction:column;align-items:center;gap:12px}.game-surface{width:100%}.status-strip{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:12px}.status-strip__identity{display:flex;align-items:center;gap:10px;width:100%}.status-strip__meta{align-items:flex-start}.status-strip__controls{width:100%;justify-content:center;gap:8px;flex-wrap:nowrap}.status-strip__btn{flex:1 1 0;text-align:center}.game-console-overlay{position:static;transform:none;width:100%;pointer-events:auto;margin-top:12px;bottom:auto}.game-console-overlay .console-region{max-width:none;backdrop-filter:none;min-height:auto}}@media (max-width: 600px){.game-console-overlay{align-self:stretch;margin-top:8px}.game-console-overlay .console-region{padding:12px 14px}.status-strip__controls{gap:6px;flex-wrap:wrap}.status-strip__btn{flex:1 1 100%}}.console-region{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:16px;padding:14px 18px;display:flex;flex-direction:column;gap:12px;min-height:120px;box-shadow:var(--panel-shadow);pointer-events:auto;width:100%}.console-region.is-open{border-color:var(--panel-border-strong)}.console-region__log{flex:1 1 auto;max-height:220px;overflow-y:auto;line-height:var(--console-line-height)}.console-region:not(.is-open) .console-region__log{max-height:calc(var(--console-line-height) * 2.4);overflow:hidden;opacity:.9}.console-line{white-space:pre-wrap;word-break:break-word}.console-region__form{display:flex;align-items:center;gap:10px;background:#122034e6;border-radius:10px;border:1px solid rgba(152,188,255,.4);padding:8px 12px;font-family:inherit}.console-region__prompt{color:var(--panel-accent)}.console-region__form input{flex:1 1 auto;background:transparent;border:none;color:var(--text-strong);font-family:inherit;font-size:1rem;outline:none}.login-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;min-height:100vh;background:#0c1420e6;backdrop-filter:blur(6px);z-index:40}.login-modal{width:min(360px,100%);background:#14202ef5;border:1px solid var(--panel-border);border-radius:18px;padding:24px 20px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--panel-shadow);text-align:center;color:var(--text-strong);font-family:DotGothic16,monospace;margin:auto}.login-modal h1{margin:0;font-size:1.6rem;letter-spacing:.28em;text-transform:uppercase}.login-description{margin:0;font-size:1rem;color:var(--text-soft)}.login-form{display:flex;gap:10px}.login-form input{flex:1 1 auto;background:#0a1220f2;border:1px solid rgba(152,188,255,.45);border-radius:10px;padding:10px 12px;font-family:DotGothic16,monospace;font-size:1rem;color:var(--text-strong)}.login-form button,.ext-login{background:#1c2c46eb;border:1px solid rgba(152,188,255,.55);border-radius:10px;color:var(--text-strong);padding:10px 14px;font-family:DotGothic16,monospace;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,border-color .2s ease}.login-form button:hover:not(:disabled),.ext-login:hover:not(:disabled){background:#283a58f2;border-color:var(--panel-border-strong)}.login-form button:disabled,.ext-login:disabled{opacity:.6;cursor:not-allowed}.ext-login{width:100%}.bunker-login{background:#1c2c46eb;border:1px solid rgba(152,188,255,.55);border-radius:10px;color:var(--text-strong);padding:10px 14px;font-family:DotGothic16,monospace;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,border-color .2s ease;width:100%}.bunker-login:hover:not(:disabled){background:#283a58f2;border-color:var(--panel-border-strong)}.bunker-login:disabled{opacity:.6;cursor:not-allowed}.login-error{font-size:.85rem;color:#ff8a8a;text-shadow:none}.existing-accounts{display:flex;flex-direction:column;gap:12px}.existing-accounts h3{margin:0;font-size:1.1rem;color:var(--text-strong);font-weight:600}.account-list{display:flex;flex-direction:column;gap:8px}.account-item{display:flex;align-items:center;gap:8px;background:#0a1220f2;border:1px solid rgba(152,188,255,.35);border-radius:10px;transition:all .15s ease;width:100%}.account-item:hover{background:#141c2af2;border-color:var(--panel-border-strong)}.account-select-btn{display:flex;align-items:center;gap:12px;padding:12px;background:transparent;border:none;color:var(--text-strong);font-family:inherit;cursor:pointer;text-align:left;flex:1;border-radius:10px;transition:all .15s ease}.account-select-btn:hover{background:#ffffff0d}.account-remove-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid rgba(255,100,100,.4);border-radius:6px;color:#ff6b6b;font-family:inherit;font-size:18px;font-weight:700;cursor:pointer;transition:all .15s ease;margin-right:8px;flex-shrink:0}.account-remove-btn:hover{background:#ff64641a;border-color:#ff646499;color:#f55}.account-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.account-name{font-size:1rem;font-weight:500;color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-pubkey{font-size:.85rem;font-family:DotGothic16,monospace;color:var(--text-soft)}.login-divider{text-align:center;color:var(--text-soft);font-size:.9rem;margin:4px 0}.avatar-head{position:absolute;top:0;left:0;pointer-events:auto;display:flex;align-items:center;justify-content:center;overflow:visible;border-radius:6px;border:1px solid rgba(24,34,54,.9);z-index:10;background:#00000026}.avatar-head.is-speaking{border-color:var(--panel-accent);box-shadow:0 0 0 2px #74dc9873,0 0 22px #74dc984d}.avatar-head img{width:100%;height:100%;object-fit:cover}.avatar-head.is-speaking img{filter:drop-shadow(0 0 4px rgba(116,220,152,.6))}.avatar-head .avatar-label{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#0c1422f2;border:1px solid rgba(152,188,255,.45);border-radius:8px;padding:4px 8px;font-size:.8rem;white-space:nowrap;color:var(--text-strong);opacity:0;pointer-events:none;transition:opacity .15s ease}.avatar-head:hover .avatar-label{opacity:1}.chat-bubble{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:#121c30f2;border:1px solid rgba(152,188,255,.45);border-radius:10px;padding:6px 10px;max-width:220px;color:var(--text-strong);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.85rem;box-shadow:0 10px 20px #00000059}.chat-bubble span{display:block}@media (max-width: 768px){.status-card{gap:12px}.status-controls{width:100%;justify-content:space-between}.status-btn{flex:1 1 auto;text-align:center}.console-region{padding:12px 14px}}.bunker-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.back-btn{background:transparent;border:1px solid rgba(152,188,255,.35);border-radius:8px;color:var(--text-strong);padding:8px 12px;font-family:DotGothic16,monospace;font-size:.9rem;cursor:pointer;transition:all .2s ease}.back-btn:hover{background:#141c2af2;border-color:var(--panel-border-strong)}.bunker-login-section{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.bunker-login-section h3{margin:0;font-size:1.1rem;color:var(--text-strong);font-weight:600}.bunker-url-form{display:flex;flex-direction:column;gap:10px}.bunker-url-form input{background:#0a1220f2;border:1px solid rgba(152,188,255,.35);border-radius:8px;color:var(--text-strong);padding:12px;font-family:DotGothic16,monospace;font-size:.9rem;width:100%;box-sizing:border-box}.bunker-url-form input:focus{outline:none;border-color:var(--panel-border-strong);background:#0f1725f2}.bunker-url-form input::placeholder{color:#ffffff80}.bunker-url-form button,.qr-login-btn{background:#1c2c46eb;border:1px solid rgba(152,188,255,.55);border-radius:8px;color:var(--text-strong);padding:10px 14px;font-family:DotGothic16,monospace;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,border-color .2s ease;width:100%}.bunker-url-form button:hover:not(:disabled),.qr-login-btn:hover:not(:disabled){background:#283a58f2;border-color:var(--panel-border-strong)}.bunker-url-form button:disabled,.qr-login-btn:disabled{opacity:.6;cursor:not-allowed}.qr-code-section{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.qr-instruction{margin:0;font-size:.95rem;color:var(--text-strong);opacity:.8}.qr-code-container{display:flex;align-items:center;justify-content:center;padding:16px;background:#fffffff2;border-radius:12px;border:2px solid rgba(152,188,255,.35);transition:all .2s ease}.qr-code-container:hover{border-color:var(--panel-border-strong)}.qr-code-image{width:200px;height:200px;display:block}.cancel-btn{background:transparent;border:1px solid rgba(255,100,100,.4);border-radius:8px;color:#ff8a8a;padding:8px 16px;font-family:DotGothic16,monospace;font-size:.9rem;cursor:pointer;transition:all .2s ease}.cancel-btn:hover{background:#ff64641a;border-color:#ff646499}.players-drawer-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;justify-content:flex-end;align-items:stretch}.players-drawer{width:320px;max-width:90vw;background:var(--panel-bg);border:1px solid var(--panel-border);border-right:none;border-radius:12px 0 0 12px;box-shadow:var(--panel-shadow);display:flex;flex-direction:column;font-family:DotGothic16,monospace;animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.players-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--panel-border);background:#0003}.players-drawer__title{margin:0;font-size:1.1rem;color:var(--text-strong);font-weight:400}.players-drawer__close{background:transparent;border:none;color:var(--text-soft);font-size:1.5rem;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s ease;line-height:1}.players-drawer__close:hover{background:#ffffff1a;color:var(--text-strong)}.players-drawer__content{flex:1;overflow-y:auto;padding:8px 0}.player-item{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.05);transition:background-color .2s ease;position:relative}.player-item:hover{background:#ffffff0d}.player-item--current{background:#74dc981a;border-left:3px solid var(--panel-accent)}.player-item--speaking{background:#ffd7001a}.player-item__avatar{position:relative;flex-shrink:0}.player-item__avatar img{width:40px;height:40px;border-radius:50%;border:2px solid var(--panel-border);background:#ffffff1a}.player-item--speaking .player-item__avatar img{border-color:gold;box-shadow:0 0 8px #ffd70066}.player-item__speaking-indicator{position:absolute;top:-2px;right:-2px;width:12px;height:12px;background:gold;border-radius:50%;border:2px solid var(--panel-bg);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.player-item__info{flex:1;min-width:0}.player-item__name{font-size:.95rem;color:var(--text-strong);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-item--current .player-item__name{color:var(--panel-accent);font-weight:600}.player-item__npub{font-size:.8rem;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Courier New,monospace}.player-item__volume{display:flex;align-items:center;gap:8px;margin-top:6px}.player-item__volume-bar{flex:1;height:6px;background-color:#ffffff1a;border-radius:3px;overflow:hidden}.player-item__volume-fill{height:100%;background:linear-gradient(90deg,#4ade80,#22c55e,#16a34a);transition:width .2s ease-out;border-radius:3px}.player-item__volume-text{font-size:.75rem;color:var(--text-soft);min-width:36px;text-align:right;font-family:Courier New,monospace}.players-drawer__empty{padding:40px 20px;text-align:center;color:var(--text-soft);font-size:.9rem}@media (max-width: 600px){.players-drawer{width:100vw;max-width:100vw;border-radius:0;border:none;border-top:1px solid var(--panel-border)}.players-drawer-overlay{justify-content:center;align-items:flex-end}@keyframes slideInRight{0%{transform:translateY(100%)}to{transform:translateY(0)}}}
