/* ════════════════════════════════════════════════════════════════════
   RE.STATICA — PRACTICE GAME (card-game board)
   Fixed viewport: top HUD (tabs · step · hearts · progress), the problem as
   the encounter up top, your hand of cards pinned along the bottom.
   Dark "game surface" regardless of app theme; accents borrow the app vars.
   All scoped under .rs-practice / .rs-practice-stage.
   ════════════════════════════════════════════════════════════════════ */

/* stage = the game viewport; scrolls only if content exceeds it */
.rs-practice-stage{height:100%;overflow-y:auto;overflow-x:hidden;}

/* pre-start splash — practice mode owns the main area, no leftover solver solution */
.rs-practice-splash{min-height:64vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px;}
.rs-practice-splash .rs-splash-title{font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-weight:600;font-size:40px;line-height:1.1;margin:0;color:#e9e5de;}
.rs-practice-splash .rs-splash-sub{font-family:ui-monospace,'Cascadia Code',Consolas,monospace;font-size:13px;letter-spacing:.04em;color:#8A8A8A;margin-top:13px;}

.rs-practice{
  --rs-serif:'Iowan Old Style','Palatino Linotype',Georgia,'Times New Roman',serif;
  --rs-mono:ui-monospace,'Cascadia Code',Consolas,monospace;
  --rs-muted:#8A8A8A;
  max-width:1000px;margin:0 auto;padding:54px 18px 40px;color:#DBD7D2;
}

/* ── TOP BAR : HUD (step + hearts), right-aligned (Play/Learn lives in the sidebar) ── */
.rs-practice .rs-enc-head{display:flex;align-items:center;justify-content:space-between;gap:18px;}
.rs-practice .rs-hud{display:flex;align-items:center;gap:18px;}
.rs-practice .rs-step{font-family:var(--rs-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--rs-muted);}
.rs-practice .rs-hearts{display:flex;gap:5px;font-size:17px;line-height:1;}
.rs-practice .rs-hearts .f{color:var(--septenary);filter:drop-shadow(0 0 5px rgba(213,76,76,.45));}
.rs-practice .rs-hearts .e{color:#3a3a3e;}

/* ── PROGRESS BAR ── */
.rs-practice .rs-progress{height:2px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden;margin:30px 0;}
.rs-practice .rs-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--senary));box-shadow:0 0 10px -2px var(--primary);transition:width .45s cubic-bezier(.2,.7,.25,1);}

/* ── BOARD : encounter (top) + arena (hand pinned bottom) ── */
.rs-practice .rs-boardinner{width:100%;}

