/* Infographics inside guides ([mx_fig name="..."]). Final state is the default; .figjs .fig:not(.in) is the "before" state. */
.fig{margin:24px 0 30px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface2)}
.fig-t{font-family:var(--font-display);font-size:.92rem;font-weight:600;line-height:1.35;margin:0 0 16px}
.entry-content .fig .fig-n{margin:14px 0 0;font-size:.85rem;color:var(--muted);font-weight:400}
.entry-content .fig ol,.entry-content .fig ul{border:0;margin:0;padding:0}
.entry-content .fig li{border:0;padding:0}

/* refresh rate */
.fr-row{display:grid;grid-template-columns:72px 1fr 130px;gap:12px;align-items:center;margin:12px 0}
.fr-hz{font-family:var(--font-mono);font-size:.85rem}
.fr-track{position:relative;height:18px;border-radius:9px;background:color-mix(in srgb,var(--line) 70%,transparent)}
.fr-ball{position:absolute;top:2px;left:0;width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 70%,transparent)}
.fig.in .fr-ball{animation:frRun 3.2s linear infinite alternate}
@keyframes frRun{from{left:2px}to{left:calc(100% - 16px)}}
.fr-ms{font-family:var(--font-mono);font-size:.76rem;color:var(--muted)}

/* bars: resolution, memory speed, load */
.px-row{display:grid;grid-template-columns:112px 1fr;gap:4px 12px;align-items:center;margin:12px 0}
.px-row>b{font-family:var(--font-mono);font-size:.85rem}
.px-row>span{grid-column:2;font-family:var(--font-mono);font-size:.76rem;color:var(--muted)}
.px-bar{height:16px;border-radius:8px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden}
.px-bar i{display:block;height:100%;width:var(--w);border-radius:8px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#fff));transition:width 1.3s cubic-bezier(.2,.8,.2,1)}
.px-bar.hot i{box-shadow:0 0 14px color-mix(in srgb,var(--accent) 60%,transparent)}
.figjs .fig:not(.in) .px-bar i{width:0}

/* memory slots */
.xm-board{display:flex;gap:8px;margin-top:20px;padding:12px;border:1px dashed var(--line);border-radius:12px}
.xm-cpu{flex:0 0 64px;display:grid;place-items:center;border-radius:8px;background:var(--surface);border:1px solid var(--line);font:.78rem var(--font-mono);color:var(--muted)}
.xm-slot{flex:1;min-height:62px;display:grid;align-items:end;justify-items:center;padding-bottom:6px;border-radius:6px;background:var(--surface);border:1px solid var(--line);color:var(--muted);font:.75rem var(--font-mono)}
.xm-slot em{font-style:normal}
.xm-slot.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface));color:var(--fg)}
.fig.in .xm-slot.on{animation:xmPulse 2s ease-in-out infinite}
@keyframes xmPulse{50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}}

