:root{--qf-bg:#14121c;--qf-bg-2:#1d1a28;--qf-bg-3:#262236;--qf-panel:#211d2e;--qf-border:#3a3452;--qf-border-2:#4d4570;--qf-text:#ece8f6;--qf-text-dim:#a59fbd;--qf-accent:#f0c040;--qf-accent-2:#58c878;--qf-accent-3:#5890f0;--qf-danger:#e05050;--qf-focus:#f0c04088;--qf-radius:4px;--qf-font:"Segoe UI", system-ui, -apple-system, sans-serif;--qf-mono:ui-monospace, "Cascadia Mono", Consolas, monospace;--qf-pixel:"Press Start 2P", var(--qf-mono);--qf-gap:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{background:var(--qf-bg);height:100%;color:var(--qf-text);font:13px/1.4 var(--qf-font);margin:0}*{box-sizing:border-box}#app{height:100%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--qf-border-2);border-radius:5px}::-webkit-scrollbar-track{background:var(--qf-bg-2)}.qf-btn{background:var(--qf-bg-3);min-height:28px;color:var(--qf-text);border:1px solid var(--qf-border-2);border-radius:var(--qf-radius);font:inherit;cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:5px 12px;display:inline-flex}.qf-btn:hover:not(:disabled){border-color:var(--qf-accent);background:#302a44}.qf-btn:focus-visible{outline:2px solid var(--qf-focus);outline-offset:1px}.qf-btn:disabled{opacity:.45;cursor:default}.qf-btn--primary{border-color:var(--qf-accent);color:#fff6d8;background:#6b5214}.qf-btn--primary:hover:not(:disabled){background:#85661a}.qf-btn--danger{border-color:var(--qf-danger);background:#5a1d24}.qf-btn--danger:hover:not(:disabled){background:#74252e;border-color:#ff7070}.qf-btn--ghost{background:0 0;border-color:#0000}.qf-btn--ghost:hover:not(:disabled){background:var(--qf-bg-3);border-color:var(--qf-border)}.qf-btn--small{min-height:22px;padding:2px 8px;font-size:12px}.qf-btn--active{border-color:var(--qf-accent);box-shadow:inset 0 0 0 1px var(--qf-accent);color:var(--qf-accent)}.qf-input,.qf-select,.qf-textarea{background:var(--qf-bg);color:var(--qf-text);border:1px solid var(--qf-border-2);border-radius:var(--qf-radius);font:inherit;width:100%;min-height:28px;padding:4px 8px}.qf-input:focus,.qf-select:focus,.qf-textarea:focus{border-color:var(--qf-accent);box-shadow:0 0 0 2px var(--qf-focus);outline:none}.qf-input--num{width:90px}.qf-textarea{resize:vertical;min-height:60px;font-family:var(--qf-font)}.qf-color{border:1px solid var(--qf-border-2);border-radius:var(--qf-radius);cursor:pointer;background:0 0;width:36px;height:28px;padding:0}.qf-check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.qf-field{grid-template-columns:110px 1fr;align-items:center;gap:4px 8px;margin-bottom:6px;display:grid}.qf-field__label{color:var(--qf-text-dim);font-size:12px}.qf-field__help{color:var(--qf-text-dim);grid-column:2;font-size:11px}.qf-panel{background:var(--qf-panel);border:1px solid var(--qf-border);border-radius:var(--qf-radius);flex-direction:column;min-height:0;display:flex}.qf-panel__title{letter-spacing:.04em;text-transform:uppercase;color:var(--qf-accent);border-bottom:1px solid var(--qf-border);align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:flex}.qf-panel__body{flex:1;min-height:0;padding:8px 10px;overflow:auto}.qf-tabs{border-bottom:1px solid var(--qf-border);background:var(--qf-bg-2);gap:2px;padding:0 6px;display:flex}.qf-tab{color:var(--qf-text-dim);cursor:pointer;font:inherit;background:0 0;border:none;border-bottom:2px solid #0000;padding:7px 12px}.qf-tab:hover{color:var(--qf-text)}.qf-tab--active{color:var(--qf-accent);border-bottom-color:var(--qf-accent)}.qf-list{margin:0;padding:0;list-style:none}.qf-list__item{border-radius:var(--qf-radius);cursor:pointer;align-items:center;gap:8px;padding:5px 8px;display:flex}.qf-list__item:hover{background:var(--qf-bg-3)}.qf-list__item--active{color:var(--qf-accent);background:#3a3014}.qf-row{gap:var(--qf-gap);flex-wrap:wrap;align-items:center;display:flex}.qf-col{gap:var(--qf-gap);flex-direction:column;min-height:0;display:flex}.qf-grow{flex:1;min-width:0;min-height:0}.qf-scroll{overflow:auto}.qf-muted{color:var(--qf-text-dim)}.qf-small{font-size:11px}.qf-kbd{font-family:var(--qf-mono);background:var(--qf-bg);border:1px solid var(--qf-border-2);border-bottom-width:2px;border-radius:3px;padding:0 4px;font-size:11px}.qf-toolbar{background:var(--qf-bg-2);border-bottom:1px solid var(--qf-border);flex-wrap:wrap;align-items:center;gap:4px;padding:4px 6px;display:flex}.qf-sep{background:var(--qf-border);align-self:stretch;width:1px;margin:0 4px}.qf-canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block}.qf-checker{background-color:#2a2638;background-image:linear-gradient(45deg,#332e45 25%,#0000 25% 75%,#332e45 75%),linear-gradient(45deg,#332e45 25%,#0000 25% 75%,#332e45 75%);background-position:0 0,8px 8px;background-size:16px 16px}.qf-empty{color:var(--qf-text-dim);text-align:center;padding:24px}.qf-badge{background:var(--qf-bg-3);border:1px solid var(--qf-border-2);border-radius:8px;padding:0 6px;font-size:11px;display:inline-block}.qf-modal-backdrop{z-index:1000;background:#07060bcc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.qf-modal{background:var(--qf-panel);border:1px solid var(--qf-border-2);border-radius:6px;flex-direction:column;min-width:340px;max-width:min(560px,94vw);max-height:90vh;display:flex;box-shadow:0 12px 40px #000a}.qf-modal--wide{width:960px;max-width:min(960px,96vw)}.qf-modal__title{border-bottom:1px solid var(--qf-border);color:var(--qf-accent);padding:10px 14px;font-weight:600}.qf-modal__body{padding:14px;overflow:auto}.qf-modal__footer{border-top:1px solid var(--qf-border);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.qf-toasts{z-index:1100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.qf-toast{background:var(--qf-bg-3);border:1px solid var(--qf-border-2);border-left:4px solid var(--qf-accent-3);border-radius:var(--qf-radius);max-width:360px;padding:8px 14px;transition:opacity .3s,transform .3s;box-shadow:0 4px 16px #0008}.qf-toast--success{border-left-color:var(--qf-accent-2)}.qf-toast--error{border-left-color:var(--qf-danger)}.qf-toast--out{opacity:0;transform:translateY(8px)}@media (max-width:640px){.qf-field{grid-template-columns:1fr}.qf-field__help{grid-column:1}}.qf-game-host{background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.qf-game-canvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;outline:none;display:block}.qf-app-error{background:var(--qf-panel,#211d2e);border:1px solid var(--qf-danger,#e05050);border-radius:6px;max-width:900px;margin:40px auto;padding:20px}.qf-app-error pre{white-space:pre-wrap;color:#ffb0b0;font-size:12px}.qf-app-message{text-align:center;background:var(--qf-panel);border:1px solid var(--qf-border-2);border-radius:10px;width:calc(100% - 32px);max-width:560px;margin:12vh auto 0;padding:28px 28px 24px;box-shadow:0 12px 40px #0008}.qf-app-message canvas{margin:0 auto 14px}.qf-app-message h1{margin:0 0 8px;font-size:20px}.qf-app-message p{color:var(--qf-text-dim);margin:0 0 18px;line-height:1.5}.qf-app-message__actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.qf-toast,.qf-modal__body{overflow-wrap:anywhere}.qf-sound-toggle{color:inherit;align-items:center;gap:6px;display:inline-flex}.qf-sound-toggle.is-muted{color:var(--qf-text-dim)}.qf-sound-toggle.is-muted .qf-icon{color:var(--qf-danger)}.qf-playtest__sound{flex:none}.qf-padbtn{min-width:20px;height:20px;color:var(--qf-text);border:1px solid var(--qf-border-2);font:700 11px/1 var(--qf-font);white-space:nowrap;vertical-align:middle;background:#0b0a12;border-bottom-width:2px;border-radius:10px;justify-content:center;align-items:center;padding:0 6px;display:inline-flex}.qf-padbtn--round{border-radius:50%;width:20px;padding:0}.qf-padbtn--square{font-size:17px}.qf-padbtn--triangle{font-size:12px}.qf-pad-focus{scroll-margin:28px;animation:.9s ease-in-out infinite alternate qf-pad-ring;outline:3px solid var(--qf-accent)!important;outline-offset:3px!important;box-shadow:0 0 0 7px #f0c04030,0 0 22px #f0c04050!important}@keyframes qf-pad-ring{to{outline-color:#fff4c4}}.qf-pad-pressed{filter:brightness(1.2);transform:translateY(1px)scale(.97)!important}.qf-menu-cta.qf-pad-focus{border-color:var(--qf-accent);transform:translateY(-2px)}.qf-menu-choice input.qf-pad-focus+.qf-menu-choice__box{outline:3px solid var(--qf-accent);outline-offset:3px;animation:.9s ease-in-out infinite alternate qf-pad-ring;box-shadow:0 0 0 7px #f0c04030,0 0 22px #f0c04050}@media (prefers-reduced-motion:reduce){.qf-pad-focus,.qf-menu-choice input.qf-pad-focus+.qf-menu-choice__box{animation:none}}.qf-sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.qf-menu{background:radial-gradient(1200px 500px at 50% -10%, #2a1c4a55, transparent 70%), linear-gradient(180deg, #120c22 0px, var(--qf-bg) 420px);height:100%;overflow:hidden auto}.qf-menu-hero{background:#140c2c;border-bottom:1px solid #0006;position:relative}.qf-menu-banner{background:#140c2c;justify-content:center;display:flex;overflow:hidden}.qf-menu-banner__canvas{flex:none}.qf-menu-ctas{grid-template-columns:1fr 1fr;gap:16px;max-width:880px;margin:-20px auto 0;padding:0 24px 26px;display:grid;position:relative}.qf-menu-hero:after{content:"";pointer-events:none;background:linear-gradient(#0000,#120c22);height:56px;position:absolute;bottom:0;left:0;right:0}.qf-menu-ctas{z-index:1}.qf-menu-cta{text-align:left;min-height:76px;color:var(--qf-text);border:2px solid var(--qf-border-2);cursor:pointer;font:inherit;background:linear-gradient(#2a2440,#1d1a2c);border-radius:10px;align-items:center;gap:14px;padding:14px 18px;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex;box-shadow:0 6px 18px #0009,inset 0 1px #ffffff14}.qf-menu-cta:hover{border-color:var(--qf-accent);transform:translateY(-2px);box-shadow:0 10px 24px #000a,inset 0 1px #ffffff1a}.qf-menu-cta:focus-visible{outline:3px solid var(--qf-focus);outline-offset:2px}.qf-menu-cta:active{transform:translateY(0)}.qf-menu-cta--primary{color:#fff6d8;background:linear-gradient(#8a6a1c,#5e4610);border-color:#f0c040}.qf-menu-cta--primary:hover{border-color:#ffe080}.qf-menu-cta__icon{width:44px;height:44px;color:var(--qf-accent);background:#0004;border:1px solid #ffffff1f;border-radius:8px;flex:none;place-items:center;display:grid}.qf-menu-cta--primary .qf-menu-cta__icon{color:#fff2c0;background:#0003}.qf-menu-cta__text{flex-direction:column;gap:3px;min-width:0;display:flex}.qf-menu-cta__title{letter-spacing:.01em;font-size:17px;font-weight:700}.qf-menu-cta__sub{color:var(--qf-text-dim);font-size:12px;line-height:1.35}.qf-menu-cta--primary .qf-menu-cta__sub{color:#f4e2b0}.qf-menu-main{max-width:1240px;margin:0 auto;padding:22px 24px 8px}.qf-menu-warning{color:#ffe2a0;background:#3a2c10;border:1px solid #6b5214;border-radius:6px;align-items:center;gap:10px;margin-bottom:18px;padding:10px 14px;display:flex}.qf-menu-warning[hidden]{display:none}.qf-menu-columns{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;display:grid}.qf-menu-projects{border-radius:10px;min-width:0;transition:box-shadow .15s}.qf-menu-projects--drop{box-shadow:0 0 0 2px var(--qf-accent), 0 0 0 8px #f0c04022}.qf-menu-projects__head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.qf-menu-projects__title{margin:0;font-size:18px;font-weight:700}.qf-menu-count{color:var(--qf-text-dim);font-size:12px}.qf-menu-grid{grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:16px;display:grid}.qf-menu-card{background:var(--qf-panel);border:1px solid var(--qf-border);border-radius:8px;flex-direction:column;min-width:0;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex;overflow:hidden;box-shadow:0 2px 8px #0005}.qf-menu-card:hover,.qf-menu-card:focus-within{border-color:var(--qf-border-2);transform:translateY(-2px);box-shadow:0 8px 20px #0008}.qf-menu-card--new{border-color:var(--qf-accent);animation:1.6s ease-out qf-menu-glow}@keyframes qf-menu-glow{0%{box-shadow:0 0 0 4px #f0c04088,0 8px 20px #0008}to{box-shadow:0 0 #f0c04000,0 2px 8px #0005}}.qf-menu-card__thumb{aspect-ratio:256/224;border-bottom:1px solid var(--qf-border);background:#0b0a10;position:relative}.qf-menu-card__canvas{width:100%!important;height:100%!important}.qf-menu-card__thumb--loading:after,.qf-menu-card__thumb--missing:after,.qf-menu-card__thumb--empty:after{content:"Loading…";color:var(--qf-text-dim);background:#0b0a10;place-items:center;font-size:12px;display:grid;position:absolute;inset:0}.qf-menu-card__thumb--missing:after{content:"No preview"}.qf-menu-card__thumb--empty:after{content:"No rooms yet"}.qf-menu-card__body{flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:10px 12px 8px;display:flex}.qf-menu-card__name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;margin:0;font-size:14px;font-weight:600;overflow:hidden}.qf-menu-card__badge{letter-spacing:.06em;text-transform:uppercase;color:#1a1204;background:var(--qf-accent);border-radius:9px;flex:none;padding:1px 7px;font-size:10px;font-weight:700}.qf-menu-card__meta{color:var(--qf-text-dim);text-overflow:ellipsis;white-space:nowrap;flex-basis:100%;font-size:12px;overflow:hidden}.qf-menu-card__actions{align-items:center;gap:4px;margin-top:auto;padding:8px 10px 10px;display:flex}.qf-menu-card__actions .qf-btn{min-height:30px}.qf-menu-card__icon{width:30px;color:var(--qf-text-dim);padding:0}.qf-menu-card__icon:hover:not(:disabled){color:var(--qf-text)}.qf-menu-card__delete:hover:not(:disabled){color:#ff9a9a;background:#2c1519;border-color:#7a2c34}.qf-menu-empty{text-align:center;border:2px dashed var(--qf-border-2);color:var(--qf-text-dim);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.qf-menu-empty__title{color:var(--qf-text);font-size:15px;font-weight:600}.qf-menu-empty p{margin:0 0 8px}.qf-menu-side{flex-direction:column;gap:16px;display:flex}.qf-menu-side__card{background:var(--qf-panel);border:1px solid var(--qf-border);border-radius:8px;padding:14px 16px}.qf-menu-side__title{letter-spacing:.1em;text-transform:uppercase;color:var(--qf-accent);margin:0 0 10px;font-size:11px;font-weight:700}.qf-menu-side__note{color:var(--qf-text-dim);margin:10px 0 0;font-size:12px;line-height:1.5}.qf-menu-side__note code{font-family:var(--qf-mono);color:var(--qf-text);font-size:11px}.qf-menu-keys-table{grid-template-columns:minmax(0,1fr) fit-content(92px) fit-content(92px);column-gap:10px;display:grid}.qf-menu-keys__head,.qf-menu-keys,.qf-menu-keys__row{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.qf-menu-keys__head{color:var(--qf-text-dim);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:700}.qf-menu-keys{row-gap:7px;margin:0}.qf-menu-keys__row{align-items:center}.qf-menu-keys__row>*{grid-row:1}.qf-menu-keys dd{grid-column:1;margin:0;line-height:1.35}.qf-menu-keys__kb{grid-column:2}.qf-menu-keys__pad{grid-column:3}.qf-menu-keys dt{color:var(--qf-text-dim);flex-wrap:wrap;align-items:center;gap:3px 4px;display:flex}.qf-menu-keys .qf-kbd{text-align:center;min-width:20px;color:var(--qf-text);padding:1px 5px;display:inline-block}.qf-menu-pad{background:linear-gradient(90deg,#1c2640,#1d1a2c);border:1px solid #34507e;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:18px;padding:10px 14px;display:flex}.qf-menu-pad[hidden]{display:none}.qf-menu-pad__icon{color:var(--qf-accent-3);flex:none;place-items:center;display:grid}.qf-menu-pad__msg{color:var(--qf-text-dim);flex-wrap:wrap;flex:260px;align-items:center;gap:5px;display:flex}.qf-menu-pad__name{color:var(--qf-text);overflow-wrap:anywhere}.qf-menu-pad__dot{opacity:.5;margin:0 4px}.qf-menu-pad__opts{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.qf-menu-pad__label{color:var(--qf-text-dim);font-size:12px}.qf-menu-pad__seg{display:inline-flex}.qf-menu-pad__seg .qf-btn:first-child{border-radius:4px 0 0 4px}.qf-menu-pad__seg .qf-btn:last-child{border-radius:0 4px 4px 0;margin-left:-1px}.qf-menu-pad__opt[aria-pressed=true]{border-color:var(--qf-accent);color:#fff6d8;z-index:1;background:#6b5214}.qf-menu-pad__vibration[aria-pressed=false]{color:var(--qf-text-dim)}.qf-menu-steps{flex-direction:column;gap:6px;margin:0;padding-left:20px;line-height:1.45;display:flex}.qf-menu-steps b{color:var(--qf-text)}.qf-menu-footer{color:var(--qf-text-dim);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:28px 16px 32px;font-size:12px;display:flex}.qf-menu-footer a{color:var(--qf-text-dim)}.qf-menu-footer a:hover{color:var(--qf-accent)}.qf-menu-footer__dot{opacity:.5}.qf-menu-tribute{text-align:center;flex-basis:100%;max-width:640px;margin:6px auto 0;line-height:1.5}.qf-menu-tribute b{color:var(--qf-text);font-weight:600}.qf-menu-new{flex-direction:column;gap:12px;min-width:min(460px,80vw);display:flex}.qf-menu-new__field{flex-direction:column;gap:4px;display:flex}.qf-menu-new__field>span{color:var(--qf-text-dim);font-size:12px}.qf-menu-new__choices{border:none;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 0;padding:0;display:grid}.qf-menu-new__choices legend{color:var(--qf-text-dim);margin-bottom:6px;padding:0;font-size:12px}.qf-menu-choice{cursor:pointer;display:block;position:relative}.qf-menu-choice input{opacity:0;pointer-events:none;position:absolute}.qf-menu-choice__box{background:var(--qf-bg-2);border:2px solid var(--qf-border);border-radius:6px;flex-direction:column;gap:4px;height:100%;padding:10px 12px;display:flex}.qf-menu-choice:hover .qf-menu-choice__box{border-color:var(--qf-border-2)}.qf-menu-choice input:checked+.qf-menu-choice__box{border-color:var(--qf-accent);background:#2a2414}.qf-menu-choice input:focus-visible+.qf-menu-choice__box{outline:2px solid var(--qf-focus);outline-offset:2px}.qf-menu-choice__title{align-items:center;gap:6px;font-weight:600;display:flex}.qf-menu-choice input:checked+.qf-menu-choice__box .qf-menu-choice__title{color:var(--qf-accent)}.qf-menu-choice__text{color:var(--qf-text-dim);font-size:12px;line-height:1.4}@media (max-width:900px){.qf-menu-columns{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.qf-menu-ctas{grid-template-columns:1fr;margin-top:-20px;padding:0 16px 20px}.qf-menu-main{padding:18px 16px 8px}.qf-menu-new__choices{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.qf-menu-cta,.qf-menu-card{transition:none}.qf-menu-cta:hover,.qf-menu-card:hover,.qf-menu-card:focus-within{transform:none}}