.rs-practice .rs-encounter{text-align:left;max-width:none;margin:0;}
.rs-practice .rs-enc-label{font-family:var(--rs-mono);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--quaternary);}
.rs-practice .rs-enc-label span{margin-right:6px;}
.rs-practice .rs-enc-q{font-size:18.5px;line-height:1.6;color:#e7e2d8;margin-top:14px;}
.rs-practice .rs-enc-q b{color:#fff;}

.rs-practice .rs-move{margin:0;}

.rs-practice .rs-stepq{font-family:var(--rs-serif);font-size:23px;color:#f2ede4;margin:0 0 8px;text-align:center;}
.rs-practice .rs-steptag{font-family:var(--rs-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--rs-muted);text-align:center;margin:0 0 22px;}

/* ── HAND ── */
.rs-practice .rs-hand{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;}

.rs-practice .rs-pcard{width:158px;height:222px;border-radius:13px;position:relative;overflow:hidden;cursor:pointer;display:grid;place-items:center;
  background:radial-gradient(135% 105% at 50% 0%, #1a1b1f 0%, #0e0f11 52%, #0a0a0c 100%);
  border:1px solid #2a2a30;box-shadow:inset 0 1px 0 rgba(255,255,255,.05), inset 0 -42px 54px -30px rgba(0,0,0,.85), 0 10px 26px -16px #000;
  transition:box-shadow .18s,border-color .18s;}
.rs-practice .rs-pcard:hover{border-color:#43434c;box-shadow:inset 0 1px 0 rgba(255,255,255,.06), inset 0 -42px 54px -30px rgba(0,0,0,.85), 0 0 24px -10px rgba(255,255,255,.13);}
.rs-practice .rs-pcard.sel{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary), 0 0 32px -6px var(--primary), inset 0 1px 0 rgba(255,255,255,.05);}
.rs-practice .rs-pcard .glyph{position:absolute;top:50%;left:50%;transform:translate(-50%,-58%);font-family:var(--rs-serif);font-style:italic;font-size:156px;line-height:1;color:#fff;opacity:.05;pointer-events:none;user-select:none;}
.rs-practice .rs-pcard .nm{position:relative;z-index:1;font-family:var(--rs-serif);font-weight:600;text-align:center;font-size:18px;line-height:1.16;letter-spacing:.2px;color:#efece6;padding:0 16px;text-shadow:0 1px 14px rgba(0,0,0,.7);}
.rs-practice .rs-pcard .brand{position:absolute;top:12px;left:0;right:0;text-align:center;font-family:var(--rs-mono);font-size:7px;letter-spacing:.3em;text-transform:uppercase;color:#54555a;padding-left:.3em;}
.rs-practice .rs-pcard .pick-cue{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-family:var(--rs-mono);font-size:7px;letter-spacing:.18em;text-transform:uppercase;color:#4a4b4f;opacity:0;transition:opacity .15s;padding-left:.18em;}
.rs-practice .rs-pcard:hover .pick-cue,.rs-practice .rs-pcard.sel .pick-cue{opacity:1;}
.rs-practice .rs-pcard.sel .pick-cue{color:var(--primary);}
/* small-text variant — formula / sentence cards */
.rs-practice .rs-pcard--sm .nm{font-size:12.5px;line-height:1.35;padding:0 11px;letter-spacing:0;}
.rs-practice .rs-pcard--sm .glyph{opacity:.035;}

/* ── CONTROLS ── */
.rs-practice .rs-controls{margin-top:22px;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;}
.rs-practice .rs-lockin{font-family:var(--rs-mono);font-size:12px;letter-spacing:.06em;border-radius:8px;padding:11px 22px;border:1px solid var(--primary);background:var(--primary);color:#06121b;font-weight:600;cursor:pointer;transition:opacity .15s;}
.rs-practice .rs-lockin[disabled]{opacity:.32;cursor:not-allowed;background:transparent;color:var(--rs-muted);border-color:#3a3a3a;}
.rs-practice .rs-hint{font-family:var(--rs-mono);font-size:11px;color:var(--rs-muted);}

/* ── RUN COMPLETE : the stacked worked solution ── */
.rs-practice .rs-complete{max-width:560px;margin:0 auto;padding-top:10px;text-align:center;}
.rs-practice .rs-solution{display:flex;flex-direction:column;gap:8px;margin:18px 0 22px;text-align:left;}
.rs-practice .rs-resolved{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #2a2a2e;border-radius:9px;background:#16161a;}
.rs-practice .rs-resolved .node{width:10px;height:10px;border-radius:50%;background:var(--secondary);box-shadow:0 0 9px rgba(95,184,122,.5);flex:none;}
.rs-practice .rs-resolved .rlabel{font-family:var(--rs-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--rs-muted);min-width:118px;}
.rs-practice .rs-resolved .rans{font-size:13.5px;color:#f1ece2;font-weight:600;}

/* ── DECK (Learn browse) ── */
.rs-practice .rs-deckview{flex:1;min-height:0;overflow-y:auto;}
.rs-practice .rs-deck-intro{font-family:var(--rs-mono);font-size:11px;color:var(--rs-muted);margin:0 0 20px;}
.rs-practice .rs-deck-group{margin-bottom:48px;}
.rs-practice .rs-deck-gh{font-family:var(--rs-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--primary);margin:0 0 13px;border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:7px;}
.rs-practice .rs-deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:18px;}

.rs-practice .rs-dcard{height:236px;perspective:900px;cursor:pointer;--fam:var(--primary);}
.rs-practice .rs-dspin{position:relative;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.7,.25,1);transform-style:preserve-3d;}
.rs-practice .rs-dcard.flip .rs-dspin{transform:rotateY(180deg);}
.rs-practice .rs-dface{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:11px;overflow:hidden;border:1px solid #232327;}
.rs-practice .rs-dface.rs-dback{transform:rotateY(180deg);}
.rs-practice .rs-dfront{display:grid;place-items:center;background:radial-gradient(135% 105% at 50% 0%,#16171a,#0e0f11 52%,#0a0a0c);box-shadow:inset 0 1px 0 rgba(255,255,255,.04), inset 0 -34px 44px -28px rgba(0,0,0,.85);}
.rs-practice .rs-dfront .glyph{position:absolute;top:50%;left:50%;transform:translate(-50%,-58%);font-family:var(--rs-serif);font-style:italic;font-size:156px;line-height:1;color:#fff;opacity:.05;pointer-events:none;user-select:none;}
.rs-practice .rs-dfront .nm{position:relative;z-index:1;font-family:var(--rs-serif);font-weight:600;text-align:center;font-size:17px;line-height:1.16;color:#efece6;padding:0 14px;text-shadow:0 1px 12px rgba(0,0,0,.7);}
.rs-practice .rs-dback{background:linear-gradient(180deg,#161412,#0e0d0c);display:flex;flex-direction:column;padding:16px 16px 0;}
.rs-practice .rs-dback .dk{font-family:var(--rs-serif);font-size:16px;font-weight:600;color:#ece6da;line-height:1.1;}
.rs-practice .rs-dback .dk::after{content:"";display:block;width:26px;height:1px;margin:9px 0 0;background:linear-gradient(90deg,var(--fam),transparent);opacity:.6;}
.rs-practice .rs-dback .dd{font-family:var(--rs-serif);font-size:12px;line-height:1.45;color:#cdc6ba;margin-top:11px;flex:1;overflow:hidden;}
.rs-practice .rs-dback .df{font-family:var(--rs-mono);font-size:8px;letter-spacing:.1em;text-transform:lowercase;color:var(--fam);border-top:1px solid rgba(236,230,218,.07);padding:8px 0;margin-top:auto;}
