@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.play-loading{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--space-4);background:var(--panel)}.play-loading__backdrop{position:absolute;inset:-32px}.play-loading__backdrop-art{width:100%;height:100%;filter:blur(18px) saturate(1.1);transform:scale(1.05)}.play-loading__backdrop:after{content:"";position:absolute;inset:0;background:var(--overlay)}.play-loading__card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3);width:100%;max-width:420px;padding:var(--space-4);background:var(--surface);border-radius:var(--radius-modal);box-shadow:var(--shadow-3);text-align:center}.play-loading__art{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius-card);background:var(--surface-2)}.play-loading__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.play-loading__title{margin:var(--space-2) 0 0;font-size:var(--text-h2);line-height:var(--lh-h2);overflow-wrap:anywhere;text-wrap:balance}.play-loading__skeleton-title{width:70%;height:28px;margin:var(--space-2) auto 0}.play-loading__creator{margin:0;color:var(--ink-2)}.play-loading__progress{position:relative;height:8px;margin-top:var(--space-2);overflow:hidden;border-radius:var(--radius-pill);background:var(--surface-2)}.play-loading__bar{position:absolute;top:0;bottom:0;left:0;width:40%;border-radius:var(--radius-pill);background:var(--brand);animation:play-loading-sweep 1.2s var(--ease) infinite}@keyframes play-loading-sweep{0%{transform:translate(-100%)}to{transform:translate(260%)}}.play-loading__status{margin:0;color:var(--ink-2);font-size:var(--text-small);line-height:var(--lh-small)}.home__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.home__heading{min-width:0}.home__title{margin:0;font-size:var(--text-h1-phone);line-height:var(--lh-h1-phone);font-weight:700;overflow-wrap:anywhere}.home__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.home__more{display:flex;justify-content:center}.home__error-inline{margin:0;color:var(--danger)}.featured,.featured--skeleton{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.featured__art{position:relative;flex:none;aspect-ratio:16 / 9;overflow:hidden;background:var(--surface-2)}.featured__image{font-size:96px}.featured__art>img.featured__image{display:block;width:100%;height:100%;object-fit:cover}.featured__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4)}.featured__tag{display:inline-flex;align-items:center;gap:var(--space-1);margin:0;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--accent-yellow);color:var(--ink);font-size:var(--text-caption);font-weight:600;line-height:var(--lh-caption)}.featured__title{margin:0;font-size:var(--text-h2);line-height:var(--lh-h2);font-weight:700;overflow-wrap:anywhere}.featured__link{color:var(--ink);text-decoration:none}.featured__link:hover{text-decoration:underline}.featured__creator,.featured__stats{margin:0;color:var(--ink-2);font-size:var(--text-small);line-height:var(--lh-small)}.featured__stats{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.featured__play{width:100%;margin-top:var(--space-2)}.featured--skeleton{aspect-ratio:16 / 9;border:0;background:none}.featured__skeleton{position:absolute;inset:0}@media(min-width:768px){.featured{min-height:340px;flex-direction:row}.featured__art{position:absolute;inset:0;aspect-ratio:auto}.featured__body{position:relative;z-index:1;justify-content:flex-end;width:min(520px,100%);margin-top:auto;padding:var(--space-6);color:var(--white)}.featured:not(.featured--skeleton):after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#12141ab8,#12141a4d 38%,#12141a00 62%);pointer-events:none}.featured__title,.featured__link{color:var(--white)}.featured__creator,.featured__stats{color:#ffffffd9}.featured__title{font-size:var(--text-h1);line-height:var(--lh-h1)}.featured__play{width:auto}.featured--skeleton{min-height:340px;aspect-ratio:auto}}.home-row{display:flex;flex-direction:column;gap:var(--space-3)}.home-row__title{margin:0;font-size:var(--text-h3);line-height:var(--lh-h3);font-weight:700}.game-rail{display:flex;gap:var(--space-3);margin:0 calc(var(--space-4) * -1);padding:var(--space-1) var(--space-4) var(--space-3);overflow-x:auto;scroll-padding-inline:var(--space-4);scroll-snap-type:x mandatory;scrollbar-width:none;list-style:none;-webkit-overflow-scrolling:touch}.game-rail::-webkit-scrollbar{display:none}.game-rail>li{flex:0 0 min(72%,240px);scroll-snap-align:start}@media(min-width:768px){.game-rail{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4);margin:0;padding:0;overflow:visible;scroll-snap-type:none}.game-rail>li{flex:none}}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3);margin:0;padding:0;list-style:none}@media(min-width:768px){.game-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}}:root{color-scheme:light;--brand: #2459e0;--brand-strong: #1b46b8;--brand-soft: #e6edff;--accent-yellow: #ffc531;--accent-coral: #f2503f;--accent-green: #12a46b;--accent-green-ink: #0b7a4f;--ink: #12141a;--ink-2: #4a5160;--ink-3: #7b8394;--line: #e1e4ea;--bg: #f4f5f8;--surface: #ffffff;--surface-2: #eceef3;--white: #ffffff;--danger: #d92d20;--warn: #b76e00;--overlay: rgba(18, 20, 26, .55);--panel: #1b1e27;--panel-2: #262a36;--panel-line: #353a48;--panel-ink: #f2f4f8;--panel-ink-2: #a9b0c0;--chip-bg: rgba(18, 20, 26, .62);--chip-ink: #ffffff;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-input: 8px;--radius-chip: 8px;--radius-button: 12px;--radius-card: 12px;--radius-modal: 16px;--radius-pill: 999px;--font-display: "Outfit Variable", "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-text: "Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--weight-body: 400;--weight-medium: 500;--weight-semibold: 600;--weight-heading: 700;--weight-display: 800;--text-caption: 12px;--lh-caption: 16px;--text-small: 14px;--lh-small: 20px;--text-body: 16px;--lh-body-px: 24px;--text-lead: 18px;--lh-lead: 26px;--text-h3: 22px;--lh-h3: 28px;--text-h2: 28px;--lh-h2: 34px;--text-h1: 36px;--lh-h1: 42px;--text-h1-phone: 28px;--lh-h1-phone: 34px;--line-tight: 1.2;--line-body: 1.5;--touch-min: 44px;--button-sm: 36px;--button-md: 44px;--button-lg: 52px;--field-height: 44px;--content-max: 1200px;--form-max: 420px;--side-nav-width: 220px;--top-bar-height: 56px;--top-bar-height-desktop: 64px;--bottom-nav-height: 64px;--breakpoint-desktop: 768px;--duration-fast: .12s;--duration-base: .2s;--duration-page: .32s;--spin-period: .8s;--pulse-period: 1.4s;--ease: cubic-bezier(.2, .8, .2, 1);--shadow-1: 0 1px 2px rgba(18, 20, 26, .08);--shadow-2: 0 6px 20px rgba(18, 20, 26, .12);--shadow-3: 0 18px 48px rgba(18, 20, 26, .22);--focus-ring: 2px solid var(--brand);--focus-offset: 2px;--color-navy: var(--bg);--color-panel: var(--surface);--color-panel-raised: var(--surface-2);--color-field: var(--surface-2);--color-edge: var(--line);--color-edge-strong: var(--ink-3);--color-text: var(--ink);--color-muted: var(--ink-2);--color-white: var(--white);--color-on-accent: var(--white);--color-surface: var(--surface);--color-cyan: var(--brand);--color-cyan-hover: var(--brand-strong);--color-blue: var(--brand);--color-purple: var(--brand-strong);--color-gold: var(--accent-yellow);--color-pink: var(--accent-coral);--color-red: var(--danger);--color-green: var(--accent-green);--color-focus: var(--brand);--color-danger: var(--danger);--color-success: var(--accent-green);--color-backdrop: var(--overlay);--font-family: var(--font-text);--text-sm: var(--text-small);--text-base: var(--text-body);--text-lg: var(--text-lead);--text-xl: var(--text-h3);--text-2xl: var(--text-h2);--radius-sm: var(--radius-input);--radius-md: var(--radius-input);--radius-lg: var(--radius-card);--shadow-panel: var(--shadow-1);--glow-cyan: 0 0 0 2px var(--brand)}.dark-panel{color-scheme:dark;background:var(--panel);--bg: var(--panel);--surface: var(--panel);--surface-2: var(--panel-2);--field-surface: var(--panel-2);--line: var(--panel-line);--ink: var(--panel-ink);--ink-2: var(--panel-ink-2);--ink-3: var(--panel-ink-2);--color-navy: var(--panel);--color-panel: var(--panel);--color-panel-raised: var(--panel-2);--color-field: var(--panel-2);--color-edge: var(--panel-line);--color-edge-strong: var(--panel-line);--color-text: var(--panel-ink);--color-muted: var(--panel-ink-2);--color-surface: var(--panel);color:var(--panel-ink)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes fade-out{to{opacity:0}}@keyframes sink-out{to{opacity:0;transform:translateY(8px)}}@keyframes menu-out{to{opacity:0;transform:translateY(-4px)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}@keyframes skeleton-pulse{50%{opacity:.55}}.btn{--btn-bg: var(--surface);--btn-bg-hover: var(--surface-2);--btn-bg-pressed: var(--surface-2);--btn-fg: var(--ink);--btn-border: var(--line);--btn-border-hover: var(--line);--btn-filter-hover: none;--btn-filter-pressed: none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--button-md);min-width:var(--touch-min);padding:0 var(--space-4);align-self:flex-start;border:1px solid var(--btn-border);border-radius:var(--radius-button);background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-display);font-size:var(--text-body);font-weight:var(--weight-semibold);line-height:1;text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),filter var(--duration-fast) var(--ease),transform var(--duration-fast) var(--ease)}.btn:is(:hover,[data-force-state=hover]):not(:disabled){background:var(--btn-bg-hover);border-color:var(--btn-border-hover);filter:var(--btn-filter-hover)}.btn:is(:active,[data-force-state=pressed]):not(:disabled){background:var(--btn-bg-pressed);border-color:var(--btn-border-hover);filter:var(--btn-filter-pressed);transform:scale(.97)}.btn:is(:focus-visible,[data-force-state=focus]){outline:var(--focus-ring);outline-offset:var(--focus-offset)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn[aria-busy=true]:disabled{opacity:1;cursor:progress}.btn>.spinner{width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent}.btn--primary{--btn-bg: var(--brand);--btn-bg-hover: var(--brand-strong);--btn-bg-pressed: var(--brand-strong);--btn-fg: var(--white);--btn-border: var(--brand);--btn-border-hover: var(--brand-strong)}.btn--play{--btn-bg: var(--accent-green);--btn-bg-hover: var(--accent-green);--btn-bg-pressed: var(--accent-green);--btn-fg: var(--white);--btn-border: var(--accent-green);--btn-border-hover: var(--accent-green);--btn-filter-hover: brightness(.92);--btn-filter-pressed: brightness(.85)}.btn--danger{--btn-bg: var(--danger);--btn-bg-hover: var(--danger);--btn-bg-pressed: var(--danger);--btn-fg: var(--white);--btn-border: var(--danger);--btn-border-hover: var(--danger);--btn-filter-hover: brightness(.92);--btn-filter-pressed: brightness(.85)}.btn--ghost{--btn-bg: transparent;--btn-bg-hover: var(--surface-2);--btn-bg-pressed: var(--surface-2);--btn-border: transparent;--btn-border-hover: transparent}.btn--sm{min-height:var(--button-sm);padding:0 var(--space-3);font-size:var(--text-small)}.btn--lg{min-height:var(--button-lg);padding:0 var(--space-5);font-size:var(--text-lead)}@media(pointer:coarse),(max-width:767px){.btn--sm{min-height:var(--touch-min)}}.btn--block{align-self:stretch;width:100%}.btn[aria-pressed=true],.btn[aria-checked=true]{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong)}.btn[aria-pressed=true]:hover:not(:disabled),.btn[aria-checked=true]:hover:not(:disabled){background:var(--brand-soft);border-color:var(--brand-strong)}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--touch-min);height:var(--touch-min);padding:0;border:1px solid transparent;border-radius:var(--radius-button);background:transparent;color:var(--ink-2);cursor:pointer;transition:background var(--duration-fast) var(--ease),transform var(--duration-fast) var(--ease)}@media(hover:hover){.icon-button:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}}.icon-button:active:not(:disabled){transform:scale(.97)}.icon-button:disabled{opacity:.5;cursor:not-allowed}.icon-button--secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.icon-button--sm{width:var(--button-sm);height:var(--button-sm)}@media(pointer:coarse),(max-width:767px){.icon-button--sm{width:var(--touch-min);height:var(--touch-min)}}.icon-button[aria-pressed=true]{background:var(--brand-soft);color:var(--brand-strong)}@media(pointer:coarse),(max-width:767px){.icon-button,.icon-button--sm{min-width:var(--touch-min);min-height:var(--touch-min)}}.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.field__label{font-size:var(--text-small);font-weight:600;color:var(--ink)}.field__input,.field__select{min-height:var(--field-height);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-input);background:var(--field-surface, var(--surface-2));color:var(--ink);font-size:var(--text-body)}.field__input::placeholder{color:var(--ink-3)}.field__input:focus-visible,.field__select:focus-visible{border-color:var(--brand)}.field__input[aria-invalid=true]{border-color:var(--danger)}.field__input:disabled,.field__select:disabled{opacity:.6;cursor:not-allowed}.field__hint,.field__error{font-size:var(--text-small);line-height:var(--lh-small)}.field__hint{color:var(--ink-3)}.field__error{color:var(--danger);font-weight:600}.select{position:relative;width:100%}.select__input{appearance:none;padding-right:var(--space-7);cursor:pointer}.select__icon{position:absolute;top:50%;right:var(--space-3);transform:translateY(-50%);color:var(--ink-2);pointer-events:none}.search{position:relative;display:flex;align-items:center;width:100%;min-width:0}.search__icon{position:absolute;left:var(--space-3);color:var(--ink-2);pointer-events:none}.search__input{min-height:var(--field-height);width:100%;padding:var(--space-2) var(--space-6) var(--space-2) var(--space-7);border:1px solid transparent;border-radius:var(--radius-input);background:var(--surface-2);color:var(--ink);font-size:var(--text-body)}.search__input::placeholder{color:var(--ink-3)}.search__input::-webkit-search-cancel-button{display:none}.search__input:focus-visible{border-color:var(--brand)}.search__clear{position:absolute;right:4px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:var(--touch-min)}.switch-row__text{display:flex;flex-direction:column;min-width:0}.switch-row__hint{font-size:var(--text-small);color:var(--ink-2)}.switch{position:relative;flex:none;width:52px;height:32px;padding:0;border:0;border-radius:var(--radius-pill);background:var(--ink-3);cursor:pointer;transition:background var(--duration-fast) var(--ease)}.switch:before{content:"";position:absolute;inset:-6px -8px}.switch:after{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:var(--white);box-shadow:var(--shadow-1);transition:transform var(--duration-fast) var(--ease)}.switch[aria-checked=true]{background:var(--brand)}.switch[aria-checked=true]:after{transform:translate(20px)}.switch:disabled{opacity:.5;cursor:not-allowed}.slider-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.slider-field__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.slider-field__value{font-family:var(--font-display);font-weight:600;color:var(--ink-2)}.slider{width:100%;min-height:var(--touch-min);margin:0;accent-color:var(--brand);cursor:pointer}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-1);color:var(--ink);padding:var(--space-5)}.card--flush{padding:0}.card--interactive{transition:transform var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.card--interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.card__title{margin-bottom:var(--space-3);font-size:var(--text-h3);line-height:var(--lh-h3)}.card__body{display:flex;flex-direction:column;gap:var(--space-4)}.game-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none}.game-art--cover{display:block;overflow:hidden;container-type:inline-size}.game-art__shapes{position:absolute;inset:0;display:block;width:100%;height:100%}.game-art__name{position:absolute;left:6%;bottom:6%;max-width:62%;overflow:hidden;font-family:var(--font-display);font-size:clamp(12px,7cqw,40px);font-weight:700;line-height:1.08;text-align:left;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}@container (max-width: 180px){.game-art__name{display:none}}.game-card{min-width:0;list-style:none}.game-card__link{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);color:var(--ink);text-decoration:none;transition:transform var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}@media(hover:hover){.game-card__link:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}}.game-card__link--static:hover{transform:none;box-shadow:none}.game-card__thumb{position:relative;display:block;flex:none;aspect-ratio:16 / 9;overflow:hidden;background:var(--surface-2)}.game-card__name{display:-webkit-box;padding:var(--space-3) var(--space-3) 0;overflow:hidden;font-family:var(--font-display);font-size:var(--text-body);font-weight:600;line-height:var(--lh-body-px);-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.game-card__creator{padding:2px var(--space-3) 0;overflow:hidden;font-size:var(--text-small);line-height:var(--lh-small);color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap}.game-card__note{align-self:flex-start;margin:var(--space-2) var(--space-3) 0;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--brand-soft);color:var(--brand-strong);font-size:var(--text-caption);font-weight:600;line-height:var(--lh-caption)}.game-card__stats{display:block;margin-top:auto;padding:var(--space-2) var(--space-3) var(--space-3);font-size:var(--text-small);line-height:var(--lh-small);color:var(--ink-2)}.game-card__stats svg,.game-card__dot{display:inline-block;vertical-align:-3px;margin-right:4px}.game-card__dot{width:8px;height:8px;border-radius:50%;background:var(--accent-green)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);min-height:22px;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink-2);font-size:var(--text-caption);line-height:var(--lh-caption);font-weight:600;white-space:nowrap}.badge--brand{background:var(--brand-soft);color:var(--brand-strong)}.badge--success{background:var(--accent-green);color:var(--white)}.badge--featured{background:var(--accent-yellow);color:var(--ink)}.badge--warn{background:var(--warn);color:var(--white)}.badge--danger{background:var(--danger);color:var(--white)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);min-height:32px;padding:4px var(--space-3);border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--text-small);font-weight:600;line-height:var(--lh-small)}button.chip{min-height:var(--touch-min);cursor:pointer}button.chip:hover:not(:disabled){background:var(--surface-2)}.chip[aria-pressed=true]{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong)}.chip--overlay{background:var(--chip-bg);border-color:transparent;color:var(--chip-ink)}button.chip--overlay:hover:not(:disabled){background:var(--chip-bg);filter:brightness(1.2)}.avatar-chip{display:inline-flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;overflow:hidden;border-radius:var(--radius-pill);background:var(--brand);color:var(--white);font-family:var(--font-display);font-size:var(--text-small);font-weight:700;-webkit-user-select:none;user-select:none}.avatar-chip--md{width:40px;height:40px;font-size:var(--text-lead)}.avatar-chip--lg{width:64px;height:64px;font-size:var(--text-h2)}.avatar-chip img{width:100%;height:100%;object-fit:cover}.modal-backdrop,.sheet-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--overlay);animation:fade-in var(--duration-page) var(--ease)}.modal{width:100%;max-width:480px;max-height:calc(100dvh - var(--space-7));overflow:auto;padding:var(--space-5);background:var(--surface);color:var(--ink);border-radius:var(--radius-modal);box-shadow:var(--shadow-3);animation:rise-in var(--duration-page) var(--ease)}.modal__title,.sheet__title{font-size:var(--text-h3);line-height:var(--lh-h3)}.modal__body{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-3)}.modal__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5);position:sticky;bottom:0;margin-inline:calc(var(--space-5) * -1);margin-bottom:calc(var(--space-5) * -1);padding:var(--space-3) var(--space-5) var(--space-5);background:var(--surface);border-top:1px solid var(--line)}.sheet{width:100%;max-width:640px;max-height:85dvh;overflow:auto;padding:var(--space-3) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom));background:var(--surface);color:var(--ink);border-radius:var(--radius-modal) var(--radius-modal) 0 0;box-shadow:var(--shadow-3);animation:rise-in var(--duration-page) var(--ease)}.sheet-backdrop{align-items:flex-end;padding:0}.modal-backdrop--closing,.sheet-backdrop--closing{animation:fade-out var(--duration-page) var(--ease) forwards;pointer-events:none}.modal--closing,.sheet--closing{animation:sink-out var(--duration-page) var(--ease) forwards;pointer-events:none}.sheet__handle{width:40px;height:4px;margin:0 auto var(--space-3);border-radius:var(--radius-pill);background:var(--line)}@media(max-width:767px){.modal-backdrop{align-items:flex-end;padding:0}.modal{max-width:none;max-height:90dvh;padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom));border-radius:var(--radius-modal) var(--radius-modal) 0 0}}.menu-wrap{position:relative;display:inline-flex}.menu-trigger{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:4px var(--space-2) 4px var(--space-3);border:1px solid var(--line);border-radius:var(--radius-button);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}@media(hover:hover){.menu-trigger:hover{background:var(--surface-2)}}.menu-trigger[aria-expanded=true]{border-color:var(--brand);background:var(--brand-soft)}.menu-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.menu-trigger__chevron{flex:none;color:var(--ink-2);transition:transform var(--duration-fast) var(--ease)}.menu-trigger[aria-expanded=true] .menu-trigger__chevron{transform:rotate(180deg)}.menu{position:absolute;top:calc(100% + 4px);z-index:60;min-width:220px;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-1);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-2);animation:menu-in var(--duration-base) var(--ease)}.menu--end{right:0}.menu--start{left:0}.menu--up{top:auto;bottom:calc(100% + 4px)}.menu__header{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-1);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line)}.menu__header-sub{font-size:var(--text-small);color:var(--ink-2)}.menu__item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-min);padding:0 var(--space-3);border:0;border-radius:var(--radius-input);background:transparent;color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer}@media(hover:hover){.menu__item:hover{background:var(--surface-2)}}.menu__item--danger{color:var(--danger)}.tooltip{position:relative;display:inline-flex}.tooltip__bubble{position:absolute;bottom:calc(100% + 6px);left:50%;z-index:70;transform:translate(-50%);padding:4px var(--space-2);border-radius:var(--radius-chip);background:var(--ink);color:var(--surface);font-size:var(--text-caption);line-height:var(--lh-caption);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-2);animation:menu-in var(--duration-fast) var(--ease)}.menu--closing{animation:menu-out var(--duration-base) var(--ease) forwards;pointer-events:none}.tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--line);overflow-x:auto}.tabs__tab{min-height:var(--touch-min);margin-bottom:-1px;padding:var(--space-2) var(--space-3);border:0;border-bottom:3px solid transparent;background:transparent;color:var(--ink-2);font-family:var(--font-display);font-size:var(--text-body);font-weight:600;white-space:nowrap;cursor:pointer}.tabs__tab:hover{color:var(--ink)}.tabs__tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--brand)}.tabs-frame{position:relative;min-width:0;--tabs-fade: var(--surface)}.tabs-frame:before,.tabs-frame:after{content:"";position:absolute;top:0;bottom:0;z-index:1;width:var(--space-6);pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease)}.tabs-frame:before{left:0;background:linear-gradient(90deg,var(--tabs-fade),transparent)}.tabs-frame:after{right:0;background:linear-gradient(270deg,var(--tabs-fade),transparent)}.tabs-frame--start:before,.tabs-frame--end:after{opacity:1}.toasts{position:fixed;z-index:35;left:var(--space-4);right:var(--space-4);top:calc(var(--top-bar-height) + var(--space-3) + env(safe-area-inset-top));display:flex;flex-direction:column;align-items:center;pointer-events:none}.toast{pointer-events:auto;width:100%;max-width:420px;min-height:var(--touch-min);margin:0;padding:var(--space-3) var(--space-4);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius-card);box-shadow:var(--shadow-2);font:inherit;font-size:var(--text-small);line-height:var(--lh-small);text-align:left;cursor:pointer;touch-action:pan-y;animation:toast-in var(--duration-base) var(--ease)}.toast:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.toast--success{border-left-color:var(--accent-green)}.toast--error{border-left-color:var(--danger)}.toast--closing{animation:toast-out var(--duration-base) var(--ease) forwards;pointer-events:none}.toast--dark{background:var(--panel-2);color:var(--panel-ink);border-color:var(--panel-line);box-shadow:var(--shadow-3)}.spinner-host{display:inline-flex}.spinner{display:inline-block;width:20px;height:20px;border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin var(--spin-period) linear infinite}.spinner--lg{width:40px;height:40px;border-width:4px}.spinner__dots{display:none;align-items:center;justify-content:center;gap:3px;width:100%;height:100%}.spinner__dots span{width:4px;height:4px;border-radius:var(--radius-pill);background:var(--brand)}.spinner--lg .spinner__dots{gap:5px}.spinner--lg .spinner__dots span{width:6px;height:6px}.spinner-screen{min-height:100%;display:flex;align-items:center;justify-content:center}.skeleton{display:block;border-radius:var(--radius-input);background:var(--surface-2);animation:skeleton-pulse var(--pulse-period) ease-in-out infinite}.skeleton--text{height:14px;border-radius:var(--radius-chip)}.skeleton--circle{border-radius:50%}.state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center}.state__icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--brand-soft);color:var(--brand)}.state--error .state__icon{background:var(--surface-2);color:var(--danger)}.state__title{font-size:var(--text-h3);line-height:var(--lh-h3);text-wrap:balance}.state__help{max-width:44ch;color:var(--ink-2);text-wrap:balance}.state__help--warn{color:var(--warn)}.state__action{margin-top:var(--space-2)}.logo{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);border-radius:var(--radius-input);color:var(--ink);text-decoration:none}.logo__mark{display:block;width:32px;height:32px}.logo__word{font-family:var(--font-display);font-size:24px;font-weight:var(--weight-display);line-height:1;letter-spacing:-.01em}.skip-link{position:absolute;left:var(--space-2);top:-100px;z-index:200;padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--ink);border-radius:var(--radius-input);box-shadow:var(--shadow-2)}.skip-link:focus{top:var(--space-2)}.shell{min-height:100%}.top-bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:var(--space-3);height:var(--top-bar-height);padding:0 var(--space-4);background:var(--surface);border-bottom:1px solid var(--line)}.top-bar>.btn,.top-bar>.icon-button{align-self:center}.top-bar__logo{flex:none}.top-bar__logo .logo__word{font-size:20px}.top-bar__search{display:none}.top-bar__search-toggle{display:inline-flex}.top-bar__account{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);color:var(--ink-2);font-size:var(--text-small)}.top-bar__create,.top-bar__name{display:none}.top-bar__search-row{position:sticky;top:var(--top-bar-height);z-index:39;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-3);background:var(--surface);border-bottom:1px solid var(--line)}.top-bar__search-field{flex:1;min-width:0}.nav{display:flex}.nav--side{flex-direction:column;gap:4px}.nav__link{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:0 var(--space-3);border-radius:var(--radius-button);color:var(--ink-2);font-family:var(--font-display);font-weight:600;text-decoration:none}@media(hover:hover){.nav__link:hover{color:var(--ink);background:var(--surface-2)}}.nav__link[aria-current=page]{color:var(--brand-strong);background:var(--brand-soft)}.nav__icon{flex:none}.nav--bottom{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));box-sizing:border-box;height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));padding:0 var(--space-1) env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line)}.nav--bottom .nav__link{flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:0;padding:var(--space-1);font-size:var(--text-caption);line-height:var(--lh-caption);text-align:center}.nav--bottom .nav__link[aria-current=page]{background:transparent;color:var(--brand)}.side-nav{display:none}.shell__main{min-width:0}.content{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-4) var(--space-4) calc(var(--bottom-nav-height) + var(--space-5) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--space-4)}@media(min-width:768px){.top-bar{position:fixed;top:0;left:0;right:0;height:var(--top-bar-height-desktop);padding:0 var(--space-6)}.top-bar__logo{width:calc(var(--side-nav-width) - var(--space-6));padding-left:0;box-sizing:border-box}.top-bar__search{display:block;flex:1;max-width:560px;margin:0 auto}.top-bar__search-toggle,.top-bar__search-row{display:none}.top-bar__create,.top-bar__name{display:inline-flex}.top-bar__account{margin-left:0}.nav--bottom{display:none}.side-nav{display:flex;flex-direction:column;position:fixed;top:var(--top-bar-height-desktop);bottom:0;left:0;z-index:30;width:var(--side-nav-width);padding:var(--space-4) var(--space-3);overflow-y:auto;background:var(--surface);border-right:1px solid var(--line)}.shell__main{margin-left:var(--side-nav-width);padding-top:var(--top-bar-height-desktop)}.content{padding:var(--space-6)}}@media(min-width:768px){.toasts{top:auto;right:var(--space-4);bottom:var(--space-4);left:auto;width:min(420px,calc(100vw - 2 * var(--space-4)));align-items:flex-end}.toast{max-width:none}}.account-offline{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.account-offline__icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-pill);background:var(--surface-2);color:var(--ink-2)}.account-offline__text{display:flex;flex-direction:column;line-height:var(--lh-small)}.account-offline__hint{font-size:var(--text-caption);line-height:var(--lh-caption);color:var(--warn)}.cant-reach{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.cant-reach__text{margin:0}.page-header{display:flex;flex-direction:column;gap:var(--space-1)}.page-header__lead{color:var(--ink-2);text-wrap:balance}.gallery{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-6)}.gallery__section{display:flex;flex-direction:column;gap:var(--space-4)}.gallery__row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-4)}.gallery__item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);min-width:0}.gallery__caption{font-size:var(--text-caption);line-height:var(--lh-caption);color:var(--ink-2)}.gallery__field,.gallery__card{width:280px;max-width:100%}.gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4);list-style:none;margin:0;padding:0}.auth-screen{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-5) var(--space-4)}.auth-screen__card{width:100%;max-width:var(--form-max)}.auth-screen__card>h1{margin-bottom:var(--space-4)}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.form-alert{padding:var(--space-3);border:1px solid var(--danger);border-radius:var(--radius-input);background:#d92d2014;color:var(--ink);font-size:var(--text-small)}.muted{color:var(--ink-2);font-size:var(--text-small)}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.link{display:inline;padding:12px 0;margin:-12px 0;overflow-wrap:anywhere;color:var(--brand-strong);font-weight:600;text-decoration:underline;text-underline-offset:3px}.auth-footer{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4)}.gallery__wide{width:100%;max-width:560px}.gallery__scene{width:100%;padding:var(--space-4);border-radius:var(--radius-card);background:var(--panel)}.game-card__skeleton-art{position:absolute;inset:0}.game-card__skeleton-name{width:70%;margin:var(--space-3) var(--space-4) 0}.game-card__skeleton-line{width:40%;margin:var(--space-2) var(--space-4) var(--space-4)}.logo--lg .logo__mark{width:48px;height:48px}.logo--lg .logo__word{font-size:36px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-text);font-size:var(--text-body);font-weight:var(--weight-body);line-height:var(--lh-body-px);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}p{margin:0}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:var(--weight-heading);color:var(--ink)}h1{font-size:var(--text-h1);line-height:var(--lh-h1)}h2{font-size:var(--text-h2);line-height:var(--lh-h2)}h3{font-size:var(--text-h3);line-height:var(--lh-h3)}@media(max-width:767px){h1{font-size:var(--text-h1-phone);line-height:var(--lh-h1-phone)}}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){:root:not([data-reduced-motion=off]) *,:root:not([data-reduced-motion=off]) *:before,:root:not([data-reduced-motion=off]) *:after{transition-duration:0ms!important;animation-duration:0ms!important;scroll-behavior:auto!important}:root:not([data-reduced-motion=off]) .spinner{animation:none!important;border:0!important}:root:not([data-reduced-motion=off]) .spinner__ring{display:none}:root:not([data-reduced-motion=off]) .spinner__dots{display:inline-flex}}:root[data-reduced-motion=on] *,:root[data-reduced-motion=on] *:before,:root[data-reduced-motion=on] *:after{transition-duration:0ms!important;animation-duration:0ms!important;scroll-behavior:auto!important}:root[data-reduced-motion=on] .spinner{animation:none!important;border:0!important}:root[data-reduced-motion=on] .spinner__ring{display:none}:root[data-reduced-motion=on] .spinner__dots{display:inline-flex}
