/* Goal pages (/practise/*.html) — generated by scripts/build-goal-pages.mjs.
   Reuses styles-v3.css tokens and classes; this file is only what those
   pages need that the landing page does not. */
.gp .gp-hero { padding-top: 96px; }
.gp .v3-band { padding-block: 64px; }
.gp .gp-legend { margin-top: 18px; font-size: .78rem; color: var(--v3-con-ink-4); }
.gp .gp-legend em { font-style: normal; color: var(--v3-con-gold); font-weight: 700; }
.gp .v4-mk { font-family: 'JetBrains Mono', ui-monospace, monospace; font-weight: 700; font-size: .78em; margin-left: .25em; color: var(--v3-ink-4, #7C8899); letter-spacing: .06em; }
.gp .v3-console .v4-mk { color: var(--v3-con-ink-4); }
.gp .gp-grid { list-style: none; padding: 0; margin: 22px 0 0; }
.gp .gp-piece { display: flex; flex-direction: column; gap: 10px; }
.gp .gp-theme { font-size: .72rem; color: var(--v3-ink-4, #7C8899); margin-left: 8px; }
.gp .gp-line { margin: 0; font-size: 1.02rem; line-height: 1.75; font-weight: 600; letter-spacing: -.01em; }
.gp .gp-line .v3-tg { display: inline; padding-bottom: 2px; }
.gp .gp-line em { font-style: normal; color: var(--v3-gold); border-bottom: 3px solid var(--v3-gold); }
.gp .gp-open { margin-top: auto; font-size: .86rem; font-weight: 700; text-decoration: none; color: inherit; }
.gp .gp-scenarios { list-style: none; padding: 0; margin: 22px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.gp .gp-scenarios li { padding: 16px 18px; border-radius: 14px; border: 1px solid var(--v3-tg); display: flex; flex-direction: column; gap: 4px; }
.gp .gp-scenarios b { font-size: .95rem; }
.gp .gp-scenarios span { font-size: .84rem; opacity: .75; }
.gp .gp-related-h { margin-top: 40px; }
.gp .gp-related { list-style: none; padding: 0; margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.gp .gp-related a { display: inline-block; padding: 8px 12px; border-radius: 999px; border: 1px solid var(--v3-con-line); color: var(--v3-con-ink); text-decoration: none; font-size: .84rem; font-weight: 600; }
.gp .gp-index { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.gp .gp-index a { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border-radius: 16px; border: 1px solid var(--v3-tg); text-decoration: none; color: inherit; }
.gp .gp-index b { font-size: 1.05rem; }
.gp .gp-index span { font-size: .88rem; opacity: .8; }
.gp .gp-index small { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: .68rem; opacity: .6; }
.gp .gp-foot { padding: 28px 0 40px; font-size: .8rem; opacity: .75; }
.gp .gp-foot .v3-wrap { display: flex; flex-wrap: wrap; gap: 16px; }
.gp .gp-foot a { color: inherit; }
.gp .gp-hero .v3-h1 { margin-bottom: 22px; }
.gp .gp-hero .v3-lede { max-width: 62ch; }
