:root{--layout-hud-divider-color:var(--t-border-subtle,rgba(255,255,255,0.14));--layout-hud-max-width:min(960px,calc(100% - 4rem));--tv-safe-top:env(safe-area-inset-top,0px);--tv-safe-right:env(safe-area-inset-right,0px);--tv-safe-bottom:env(safe-area-inset-bottom,0px);--tv-safe-left:env(safe-area-inset-left,0px)}[data-platform="xbox"],[data-platform="console"]{--tv-safe-top:max(env(safe-area-inset-top,0px),3vh);--tv-safe-right:max(env(safe-area-inset-right,0px),3vw);--tv-safe-bottom:max(env(safe-area-inset-bottom,0px),3vh);--tv-safe-left:max(env(safe-area-inset-left,0px),3vw);font-size:125%}[data-platform="xbox"] .quantris-overlay,[data-platform="console"] .quantris-overlay{padding:max(var(--s-12,3rem),var(--tv-safe-top)) max(var(--s-12,3rem),var(--tv-safe-right)) max(var(--s-12,3rem),var(--tv-safe-bottom)) max(var(--s-12,3rem),var(--tv-safe-left))}[data-input-context="gamepad"]{cursor:none}[data-input-context="gamepad"] *{cursor:none !important}.hidden{display:none !important}.show-desktop-block,.show-desktop-inline-flex{display:none !important}@media (min-width:768px){.show-desktop-block{display:block !important}.show-desktop-inline-flex{display:inline-flex !important}}body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding-top:var(--tv-safe-top);padding-right:var(--tv-safe-right);padding-bottom:var(--tv-safe-bottom);padding-left:var(--tv-safe-left)}#main-menu{position:relative;isolation:isolate;overflow-x:hidden;--main-menu-padding-inline:clamp(1.4rem,3.5vw,2.6rem);display:grid;grid-template-rows:1fr auto;align-content:stretch;justify-items:center;row-gap:var(--s-4);min-height:100vh;min-height:100dvh;width:100%;padding:0}.quantris-footer-accent{margin:0px}.quantris-footer-copy{margin:0px}#main-menu>*:not(.menu-account-button):not(.menu-help-button){position:relative;z-index:var(--z-raised)}#game-view{position:relative;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}#game-view>.game-hud,#game-view>.game-footer{flex:0 0 auto}#game-view>.gameplay-stage{flex:1 1 auto;min-height:0}.quantris-menu-card{width:min(720px,calc(100% - 2 * var(--main-menu-padding-inline)));margin:0 auto;align-self:center;display:flex;flex-direction:column;align-items:center;gap:var(--s-4);position:relative}.quantris-menu-header{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);text-align:center;position:relative;z-index:var(--z-raised);padding-top:var(--s-16)}.quantris-tagline{margin-top:0px;margin-bottom:var(--s-12)}.quantris-menu-hero{width:100%;display:flex;justify-content:center;margin-bottom:var(--s-6)}.q-button--hero{max-width:420px;width:100%;padding:var(--s-8) var(--s-12);font-size:var(--text-2xl);border-radius:var(--radius-xl)}.quantris-menu-actions{width:min(640px,100%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);position:relative;z-index:var(--z-raised)}@media (min-width:768px){.quantris-menu-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.quantris-menu-actions .q-button:last-child{grid-column:auto}}.quantris-menu-footer{width:100%;position:relative;align-self:stretch;box-sizing:border-box;padding:var(--s-4) var(--main-menu-padding-inline);text-align:center;margin-top:auto}.quantris-menu-footer__content{display:flex;flex-direction:column;align-items:center;gap:var(--s-2)}@keyframes menu-entrance{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}#main-menu .quantris-menu-header,#main-menu .quantris-tagline,#main-menu .quantris-menu-hero,#main-menu .quantris-menu-actions .q-button,#main-menu .quantris-menu-footer{opacity:0;animation:menu-entrance 0.5s var(--ease-out) forwards}#main-menu .quantris-menu-header{animation-delay:0ms}#main-menu .quantris-tagline{animation-delay:100ms}#main-menu .quantris-menu-hero{animation-delay:250ms}#main-menu .quantris-menu-actions .q-button:nth-child(1){animation-delay:400ms}#main-menu .quantris-menu-actions .q-button:nth-child(2){animation-delay:460ms}#main-menu .quantris-menu-actions .q-button:nth-child(3){animation-delay:520ms}#main-menu .quantris-menu-actions .q-button:nth-child(4){animation-delay:580ms}#main-menu .quantris-menu-actions .q-button:nth-child(5){animation-delay:640ms}#main-menu .quantris-menu-actions .q-button:nth-child(6){animation-delay:700ms}#main-menu .quantris-menu-actions .q-button:nth-child(7){animation-delay:760ms}#main-menu .quantris-menu-footer{animation-delay:850ms}@media (prefers-reduced-motion:reduce){#main-menu .quantris-menu-header,#main-menu .quantris-tagline,#main-menu .quantris-menu-hero,#main-menu .quantris-menu-actions .q-button,#main-menu .quantris-menu-footer{opacity:1;animation:none}}.q-button{display:flex;align-items:center;justify-content:center;gap:var(--s-4);padding:var(--s-5) var(--s-8);border-radius:var(--radius-lg);width:100%;position:relative;overflow:hidden;min-height:var(--min-tap-target)}.q-button span{position:relative;z-index:var(--z-raised);letter-spacing:inherit}#main-menu .quantris-menu-actions .q-button{justify-content:center;position:relative;text-align:center;padding-left:var(--s-16)}#main-menu .q-button--hero{justify-content:center;position:relative;text-align:center}#main-menu .quantris-menu-actions .q-button .fas,#main-menu .quantris-menu-actions .q-button .fab{position:absolute;left:clamp(1.35rem,2.2vw,1.85rem);top:50%;transform:translateY(-50%)}#main-menu .quantris-menu-actions .q-button span{flex:0 1 auto;text-align:center}.menu-help-button,.menu-account-button{position:absolute;right:clamp(0.75rem,2vw,1.35rem);width:clamp(2.4rem,5vw,2.8rem);height:clamp(2.4rem,5vw,2.8rem);border-radius:var(--radius-full);border:1px solid var(--t-btn-border,rgba(255,255,255,0.38));background:var(--t-btn-bg,rgba(16,20,36,0.9));color:var(--t-btn-text,#f2f6ff);display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,0.28),0 0 12px rgba(80,140,255,0.18);cursor:pointer;z-index:var(--z-elevated);transition:transform var(--duration-fast) var(--ease-default),box-shadow 0.18s var(--ease-default),border-color 0.18s var(--ease-default),background 0.18s var(--ease-default)}.menu-help-button:hover,.menu-help-button:focus-visible,.menu-account-button:hover,.menu-account-button:focus-visible{transform:translateY(-1px);border-color:var(--t-border-emphasis);box-shadow:0 6px 16px rgba(0,0,0,0.35),0 0 14px rgba(78,203,255,0.4);outline:none}.menu-help-button:active,.menu-account-button:active{transform:translateY(0);box-shadow:0 3px 12px rgba(0,0,0,0.26),0 0 10px rgba(78,203,255,0.25)}.menu-help-button{top:calc(clamp(0.75rem,2vw,1.35rem) + clamp(2.4rem,5vw,2.8rem) + var(--s-3));font-weight:800;font-size:var(--text-lg)}.menu-account-button{top:clamp(0.75rem,2vw,1.35rem);font-size:var(--text-md);overflow:hidden;padding:0}.menu-account-button[data-signed-in="true"]{border-color:rgba(74,222,128,0.6);box-shadow:0 4px 14px rgba(0,0,0,0.28),0 0 12px rgba(74,222,128,0.25)}.menu-account-button[data-signed-in="true"]:hover,.menu-account-button[data-signed-in="true"]:focus-visible{border-color:rgba(74,222,128,0.8);box-shadow:0 6px 16px rgba(0,0,0,0.35),0 0 16px rgba(74,222,128,0.45)}.menu-account-button .account-avatar{position:absolute;inset:0;width:100%;height:100%;border-radius:var(--radius-full);object-fit:cover}.menu-account-button i{line-height:1}.quantris-footer-links{display:flex;flex-direction:row;justify-content:center;gap:var(--s-10);flex-wrap:wrap}.quantris-footer-legal{display:flex;justify-content:center;align-items:center;gap:var(--s-3);margin-top:var(--s-3);font-size:var(--text-xs)}.quantris-footer-legal-link{color:var(--t-text-muted,rgba(196,214,255,0.5));text-decoration:none;transition:color var(--duration-normal) var(--ease-default)}.quantris-footer-legal-link:hover{color:var(--t-text-secondary,rgba(196,214,255,0.8));text-decoration:underline}.quantris-footer-legal-sep{color:var(--t-text-muted,rgba(196,214,255,0.3))}.quantris-version-watermark{position:fixed;top:var(--s-2,0.5rem);left:var(--s-3,0.75rem);margin:0;font-size:var(--text-2xs);color:var(--t-text-muted,rgba(196,214,255,0.2));letter-spacing:0.04em;user-select:none;pointer-events:none;z-index:var(--z-raised)}.quantris-footer-discord-link{display:inline-flex;align-items:center;margin-left:var(--s-2);color:var(--t-text-secondary,rgba(196,214,255,0.6));text-decoration:none;transition:color var(--duration-normal) var(--ease-default);font-size:1.1em;vertical-align:middle}.quantris-footer-discord-link:hover{color:var(--t-accent-primary,#7289da)}.quantris-footer-company-link{color:var(--t-text-accent,#4ecbff);text-decoration:none;transition:color var(--duration-normal) var(--ease-default)}.quantris-footer-company-link:hover{color:var(--t-text-accent,#7dd8ff);text-decoration:underline}.game-hud{position:relative;z-index:var(--z-raised);width:100%;margin:0;height:auto;min-height:0;padding:var(--s-3) var(--s-5);padding-top:calc(var(--s-3) + env(safe-area-inset-top,0px));box-sizing:border-box;border-radius:0;display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:var(--s-6);border-bottom:1px solid var(--layout-hud-divider-color)}.game-hud-stats{display:flex;align-items:stretch;gap:var(--s-4);min-width:0;flex:0 1 var(--layout-hud-max-width);width:min(100%,var(--layout-hud-max-width));max-width:var(--layout-hud-max-width);flex-wrap:nowrap;justify-content:center;margin:0 auto}.game-hud-stat{position:relative;padding:var(--s-3) var(--s-4);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--s-1);min-width:0;flex:0 1 clamp(130px,17vw,190px);width:clamp(130px,17vw,190px);min-height:0;min-width:clamp(100px,12vw,140px)}.game-hud-stat[data-stat="score"]{align-items:flex-start;text-align:left;flex:0 1 clamp(240px,31vw,360px);width:clamp(240px,31vw,360px);min-width:clamp(220px,26vw,320px)}.game-hud-stat[data-stat="lines"],.game-hud-stat[data-stat="level"],.game-hud-stat[data-stat="timer"]{flex:0 1 clamp(110px,14vw,160px);width:clamp(110px,14vw,160px);min-width:clamp(96px,12vw,140px)}.game-hud-button__logo{display:block;width:100%;height:100%;object-fit:contain;padding:var(--s-2);box-sizing:border-box;pointer-events:none}.game-hud-button{display:inline-flex;align-items:center;justify-content:center;align-self:center;width:clamp(3.25rem,5.4vw,4.1rem);height:clamp(3.25rem,5.4vw,4.1rem);min-width:clamp(3.25rem,5.4vw,4.1rem);border-radius:var(--radius-lg);padding:0;overflow:hidden;flex:0 0 auto;box-sizing:border-box}.game-hud-button--label{font-size:var(--text-md);font-weight:600;letter-spacing:0.04em;text-transform:uppercase}.replay-control-label{pointer-events:none;user-select:none}.game-hud-scrubber{display:none;align-items:center;gap:var(--s-4);min-width:0}.game-hud-scrubber.flex{display:flex}.game-hud-scrubber__input{-webkit-appearance:none;appearance:none;flex:1;min-width:0;height:clamp(1.5rem,3vw,2rem);background:transparent;cursor:pointer}.game-hud-scrubber__input:disabled{cursor:not-allowed;opacity:0.5}.game-hud-scrubber__label{font-size:var(--text-sm);color:var(--t-text-secondary,rgba(255,255,255,0.6));min-width:3rem;text-align:right;font-variant-numeric:tabular-nums;flex:0 0 auto;letter-spacing:0.04em}.replay-controls-region{width:100%;display:none;justify-content:center;margin-top:var(--s-4);margin-bottom:var(--s-6);padding-inline:var(--s-8);position:relative;z-index:var(--z-raised)}body.replay-playback-active .replay-controls-region{display:flex}.replay-controls{display:flex;align-items:center;gap:var(--s-5);flex-wrap:nowrap;width:min(100%,680px);padding:var(--s-3) var(--s-5);border-radius:var(--radius-xl);border:1px solid var(--t-border-default,rgba(255,255,255,0.1));background:var(--t-hud-bg,rgba(10,10,30,0.45));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.replay-controls__transport{display:flex;align-items:center;flex:0 0 auto}.replay-controls .game-hud-scrubber{flex:1 1 auto;min-width:0}.replay-controls__speed{display:flex;align-items:center;gap:var(--s-2);flex:0 0 auto}.replay-transport-btn{display:inline-flex;align-items:center;justify-content:center;width:clamp(2.25rem,3.6vw,2.75rem);height:clamp(2.25rem,3.6vw,2.75rem);border-radius:var(--radius-full);border:1px solid transparent;background:transparent;color:var(--t-text-secondary,rgba(255,255,255,0.6));font-size:var(--text-base);cursor:pointer;transition:color var(--duration-fast) var(--ease-default),background var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),transform var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent}.replay-transport-btn:hover,.replay-transport-btn:focus-visible{color:var(--t-text-primary,rgba(255,255,255,0.95));background:var(--t-btn-hover-bg,rgba(255,255,255,0.06));border-color:var(--t-border-default,rgba(255,255,255,0.1));outline:none}.replay-transport-btn:active{transform:scale(0.93)}.replay-transport-btn:disabled{opacity:0.35;cursor:not-allowed}.replay-transport-btn--pause{width:clamp(2.75rem,4.2vw,3.25rem);height:clamp(2.75rem,4.2vw,3.25rem);font-size:var(--text-lg);border-color:var(--t-border-default,rgba(255,255,255,0.12));background:var(--t-btn-bg,rgba(255,255,255,0.04))}.replay-transport-btn--pause:hover,.replay-transport-btn--pause:focus-visible{border-color:var(--t-border-emphasis,rgba(255,255,255,0.25))}.replay-speed-pill{display:inline-flex;align-items:center;justify-content:center;min-width:clamp(2.8rem,4.5vw,3.6rem);height:clamp(1.75rem,2.8vw,2.1rem);padding-inline:var(--s-3);border-radius:var(--radius-full);border:1px solid var(--t-border-default,rgba(255,255,255,0.12));background:var(--t-btn-bg,rgba(255,255,255,0.04));cursor:pointer;transition:background var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent}.replay-speed-pill:hover,.replay-speed-pill:focus-visible{background:var(--t-btn-hover-bg,rgba(255,255,255,0.08));border-color:var(--t-border-emphasis,rgba(255,255,255,0.25));outline:none}.replay-speed-pill__value{font-size:var(--text-sm);font-weight:600;letter-spacing:0.06em;color:var(--t-text-primary,rgba(255,255,255,0.9));font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;user-select:none}#quick-restart-btn{color:var(--t-text-primary,rgba(255,255,255,0.95))}#quick-restart-btn i{font-size:var(--text-2xl);pointer-events:none}.gameplay-stage{position:relative;z-index:calc(var(--z-raised) + 1);flex:1 1 auto;min-height:0;overflow:visible;width:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;--stage-padding-block:clamp(0.5rem,1.5vw,1.5rem);--stage-padding-top:clamp(2rem,4.5vh,3.5rem);--stage-padding-inline:clamp(0.5rem,1.5vw,1.5rem);--stage-gap:clamp(0.75rem,2vw,1.75rem);padding:var(--stage-padding-top) var(--stage-padding-inline) var(--stage-padding-block);gap:var(--stage-gap);box-sizing:border-box}.game-layout{--board-columns:10;--board-rows:20;--side-panel-width:clamp(140px,18vw,220px);--piece-panel-size:min(calc(var(--side-panel-width) * 0.72),160px);--piece-panel-size-secondary:min(calc(var(--side-panel-width) * 0.58),128px);--hold-panel-size:var(--piece-panel-size);--layout-gap:8px;display:flex;align-items:stretch;justify-content:center;gap:var(--layout-gap);width:100%;max-width:calc(var(--board-columns,10) * 56px + 2 * var(--side-panel-width) + 2 * var(--layout-gap));margin:0 auto;flex:1 1 auto;min-height:0}.game-layout__aside{flex:0 0 var(--side-panel-width);width:var(--side-panel-width);display:flex;flex-direction:column;gap:8px;align-items:stretch}.game-layout__hold{display:flex;flex-direction:column;gap:var(--s-3);min-width:clamp(90px,12vw,120px);flex:1 1 auto;min-height:0;padding:var(--s-3)}.game-layout__preview{display:flex;flex-direction:column;gap:var(--s-3);min-width:clamp(90px,12vw,120px);flex:1 1 0;min-height:0;padding:var(--s-3)}.game-layout__main{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px}.game-layout__board{container-type:size;position:relative;flex:1 1 0;min-height:0;display:flex;align-items:stretch;justify-content:center;width:100%;overflow:visible;--_flux-bar-inset:0px;--_frame-border-x:0px;--_frame-border-y:0px}@media (min-width:1024px){.game-layout__board .bug-report-game-button:not(.game-action-button){display:none}}.game-panel{position:relative;display:flex;flex-direction:column;gap:var(--s-2);width:100%;height:100%;align-items:stretch;box-sizing:border-box;padding:var(--s-4);border-radius:var(--radius-xl);text-align:center}.game-panel--compact{gap:var(--s-3)}.game-panel-header{position:relative;z-index:var(--z-raised);display:flex;flex-direction:column;gap:var(--s-1);align-items:center}.game-panel-body{position:relative;z-index:var(--z-raised);display:flex;flex-direction:column;gap:var(--s-3);flex:1 1 auto;width:100%;min-height:160px;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--s-5);border-radius:var(--radius-lg)}.game-panel[data-panel="queue"] .game-panel-body{min-height:220px}.game-panel-surface{width:100%;height:100%;display:flex;align-items:center;justify-content:center}#piece-preview{width:100%;flex:1 1 0;min-height:0}.game-layout__preview .panels{flex-direction:column;min-height:0}.game-layout__preview .panel{flex:0 1 auto;min-height:0}.game-layout__preview .preview-root{min-height:0}#piece-hold,#piece-preview{box-sizing:border-box;padding:var(--s-2) var(--s-2) var(--s-4);align-items:flex-start;justify-content:center}.rdm-wheel-card{margin:0;width:100%;flex:0 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;position:relative;overflow:hidden}.rdm-wheel-divider{width:100%;height:1px;background:linear-gradient( 90deg,var(--t-border-subtle),var(--t-border-default),var(--t-border-subtle) );margin:var(--s-2) 0;opacity:0.9;border-radius:var(--radius-full)}.game-layout__metrics{flex:0 0 auto;margin-top:0}.game-metrics-panel{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-2);width:100%;box-sizing:border-box}.game-metric{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--s-1) var(--s-2);border-radius:var(--radius-md);background:none;border:none;box-sizing:border-box}.game-metric-label{font-size:var(--text-xs);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;opacity:0.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.game-metric-value{font-family:var(--t-font-display,"Orbitron"),system-ui,sans-serif;font-size:var(--text-sm);font-weight:700;letter-spacing:0.02em;color:var(--t-accent-warm,rgba(255,227,188,0.95));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.rdm-wheel-card__image{display:block;width:auto;max-width:100%;max-height:100%;height:auto;object-fit:contain;filter:drop-shadow(0 4px 16px rgba(0,0,0,0.35))}.rdm-wheel-card__overlay{position:absolute;inset:0;pointer-events:none;display:block}.rdm-wheel-card__overlay--empty{display:none}.rdm-wheel-badge{position:absolute;width:clamp(18px,4vw,26px);height:clamp(18px,4vw,26px);border-radius:var(--radius-full);display:grid;place-items:center;font-family:var(--t-font-display,"Orbitron"),system-ui,sans-serif;font-weight:700;font-size:clamp(10px,2vw,14px);color:var(--t-text-primary,#f7f9ff);background:var(--t-bg-overlay,rgba(8,10,20,0.78));border:1px solid var(--badge-color,var(--t-accent-secondary,#6ef0ff));box-shadow:0 0 6px rgba(0,0,0,0.35),0 0 10px 2px var(--badge-color,var(--t-accent-secondary,#6ef0ff));transform:translate(-50%,-50%)}.game-layout #piece-hold{max-width:clamp(80px,66%,104px);margin-inline:auto}.game-layout #piece-preview{max-width:clamp(108px,86%,162px);margin:0}.game-board-frame{position:relative;border-radius:0;padding:0;display:block;width:100%;aspect-ratio:var(--board-columns,10) / var(--board-rows,20);box-sizing:border-box;overflow:visible;contain:layout style}.game-layout__board>*{--_cell:round(down,clamp(16px,min( calc((100cqi - var(--_flux-bar-inset,0px) - var(--_frame-border-x,0px)) / var(--board-columns,10)),calc((100cqb - var(--_frame-border-y,0px)) / var(--board-rows,20)) ),56px),1px)}.game-layout__board .game-board-frame{width:calc(var(--board-columns,10) * var(--_cell));height:calc(var(--board-rows,20) * var(--_cell));box-sizing:content-box;flex:0 0 auto;max-width:none;max-height:none;aspect-ratio:auto}.game-board-frame quantris-board{position:absolute;z-index:var(--z-raised);display:block;left:0;top:0;width:100%;height:100%;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none}.grid-board{display:block;width:100%;height:100%}.onscreen-controls{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:0;transition:opacity 300ms ease}body.show-onscreen-controls.gameplay-active .onscreen-controls{opacity:1}body:has(.quantris-overlay:not(.hidden)) .onscreen-controls{opacity:0 !important;pointer-events:none !important}.ctrl-pad{position:fixed;bottom:clamp(16px,4vh,36px);pointer-events:auto}.ctrl-pad--dpad{left:clamp(8px,2.5vw,20px)}.ctrl-pad--actions{right:clamp(8px,2.5vw,20px)}.onscreen-controls--swapped .ctrl-pad--dpad{left:auto;right:clamp(8px,2.5vw,20px)}.onscreen-controls--swapped .ctrl-pad--actions{right:auto;left:clamp(8px,2.5vw,20px)}.dpad{--ctrl-btn-size:clamp(48px,13vw,60px);--ctrl-gap:clamp(3px,1vw,6px);display:grid;grid-template-areas:". up ." "left . right" ". down .";grid-template-columns:repeat(3,var(--ctrl-btn-size));grid-template-rows:repeat(3,var(--ctrl-btn-size));gap:var(--ctrl-gap);position:relative}.dpad-btn{display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;touch-action:manipulation;font-size:clamp(14px,3.5vw,18px);-webkit-tap-highlight-color:transparent;position:relative;background:transparent;color:inherit;padding:0}.dpad-btn--up{grid-area:up}.dpad-btn--down{grid-area:down}.dpad-btn--left{grid-area:left}.dpad-btn--right{grid-area:right}.action-pad{--ctrl-btn-size:clamp(48px,13vw,60px);--ctrl-gap:clamp(3px,1vw,6px);display:grid;grid-template-areas:". top ." "left . right" ". bottom .";grid-template-columns:repeat(3,var(--ctrl-btn-size));grid-template-rows:repeat(3,var(--ctrl-btn-size));gap:var(--ctrl-gap);position:relative}.action-btn{display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;touch-action:manipulation;border-radius:50%;font-size:clamp(13px,3.2vw,17px);-webkit-tap-highlight-color:transparent;position:relative;width:calc(var(--ctrl-btn-size) - 2px);height:calc(var(--ctrl-btn-size) - 2px);margin:auto;background:transparent;color:inherit;padding:0}.action-btn--top{grid-area:top}.action-btn--bottom{grid-area:bottom}.action-btn--left{grid-area:left}.action-btn--right{grid-area:right}body.show-onscreen-controls .game-footer__copy{display:none}body.show-onscreen-controls .game-footer{padding:0;border-top:none;min-height:0}@media (max-height:700px){.dpad,.action-pad{--ctrl-btn-size:clamp(40px,10vw,48px)}}@media (max-height:600px){.dpad,.action-pad{--ctrl-btn-size:40px}}.mobile-replay-controls{display:none;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-6);padding-bottom:calc(var(--s-3) + env(safe-area-inset-bottom,0px));box-sizing:border-box}body.show-onscreen-controls.replay-playback-active .mobile-replay-controls{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-elevated)}.mobile-replay-transport{display:flex;align-items:center;justify-content:center;gap:clamp(var(--s-6),6vw,var(--s-10))}.mobile-replay-scrubber{display:flex;align-items:center;width:100%;max-width:420px}.mobile-replay-scrubber__input{flex:1;height:clamp(2rem,6vw,2.5rem);-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer}.mobile-replay-scrubber__input::-webkit-slider-runnable-track{height:clamp(4px,1.2vw,6px);background:var(--t-btn-active-bg);border-radius:var(--radius-full)}.mobile-replay-scrubber__input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:clamp(20px,5vw,24px);height:clamp(20px,5vw,24px);background:var(--t-accent-primary);border-radius:var(--radius-full);margin-top:calc((clamp(4px,1.2vw,6px) - clamp(20px,5vw,24px)) / 2);border:2px solid var(--t-border-default)}.mobile-replay-scrubber__input::-moz-range-track{height:clamp(4px,1.2vw,6px);background:var(--t-btn-active-bg);border-radius:var(--radius-full)}.mobile-replay-scrubber__input::-moz-range-thumb{width:clamp(20px,5vw,24px);height:clamp(20px,5vw,24px);background:var(--t-accent-primary);border-radius:var(--radius-full);border:2px solid var(--t-border-default)}.mobile-replay-scrubber__input:disabled{opacity:0.4;cursor:not-allowed}.mobile-replay-meta{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:420px;padding-inline:var(--s-1)}.mobile-replay-scrubber__label{font-size:var(--text-sm);color:var(--t-text-secondary);font-variant-numeric:tabular-nums;letter-spacing:0.04em}body.show-onscreen-controls.replay-playback-active .onscreen-controls{display:none !important}body.show-onscreen-controls.replay-playback-active .replay-controls-region{display:none !important}body.show-onscreen-controls.replay-playback-active .mobile-replay-controls{display:flex}.mobile-replay-btn{display:inline-flex;align-items:center;justify-content:center;width:clamp(2.75rem,11vw,3.5rem);height:clamp(2.75rem,11vw,3.5rem);border-radius:var(--radius-full);border:1px solid var(--t-border-default);background:var(--t-btn-bg);color:var(--t-text-secondary);font-size:var(--text-lg);cursor:pointer;transition:background var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default),transform var(--duration-fast) var(--ease-default);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-replay-btn:active{transform:scale(0.92);background:var(--t-btn-active-bg);color:var(--t-text-primary)}.mobile-replay-btn--pause{width:clamp(3.5rem,14vw,4.25rem);height:clamp(3.5rem,14vw,4.25rem);font-size:var(--text-2xl);background:var(--t-btn-cta-bg);border-color:var(--t-btn-cta-border);color:var(--t-text-primary)}.mobile-replay-btn--pause:active{background:var(--t-btn-cta-hover-bg)}.mobile-replay-speed{font-size:var(--text-sm);font-weight:600;color:var(--t-text-secondary);font-variant-numeric:tabular-nums;letter-spacing:0.06em}.game-footer{position:relative;flex:0 0 auto;flex-shrink:0;--footer-pad-block:clamp(0.55rem,1.6vw,0.9rem);margin:0;padding:var(--footer-pad-block) var(--s-10);padding-bottom:max(1rem,calc(var(--footer-pad-block) + env(safe-area-inset-bottom,0px)));border-radius:0;border-top:1px solid var(--t-border-subtle);display:flex;align-items:center;justify-content:center;gap:var(--s-4);text-align:center;font-size:var(--text-xs)}.game-footer__copy{font-size:var(--text-xs);letter-spacing:0.2em;text-transform:uppercase;color:var(--t-text-secondary)}#coop-game-view{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100%;overflow:hidden;background:var(--t-bg-app,#0a0a1a)}.coop-hud{display:flex;justify-content:center;align-items:center;padding:var(--s-2) var(--s-4);padding-top:calc(var(--s-2) + env(safe-area-inset-top,0px));gap:var(--s-6);flex-shrink:0;border-bottom:1px solid var(--layout-hud-divider-color)}#coop-swap-sides i{font-size:var(--text-lg);color:var(--t-text-secondary,#8899bb)}#coop-swap-sides:hover i,#coop-swap-sides:focus-visible i{color:var(--t-text-primary,#e8f0ff)}.coop-stage{position:relative;z-index:calc(var(--z-raised) + 1);display:flex;justify-content:center;align-items:stretch;gap:var(--s-8);flex:1;min-height:0;padding:clamp(2rem,4.5vh,3.5rem) var(--s-4) clamp(0.5rem,1.5vw,1.5rem);overflow:visible}.coop-player{display:flex;flex-direction:column;align-items:stretch;gap:var(--s-1);flex:1;min-height:0;min-width:0}.coop-player__keys{font-size:var(--text-2xs);opacity:0.6;font-weight:400}.coop-player .game-layout{--side-panel-width:clamp(80px,9vw,140px)}.coop-controls{display:flex;flex-direction:column;gap:2px;margin:0;padding:var(--s-2) 0 0}.coop-controls__row{display:flex;justify-content:space-between;gap:var(--s-2)}.coop-controls dt{font-size:var(--text-xs);color:var(--t-text-secondary,#8899bb);white-space:nowrap}.coop-controls dd{margin:0;font-size:var(--text-xs);color:var(--t-text-primary,#e8f0ff);font-family:var(--t-font-display,"Orbitron"),monospace;white-space:nowrap}.coop-player__stats{display:none}.h2h-tower-stats{display:flex;align-items:baseline;justify-content:center;gap:var(--s-4);padding:var(--s-1) var(--s-2);flex-shrink:0}.h2h-tower-stats.hidden{display:none}.h2h-tower-stat{display:flex;align-items:baseline;gap:var(--s-1);min-width:0}.h2h-tower-stat__label{font-family:var(--t-font-display);font-size:var(--text-2xs);letter-spacing:0.15em;text-transform:uppercase;color:var(--t-hud-label,var(--t-text-secondary,#8899bb));white-space:nowrap}.h2h-tower-stat__value{font-family:var(--t-font-display);font-size:var(--text-base);letter-spacing:0.06em;color:var(--t-hud-value,var(--t-text-primary,#e8f0ff));white-space:nowrap}.h2h-tower-stat[data-stat="score"] .h2h-tower-stat__value{font-size:var(--text-lg)}.mode-select-section-heading{width:100%;margin:var(--s-4) 0 var(--s-2);padding:0 var(--s-2);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:var(--t-text-secondary,#8899bb);border-top:1px solid var(--layout-hud-divider-color,rgba(255,255,255,0.1));padding-top:var(--s-4)}.h2h-winner-overlay{position:absolute;inset:0;z-index:600;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.75);pointer-events:auto}.h2h-winner-overlay__content{text-align:center;color:var(--t-text-primary,#e8f0ff)}.h2h-winner-overlay__title{font-size:2.5rem;font-weight:700;letter-spacing:0.05em;margin-bottom:var(--s-2)}.h2h-winner-overlay__scores{font-size:1.5rem;font-weight:500;color:var(--t-text-secondary,#8899bb)}.lockstep-buffering{position:absolute;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.55);color:var(--t-text-primary,#e8f0ff);font-size:1.25rem;font-weight:600;letter-spacing:0.05em;pointer-events:none}@media (max-width:767px){#game-view{height:100svh;height:100dvh}.game-hud{margin:0;padding:calc(var(--s-2) + env(safe-area-inset-top,0px)) var(--s-3) var(--s-2);border-radius:0;gap:var(--s-2)}.game-hud-button{border-radius:var(--radius-sm);width:clamp(2.25rem,9vw,2.75rem);height:clamp(2.25rem,9vw,2.75rem);min-width:clamp(2.25rem,9vw,2.75rem)}.game-hud-stats{gap:var(--s-2);flex:1 1 auto;max-width:none;justify-content:center}.game-hud-stat{flex:1 1 0;min-width:0;width:auto;padding:var(--s-1) var(--s-2);border-radius:var(--radius-sm);gap:2px}.game-hud-stat[data-stat="score"]{min-width:0;flex:3 1 0;align-items:center;text-align:center}.game-hud-stat[data-stat="lines"],.game-hud-stat[data-stat="level"]{min-width:0;flex:1 1 0;overflow:hidden}.game-hud-stat[data-stat="timer"]{min-width:0}body.timed-mode-active .game-hud-stat[data-stat="lines"]{display:none}.gameplay-stage{--stage-padding-block:var(--s-1);--stage-padding-inline:var(--s-2);--stage-gap:var(--s-2);padding:var(--stage-padding-block) var(--stage-padding-inline);gap:var(--stage-gap);overflow-x:clip;overflow-y:visible}.game-layout{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"hold . preview" "board board board";gap:0;width:100%;max-width:none;height:100%;--side-panel-width:0px}.game-layout__aside{z-index:2;width:auto;align-self:center;padding:6px 12px;display:flex;flex-direction:row;align-items:center;gap:0;margin-top:0}.game-layout__aside--left{grid-area:hold}.game-layout__aside--right{grid-area:preview;justify-self:end;width:fit-content}.game-layout__aside--flux{display:none !important}.game-layout__hold,.game-layout__preview{width:auto;flex:0 1 auto;min-width:0;padding:0;gap:0}.rdm-wheel-card,.rdm-wheel-divider{display:none !important}#piece-hold,#piece-preview{padding:0;width:auto;min-width:0;justify-content:center;flex:0 0 auto}#piece-hold{--hold-panel-size:clamp(52px,14vw,68px);--hold-slot-bg:rgba(10,10,30,0.7);--hold-slot-outline:1px solid rgba(78,203,255,0.15);--hold-slot-outline-offset:0px;--hold-slot-shadow:none;--hold-slot-hover-shadow:none;width:clamp(52px,14vw,68px);aspect-ratio:1}#piece-preview{--piece-panel-size:clamp(44px,12vw,56px);--piece-panel-size-secondary:clamp(36px,10vw,48px);--preview-panel-bg:rgba(14,17,35,0.7);--preview-panel-border:1px solid rgba(78,203,255,0.12);--preview-panel-shadow:none;--preview-highlight-border:rgba(255,66,164,0.35);--preview-highlight-shadow:none;--preview-hero-gap:0px}.game-layout #piece-preview{max-width:none;width:auto}#piece-preview .preview-root,#piece-preview .panels{width:auto}#piece-preview .panels{flex-direction:row;gap:6px}.game-layout__main{grid-area:board;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:0;overflow:visible;gap:0;padding:calc(100vw / var(--board-columns,10) / 2) 0 calc(100vw / var(--board-columns,10) / 2 + env(safe-area-inset-bottom,0px))}.game-layout__board{width:100%;flex:1 1 0;min-height:0;display:flex;align-items:flex-start;justify-content:center}.game-board-frame{border-radius:0;padding:0;overflow:visible;box-sizing:border-box}.game-board-frame::before{content:none}.game-footer{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);padding-bottom:max(var(--s-2),env(safe-area-inset-bottom,0px))}body.show-onscreen-controls .game-footer{padding:0;border-top:none;background:none;border:none;box-shadow:none}body.show-onscreen-controls .game-footer::before{content:none}body.show-onscreen-controls .game-footer__copy{display:none}.replay-controls-region{display:none !important}#main-menu{--main-menu-padding-inline:clamp(0.95rem,6vw,1.5rem);padding:0;display:flex;flex-direction:column;width:100%;gap:0;align-items:stretch;justify-content:flex-start;overflow-y:auto}body{min-height:100svh}.quantris-menu-card{width:auto;margin:0;padding:0 var(--main-menu-padding-inline);align-self:stretch;flex:1 1 auto;min-height:0;justify-content:center;gap:var(--s-3)}.quantris-menu-header{padding-top:var(--s-8);gap:var(--s-2)}.quantris-tagline{margin-bottom:var(--s-4)}.quantris-menu-hero{margin-bottom:var(--s-3)}.q-button--hero{padding:var(--s-6) var(--s-10);font-size:var(--text-xl)}.quantris-menu-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}#main-menu .quantris-menu-actions .q-button{padding:var(--s-4);gap:var(--s-3)}#main-menu .quantris-menu-actions .q-button .fas,#main-menu .quantris-menu-actions .q-button .fab{position:static;transform:none;flex-shrink:0}.quantris-menu-footer{padding:var(--s-4) var(--main-menu-padding-inline)}}@media (max-height:480px) and (orientation:landscape){.game-hud{padding-block:var(--s-1);gap:var(--s-1)}.game-hud-stat-label{display:none}.gameplay-stage{--stage-padding-block:var(--s-1);--stage-padding-inline:var(--s-2)}}@media (max-width:479px){.quantris-footer-links{flex-direction:column;gap:var(--s-3)}}