@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";
.fw-root{--bg:#0d0e15;--pane:#14151f;--pane-2:#191b27;--raised:#1e2030;--line:#ffffff17;--line-2:#ffffff0d;--ink:#e7e9f3;--ink-2:#e7e9f3a3;--ink-3:#e7e9f361;--accent:#7c7cf0;--accent-2:#9b8cff;--accent-soft:#7c7cf029;--accent-solid:#4f46e5;--accent-ink:#b6a9ff;--green:#4ade80;--green-soft:#4ade8024;--green-ink:#4ade80;--amber:#fbbf24;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;background:var(--bg);min-height:100svh;color:var(--ink);font-family:var(--ui);line-height:1.65}.fw-root *,.fw-root :before,.fw-root :after{box-sizing:border-box}.fw-root[data-theme=light]{--bg:#eef1f6;--pane:#fff;--pane-2:#f6f8fc;--raised:#fff;--line:#0f172a29;--line-2:#0f172a1a;--ink:#1e293b;--ink-2:#1e293bb8;--ink-3:#1e293b9e;--accent:#5b5bd6;--accent-2:#6d5bd0;--accent-soft:#5b5bd61f;--accent-solid:#4f46e5;--accent-ink:#443a9c;--green:#15803d;--green-soft:#15803d1f;--green-ink:#0f5132;--amber:#b45309}.fw-header{z-index:20;background:var(--pane);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex;position:sticky;top:0}.fw-brand{align-items:center;gap:11px;min-width:0;display:flex}.fw-brand-name{letter-spacing:-.2px;white-space:nowrap;font-size:14px;font-weight:700}.fw-brand-note{color:var(--ink-3);white-space:nowrap;font-size:11.5px}.fw-header-right{align-items:center;gap:8px;display:flex}.fw-btn{box-sizing:border-box;border:1px solid var(--line);background:var(--pane-2);min-height:32px;color:var(--ink-2);cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.fw-btn:hover{background:var(--raised);color:var(--ink)}.fw-icon-btn{box-sizing:border-box;border:1px solid var(--line);background:var(--pane-2);width:32px;height:32px;color:var(--ink-2);cursor:pointer;border-radius:9px;place-items:center;padding:0;display:inline-grid}.fw-icon-btn:hover{background:var(--raised);color:var(--ink)}.fw-icon-btn svg{width:16px;height:16px}.fw-wrap{max-width:940px;margin:0 auto;padding:28px 18px 72px}.fw-hero{padding:10px 0 30px}.fw-kicker{border:1px solid var(--line);background:var(--pane-2);color:var(--ink-2);border-radius:999px;align-items:center;gap:7px;margin-bottom:14px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.fw-title{letter-spacing:-.6px;margin:0 0 10px;font-size:clamp(26px,4.4vw,40px);font-weight:800;line-height:1.18}.fw-title em{background:linear-gradient(110deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.fw-title-th{color:var(--ink-2);margin:0 0 18px;font-size:clamp(14px,2vw,17px);font-weight:500}.fw-authors{color:var(--ink-2);margin:0 0 4px;font-size:13px}.fw-authors b{color:var(--ink);font-weight:600}.fw-affil{color:var(--ink-3);margin:0;font-size:12px}.fw-headline{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:24px;display:grid}.fw-stat{border:1px solid var(--line);background:var(--pane);border-radius:12px;padding:12px 14px}.fw-stat.win{border-color:var(--green);background:var(--green-soft)}.fw-stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:700}.fw-stat-value{font-family:var(--mono);margin-top:3px;font-size:22px;font-weight:700;line-height:1.2}.fw-stat.win .fw-stat-value{color:var(--green-ink)}.fw-stat-note{color:var(--ink-3);font-size:11.5px}.fw-section{margin-top:40px;scroll-margin-top:60px}.fw-section-head{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;margin-bottom:14px;padding-bottom:8px;display:flex}.fw-section-no{font-family:var(--mono);color:var(--accent-2);font-size:12px;font-weight:700}.fw-section h2{letter-spacing:-.3px;margin:0;font-size:19px;font-weight:700}.fw-section p{color:var(--ink-2);margin:0 0 12px;font-size:14.5px}.fw-section p:last-child{margin-bottom:0}.fw-section strong{color:var(--ink);font-weight:650}.fw-list{margin:0;padding-left:0;list-style:none}.fw-list li{color:var(--ink-2);margin-bottom:9px;padding-left:20px;font-size:14.5px;position:relative}.fw-list li:before{content:"";background:var(--accent-2);border-radius:50%;width:5px;height:5px;position:absolute;top:10px;left:4px}.fw-list li:last-child{margin-bottom:0}.fw-card{border:1px solid var(--line);background:var(--pane);border-radius:12px;padding:14px 16px}.fw-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;display:grid}.fw-card h3{margin:0 0 6px;font-size:14px;font-weight:700}.fw-card p{font-size:13.5px}.fw-card-tag{background:var(--accent-soft);font-family:var(--mono);color:var(--accent-ink);border-radius:999px;margin-bottom:7px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-block}.fw-steps{flex-wrap:wrap;gap:8px;display:flex}.fw-step{border:1px solid var(--line);background:var(--pane);border-radius:11px;flex:150px;padding:11px 13px}.fw-step-no{font-family:var(--mono);color:var(--accent-2);font-size:10.5px;font-weight:700}.fw-step-name{margin-top:2px;font-size:13.5px;font-weight:700}.fw-step-note{color:var(--ink-3);margin-top:2px;font-size:11.5px}.fw-vars{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.fw-chiplist{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.fw-chip{border:1px solid var(--line);background:var(--pane-2);font-family:var(--mono);color:var(--ink-2);border-radius:999px;padding:3px 9px;font-size:11.5px}.fw-chip.keep{border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}.fw-chip.drop{opacity:.55;text-decoration:line-through}.fw-chip.target{background:var(--accent-solid);color:#fff;border-color:#0000;font-weight:600}.fw-table-scroll{border:1px solid var(--line);border-radius:12px;overflow-x:auto}.fw-table{border-collapse:collapse;background:var(--pane);width:100%}.fw-table th,.fw-table td{text-align:right;font-family:var(--mono);white-space:nowrap;border-bottom:1px solid var(--line-2);padding:10px 14px;font-size:13px}.fw-table th{background:var(--pane-2);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:700}.fw-table th:first-child,.fw-table td:first-child{text-align:left;font-family:var(--ui);font-weight:600}.fw-table tbody tr:last-child td{border-bottom:0}.fw-table tr.best td{background:var(--green-soft);color:var(--green-ink);font-weight:700}.fw-table tr.best td:first-child{color:var(--green-ink)}.fw-caption{color:var(--ink-3);margin-top:8px;font-size:12px}.fw-tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.fw-tab{box-sizing:border-box;border:1px solid var(--line);background:var(--pane-2);min-height:32px;color:var(--ink-2);cursor:pointer;border-radius:9px;padding:0 14px;font-family:inherit;font-size:12.5px;font-weight:600;transition:background .15s,color .15s}.fw-tab:hover{background:var(--raised);color:var(--ink)}.fw-tab.on{background:var(--accent-solid);color:#fff;border-color:#0000}.fw-figures{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;display:grid}.fw-figure{border:1px solid var(--line);background:var(--pane);border-radius:12px;overflow:hidden}.fw-figure-head{border-bottom:1px solid var(--line);background:var(--pane-2);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:8px 12px;font-size:11px;font-weight:700}.fw-figure-plate{background:#000;padding:6px}.fw-figure img{width:100%;height:auto;display:block}.fw-figure figcaption{color:var(--ink-3);padding:9px 12px;font-size:12px}.fw-refs{counter-reset:ref;margin:0;padding:0;list-style:none}.fw-refs li{color:var(--ink-2);margin-bottom:12px;padding-left:26px;font-size:13px;line-height:1.6;position:relative}.fw-refs li:before{counter-increment:ref;content:"[" counter(ref) "]";font-family:var(--mono);color:var(--ink-3);font-size:11.5px;position:absolute;left:0}.fw-refs li:last-child{margin-bottom:0}.fw-footer{border-top:1px solid var(--line);color:var(--ink-3);margin-top:44px;padding-top:16px;font-size:12px}@media (max-width:640px){.fw-wrap{padding:20px 14px 56px}.fw-brand-note{display:none}.fw-header{padding:8px 10px}.fw-figures{grid-template-columns:minmax(0,1fr)}.fw-section{margin-top:32px}}
