*{box-sizing:border-box}:root{--bg:#fafafa;--panel:#fff;--text:#111;--muted:#6b6b6b;--line:#e7e7e7;--soft:#f3f3f3}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font-family:Arial,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.shell{width:min(1120px,100% - 40px);margin:0 auto;padding:72px 0 32px}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:42px;display:flex}.eyebrow{letter-spacing:.12em;color:var(--muted);margin:14px 0;font-size:12px;font-weight:700}h1{letter-spacing:-.05em;margin:0;font-size:clamp(36px,6vw,64px);line-height:1}.lead{color:var(--muted);margin:18px 0 0;font-size:15px}.count{color:var(--muted);white-space:nowrap;font-size:13px}.back{color:var(--muted);font-size:13px;text-decoration:none}.back:hover{color:var(--text)}.controls{gap:18px;padding:28px 0 34px;display:grid}.search{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;height:48px;padding:0 15px;display:flex}.search span{color:var(--muted);font-size:22px}.search input{width:100%;color:var(--text);background:0 0;border:0;outline:0}.categories{flex-wrap:wrap;gap:8px;display:flex}.categories button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:8px 14px}.categories button.active,.categories button:hover{background:var(--text);border-color:var(--text);color:#fff}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;min-height:270px;padding:24px;transition:transform .15s,box-shadow .15s;display:flex}.card:hover{transform:translateY(-2px);box-shadow:0 12px 30px #0000000f}.cardTop{justify-content:space-between;align-items:center;display:flex}.icon{border:1px solid var(--line);border-radius:12px;place-items:center;width:48px;height:48px;font-size:24px;display:grid}.featured{letter-spacing:.12em;color:var(--muted);font-size:10px}.card h2{letter-spacing:-.02em;margin:24px 0 8px;font-size:22px}.card p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.tags{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.tags span{background:var(--soft);color:var(--muted);border-radius:6px;padding:5px 9px;font-size:11px}.open{color:var(--text);text-align:left;background:0 0;border:0;justify-content:space-between;width:100%;margin-top:auto;padding-top:22px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.open:hover{text-decoration:underline}.empty{color:var(--muted);text-align:center;padding:48px 0}footer{border-top:1px solid var(--line);color:var(--muted);margin-top:72px;padding-top:20px;font-size:11px}.gamePanel{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;align-items:center;margin-top:34px;padding:28px;display:flex}.gameControls{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:10px;width:100%;padding-bottom:22px;display:flex}.gameControls label{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}.gameControls select,.gameControls button{border:1px solid var(--line);background:var(--panel);min-height:38px;color:var(--text);border-radius:8px;padding:7px 10px;font-size:13px}.gameControls button{font-weight:700}.gameControls button:hover:not(:disabled){background:var(--soft)}.gameControls button:disabled{opacity:.4;cursor:default}.status{min-height:28px;margin:22px 0 12px;font-size:16px;font-weight:700}.board{grid-template-columns:repeat(3,100px);gap:8px;display:grid}.cell{border:1px solid var(--line);background:var(--panel);width:100px;height:100px;color:var(--text);border-radius:10px;place-items:center;font-size:42px;font-weight:700;display:grid}.cell:hover:not(:disabled){background:var(--soft)}.cell.filled{cursor:default}.cell.win{background:#e8ffea}@media (max-width:700px){.shell{width:min(100% - 24px,560px);padding-top:40px}.header{flex-direction:column;align-items:flex-start;padding-bottom:30px}.grid{grid-template-columns:1fr}.count{display:none}.gamePanel{padding:18px 12px}.board{grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,330px)}.cell{aspect-ratio:1;width:auto;height:auto}.gameControls{align-items:stretch}}
