:root{--ink:#0f172a;--ink-80:#334155;--ink-55:#64748b;--primary:#2563eb;--primary-dark:#1d4ed8;--primary-deep:#1e40af;--accent:#f59e0b;--success:#10b981;--success-deep:#047857;--bg:#f8fafc;--surface:#fff;--surface-sunken:#f1f5f9;--line:#e2e8f0;--line-strong:#cbd5e1;--rail-line:#ffffff29;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-xl:1.75rem;--shadow-card:0 1px 2px #0f172a0f, 0 6px 16px -6px #0f172a1f;--shadow-card-lift:0 2px 4px #0f172a0f, 0 18px 32px -12px #0f172a33;--tap:3rem;--tap-hero:3.75rem;--btn-secondary-hover-border:#94a3b8;--btn-danger-bg:#dc2626;--btn-danger-border:#b91c1c;--btn-danger-hover-bg:#b91c1c;--btn-danger-active-bg:#991b1b;--btn-nav-text:#ffffffe0;--btn-nav-border:#ffffff38;--btn-nav-hover-bg:#ffffff1f;--btn-nav-hover-border:#fff6;--btn-shadow-xs:0 1px 2px #0f172a14;--btn-shadow-primary:0 1px 2px #2563eb40, 0 2px 4px -1px #2563eb26;--btn-shadow-danger:0 1px 2px #dc262640;--btn-h-sm:2rem;--btn-h-md:2.5rem;--btn-h-lg:3.25rem;--btn-radius:.5rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--appbar-h:4.25rem;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:clamp(16px,.45vw + 11px,30px)}*,:before,:after{box-sizing:border-box}body{background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0}h1,h2,h3,p,ul,dl{margin:0}ul{padding:0;list-style:none}img{max-width:100%}.appbar{z-index:5;background:var(--ink);color:var(--surface);position:sticky;top:0}.appbar__row{padding:.625rem max(clamp(1rem, 3vw, 2rem), env(safe-area-inset-right)) .625rem max(clamp(1rem, 3vw, 2rem), env(safe-area-inset-left));flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;display:flex}.appbar__brand{color:var(--surface);align-items:center;gap:.625rem;text-decoration:none;display:inline-flex}.appbar__mark{background:var(--primary);border-radius:.5rem;width:2rem;height:2rem;position:relative;box-shadow:inset 0 -2px #00000038}.appbar__mark:after{content:"";background:var(--surface);clip-path:polygon(0 0,100% 50%,0 100%);width:.625rem;height:.75rem;margin:auto;position:absolute;inset:0}.appbar__name{letter-spacing:-.02em;white-space:nowrap;font-size:1.1875rem;font-weight:800}.appbar__name span{color:var(--accent)}.tabs{flex-wrap:wrap;gap:.25rem;display:flex}.appbar__nav{flex:auto}.tab{min-height:var(--tap);border-radius:var(--radius-md);color:#ffffffc2;touch-action:manipulation;transition:background-color .12s var(--ease-out), color .12s var(--ease-out);align-items:center;padding:0 1rem;font-size:1rem;font-weight:600;text-decoration:none;display:flex}.tab--active{background:var(--primary);color:var(--surface)}.tab:active{background:#ffffff24}.tab--active:active{background:var(--primary-dark)}.appbar__sub{padding:0 max(clamp(1rem, 3vw, 2rem), env(safe-area-inset-left)) .375rem;border-top:1px solid var(--rail-line);gap:.125rem;padding-top:.375rem}.appbar__sub .tab{border-radius:var(--radius-sm);min-height:2.75rem;font-size:.9375rem}.appbar__sub .tab--active{color:var(--surface);box-shadow:inset 0 -3px 0 var(--accent);background:0 0;border-radius:0}.appbar__fs{min-height:var(--tap);border-radius:var(--radius-md);color:var(--surface);font:inherit;cursor:pointer;touch-action:manipulation;white-space:nowrap;transition:background-color .12s var(--ease-out), transform .12s var(--ease-out);background:0 0;border:2px solid #ffffff47;align-items:center;gap:.5rem;margin-inline-start:auto;padding:0 1rem;font-size:.9375rem;font-weight:650;display:inline-flex}.appbar__fs:active{background:#ffffff24;transform:translateY(1px)}.appbar__fs svg{flex:none;width:1.125rem;height:1.125rem}.appbar :focus-visible{outline:3px solid var(--accent);outline-offset:2px}.button{border:1px solid var(--primary-dark);border-radius:var(--radius-md);background:var(--primary);min-height:3.5rem;color:var(--surface);font:inherit;text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;touch-action:manipulation;box-shadow:var(--btn-shadow-primary);justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1.0625rem;font-weight:650;line-height:1;text-decoration:none;transition:background-color .14s,border-color .14s,box-shadow .14s,transform .1s;display:inline-flex;position:relative}.button:hover{background:var(--primary-dark);border-color:var(--primary-deep);box-shadow:0 2px 5px #2563eb4d}.button:active{background:var(--primary-deep);box-shadow:var(--btn-shadow-xs);transform:translateY(1px)}.button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.button--primary{background:var(--primary);border-color:var(--primary-dark);color:var(--surface)}.studio__main a:focus-visible,.studio__main summary:focus-visible,.dialog :focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:var(--radius-sm)}.button--play{min-height:var(--tap-hero);background:var(--success);letter-spacing:-.01em;box-shadow:0 4px 0 var(--success-deep), 0 10px 20px -8px #10b9818c;transition:transform 90ms var(--ease-out), box-shadow 90ms var(--ease-out);border-color:#0000;gap:.75rem;padding-inline:2rem;font-size:1.25rem;font-weight:750}.button--play:hover{background:var(--success);box-shadow:0 4px 0 var(--success-deep), 0 10px 20px -8px #10b9818c;border-color:#0000}.button--play:active{background:var(--success);box-shadow:0 1px 0 var(--success-deep), 0 4px 10px -6px #10b98180;transform:translateY(3px)}.button--play:focus-visible{outline-color:var(--success-deep)}.button__glyph{clip-path:polygon(0 0,100% 50%,0 100%);background:currentColor;flex:none;width:.75rem;height:.875rem}.catalog__count{background:var(--surface-sunken);font-variant-numeric:tabular-nums;color:var(--ink-55);white-space:nowrap;border-radius:999px;padding:.25rem .75rem;font-size:.9375rem;font-weight:650}.catalog__list{gap:1.5rem;margin-top:1.75rem;display:grid}.game{border:2px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card);transition:box-shadow .2s var(--ease-out), border-color .2s var(--ease-out);grid-template-columns:minmax(0,1fr);display:grid;overflow:hidden}.game:has(.button--play:active){border-color:var(--line-strong);box-shadow:var(--shadow-card-lift)}.game__media{aspect-ratio:16/9;background:#cfe9f7;position:relative;overflow:hidden}.game__banner{object-fit:cover;object-position:50% 58%;width:100%;height:100%;position:absolute;inset:0}.game__media:after{content:"";background:linear-gradient(#0000 58%,#0f172a38);position:absolute;inset:0}.game__mascot{z-index:1;filter:drop-shadow(0 10px 14px #0f172a47);width:auto;height:88%;animation:game-mascot-float 4.5s var(--ease-out) infinite;position:absolute;bottom:-2%;left:46%;translate:-50%}@keyframes game-mascot-float{0%,to{translate:-50%}50%{translate:-50% -3.5%}}.game[data-status=coming-soon] .game__media{filter:grayscale(.55)}.game__body{flex-direction:column;align-items:flex-start;padding:clamp(1.25rem,2.4vw,2rem);display:flex}.game__badges{flex-wrap:wrap;gap:.5rem;display:flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.5rem;min-height:2rem;padding:.25rem .75rem;font-size:.875rem;font-weight:650;display:inline-flex}.badge--status{color:var(--success-deep);background:#10b98124}.badge--feature{color:var(--primary-deep);background:#2563eb1f}.badge--warn{color:#8a5300;background:#f59e0b29}.badge--danger{color:#a31d1d;background:#c628281f}.badge--muted{background:var(--surface-sunken);color:var(--ink-55)}.badge__dot{background:currentColor;border-radius:50%;width:.5rem;height:.5rem}.game[data-status=available] .badge__dot,.badge--status .badge__dot{animation:2s ease-in-out infinite badge-pulse}@keyframes badge-pulse{0%,to{box-shadow:0 0 #10b9818c}70%{box-shadow:0 0 0 .375rem #10b98100}}.game[data-status=coming-soon] .badge--status{background:var(--surface-sunken);color:var(--ink-55)}.game__title{letter-spacing:-.03em;margin-top:.875rem;font-size:clamp(1.75rem,2.6vw,2.25rem);font-weight:800;line-height:1.1}.game__tagline{color:var(--ink-80);margin-top:.375rem;font-size:1.125rem;font-weight:650;line-height:1.4}.game__summary{max-width:52ch;color:var(--ink-55);margin-top:.625rem;font-size:1rem;line-height:1.6}.game__facts{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.game__fact{border:1px solid var(--line);background:var(--surface-sunken);color:var(--ink-80);border-radius:999px;padding:.3125rem .75rem;font-size:.9375rem;font-weight:600}.game__action{width:100%;margin-top:auto;padding-top:1.5rem}.game__action .button--play{justify-content:center;align-items:center;display:inline-flex}.game__soon{min-height:var(--tap);color:var(--ink-55);align-items:center;font-size:1rem;font-weight:600;display:inline-flex}.quick{grid-template-columns:minmax(0,1fr);gap:1rem;margin-top:2rem;display:grid}.quick__card{border:2px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);touch-action:manipulation;transition:border-color .16s var(--ease-out), box-shadow .16s var(--ease-out), transform .12s var(--ease-out);align-items:flex-start;gap:1rem;padding:clamp(1rem,2vw,1.5rem);text-decoration:none;display:flex}.quick__card:active{border-color:var(--primary);box-shadow:var(--shadow-card);transform:scale(.985)}.quick__card:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.quick__icon{object-fit:contain;flex:none;width:3.25rem;height:3.25rem}.quick__body{flex-direction:column;gap:.25rem;display:flex}.quick__title{letter-spacing:-.015em;font-size:1.1875rem;font-weight:750}.quick__text{max-width:42ch;color:var(--ink-55);font-size:.9375rem;line-height:1.55}.quick__action{color:var(--primary);margin-top:.375rem;font-size:.9375rem;font-weight:700}.quick__action:after{content:" →"}@media (width>=56rem){.game{grid-template-columns:minmax(16rem,42%) minmax(0,1fr)}.game__media{aspect-ratio:auto;min-height:100%}.game__media:after{background:linear-gradient(90deg,#0000 60%,#ffffff59)}.quick{grid-template-columns:1fr 1fr}}@media (width<=47.99rem){.appbar__fs{padding-inline:.875rem}.appbar__fs [data-role=fullscreen-label]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (prefers-reduced-motion:reduce){.button,.tab,.appbar__fs,.game,.quick__card{transition:none}.game__mascot,.game[data-status=available] .badge__dot,.badge--status .badge__dot,.button--loading:after{animation:none}}.studio{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.studio:has(.appbar__sub){--appbar-h:7.75rem}.studio__main{max-width:68rem;padding:clamp(1.25rem, 3vw, 2.5rem) max(clamp(1rem, 3vw, 2rem), env(safe-area-inset-right)) max(3rem, env(safe-area-inset-bottom)) clamp(1rem, 3vw, 2rem);flex:1;margin:0 auto}.studio__head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding-bottom:1.25rem;display:flex}.studio__title{letter-spacing:-.02em;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:750}.studio__subtitle{color:var(--ink-55);margin-top:.25rem}.app-footer{border-top:1px solid var(--line);color:var(--ink-55);flex-wrap:wrap;justify-content:space-between;gap:.25rem 1.5rem;padding:1.25rem clamp(1rem,3vw,2rem);font-size:.8125rem;display:flex}.app-footer__link{color:inherit;text-decoration:none}.app-footer__link:hover{color:var(--primary);text-decoration:underline}.card{border:1px solid var(--line);background:var(--surface);border-radius:.5rem;margin-top:1.25rem;padding:clamp(1rem,2vw,1.5rem)}.q-cards{gap:0;display:grid}.q-card--invalid{background:#fff8f8;border-color:#fca5a5}.q-card__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.q-card__meta{border-top:1px solid var(--line);margin-top:1rem;padding-top:.75rem}.q-card__meta>summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink-55);font-size:1rem;font-weight:600;list-style:none}.q-card__meta>summary::-webkit-details-marker{display:none}.q-add-card{justify-content:center;margin-top:1.25rem;display:flex}.card--inline{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.card__title{font-size:1.25rem;font-weight:700}.gb-roster>summary.card__title{cursor:pointer}.gb-roster>:not(summary){margin-top:.75rem}.gb-roster__team{gap:.5rem;display:grid}.card__text,.card__note{max-width:68ch;color:var(--ink-80);margin-top:.5rem;line-height:1.6}.card__note{color:var(--ink-55);font-size:.9375rem}.form,.form-row{gap:1rem;margin-top:1rem;display:grid}.form-row{grid-template-columns:1fr;align-items:end}.grid-2{grid-template-columns:1fr;gap:1rem;display:grid}.field{flex-direction:column;gap:.375rem;display:flex}.field--inline{flex:none}.field--grow{flex:14rem}.field__label{font-size:.9375rem;font-weight:650}.field__label-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.field__optional,.field__hint{color:var(--ink-55);font-size:.875rem;font-weight:500}.field__error{color:#c62828;font-size:.9375rem;font-weight:600}.input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:3.5rem;color:var(--ink);font:inherit;border-radius:.375rem;padding:.625rem .75rem;font-size:1rem}.input:focus-visible{outline:3px solid var(--primary);outline-offset:1px}.input--area{resize:vertical;min-height:6rem;line-height:1.5}.form__actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1rem;display:flex}.form__actions>*{flex:14rem}@media (width>=40rem){.form__actions>*{flex:none}}.button--ghost,.button--secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink);box-shadow:var(--btn-shadow-xs)}.button--ghost:hover,.button--secondary:hover{background:var(--bg);border-color:var(--btn-secondary-hover-border);color:var(--ink)}.button--ghost:active,.button--secondary:active{background:var(--surface-sunken);transform:translateY(1px)}.button--danger{background:var(--btn-danger-bg);border-color:var(--btn-danger-border);box-shadow:var(--btn-shadow-danger)}.button--danger:hover{background:var(--btn-danger-hover-bg);border-color:#991b1b;box-shadow:0 2px 5px #dc26264d}.button--danger:active{background:var(--btn-danger-active-bg)}.button--danger:focus-visible{outline-color:var(--btn-danger-bg)}.button--danger-ghost{color:var(--btn-danger-bg);box-shadow:none;background:0 0;border-color:#0000}.button--danger-ghost:hover{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.button--danger-ghost:active{background:#fee2e2;transform:translateY(1px)}.button--danger-ghost:focus-visible{outline-color:var(--btn-danger-bg)}.button--icon{width:var(--btn-h-md);height:var(--btn-h-md);border-radius:var(--btn-radius);min-height:0;padding:0}.button--icon.button--sm{width:var(--btn-h-sm);height:var(--btn-h-sm)}.button--sm{min-height:var(--btn-h-sm);border-radius:var(--radius-sm);padding:0 .75rem;font-size:.8125rem}.button--hero{min-height:var(--btn-h-lg);border-radius:var(--radius-md);padding:0 2rem;font-size:1.0625rem;font-weight:700}.button:disabled,.button[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none;box-shadow:none;transform:none}.button--loading{pointer-events:none;color:#0000!important}.button--loading:after{content:"";border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:1rem;height:1rem;margin:auto;animation:.6s linear infinite btn-spin;position:absolute;inset:0}.button--ghost.button--loading:after,.button--secondary.button--loading:after{border-color:#0f172a33;border-top-color:var(--ink)}@keyframes btn-spin{to{transform:rotate(360deg)}}.filters{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-top:1.25rem;padding:clamp(.875rem,1.6vw,1.25rem);display:flex}.filters .button{flex:none}.bulkbar{top:var(--appbar-h);z-index:4;border:2px solid var(--primary);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;padding:.75rem 1rem;display:flex;position:sticky}.bulkbar__count{font-weight:650}.qlist,.packs,.keys,.drafts,.notes,.picklist{gap:.75rem;margin-top:1.25rem;display:grid}.qrow,.pack,.key{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:clamp(1rem,1.6vw,1.25rem);display:flex}.qrow--invalid{background:snow;border-color:#e9a7a7}.key--off{background:var(--surface-sunken);color:var(--ink-55)}.qrow__body,.pack__body,.key__body{flex:18rem}.qrow__pick input,.picklist input,.draft__pick input,.option__correct input{width:1.5rem;height:1.5rem;accent-color:var(--primary)}.qrow__question,.pack__name,.key__label{letter-spacing:-.01em;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700;line-height:1.35;display:flex}.qrow__options{color:var(--ink-80);gap:.25rem;margin-top:.5rem;padding-left:1.25rem;display:grid}.qrow__options .is-correct{color:var(--ink);font-weight:650}.qrow__meta,.pack__meta,.key__status{color:var(--ink-55);flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:.75rem;font-size:.9375rem;display:flex}.qrow__meta li,.pack__meta li{background:var(--surface-sunken);color:var(--ink-80);border-radius:999px;padding:.1875rem .625rem;font-weight:600}.qrow__meta li.is-level{color:var(--primary-deep);background:#2563eb1a}.qrow__meta li.is-plain,.pack__meta li.is-plain{color:var(--ink-55);background:0 0;padding:0;font-weight:500}.qrow__warning{color:#c62828;margin-top:.5rem;font-size:.9375rem;font-weight:600}.qrow__actions,.pack__actions,.key__actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.qrow__actions .button,.pack__actions .button,.key__actions .button{min-height:var(--tap);padding-inline:1rem;font-size:1rem}.key__mask{color:var(--ink-55);margin-top:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tag{border:1px solid var(--line);color:var(--ink-80);white-space:nowrap;border-radius:999px;align-items:center;padding:.1875rem .625rem;font-size:.8125rem;font-weight:700;display:inline-flex}.tag--ok{color:#16834a;border-color:#16834a}.tag--invalid,.tag--quota,.tag--error{color:#c62828;border-color:#c62828}.tag--rate-limited{color:#9a6700;border-color:#9a6700}.status{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.status__art{object-fit:contain;flex:none;width:3.5rem;height:3.5rem}.status__head{flex-wrap:wrap;flex:14rem;align-items:center;gap:.5rem .75rem;display:flex}.status__title{letter-spacing:-.015em;font-size:1.25rem;font-weight:750}.facts{border-top:1px solid var(--line);gap:.75rem 1.5rem;margin-top:1.25rem;padding-top:1.25rem;display:grid}@media (width>=40rem){.facts{grid-template-columns:1fr 1fr}}.facts__item{flex-direction:column;gap:.125rem;display:flex}.facts__label{color:var(--ink-55);font-size:.875rem;font-weight:650}.facts__value{color:var(--ink);font-size:1.0625rem;font-weight:650}.options{gap:.5rem;margin-top:.5rem;display:grid}.option{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.option .input{flex:14rem}.option__correct{align-items:center;gap:.375rem;min-height:3.5rem;font-size:.9375rem;font-weight:600;display:inline-flex}.draft{border:1px solid var(--line);border-left:2px solid var(--primary);border-radius:.375rem;gap:.75rem;padding:1rem;display:grid}.draft__pick{align-items:center;gap:.5rem;font-weight:650;display:inline-flex}.notes{color:var(--ink-55);gap:.25rem;padding-left:1.25rem;font-size:.9375rem;list-style:outside}.banner{border:1px solid var(--line);border-left:4px solid var(--primary);background:var(--surface);border-radius:.375rem;margin-top:1rem;padding:.75rem 1rem;line-height:1.5}.banner--error{border-left-color:#c62828}.banner--warn{border-left-color:#9a6700}.empty{border:2px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);text-align:center;flex-direction:column;align-items:center;margin-top:1.5rem;padding:clamp(1.5rem,4vw,3rem);display:flex}.empty__art{width:clamp(6rem,12vw,9rem);height:auto;margin-bottom:.5rem}.empty__title{letter-spacing:-.015em;font-size:1.375rem;font-weight:750}.empty__message{max-width:48ch;color:var(--ink-55);margin:.5rem auto 1rem;line-height:1.6}.dialog{border:1px solid var(--line);background:var(--surface);width:min(32rem,100vw - 2rem);color:var(--ink);border-radius:.5rem;padding:0}.dialog--wide{width:min(48rem,100vw - 2rem)}.dialog::backdrop{background:#1720338c}.dialog__body{gap:1rem;max-height:85dvh;padding:clamp(1rem,3vw,1.75rem);display:grid;overflow-y:auto}.dialog__title{font-size:1.25rem;font-weight:700}.dialog__message{color:var(--ink-80);line-height:1.6}.dialog__actions>*{flex:10rem}@media (width>=30rem){.dialog__actions>*{flex:none}}.dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.access-modal__list{color:var(--ink-80);list-style:revert;gap:.375rem;margin:0;padding-left:1.25rem;line-height:1.6;display:grid}.access-modal__note{border:1px solid var(--line);background:var(--surface-sunken);border-radius:.5rem;gap:.5rem;padding:.875rem 1rem;display:grid}.picklist{max-height:50vh;margin-top:0;overflow-y:auto}.picklist__item{border:1px solid var(--line);border-radius:.375rem;align-items:flex-start;gap:.75rem;min-height:3rem;padding:.5rem;line-height:1.4;display:flex}.toast-host{left:50%;bottom:max(1rem, env(safe-area-inset-bottom));z-index:50;gap:.5rem;width:min(32rem,100vw - 2rem);display:grid;position:fixed;transform:translate(-50%)}.toast{background:var(--ink);color:var(--surface);border-radius:.375rem;padding:.875rem 1rem;font-weight:600;line-height:1.4}.toast--success{background:#16834a}.toast--error{background:#c62828}@media (width>=48rem){.grid-2{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:minmax(10rem,1fr) minmax(0,2fr) auto}}.admin-shell .studio__main{max-width:72rem;padding:2rem 1.5rem}.admin-shell input.input,.admin-shell select.input{min-height:2.5rem;padding:0 .75rem;font-size:.9375rem}.admin-shell .button{min-height:var(--btn-h-md);padding:0 1.125rem;font-size:.875rem;font-weight:600}.admin-shell .qrow{transition:background-color .12s var(--ease-out)}.admin-shell .qrow:hover,.admin-shell .qrow:focus-within{background:var(--surface-sunken)}.admin-shell .qrow__actions .button{min-height:var(--btn-h-sm);padding:0 .75rem;font-size:.8125rem}@media (width<=40rem){.admin-shell .button,.button--sm{min-height:2.75rem}}.badge--admin{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);color:#fff;white-space:nowrap;background:#ffffff26;align-items:center;margin-left:.5rem;padding:.15rem .5rem;font-size:.6875rem;font-weight:700;display:inline-flex}.button--ghost-nav{border:1px solid var(--btn-nav-border);border-radius:var(--radius-md);min-height:2.25rem;color:var(--btn-nav-text);font:inherit;cursor:pointer;touch-action:manipulation;white-space:nowrap;transition:background-color .12s var(--ease-out), border-color .12s var(--ease-out), color .12s var(--ease-out);background:0 0;align-items:center;gap:.5rem;margin-inline-start:auto;padding:0 .875rem;font-size:.8125rem;font-weight:650;display:inline-flex}.button--ghost-nav:hover{background:var(--btn-nav-hover-bg);border-color:var(--btn-nav-hover-border);color:#fff}.button--ghost-nav:active{background:#ffffff2e;transform:translateY(1px)}.button--ghost-nav:focus-visible{outline-offset:2px;outline:2px solid #fff}.tag--pending{color:#92400e;background:#fffbeb;border-color:#fde68a}.tag--scheduled{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.tag--expired{background:var(--surface-sunken);color:var(--ink-80);border-color:var(--line)}.admin-shell .tag--ok{background:#ecfdf5}.admin-shell .tag--invalid{background:#fef2f2}@media (width<=47.99rem){.admin-shell .appbar__row{gap:.5rem .75rem}.admin-shell .appbar__nav{-webkit-overflow-scrolling:touch;flex-basis:100%;order:3;overflow-x:auto}.admin-shell .appbar__nav .tabs{flex-wrap:nowrap}.admin-shell .appbar__nav .tab{flex:none}.admin-shell .studio__main{padding:1.25rem 1rem}.admin-shell .filters{flex-direction:column;align-items:stretch}.admin-shell .filters .field--inline{flex:auto}.admin-shell .qrow{flex-direction:column}.admin-shell .qrow__body{flex:auto}.admin-shell .qrow__actions{width:100%}.admin-shell .qrow__actions .button{justify-content:center;width:100%}}.game__action{margin-top:1rem}.gb-setup{background:var(--bg);min-height:100dvh}.gb-packs{gap:.5rem;margin-top:1rem;display:grid}.gb-pack,.gb-check{border:1px solid var(--line);touch-action:manipulation;border-radius:.375rem;align-items:center;gap:.75rem;min-height:3.5rem;padding:.75rem 1rem;font-size:1rem;display:flex}.gb-check{margin-top:.75rem;font-weight:600}.gb-pack input,.gb-check input{width:1.5rem;height:1.5rem;accent-color:var(--primary)}.gb-pack__name{font-weight:650;display:block}.gb-pack__meta{color:var(--ink-55);font-size:.9375rem;display:block}.gb-arena{background:var(--ink);color:#fff;min-height:100dvh;position:relative;overflow:hidden}.gb-arena:not([data-camera=running]):before{content:"";background:var(--arena-image) center / cover no-repeat;opacity:.4;position:absolute;inset:0}.gb-arena__video{object-fit:cover;background:#0b111f;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.gb-arena:not([data-camera=running]) .gb-arena__video{opacity:0}.gb-arena__stage,.gb-arena__stage canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gb-laser{z-index:5;pointer-events:none;width:2.75rem;height:2.75rem;margin:-1.375rem 0 0 -1.375rem;position:absolute;top:0;left:0}.gb-laser[hidden]{display:none}.gb-laser:before{content:"";border:3px solid;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 20px,inset 0 0 0 2px #ffffff8c}.gb-laser:after{content:"";background:#fff;border-radius:50%;width:.5rem;height:.5rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px}.gb-laser[data-team="0"]{color:#ef4444}.gb-laser[data-team="1"]{color:#22c55e}.gb-option--aimed{border-color:#fff9;box-shadow:inset 0 0 0 3px #ffffff47,0 4px 16px #00000040}.gb-arena__hud{z-index:2;min-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#080c16b8 0%,#080c1633 22%,#080c161a 65%,#080c16bf 100%);flex-direction:column;justify-content:space-between;gap:clamp(.75rem,2vh,1.5rem);display:flex;position:relative}.gb-arena__hud>*{pointer-events:auto}.gb-top{grid-template-columns:minmax(10rem,1fr) auto minmax(10rem,1fr);align-items:center;gap:1rem;display:grid}.gb-score{-webkit-backdrop-filter:blur(12px);background:#0d1424ad;border:1.5px solid #ffffff26;border-radius:.75rem;flex-direction:column;gap:.25rem;padding:clamp(.5rem,1vw,.75rem) clamp(.875rem,1.5vw,1.25rem);transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;box-shadow:0 4px 16px #00000040}.gb-top .gb-score:last-child{text-align:right;align-items:flex-end}.gb-score__badge{letter-spacing:.08em;text-transform:uppercase;color:#ffffffd9;background:#ffffff1f;border-radius:999px;align-self:flex-start;padding:.125rem .5rem;font-size:.75rem;font-weight:750}.gb-top .gb-score:last-child .gb-score__badge{align-self:flex-end}.gb-score--a .gb-score__badge{color:#93c5fd;background:#3b82f64d;border:1px solid #3b82f666}.gb-score--b .gb-score__badge{color:#fdba74;background:#f973164d;border:1px solid #f9731666}.gb-score--active{border-color:#60a5fa;transform:scale(1.02);box-shadow:0 0 24px #3b82f673}.gb-score--b.gb-score--active{border-color:#fb923c;box-shadow:0 0 24px #f9731673}.gb-score__name{color:#ffffffd1;font-size:clamp(.875rem,1.1vw,1.0625rem);font-weight:650}.gb-score__roster{color:#ffffff8c;max-width:16rem;font-size:.75rem}.gb-score__value{font-variant-numeric:tabular-nums;color:#fff;font-size:clamp(2rem,3.8vw,3.25rem);font-weight:800;line-height:1}.gb-top__center{text-align:center;flex-direction:column;align-items:center;gap:.25rem;display:flex}.gb-match-badge{letter-spacing:.08em;text-transform:uppercase;color:#ffffffb3;font-size:.8125rem;font-weight:700}.gb-turn-badge{-webkit-backdrop-filter:blur(8px);color:#fff;background:#0d1424b8;border:1.5px solid #fff3;border-radius:999px;padding:.25rem .875rem;font-size:clamp(.95rem,1.2vw,1.2rem);font-weight:750;display:inline-block}.gb-turn-badge[data-team="0"]{color:#93c5fd;border-color:#60a5fa}.gb-turn-badge[data-team="1"]{color:#fdba74;border-color:#fb923c}.gb-timer-wrapper{flex-direction:column;align-items:center;gap:.25rem;display:flex}.gb-timer{color:#ffffffd9;font-variant-numeric:tabular-nums;font-size:clamp(.9rem,1.1vw,1.05rem);font-weight:700;transition:color .18s}.gb-timer--warning{color:#f87171;animation:.8s ease-in-out infinite gb-pulse}@keyframes gb-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.08)}}.gb-timer__track{background:#fff3;border-radius:999px;width:min(20rem,36vw);height:.5rem;overflow:hidden;box-shadow:inset 0 1px 3px #0000004d}.gb-timer__bar{background:var(--primary);border-radius:999px;width:100%;height:100%;transition:width .12s linear,background .18s}.gb-timer__bar--warning{background:linear-gradient(90deg,#f97316,#ef4444);box-shadow:0 0 8px #ef4444}.gb-main{text-align:center;flex-direction:column;flex:auto;justify-content:center;gap:clamp(.75rem,1.8vh,1.25rem);width:100%;max-width:min(72rem,96vw);margin:0 auto;display:flex}.gb-question-card{-webkit-backdrop-filter:blur(16px);background:#0c1322c7;border:1.5px solid #ffffff38;border-radius:1rem;max-width:min(54rem,92vw);margin:0 auto;padding:clamp(.75rem,1.8vw,1.25rem) clamp(1.25rem,2.8vw,2.5rem);box-shadow:0 8px 32px #00000061}.gb-question__badge{letter-spacing:.08em;text-transform:uppercase;color:#a5c2ff;background:#4a7dff40;border:1px solid #4a7dff80;border-radius:999px;margin-bottom:.4rem;padding:.2rem .65rem;font-size:clamp(.75rem,.95vw,.875rem);font-weight:700;display:inline-block}.gb-question{color:#fff;text-shadow:0 2px 10px #00000080;margin:0 auto;font-size:clamp(1.35rem,2.6vw,2.4rem);font-weight:750;line-height:1.3}.gb-options{grid-template-columns:repeat(auto-fit,minmax(clamp(14rem,23vw,22rem),1fr));gap:clamp(.625rem,1.4vw,1.125rem);width:100%;max-width:min(68rem,92vw);margin:0 auto;display:grid}.gb-option{-webkit-backdrop-filter:blur(12px);color:#fff;min-height:clamp(4.5rem,7vh,5.5rem);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:#0d1424bf;border:2px solid #ffffff40;border-radius:.75rem;align-items:center;gap:.875rem;padding:.75rem 1.125rem;font-size:clamp(1.05rem,1.35vw,1.35rem);font-weight:650;transition:transform .14s,border-color .14s,background .14s,opacity .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #00000040}.gb-option:active{background:#4a7dff59;transform:translateY(1px)}.gb-option:focus-visible{outline-offset:2px;outline:3px solid #fff}.gb-option__number{background:var(--primary);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;width:2.5rem;height:2.5rem;font-weight:800;display:grid;box-shadow:0 2px 8px #0000004d}.gb-option__text{flex:auto}.gb-option__indicator{letter-spacing:.04em;text-transform:uppercase;flex:none;font-size:.875rem;font-weight:800}.gb-option--holding{border-color:#60a5fa;transform:scale(1.02);box-shadow:0 0 24px #4a7dff8c}.gb-option--holding:after{content:"";height:5px;width:var(--hold-progress,0%);background:linear-gradient(90deg,#60a5fa,#38bdf8);transition:width .1s linear;position:absolute;bottom:0;left:0;box-shadow:0 0 8px #38bdf8}.gb-option--selected{outline-offset:2px;outline:3px solid #60a5fa}.gb-option--correct{background:linear-gradient(135deg,#10b981d9 0%,#059669d9 100%);border-color:#34d399;transform:scale(1.02);box-shadow:0 0 24px #34d39980}.gb-option--correct .gb-option__indicator{color:#fff}.gb-option--wrong{background:linear-gradient(135deg,#ef4444d9 0%,#b91c1cd9 100%);border-color:#f87171;box-shadow:0 0 24px #f8717173}.gb-option--wrong .gb-option__indicator{color:#fff}.gb-option--dimmed{opacity:.38;transform:scale(.98)}.gb-option:disabled{cursor:default}.gb-status-area{flex-direction:column;align-items:center;gap:.5rem;display:flex}.gb-feedback{border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;min-height:2.25rem;padding:.35rem 1.25rem;font-size:clamp(1.05rem,1.5vw,1.35rem);font-weight:700;transition:all .18s;display:flex}.gb-feedback:empty{display:none}.gb-feedback--correct{color:#6ee7b7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#10b98140;border:1.5px solid #34d3998c}.gb-feedback--wrong{color:#fca5a5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ef444440;border:1.5px solid #f871718c}.gb-feedback--timeout{color:#fde68a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f59e0b40;border:1.5px solid #fbbf248c}.gb-gesture-banner{-webkit-backdrop-filter:blur(12px);color:#fff;background:#0d1424b8;border:1px solid #ffffff2e;border-radius:999px;justify-content:center;align-items:center;padding:.45rem 1.25rem;font-size:clamp(.9rem,1.1vw,1.05rem);font-weight:650;transition:background .18s,border-color .18s,box-shadow .18s;display:inline-flex;box-shadow:0 4px 16px #0003}.gb-gesture-banner--holding{background:#1e3a8ad1;border-color:#60a5fa;box-shadow:0 0 20px #3b82f673}.gb-gesture-banner--cooling{color:#ffedd5;background:#7c2d12d1;border-color:#fb923c;box-shadow:0 0 16px #f9731659}.gb-gesture{align-items:center;gap:.625rem;margin:0;display:flex}.gb-gesture__pill{font-weight:750}.gb-gesture__meter{vertical-align:middle;background:#ffffff38;border-radius:999px;width:clamp(5rem,8vw,8rem);height:.5rem;display:inline-block;overflow:hidden}.gb-gesture__fill{background:#38bdf8;border-radius:999px;height:100%;transition:width .1s linear;display:block}.gb-gesture__pct{font-variant-numeric:tabular-nums;color:#7dd3fc;font-weight:750}.gb-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;display:flex}.gb-camera-badge{-webkit-backdrop-filter:blur(8px);color:#fffc;background:#0d1424a6;border:1px solid #ffffff26;border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .875rem;font-size:clamp(.8125rem,.95vw,.9375rem);display:inline-flex}.gb-camera-badge[data-status=running]:before{content:"";background:#34d399;border-radius:50%;width:.5rem;height:.5rem;box-shadow:0 0 8px #34d399}.gb-camera-badge[data-status=denied],.gb-camera-badge[data-status=unavailable],.gb-camera-badge[data-status=failed]{color:#fca5a5;border-color:#ef444466}.gb-camera-badge[data-status=denied]:before,.gb-camera-badge[data-status=unavailable]:before,.gb-camera-badge[data-status=failed]:before{content:"";background:#f87171;border-radius:50%;width:.5rem;height:.5rem}.gb-controls{flex-wrap:wrap;gap:.625rem;display:flex}.gb-controls .button{min-width:6.5rem;min-height:2.875rem;box-shadow:none;touch-action:manipulation;border-color:#0000;border-radius:.625rem;padding:.625rem 1.125rem;font-size:clamp(.9375rem,1.1vw,1.0625rem);font-weight:650}.gb-controls .button:hover{box-shadow:none;border-color:#0000}.gb-controls .button--ghost{color:#fff;-webkit-backdrop-filter:blur(8px);background:#ffffff24;border-color:#ffffff52}.gb-controls .button--ghost:hover{background:#ffffff38}.gb-btn-skip.button--primary{background:var(--primary);border-color:var(--primary);color:#fff;animation:1.2s ease-in-out infinite gb-pulse;box-shadow:0 0 16px #4a7dff80}.gb-result{z-index:3;-webkit-backdrop-filter:blur(12px);background:#080d18e0;place-items:center;padding:1.5rem;display:grid;position:absolute;inset:0}.gb-result[hidden]{display:none}.gb-result__card{background:var(--surface);width:min(44rem,100%);max-height:90dvh;color:var(--ink);text-align:center;border-radius:1rem;padding:clamp(1.5rem,3.2vw,2.25rem);overflow-y:auto;box-shadow:0 16px 48px #00000073}.gb-result__title{font-size:clamp(1.6rem,3.2vw,2.35rem);font-weight:800}.gb-result__score{font-variant-numeric:tabular-nums;color:var(--primary);margin-top:.5rem;font-size:clamp(1.15rem,2vw,1.6rem);font-weight:750}.gb-result__meta{color:var(--ink-55);margin-top:.375rem}.gb-recap{text-align:left;gap:.375rem;margin:1.25rem 0;display:grid}.gb-recap__item{border-left:4px solid var(--ink-55);background:var(--bg);border-radius:.375rem;justify-content:space-between;gap:1rem;padding:.625rem .875rem;font-size:.9375rem;font-weight:600;display:flex}.gb-recap__item.is-correct{background:#f0fdf4;border-left-color:#16834a}.gb-recap__item.is-wrong{background:#fef2f2;border-left-color:#c62828}.gb-result .form__actions{justify-content:center}@media (width<=52rem){.gb-top{text-align:center;grid-template-columns:1fr;gap:.5rem}.gb-top .gb-score:last-child{text-align:center;align-items:center}.gb-score{flex-direction:row;justify-content:center;align-items:baseline;gap:.75rem}.gb-top .gb-score__badge,.gb-top .gb-score:last-child .gb-score__badge{align-self:center}.gb-timer__track{width:100%}.gb-bottom{justify-content:center}}.gb-volume{color:#fff;background:#ffffff1f;border:2px solid #ffffff4d;border-radius:.5rem;align-items:center;gap:.5rem;min-height:3rem;padding:0 .75rem;font-size:.9375rem;font-weight:650;display:inline-flex}.gb-volume__input{width:clamp(5rem,12vw,9rem);height:2.5rem;accent-color:var(--primary);touch-action:manipulation}.gb-volume__value{font-variant-numeric:tabular-nums;min-width:3ch}.gb-pause{z-index:4;background:#080d18d6;place-items:center;padding:1.5rem;display:grid;position:absolute;inset:0}.gb-pause[hidden]{display:none}.gb-pause__card{background:var(--surface);width:min(34rem,100%);color:var(--ink);text-align:center;border-radius:.75rem;padding:clamp(1.25rem,3vw,2rem)}.gb-pause__title{font-size:clamp(1.375rem,2.6vw,1.875rem);font-weight:800}.gb-pause__text{max-width:44ch;color:var(--ink-80);margin:.625rem auto 1.25rem;line-height:1.6}.gb-pause__card .button{min-width:14rem}.gb-arena[data-paused=true] .gb-arena__video{filter:grayscale(.6)brightness(.65)}:is(.gb-arena:fullscreen,.gb-arena[data-fullscreen=true]){width:100%;height:100%}.gb-arena:fullscreen .gb-arena__hud{min-height:100%}.gb-arena:fullscreen .gb-arena__video{height:100%}
