.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--weight-medium);letter-spacing:var(--tracking-normal);border-radius:var(--radius-medium);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);border:1px solid #0000;line-height:1.2;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.btn--sm{height:2rem;padding-inline:var(--space-3);font-size:var(--text-body-sm);border-radius:var(--radius-small)}.btn--md{height:2.625rem;padding-inline:var(--space-5);font-size:var(--text-body);border-radius:var(--radius-medium)}.btn--lg{height:3rem;padding-inline:var(--space-6);font-size:var(--text-body);border-radius:var(--radius-medium)}.btn--block{width:100%}.btn--primary{color:var(--text-on-brand);background-color:var(--brand-fill);border-color:var(--brand-fill)}.btn--primary:hover{background-color:var(--brand-fill-hover);border-color:var(--brand-fill-hover);box-shadow:0 8px 32px -12px var(--brand-glow)}.btn--primary:active{background-color:var(--brand-fill-active);border-color:var(--brand-fill-active);box-shadow:none;transform:translateY(1px)}.btn--primary:disabled{background-color:var(--surface-3);border-color:var(--border-subtle);color:var(--text-muted);box-shadow:none;cursor:not-allowed;transform:none}.btn--secondary{color:var(--text-primary);background-color:var(--surface-2);border-color:var(--border-default)}.btn--secondary:hover{background-color:var(--surface-3);border-color:var(--border-hover)}.btn--secondary:active{background-color:var(--surface-2);transform:translateY(1px)}.btn--secondary:disabled{color:var(--text-muted);background-color:var(--surface-1);border-color:var(--border-subtle);cursor:not-allowed;transform:none}.btn--ghost{color:var(--text-primary);background-color:#0000;border-color:#0000}.btn--ghost:hover{color:var(--text-primary);background-color:var(--surface-2)}.btn--ghost:active{transform:translateY(1px)}.btn--ghost:disabled{color:var(--text-muted);cursor:not-allowed;background-color:#0000;transform:none}.btn--loading{cursor:progress}.btn__spinner{align-items:center;display:inline-flex}.btn__spinner span{border-radius:var(--radius-full);border:2px solid;border-top-color:#0000;width:.875rem;height:.875rem;animation:.7s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn,.btn *{transition:none}.btn__spinner span{animation-duration:1.4s}}.vz-on{opacity:1}@keyframes viz-gate-on{0%{opacity:var(--ph-dim,.12)}to{opacity:1}}@media (prefers-reduced-motion:no-preference){.viz.is-active .vz-on{animation:viz-gate-on var(--ph-dur,.9s) var(--ease-out) var(--ph-delay,0s) backwards}}.vz-pulse{opacity:1}@keyframes viz-pulse{0%,to{opacity:var(--pulse-lo,.4)}50%{opacity:var(--pulse-hi,1)}}@media (prefers-reduced-motion:no-preference){.viz.is-active .vz-pulse{animation:viz-pulse var(--ph-dur,4s) var(--ease-in-out) infinite}}.vz-line{stroke-dashoffset:0}@keyframes viz-draw{0%{stroke-dashoffset:var(--line-len,200)}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:no-preference){.viz.is-active .vz-line{stroke-dasharray:var(--line-len,200) var(--line-len,200);animation:viz-draw var(--ph-dur,1.2s) var(--ease-out) var(--ph-delay,0s) backwards}}.matrix-grid{grid-template-columns:repeat(var(--matrix-cols), 1fr);gap:clamp(6px,.8vw,12px);width:100%;max-width:56rem;display:grid}.matrix-grid__cell{aspect-ratio:1;background:color-mix(in srgb, var(--text-primary) 4%, transparent);border-radius:9999px}.matrix-grid__cell--lit{background:color-mix(in srgb, var(--text-primary) 22%, transparent)}.matrix-grid__cell--accent{background:var(--brand-primary);opacity:.7}@media (prefers-reduced-motion:no-preference){.viz.is-active .matrix-grid__cell--accent{animation:matrix-pulse 5s var(--ease-in-out) infinite}.viz.is-active .matrix-grid__cell--accent:nth-child(3n+1){animation-delay:1.6s}.viz.is-active .matrix-grid__cell--accent:nth-child(4n+2){animation-delay:3.1s}}@keyframes matrix-pulse{0%,to{opacity:.7}50%{opacity:.25}}.pixel-trophy{color:color-mix(in srgb, var(--text-primary) 55%, transparent)}.pixel-trophy__cell{fill:currentColor}.pixel-trophy__cell--accent{fill:var(--brand-primary)}.pixel-trophy--assemble .pixel-trophy__cell{opacity:1}@media (prefers-reduced-motion:no-preference){.viz.is-active .pixel-trophy--assemble .pixel-trophy__cell{animation:trophy-assemble var(--ph-dur,90ms) var(--ease-out) var(--ph-delay,0s) backwards}.viz.is-active .pixel-trophy__cell--accent{animation:trophy-shimmer 3.2s var(--ease-in-out) infinite}.viz.is-active .pixel-trophy__cell--accent:nth-of-type(3n){animation-delay:.8s}}@keyframes trophy-assemble{0%{opacity:.08}to{opacity:1}}@keyframes trophy-shimmer{0%,to{opacity:1}50%{opacity:.35}}.pixel-ornament{color:color-mix(in srgb, var(--text-primary) 55%, transparent)}.pixel-ornament__cell{fill:currentColor}.pixel-ornament__cell--accent{fill:var(--brand-primary)}.pixel-ornament--assemble .pixel-ornament__cell{opacity:1}@media (prefers-reduced-motion:no-preference){.viz.is-active .pixel-ornament--assemble .pixel-ornament__cell{animation:trophy-assemble var(--ph-dur,.11s) var(--ease-out) var(--ph-delay,0s) backwards}.viz.is-active .pixel-ornament__cell--accent{animation:trophy-shimmer 3.2s var(--ease-in-out) infinite}.viz.is-active .pixel-ornament__cell--accent:nth-of-type(3n){animation-delay:.8s}}.tbr{width:100%;height:auto;overflow:visible}.tbr__line{stroke:color-mix(in srgb, var(--text-primary) 18%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.tbr__node{fill:var(--c,color-mix(in srgb, var(--text-primary) 30%, transparent));stroke:none}.tbr__node--active{fill:var(--brand-primary)}.tbr__node--loser{fill:color-mix(in srgb, var(--text-primary) 34%, transparent);opacity:.28}.tbr__tag{font-family:var(--font-mono);letter-spacing:.1em;fill:color-mix(in srgb, var(--text-primary) 56%, transparent);font-size:8px}.tbr__tag--winner{fill:var(--brand-primary)}.tbr__tag--loser{fill:color-mix(in srgb, var(--text-primary) 24%, transparent);opacity:.28}@media (prefers-reduced-motion:no-preference){.viz.is-active .tbr__node--loser,.viz.is-active .tbr__tag--loser{animation:tbr-dim .7s var(--ease-out) var(--tbr-lose-delay,0s) backwards}}@keyframes tbr-dim{0%{opacity:1}to{opacity:.28}}.tbr__champion{fill:color-mix(in srgb, var(--brand-soft), transparent);stroke:var(--border-brand);stroke-width:1px;vector-effect:non-scaling-stroke}@media (max-width:700px){.tbr__r2,.tbr__r2x,.tbr__r3{display:none}}.gscene{width:100%;height:auto;overflow:visible}.gscene__grid-cell{fill:color-mix(in srgb, var(--text-primary) 6%, transparent)}.gscene__plat-cell{fill:color-mix(in srgb, var(--text-primary) 26%, transparent)}.gscene__plat-edge{fill:color-mix(in srgb, var(--brand-primary) 70%, transparent)}.gscene__token{fill:color-mix(in srgb, var(--text-primary) 30%, transparent)}.gscene__token--caught{fill:var(--success)}.gscene__player-cell{fill:var(--brand-primary)}.gscene__player-soft{fill:color-mix(in srgb, var(--brand-primary) 55%, transparent)}.gscene__player-nose{fill:var(--text-primary)}.gscene__player{opacity:1}@keyframes gscene-run{0%{opacity:0;transform:translate(16px)}3%{opacity:1;transform:translate(16px)}18%{transform:translate(84px,-7px)}34%{transform:translate(152px,-16px)}50%{transform:translate(220px,-8px)}66%{transform:translate(288px,-20px)}82%{transform:translate(356px,-26px)}90%{opacity:1;transform:translate(402px,-28px)}95%{opacity:0;transform:translate(402px,-28px)}to{opacity:0;transform:translate(16px)}}.gscene__token{opacity:1}@keyframes gscene-signal{0%,40%{opacity:var(--sig-dim,.16)}48%,to{opacity:1}}@keyframes gscene-score{0%,30%{opacity:var(--sc-dim,.14)}38%,to{opacity:1}}@keyframes gscene-portal{0%,38%{opacity:.15}46%,to{opacity:1}}@keyframes gscene-flag{0%,46%{opacity:0;transform:translateY(6px)}60%,to{opacity:1;transform:translateY(0)}}.gscene__event,.gscene__event-line,.gscene__reward{opacity:1}.gscene__event{font-family:var(--font-mono);letter-spacing:.18em;fill:color-mix(in srgb, var(--brand-primary) 75%, transparent);font-size:8px}.gscene__event-line{stroke:color-mix(in srgb, var(--brand-primary) 50%, transparent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.gscene__reward-cell{fill:var(--success)}.gscene__reward-cell--brand{fill:var(--brand-primary)}@keyframes gscene-event{0%,72%{opacity:.16}80%,to{opacity:1}}@keyframes gscene-reward{0%,84%{opacity:.12}92%,to{opacity:1}}@media (prefers-reduced-motion:no-preference){.viz.is-active .gscene__player{animation:12s linear infinite gscene-run}.viz.is-active .gscene__token{animation:12s linear infinite gscene-signal;animation-delay:var(--sig-delay,0s)}.viz.is-active .gscene__score{animation:12s linear infinite gscene-score;animation-delay:var(--score-delay,0s)}.viz.is-active .gscene__portal-core{animation:12s linear infinite gscene-portal}.viz.is-active .gscene__flag{animation:12s linear infinite gscene-flag}.viz.is-active .gscene__event,.viz.is-active .gscene__event-line{animation:12s linear infinite gscene-event}.viz.is-active .gscene__reward{animation:12s linear infinite gscene-reward}}@media (prefers-reduced-motion:reduce){.gscene__player{opacity:0}}.sqnet{width:100%;height:auto;overflow:visible}.sqnet__link{stroke:color-mix(in srgb, var(--text-primary) 14%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.sqnet__link--brand{stroke:color-mix(in srgb, var(--brand-primary) 55%, transparent)}.sqnet__mark{fill:color-mix(in srgb, var(--text-primary) 30%, transparent)}.sqnet__label{font-family:var(--font-mono);letter-spacing:.14em;fill:color-mix(in srgb, var(--text-primary) 50%, transparent);font-size:9px}.sqnet__label--brand{fill:var(--brand-primary)}.offlow{width:100%;height:auto;overflow:visible}.offlow__rail{stroke:color-mix(in srgb, var(--text-primary) 16%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.offlow__rail--brand{stroke:color-mix(in srgb, var(--brand-primary) 55%, transparent)}.offlow__cursor{font-family:var(--font-mono);letter-spacing:0;fill:var(--brand-primary);font-size:11px}.offlow__dot{fill:var(--brand-primary)}@keyframes oflow-run{0%{opacity:0;transform:translate(0)}4%{opacity:1}86%{opacity:1;transform:translate(420px)}94%,to{opacity:0;transform:translate(420px)}}@media (prefers-reduced-motion:no-preference){.viz.is-active .offlow__dot{animation:oflow-run 9s var(--ease-in-out) infinite}}.xrg{width:100%;height:auto;overflow:visible}.xrg__line{stroke:color-mix(in srgb, var(--text-primary) 20%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.xrg__glyph{color:color-mix(in srgb, var(--text-primary) 55%, transparent)}.xrg__glyph--xp{color:var(--accent-pink)}.xrg__cell{fill:currentColor}.xrg__cell--accent{fill:var(--brand-primary)}.xrg__cell--coin{fill:var(--warning)}@media (prefers-reduced-motion:no-preference){.viz.is-active .xrg__cell--accent,.viz.is-active .xrg__cell--coin{animation:trophy-shimmer 3.2s var(--ease-in-out) infinite}.viz.is-active .xrg__cell--coin:nth-of-type(4n+2){animation-delay:.9s}.viz.is-active .xrg__cell--coin:nth-of-type(4n+3){animation-delay:1.8s}}.sdk{aspect-ratio:16/10;background:0 0;border:0;width:100%;display:block}.plnet{width:100%;height:auto;overflow:visible}.plnet__link{stroke:color-mix(in srgb, var(--text-primary) 16%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.plnet__link--brand{stroke:color-mix(in srgb, var(--brand-primary) 55%, transparent)}.plnet__node{fill:color-mix(in srgb, var(--text-primary) 30%, transparent)}.plnet__node--in{fill:color-mix(in srgb, var(--brand-primary) 45%, transparent)}.plnet__cell{fill:color-mix(in srgb, var(--text-primary) 22%, transparent)}.plnet__cell--core{fill:var(--brand-primary)}.plnet__label{font-family:var(--font-mono);letter-spacing:.12em;fill:color-mix(in srgb, var(--text-primary) 52%, transparent);font-size:9px}.plnet__label--brand{fill:color-mix(in srgb, var(--brand-primary) 70%, transparent)}.plnet__signal{opacity:1;fill:var(--brand-primary)}.pfv{width:100%;height:auto;color:color-mix(in srgb, var(--text-primary) 55%, transparent);overflow:visible}.pfv__cell{fill:color-mix(in srgb, var(--text-primary) 22%, transparent)}.pfv__cell--core{fill:var(--brand-primary)}.pfv__glyph{fill:currentColor}.pfv__link{stroke:color-mix(in srgb, var(--brand-primary) 55%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.pfv__node{fill:var(--brand-primary)}.pfv__label{font-family:var(--font-mono);letter-spacing:.12em;fill:color-mix(in srgb, var(--text-primary) 52%, transparent);font-size:9px}.pfv__signal{opacity:1;fill:var(--brand-primary)}@keyframes pfv-travel{0%{opacity:0;transform:translate(0)}6%{opacity:1}88%,to{opacity:0;transform:translate(370px)}}@media (prefers-reduced-motion:no-preference){.viz.is-active .pfv__signal{animation:pfv-travel 7s var(--ease-in-out) infinite;animation-delay:var(--ph-delay,0s)}}@media (prefers-reduced-motion:reduce){.pfv__signal{display:none}}@keyframes plnet-travel{0%{opacity:0;transform:translate(-68px)}6%{opacity:1;transform:translate(-68px)}58%{opacity:1;transform:translate(0)}88%,to{opacity:0;transform:translate(0)}}@media (prefers-reduced-motion:no-preference){.viz.is-active .plnet__signal{animation:plnet-travel 9s var(--ease-in-out) infinite;animation-delay:var(--ph-delay,0s)}}@media (prefers-reduced-motion:reduce){.plnet__signal{display:none}}.empt{width:auto;height:100%;max-height:7.5rem;color:color-mix(in srgb, var(--text-primary) 26%, transparent);overflow:visible}.empt__soft{fill:color-mix(in srgb, var(--text-primary) 12%, transparent)}.empt__lit{fill:color-mix(in srgb, var(--text-primary) 34%, transparent)}.empt__brand{fill:color-mix(in srgb, var(--brand-primary) 45%, transparent)}.empt__line{stroke:color-mix(in srgb, var(--text-primary) 14%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.tetris{gap:var(--space-8);flex-wrap:wrap;justify-content:center;align-items:flex-start;display:flex}.tetris__wells{gap:var(--space-4);flex-wrap:wrap;justify-content:center;display:flex}.tetris__player{gap:var(--space-2);flex-direction:column;display:flex}.tetris__player-head{align-items:baseline;gap:var(--space-2);padding:0 2px;display:flex}.tetris__player-name{font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.tetris__player-name--ai{color:color-mix(in srgb, var(--brand-primary) 78%, var(--text-primary))}.tetris__player-tag{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);font-size:.68rem}.tetris__board{border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--text-primary) 5%, transparent);border-radius:6px;line-height:0;position:relative}.tetris__board:focus-visible{outline:2px solid var(--brand-primary);outline-offset:3px}.tetris__canvas{display:block}.tetris__hint{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);padding:0 2px;font-size:.62rem}.tetris__board-panel{gap:var(--space-3);border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--text-primary) 4%, transparent);min-width:15rem;max-width:21rem;padding:var(--space-5);border-radius:8px;flex-direction:column;display:flex}.tetris__board-title{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.tetris__eyebrow{font-family:var(--font-mono);font-size:.66rem;font-weight:var(--weight-semibold);letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary)}.tetris__vs{font-family:var(--font-display);font-size:.78rem;font-weight:var(--weight-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--brand-primary);white-space:nowrap}.tetris__row{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--text-primary) 3%, transparent);border-radius:6px;grid-template-columns:1.4rem 1fr auto;align-items:center;display:grid}.tetris__row--lead{border-color:color-mix(in srgb, var(--brand-primary) 55%, transparent)}.tetris__row--over{opacity:.55}.tetris__rank{font-family:var(--font-display);font-size:var(--text-body-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);text-align:center;grid-row:1/span 2}.tetris__row--lead .tetris__rank{color:var(--brand-primary)}.tetris__row-name{line-height:1.1;font-family:var(--font-display);font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--text-primary);flex-direction:column;display:flex}.tetris__row-name small{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin-top:2px;font-size:.62rem}.tetris__row-stat{flex-direction:column;align-items:flex-end;line-height:1.15;display:flex}.tetris__row-stat b{font-family:var(--font-display);font-size:var(--text-body-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.tetris__row-stat small{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-secondary);font-size:.6rem}.tetris__row-badge{font-family:var(--font-mono);font-size:.6rem;font-weight:var(--weight-semibold);letter-spacing:.16em;color:var(--brand-primary);text-transform:uppercase;grid-column:1/-1}.tetris__row--over .tetris__row-badge{color:var(--text-secondary)}.tetris__final{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary);text-align:center;padding:var(--space-2) 0 0;font-size:.66rem}.tetris__controls{gap:var(--space-2);border-top:1px solid var(--border-subtle);padding-top:var(--space-4);display:flex}.tetris__control{font-family:var(--font-mono);font-size:.64rem;font-weight:var(--weight-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--text-primary);background:color-mix(in srgb, var(--text-primary) 7%, transparent);border:1px solid var(--border-subtle);padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:6px;flex:1}.tetris__control:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.tetris__control:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.tetris__control--play{border-color:var(--brand-primary);color:var(--brand-primary);font-weight:700}.tetris__pad{gap:var(--space-2);justify-content:center;padding:0 2px;display:flex}.tetris__pad-btn{min-width:2.5rem;font-family:var(--font-mono);color:var(--text-primary);background:color-mix(in srgb, var(--text-primary) 7%, transparent);border:1px solid var(--border-subtle);padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:6px;font-size:1rem;line-height:1}.tetris__pad-btn:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.tetris__pad-btn:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.tetris__boardrow{align-items:stretch;gap:var(--space-3);display:flex}.tetris__queue{width:7.5rem;padding:var(--space-3);border:1px solid var(--border-subtle);background:color-mix(in srgb, var(--text-primary) 4%, transparent);border-radius:6px;flex-direction:column;justify-content:space-between;gap:6px;display:flex}.tetris__queue-eyebrow{font-family:var(--font-mono);font-size:.58rem;font-weight:var(--weight-semibold);letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);padding:0 2px}.tetris__queue-slot{background:color-mix(in srgb, var(--text-primary) 3%, transparent);border-radius:4px;justify-content:center;align-items:center;width:100%;min-height:2.6rem;display:flex}.tetris__queue-empty{font-family:var(--font-mono);color:color-mix(in srgb, var(--text-primary) 28%, transparent);font-size:.8rem}.tetris__minipiece{line-height:0;display:block;position:relative}.tetris__minipiece-cell{border-radius:2px;position:absolute;box-shadow:inset 0 0 0 1px #00000047,0 0 0 1px #0000002e}.tetris__queue-switch{width:100%;font-family:var(--font-mono);font-size:.6rem;font-weight:var(--weight-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--brand-primary);border:1px solid color-mix(in srgb, var(--brand-primary) 45%, transparent);background:color-mix(in srgb, var(--brand-primary) 8%, transparent);padding:var(--space-2) var(--space-3);cursor:pointer;border-radius:6px}.tetris__queue-switch:disabled{opacity:.4;cursor:default;color:var(--text-secondary);border-color:var(--border-subtle);background:0 0}.tetris__queue-switch:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}.tetris:focus-visible{outline:none}@media (max-width:900px){.tetris__board-panel{width:100%;max-width:none}}@media (max-width:480px){.tetris__queue{width:5.5rem;padding:var(--space-2)}.tetris__queue-slot{min-height:2.2rem}}
