:root{--cyan: #00ffff;--cyan-dim: #00b8b8;--cyan-deep: #006e7a;--white: #eafcff;--red: #ff3860;--green: #5cffb0;--amber: #ffcb57;--bg: #000308;--font-mono: "Share Tech Mono", "IBM Plex Mono", "Menlo", "Consolas", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;background:var(--bg);color:var(--cyan);font-family:var(--font-mono);overflow:hidden;user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0;overflow:hidden}#globe-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#ui-root{position:absolute;inset:0;pointer-events:none}#ui-root>*{pointer-events:auto}.scanlines{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,#0000 0 2px,#0000002e 3px 3px);mix-blend-mode:multiply;z-index:100}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,#0000 50%,#000000d9);z-index:99}.title{font-size:2.5rem;letter-spacing:.4em;color:var(--cyan);text-shadow:0 0 8px var(--cyan),0 0 20px var(--cyan-dim)}.subtitle{font-size:.9rem;letter-spacing:.3em;color:var(--cyan-dim)}.panel{background:#000a12b8;border:1px solid var(--cyan);box-shadow:0 0 0 1px #00ffff26,0 0 24px #00ffff40 inset,0 0 40px #0ff3;backdrop-filter:blur(2px)}.panel__header{padding:.6rem 1rem;border-bottom:1px solid var(--cyan-deep);letter-spacing:.2em;font-size:.8rem;color:var(--cyan);display:flex;justify-content:space-between;align-items:center}.panel__body{padding:1rem 1.2rem}.category-picker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,90vw);transition:transform .7s cubic-bezier(.7,0,.3,1),opacity .5s}.category-picker.--sliding-out{transform:translate(-150%,-50%);opacity:0}.category-picker .title{text-align:center;margin:0 0 .4rem}.category-picker .subtitle{text-align:center;margin:0 0 1.2rem}.category-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.category-item{display:flex;align-items:center;gap:.8rem;padding:.7rem 1rem;border:1px solid var(--cyan-deep);color:var(--cyan);cursor:pointer;letter-spacing:.15em;font-size:1rem;background:transparent;font-family:inherit;text-align:left;transition:all .12s}.category-item:hover:not(:disabled){border-color:var(--cyan);box-shadow:0 0 16px #00ffff73 inset;color:var(--white)}.category-item:disabled{color:var(--cyan-deep);cursor:not-allowed;opacity:.6}.category-item__bullet{color:var(--cyan-dim)}.category-item__tag{margin-left:auto;font-size:.7rem;letter-spacing:.2em;color:var(--cyan-dim)}.answer-pane{position:absolute;top:50%;right:3vw;transform:translate(120%,-50%);width:min(420px,40vw);transition:transform .7s cubic-bezier(.7,0,.3,1)}.answer-pane.--visible{transform:translateY(-50%)}.answer-pane__question{font-size:.85rem;letter-spacing:.18em;color:var(--cyan-dim);margin-bottom:.35rem}.answer-pane__prompt{font-size:1.2rem;color:var(--white);letter-spacing:.08em;margin-bottom:1rem;text-shadow:0 0 6px var(--cyan)}.choice-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem}.choice{display:flex;align-items:center;gap:.9rem;padding:.65rem .9rem;border:1px solid var(--cyan-deep);color:var(--cyan);cursor:pointer;letter-spacing:.12em;font-size:.95rem;background:transparent;font-family:inherit;text-align:left;transition:all .12s}.choice:hover:not(:disabled){border-color:var(--cyan);color:var(--white);box-shadow:0 0 14px #00ffff73 inset}.choice:disabled{cursor:default}.choice__letter{color:var(--cyan-dim);font-weight:700}.choice.--correct{border-color:var(--green);color:var(--green);box-shadow:0 0 14px #5cffb099 inset,0 0 20px #5cffb066;animation:pulseGreen .6s ease-out}.choice.--wrong{border-color:var(--red);color:var(--red);box-shadow:0 0 14px #ff386099 inset,0 0 20px #ff386066;animation:shake .4s}@keyframes pulseGreen{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.next-btn{margin-top:1rem;width:100%;padding:.7rem;background:transparent;border:1px solid var(--cyan);color:var(--cyan);letter-spacing:.3em;font-family:inherit;font-size:.9rem;cursor:pointer;text-transform:uppercase;transition:all .12s}.next-btn:hover{color:var(--white);background:#00ffff14;box-shadow:0 0 18px #00ffff80 inset}.flag-pane{position:absolute;top:50%;right:3vw;transform:translate(120%,-50%);width:min(440px,42vw);transition:transform .7s cubic-bezier(.7,0,.3,1)}.flag-pane.--visible{transform:translateY(-50%)}.flag-pane__flag{font-size:7rem;text-align:center;line-height:1.1;margin:.3rem auto .6rem;padding:.6rem 0;border:1px solid var(--cyan-deep);background:var(--flag-card-bg, rgba(0, 20, 28, .4));box-shadow:0 0 0 1px #00ffff1f,0 0 36px #00ffff26 inset;letter-spacing:0}.flag-pane__prompt{font-size:1rem;text-align:center;color:var(--white);letter-spacing:.14em;margin:.4rem 0 .8rem;text-shadow:0 0 6px var(--cyan)}.hint-btn{margin-top:.8rem;width:100%;padding:.55rem;background:transparent;border:1px dashed var(--cyan-dim);color:var(--cyan-dim);letter-spacing:.25em;font-family:inherit;font-size:.78rem;cursor:pointer;text-transform:uppercase;transition:all .12s}.hint-btn:hover:not(:disabled){color:var(--amber);border-color:var(--amber);box-shadow:0 0 14px #ffcb574d inset}.hint-btn.--used,.hint-btn:disabled{color:var(--cyan-deep);border-color:var(--cyan-deep);cursor:default}.scoreboard{position:absolute;top:2vh;left:50%;transform:translate(-50%);display:flex;gap:2rem;padding:.5rem 1.4rem;letter-spacing:.2em;font-size:.85rem;opacity:0;transition:opacity .4s}.scoreboard.--visible{opacity:1}.scoreboard__stat{display:flex;gap:.6rem;align-items:baseline}.scoreboard__label{color:var(--cyan-dim)}.scoreboard__value{color:var(--white);text-shadow:0 0 6px var(--cyan);min-width:2ch;text-align:right;font-variant-numeric:tabular-nums}.round-end{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.92);width:min(520px,90vw);opacity:0;transition:transform .5s cubic-bezier(.3,1.4,.5,1),opacity .4s;text-align:center}.round-end.--visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.round-end__score{font-size:3.5rem;color:var(--white);text-shadow:0 0 10px var(--cyan);margin:1rem 0;letter-spacing:.1em}.round-end__label{font-size:.9rem;letter-spacing:.3em;color:var(--cyan-dim)}.round-end__streak{display:flex;gap:.8rem;align-items:baseline;justify-content:center;margin:1rem 0 0;letter-spacing:.22em;font-size:.85rem}.round-end__streak-label{color:var(--cyan-dim)}.round-end__streak-value{color:var(--white);text-shadow:0 0 6px var(--cyan);font-variant-numeric:tabular-nums;font-size:1rem}.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);letter-spacing:.3em;color:var(--cyan);font-size:.9rem;animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.25}}.reticule{position:absolute;left:2vw;bottom:2.5vh;display:flex;align-items:center;gap:.7rem;padding:.55rem .9rem .55rem .6rem;background:#000a12b8;border:1px solid var(--cyan);color:var(--cyan);font-family:inherit;letter-spacing:.15em;cursor:pointer;transform:translate(-130%);opacity:0;transition:transform .5s cubic-bezier(.7,0,.3,1),opacity .4s,color .12s,box-shadow .12s;backdrop-filter:blur(2px);box-shadow:0 0 0 1px #00ffff26,0 0 20px #0ff3}.reticule.--visible{transform:translate(0);opacity:1}.reticule:hover{color:var(--white);box-shadow:0 0 0 1px #0ff6,0 0 32px #0ff6}.reticule__icon{color:var(--cyan);animation:reticulePulse 2.4s ease-in-out infinite}.reticule:hover .reticule__icon{color:var(--white)}@keyframes reticulePulse{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.reticule__stack{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem}.reticule__sub{font-size:.7rem;letter-spacing:.25em;color:var(--cyan-dim)}.reticule__label{font-size:.95rem;color:var(--cyan-dim);text-shadow:none;letter-spacing:.18em;transition:color .2s,text-shadow .2s,letter-spacing .2s}.reticule__label--revealed{color:var(--white);text-shadow:0 0 6px var(--cyan);letter-spacing:.12em}.settings{position:absolute;top:2vh;left:2vw;width:280px;max-height:min(88vh,720px);overflow:hidden;display:flex;flex-direction:column}.settings__toggle{display:flex;align-items:center;gap:.6rem;padding:.55rem .9rem;background:transparent;border:none;color:var(--cyan);font-family:inherit;letter-spacing:.22em;font-size:.78rem;cursor:pointer;border-bottom:1px solid var(--cyan-deep);transition:color .12s,background .12s}.settings__toggle:hover{color:var(--white);background:#00ffff0f}.settings__toggle-chev{transition:transform .24s;display:inline-block}.settings.--open .settings__toggle-chev{transform:rotate(-180deg)}.settings__preset{margin-left:auto;color:var(--cyan-dim);font-size:.7rem;letter-spacing:.18em}.settings__body{max-height:0;overflow:hidden;transition:max-height .36s cubic-bezier(.4,0,.2,1)}.settings.--open .settings__body{max-height:720px;overflow:auto}.settings__section{padding:.8rem .9rem;border-bottom:1px dashed var(--cyan-deep)}.settings__section:last-child{border-bottom:none}.settings__section-title{font-size:.7rem;letter-spacing:.3em;color:var(--cyan-dim);margin-bottom:.5rem}.preset-row{display:flex;flex-wrap:wrap;gap:.35rem}.preset-btn{flex:1 0 auto;min-width:58px;padding:.4rem .6rem;background:transparent;border:1px solid var(--cyan-deep);color:var(--cyan);letter-spacing:.2em;font-size:.75rem;font-family:inherit;cursor:pointer;transition:all .12s}.preset-btn:hover{border-color:var(--cyan);color:var(--white);box-shadow:0 0 14px #0ff6 inset}.preset-btn.--active{border-color:var(--cyan);color:var(--white);background:#00ffff1f;box-shadow:0 0 18px #00ffff8c inset,0 0 8px #00ffff59}.settings__grid{display:flex;flex-direction:column;gap:.45rem}.settings__row{display:grid;grid-template-columns:80px 28px 1fr 56px;align-items:center;gap:.45rem;color:var(--cyan);font-size:.78rem;letter-spacing:.16em}.settings__label{color:var(--cyan-dim)}input.swatch{appearance:none;-webkit-appearance:none;width:28px;height:18px;padding:0;border:1px solid var(--cyan-deep);background:transparent;cursor:pointer}input.swatch::-webkit-color-swatch-wrapper{padding:0}input.swatch::-webkit-color-swatch{border:none}input.swatch::-moz-color-swatch{border:none}input.swatch:hover{border-color:var(--cyan)}.swatch.swatch--placeholder{width:28px;height:18px;background:transparent;border:none;pointer-events:none}input.slider{appearance:none;-webkit-appearance:none;width:100%;height:4px;background:var(--cyan-deep);outline:none;cursor:pointer}input.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;background:var(--cyan);border:1px solid var(--cyan-glow, var(--cyan));box-shadow:0 0 8px var(--cyan);cursor:pointer}input.slider::-moz-range-thumb{width:12px;height:12px;background:var(--cyan);border:1px solid var(--cyan);box-shadow:0 0 8px var(--cyan);cursor:pointer}.slider.slider--placeholder{height:4px;background:transparent;pointer-events:none}input.settings__num{appearance:textfield;-moz-appearance:textfield;width:100%;padding:2px 4px;font:inherit;font-size:.72rem;letter-spacing:0;color:var(--cyan);background:#0028308c;border:1px solid var(--cyan-deep);border-radius:2px;text-align:right;outline:none}input.settings__num::-webkit-outer-spin-button,input.settings__num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input.settings__num:hover,input.settings__num:focus{border-color:var(--cyan);box-shadow:0 0 4px var(--cyan)}.settings__num--placeholder{background:transparent;pointer-events:none}.round-hud{position:absolute;top:2vh;right:2vw;display:flex;gap:.4rem;opacity:0;transform:translateY(-10px);transition:opacity .3s,transform .3s}.round-hud.--visible{opacity:1;transform:translateY(0)}.round-hud__btn{padding:.45rem .9rem;background:#000a12b8;border:1px solid var(--cyan-deep);color:var(--cyan);font-family:inherit;letter-spacing:.2em;font-size:.75rem;cursor:pointer;transition:all .12s;backdrop-filter:blur(2px)}.round-hud__btn:hover{border-color:var(--cyan);color:var(--white);box-shadow:0 0 14px #00ffff59 inset,0 0 20px #00ffff40}.submenu-actions{display:flex;gap:.5rem}.submenu-actions .next-btn{flex:1}.back-btn{padding:.7rem 1rem;background:transparent;border:1px solid var(--cyan-deep);color:var(--cyan-dim);letter-spacing:.3em;font-family:inherit;font-size:.9rem;cursor:pointer;text-transform:uppercase;transition:all .12s}.back-btn:hover{color:var(--white);border-color:var(--cyan);background:#00ffff0a;box-shadow:0 0 12px #00ffff4d inset}.browser-pane{position:absolute;top:50%;right:3vw;transform:translate(120%,-50%);width:min(440px,46vw);max-height:85vh;display:flex;flex-direction:column;transition:transform .7s cubic-bezier(.7,0,.3,1)}.browser-pane.--visible{transform:translateY(-50%)}.browser-pane__body{flex:1 1 auto;overflow-y:auto;padding:.8rem 1rem;scrollbar-width:thin;scrollbar-color:var(--cyan-deep) transparent}.browser-pane__body::-webkit-scrollbar{width:8px}.browser-pane__body::-webkit-scrollbar-thumb{background:var(--cyan-deep);border-radius:2px}.browser-pane__footer{padding:.6rem 1rem .8rem;border-top:1px solid var(--cyan-deep);display:flex;gap:.5rem}.browser-pane__footer .back-btn{flex:1 1 auto}.browser-pane__reset{color:var(--cyan-dim)}.browser-pane__reset:hover{color:var(--white)}.browser-section{margin-bottom:.9rem}.browser-section__title{color:var(--cyan-dim);font-size:.7rem;letter-spacing:.26em;padding:.35rem 0;border-bottom:1px solid var(--cyan-deep);margin-bottom:.35rem}.browser-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.15rem}.browser-row{display:flex;align-items:center;gap:.55rem;width:100%;padding:.32rem .5rem;background:transparent;border:1px solid transparent;color:var(--cyan);cursor:pointer;text-align:left;letter-spacing:.1em;font-family:inherit;font-size:.8rem;transition:all .12s}.browser-row:hover{border-color:var(--cyan-deep);color:var(--white);background:#00ffff0d}.browser-row.--active{border-color:var(--cyan);color:var(--white);background:#00ffff1f;box-shadow:0 0 10px #00ffff4d inset}.browser-row__bullet{color:var(--cyan-dim)}.browser-row__name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browser-row__stats{display:flex;gap:.4rem;flex:0 0 auto;font-size:.7rem;letter-spacing:.04em}.stat-chip{display:inline-grid;grid-template-columns:auto 1.6rem 2.3rem;align-items:baseline;gap:.2rem;color:var(--cyan)}.stat-chip--empty{color:var(--cyan-deep)}.stat-chip__label{color:var(--cyan-dim);font-size:.62rem}.stat-chip__asked,.stat-chip__pct{text-align:right;font-variant-numeric:tabular-nums}.feature-submenu{position:absolute;top:50%;right:50%;transform:translate(50%,-50%) translate(120%);opacity:0;width:min(520px,90vw);transition:transform .6s cubic-bezier(.7,0,.3,1),opacity .4s}.feature-submenu.--visible{transform:translate(50%,-50%) translate(0);opacity:1}.feature-submenu.--sliding-out{transform:translate(50%,-50%) translate(-140%);opacity:0}.subtype-list{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.45rem}.subtype{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:.8rem;padding:.6rem .9rem;border:1px solid var(--cyan-deep);color:var(--cyan);cursor:pointer;letter-spacing:.12em;font-size:.95rem;transition:all .15s;opacity:0;transform:translate(40px);animation:subtypeAppear .42s cubic-bezier(.3,.9,.5,1) forwards}@keyframes subtypeAppear{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.subtype:hover{border-color:var(--cyan);color:var(--white);box-shadow:0 0 14px #00ffff59 inset}.subtype__input{position:absolute;opacity:0;pointer-events:none}.subtype__check,.subtype__checked{font-family:var(--font-mono);color:var(--cyan-dim);width:22px}.subtype__checked{display:none;color:var(--cyan);text-shadow:0 0 6px var(--cyan)}.subtype__input:checked~.subtype__check{display:none}.subtype__input:checked~.subtype__checked{display:inline}.subtype__count{color:var(--cyan-dim);font-size:.75rem;letter-spacing:.2em}.transmission{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:.8rem 1.4rem;border:1px solid var(--cyan);background:#000a12d9;color:var(--white);letter-spacing:.22em;font-size:1.2rem;text-shadow:0 0 6px var(--cyan),0 0 16px var(--cyan-dim);box-shadow:0 0 40px #00ffff4d;opacity:0;transition:opacity .2s;pointer-events:none}.transmission.--visible{opacity:1;animation:transmissionFlicker .12s steps(2) 3}@keyframes transmissionFlicker{0%,to{opacity:1}50%{opacity:.3}}.transmission__prefix{color:var(--cyan-dim);margin-right:.4rem}.transmission__cursor{margin-left:.1rem;animation:blink .9s steps(2) infinite}#globe-canvas{cursor:grab}#globe-canvas:active{cursor:grabbing}
