.ff-intro{--ff-w:1120px;--ff-stamp:#c62828;--ff-paper-edge:#b0bec5;--ff-tint:#f5faff}@keyframes ff-hero-val{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}@keyframes ff-hero-stamp{0%{opacity:0;transform:scale(2.1)}45%{opacity:.9;transform:scale(1.3)}72%{opacity:.9;transform:scale(.96)}88%{transform:scale(1.02)}to{opacity:.86;transform:none}}@keyframes ff-hero-scan{0%{opacity:0;top:-72px}12%{opacity:.85}88%{opacity:.85}to{opacity:0;top:100%}}@keyframes ff-tap{0%{opacity:0;transform:scale(.5)}25%{opacity:.5}70%,to{opacity:0;transform:scale(2)}}@keyframes ff-swap{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ff-bar{0%{width:0}to{width:100%}}@keyframes ff-move{0%{transform:translate(-120px,-70px);opacity:0}15%{opacity:1}55%,to{transform:none;opacity:1}}@keyframes ff-click{0%,55%{opacity:0;transform:scale(.4)}65%{opacity:.5}90%,to{opacity:0;transform:scale(2.2)}}@keyframes ff-panel-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes ff-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes ff-cell{0%,38%{background:rgba(255,184,0,.16);box-shadow:inset 0 0 0 1.5px #b57f00}44%,54%{background:rgba(0,140,255,.16);box-shadow:inset 0 0 0 1.5px #008cff}62%,to{background:rgba(35,160,71,.13);box-shadow:inset 0 0 0 1.5px #23a047}}@keyframes ff-tab{0%,38%{background:#8a5f00}44%,54%{background:#0072e5}62%,to{background:#176f30}}@keyframes ff-val{0%,58%{opacity:0}70%,to{opacity:1}}@keyframes ff-dot{0%,54%{background:#ffb800}66%,to{background:#23a047}}@keyframes ff-cursor{0%{transform:translate(-140px,120px);opacity:0}8%{opacity:1}38%,62%{transform:none;opacity:1}76%,to{transform:none;opacity:0}}.ff-doc-stack{zoom:1}@media (min-width:1280px){.ff-doc-stack{zoom:1.3}}@media (max-width:639px){.ff-intro .ff-diag-row{grid-template-columns:minmax(0,1fr)!important}.ff-intro .ff-diag-line,.ff-intro .ff-diag-spacer{display:none!important}}.ff-stage-frame{container-type:inline-size;overflow:hidden}.ff-stage{--ff-s:min(1,tan(atan2(100cqw,var(--ff-w,724px))));transform:scale(var(--ff-s));transform-origin:top left}@media (prefers-reduced-motion:reduce){.ff-intro *,.ff-intro :after,.ff-intro :before{animation:none!important;transition:none!important}html:has(.ff-intro){scroll-behavior:auto}}