.framework-detail{--bg:var(--background);--bg2:var(--card);--surface:var(--secondary);--line:var(--border);--text:var(--foreground);--muted:var(--muted-foreground);--blue:var(--primary);--blue-2:#7aa5ff;--aligned:var(--success);--partial:var(--blue-2);--todo:#eab532;--radius:.75rem;box-sizing:border-box;background:var(--bg);min-height:100vh;color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.65}@supports (color:lab(0% 0 0)){.framework-detail{--todo:lab(76.994% 11.2878 68.9054)}}.framework-detail *,.framework-detail :before,.framework-detail :after{box-sizing:border-box}.framework-detail h1,.framework-detail h2,.framework-detail h3{color:var(--text);letter-spacing:0;margin:0;font-family:Inter,system-ui,sans-serif;font-weight:600;line-height:1.2}.framework-detail a{color:var(--blue-2)}.framework-detail a:focus-visible,.framework-detail button:focus-visible,.framework-detail summary:focus-visible{outline:2px solid var(--blue-2);outline-offset:3px;border-radius:4px}.framework-detail .wrap{width:min(100% - 3rem,64rem);margin-inline:auto}.framework-detail .crumbs{color:var(--muted);padding-top:1.75rem;font-size:.75rem}.framework-detail .crumbs a{color:var(--muted);text-decoration:none;transition:color .16s}.framework-detail .crumbs a:hover{color:var(--text)}.framework-detail .hero{border-bottom:1px solid var(--line);background:var(--background)}.framework-detail .hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(23rem,.95fr);align-items:center;gap:3rem;padding-block:3rem 5rem;animation:.7s ease-out both fade-in-quiet;display:grid}.framework-detail .hero h1{max-width:19ch;font-size:clamp(2rem,4vw,2.75rem)}.framework-detail .lead{max-width:58ch;color:var(--muted);margin:1.25rem 0 1.75rem;font-size:1rem}.framework-detail .btns{flex-wrap:wrap;align-items:center;gap:.875rem;display:flex}.framework-detail .btn{background:var(--blue);min-height:2.5rem;color:var(--primary-foreground);border:1px solid #0000;border-radius:.375rem;justify-content:center;align-items:center;padding:.55rem 1.1rem;font-weight:600;text-decoration:none;transition:background-color .16s,border-color .16s;display:inline-flex}.framework-detail .btn:hover{background:color-mix(in oklab, var(--blue) 88%, white)}.framework-detail .btn.ghost{border-color:var(--line);color:var(--text);background:0 0}.framework-detail .btn.ghost:hover{border-color:var(--muted);background:0 0}.framework-detail .review{color:var(--muted);margin-top:1.5rem;font-size:.8rem}.framework-detail .map{border:1px solid var(--line);background:var(--bg2);border-radius:.625rem;padding:1.5rem}.framework-detail .map h2{color:var(--muted);margin-bottom:1rem;font-family:inherit;font-size:.875rem;font-weight:500}.framework-detail .map-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.6fr) 1fr 1fr;align-items:center;gap:.75rem;padding-block:.875rem;font-size:.875rem;display:grid}.framework-detail .map-row.head{color:var(--muted);border-top:0;padding-top:0;font-size:.75rem}.framework-detail .cat{color:var(--muted);font-size:.75rem;display:block}.framework-detail .chip{white-space:nowrap;border-radius:999px;padding:.2rem .65rem;font-size:.75rem;font-weight:600;line-height:1.35;display:inline-block}.framework-detail .map .chip{text-align:center;white-space:normal;border-radius:.5rem;padding:.35rem .65rem}.framework-detail .chip.a{background:color-mix(in oklab, var(--aligned) 14%, transparent);color:var(--aligned)}.framework-detail .chip.p{background:color-mix(in oklab, var(--partial) 16%, transparent);color:var(--partial)}.framework-detail .chip.n{background:color-mix(in oklab, var(--muted) 12%, transparent);color:var(--muted)}.framework-detail .chip.r{border:1px solid var(--line);color:var(--muted);background:0 0}.framework-detail .todo{border:1px dashed var(--todo);color:var(--todo);white-space:nowrap;border-radius:.25rem;padding-inline:.3rem;font-size:.85em;font-weight:500}.framework-detail .legend{color:var(--muted);flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:1rem;font-size:.8rem;display:flex}.framework-detail .detail-main section{border-bottom:1px solid var(--line);padding-block:5rem}.framework-detail .split{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);align-items:start;gap:5rem;display:grid}.framework-detail .split>*,.framework-detail .body,.framework-detail details,.framework-detail details .inner{min-width:0}.framework-detail section h2{max-width:24ch;font-size:clamp(1.35rem,2.6vw,1.7rem)}.framework-detail .answer{max-width:62ch;color:var(--text);margin:0 0 1rem;font-size:1rem}.framework-detail .body p{max-width:66ch;color:var(--muted);margin:0 0 .875rem}.framework-detail .body p.answer{color:var(--text)}.framework-detail .src{color:var(--muted);font-size:.875rem}.framework-detail .table-wrap{border:1px solid var(--line);background:var(--bg2);border-radius:.625rem;margin-top:.5rem;overflow-x:auto}.framework-detail table{border-collapse:collapse;width:100%;min-width:35rem;font-size:.875rem}.framework-detail th{background:color-mix(in oklab, var(--bg2) 78%, transparent);color:var(--text);text-align:left;padding:.9rem 1.1rem;font-size:.75rem;font-weight:600}.framework-detail td{border-top:1px solid var(--line);color:var(--muted);vertical-align:top;padding:1rem 1.1rem}.framework-detail tbody tr{transition:background-color .16s}.framework-detail tbody tr:hover{background:color-mix(in oklab, var(--surface) 35%, transparent)}.framework-detail details{border:1px solid var(--line);background:var(--bg2);border-radius:.625rem;margin-top:1.25rem}.framework-detail summary{cursor:pointer;color:var(--text);padding:1rem 1.25rem;font-weight:600}.framework-detail details .inner{color:var(--muted);padding:0 1.25rem 1.25rem;font-size:.9rem}.framework-detail .note{border-left:3px solid var(--blue);background:var(--bg2);color:var(--muted);margin-top:1.25rem;padding:1rem 1.25rem;font-size:.9rem}.framework-detail ul.uses{color:var(--muted);margin:0;padding-left:1.25rem}.framework-detail ul.uses li{margin-bottom:.5rem}.framework-detail .faq details{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0;margin:0}.framework-detail .faq details:last-child{border-bottom:1px solid var(--line)}.framework-detail .faq summary{justify-content:space-between;gap:1rem;padding:1.25rem 0;font-size:1.05rem;list-style:none;display:flex}.framework-detail .faq summary::-webkit-details-marker{display:none}.framework-detail .faq summary:after{content:"+";color:var(--blue-2);font-size:1.35rem;line-height:1}.framework-detail .faq details[open] summary:after{content:"−"}.framework-detail .faq .inner{max-width:70ch;padding:0 0 1.25rem;font-size:1rem}.framework-detail .full-table{min-width:40rem}.framework-detail .full-table td,.framework-detail .full-table th{padding:.75rem;font-size:.8rem}.framework-detail .full-table .chip{white-space:normal}.framework-detail .cta-end{border-top:1px solid var(--line);background:var(--background);text-align:center;padding-block:5rem}.framework-detail .cta-end h2{max-width:none;margin:0 auto .75rem;font-size:clamp(1.65rem,3.2vw,2.4rem)}.framework-detail .cta-end p{color:var(--muted);margin:0 0 1.75rem}.framework-detail .cta-end .btns{justify-content:center}.framework-detail .tagline{color:var(--muted);margin-top:2.25rem;font-size:.875rem}@media (max-width:860px){.framework-detail .wrap{width:min(100% - 2rem,72rem)}.framework-detail .hero-grid,.framework-detail .split{grid-template-columns:1fr;gap:2rem}.framework-detail .hero-grid{padding-block:2.5rem 4rem}.framework-detail .detail-main section{padding-block:4rem}.framework-detail .map{padding:1.25rem}}@media (max-width:560px){.framework-detail .map-row{grid-template-columns:minmax(0,1.4fr) 1fr 1fr;gap:.5rem;font-size:.75rem}.framework-detail .map .chip{padding:.3rem .4rem;font-size:.65rem}}@media (prefers-reduced-motion:reduce){.framework-detail .hero-grid{animation:none}}