:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0b1117;color:#eaf7ff}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}canvas{display:block}.hud{position:fixed;inset:0;pointer-events:none}.message{position:absolute;left:50%;top:20px;max-width:min(560px,calc(100vw - 32px));transform:translate(-50%,-10px);padding:10px 14px;border:1px solid rgba(98,244,255,.28);background:#071218c2;color:#dff8ff;opacity:0;transition:opacity .16s ease,transform .16s ease;text-align:center;font-weight:650}.message--visible{opacity:1;transform:translate(-50%)}.message--error{border-color:#ff6d8680;background:#2c0a12d6;color:#ffd8df}.tooltip{position:absolute;left:50%;bottom:86px;max-width:min(680px,calc(100vw - 32px));transform:translate(-50%);padding:8px 12px;border:1px solid rgba(124,212,236,.2);background:#080e16b3;color:#dff8ff;opacity:0;transition:opacity .12s ease;text-align:center}.tooltip--visible{opacity:1}.tooltip__title{font-weight:800}.tooltip__detail{color:#dff8ffbd}.tooltip__title:after,.tooltip__detail:after{content:" | ";color:#7cd4ec70;font-weight:500}.tooltip__actions{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:6px 10px;vertical-align:middle}.tooltip__action{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.tooltip__face-glyph{display:inline-flex;width:1.35em;height:1.35em;color:#dff8ff;vertical-align:-.28em}.tooltip__face-glyph svg{width:100%;height:100%;overflow:visible}.tooltip__face-glyph circle{fill:#080e16d6;stroke:#dff8ff9e;stroke-width:1.5}.tooltip__face-glyph circle.is-active{fill:currentColor;stroke:currentColor}.tooltip__trigger-glyph{display:inline-flex;align-items:center;justify-content:center;min-width:2.1em;height:1.35em;padding:0 .32em;border:1px solid rgba(223,248,255,.72);border-radius:.45em;background:#dff8ff21;color:#eafcff;font-size:.92em;font-weight:800;line-height:1}.crosshair{position:absolute;left:50%;top:50%;width:14px;height:14px;transform:translate(-50%,-50%)}.crosshair:before,.crosshair:after{position:absolute;content:"";background:#e2faffdb}.crosshair:before{left:6px;top:0;width:2px;height:14px}.crosshair:after{left:0;top:6px;width:14px;height:2px}.fade{position:absolute;inset:0;display:grid;place-items:center;background:#03070b;opacity:0;transition:opacity .26s ease}.fade--visible{opacity:1}.fade__text{color:#eafcff;font-size:clamp(28px,5vw,68px);font-weight:750;line-height:1.08;text-align:center;text-transform:lowercase;text-shadow:0 0 24px rgba(98,244,255,.34)}.level-dialog{position:fixed;inset:0;display:none;place-items:center;padding:22px;background:#03070bb8;pointer-events:auto;z-index:10}.level-dialog--visible{display:grid}.level-dialog__panel{position:relative;width:min(760px,100%);max-height:min(82vh,760px);overflow:auto;padding:22px;border:1px solid rgba(124,212,236,.26);background:#080e16f5;box-shadow:0 18px 80px #00000073}.level-dialog__panel h1{margin:0 38px 18px 0;color:#eafcff;font-size:24px;line-height:1.15}.level-dialog__close{position:absolute;top:14px;right:14px;width:30px;height:30px;border:1px solid rgba(124,212,236,.24);background:#10202ae6;color:#dff8ff;cursor:pointer}.level-dialog__actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(156px,1fr));gap:10px}.level-dialog__button{min-height:42px;border:1px solid rgba(124,212,236,.28);background:#132630;color:#eafcff;font:inherit;font-weight:700;cursor:pointer}.level-dialog__button:hover,.level-dialog__button:focus-visible,.level-dialog__close:hover,.level-dialog__close:focus-visible,.public-rooms__refresh:hover,.public-rooms__refresh:focus-visible,.public-room__join:hover,.public-room__join:focus-visible,.level-dialog__input:focus-visible,.level-dialog__textarea:focus-visible{border-color:#8fffe78f;background:#183440}.level-dialog--controller-focus .level-dialog__button:focus,.level-dialog--controller-focus .level-dialog__close:focus,.level-dialog--controller-focus .public-rooms__refresh:focus,.level-dialog--controller-focus .public-room__join:focus,.level-dialog--controller-focus .level-dialog__input:focus,.level-dialog--controller-focus .level-dialog__textarea:focus{outline:3px solid rgba(143,255,231,.85);outline-offset:3px;box-shadow:0 0 0 6px #62f4ff29}.level-dialog__button--primary{width:100%;margin-top:10px;background:#0f3a3e}.level-dialog__button--back{border-color:#62a3ff5c;background:#10223a;color:#d9eaff}.level-dialog__button--back:hover{border-color:#81b8ffb3;background:#143058}.level-dialog__button--secondary{min-width:96px;min-height:36px;background:#10202adb;font-size:13px}.level-dialog__button--supporter{width:100%;margin-top:12px;border-color:#ffcc667a;background:#24331e;color:#fff3bf}.level-dialog__button--supporter:hover,.level-dialog__button--supporter:focus-visible{border-color:#ffe28fc2;background:#304425}.level-dialog__button--supporter:disabled{border-color:#ffcc6638;background:#24331e94;color:#fff3bf9e;cursor:progress}.level-dialog__supporter{margin-top:12px;padding:9px 10px;border:1px solid rgba(255,204,102,.32);background:#24331e94;color:#fff3bf;font-size:13px;font-weight:800}.level-dialog__auth{margin-top:12px;padding:12px;border:1px solid rgba(124,212,236,.18);background:#0a141cad}.level-dialog__auth[hidden]{display:none}.level-dialog__auth-status{color:#dff8ffb8;font-size:13px;font-weight:700}.level-dialog__google-button{min-height:44px;display:flex;align-items:center}.level-dialog__auth-user{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px}.level-dialog__auth-avatar{width:38px;height:38px;border:1px solid rgba(124,212,236,.28);object-fit:cover}.level-dialog__auth-avatar--empty{display:block;background:linear-gradient(135deg,#62f4ff4d,#8fffe71a)}.level-dialog__auth-copy{min-width:0;display:grid;gap:3px}.level-dialog__auth-copy strong,.level-dialog__auth-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-dialog__auth-copy strong{color:#eafcff;font-size:14px;line-height:1.2}.level-dialog__auth-copy span{color:#dff8ff9e;font-size:12px;line-height:1.25}.level-dialog__import,.level-dialog__name{margin-top:14px}.level-dialog__multiplayer{display:grid;gap:10px;margin-top:14px}.level-dialog__multiplayer[hidden]{display:none}.level-dialog__status{min-height:38px;display:flex;align-items:center;padding:9px 10px;border:1px solid rgba(124,212,236,.18);background:#0a141cb8;color:#dff8ffc7;font-size:13px;font-weight:700}.level-dialog__status[hidden],.level-dialog__join[hidden]{display:none}.level-dialog__public-rooms{display:grid;gap:9px;min-width:0}.public-rooms__header{display:flex;align-items:center;justify-content:space-between;gap:10px}.public-rooms__title{margin:0;color:#dff8ffd1;font-size:13px;font-weight:800;line-height:1.2}.public-rooms__refresh{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(124,212,236,.24);background:#0a141cc7;color:#dff8ff;font:700 19px/1 system-ui,sans-serif;cursor:pointer}.public-rooms__list{max-height:230px;overflow-y:auto;display:grid;gap:8px;padding-right:4px}.public-rooms__empty,.public-room{border:1px solid rgba(124,212,236,.18);background:#0a141cb8}.public-rooms__empty{padding:14px;color:#dff8ffad;font-size:13px}.public-room{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px}.public-room--current{border-color:#8fffe76b;background:#0c2c2a9e}.public-room__info{min-width:0;display:grid;gap:4px}.public-room__info strong{overflow:hidden;color:#eafcff;font-size:15px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.public-room__meta{overflow:hidden;color:#dff8ff9e;font-size:12px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.public-room__join{min-width:74px;height:34px;border:1px solid rgba(124,212,236,.24);background:#0f3a3e;color:#dff8ff;font:700 13px/1 system-ui,sans-serif;cursor:pointer}.public-room__join:disabled{border-color:#8fffe73d;background:#8fffe71a;color:#dff8ff9e;cursor:default}.level-dialog__color-grid{display:flex;flex-wrap:wrap;gap:8px}.level-dialog__color{width:34px;height:34px;border:2px solid rgba(223,248,255,.2);cursor:pointer}.level-dialog__color--selected{border-color:#eafcff;box-shadow:0 0 0 2px #62f4ff33}.level-dialog__label{display:block;margin-bottom:8px;color:#dff8ffc7;font-size:13px;font-weight:700}.level-dialog__input{width:100%;height:42px;border:1px solid rgba(124,212,236,.24);background:#050a0f;color:#dff8ff;padding:0 10px;font:inherit}.level-dialog__textarea{width:100%;min-height:210px;resize:vertical;border:1px solid rgba(124,212,236,.24);background:#050a0f;color:#dff8ff;padding:10px;font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.level-dialog__error{min-height:20px;margin-top:8px;color:#ff6d86;font-size:13px}.level-dialog__error:empty{display:none}.level-dialog__error--success{color:#8fffe7}.level-dialog__list{display:grid;gap:12px;margin-top:14px}.level-dialog__section{display:grid;gap:10px;min-width:0}.level-dialog__section-title{margin:0;color:#dff8ffd1;font-size:14px;line-height:1.2}.level-dialog__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.level-dialog__empty{padding:18px;border:1px solid rgba(124,212,236,.18);background:#0a141cb8;color:#dff8ffb8}.level-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;align-items:stretch;padding:10px;border:1px solid rgba(124,212,236,.2);background:#0a141cb8}.level-card--compact{grid-template-columns:minmax(0,1fr)}.level-card__preview{width:180px;height:128px;border:1px solid rgba(124,212,236,.16);background:#0b1122}.level-card__info{min-width:0;display:flex;flex-direction:column;gap:8px}.level-card__info strong{color:#eafcff;font-size:17px;line-height:1.2}.level-card__meta{color:#dff8ffad;font-size:13px}.level-card__buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.level-card__buttons .level-dialog__button{min-height:34px;padding:0 10px;font-size:13px}@media(max-width:560px){.level-dialog__actions{grid-template-columns:1fr}.level-dialog__auth-user{grid-template-columns:38px minmax(0,1fr)}.level-dialog__auth-user .level-dialog__button{grid-column:1 / -1}.level-card{grid-template-columns:1fr}.level-card__preview{width:100%}}
