.dff{--dff-line:color-mix(in srgb,var(--hair),var(--ink) 22%);--dff-mark:var(--s3);--dff-soft:color-mix(in srgb,var(--paper),var(--ink) 9%);--dff-sans:var(--mono);margin:26px 0 32px}.dff figure{background-color:var(--paper);background-image:radial-gradient(var(--dot) 1px,transparent 1.2px);background-size:16px 16px;border:1px solid var(--dff-line);margin:0;min-width:0;position:relative}.dff .plate-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:space-between;padding:12px 14px 0}.paper-document .dff p{font-size:inherit;line-height:inherit;margin:0;max-width:none}.dff .caps,.paper-document .dff .caps{color:var(--ink-2);font:600 10.5px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}.paper-document .dff .plate-title{color:var(--ink);font-size:13px;font-weight:600;line-height:1.45;max-width:64ch}.dff .plate-body{overflow-x:auto;padding:8px 10px 4px;scrollbar-width:thin}.dff .plate-body:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.dff .plate-body svg{display:block;height:auto;overflow:visible;width:100%}.dff .plate-foot{color:var(--ink-2);padding:4px 14px 12px}.paper-document .dff .plate-foot p{color:var(--ink-2);font-size:12px;line-height:1.55;max-width:72ch}.paper-document .dff .swipe{display:none;margin:2px 14px 4px}@media (max-width:760px){.paper-document .dff .swipe{display:block}.dff .plate-body svg{min-width:720px}}.dff .ctrl{white-space:nowrap}.dff .readouts{border-top:1px solid var(--dff-line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.dff .readouts>div{border-right:1px solid var(--hair);min-width:0;padding:10px 14px}.dff .readouts>div:last-child{border-right:0}.dff .readouts .v{color:var(--ink);font:700 22px/1.1 var(--disp);font-stretch:80%;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:4px}@media (max-width:640px){.dff .readouts{grid-template-columns:repeat(2,minmax(0,1fr))}.dff .readouts>div:nth-child(2){border-right:0}.dff .readouts>div:nth-child(-n+2){border-bottom:1px solid var(--hair)}}.dff svg text{font-family:var(--mono)}.dff .s-lbl{fill:var(--ink);font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase}.dff .s-sub{fill:var(--ink-2);font:400 10.5px var(--mono)}.dff .s-txt{fill:var(--ink-2);font:400 11px var(--dff-sans);letter-spacing:-.03em}.dff .s-name{fill:var(--ink);font:600 11.5px var(--dff-sans);letter-spacing:-.03em}.dff .s-big{fill:var(--ink);font:700 15px var(--disp);font-stretch:80%}.dff .s-box{fill:var(--paper);stroke:var(--dff-line);stroke-width:1.25}.dff .s-box.ink{stroke:var(--ink)}.dff .s-wall{fill:var(--paper-2);stroke:var(--dff-line);stroke-width:1}.dff .s-line{fill:none;stroke:var(--dff-mark);stroke-width:1.25}.dff .s-line.ink{stroke:var(--ink-3)}.dff .s-dash{fill:none;stroke:var(--ink-3);stroke-dasharray:3 5;stroke-width:1.25}.dff .s-flow{animation:dff-flow 1.2s linear infinite;fill:none;stroke:var(--ink-3);stroke-dasharray:2 8;stroke-width:1.5}.dff .s-arrow{fill:var(--ink-3)}.dff .lamp{fill:var(--paper);stroke:var(--dff-mark);stroke-width:1;transition:fill .25s,stroke .25s}.dff .lamp.on-teal{fill:var(--ink);stroke:var(--ink)}.dff .lamp.on-coral,.dff .lamp.on-yellow{fill:var(--paper);stroke:var(--ink);stroke-width:2.6}.dff .lamp.on-coral{stroke-dasharray:2.2 1.7}.dff .glow{fill:var(--ink);opacity:0;transition:opacity .3s}.dff .glow.on{opacity:calc(.1 * var(--go, 1))}.dff .blink{animation:dff-blink 1s steps(2,jump-none) infinite}.dff .pulse{animation:dff-pulse 1.6s ease-in-out infinite}.dff .t-coral,.dff .t-ink,.dff .t-teal,.dff .t-yellow{fill:var(--ink);font-weight:600}.dff .t-coral{font-style:italic}.dff .t-dim{fill:var(--ink-3)}.dff circle.t-ink,.dff circle.t-teal{fill:var(--ink)}.dff .card rect,.dff .st-coral,.dff .st-teal,.dff .st-yellow{stroke:var(--ink)}.dff .card rect{fill:var(--paper);stroke-width:2}.dff .card text{fill:var(--ink);font:600 10.5px var(--mono);letter-spacing:.04em}.dff .card rect.chg{fill:var(--paper);stroke:var(--ink);stroke-dasharray:3 2;stroke-width:1.5}.dff .card text.chg-t{fill:var(--ink);font-style:italic}.dff .roller{fill:var(--paper-2);stroke:var(--dff-line);stroke-width:1}.dff .spoke{animation:dff-spin 1.1s linear infinite;stroke:var(--dff-mark);stroke-width:1.25;transform-box:fill-box;transform-origin:center}.dff .belt-top{animation:dff-belt .9s linear infinite;fill:none;stroke:var(--dff-mark);stroke-dasharray:6 10;stroke-width:2}.dff .paused .belt-top,.dff .paused .blink,.dff .paused .pulse,.dff .paused .s-flow,.dff .paused .spoke{animation-play-state:paused}@keyframes dff-flow{to{stroke-dashoffset:-20}}@keyframes dff-belt{to{stroke-dashoffset:-16}}@keyframes dff-spin{to{transform:rotate(1turn)}}@keyframes dff-blink{50%{opacity:.25}}@keyframes dff-pulse{0%,to{opacity:.9}50%{opacity:.35}}.dff .tl-js [data-show]{opacity:0;transition:opacity .35s ease}.dff .tl-js [data-show].on{opacity:1}.dff .ring-bg{fill:none;stroke:var(--dff-line);stroke-width:3}.dff .ring{fill:none;stroke:var(--ink);stroke-dasharray:100;stroke-dashoffset:0;stroke-width:3;transform:rotate(-90deg);transform-box:fill-box;transform-origin:center}.dff .lv-bar{fill:var(--dff-soft);stroke:var(--ink-2);stroke-width:1;transform-box:fill-box;transform-origin:bottom;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.dff .tl-js .lv-bar:not(.grown){transform:scaleY(0)}.dff .bar{transform-box:fill-box;transform-origin:left;transition:transform .9s cubic-bezier(.2,.7,.2,1)}.dff .tl-js .bar:not(.grown){transform:scaleX(0)}.dff .bar.est{fill:none;stroke:var(--ink-3);stroke-dasharray:3 3;stroke-width:1.25}.dff .bar.act.ok{fill:var(--ink)}.dff .bar.act.over{fill:url(#dff-hatch);stroke:var(--ink);stroke-width:1}.dff .dff-hatch-bg{fill:var(--paper)}.dff .dff-hatch-ln{stroke:var(--ink);stroke-width:2.2}.dff .sw-track{fill:var(--paper-2);stroke:var(--dff-line)}.dff .sw-knob{fill:var(--ink-3)}.dff .beat{fill:none;stroke:var(--ink);stroke-width:1.5}.dff .cat{display:grid;grid-gap:6px;gap:6px;grid-template-columns:112px repeat(5,minmax(0,1fr))}.dff .cat .fam{align-items:center;border-top:2px solid var(--ink);color:var(--ink-2);display:flex;font:600 10.5px/1.3 var(--mono);letter-spacing:.1em;padding-top:6px;text-transform:uppercase}.dff .tile{background:var(--paper);border:1px solid var(--dff-line);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;min-height:88px;min-width:0;padding:9px 9px 8px;position:relative;text-decoration:none;transition:border-color .2s,transform .2s}.dff .tile:focus-visible,.dff .tile:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-2px)}.dff .tile .sym{font:700 24px/1 var(--disp);font-stretch:76%;letter-spacing:-.03em}.dff .tile .nm{color:var(--ink-2);font:500 11px/1.25 var(--mono);-webkit-hyphens:manual;hyphens:manual;margin-top:6px;overflow-wrap:anywhere;padding-right:12px}.dff .tile .no{color:var(--ink-2);font:500 10px var(--mono);position:absolute;right:8px;top:7px}.dff .tile .lt{background:var(--paper);border-radius:50%;bottom:9px;box-shadow:inset 0 0 0 1px var(--dff-mark);height:8px;position:absolute;right:9px;transition:background .25s,box-shadow .25s;width:8px}.dff .tile.lit .lt{background:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.dff .tile.lit-y .lt{background:var(--paper);box-shadow:inset 0 0 0 2.5px var(--ink)}.dff .tile.ext{border-style:dashed}.dff .tile.empty{background:transparent;border:1px dashed var(--hair);min-height:88px}@media (max-width:900px){.dff .cat{grid-template-columns:repeat(3,minmax(0,1fr))}.dff .cat .fam{grid-column:1/-1;margin-top:8px}.dff .tile.empty{display:none}}@media (max-width:480px){.dff .tile{padding:8px}.dff .tile .nm{font-size:10px;padding-right:0}.dff .tile .lt{bottom:auto;right:8px;top:24px}}.dff-key{border-bottom:1px solid var(--hair);border-top:1px solid var(--hair);display:flex;flex-wrap:wrap;gap:8px 22px;padding:12px 0}.dff-key span{align-items:center;color:var(--ink-2);display:inline-flex;font:500 12px/1.3 var(--mono);gap:8px}.dff-key svg{flex:none;height:14px;overflow:visible;width:14px}@media (prefers-reduced-motion:reduce){.dff .belt-top,.dff .blink,.dff .pulse,.dff .s-flow,.dff .spoke{animation:none!important}.dff .bar,.dff .glow,.dff .lamp,.dff .lv-bar,.dff .tile,.dff .tl-js [data-show]{transition:none!important}}