/* Shared editorial shell. Board geometry and interaction remain game-owned. */
:root {
  --game-paper:#f7f6f9; --game-card:#fff; --game-ink:#272330;
  --game-muted:#625c70; --game-line:#d8d3e1; --game-accent:#5741bc;
  --game-soft:#efecf6; --game-focus:#73520b;
  --t3:#625c70; --rn-t3:#625c70; --ar-ink-muted:#625c70; --pt-ink-muted:#625c70;
  --ar-grid:#9a8eae; --pt-island-ring:#82738e;
}
[data-theme="dark"] {
  --game-paper:#121118; --game-card:#1e1b27; --game-ink:#f1edf7;
  --game-muted:#c1b9cf; --game-line:#696076; --game-accent:#bbabff;
  --game-soft:#2a2538; --game-focus:#efd187;
  --t3:#b8b0c8; --rn-t3:#b8b0c8; --ar-ink-muted:#b8b0c8; --pt-ink-muted:#b8b0c8;
  --rn-v:#bbabff; --rn-bd2:#80728e; --rn-block:#40384e; --rn-block2:#5d526c;
  --ar-grid:#8c809c; --pt-island-ring:#a698bb;
}
body.game-family { background:var(--game-paper); color:var(--game-ink); font-family:Inter,system-ui,sans-serif; }
.game-family :is(.co-page,.rn-page,.ar-page,.pt-page,.page-main) { width:min(100% - 32px,760px); padding-top:100px; margin:0 auto; }
.game-family .game-page-head { width:100%; max-width:580px; margin:0 auto 24px; text-align:center; }
.game-family :is(.game-page-head h1,.ar-title,.pt-title) { margin:0 0 12px; padding:0; font:600 clamp(30px,4vw,38px)/1.15 "Crimson Pro",Georgia,serif; letter-spacing:-.02em; color:var(--game-ink); }
.game-family :is(.game-page-head p:not(.game-page-kicker),.ar-subtitle,.pt-subtitle,.pasatiempo-goal) { max-width:54ch; margin:0 auto 14px; font-size:15px; line-height:1.6; color:var(--game-muted); }
.game-family .game-page-kicker { color:var(--game-accent); font-size:11px; letter-spacing:.09em; margin-bottom:8px; }
.game-family .game-page-head > span { display:inline-block; background:none; border:0; box-shadow:none; color:var(--game-muted); padding:2px 6px; font-size:13px; font-weight:500; }
.game-family :is(.co-card,.rn-card) { width:100%; max-width:560px; padding:24px; background:var(--game-card); border:1px solid var(--game-line); border-radius:18px; box-shadow:0 4px 20px #19102406; }
.game-family :is(.ar-card,.pt-card) { width:100%; max-width:560px; padding:0; margin:0 auto; }
.game-family :is(.ar-meta,.pt-meta) { margin:12px 0 20px; gap:6px 12px; color:var(--game-muted); font-size:13px; }
.game-family :is(.ar-divider,.pt-divider) { display:none; }
.game-family :is(.ar-stats,.pt-stats) { margin:0 0 20px; gap:24px; }
.game-family :is(.ar-stat-value,.pt-stat-value) { font:600 19px/1.4 Inter,system-ui,sans-serif; color:var(--game-ink); }
.game-family :is(.ar-stat-label,.pt-stat-label) { font-size:11px; letter-spacing:.05em; color:var(--game-muted); }
.game-family :is(.rn-info,.co-level-detail) { color:var(--game-muted); font-size:13px; line-height:1.5; }
.game-family .rn-info { background:var(--game-soft); border-color:var(--game-line); flex-wrap:wrap; gap:4px 12px; padding:10px 12px; }
.game-family .rn-info b { color:var(--game-accent); }
.game-family :is(.rn-meta,.co-meta) { color:var(--game-muted); font-size:13px; margin:16px 0 12px; }
.game-family :is(.rn-btn,.ar-btn,.pt-btn,.pt-copy,.co-bs,.co-bg,.klotski-btn) { min-height:44px; padding:10px 16px; border:1px solid var(--game-line); border-radius:9px; background:var(--game-card); color:var(--game-ink); font:600 14px/1.4 Inter,system-ui,sans-serif; letter-spacing:0; text-transform:none; box-shadow:none; }
.game-family :is(.rn-actions,.ar-actions,.pt-actions,.klotski-controls) { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.game-family :is(.co-nk,.co-db) { min-height:44px; }
.game-family :is(.co-nk-ok,.rn-btn.primary,.klotski-btn.primary) { background:#5741bc; color:white; border-color:#5741bc; }
.game-family button:disabled { opacity:.45; cursor:default; }
.game-family :is(a,button,summary,[tabindex]):focus-visible { outline:3px solid var(--game-focus); outline-offset:3px; }
.game-family :is(.co-htt,.rn-help-btn,.ar-help-btn,.pt-help-btn,.pasatiempo-help summary) { min-height:48px; padding:12px 16px; font:600 14px/1.5 Inter,system-ui,sans-serif; color:var(--game-accent); }
.game-family :is(.co-ht,.rn-help,.ar-help,.pt-help,.pasatiempo-help) { width:100%; max-width:560px; margin:20px auto 0; background:var(--game-card); border:1px solid var(--game-line); border-radius:12px; }
.game-family :is(.co-htb,.rn-help-body,.ar-help-body,.pt-help-body,.pasatiempo-help > p) { font-size:14px; line-height:1.65; color:var(--game-muted); }
.game-family :is(.co-stm,.rn-status,.ar-feedback,.pt-status,.klotski-status) { font-size:14px; line-height:1.5; color:var(--game-muted); }
.game-family :is(.co-back,.rn-back,.ar-back,.pt-back,.back-home) { margin:24px 0; text-align:center; }
.game-family :is(.co-back,.rn-back,.ar-back,.pt-back,.back-home) a { display:inline-flex; align-items:center; min-height:44px; color:var(--game-accent); font-size:14px; }
.game-family .co-intro { margin-bottom:16px; font-size:14px; color:var(--game-muted); }
.game-family .co-dif { margin-top:0; }
.game-family .co-db { color:var(--game-muted); }
.game-family .co-db.active { color:var(--game-accent); }
.game-family .co-hy { display:grid; gap:8px; max-height:none; overflow:visible; margin:16px 0; }
.game-family .co-att { flex-wrap:wrap; gap:6px 12px; padding:10px; }
.game-family .co-pill { font-size:12px; }
.game-family .co-pill.zero { opacity:1; }
.game-family .co-pill-lbl { color:var(--game-muted); }
.game-family .co-leg { display:none; }
.game-family .co-np { margin-top:12px; gap:6px; }
.game-family .co-nk { height:44px; }
.game-family .co-acts { justify-content:flex-end; margin:12px 0 0; }
.game-family .co-acts [hidden] { display:none; }
.game-family .co-acts #co-brst { flex:none; }
.game-family .co-he { color:var(--game-muted); margin:0; font-size:14px; }
.game-family .game-result { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px; margin:20px 0 0; padding:20px 16px; background:var(--game-soft); color:var(--game-ink); border:1px solid var(--game-line); border-radius:12px; text-align:center; }
.game-family .game-result[hidden] { display:none; }
.game-family .game-result-title { flex-basis:100%; margin:0; font:600 25px/1.2 "Crimson Pro",Georgia,serif; color:var(--game-ink); }
.game-family .game-result p { color:var(--game-muted); }
.game-family .klotski-success-mark { display:none; }
.game-family .klotski-btn-sep { display:none; }
.game-family .site-footer-std { color:var(--game-muted); }
/* Compact collection: mechanic categories keep their subtle accents, not billboard fills. */
.game-family .games-main { width:min(960px,100% - 32px); padding:100px 0 32px; }
.game-family .games-title { font:600 42px/1.15 "Crimson Pro",Georgia,serif; color:var(--game-ink); }
.game-family .games-intro { max-width:52ch; color:var(--game-muted); font-size:15px; }
.game-family .game-card-premium { min-height:0; padding:22px; background:var(--game-card); border:1px solid var(--game-line); border-radius:14px; box-shadow:none; }
.game-family .game-card-premium::before,.game-family .game-card-premium::after { display:none; }
.game-family .game-card-featured { grid-column:auto; }
.game-family .game-category { font-size:11px; letter-spacing:.08em; color:var(--game-accent); }
.game-family .game-card-premium h2 { font:600 28px/1.15 "Crimson Pro",Georgia,serif; color:var(--game-ink); margin:10px 0 8px; }
.game-family .game-card-premium p { color:var(--game-muted); font-size:14px; line-height:1.5; }
.game-family .game-meta-row { color:var(--game-muted); padding:14px 0 0; font-size:12px; font-weight:500; }
.game-family .game-meta + .game-meta::before { color:var(--game-muted); }
.game-family .game-progress { color:var(--game-ink); margin:12px 0 0; font-size:13px; font-weight:600; padding-right:100px; }
.game-family .game-side { right:18px; bottom:12px; }
.game-family .game-arrow { min-height:44px; padding:8px 0 8px 12px; color:var(--game-accent); background:transparent; box-shadow:none; font-size:14px; font-weight:600; }
.game-family .game-bloques { grid-column:1/-1; }
.game-family .games-save-note { font-size:13px; color:var(--game-muted); margin:20px 0; }
.game-family .games-support-card { min-height:0; border-radius:12px; background:var(--game-soft); color:var(--game-ink); box-shadow:none; padding:16px; }
.game-family .games-support-copy em,.game-family .games-support-arrow { color:var(--game-muted); }
.game-family .games-support-logo { background:#5741bc; }
@media(max-width:600px) {
  .game-family :is(.co-page,.rn-page,.ar-page,.pt-page,.page-main) { width:calc(100% - 24px); padding-top:88px; }
  .game-family :is(.co-card,.rn-card) { padding:16px 12px; }
  .game-family .game-page-head { margin-bottom:20px; }
  .game-family .game-page-head h1,.game-family .ar-title,.game-family .pt-title { font-size:30px; }
  .game-family .co-dif { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .game-family .co-db { padding:7px 3px; font-size:12px; }
  .game-family .co-db-sub { font-size:10px; }
  .game-family .co-level-detail { margin:10px 0; font-size:12px; }
  .game-family .games-main { padding-top:88px; }
  .game-family .game-card-premium { padding:18px; }
  .game-family .game-card-premium h2 { font-size:26px; }
  .game-family .game-card-premium p { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) { .game-family *, .game-family *::before, .game-family *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
.game-family .co-he { padding:4px 0; font-style:normal; }
.game-family .co-cell { border-color:var(--game-line); }
.game-family .co-cell.sel { border-color:var(--game-accent); box-shadow:0 0 0 2px var(--game-accent); }
.game-family .co-nk:not(.co-nk-ok) { border-color:var(--game-line); }
[data-theme="dark"] body.game-family.areas-page,[data-theme="dark"] body.game-family.puentes-page { background:var(--game-paper); }

.game-family :is(.co-np,.co-cells,.co-meta)[hidden] { display:none; }
.game-family .game-result > :is(p,.co-st) { flex-basis:100%; margin:0; }
.game-family .game-result .co-stm { margin:0; }
/* Interactive boundaries stay distinct from decorative card borders. */
:root { --game-control-line:#8b8098; --rn-bd2:#8b8098; --ar-grid:#82748e; }
[data-theme="dark"] { --game-control-line:#8c809c; --rn-bd2:#8c809c; --ar-grid:#8c809c; }
.game-family .co-cell,.game-family .co-nk:not(.co-nk-ok) { border-color:var(--game-control-line); }
.game-family .co-cell.sel { border-color:var(--game-accent); }
[data-theme="dark"] .game-family .rn-cell.path .rn-node { color:#21192d; }
.game-family .co-pill-ex:not(.zero) { color:var(--game-accent); }
.game-family .co-pill-sh:not(.zero) { color:#765111; }
[data-theme="dark"] .game-family .co-pill-sh:not(.zero) { color:#efd187; }
