/* The Pattern Game — board + chooser component.
   Shared by /patterngame (full arcade) and /pattern-recognition (one featured
   category, embedded). Type and colour come from brand.css; this is layout. */

.board{border:1px solid var(--gold);border-radius:14px;background:var(--panel);padding:28px;margin:10px 0 26px}
.meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.clues{display:grid;gap:10px;margin-bottom:22px}
.clue{background:var(--panel2);border:1px solid rgba(255,255,255,.06);border-radius:9px;padding:14px 16px;}
.clue.locked{border-style:dashed;text-align:center}
.guessrow{display:flex;gap:10px;flex-wrap:wrap}
.guessrow input{min-width:200px}
.feedback{margin-top:14px;font-size:14px;min-height:20px}
.feedback.good{color:var(--green)}
.feedback.bad{color:var(--red)}
/* Chooser: its own centred container. NEVER use a margin shorthand here —
   `margin:10px 0 26px` on a .wrap zeroes the horizontal auto and slams the
   block to the left edge. That was the 2026-07-17 breakage. */
.chooser{max-width:840px;margin-left:auto;margin-right:auto;margin-top:10px;margin-bottom:26px;padding:0 26px}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:820px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
.cat{background:var(--panel);border:1px solid var(--gold-dim);border-radius:12px;padding:20px 18px;text-align:left;cursor:pointer;transition:border-color .18s;display:block;width:100%}
.cat:hover{border-color:var(--gold)}
/* Tile names are DM Sans, not Syne. Syne is the hero display only. */
.cat-name{font-family:'DM Sans',system-ui,sans-serif;font-weight:600;font-size:17px;letter-spacing:normal;text-transform:none;color:#fff;margin-bottom:6px}
.cat-meta{display:flex;align-items:center;gap:7px}
.tick{color:var(--gold)}
.backrow{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}
.back{cursor:pointer;background:none;border:none;padding:0}
.hidden{display:none}
.done-panel{text-align:center;padding:8px 0 4px}
.done-score{margin:10px 0 18px}
@media(max-width:430px){.cat-grid{grid-template-columns:1fr}.guessrow{flex-direction:column}.guessrow input{min-width:0;width:100%}.guessrow .btn{width:100%}}

/* ── three-day lifecycle ── calm by default; metallic reserved for reward only */
.life-panel{}
.life-h{margin:6px 0 8px}
.life-sub{color:var(--ink);opacity:.8;margin-bottom:14px}
.life-fact{background:var(--panel2);border:1px solid var(--gold-dim);border-radius:9px;padding:14px 16px;margin-bottom:16px}
.countdown{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--gold);margin-bottom:4px}
/* chooser lock states */
.cat-meta .lock{color:var(--ink);opacity:.75}
.cat-meta .ready{color:var(--gold)}
/* the reward moment: the ONLY metallic text in the game */
.minted{background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
.mint-pop{animation:mintpop .5s ease}
@keyframes mintpop{from{opacity:.25;transform:translateY(2px)}to{opacity:1;transform:none}}
/* resolution arc */
.arc-name{font-size:18px;margin:2px 0 14px}
.arc-list{display:grid;gap:8px}
.arc-row{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:baseline;background:var(--panel2);border:1px solid rgba(255,255,255,.06);border-radius:9px;padding:12px 14px}
.arc-stage{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.arc-clue{color:var(--ink);opacity:.92}
@media(max-width:430px){.arc-row{grid-template-columns:1fr;gap:4px}}
