:root{--fp-bg:#f7f8f9;--fp-text:#263746;--fp-slate:#5e7f8d;--fp-slate-hover:#476572;--fp-slate-light:#8caab9;--fp-slate-tint:#5e7f8d14;--fp-coral:#d97559;--fp-coral-hover:#c56348;--fp-coral-tint:#d975591a;--fp-coral-tint-subtle:#d975590d;--fp-border:#e5e9ed;--fp-border-strong:#d5dde3;--fp-card:#fff;--fp-card-muted:#f2f5f7;--fp-sidebar-bg:#fff;--fp-sidebar-border:#e5e9ed;--fp-sidebar-text:#263746;--fp-sidebar-muted:#89949d;--fp-sidebar-hover-bg:#f7f8f9;--fp-sidebar-active-bg:#fdf0ec;--fp-sidebar-active-indicator:#e37a5d;--fp-sidebar-active-num:#c75b40;--fp-medallion-bronze:#c26747;--fp-medallion-silver:#5e7f8d;--fp-medallion-gold:#c5943a}.fp-sidebar{background-color:var(--fp-sidebar-bg,#fff)!important;border-color:var(--fp-sidebar-border,#e5e9ed)!important}.fp-sidebar-header{color:var(--fp-sidebar-muted,#89949d)!important}.fp-sidebar-nav-item{transition:all .15s ease-in-out;color:var(--fp-sidebar-text,#263746)!important;background-color:#0000!important;border-left:3px solid #0000!important}.fp-sidebar-nav-item:hover{background-color:var(--fp-sidebar-hover-bg,#f7f8f9)!important;color:var(--fp-sidebar-text,#263746)!important}.fp-sidebar-nav-item.is-active{background-color:var(--fp-sidebar-active-bg,#fdf0ec)!important;border-left:3px solid var(--fp-sidebar-active-indicator,#e37a5d)!important;color:var(--fp-sidebar-text,#263746)!important;font-weight:600!important}.fp-sidebar-num{color:var(--fp-sidebar-muted,#89949d)!important}.fp-sidebar-nav-item.is-active .fp-sidebar-num{color:var(--fp-sidebar-active-num,#c75b40)!important;font-weight:700!important}.fp-sidebar-sub-item{transition:all .15s ease-in-out;color:var(--fp-sidebar-muted,#89949d)!important;background-color:#0000!important}.fp-sidebar-sub-item:hover{color:var(--fp-sidebar-text,#263746)!important;background-color:var(--fp-sidebar-hover-bg,#f7f8f9)!important}.fp-sidebar-sub-item.is-active{color:var(--fp-sidebar-text,#263746)!important;background-color:var(--fp-sidebar-active-bg,#fdf0ec)!important;border-left:3px solid var(--fp-sidebar-active-indicator,#e37a5d)!important;font-weight:600!important}.fp-sidebar-bottom-link{transition:all .15s ease-in-out;color:var(--fp-sidebar-text,#263746)!important;background-color:#0000!important}.fp-sidebar-bottom-link:hover{color:var(--fp-coral,#d97559)!important;background-color:var(--fp-sidebar-hover-bg,#f7f8f9)!important}.fp-sidebar-bottom-link .fp-sidebar-link-icon{color:var(--fp-sidebar-active-indicator,#e37a5d)!important}.dark{--fp-bg:#151d24;--fp-text:#e6edf2;--fp-slate:#8ea7b4;--fp-slate-hover:#a5bdc9;--fp-slate-light:#5e7f8d;--fp-slate-tint:#8ea7b41f;--fp-coral:#e08269;--fp-coral-hover:#eb947d;--fp-coral-tint:#e0826926;--fp-coral-tint-subtle:#e0826914;--fp-border:#263442;--fp-border-strong:#334454;--fp-card:#1c2731;--fp-card-muted:#23313e;--fp-sidebar-bg:#1c2731;--fp-sidebar-border:#263442;--fp-sidebar-text:#e6edf2;--fp-sidebar-muted:#8ea7b4;--fp-sidebar-hover-bg:#23313e;--fp-sidebar-active-bg:#e37a5d26;--fp-sidebar-active-indicator:#e37a5d;--fp-sidebar-active-num:#e08269;--fp-medallion-bronze:#d47b5d;--fp-medallion-silver:#8ea7b4;--fp-medallion-gold:#d8a64a}.ff01-page{background-color:var(--fp-bg);color:var(--fp-text);min-height:100vh}.ff01{--ff-line:var(--fp-border);--ff-line-strong:var(--fp-border-strong);--ff-card:var(--fp-card);--ff-card-muted:var(--fp-card-muted);--ff-ink:var(--fp-text);--ff-muted:var(--fp-slate);--ff-soft:var(--fp-slate-tint);--ff-accent:var(--fp-coral);--ff-accent-hover:var(--fp-coral-hover);--ff-accent-tint:var(--fp-coral-tint);--ff-bronze:var(--fp-medallion-bronze);--ff-silver:var(--fp-medallion-silver);--ff-gold:var(--fp-medallion-gold);--background:var(--fp-bg);--foreground:var(--fp-text);--card:var(--fp-card);--card-foreground:var(--fp-text);--border:var(--fp-border);--muted:var(--fp-card-muted);--muted-foreground:var(--fp-slate);--primary:var(--fp-coral);--primary-foreground:#fff;font-family:var(--font-sans);color:var(--ff-ink);background:var(--fp-bg)}.ff01 *,.ff01 :before,.ff01 :after{box-sizing:border-box}.ff01 [id]{scroll-margin-top:96px}.ff01 a{text-underline-offset:3px}.ff01 .hero{border:1px solid var(--ff-line);background:var(--ff-card);border-radius:16px;padding:clamp(24px,4vw,44px);position:relative;overflow:hidden;box-shadow:0 1px 3px #2637460a}.ff01 .hero:after{content:"";border:1px solid var(--ff-line);opacity:.5;pointer-events:none;border-radius:50%;width:380px;height:380px;position:absolute;inset:auto -120px -200px auto}.ff01 .eyebrow,.ff01 .kicker{color:var(--ff-accent);font:700 11px/1.5 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.ff01 .hero h1{max-width:860px;font:700 clamp(28px, 4vw, 46px)/1.15 var(--font-heading);letter-spacing:-.03em;color:var(--ff-ink);margin:12px 0 16px}.ff01 .hero p{max-width:740px;color:var(--ff-muted);margin:0;font-size:clamp(15px,1.25vw,17px);line-height:1.65}.ff01 .chips,.ff01 .hero-actions,.ff01 .buttonrow{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.ff01 .chip{border:1px solid var(--ff-line);background:var(--ff-card-muted);color:var(--ff-muted);font:500 12px var(--font-mono);border-radius:6px;align-items:center;padding:4px 10px;transition:all .15s;display:inline-flex}.ff01 .metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:820px;margin-top:28px;display:grid}.ff01 .metric{border:1px solid var(--ff-line);background:var(--ff-card);border-radius:12px;min-width:0;padding:16px;transition:border-color .15s,box-shadow .15s}.ff01 .metric:hover{border-color:var(--ff-accent);box-shadow:0 2px 8px -2px #d975591f}.ff01 .metric strong{font:700 28px/1.1 var(--font-heading);color:var(--ff-ink);letter-spacing:-.02em;display:block}.ff01 .metric span{color:var(--ff-muted);margin-top:4px;font-size:12px;font-weight:500;display:block}.ff01 .btn{border:1px solid var(--ff-line);background:var(--ff-card);min-height:40px;color:var(--ff-ink);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 18px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.ff01 .btn:hover{background:var(--ff-card-muted);color:var(--ff-ink);border-color:var(--ff-line-strong)}.ff01 .btn.primary,.ff01 .btn.dark{background:var(--ff-accent);color:#fff;border-color:var(--ff-accent);box-shadow:0 1px 2px #d9755933}.ff01 .btn.primary:hover,.ff01 .btn.dark:hover{background:var(--ff-accent-hover);border-color:var(--ff-accent-hover);box-shadow:0 4px 12px -2px #d975594d}.ff01 .btn.ghost{color:var(--ff-muted);background:0 0;border-color:#0000}.ff01 .btn.ghost:hover{background:var(--ff-card-muted);color:var(--ff-accent);border-color:var(--ff-line)}.ff01 .section{border:1px solid var(--ff-line);background:var(--ff-card);border-radius:16px;padding:clamp(22px,3.2vw,36px);box-shadow:0 1px 3px #26374608}.ff01 .sec-head{border-bottom:1px solid var(--ff-line);align-items:flex-start;gap:14px;margin-bottom:24px;padding-bottom:16px;display:flex}.ff01 .number{background:var(--ff-accent-tint);width:40px;height:40px;color:var(--ff-accent);font:700 13px var(--font-mono);border:1px solid #d9755933;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.ff01 .sec-head h2{font:700 clamp(22px, 2.4vw, 30px)/1.25 var(--font-heading);letter-spacing:-.025em;color:var(--ff-ink);margin:0 0 6px}.ff01 .sec-head p{color:var(--ff-muted);margin:0;font-size:14px;line-height:1.5}.ff01 .section h3{font:600 18px/1.35 var(--font-heading);color:var(--ff-ink);margin:24px 0 12px}.ff01 .section h4{color:var(--ff-ink);margin:14px 0 8px;font-size:14px;font-weight:600}.ff01 .bodycopy{max-width:760px;color:var(--ff-muted);margin:10px 0 18px;font-size:14.5px;line-height:1.7}.ff01 .diagram{border:1px solid var(--ff-line);background:var(--ff-card);border-radius:12px;margin:20px 0 24px;overflow:hidden}.ff01 .diagram img{cursor:zoom-in;background:#fff;width:100%;height:auto;padding:8px;display:block}.ff01 .figurecap{border-top:1px solid var(--ff-line);background:var(--ff-card-muted);color:var(--ff-muted);justify-content:space-between;align-items:center;gap:12px;padding:11px 16px;font-size:12.5px;font-weight:500;display:flex}.ff01 .figurecap button{cursor:pointer;color:var(--ff-accent);background:0 0;border:0;flex-shrink:0;align-items:center;gap:4px;font-size:12.5px;font-weight:600;transition:color .15s;display:inline-flex}.ff01 .figurecap button:hover{color:var(--ff-accent-hover);text-decoration:underline}.ff01 .cardgrid,.ff01 .two,.ff01 .four{gap:14px;display:grid}.ff01 .cardgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.ff01 .two{grid-template-columns:repeat(2,minmax(0,1fr))}.ff01 .four{grid-template-columns:repeat(4,minmax(0,1fr))}.ff01 .card{border:1px solid var(--ff-line);background:var(--ff-card);border-radius:12px;min-width:0;padding:18px 20px;transition:border-color .15s,box-shadow .15s}.ff01 .card:hover{border-color:var(--ff-line-strong);box-shadow:0 2px 6px #2637460a}.ff01 .card.blue{border-left:3px solid var(--ff-silver)}.ff01 .card.coral{border-left:3px solid var(--ff-bronze)}.ff01 .card.green{border-left:3px solid var(--ff-gold)}.ff01 .card.tinted{background:var(--ff-card-muted)}.ff01 .card p{color:var(--ff-muted);margin:6px 0;font-size:13.5px;line-height:1.65}.ff01 .card h3{color:var(--ff-ink);margin:0 0 6px;font-size:15px}.ff01 .card .over{color:var(--ff-accent);font:700 10.5px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.ff01 .tiny{color:var(--ff-muted);font-size:12px;line-height:1.55}.ff01 .bullet{margin:8px 0;padding-left:18px}.ff01 .bullet li{color:var(--ff-muted);margin:6px 0;font-size:13.5px;line-height:1.65}.ff01 .flowline{flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0;display:flex}.ff01 .flowline span{border:1px solid var(--ff-line);background:var(--ff-card-muted);color:var(--ff-ink);font-size:12px;font-weight:600;font-family:var(--font-mono);border-radius:8px;padding:8px 12px}.ff01 .flowline em{color:var(--ff-accent);padding:0 2px;font-style:normal;font-weight:700}.ff01 .tablewrap{border:1px solid var(--ff-line);background:var(--ff-card);border-radius:10px;max-width:100%;margin:16px 0;overflow-x:auto}.ff01 table{border-collapse:collapse;width:100%;min-width:620px;font-size:13px}.ff01 th{background:var(--ff-card-muted);color:var(--ff-ink);text-align:left;font-size:12px;font-weight:600;font-family:var(--font-mono);border-bottom:1px solid var(--ff-line);padding:12px 14px}.ff01 td{border-top:1px solid var(--ff-line);vertical-align:top;color:var(--ff-muted);padding:12px 14px}.ff01 td strong{color:var(--ff-ink)}.ff01 code{background:var(--ff-card-muted);color:var(--ff-accent);font-family:var(--font-mono);border:1px solid #d9755926;border-radius:4px;padding:2px 6px;font-size:.9em}.ff01 pre{border:1px solid var(--ff-line);color:#eaeff2;max-width:100%;font:12.5px/1.65 var(--font-mono);background:#1b2631;border-radius:10px;margin:12px 0;padding:16px 18px;overflow-x:auto}.ff01 pre code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.ff01 .note{border-left:3px solid var(--ff-accent);background:var(--ff-accent-tint);color:var(--ff-ink);border-radius:8px;margin:16px 0;padding:14px 18px;font-size:13.5px;line-height:1.6}.ff01 .subsection{border-top:1px solid var(--ff-line);margin-top:28px;padding-top:22px}.ff01 .detail,.ff01 .compcard{border:1px solid var(--ff-line);background:var(--ff-card);border-radius:10px;margin:10px 0;transition:border-color .15s;overflow:hidden}.ff01 .detail summary,.ff01 .compcard summary{cursor:pointer;color:var(--ff-ink);padding:14px 18px;font-size:13.5px;font-weight:600;list-style:none}.ff01 .detail summary{justify-content:space-between;align-items:center;gap:10px;display:flex}.ff01 .detail summary::-webkit-details-marker{display:none}.ff01 .compcard summary::-webkit-details-marker{display:none}.ff01 .detail summary:after{content:"+";color:var(--ff-accent);font-size:18px;font-weight:700;line-height:1}.ff01 .detail[open] summary:after{content:"−"}.ff01 .detail[open] summary,.ff01 .compcard[open] summary{border-bottom:1px solid var(--ff-line);background:var(--ff-card-muted)}.ff01 .detail-body,.ff01 .compcard .details{min-width:0;color:var(--ff-muted);padding:16px 18px;font-size:13.5px;line-height:1.65}.ff01 .detail-body p{margin:6px 0 10px}.ff01 .detail-body ul{margin:8px 0;padding-left:18px}.ff01 .detail-body li{margin:5px 0}.ff01 .filelink{overflow-wrap:anywhere;color:var(--ff-accent);font:12px var(--font-mono);font-weight:600}.ff01 .filelink:hover{color:var(--ff-accent-hover);text-decoration:underline}.ff01 .compcard summary{min-height:84px}.ff01 .compcard[open]{grid-column:span 2}.ff01 .compcard b{color:var(--ff-ink);font-size:14.5px}.ff01 .compcard .caption{color:var(--ff-muted);margin-top:6px;font-size:12px;font-weight:400;line-height:1.5}.ff01 .compnum{float:right;color:var(--ff-accent);font:600 11.5px var(--font-mono);margin-left:8px}.ff01 .evidence{grid-template-columns:1.25fr .75fr;gap:16px;display:grid}.ff01 .screenshot{border:1px solid var(--ff-line);cursor:zoom-in;border-radius:10px;width:100%;height:auto;display:block}.ff01 .rowhead{justify-content:space-between;align-items:center;gap:10px;display:flex}.ff01-lightbox{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#151d24e0;justify-content:center;align-items:center;padding:clamp(12px,4vw,40px);display:flex;position:fixed;inset:0}.ff01-lightbox img{object-fit:contain;background:#fff;border-radius:8px;max-width:100%;max-height:92vh;box-shadow:0 25px 50px -12px #00000080}.ff01-lightbox button{color:#fff;cursor:pointer;background:#1b2631d9;border:1px solid #fff3;border-radius:8px;place-items:center;width:40px;height:40px;transition:all .15s;display:grid;position:absolute;top:18px;right:20px}.ff01-lightbox button:hover{color:var(--ff-accent);background:#1b2631;border-color:#d9755999}@media (max-width:950px){.ff01 .cardgrid,.ff01 .four{grid-template-columns:repeat(2,minmax(0,1fr))}.ff01 .evidence{grid-template-columns:1fr}.ff01 .compcard[open]{grid-column:span 1}}@media (max-width:640px){.ff01 .hero{padding:22px 18px}.ff01 .section{padding:20px 16px}.ff01 .cardgrid,.ff01 .two,.ff01 .four{grid-template-columns:1fr}.ff01 .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ff01 .compcard[open]{grid-column:auto}.ff01 .figurecap{flex-direction:column;align-items:flex-start}.ff01 .sec-head{gap:10px}.ff01 .number{width:34px;height:34px}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
