:root{--bg:#0f172a;--card:#192134;--card-2:#1f2a40;--muted-bg:#0f1f2b;--fg:#f8fafc;--muted:#a3b1c6;--border:#ffffff17;--primary:#16a34a;--primary-soft:#16a34a29;--accent:#f59e0b;--accent-soft:#f59e0b29;--danger:#f87171;--radius:14px;--ring:0 0 0 3px #f59e0b8c;color:var(--fg);background:radial-gradient(1200px 600px at 10% -10%, #14352a 0%, transparent 60%), var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{box-shadow:var(--ring);border-radius:8px;outline:none}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.shell{gap:20px;max-width:1240px;margin:0 auto;padding:32px 20px 48px;display:grid}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.nav{border:1px solid var(--border);background:#ffffff0a;border-radius:999px;gap:4px;padding:4px;display:flex}.nav a{color:var(--muted);border-radius:999px;padding:6px 14px;font-weight:600;text-decoration:none}.nav a[aria-current=page]{color:var(--fg);background:var(--card-2)}.page-head h1{letter-spacing:-.03em;margin:0 0 8px;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800}.page-head .lead{max-width:40rem;color:var(--muted);margin:0}.brand{border-radius:10px;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.logo-mark{flex:none;display:block}.wordmark{letter-spacing:-.01em;white-space:nowrap;font-size:1.15rem;font-weight:600}.wordmark b{background:linear-gradient(90deg, #22c55e, var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800}.hero{border:1px solid var(--border);background:radial-gradient(520px 320px at 92% 10%,#f59e0b2e,#0000 70%),radial-gradient(560px 360px at 0 100%,#22c55e33,#0000 70%),linear-gradient(160deg,#1b2740 0%,#131c2e 100%);border-radius:24px;grid-template-columns:minmax(0,1fr) minmax(220px,300px);align-items:center;gap:24px;padding:clamp(28px,5vw,56px);display:grid;position:relative;overflow:hidden}.eyebrow{background:var(--primary-soft);color:#86efac;letter-spacing:.04em;text-transform:uppercase;border:1px solid #22c55e73;border-radius:999px;margin:0 0 14px;padding:4px 12px;font-size:.8rem;font-weight:600;display:inline-block}.hero h1{letter-spacing:-.03em;text-wrap:balance;margin:0 0 14px;font-size:clamp(2rem,5vw,3.4rem);font-weight:800;line-height:1.08}.grad{background:linear-gradient(90deg, #4ade80, var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text}.lead{color:#cbd5e1;max-width:54ch;margin:0;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.55}.hero-stats{color:var(--muted);flex-wrap:wrap;gap:10px 28px;margin:26px 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.hero-stats strong{color:var(--fg);font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800;line-height:1.2;display:block}.hero-art{width:100%;height:auto}h2{text-wrap:balance;margin:0 0 12px;font-size:1.15rem;line-height:1.35}.footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding-top:12px;display:flex}.small-brand .wordmark{color:var(--fg);font-size:.95rem}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--danger)}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.search{position:relative}.search-icon{width:20px;height:20px;color:var(--muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search input{border:1px solid var(--border);background:var(--muted-bg);border-radius:12px;width:100%;min-height:52px;padding:12px 16px 12px 44px;font-size:1rem}.search input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.suggest{z-index:10;background:var(--card-2);border:1px solid var(--border);border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 18px 40px #00000073}.suggest li{cursor:pointer;border-radius:8px;grid-template-columns:1fr auto;column-gap:12px;padding:10px 12px;display:grid}.suggest li .muted{grid-column:1;font-size:.85rem}.suggest li .meta{color:var(--muted);white-space:nowrap;grid-area:1/2/span 2;align-self:center;font-size:.85rem}.suggest li.active{background:var(--primary-soft)}.suggest li.none{cursor:default}.chips{flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.chip{border:1px solid var(--border);background:var(--muted-bg);border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:6px 8px 6px 14px;display:inline-flex}.pick-chip{background:var(--primary-soft);border-color:#16a34a80}.pick-chip button{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.pick-chip button:hover{color:var(--fg);background:#ffffff14}.no-chip{background:#f871711f;border-color:#f8717173}.no-chip button{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.no-chip button:hover{color:var(--fg);background:#ffffff14}.chip.ghost{padding:6px 14px;transition:border-color .15s,background .15s}.chip.ghost:hover{border-color:var(--accent);background:var(--accent-soft)}.hint{color:var(--accent);cursor:help;border:1px dashed #f59e0b99;border-radius:999px;padding:0 8px;font-size:.75rem}.starters p{margin:14px 0 0}.link{color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:8px 4px;text-decoration:underline}.workspace{gap:20px;display:grid}@media (width>=960px){.workspace{grid-template-columns:300px 1fr;align-items:start}.workspace .filters{max-height:calc(100vh - 32px);position:sticky;top:16px;overflow-y:auto}.workspace .filter-row{grid-template-columns:1fr;gap:6px}.workspace .filter-label{padding-top:0}}.filters-head{justify-content:space-between;align-items:baseline;display:flex}.filter-row{border-top:1px solid var(--border);grid-template-columns:110px 1fr;gap:12px;padding:8px 0;display:grid}.filter-label{color:var(--muted);padding-top:8px;font-size:.9rem}.toggles{flex-wrap:wrap;gap:6px;display:flex}.toggle{border:1px solid var(--border);background:0 0;border-radius:999px;min-width:44px;min-height:36px;padding:4px 12px;font-size:.9rem;transition:background .15s,border-color .15s}.toggle:hover{border-color:#ffffff4d}.toggle.on{background:var(--accent);border-color:var(--accent);color:#111;font-weight:600}.results-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.results-head h2{margin:0;font-size:1.35rem}.count{color:var(--muted);margin-left:6px;font-size:1rem;font-weight:500}.tabs{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:4px;display:inline-flex}.tabs button{min-height:38px;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:6px 14px}.tabs button.on{background:var(--primary);color:#fff;font-weight:600}.empty{text-align:center;background:var(--card);border-radius:var(--radius);border:1px dashed var(--border);padding:28px}.cards{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.card{cursor:pointer;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:80px 1fr;gap:16px;padding:16px 18px;transition:border-color .2s;display:grid}.card:hover{border-color:#fff3}.card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cover-wrap{align-self:start;position:relative}.card-body{min-width:0}.card-main{grid-template-columns:1fr minmax(150px,200px);align-items:start;gap:8px 16px;display:grid}.place{border:2px solid var(--card);background:var(--muted-bg);width:26px;height:26px;color:var(--muted);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid;position:absolute;top:-8px;left:-8px}.place.rank{border-radius:999px;width:auto;min-width:26px;height:22px;padding:0 6px;font-size:.72rem}.card-title h3{margin:0;font-size:1.1rem;line-height:1.3}.card-title a,.card-name{text-decoration:none}.card-name{text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.card-title a:hover,.card-name:hover{text-decoration:underline}.game-dialog-backdrop{z-index:40;background:#060a12b8;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.game-dialog{border:1px solid var(--border);background:var(--card);width:min(560px,100vw - 24px);max-height:min(86vh,760px);color:var(--fg);border-radius:16px;margin:0;padding:22px 22px 16px;position:relative;overflow:auto}.dialog-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.dialog-close:hover{color:var(--fg);background:#ffffff14}.dialog-head{grid-template-columns:72px 1fr;align-items:start;gap:14px;padding-right:28px;display:grid}.dialog-head h2{margin:0;font-size:1.25rem;line-height:1.3}.dialog-about{margin:16px 0 0}.game-dialog h3{margin:16px 0 6px;font-size:.95rem}.point-list{margin:0;padding:0;list-style:none}.point-list li{margin:4px 0;padding-left:1.15em;position:relative}.point-list.pros li:before,.point-list.cons li:before{font-weight:700;position:absolute;left:0}.point-list.pros li:before{content:"+";color:var(--accent)}.point-list.cons li:before{content:"–";color:var(--danger)}.dialog-links{flex-wrap:wrap;gap:8px 16px;margin:18px 0 0;display:flex}.dialog-links a{color:var(--fg);align-items:center;gap:6px;display:inline-flex}.card-title p{margin:2px 0 0}.scores{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 14px;margin:6px 0 0;font-size:.92rem;font-weight:650;display:flex}.score{color:var(--fg);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.source-mark{flex:none;width:16px;height:16px;display:block}.score-num{align-items:baseline;gap:6px;display:inline-flex}.score-rank{color:var(--muted);font-weight:650}.card-title a.score:hover{text-decoration:none}.card-title a.score:hover .score-num{text-underline-offset:3px;text-decoration:underline}.thumb{object-fit:contain;background:var(--muted-bg);border-radius:8px;width:80px;height:100px;display:block}.match{grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;display:grid}.match strong{font-variant-numeric:tabular-nums;font-size:1.15rem}.bar{background:var(--muted-bg);border-radius:999px;height:8px;overflow:hidden}.bar span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--accent));height:100%;display:block}.cover{color:var(--muted);grid-column:1/-1;font-size:.8rem}.cover.full{color:var(--accent);font-weight:600}.facts{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.facts li{background:var(--muted-bg);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:.8rem}.facts li.fact-icon{align-items:center;gap:6px;display:inline-flex}.facts svg{color:var(--muted);flex:none}.complexity-icon .on{fill:var(--accent)}.complexity-icon .off{fill:#ffffff2e}.tags{flex-wrap:wrap;gap:4px 6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:.78rem}.tags li.setting{border-style:dashed}.card-actions{flex-wrap:wrap;gap:4px 16px;margin-top:10px;display:flex}.add{margin-top:0;font-size:.9rem}.add.no{color:var(--danger)}.dislike-label{color:var(--danger);padding:6px 0;font-size:.85rem;font-weight:650}.more{border:1px solid var(--border);background:var(--card);border-radius:12px;justify-self:center;width:100%;min-height:48px;margin-top:12px}.more:hover{border-color:var(--accent)}.graph{background:radial-gradient(420px 160px at 0% 0%, #22c55e14, transparent 70%), var(--card);border:1px solid var(--border);border-radius:var(--radius);margin:12px 0 0;padding:10px}.graph>svg{width:100%;height:auto;display:block}.board-frame{fill:none;stroke:#f59e0b52;stroke-width:1px}.board-corner{fill:none;stroke:#f59e0b;stroke-width:1.6px;stroke-linecap:square}.zone-line{stroke:#f59e0b57;stroke-width:1px;pointer-events:none}.zone-label{fill:#d6deea;pointer-events:none;font-size:12px}.zone-label.time{fill:#c5d0e0;font-size:12px}.edge{pointer-events:none;transition:opacity .15s}.edge .track{stroke:#060a12e6;stroke-width:5px;stroke-linecap:round}.edge .route{stroke:#f59e0bb8;stroke-width:1.6px;stroke-linecap:round}.edge.on .route{stroke:#fbbf24;stroke-width:2.4px}.edge.dim{opacity:.18}.node{cursor:pointer;transition:opacity .15s}.node .token{fill:#172033;stroke:#f59e0bb3;stroke-width:1.3px;stroke-linejoin:round}.node .pip{fill:#f59e0b;stroke:none}.node .meeple{fill:#22c55e}.node .stand{fill:#22c55e47}.node .focus-ring{fill:none;stroke:#fbbf24;stroke-width:1.2px;stroke-dasharray:2.5 2.5;opacity:0;pointer-events:none}.node.pick{cursor:default}.node.selected .token{stroke:#fde68a;stroke-width:2px}.node.selected .focus-ring,.node:focus-visible .focus-ring{opacity:1}.node text{fill:var(--fg);text-anchor:middle;paint-order:stroke;stroke:#0d1422;stroke-width:4px;pointer-events:none;font-size:11px}.node.pick text{font-size:12px;font-weight:700}.node.dim{opacity:.22}.graph figcaption{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 8px 2px;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-item svg{flex:none;width:16px;height:16px}.legend-line{background:#f59e0b;border-radius:2px;width:22px;height:3px;display:inline-block;box-shadow:0 0 0 2px #060a128c}@media (width<=760px){.hero{grid-template-columns:1fr}.hero-art{display:none}}@media (width<=640px){.shell{padding:20px 14px 40px}.hero{border-radius:18px}.hero-stats strong{font-size:1.25rem}.panel{padding:16px}.filter-row{grid-template-columns:1fr;gap:6px}.filter-label{padding-top:0}.card{grid-template-columns:64px 1fr;gap:0 12px;padding:14px}.thumb{width:64px;height:80px}.card-body{display:contents}.card-main{grid-template-columns:1fr}.card-main,.facts,.tags,.card-actions{min-width:0}.facts,.tags,.card-actions,.add{grid-column:1/-1}.card-actions{flex-direction:column;align-items:flex-start;gap:2px}.add{white-space:normal;text-align:left;justify-self:start;max-width:100%}}
