:root{--bg:#f6f7f9;--card:#fff;--ink:#1c1e21;--muted:#6b7280;--line:#e5e7eb;--accent:#2f6fed;--accent2:#11324f}
*{box-sizing:border-box}
body{margin:0;font:16px/1.6 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1000px;margin:0 auto;padding:0 18px}
header.top{background:var(--accent2);color:#fff;border-bottom:3px solid var(--accent)}
header.top .wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:14px 18px}
.logo{color:#fff;font-weight:800;font-size:24px;line-height:1.1;display:flex;flex-direction:column}
.logo span{font-weight:400;font-size:12px;opacity:.8}
.search{margin-left:auto;display:flex;flex:1;max-width:460px;min-width:220px}
.search input{flex:1;padding:9px 12px;border:1px solid #0d2740;border-radius:6px 0 0 6px;font-size:15px;outline:none}
.search button{padding:9px 16px;border:0;background:var(--accent);color:#fff;border-radius:0 6px 6px 0;cursor:pointer;font-size:15px}
main.wrap{padding:24px 18px 40px}
h1{font-size:30px;margin:.2em 0 .4em;line-height:1.2}
h2{font-size:20px;margin:1.4em 0 .5em;border-bottom:1px solid var(--line);padding-bottom:4px}
.lead{color:var(--muted);font-size:17px;margin:.2em 0 1.2em}
.bc{color:var(--muted);font-size:13px;margin-bottom:8px}
.muted{color:var(--muted)}
.y{color:var(--muted);font-weight:400}
/* griglia card */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px;color:inherit}
.card:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.card h3{margin:0 0 6px;font-size:16px;color:var(--accent2)}
.card p{margin:0;font-size:13px;color:var(--muted)}
/* tag cloud */
.tags{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tags a{display:inline-block;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:14px}
.tags em{color:var(--muted);font-style:normal;font-size:12px}
/* liste */
ul.list{list-style:none;padding:0;columns:2;column-gap:30px}
ul.list li{margin:0 0 7px;break-inside:avoid}
@media(max-width:640px){ul.list{columns:1}}
/* A-Z */
.az{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:5px;margin:0 0 14px}
.az a{display:block;padding:5px 10px;background:var(--card);border:1px solid var(--line);border-radius:6px;font-weight:600}
.az .on a{background:var(--accent);color:#fff;border-color:var(--accent)}
/* pagina gioco */
.game{position:relative}
.infobox{float:right;width:300px;margin:0 0 18px 22px;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.infobox h2{margin:0;padding:10px 14px;font-size:15px;background:var(--accent2);color:#fff;border:0}
.infobox table{width:100%;border-collapse:collapse;font-size:14px}
.infobox th{text-align:left;vertical-align:top;width:35%;padding:8px 10px 8px 14px;color:var(--muted);font-weight:600}
.infobox td{padding:8px 14px 8px 0;border-bottom:1px solid var(--line)}
.infobox tr:last-child td,.infobox tr:last-child th{border:0}
.infobox .note{color:var(--muted);font-size:12px}
.desc{font-size:17px;max-width:620px}
@media(max-width:720px){.infobox{float:none;width:auto;margin:0 0 18px}.desc{max-width:none}}
/* pager */
.pager{display:flex;align-items:center;gap:16px;margin:24px 0;color:var(--muted)}
.pager a{font-weight:600}
/* footer */
footer.bottom{border-top:1px solid var(--line);background:var(--card);margin-top:30px}
footer.bottom .wrap{padding:18px;color:var(--muted);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
footer.bottom .attr{font-weight:600}
