/* Four Stressed – four-player chess. Styles for fourkings-ui.js (view #v-fourkings). Specification: fourkings/DESIGN.md.
   Newspaper look of the app (paper, ink, Playfair Display, thin rules, square corners) with a card-table accent: the four suits.
   The board keeps its own fixed paper palette under every board theme, so the four suit colours always read.
   Motion: only transform and opacity are animated; html.a11y-calm and prefers-reduced-motion stop everything (end of file). */
:root{
  --fk-s0:var(--ink);--fk-s1:#b3261e;--fk-s2:#b8860b;--fk-s3:#0f6b5c;      /* suit colours in the chrome (follow the theme) */
  --fk-e0:var(--ink);--fk-e1:#6b120d;--fk-e2:#6a4a00;--fk-e3:#06392f;      /* their dark edges */
  --fk-pp:var(--paper);                                                     /* pip and detail colour inside a piece */
  --fk-l:#f8f3e7;--fk-d:#e2d6bc;--fk-card:#fbf7ec;--fk-ink:#1c1a17;--fk-gold:#d9a514}
html.sgm{--fk-s1:#e2594f;--fk-s2:#d4af37;--fk-s3:#35ab95;--fk-e1:#e2594f;--fk-e2:#d4af37;--fk-e3:#35ab95}
html.bw{--fk-s1:#b3261e}
html.a11y-cb{--fk-s1:#d55e00;--fk-s2:#e0b000;--fk-s3:#0072b2;--fk-e1:#7a3500;--fk-e2:#6e4b00;--fk-e3:#00416a}
/* on the board, the plates and the little cards the palette is fixed (light card stock) */
.fkb,.fk-cardlet,.fk-fixed{--fk-s0:#1c1a17;--fk-e0:#000;--fk-s1:#b3261e;--fk-e1:#6b120d;--fk-s2:#b8860b;--fk-e2:#6a4a00;--fk-s3:#0f6b5c;--fk-e3:#06392f;--fk-pp:#fbf7ec;color:var(--fk-ink)}
html.a11y-cb .fkb,html.a11y-cb .fk-cardlet,html.a11y-cb .fk-fixed{--fk-s1:#d55e00;--fk-s2:#e0b000;--fk-s3:#0072b2;--fk-e1:#7a3500;--fk-e2:#6e4b00;--fk-e3:#00416a}
.s0{--pc:var(--fk-s0);--pe:var(--fk-e0)}.s1{--pc:var(--fk-s1);--pe:var(--fk-e1)}.s2{--pc:var(--fk-s2);--pe:var(--fk-e2)}.s3{--pc:var(--fk-s3);--pe:var(--fk-e3)}

.fk [hidden]{display:none!important}
.fk-pip{display:inline-block;width:1em;height:1em;flex:0 0 auto;fill:var(--pc);vertical-align:-.12em}
.fk-art{display:block;width:100%;height:100%;overflow:visible}
.fk-art .sh{fill:rgba(0,0,0,.17)}
.fk-art .bd{fill:var(--pc);stroke:var(--pe);stroke-width:1.5;stroke-linejoin:round;paint-order:stroke}
.fk-art .dt{fill:var(--fk-pp)}.fk-art .dt .ln{stroke:var(--fk-pp)}
.fk-art .ck{fill:none;stroke:#4b4741;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
/* the two Wild Stressed pieces wear a red outline so they stand out from the ordinary men (owner, 14 Nov) */
.fk-art.t-e .bd,.fk-art.t-f .bd{stroke:#c8281e;stroke-width:2.1}
html.a11y-cb .fk-art.t-e .bd,html.a11y-cb .fk-art.t-f .bd{stroke:#d55e00}
.stone .fk-art .bd{fill:#a6a196;stroke:#57534c}.stone .fk-art .dt{fill:#69655d}.stone .fk-art .dt .ln{stroke:#69655d}
.fk-crownart{display:block;width:100%;height:auto;overflow:visible}
.fk-crownart path{fill:var(--fk-gold);stroke:#5d4100;stroke-width:1.3;stroke-linejoin:round}.fk-crownart .j{fill:none;stroke-width:1}
.fk-botav{display:block}.fk-botav .a{fill:var(--pc)}.fk-botav .b{fill:none;stroke:var(--fk-pp);stroke-width:.9;stroke-dasharray:1.4 2.2;opacity:.8}.fk-botav .c{fill:var(--fk-pp)}
.fk-mini{display:inline-block;width:20px;height:20px;flex:0 0 auto}
.fk-kicker{margin:0;font:700 10px "Libre Baskerville",serif;text-transform:uppercase;letter-spacing:2.5px;color:var(--mut);display:flex;align-items:center;gap:10px;justify-content:center}
.fk-kicker::before,.fk-kicker::after{content:"";height:1px;background:var(--ink);flex:0 1 46px}

/* ---------------------------------------------------------------- lobby */
.fk-hero{text-align:center;padding:10px 0 6px}
.fk-hand{display:flex;justify-content:center;height:96px;margin-bottom:10px}
.fk-cardlet{position:relative;width:62px;height:86px;margin:0 -5px;background:var(--fk-card);border:1px solid var(--fk-ink);box-shadow:2px 2px 0 rgba(20,18,16,.18);padding:17px 8px 4px;
  --r:0deg;--y:0px;transform:rotate(var(--r)) translateY(var(--y));transform-origin:50% 120%;animation:fkHand 4.6s ease-in-out infinite}
.fk-cardlet:nth-child(1){--r:-13deg;animation-delay:-.2s}.fk-cardlet:nth-child(2){--r:-4.5deg;animation-delay:-1.3s}.fk-cardlet:nth-child(3){--r:4.5deg;animation-delay:-2.4s}.fk-cardlet:nth-child(4){--r:13deg;animation-delay:-3.5s}
.fk-cardlet .ix{position:absolute;left:5px;top:5px;width:13px;height:13px}
@keyframes fkHand{0%,100%{transform:rotate(var(--r)) translateY(0)}50%{transform:rotate(calc(var(--r)*1.12)) translateY(-4px)}}
.fk-title{margin:4px 0 2px;font:900 46px/1 "Playfair Display",serif;letter-spacing:-.5px}
.fk-pitch{margin:8px auto 4px;max-width:440px;font-size:13.5px;line-height:1.5;font-style:italic;color:var(--mut)}
.fk-resume{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--ink);border-left:6px solid var(--fk-s1);padding:8px 10px;margin:10px 0 0;font-size:13.5px;font-weight:700}
.fk-resume-b{display:flex;gap:6px;flex:0 0 auto}
.fk-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.fk-choice{position:relative;min-height:104px;border:1px solid var(--ink);border-radius:0;background:var(--paper2);color:var(--ink);font:inherit;padding:24px 10px 22px;text-align:center;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0}
.fk-choice::before{content:"";position:absolute;inset:4px;border:1px solid var(--ink);opacity:.28;pointer-events:none}
.fk-choice b{font:900 20px/1.05 "Playfair Display",serif}
.fk-choice small{font-size:11px;font-style:italic;color:var(--mut);line-height:1.3}
.fk-choice .ix,.fk-choice .ix2{position:absolute;width:17px;height:17px}
.fk-choice .ix{left:10px;top:10px}.fk-choice .ix2{right:10px;bottom:10px;transform:rotate(180deg)}
.fk-choice.on{background:var(--ink);color:var(--paper)}.fk-choice.on small{color:var(--paper);opacity:.8}.fk-choice.on::before{border-color:var(--paper)}
.fk-choice.on .fk-pip.s0{fill:var(--paper)}
html.sgm .fk-choice.on .fk-pip{fill:#0d0c0a}
.fk-panel{border:1px solid var(--ink);border-top:5px solid var(--pc);padding:6px 12px 12px;margin-top:8px}
.fk-panel .fk-go{width:100%;margin-top:12px;padding:14px 6px}
.fk-panel .setrow{font-size:13.5px}
.fk-trow{display:flex;align-items:center;gap:8px;padding:5px 0}
.fk-trow .fk-pip{width:22px;height:22px}
.fk-trow input,.fk-join input{flex:1;min-width:0;width:100%;font:inherit;font-size:16px;padding:8px;border:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink)}
.fk-trow input:disabled{opacity:.4}
.fk-trow .seg{flex:0 0 auto;flex-wrap:nowrap;gap:0}.fk-trow .seg button{min-width:0;flex:0 0 auto;padding:9px 8px;font-size:11.5px}.fk-trow .seg button+button{border-left:0}
.fk-join{margin-top:0}.fk-join input{font:900 22px "Playfair Display",serif;letter-spacing:8px;text-align:center;text-transform:uppercase}.fk-join .btn{flex:0 0 auto;padding:11px 18px}
.fk-rules h3{margin-bottom:4px}
.fk-rl{list-style:none;margin:0;padding:0}
.fk-rl li{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px dotted var(--ink);font-size:13.5px;line-height:1.45;text-align:left}
.fk-rl .fk-pip{width:15px;height:15px;margin-top:2px}
.fk-pts{display:flex;justify-content:space-between;gap:4px;padding:10px 4px 2px}
.fk-pt{display:flex;flex-direction:column;align-items:center;gap:2px}.fk-pt .fk-mini{width:34px;height:34px}.fk-pt b{font:900 17px "Playfair Display",serif}
.fk-inmodal .fk-rl li{font-size:12.5px;padding:5px 0}.fk-inmodal .fk-pt .fk-mini{width:28px;height:28px}
.fk-rsg{display:flex;align-items:center;justify-content:center;gap:8px;font:900 20px "Playfair Display",serif;margin:6px 0}

/* ---------------------------------------------------------------- online table (before the game) */
.fk-code{text-align:center;padding:8px 0 4px}
.fk-codebox{display:flex;justify-content:center;gap:6px;margin:10px 0 6px}
.fk-codebox b{width:46px;height:60px;display:grid;place-items:center;background:var(--fk-card);color:var(--fk-ink);border:1px solid var(--ink);box-shadow:2px 2px 0 rgba(20,18,16,.18);font:900 32px "Playfair Display",serif}
.fk-srow{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px dotted var(--ink);min-height:54px}
.fk-srow:last-child{border-bottom:0}
.fk-srow>.fk-pip{width:20px;height:20px}
.fk-srow .fk-avi{flex:0 0 36px;width:36px;height:36px;display:block}.fk-srow .fk-avi svg{width:36px;height:36px;display:block}
.fk-srow.k-open .fk-avi{border:1px dashed var(--mut)}
.fk-srow .fk-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.fk-srow .fk-who b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fk-srow .fk-who small{font-size:11.5px;color:var(--mut);font-style:italic}
.fk-srow.k-open .fk-who b{color:var(--mut);font-weight:400}
.fk-srow .act{display:flex;gap:5px;flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;max-width:66%}
.fk-srow .act .btn{flex:0 0 auto;width:auto}.fk-srow .act .fk-rb{padding-left:8px;padding-right:8px;letter-spacing:.3px}
/* Report / Block next to another player at an online table: two small buttons in the seat row, one flag during the game */
.fk-flag{-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:0;border:1px solid currentColor;border-radius:50%;background:var(--fk-card,var(--paper,#f7f7f4));color:inherit;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:.85;touch-action:manipulation}
.fk-flag[hidden]{display:none}
.fk-flag:focus-visible{outline:2px solid currentColor;outline-offset:2px;opacity:1}
.fk-plate .fk-flag{pointer-events:auto;position:absolute;z-index:3;left:calc(var(--u)*.26);top:50%;transform:translateY(-50%);width:max(20px,calc(var(--u)*.74));height:max(20px,calc(var(--u)*.74))}
.fk-plate.c-bl .fk-flag,.fk-plate.c-tl .fk-flag{left:calc(var(--u)*.1)}
.wd-flag{flex:0 0 auto;width:28px;height:28px;border-color:var(--mut,currentColor)}
.fk-optline{font-weight:700;font-size:13.5px;margin:4px 0}

/* ---------------------------------------------------------------- game screen */
html.fk-full .mast,html.fk-full .dateline,html.fk-full .xpbar,html.fk-full .bnav,html.fk-full .subbar{display:none!important}
html.fk-full .app{max-width:1180px;padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;padding-top:calc(4px + env(safe-area-inset-top))!important}
.fk-banner{display:flex;align-items:center;gap:8px;min-height:38px;padding:4px 8px;margin:6px 0;border:1px solid var(--ink);border-left:7px solid var(--pc,var(--ink));min-width:0}
.fk-banner .fk-pip{width:19px;height:19px}
.fk-bl,.fk-bn{font:900 19px/1.1 "Playfair Display",serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fk-bs,.fk-watch{font-size:11px;font-style:italic;color:var(--mut);white-space:nowrap}
.fk-chk{margin-left:auto;font:700 10px "Libre Baskerville",serif;text-transform:uppercase;letter-spacing:1.5px;background:var(--fk-s1);color:#fff;padding:3px 7px;white-space:nowrap}
.fk-watch{margin-left:auto}
.fk-banner.mine{background:var(--ink);color:var(--paper)}.fk-banner.mine .fk-pip.s0{fill:var(--paper)}
html.sgm .fk-banner.mine .fk-pip{fill:#0d0c0a}
.fk-banner.wait .fk-bl,.fk-banner.over .fk-bl{font-style:italic;font-weight:700;font-size:15px}
.fk-boardwrap{margin:0 auto;width:100%;max-width:max(260px,calc(100vh - 300px))}

.fkb{position:relative;width:100%;aspect-ratio:1/1;--u:26px;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.fk-sqs{position:absolute;inset:0;display:grid;grid-template-columns:repeat(14,1fr);grid-template-rows:repeat(14,1fr)}
.fks{position:relative;display:block}
.fks.l{background:var(--fk-l)}.fks.d{background:var(--fk-d)}
.fk-arms{position:absolute;inset:0;z-index:1;pointer-events:none}
.fk-arm{position:absolute;background:var(--pc);opacity:.085}
.fk-arm.a-b{left:21.4286%;width:57.1428%;bottom:0;height:14.2857%}.fk-arm.a-t{left:21.4286%;width:57.1428%;top:0;height:14.2857%}
.fk-arm.a-l{top:21.4286%;height:57.1428%;left:0;width:14.2857%}.fk-arm.a-r{top:21.4286%;height:57.1428%;right:0;width:14.2857%}
.fk-frame{position:absolute;inset:0;z-index:2;pointer-events:none}
.fk-frame svg{display:block;width:100%;height:100%;overflow:visible}.fk-frame path{fill:none;stroke:var(--fk-ink);stroke-width:1.6}
html.sgm .fk-frame path{stroke:#d4af37}
.fk-pcs{position:absolute;inset:0;z-index:3;pointer-events:none}
.fk-plates{position:absolute;inset:0;z-index:4;pointer-events:none}
.fk-fx{position:absolute;inset:0;z-index:5;pointer-events:none}
/* square marks */
.fkb{--lm:var(--fk-s0)}.fkb[data-last="1"]{--lm:var(--fk-s1)}.fkb[data-last="2"]{--lm:var(--fk-s2)}.fkb[data-last="3"]{--lm:var(--fk-s3)}
.fks.last::before{content:"";position:absolute;inset:0;background:var(--lm);opacity:.3}
.fks.sel{box-shadow:inset 0 0 0 calc(var(--u)*.1) var(--fk-ink)}
.fks.tgt::after{content:"";position:absolute;inset:33%;border-radius:50%;background:var(--fk-ink);opacity:.42}
.fks.cap::after{content:"";position:absolute;inset:5%;border-radius:50%;border:calc(var(--u)*.11) solid #b3261e;opacity:.85}
.fkb.input .fks.tgt,.fkb.input .fks.cap{cursor:pointer}
html.no-dots .fks.tgt::after,html.no-dots .fks.cap::after{display:none}
.fks.hint{box-shadow:inset 0 0 0 calc(var(--u)*.1) #b3261e}
.fks.hint::before{content:"";position:absolute;inset:0;background:#b3261e;opacity:.16;animation:fkHint 1.3s ease-in-out infinite}
@keyframes fkHint{50%{opacity:.4}}
html.a11y-cb .fks.cap::after{border-color:#0072b2}html.a11y-cb .fks.hint{box-shadow:inset 0 0 0 calc(var(--u)*.1) #0072b2}html.a11y-cb .fks.hint::before{background:#0072b2}

/* pieces: the outer element slides (transform), the inner one breathes, shakes and crumbles */
.fkp{position:absolute;left:0;top:0;width:7.142857%;height:7.142857%;transition:transform .34s cubic-bezier(.2,.8,.2,1);will-change:transform}
.fkb.quick .fkp{transition-duration:.15s}
.fkb.snap .fkp,.fkp.drag{transition:none}
.fkp.drag{z-index:9}.fkp.drag .fkp-i{transform:scale(1.25)}
.fkp-i{position:absolute;inset:2% 2% 1% 2%;transform-origin:50% 88%}
.fkb[data-turn="0"] .fkp.s0:not(.stone) .fkp-i,.fkb[data-turn="1"] .fkp.s1:not(.stone) .fkp-i,.fkb[data-turn="2"] .fkp.s2:not(.stone) .fkp-i,.fkb[data-turn="3"] .fkp.s3:not(.stone) .fkp-i{animation:fkBreath 2.8s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes fkBreath{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3.5%) scale(1.05)}}
.fkp.gone .fkp-i{transform:scale(.15) rotate(40deg);opacity:0;transition:transform .3s ease-in,opacity .3s ease-in;animation:none!important}
.fkp.chk::before{content:"";position:absolute;inset:-6%;border-radius:50%;background:#b3261e;opacity:.5;animation:fkChkRing .9s ease-in-out infinite}
.fkp.chk .fkp-i{animation:fkChk .9s ease-in-out infinite!important}
@keyframes fkChkRing{0%,100%{transform:scale(.8);opacity:.3}50%{transform:scale(1.12);opacity:.62}}
@keyframes fkChk{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.fkp.by::after{content:"";position:absolute;inset:1%;border:calc(var(--u)*.09) solid #b3261e;animation:fkBy 1s ease-in-out infinite}
@keyframes fkBy{50%{opacity:.35}}
html.a11y-cb .fkp.chk::before{background:#e69f00}html.a11y-cb .fkp.by::after{border-color:#e69f00}
.fk-kc{position:absolute;left:25%;right:25%;top:-15%;display:block}
.fk-kc.drop{animation:fkDrop .6s cubic-bezier(.3,1.4,.5,1) both}
@keyframes fkDrop{0%{transform:translateY(-220%) rotate(-30deg);opacity:0}60%{opacity:1}100%{transform:none;opacity:1}}
.fkp.tk.crowned .fk-art .bd{stroke-width:1.5}
/* throw-away effect elements */
.fk-f{position:absolute;left:0;top:0;width:7.142857%;height:7.142857%;display:grid;place-items:center;will-change:transform,opacity}
.fk-f.bp .fk-pip{width:100%;height:100%}.fk-f.bp.grey .fk-pip{fill:#8f8a80}
.fk-f.rg{border:calc(var(--u)*.12) solid var(--pc);border-radius:50%}
.fk-f.pt b{font:900 calc(var(--u)*.78) "Playfair Display",serif;color:var(--pc);-webkit-text-stroke:calc(var(--u)*.14) var(--fk-card);paint-order:stroke fill;white-space:nowrap}
.fk-f.fl svg{width:100%;height:100%;overflow:visible}.fk-f.fl path{fill:var(--fk-gold);stroke:#fff;stroke-width:.8}

/* avatar plates in the four cut corners */
.fk-plate{position:absolute;width:21.4286%;height:21.4286%;padding:calc(var(--u)*.16);display:flex}
.fk-plate.c-bl{left:0;bottom:0;padding-left:0;padding-bottom:0}.fk-plate.c-tl{left:0;top:0;padding-left:0;padding-top:0}
.fk-plate.c-tr{right:0;top:0;padding-right:0;padding-top:0}.fk-plate.c-br{right:0;bottom:0;padding-right:0;padding-bottom:0}
.fk-plate::before{content:"";position:absolute;z-index:-1;inset:calc(var(--u)*.16);background:var(--fk-card);border:1px solid var(--fk-ink)}
.fk-plate.c-bl::before{left:0;bottom:0}.fk-plate.c-tl::before{left:0;top:0}.fk-plate.c-tr::before{right:0;top:0}.fk-plate.c-br::before{right:0;bottom:0}
.fk-plate.on::before{border:calc(var(--u)*.09) solid var(--pc);box-shadow:calc(var(--u)*.1) calc(var(--u)*.1) 0 rgba(20,18,16,.2)}
.fk-plate.chk::before{border-color:#b3261e}
.fk-plate>div{position:relative}
.fk-plate{flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--u)*.03);color:var(--fk-ink)}
.fk-pl-top{align-self:stretch;display:flex;align-items:center;justify-content:space-between;padding:0 calc(var(--u)*.2);height:calc(var(--u)*.6);margin-top:calc(var(--u)*.04)}
.fk-pl-top .fk-pip{width:calc(var(--u)*.52);height:calc(var(--u)*.52)}
.fk-score{font:900 calc(var(--u)*.6)/1 "Playfair Display",serif;font-variant-numeric:tabular-nums;display:inline-block;transform-origin:100% 50%}
.fk-av{width:calc(var(--u)*1.16);height:calc(var(--u)*1.16);flex:0 0 auto}
.fk-avi{display:block;width:100%;height:100%}.fk-avi svg{display:block;width:100%!important;height:100%!important}
.fk-ring{position:absolute;left:-13%;top:-13%;width:126%;height:126%;overflow:visible}
.fk-ring circle{fill:none;stroke-width:3.6}.fk-ring .bg{stroke:var(--fk-ink);opacity:0}
.fk-ring .fg{stroke:var(--pc);stroke-dasharray:100;stroke-dashoffset:0;opacity:0;transition:stroke-dashoffset .5s linear}
.fk-plate.on .fk-ring .bg{opacity:.13}.fk-plate.on .fk-ring .fg{opacity:1;animation:fkRing 1.8s ease-in-out infinite}
.fk-plate.low .fk-ring .fg{stroke:#b3261e}
@keyframes fkRing{50%{opacity:.5}}
.fk-nm{max-width:100%;padding:0 calc(var(--u)*.14);font:700 max(9.5px,calc(var(--u)*.36))/1.15 "Libre Baskerville",serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:calc(var(--u)*.08)}
.fk-tagc{font:italic 400 max(7.5px,calc(var(--u)*.27))/1 "Libre Baskerville",serif;color:#5d574d;letter-spacing:.3px;min-height:calc(var(--u)*.27)}
.fk-plate.on .fk-nm{color:var(--pc)}
.fk-crown{position:absolute;left:21%;width:58%;top:-31%;opacity:0;display:block}
.fk-plate.crown .fk-crown{opacity:1}
.fk-plate.crown.drop .fk-crown{animation:fkDrop .7s cubic-bezier(.3,1.4,.5,1) both}
.fk-bub{position:absolute;left:78%;top:-34%;z-index:3;font-size:calc(var(--u)*.86);line-height:1;background:#fff;border:1px solid var(--fk-ink);padding:calc(var(--u)*.1) calc(var(--u)*.16);opacity:0;transform-origin:0 100%;pointer-events:none;box-shadow:2px 2px 0 rgba(20,18,16,.25)}
.fk-plate.c-tr .fk-bub,.fk-plate.c-br .fk-bub{left:auto;right:78%;transform-origin:100% 100%}
.fk-bub.on{opacity:1;animation:fkBub .45s cubic-bezier(.3,1.6,.5,1)}
@keyframes fkBub{0%{transform:scale(0) rotate(-20deg);opacity:0}100%{transform:none;opacity:1}}
.fk-plate.out::before{background:#d6d2c8;border-style:dashed}
.fk-plate.out .fk-avi{filter:grayscale(1);opacity:.5}.fk-plate.out .fk-pip{fill:#77736b}.fk-plate.out .fk-nm,.fk-plate.out .fk-score{color:#6d6860}
.fkb.pairs .fk-score{display:none}

/* standings strip, event feed, buttons */
.fk-stand{display:flex;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-top:8px}
.fk-st{flex:1 1 0;min-width:0;display:grid;grid-template-columns:auto auto 1fr;align-items:center;column-gap:4px;padding:5px 6px;border-left:1px dotted var(--ink)}
.fk-st:first-child{border-left:0}
.fk-st i{font:italic 700 12px "Playfair Display",serif;color:var(--mut)}
.fk-st .fk-pip{width:14px;height:14px}
.fk-st b{font:900 17px "Playfair Display",serif;text-align:right;font-variant-numeric:tabular-nums}
.fk-st b{grid-row:1;grid-column:3}.fk-st .fk-n{grid-row:2;grid-column:1/-1;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--mut)}
.fk-st.lead b{color:var(--pc)}.fk-st.lead{box-shadow:inset 0 3px 0 var(--pc)}
.fk-st.out{opacity:.5}.fk-st.out .fk-n{text-decoration:line-through}
.fk-stand.pairs{align-items:center;justify-content:center;gap:10px;padding:8px 0}
.fk-stand.pairs .fk-st{display:flex;flex:0 1 auto;border:0;gap:4px;font-size:12px;font-weight:700}.fk-vs{font:italic 700 13px "Playfair Display",serif;color:var(--mut)}
.fk-feed{height:clamp(84px,calc(100vh - 705px),240px);overflow-y:auto;overflow-x:hidden;margin-top:4px;scrollbar-width:thin}
.fk-feed:empty::before{content:"";display:block;height:1px}
.fk-ev{display:flex;align-items:center;gap:6px;min-height:27px;padding:2px 2px;border-bottom:1px dotted var(--ink);font-size:12.5px;white-space:nowrap}
.fk-ev .fk-pip{width:14px;height:14px}
.fk-ev .fsq{font:700 12.5px "Libre Baskerville",serif}.fk-ev .fx-x{color:var(--mut)}
.fk-ev .lb{font-weight:700}.fk-ev .pts{margin-left:auto;font:900 15px "Playfair Display",serif;color:var(--pc)}
.fk-ev.e-out .lb,.fk-ev.e-chk .lb{text-transform:uppercase;letter-spacing:1px;font-size:10.5px}
.fk-ev.e-out{background:var(--paper2)}
.fk-ev .fk-cr{width:20px;display:inline-block}
.fk-ev:first-child{animation:fkEv .3s ease-out}
@keyframes fkEv{0%{opacity:0;transform:translateY(-8px)}}
.fk-ctl .btn{font-size:10.5px;letter-spacing:.2px;padding:12px 2px;min-width:0;flex:1 1 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html:not([lang^="en"]) .fk-ctl .btn{font-size:10.5px;letter-spacing:.2px}
.fk-react{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;border:1px solid var(--ink);padding:8px;margin-top:8px}
.fk-rb{width:44px;height:44px;font-size:24px;line-height:1;border:1px solid var(--ink);border-radius:0;background:var(--paper);cursor:pointer;padding:0}
.fk-react .fk-mute{flex:1 0 100%}

/* finish screen */
.fk-finish{position:fixed;inset:0;z-index:7;background:var(--paper);overflow-y:auto;padding:calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom))}
.fk-fin{max-width:520px;margin:0 auto;text-align:center}
.fk-fin-name{margin:8px 0 2px;font:900 34px/1.1 "Playfair Display",serif;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px}
.fk-fin-name>span{display:inline-flex;align-items:center;gap:8px;min-width:0}.fk-fin-name .fk-pip{width:26px;height:26px}
.fk-podium{display:flex;align-items:flex-end;justify-content:center;gap:6px;margin:18px 0 6px;border-bottom:3px double var(--ink)}
.fk-pod{flex:1 1 0;min-width:0;max-width:112px;display:flex;flex-direction:column;align-items:center;animation:fkRise .6s cubic-bezier(.2,.9,.3,1) both;animation-delay:calc(var(--i)*.14s + .1s)}
@keyframes fkRise{0%{transform:translateY(40px);opacity:0}}
.fk-pod-av{position:relative;width:46px;height:46px;margin-bottom:6px}
.fk-pod.win .fk-pod-av{width:56px;height:56px;margin-bottom:16px}.fk-pod-av .fk-avi svg{width:100%;height:100%}
.fk-pod-av .fk-avi{position:relative}
.fk-laurel{position:absolute;left:-32%;top:-30%;width:164%;height:164%}.fk-laurel path{stroke:var(--fk-s2)}.fk-laurel ellipse{fill:var(--fk-s2)}
.fk-pod.win .fk-laurel{animation:fkLaurel .7s .5s cubic-bezier(.3,1.5,.5,1) both}
@keyframes fkLaurel{0%{transform:scale(.3);opacity:0}}
.fk-pod-n{max-width:100%;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}
.fk-pod-b{position:relative;align-self:stretch;background:var(--pc);color:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding-top:7px;height:44px}
.fk-pod.p1 .fk-pod-b{height:118px}.fk-pod.p2 .fk-pod-b{height:88px}.fk-pod.p3 .fk-pod-b{height:64px}
.fk-pod-b .fk-pip{width:15px;height:15px;fill:var(--paper)}
.fk-pod-b b{font:900 24px/1 "Playfair Display",serif}.fk-pod.p4 .fk-pod-b{flex-direction:row;justify-content:center;gap:5px;padding-top:0;align-items:center}.fk-pod.p4 .fk-pod-b b{font-size:19px}
.fk-pod-b i{position:absolute;bottom:4px;left:0;right:0;font:italic 700 12px "Playfair Display",serif;opacity:.75}.fk-pod.p4 .fk-pod-b i,.fk-pod.p3 .fk-pod-b i{display:none}
html.sgm .fk-pod.s0 .fk-pod-b{color:#0d0c0a}html.sgm .fk-pod.s0 .fk-pod-b .fk-pip{fill:#0d0c0a}
.fk-bd{width:100%;border-collapse:collapse;font-size:12.5px;margin:14px 0 12px}
.fk-bd th,.fk-bd td{padding:6px 3px;border-bottom:1px dotted var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.fk-bd thead th{font:700 9.5px "Libre Baskerville",serif;text-transform:uppercase;letter-spacing:.6px;color:var(--mut);border-bottom:1px solid var(--ink)}
.fk-bd tbody th{text-align:left;font-weight:700;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fk-bd tbody th .fk-pip{width:13px;height:13px;margin-right:5px}
.fk-bd td b{font:900 16px "Playfair Display",serif}

/* tutorial */
.fk-tutcard{padding:8px 2px 0}
.fk-tutcard h3{margin:8px 0 6px;font:900 24px/1.1 "Playfair Display",serif}
.fk-tutcard p{margin:0 0 8px;font-size:13.5px;line-height:1.5}
.fk-dots{display:flex;gap:6px;justify-content:center}
.fk-dots i{width:9px;height:9px;border:1px solid var(--ink);transform:rotate(45deg)}.fk-dots i.was{background:var(--mut);border-color:var(--mut)}.fk-dots i.on{background:var(--fk-s1);border-color:var(--fk-s1)}
.fk-task{border:1px solid var(--ink);border-left:6px solid var(--fk-s1);padding:8px 10px;font-weight:700}
.fk-task.ok{border-left-color:var(--fk-s3);background:var(--paper2)}
.fk-tutsec .fk-boardwrap{max-width:max(240px,calc(100vh - 330px));margin-top:6px}

/* ---------------------------------------------------------------- Wild Stressed: the 16 x 16 board, the Pegasus and the Griffin
   Sizes: one square is 1/16 of the board (6.25 %), a cut corner 3/16 (18.75 %), the home band of an army 2/16 (12.5 %).
   Look: the paper squares stay, the dark squares show a dusk sky (one gradient on the board, clipped to the cross: no
   per-square filters), a teal frame with a gold glint running round it and four sparkles on the cut corners. */
.fkb.n16 .fkp,.fkb.n16 .fk-f{width:6.25%;height:6.25%}
.fkb.n16 .fk-plate{width:18.75%;height:18.75%}
.fkb.n16 .fk-arm.a-b{left:18.75%;width:62.5%;height:12.5%}.fkb.n16 .fk-arm.a-t{left:18.75%;width:62.5%;height:12.5%}
.fkb.n16 .fk-arm.a-l{top:18.75%;height:62.5%;width:12.5%}.fkb.n16 .fk-arm.a-r{top:18.75%;height:62.5%;width:12.5%}
.fkb.wild{--fk-l:#f5f2e8;--fk-wd1:#b7cfd2;--fk-wd2:#cdc5db;--fk-wf:#1f4450}
.fkb.wild .fk-sqs{background:linear-gradient(160deg,var(--fk-wd2) 0%,#c6cfdc 45%,var(--fk-wd1) 100%);
  clip-path:polygon(18.75% 0,81.25% 0,81.25% 18.75%,100% 18.75%,100% 81.25%,81.25% 81.25%,81.25% 100%,18.75% 100%,18.75% 81.25%,0 81.25%,0 18.75%,18.75% 18.75%)}
.fkb.wild .fks.d{background:transparent}
.fkb.wild .fk-frame path{stroke:var(--fk-wf);stroke-width:1.8}
.fkb.wild .fk-frame .shim{fill:none;stroke:#e8c25a;stroke-width:.11;stroke-linecap:round;stroke-dasharray:5 95;animation:fkShim 9s linear infinite}
@keyframes fkShim{to{stroke-dashoffset:-100}}
.fk-glint{position:absolute;width:5%;height:5%;transform:translate(-50%,-50%);pointer-events:none}
.fk-glint svg{display:block;width:100%;height:100%;fill:#e8c25a;stroke:#fff;stroke-width:.8;animation:fkGlint 3.6s ease-in-out infinite;animation-delay:calc(var(--g)*-.9s)}
@keyframes fkGlint{0%,100%{transform:scale(.45) rotate(0deg);opacity:.25}50%{transform:scale(1) rotate(45deg);opacity:1}}
html.sgm .fkb.wild .fk-frame path{stroke:#d4af37}
html.a11y-con .fkb.wild .fk-sqs{background:#bdbdbd}html.a11y-con .fkb.wild .fk-frame .shim,html.a11y-con .fk-glint{display:none}
/* the two new pieces move a little while they wait: the Pegasus beats its wing, the Griffin twitches its ear tufts */
.fk-art .wg{transform-box:fill-box;transform-origin:0 100%}
.fkp.te:not(.stone) .wg{animation:fkWing 2.4s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes fkWing{0%,100%{transform:rotate(0)}40%{transform:rotate(-11deg) scaleY(1.06)}60%{transform:rotate(-7deg)}}
.fkp.tf:not(.stone) .wg{transform-origin:50% 100%;animation:fkCrest 3.2s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes fkCrest{0%,100%{transform:scaleY(1)}30%{transform:scaleY(1.22)}55%{transform:scaleY(.9)}}
.fkp.tf:not(.stone) .fk-art{transform-origin:50% 88%;animation:fkTilt 5.2s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes fkTilt{0%,100%{transform:rotate(0)}45%{transform:rotate(-4deg)}70%{transform:rotate(2deg)}}
/* effects of the new moves: feathers behind a Pegasus ride, the shadow and the dust of a Griffin leap, the en passant knock */
.fk-f.fe svg{width:62%;height:62%;overflow:visible}.fk-f.fe path{fill:var(--fk-card);stroke:var(--pc);stroke-width:.7;stroke-linejoin:round}.fk-f.fe .q{fill:none;stroke-width:.5}
.fk-f.gs::before{content:"";display:block;width:72%;height:22%;margin-top:72%;border-radius:50%;background:rgba(10,20,25,.5)}
.fk-f.du::before{content:"";display:block;width:42%;height:42%;border-radius:50%;background:#b5a383}
.fk-f.ep svg{width:85%;height:85%;overflow:visible}.fk-f.ep path{fill:none;stroke:var(--fk-gold);stroke-width:2.2;stroke-linecap:round}
.fk-rl .fk-mini{width:24px;height:24px;margin-top:-3px}.fk-rl.wl>li>.fk-pip{margin:2px 4.5px 0}
.fk-fin-game{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 8px;font:900 28px/1 "Playfair Display",serif}.fk-fin-game .fk-mini{width:36px;height:36px}
.fk-wild .fk-pts{gap:2px}

/* ---------------------------------------------------------------- wide screens: board left, table talk right */
@media (min-width:900px){
  .fk-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
  .fk-boardwrap{max-width:min(100%,calc(100vh - 150px))}.fk-tutsec .fk-boardwrap{max-width:min(100%,calc(100vh - 90px))}
  .fk-side{border-left:1px solid var(--ink);padding-left:24px;position:sticky;top:8px}
  .fk-stand{flex-direction:column;margin-top:6px}
  .fk-st{grid-template-columns:22px 20px 1fr auto;padding:8px 4px;border-left:0;border-top:1px dotted var(--ink)}.fk-st:first-child{border-top:0}
  .fk-st .fk-n{grid-column:auto;grid-row:1;grid-column-start:3;font-size:14px;color:var(--ink)}.fk-st b{font-size:22px;grid-column:4}.fk-st .fk-pip{width:17px;height:17px}.fk-st i{font-size:15px}
  .fk-st.lead{box-shadow:inset 4px 0 0 var(--pc);padding-left:10px}
  .fk-feed{height:auto;max-height:max(120px,calc(100vh - 470px));min-height:120px;margin-top:10px;border-top:1px solid var(--ink)}
  .fk-ev{font-size:14px;min-height:32px}.fk-mini{width:24px;height:24px}
  .fk-ctl{flex-wrap:wrap}.fk-ctl .btn{flex:1 1 40%;font-size:11.5px;letter-spacing:.8px}
  .fk-banner{min-height:46px}.fk-bl,.fk-bn{font-size:23px}
  .fk-tutcard h3{font-size:30px}.fk-tutcard p{font-size:15px}
  .fk-title{font-size:60px}.fk-hand{height:120px}.fk-cardlet{width:78px;height:108px;padding-top:22px}
  .fk-choices{grid-template-columns:repeat(4,1fr)}
}

/* ---------------------------------------------------------------- Wild Stressed for two (the duel): fourkings-ui.js section 8
   A plain 10 x 10 board (one square = 10 %) in the Wild Stressed look: paper squares, a dusk sky under the dark ones, the teal
   frame with its gold glint. No suits: White is ivory with an ink edge, Black is ink; the corner plates and the home
   bands of the four-player table are off. Coordinates sit outside the board (ranks left, files below). */
.fkb.n10 .fkp,.fkb.n10 .fk-f{width:10%;height:10%}
.fkb.n10 .fk-plates,.fkb.n10 .fk-arms{display:none}
.fkb.duel{--fk-l:#f5f2e8;--fk-wd1:#a9c6ca;--fk-wd2:#c2b8d6;--fk-wf:#1f4450;--lm:#0f6b5c}
.fkb.duel[data-last]{--lm:#0f6b5c}
.fkb.duel .fk-sqs{background:linear-gradient(160deg,var(--fk-wd2) 0%,#b9c6d8 45%,var(--fk-wd1) 100%)}
.fkb.duel .fks.d{background:transparent}
.fkb.duel .fks.last::before{opacity:.36}
.fkb.duel .fk-frame path{stroke:var(--fk-wf);stroke-width:1.8}
.fkb.duel .fk-frame .shim{fill:none;stroke:#e8c25a;stroke-width:.09;stroke-linecap:round;stroke-dasharray:5 95;animation:fkShim 9s linear infinite}
.fkb.duel .fk-glint{display:none}
html.sgm .fkb.duel .fk-frame path{stroke:#d4af37}
html.a11y-con .fkb.duel .fk-sqs{background:#bdbdbd}html.a11y-con .fkb.duel .fk-frame .shim{display:none}
.fkb.duel .s0,.fk-duel .fk-mini.s0,.fk-duel .wd-cl.s0,.fk-duel .wd-botav.s0{--pc:#fbf7ec;--pe:#1c1a17;--fk-pp:#1c1a17}
.fkb.duel .s1,.fk-duel .fk-mini.s1,.fk-duel .wd-cl.s1,.fk-duel .wd-botav.s1{--pc:#2a2622;--pe:#000;--fk-pp:#fbf7ec}
.fkb.duel .fk-f.rg,.fkb.duel .fk-f.bp{--pc:#d9a514}
html.a11y-con .fkb.duel .s0 .fk-art .bd{stroke:#000}
.fk-duel .fk-mini{background:#e4dfd0;border-radius:50%}
.wd-chip{display:inline-block;flex:0 0 auto;width:14px;height:14px;border-radius:50%;border:1.5px solid #1c1a17;background:#fbf7ec}
.wd-chip.s1{background:#2a2622;box-shadow:0 0 0 1px #fbf7ec}
.wd-dot{flex:0 0 auto;width:8px;height:8px;margin:6px 8px 0;background:#0f6b5c;transform:rotate(45deg)}
.wd-botav{display:block;width:100%;height:100%;border-radius:50%;border:1px solid #1c1a17;background:#cfdadb;padding:9%}
/* lobby */
.fk-cardlet.wd-cl{padding:12px 8px 6px}
.fk-choice.wd-ch .fk-mini{width:22px;height:22px}
.fk-panel.wd-panel{--pc:#1f4450}
.fk-modesw{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:14px 0 4px;padding-top:12px;border-top:1px dotted var(--ink)}
.fk-modesw small{font-size:11.5px;font-style:italic;color:var(--mut)}
#wdResume .fk-resume{border-left-color:#0f6b5c}
.wd-srow>.wd-chip{width:18px;height:18px}
.fk-trow>.wd-chip{width:20px;height:20px}
/* game screen */
.fk-boardwrap.wd-wrap{max-width:max(250px,calc(100vh - 318px))}
.wd-grid{display:grid;grid-template-columns:13px minmax(0,1fr);grid-template-rows:auto 13px}
.wd-ranks{display:flex;flex-direction:column}.wd-files{display:flex}
.wd-ranks i,.wd-files i{flex:1 1 0;display:grid;place-items:center;font:700 9px/1 "Libre Baskerville",serif;font-style:normal;color:var(--mut)}
.wd-bar{display:flex;align-items:center;gap:7px;min-height:36px;margin:2px auto;padding:3px 2px 3px 6px;min-width:0;border-left:4px solid transparent;max-width:max(250px,calc(100vh - 318px))}
.wd-bar.on{border-left-color:#0f6b5c}
.wd-av{display:block;flex:0 0 28px;width:28px;height:28px}.wd-av svg{display:block;width:100%!important;height:100%!important}
.wd-nm{font:700 14px/1.2 "Libre Baskerville",serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wd-sub{font-size:11px;font-style:italic;color:var(--mut);white-space:nowrap}
.wd-clock{margin-left:auto;font:900 18px/1 "Playfair Display",serif;font-variant-numeric:tabular-nums}
.wd-clock.low{color:#b3261e}
.fk-banner.wd-bn{--pc:#0f6b5c;margin:4px 0}
.wd-offer{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--ink);border-left:6px solid #0f6b5c;padding:6px 10px;margin:6px 0;font-size:13.5px;font-weight:700}
.wd-offer-b{display:flex;gap:6px;flex:0 0 auto}
.wd-moves{height:clamp(84px,calc(100vh - 690px),220px);overflow-y:auto;overflow-x:hidden;margin-top:4px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);scrollbar-width:thin}
.wd-mv{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1fr);align-items:center;min-height:27px;border-bottom:1px dotted var(--ink)}
.wd-mv:last-child{border-bottom:0}
.wd-mv i{font:italic 700 12px "Playfair Display",serif;color:var(--mut);text-align:right;padding-right:8px}
.wd-mv span{display:flex;align-items:center;gap:3px;min-width:0;white-space:nowrap}
.wd-mv b{font:700 13px "Libre Baskerville",serif}
.wd-mv .fk-mini{width:19px;height:19px}
.wd-nomv{margin:10px 0;text-align:center;font-style:italic}
/* result screen */
.wd-res{font-size:30px}
.wd-vs{display:flex;align-items:flex-start;justify-content:center;gap:14px;margin:14px 0 8px;border-bottom:3px double var(--ink);padding-bottom:12px}
.wd-vs .fk-vs{align-self:center}
.wd-pl{flex:1 1 0;min-width:0;max-width:170px;display:flex;flex-direction:column;align-items:center;gap:6px}
.wd-pl .fk-pod-av{width:56px;height:56px;margin:16px 0 16px}
.wd-pl.win .fk-laurel{animation:fkLaurel .7s .3s cubic-bezier(.3,1.5,.5,1) both}
.wd-pl-n{display:flex;align-items:center;gap:6px;max-width:100%;font-weight:700;font-size:13.5px}
.wd-pl-n span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wd-pt{font:900 30px/1 "Playfair Display",serif}
.wd-fin .fk-fin-game .fk-mini{width:38px;height:38px}
@media (min-width:900px){
  .fk-boardwrap.wd-wrap,.wd-bar{max-width:min(100%,calc(100vh - 200px))}
  .wd-moves{height:auto;min-height:140px;max-height:max(140px,calc(100vh - 330px));margin-top:10px}
  .wd-mv{min-height:32px}.wd-mv b{font-size:14.5px}.wd-mv .fk-mini{width:22px;height:22px}
  .wd-ranks i,.wd-files i{font-size:11px}.wd-grid{grid-template-columns:16px minmax(0,1fr);grid-template-rows:auto 16px}
  .wd-nm{font-size:16px}.wd-res{font-size:36px}
}
html.a11y-big .wd-mv b{font-size:14.5px}

/* ---------------------------------------------------------------- accessibility */
html.a11y-big .fkp-i{inset:-7% -7% -3% -7%}
html.a11y-big .fk-nm{font-size:max(11px,calc(var(--u)*.42))}html.a11y-big .fk-ev{font-size:14.5px}html.a11y-big .fk-st .fk-n{font-size:12px}
html.a11y-con .fkb{--fk-l:#ffffff;--fk-d:#bdbdbd}
html.a11y-con .fk-art .bd{stroke:#000;stroke-width:2.3}html.a11y-con .fk-art.t-e .bd,html.a11y-con .fk-art.t-f .bd,html.a11y-con .fkb.duel .s0 .fk-art.t-e .bd,html.a11y-con .fkb.duel .s0 .fk-art.t-f .bd{stroke:#c8281e;stroke-width:2.8}html.a11y-con.a11y-cb .fk-art.t-e .bd,html.a11y-con.a11y-cb .fk-art.t-f .bd,html.a11y-con.a11y-cb .fkb.duel .s0 .fk-art.t-e .bd,html.a11y-con.a11y-cb .fkb.duel .s0 .fk-art.t-f .bd{stroke:#d55e00}html.a11y-con .fk-arm{display:none}
html.a11y-con .fk-frame path{stroke:#000;stroke-width:3}html.a11y-con .fk-plate::before{border:2px solid #000;background:#fff}
html.a11y-con .fks.last::before{opacity:.45}html.a11y-con .fks.tgt::after{opacity:.8}
/* a paused table (the player looked away): everything waits */
.fkb.paused *,.fkb.paused *::before,.fkb.paused *::after{animation-play-state:paused!important}
/* the pulse of a king in check is marked !important above: it has to be stopped by name in calm mode and reduced motion */
html.a11y-calm .fkp.chk .fkp-i{animation:none!important}
@media (prefers-reduced-motion:reduce){
  .fk *,.fk *::before,.fk *::after,.fk-inmodal *{animation:none!important;transition:none!important}
  .fk .fkp.chk .fkp-i{animation:none!important}
}
