/* WP-003 analysis board: a model weighs moves, plays one, explains it, and each claim is checked. One 14s loop. */
.ab{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.ab-board{display:grid;grid-template-columns:20px minmax(0,1fr);grid-template-rows:auto 20px;gap:6px;width:clamp(300px,min(calc(100vh - 290px),54vw),680px)}
.ab-ranks{grid-column:1;grid-row:1;display:grid;grid-template-rows:repeat(8,1fr)}
.ab-files{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(8,1fr)}
.ab-ranks span,.ab-files span{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.68rem}
.ab-grid{grid-column:2;grid-row:1;position:relative;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);aspect-ratio:1;border-radius:2px;overflow:hidden}
.sq{position:relative;display:flex;align-items:center;justify-content:center;font-style:normal;background:#3f6b4a}
.sq.l{background:#8a8f88}
.pc{position:absolute;left:3%;top:1%;width:94%;height:94%;display:block;stroke-linejoin:round;stroke-linecap:round}
.pc.pw{fill:#f6f4ee;stroke:#07090d;stroke-width:1.6;color:#07090d}
.pc.pb{fill:#0b0d10;stroke:#f6f4ee;stroke-width:1.4;color:#f6f4ee}
.ab-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ab-arrows line{stroke-dasharray:1;stroke-linecap:round}
.cand{stroke:#f6f4ee;stroke-width:.06;animation:abCand 14s linear infinite}
.pick{stroke:var(--pen);stroke-width:.11;animation:abPick 14s linear infinite}
.pick-u{stroke:#07090d;stroke-width:.2;opacity:.55}
.ring{position:absolute;width:11%;height:11%;border:3px solid var(--pen);box-shadow:0 0 0 1.5px #07090d,inset 0 0 0 1.5px #07090d;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0}
.r1{animation:abR1 14s linear infinite}
.r2{animation:abR2 14s linear infinite}
.r3{animation:abR3 14s linear infinite}
.ab-text{min-width:0}
.ab-say{text-wrap:pretty;font-size:clamp(1.15rem,2.1vw,1.9rem);line-height:1.45;color:var(--ink);margin:0 0 24px}
.w{opacity:0}
.w.hl{color:var(--pen);text-decoration:underline;text-decoration-color:var(--pen);text-underline-offset:.2em;text-decoration-thickness:1px}
.w1{animation:abW1 14s linear infinite}.w2{animation:abW2 14s linear infinite}.w3{animation:abW3 14s linear infinite}.w4{animation:abW4 14s linear infinite}
.w5{animation:abW5 14s linear infinite}.w6{animation:abW6 14s linear infinite}.w7{animation:abW7 14s linear infinite}.w8{animation:abW8 14s linear infinite}
.ab-check{text-wrap:balance;color:var(--amber);font-size:clamp(.78rem,1vw,.9rem);line-height:1.6;margin:0;animation:abCk 14s linear infinite}
@keyframes abCand{0%,3%{opacity:0;stroke-dashoffset:1}11%{opacity:.85;stroke-dashoffset:0}24%{opacity:.85}30%,95%{opacity:.3;stroke-dashoffset:0}100%{opacity:0}}
@keyframes abPick{0%,28%{opacity:0;stroke-dashoffset:1}35%,95%{opacity:1;stroke-dashoffset:0}100%{opacity:0}}
@keyframes abR1{0%,44%{opacity:0}47%,95%{opacity:1}100%{opacity:0}}
@keyframes abR2{0%,53%{opacity:0}56%,95%{opacity:1}100%{opacity:0}}
@keyframes abR3{0%,62%{opacity:0}65%,95%{opacity:1}100%{opacity:0}}
@keyframes abW1{0%,39%{opacity:0}42%,95%{opacity:1}100%{opacity:0}}
@keyframes abW2{0%,44%{opacity:0}47%,95%{opacity:1}100%{opacity:0}}
@keyframes abW3{0%,48%{opacity:0}51%,95%{opacity:1}100%{opacity:0}}
@keyframes abW4{0%,53%{opacity:0}56%,95%{opacity:1}100%{opacity:0}}
@keyframes abW5{0%,57%{opacity:0}60%,95%{opacity:1}100%{opacity:0}}
@keyframes abW6{0%,62%{opacity:0}65%,95%{opacity:1}100%{opacity:0}}
@keyframes abW7{0%,66%{opacity:0}69%,95%{opacity:1}100%{opacity:0}}
@keyframes abW8{0%,70%{opacity:0}73%,95%{opacity:1}100%{opacity:0}}
@keyframes abCk{0%,79%{opacity:0}84%,95%{opacity:1}100%{opacity:0}}
@media (max-width:760px){
  .ab{grid-template-columns:1fr}
  .ab-board{width:100%;max-width:460px}
  .ab{gap:32px}
}
@media (prefers-reduced-motion:reduce){
  .cand,.pick,.ring,.w,.ab-check{animation:none}
  .cand{opacity:.3}
  .ring,.w,.ab-check{opacity:1}
}
