:root{--accent: #4f46e5;--accent-hover: #4338ca;--accent-press: #3730a3;--accent-soft: #eef2ff;--accent-ring: rgba(79, 70, 229, .35);--emerald: #059669;--emerald-soft: #ecfdf5;--amber: #b45309;--amber-soft: #fffbeb;--sky: #0284c7;--sky-soft: #eff6ff;--bg: #f8fafc;--surface: #ffffff;--surface-2: #f1f5f9;--surface-3: #f8fafc;--ink: #0f172a;--ink-2: #334155;--ink-3: #64748b;--ink-4: #94a3b8;--line: #e2e8f0;--line-strong: #cbd5e1;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .07), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px rgba(15, 23, 42, .07), 0 2px 4px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 28px rgba(15, 23, 42, .1), 0 4px 10px rgba(15, 23, 42, .05);--shadow-accent: 0 6px 16px rgba(79, 70, 229, .25);font-family:Hanken Grotesk,system-ui,sans-serif;color:var(--ink);line-height:1.5;font-feature-settings:"cv01","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;background:var(--bg);color:var(--ink)}#root{width:100%}h1,h2,h3{font-family:inherit;font-weight:700;letter-spacing:-.02em;margin:0}button{font-family:inherit;cursor:pointer}a{color:var(--accent);font-weight:600;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{position:relative;max-width:1240px;margin:0 auto;padding:1.75rem 1.5rem 5rem;overflow-x:clip}.bg-decor{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5}.blob--1{width:520px;height:520px;background:radial-gradient(circle,rgba(79,70,229,.1),transparent 70%);top:-180px;left:-120px}.blob--2{width:460px;height:460px;background:radial-gradient(circle,rgba(2,132,199,.08),transparent 70%);top:30%;right:-160px}.blob--3{width:420px;height:420px;background:radial-gradient(circle,rgba(5,150,105,.06),transparent 70%);bottom:-120px;left:20%}.masthead{position:relative;z-index:1;text-align:center;padding:1.5rem 0 2.5rem;animation:rise-in .5s cubic-bezier(.22,1,.36,1) both}.masthead__badge{display:inline-grid;place-items:center;width:60px;height:60px;font-size:1.8rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1rem}.masthead__title{font-size:clamp(2rem,5vw,3.25rem);line-height:1.05;font-weight:800;letter-spacing:-.035em;color:var(--ink)}.masthead__tagline{font-weight:500;color:var(--ink-3);font-size:1.05rem;margin:.65rem auto 0;max-width:42ch}.layout{position:relative;z-index:1;display:grid;grid-template-columns:360px 1fr;gap:1.75rem;align-items:start}@media (max-width: 880px){.layout{grid-template-columns:1fr}}.panel{position:sticky;top:1.25rem;transition:opacity .3s ease,filter .3s ease,transform .3s ease}.panel--quiet{opacity:.5;filter:grayscale(.4);transform:scale(.99);pointer-events:none}@media (max-width: 880px){.panel{position:static}}.panel__inner{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem 1.4rem 1.6rem;animation:rise-in .5s cubic-bezier(.22,1,.36,1) .06s both;max-height:calc(100vh - 2.5rem);overflow-y:auto}@media (max-width: 880px){.panel__inner{max-height:none;overflow-y:visible}}.panel__heading{display:flex;align-items:center;gap:.55rem;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;padding-bottom:1rem;margin-bottom:1.25rem;border-bottom:1px solid var(--line)}.panel__heading-icon{font-size:1.05rem}.field{margin-bottom:1.4rem}.field.sub-field{margin:.9rem 0 0;padding-left:.9rem;border-left:2px solid var(--accent-soft)}.field__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.field__label{font-weight:600;font-size:.9rem;color:var(--ink-2)}.field__value{font-weight:600;font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-soft);border:1px solid transparent;border-radius:var(--radius-sm);padding:.12rem .5rem}.field__hint{font-size:.75rem;font-weight:500;color:var(--ink-4)}.toggle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.pill-toggle{font-weight:600;font-size:.9rem;font-variant-numeric:tabular-nums;padding:.5rem 0;background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease}.pill-toggle:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.pill-toggle:active:not(:disabled){transform:scale(.96)}.pill-toggle.is-on{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-xs)}.pill-toggle:disabled{opacity:.5;cursor:not-allowed}.switch{display:flex;align-items:center;gap:.65rem;width:100%;background:transparent;border:none;padding:0;text-align:left}.switch__track{flex:0 0 auto;width:42px;height:24px;background:var(--line-strong);border:none;border-radius:var(--radius-pill);position:relative;transition:background .2s ease}.switch__knob{position:absolute;top:50%;left:3px;transform:translateY(-50%);width:18px;height:18px;background:#fff;border:none;border-radius:50%;box-shadow:var(--shadow-sm);transition:left .22s cubic-bezier(.22,1,.36,1)}.switch.is-on .switch__track{background:var(--accent)}.switch.is-on .switch__knob{left:21px}.switch__label{font-weight:500;font-size:.9rem;color:var(--ink-2)}.switch:disabled{opacity:.5;cursor:not-allowed}.panel__actions{display:flex;flex-direction:column;gap:.65rem;margin-top:1.5rem;padding-top:1.35rem;border-top:1px solid var(--line)}.rng{position:relative;height:24px;display:flex;align-items:center}.rng__rail{position:absolute;left:0;right:0;height:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill)}.rng__fill{position:absolute;top:-1px;bottom:-1px;background:var(--accent);border-radius:var(--radius-pill)}.rng--single .rng__fill{background:var(--accent)}.rng__input{position:absolute;left:0;right:0;width:100%;margin:0;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:none}.rng__input--lo,.rng__input--hi{height:0}.rng__input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:var(--shadow-sm);cursor:grab;transition:transform .12s ease,box-shadow .15s ease}.rng__input::-webkit-slider-thumb:hover{transform:scale(1.12);box-shadow:0 0 0 4px var(--accent-ring)}.rng__input::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.05)}.rng__input::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:var(--shadow-sm);cursor:grab}.rng__input::-moz-range-track{background:transparent}.rng--disabled{opacity:.5}.multiselect__field{position:relative}.multiselect__input{width:100%;font-family:inherit;font-weight:500;font-size:.9rem;color:var(--ink);padding:.6rem .85rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);transition:border-color .15s ease,box-shadow .15s ease}.multiselect__input::placeholder{color:var(--ink-4);font-weight:400}.multiselect__input:hover:not(:disabled){border-color:var(--line-strong)}.multiselect__input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.multiselect__input:disabled{cursor:not-allowed;background:var(--surface-2)}.multiselect__menu{list-style:none;margin:.3rem 0 0;padding:.25rem;position:absolute;z-index:30;top:100%;left:0;right:0;max-height:240px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.multiselect__option{display:block;width:100%;text-align:left;font-family:inherit;font-size:.88rem;color:var(--ink);background:transparent;border:none;border-radius:var(--radius-xs, 4px);padding:.42rem .6rem;cursor:pointer;transition:background .1s ease,color .1s ease}.multiselect__option:hover,.multiselect__option:focus-visible{background:var(--accent-soft);color:var(--accent);outline:none}.multiselect__chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.select-chip{display:inline-flex;align-items:center;gap:.3rem;font-weight:500;font-size:.8rem;padding:.2rem .3rem .2rem .6rem;background:var(--accent-soft);color:var(--accent);border:1px solid transparent;border-radius:var(--radius-pill)}.select-chip__x{display:grid;place-items:center;width:16px;height:16px;font-size:.9rem;line-height:1;background:transparent;color:var(--accent);border:none;border-radius:50%;transition:background .15s ease,color .15s ease}.select-chip__x:hover{background:var(--accent);color:#fff}.multiselect--disabled{opacity:.5}.btn{font-family:inherit;font-weight:600;font-size:.9rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.6rem 1rem;background:var(--surface);color:var(--ink-2);box-shadow:var(--shadow-xs);transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn--primary:active:not(:disabled){background:var(--accent-press)}.btn--big{font-size:1rem;padding:.8rem 1.2rem;border-radius:var(--radius)}.btn--ghost{background:var(--surface)}.btn--pop{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--pop:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.results{min-height:50vh}.results__readout{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem;animation:rise-in .4s ease both}.results__count{font-weight:700;font-size:1.05rem;letter-spacing:-.01em;color:var(--ink)}.results__note{font-weight:500;font-size:.8rem;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:.15rem .65rem}.results__more{display:flex;justify-content:center;margin:1.5rem 0 .5rem}.results__more .btn{padding:.65rem 1.4rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.4rem}.empty{text-align:center;padding:3.5rem 1rem;font-weight:500;color:var(--ink-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.empty__face{font-size:2.75rem;margin-bottom:.5rem}.empty p{font-size:1.05rem;margin:0 0 1rem;color:var(--ink-2)}.empty .btn{margin-top:.5rem}.game-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s ease,border-color .2s ease;animation:rise-in .45s cubic-bezier(.22,1,.36,1) both}.game-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--line-strong)}.game-card--shared{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-sm)}.game-card--shared:hover{box-shadow:0 0 0 1px var(--accent),var(--shadow-lg)}.game-card__media{position:relative;aspect-ratio:16 / 10;background:var(--surface-2);border-bottom:1px solid var(--line)}.game-card__cover{width:100%;height:100%;object-fit:cover;display:block}.game-card__cover--fallback{display:grid;place-items:center;font-size:2.75rem;color:var(--ink-4)}.rank-badge{position:absolute;top:10px;left:10px;font-weight:600;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius-pill);padding:.15rem .6rem;box-shadow:var(--shadow-xs)}.rank-badge__hash{color:var(--ink-4);margin-right:1px}.award-badge{position:absolute;top:10px;right:10px;font-weight:600;font-size:.78rem;color:var(--amber);background:#fff;border:1px solid var(--line);border-radius:var(--radius-pill);padding:.15rem .55rem;box-shadow:var(--shadow-xs)}.game-card__body{display:flex;flex-direction:column;gap:.65rem;padding:1rem 1.05rem 1.1rem}.game-card__cats{display:flex;flex-wrap:wrap;gap:.35rem}.cat-tag{font-family:inherit;font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.1rem .5rem}.cat-tag--click{cursor:pointer;transition:color .14s ease,background .14s ease,border-color .14s ease}.cat-tag--click:hover{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.cat-tag--shared{color:var(--accent);background:var(--accent-soft);border-color:transparent}.game-card__title{font-size:1.15rem;font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--ink)}.game-card__year{font-weight:500;color:var(--ink-4);font-size:.9rem}.game-card__designers{margin:.1rem 0 0;font-size:.8rem;font-style:italic;color:var(--ink-3);line-height:1.3}.match-line{margin:0;font-weight:500;font-size:.82rem;color:var(--ink-3)}.match-line__pill{font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);padding:.1rem .55rem}.stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}.stat{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.4rem .2rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-3)}.stat--rating{background:var(--accent-soft);border-color:transparent}.stat--weight{background:var(--amber-soft);border-color:transparent}.stat--players{background:var(--emerald-soft);border-color:transparent}.stat--time{background:var(--sky-soft);border-color:transparent}.stat__label{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.stat__value{font-weight:700;font-size:.92rem;font-variant-numeric:tabular-nums;line-height:1.2;color:var(--ink)}.stat__unit{font-size:.62rem;font-weight:500;color:var(--ink-3)}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{font-family:inherit;font-weight:500;font-size:.72rem;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.12rem .5rem}.chip--click{cursor:pointer;transition:color .14s ease,background .14s ease,border-color .14s ease}.chip--click:hover{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.chip--toggle{cursor:pointer;color:var(--accent);background:transparent;border-style:dashed;border-color:var(--accent-soft);font-weight:600}.chip--toggle:hover{background:var(--accent-soft)}.chip--more{color:var(--ink-4);background:transparent;border-style:dashed}.awards{display:flex;flex-direction:column;gap:.5rem}.awards__toggle{font-family:inherit;font-size:.78rem;font-weight:600;align-self:flex-start;color:var(--ink-2);background:var(--amber-soft);border:1px solid transparent;border-radius:var(--radius-pill);padding:.22rem .7rem;cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease}.awards__toggle:hover{background:var(--surface-2);border-color:var(--line-strong)}.awards__list{list-style:none;margin:0;padding:.55rem .75rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:.78rem;line-height:1.4;color:var(--ink-2);max-height:240px;overflow-y:auto}.awards__item{padding:.18rem 0;border-bottom:1px dashed var(--line)}.awards__item:last-child{border-bottom:none}.chip--shared{color:var(--accent);background:var(--accent-soft);border-color:transparent}.game-card__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}.game-card__actions .btn{flex:1 1 auto;font-size:.8rem;padding:.5rem .7rem}.similar-banner{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.3rem 1.4rem 1.4rem;margin-bottom:1.4rem;animation:rise-in .45s cubic-bezier(.22,1,.36,1) both}.similar-banner__back{margin-bottom:.85rem}.similar-banner__title{font-size:1.45rem;font-weight:700;line-height:1.15;letter-spacing:-.02em}.similar-banner__seed{color:var(--accent)}.similar-banner__sub{font-weight:500;color:var(--ink-3);margin:.3rem 0 .9rem}.similar-banner__tags{display:flex;flex-wrap:wrap;gap:.4rem}.mode-toggle{display:inline-flex;margin:0 0 .9rem;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--surface-2)}.mode-toggle__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;padding:.4rem .95rem;font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .12s ease,color .12s ease}.mode-toggle__btn:hover{background:var(--accent-soft);color:var(--accent)}.mode-toggle__btn--active,.mode-toggle__btn--active:hover{background:var(--accent);color:#fff}.similar-banner__loading,.similar-banner__error{margin:0 0 .6rem;font-size:.85rem}.similar-banner__loading{color:var(--ink-3)}.similar-banner__error{color:#c2473a}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
