/* decoyed, second rule set: face-down priced tiles and a six-game line-up. Loaded after the shared styles. */
.deck-grid .trait .trait-front small.tile-price,.deck-grid .trait.keyword-card .trait-front small{font-size:.62rem;font-weight:900;letter-spacing:.02em;text-transform:none;opacity:1;font-variant-numeric:tabular-nums}
.tile-card.wide .trait-face.trait-back small{font-size:.46rem;font-weight:900;letter-spacing:.12em;line-height:1.2;opacity:.75}
.tile-card.wide .trait-back b{max-height:3.6em;font-size:.6rem;line-height:1.2}
.deck-grid .tile-empty{grid-column:1/-1;margin:6px 0;color:var(--muted);font-size:.8rem}
/* The line-up is only six covers, so there is nothing to search. */
#library .library-search-wrap{display:none}
/* The GUESS button no longer carries a decoy count. */
.hunt-guess-core strong{font-size:clamp(1rem,4.2vw,1.3rem)}
/* Board layout: one grid of tiles in three widths. */
.layout-board .signal-map-card,.layout-board #hintNotes{display:none}
.layout-board .grid-card{display:block}
.layout-board .grid-card .section-head{justify-content:flex-start}
.deck-grid.tile-board{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:84px;gap:8px}
.tile-board .trait{height:auto;min-width:0}
.tile-board .trait-face{padding:7px}
.tile-board .trait-front b{font-size:.66rem;max-height:none}
.tile-board .trait-back b{font-size:.68rem;max-height:2.4em}
.tile-board .trait[style*="span 2"] .trait-back b,.tile-board .trait[style*="span 3"] .trait-back b{font-size:.82rem}
.tile-board .trait[style*="span 4"] .trait-back b{font-size:.9rem;max-height:none;-webkit-line-clamp:unset;display:block}
.tile-board .trait.keyword-card[style*="span 4"] .trait-back{flex-direction:row;flex-wrap:wrap;align-content:center;column-gap:14px;row-gap:3px}
.tile-board .trait.keyword-card[style*="span 4"] .trait-back small{flex-basis:100%;text-align:center}
.tile-board .tile-card.wide .trait-back b{font-size:.7rem;max-height:3.6em}
/* GUESS sits under the keyword at all times; it glows once the budget can buy nothing more. */
.guess-main{display:block;width:100%;min-height:56px;margin:0 0 14px;border:0;border-radius:16px;background:var(--primary);color:var(--text);font-size:1.1rem;font-weight:950;letter-spacing:.16em;--text:var(--on-fill)}
.guess-main.ready{box-shadow:0 0 0 2px var(--gold),0 0 26px #ee9b0066;animation:guessReady 1.8s ease-in-out infinite}
@keyframes guessReady{50%{box-shadow:0 0 0 2px var(--gold),0 0 8px #ee9b0022;transform:scale(.985)}}
/* Self-dismissing banner: rises in, holds, and fades away. */
.board-notice{position:fixed;left:50%;top:38%;z-index:30;display:flex;flex-direction:column;align-items:center;gap:4px;width:max-content;max-width:calc(100vw - 48px);padding:16px 22px;border:1px solid var(--gold);border-radius:16px;background:#001219f2;box-shadow:0 18px 50px #000a,0 0 30px #ee9b0033;text-align:center;pointer-events:none;transform:translate(-50%,-50%)}
.board-notice b{color:var(--gold);font-size:1.02rem;font-weight:950;letter-spacing:.14em}
.board-notice span{color:#e9d8a6;font-size:.82rem;font-weight:700}
.board-notice.show{animation:noticeFade 3.4s ease both}
@keyframes noticeFade{0%{opacity:0;transform:translate(-50%,-34%) scale(.94)}9%{opacity:1;transform:translate(-50%,-50%) scale(1)}78%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-66%) scale(.98)}}
/* The line-up dialog is only as tall as its six covers. */
#library{height:fit-content}
#library .library-grid{flex:0 1 auto}
/* Credit bar: full to start, each pip empties as it is spent. */
.strike-slot.credit{background:var(--gold);box-shadow:0 0 5px #ee9b0055;transition:background .45s ease,box-shadow .45s ease,transform .45s cubic-bezier(.3,1.6,.5,1),opacity .45s ease}
.strike-slot.credit.bonus{box-shadow:0 0 0 2px var(--mint),0 0 5px #ee9b0055}
.strike-slot.credit.spent{background:var(--line);box-shadow:none;transform:scale(.7);opacity:.75}
/* Every face-down tile looks the same; only its row of dots says what it costs. */
:root:root .tile-board .trait.keyword-card:not(.resolved) .trait-front{background:var(--high);border-color:var(--line);--text:var(--page-text);--text-soft:var(--page-soft);--muted:var(--page-muted);color:var(--text)}
.tile-board .trait-front svg{width:26px;height:26px;color:var(--text)!important}
.credit-dots{display:inline-flex;align-items:center;gap:3px;vertical-align:middle}
.credit-dot{display:block;flex:none;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 5px #ee9b0055}
.tile-board .trait-front small{display:flex;justify-content:center;min-height:9px}
.tut-chip .credit-dots{margin-top:2px}.tut-chip .credit-dot{width:7px;height:7px}
/* The credit bar sits centred at the top of the tile card. The sticky strip only appears with the compact GUESS. */
.credit-bank{display:flex;flex-direction:column;align-items:center;gap:9px;margin:2px 0 16px}
.credit-bank>span{color:var(--muted);font-size:.64rem;font-weight:950;letter-spacing:.18em}
.credit-bank .strike-slots{flex-wrap:wrap;justify-content:center;gap:7px}
.credit-bank .strike-slot{width:15px;height:15px}
.layout-board .grid-card .section-head{justify-content:center}
.layout-board .hunt-status{display:none;position:fixed;top:0;left:0;right:0;z-index:15;min-height:50px;margin:0;padding:6px max(16px,calc((100vw - 520px)/2));box-shadow:0 8px 22px #0009}
.layout-board .hunt-status.has-mini{display:flex}
.layout-board .hunt-difficulty-nav{margin-bottom:12px}
.layout-board .hunt-status.has-mini .strike-word{display:inline!important}
/* The keyword banner is the tile card's top edge. */
.layout-board .grid-card{padding-top:0;overflow:hidden}
.layout-board .grid-card .free-keyword{position:static;margin:0 -16px 16px;padding:8px 12px;border:0;border-bottom:1px solid var(--gold);border-radius:0}
/* The line-up always shows four covers to a row: one row on easy, two on medium, three on hard. */
#library .library-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:14px}
#library .library-game b{min-height:3.4em;padding:5px 3px;font-size:.56rem}
/* The pips that pay for a second guess are ringed; the ring drops once that guess is used or can no longer be afforded. */
.credit-bank .strike-slot.credit.reserve{outline:1.5px solid var(--mint);outline-offset:2.5px}
.credit-bank .strike-slots.reserve-off .strike-slot.reserve{outline-color:transparent}
.credit-bank .reserve-note{margin-top:1px;color:var(--muted);font-size:.66rem;font-weight:700;letter-spacing:.02em}
.credit-bank .reserve-note.warn{color:var(--gold)}

/* Clues found so far, above the line-up on the guess screen. */
.clue-strip{flex:none;display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px 0}
.clue-strip[hidden]{display:none}
.clue-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 9px;border:1px solid var(--line);border-radius:10px;background:var(--high);color:var(--text);--text:var(--page-text);font-size:.64rem;line-height:1.25}
.clue-chip svg{flex:none;width:12px;height:12px;color:var(--gold)}
.clue-chip b{font-weight:800;overflow-wrap:anywhere}
.clue-chip.key{border-color:var(--gold);color:var(--gold)}

/* The second-guess banner: a glowing pill while the reserve covers a second guess. */
.credit-bank .reserve-note{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--mint);border-radius:999px;background:color-mix(in srgb,var(--mint) 12%,transparent);color:var(--mint);font-size:.66rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.credit-bank .reserve-note.ready{animation:second-glow 2.4s ease-in-out infinite;}
.credit-bank .reserve-note.ready::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px var(--mint)}
@keyframes second-glow{0%,100%{box-shadow:0 0 6px color-mix(in srgb,var(--mint) 35%,transparent),inset 0 0 6px color-mix(in srgb,var(--mint) 13%,transparent)}50%{box-shadow:0 0 18px color-mix(in srgb,var(--mint) 65%,transparent),inset 0 0 10px color-mix(in srgb,var(--mint) 27%,transparent)}}
@media (prefers-reduced-motion:reduce){.credit-bank .reserve-note.ready{animation:none;box-shadow:0 0 10px color-mix(in srgb,var(--mint) 47%,transparent)}}