/* Resizable BAR */
.rb-row{display:grid;grid-template-columns:72px 1fr 130px;gap:12px;align-items:center;margin:12px 0}
.rb-row>b{font-family:var(--font-mono);font-size:.85rem}
.rb-row>em{font-style:normal;font-family:var(--font-mono);font-size:.76rem;color:var(--muted)}
.rb-vram{position:relative;height:32px;border-radius:8px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.rb-vram span{position:absolute;inset:0;display:grid;place-items:center;z-index:1;font:.72rem var(--font-mono);color:var(--fg);mix-blend-mode:normal}
.rb-win{position:absolute;top:0;bottom:0;left:0;width:8%;background:var(--accent);opacity:.8}
.fig.in .rb-win{animation:rbSlide 2.6s ease-in-out infinite alternate}
@keyframes rbSlide{to{left:92%}}
.rb-all{position:absolute;inset:0;background:var(--accent);opacity:.55;transform-origin:left;transition:transform 1.4s cubic-bezier(.2,.8,.2,1)}
.figjs .fig:not(.in) .rb-all{transform:scaleX(0)}

/* airflow */
.fig-airflow svg{display:block;width:100%;height:auto}
.af-case{fill:var(--surface);stroke:var(--line);stroke-width:2}
.af-gpu,.af-cpu{fill:var(--surface2);stroke:var(--line);stroke-width:1.5}
.af-txt{fill:var(--muted);font:12px var(--font-mono)}
.af-lbl{fill:var(--muted);font:11px var(--font-body)}
.af-ring{fill:none;stroke:var(--muted);stroke-width:1.5}
.af-fan path{fill:var(--accent);opacity:.85}
.fig.in .af-fan{animation:afSpin 1.1s linear infinite}
@keyframes afSpin{to{transform:rotate(360deg)}}
.af-air{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:6 10}
.af-air.cold{stroke:#35d3ff}
.af-air.hot{stroke:#ff6a3d}
.fig.in .af-air{animation:afDash 1s linear infinite}
@keyframes afDash{to{stroke-dashoffset:-16}}

/* thermal paste */
.ps-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ps-item{text-align:center}
.ps-die{position:relative;width:min(120px,100%);aspect-ratio:1;margin:0 auto 10px;border-radius:12px;background:var(--surface);border:2px solid var(--line);display:grid;place-items:center}
.ps-blob{display:block;width:var(--s,60%);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#eef1f7,#9aa3b5)}
.ps-item.lo{--s:24%}
.ps-item.ok{--s:72%}
.ps-item.ok .ps-blob{border-radius:30%}
.ps-item.hi{--s:128%}
.ps-item.hi .ps-die{border-color:#ff5d6c}
.ps-item b{display:block;font-size:1.3rem;line-height:1.2}
.ps-item.ok b{color:#4be3a0}
.ps-item.lo b,.ps-item.hi b{color:#ff5d6c}
.ps-item span{font-size:.85rem;color:var(--muted)}
.fig.in .ps-blob{animation:psSpread 4s ease-in-out infinite}
@keyframes psSpread{0%{transform:scale(.3)}35%,100%{transform:scale(1)}}

/* bottleneck */
.bn-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bn-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.bn-card>b{display:block;margin-bottom:10px;font-size:.95rem}
.bn-meter{display:grid;grid-template-columns:34px 1fr 42px;gap:8px;align-items:center;margin:8px 0;font:.78rem var(--font-mono)}
.bn-meter em{font-style:normal;text-align:right}
.entry-content .bn-card p{margin:10px 0 0;font-size:.85rem;color:var(--muted);font-weight:400}

/* keys */
.ky-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin:12px 0}
.ky-row>b{flex:0 0 150px;font-size:.9rem}
.ky{display:inline-block;min-width:46px;padding:8px 12px;border-radius:8px;border:1px solid var(--line);border-bottom-width:4px;background:var(--surface);font:600 .85rem var(--font-mono);text-align:center}
.ky-g{display:inline-flex;align-items:center;gap:6px}
.ky-g em{font-style:normal;font-size:.8rem;color:var(--muted)}
.fig.in .ky{animation:kyPress 2.6s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes kyPress{0%,14%,100%{transform:none;border-bottom-width:4px}6%{transform:translateY(3px);border-bottom-width:1px;background:color-mix(in srgb,var(--accent) 35%,var(--surface))}}

/* switches */
.tg-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.tg-item{display:grid;gap:8px;justify-items:start;padding:14px;border-radius:12px;border:1px solid var(--line);background:var(--surface)}
.tg-item em{font-style:normal;font:.72rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tg-sw{position:relative;display:block;width:48px;height:26px;border-radius:13px;background:#35c98a;transition:background .45s var(--d,0s)}
.tg-sw i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transform:translateX(22px);transition:transform .45s var(--d,0s)}
.figjs .fig:not(.in) .tg-sw{background:var(--line)}
.figjs .fig:not(.in) .tg-sw i{transform:none}

/* BIOS update steps */
.fl-steps{list-style:none;display:grid;gap:10px}
.px-row.px-two{grid-template-columns:112px 1fr}
.fl-steps li{display:flex;gap:14px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line);transition:opacity .5s var(--d,0s),transform .5s var(--d,0s)}
.fl-steps li b{flex:0 0 30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 .85rem var(--font-mono)}
.figjs .fig:not(.in) .fl-steps li{opacity:0;transform:translateY(10px)}
.fl-warn{display:flex;gap:10px;align-items:center;margin-top:14px;padding:10px 14px;border-radius:10px;border:1px solid #ff5d6c;background:color-mix(in srgb,#ff5d6c 12%,transparent);font-size:.9rem}
.fl-warn i{flex:0 0 10px;height:10px;border-radius:50%;background:#ff5d6c}
.fig.in .fl-warn i{animation:flBlink 1.2s ease-in-out infinite}
@keyframes flBlink{50%{opacity:.25}}

@media (max-width:640px){
  .fig{padding:16px}
  .px-row{grid-template-columns:84px 1fr}
  .fr-row{grid-template-columns:60px 1fr}.fr-ms{grid-column:2}
  .rb-row{grid-template-columns:60px 1fr}.rb-row>em{grid-column:2}
  .bn-row{grid-template-columns:1fr}
  .ky-row>b{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){
  .fig *{animation:none!important;transition:none!important}
  .figjs .fig:not(.in) .px-bar i{width:var(--w)}
  .figjs .fig:not(.in) .rb-all{transform:none}
  .figjs .fig:not(.in) .tg-sw{background:#35c98a}
  .figjs .fig:not(.in) .tg-sw i{transform:translateX(22px)}
  .figjs .fig:not(.in) .fl-steps li{opacity:1;transform:none}
}
