/* Game pages (/games/...). These pages also load /app.css, so colors, fonts, buttons, tags and the
   staff drawings come from the game itself. This file only adds the page layout. */

/* header */
.gp-top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.gp-top .wrap{display:flex;align-items:center;gap:22px;height:64px}
.gp-top .brand img{display:block;flex:none}
.gp-nav{margin-left:auto;display:flex;gap:22px}
.gp-nav a{color:var(--muted);text-decoration:none;font-weight:600}
.gp-nav a:hover{color:var(--ink)}
@media (max-width:760px){.gp-nav{display:none}.gp-play{margin-left:auto}}
@media (max-width:420px){.gp-play{padding:5px 12px}}

/* page body: one readable column */
.gp-body{max-width:800px}
.gp-crumbs{display:flex;flex-wrap:wrap;gap:8px;padding-top:22px;font-size:.9rem;color:var(--muted)}
.gp-body .gp-crumbs a{color:var(--muted)}
.gp-body section{padding:40px 0;border-top:1px solid var(--line)}
.gp-body h2{font-size:clamp(1.6rem,3.6vw,2.2rem);font-weight:800;margin-bottom:16px}
.gp-body h3{font-size:1.2rem;margin:24px 0 8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gp-body p{margin:0 0 14px}
.gp-body ul,.gp-body ol{margin:0 0 14px;padding-left:1.3em}
.gp-body li{margin:6px 0}
.gp-body a:not(.btn){color:var(--accent)}
.gp-body .fine{margin-top:8px}

/* opening section */
.gp-hero{padding:34px 0 44px}
.gp-kicker{font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;margin-bottom:12px}
.gp-hero h1{font-size:clamp(2.3rem,6vw,3.7rem);font-weight:800}
.gp-hero .lede{font-size:1.18rem;margin:18px 0 26px;max-width:34em}
.gp-hero .row{margin-bottom:16px}

/* pictures drawn by the game's own code */
.gp-fig{margin:20px 0;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 16px 12px}
.gp-fig svg{display:block;width:100%;max-width:560px;height:auto;margin:0 auto}
.gp-fig .lp-mini{max-width:260px}
.gp-fig-sm svg{max-width:340px}
.gp-fig .fifths{max-width:420px}
.gp-fig figcaption{font-size:.9rem;color:var(--muted);margin-top:8px;text-align:center}
.gp-figs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gp-figs .gp-fig{margin:0}
@media (max-width:560px){.gp-figs{grid-template-columns:1fr}}

/* level lists */
.gp-track h3{margin-top:28px}
.gp-track:first-child h3{margin-top:4px}
.gp-body .gp-lv{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.gp-body .gp-lv li{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:2px}
ol.gp-lv{counter-reset:lv}
ol.gp-lv li{counter-increment:lv;grid-template-columns:auto 1fr;column-gap:12px}
ol.gp-lv li::before{content:counter(lv);grid-row:1/3;width:28px;height:28px;border-radius:50%;background:var(--surface2);display:flex;align-items:center;justify-content:center;font:800 .9rem "Bricolage Grotesque",sans-serif}
.gp-lv b{font:800 1rem "Bricolage Grotesque",sans-serif;line-height:1.25}
.gp-lv span{font-size:.9rem;color:var(--muted);line-height:1.35}

/* free and Premium */
.gp-plans{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.gp-plan{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:22px}
.gp-plan h3{margin:0 0 10px}
.gp-plan h3 small{font:600 .9rem Figtree,sans-serif;opacity:.8}
.gp-plan p:last-child{margin-bottom:0}
.gp-plan.pro{background:var(--pro-bg);border-color:var(--pro-bg);color:var(--pro-ink)}
.gp-body .gp-plan.pro a{color:var(--gold)}
@media (max-width:640px){.gp-plans{grid-template-columns:1fr}}

/* tables */
.gp-table{margin-top:10px}
.gp-table table{min-width:560px;font-size:.95rem}
.gp-table td:nth-child(2){white-space:nowrap}

/* questions */
.gp-body .faq{margin-top:0}

/* other games */
.gp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gp-body a.gp-card{display:grid;gap:4px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);text-decoration:none}
.gp-card:hover{border-color:var(--accent)}
.gp-card b{font:800 1.08rem "Bricolage Grotesque",sans-serif}
.gp-card span{font-size:.92rem;color:var(--muted);line-height:1.4}
.gp-body + footer{margin-top:24px}
