:root{--ink:#0a1628;--text:#0a1628;--muted:#4b5568;--bg:#f4f6fa;--surface:#fff;--line:#e2e7ef;--line-strong:#cbd3e0;--bar:#0a1628;--bar-text:#fff;--bar-muted:#c9d1de;--bar-line:#1e2b42;--accent:#fbbc0a;--on-accent:#0a1628;--accent-bright:#fbbc0a;--accent-text:#a16207;--accent-soft:#fef3c7;--info:#1d4ed8;--info-soft:#eff4ff;--ok:#15803d;--ok-soft:#ecfdf3;--warn:#b45309;--warn-soft:#fff7ed;--font-display:"Sora", "Inter", system-ui, sans-serif;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;--fs-xs:13px;--fs-sm:15px;--fs-md:17px;--fs-lg:19px;--fs-h3:21px;--fs-h2:27px;--fs-h1:clamp(30px, 4.4vw, 44px);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--r-sm:6px;--r:10px;--r-lg:14px;--shadow:0 1px 2px #0a16280f, 0 4px 16px #0a16280f;--container:1200px;--prose:720px;--header-h:64px}[data-accent=b]{--accent:#c2410c;--on-accent:#fff;--accent-bright:#f97316;--accent-text:#c2410c;--accent-soft:#ffedd5}[data-display=manrope]{--font-display:"Manrope", "Inter", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{background:var(--bg);color:var(--text);font:400 var(--fs-md)/1.6 var(--font-sans);margin:0}img{max-width:100%;height:auto;display:block}a{color:inherit}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px;border-radius:2px}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;line-height:1.2}.container{max-width:var(--container);margin:0 auto;padding:0 16px}.skip{position:absolute;left:-9999px}.skip:focus{z-index:50;background:var(--surface);border-radius:var(--r-sm);padding:8px 12px;top:8px;left:16px}.mono{font-family:var(--font-mono)}.site-header{z-index:20;background:var(--bar);color:var(--bar-text);border-bottom:1px solid var(--bar-line);position:sticky;top:0}.site-header .container{height:var(--header-h);align-items:center;gap:var(--sp-5);display:flex}.brand{font:800 22px/1 var(--font-display);letter-spacing:-.02em;color:var(--bar-text);flex:none;text-decoration:none}.brand span{color:var(--accent-bright)}.nav{gap:var(--sp-1);scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--bar-muted);font-size:var(--fs-sm);border-radius:var(--r-sm);flex:none;padding:8px 10px;font-weight:500;text-decoration:none}.nav a:hover{color:var(--bar-text);background:var(--bar-line)}.nav a[aria-current]{color:var(--bar-text);box-shadow:inset 0 -2px 0 var(--accent-bright);border-radius:0}.search-btn{border:1px solid var(--bar-line);border-radius:var(--r-sm);width:40px;height:40px;color:var(--bar-text);cursor:pointer;background:0 0;flex:none;place-items:center;display:grid}.search-btn svg{width:18px;height:18px}.menu{flex:none;display:none;position:relative}.menu summary{border:1px solid var(--bar-line);border-radius:var(--r-sm);cursor:pointer;place-items:center;width:40px;height:40px;list-style:none;display:grid}.menu summary::-webkit-details-marker{display:none}.menu summary svg{width:20px;height:20px}.menu-panel{left:0;right:0;top:var(--header-h);background:var(--bar);border-bottom:1px solid var(--bar-line);padding:var(--sp-2) 16px var(--sp-4);display:grid;position:fixed}.menu-panel a{color:var(--bar-text);border-bottom:1px solid var(--bar-line);padding:12px 0;font-weight:500;text-decoration:none}.menu-panel a[aria-current]{color:var(--accent-bright)}@media (width<=760px){.nav{display:none}.menu{display:block}.site-header .container{justify-content:space-between}.brand{margin-right:auto}}.ad{background:repeating-linear-gradient(135deg, var(--surface) 0 10px, #f8fafc 10px 20px);border:1px dashed var(--line-strong);border-radius:var(--r-sm);color:var(--muted);font:500 var(--fs-xs)/1.3 var(--font-mono);text-align:center;place-items:center;margin-inline:auto;display:grid}.ad:before{content:"Advertisement";letter-spacing:.08em;text-transform:uppercase;font-size:11px;display:block}.ad--leaderboard{width:728px;max-width:100%;height:90px}.ad--rect{width:300px;height:250px}.ad--inline{width:336px;max-width:100%;height:280px;margin-block:var(--sp-6)}.ad-band{padding:var(--sp-4) 0}@media (width<=760px){.ad--leaderboard{width:320px;height:50px}}.breadcrumb{font-size:var(--fs-sm);color:var(--muted);margin:0 0 var(--sp-4)}.breadcrumb ol{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.breadcrumb li+li:before{content:"/";color:var(--line-strong);margin-right:6px}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--text);text-decoration:underline}.article-head{padding:var(--sp-6) 0 var(--sp-5);max-width:880px}.kicker{font:600 var(--fs-xs)/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);text-decoration:none;display:inline-block}.kicker:hover{text-decoration:underline}.article-title{font-family:var(--font-display);letter-spacing:-.01em;line-height:1.2;font-size:var(--fs-h1);margin:var(--sp-3) 0 var(--sp-4);text-wrap:balance;font-weight:800}.dek{font-size:var(--fs-lg);color:var(--muted);margin:0 0 var(--sp-4);max-width:760px}.byline{align-items:center;gap:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;display:flex}.byline .who{align-items:center;gap:var(--sp-2);color:var(--text);font-weight:600;text-decoration:none;display:flex}.avatar{background:var(--ink);width:36px;height:36px;color:var(--accent-bright);font:700 14px/1 var(--font-display);border-radius:50%;flex:none;place-items:center;display:grid}.avatar--lg{width:64px;height:64px;font-size:22px}.byline .sep{background:var(--line-strong);border-radius:50%;width:4px;height:4px}.figure{margin:0 0 var(--sp-5)}.figure img{aspect-ratio:16/9;object-fit:cover;border-radius:var(--r);background:var(--line);width:100%}.figure figcaption{font-size:var(--fs-xs);color:var(--muted);margin-top:var(--sp-2)}.article-layout,.page-layout{grid-template-columns:minmax(0, var(--prose)) 300px;justify-content:space-between;gap:var(--sp-7);align-items:start;display:grid}.page-layout{grid-template-columns:minmax(0,1fr) 260px}.sidebar{top:calc(var(--header-h) + 16px);gap:var(--sp-5);display:grid;position:sticky}.container--wide{max-width:1280px}.article-layout--3{grid-template-columns:190px minmax(0, var(--prose)) 300px;gap:var(--sp-6)}.left-rail{top:calc(var(--header-h) + 16px);gap:var(--sp-5);font-size:var(--fs-sm);display:grid;position:sticky}.rail-label{font:600 12px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--sp-2);display:block}.side-menu ul{margin:0;padding:0;list-style:none}.side-menu>ul>li>a{min-height:40px;color:var(--text);border-left:3px solid #0000;align-items:center;margin-left:-12px;padding:0 12px;font-weight:500;text-decoration:none;display:flex}.side-menu>ul>li>a:hover{background:var(--surface)}.side-menu>ul>li>a[aria-current]{border-left-color:var(--accent);background:var(--surface);font-weight:700}.side-menu .side-menu-sub{border-left:1px solid var(--line);margin:4px 0 8px;padding-left:12px}.side-menu-sub a{color:var(--muted);padding:6px 0 6px 12px;font-size:14px;line-height:1.4;text-decoration:none;display:block}.side-menu-sub a:hover{color:var(--accent-text);text-decoration:underline}.back-top{color:var(--muted);font-size:var(--fs-sm);padding-top:var(--sp-3);border-top:1px solid var(--line);text-decoration:none}.back-top:hover{color:var(--text);text-decoration:underline}@media (width<=1240px){.article-layout--3{grid-template-columns:minmax(0, var(--prose)) 300px;gap:var(--sp-7)}.left-rail{display:none}}.share-icons{align-items:center;gap:6px;margin-left:auto;display:flex}.share-icon{border:1px solid var(--line-strong);background:var(--surface);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:50%;place-items:center;padding:0;text-decoration:none;display:grid}.share-icon:hover{border-color:var(--ink);background:var(--bg)}.share-icon svg,.share-btn svg{width:17px;height:17px}.share-icons .share-native{display:none}.share-status{font-size:var(--fs-xs);color:var(--ok);font-weight:600}@media (width<=760px){.share-icons .share-icon{display:none}.share-icons .share-native{display:inline-flex}}.share-cta{gap:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:0 var(--r) var(--r) 0;padding:var(--sp-5);margin:var(--sp-6) 0;display:grid}.share-cta-title{font:700 var(--fs-lg)/1.3 var(--font-display);margin:0}.share-cta-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.share-btn{align-items:center;gap:8px;display:inline-flex}@media (width<=1020px){.article-layout,.article-layout--3,.page-layout{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}}.toc{font-size:var(--fs-sm)}.toc.toc--full ol{max-height:calc(100vh - var(--header-h) - 90px)}.toc .toc-group,.toc-mobile .toc-group{font:600 12px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text);padding:14px 0 6px 14px}.toc .toc-group:first-child{padding-top:4px}.toc-mobile .toc-group{padding-left:0}.toc-title{font:600 var(--fs-xs)/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--sp-3)}.toc ol{border-left:2px solid var(--line);max-height:calc(100vh - var(--header-h) - 330px);margin:0;padding:0;list-style:none;position:relative;overflow-y:auto}.toc a{color:var(--muted);border-left:2px solid #0000;margin-left:-2px;padding:6px 0 6px 14px;line-height:1.35;text-decoration:none;display:block}.toc a:hover{color:var(--text)}.toc a.is-active{color:var(--text);border-left-color:var(--accent);font-weight:600}.toc-mobile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin:0 0 var(--sp-5);display:none}.toc-mobile summary{cursor:pointer;justify-content:space-between;min-height:44px;padding:14px 16px;font-weight:600;list-style:none;display:flex}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile summary:after{content:"+";font:600 18px/1 var(--font-mono);color:var(--accent-text)}.toc-mobile[open] summary:after{content:"–"}.toc-mobile ol{font-size:var(--fs-sm);gap:6px;margin:0;padding:0 16px 14px 34px;display:grid}.toc-mobile a{color:var(--text);text-decoration:none}@media (width<=1020px){.toc-mobile{display:block}}.prose{font-size:18px;line-height:1.7}.prose>*{margin-top:0;margin-bottom:1.1em}.prose h2{font-size:var(--fs-h2);padding-top:var(--sp-2);margin:1.9em 0 .6em}.prose h3{font-size:var(--fs-h3);margin:1.5em 0 .5em}.prose a{color:var(--accent-text);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.prose a:hover{text-decoration-thickness:2px}.prose strong{font-weight:650}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.35em 0}.prose li::marker{color:var(--accent-text)}.prose blockquote{padding:var(--sp-4) var(--sp-5);border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--r) var(--r) 0;margin-inline:0}.prose blockquote>:last-child{margin-bottom:0}.prose pre{background:var(--ink);color:#e6eaf2;padding:var(--sp-4);border-radius:var(--r);font:14px/1.6 var(--font-mono);overflow-x:auto}.prose code{font-family:var(--font-mono);font-size:.88em}.prose :not(pre)>code{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:1px 5px}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.prose img{border-radius:var(--r)}.table-wrap{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin:0 0 1.4em;overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);min-width:520px;line-height:1.5}.table-wrap th,.table-wrap td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:11px 14px}.table-wrap tr:first-child th{background:var(--bg);white-space:nowrap;font-weight:600}.table-wrap tr:last-child td{border-bottom:0}.faq{gap:var(--sp-2);margin:0 0 1.4em;display:grid}.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.faq summary{cursor:pointer;font:600 var(--fs-md)/1.4 var(--font-sans);min-height:44px;padding:14px 48px 14px 16px;list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font:600 20px/1 var(--font-mono);color:var(--accent-text);position:absolute;top:13px;right:16px}.faq details[open] summary:after{content:"–"}.faq .faq-a{padding:0 16px 14px;font-size:17px}.faq .faq-a>:last-child{margin-bottom:0}.tags{gap:var(--sp-2);margin:var(--sp-6) 0;padding-top:var(--sp-5);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;display:flex}.tags-label{font:600 var(--fs-xs)/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:var(--sp-2)}.tag{border:1px solid var(--line-strong);background:var(--surface);min-height:40px;color:var(--text);font-size:var(--fs-sm);border-radius:999px;align-items:center;padding:4px 12px;text-decoration:none;display:inline-flex}.tag:hover{border-color:var(--ink)}.author-box{gap:var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-5);margin:var(--sp-6) 0;display:flex}.author-box .label{font:600 var(--fs-xs)/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.author-box h3{font-size:var(--fs-lg);margin:6px 0}.author-box h3 a{text-decoration:none}.author-box p{color:var(--muted);font-size:var(--fs-sm);margin:0}.section-title{font-size:var(--fs-h3);margin:0 0 var(--sp-4)}.cards{gap:var(--sp-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=860px){.cards{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.card:hover{box-shadow:var(--shadow);border-color:var(--line-strong)}.card img{aspect-ratio:16/9;object-fit:cover;background:var(--line);width:100%}.card-body{padding:var(--sp-4);gap:var(--sp-2);display:grid}.card-title{font:700 var(--fs-md)/1.35 var(--font-display);margin:0}.card-title a{text-decoration:none}.card-title a:after{content:"";position:absolute;inset:0}.card{position:relative}.card-meta{font-size:var(--fs-xs);color:var(--muted)}.related{padding:var(--sp-7) 0;border-top:1px solid var(--line);margin-top:var(--sp-6)}.newsletter{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:var(--sp-6);gap:var(--sp-5);margin-bottom:var(--sp-7);grid-template-columns:1fr minmax(280px,420px);align-items:center;display:grid}.newsletter h2{font-size:var(--fs-h3)}.newsletter p{color:var(--bar-muted);font-size:var(--fs-sm);margin:6px 0 0}.newsletter form{gap:var(--sp-2);display:flex}.newsletter input{border:1px solid var(--bar-line);border-radius:var(--r-sm);min-width:0;min-height:46px;font:inherit;font-size:var(--fs-sm);color:var(--text);background:#fff;flex:1;padding:0 14px}@media (width<=760px){.newsletter{padding:var(--sp-5);grid-template-columns:1fr}.newsletter form{flex-direction:column}}.btn{border-radius:var(--r-sm);min-height:46px;font:600 var(--fs-sm)/1 var(--font-sans);cursor:pointer;background:var(--accent);color:var(--on-accent);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(.95)}.btn--ghost{background:var(--surface);color:var(--text);border-color:var(--line-strong)}.site-footer{background:var(--bar);color:var(--bar-muted);padding:var(--sp-7) 0 var(--sp-5);font-size:var(--fs-sm)}.footer-grid{gap:var(--sp-6);grid-template-columns:1.4fr 1fr 1fr 1fr;display:grid}@media (width<=860px){.footer-grid{grid-template-columns:1fr 1fr}}@media (width<=520px){.footer-grid{grid-template-columns:1fr}}.site-footer .brand{font-size:24px}.site-footer p{margin:var(--sp-3) 0 0;max-width:320px}.footer-title{font:600 var(--fs-xs)/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--bar-text);margin:0 0 var(--sp-3)}.footer-links{margin:0;padding:0;list-style:none;display:grid}.footer-links a{color:var(--bar-muted);align-items:center;min-height:40px;text-decoration:none;display:inline-flex}.footer-links a:hover{color:var(--bar-text);text-decoration:underline}.footer-bottom{border-top:1px solid var(--bar-line);margin-top:var(--sp-6);padding-top:var(--sp-4);justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}.callout{border:1px solid var(--line);border-left:4px solid var(--info);background:var(--info-soft);border-radius:0 var(--r) var(--r) 0;padding:var(--sp-4) var(--sp-5);font-size:var(--fs-md);margin:0 0 1.4em;line-height:1.6}.callout-title{font:600 var(--fs-xs)/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin-bottom:var(--sp-2);display:block}.callout>:last-child{margin-bottom:0}.callout--tip{border-left-color:var(--ok);background:var(--ok-soft)}.callout--warn{border-left-color:var(--warn);background:var(--warn-soft)}.callout--answer{border-left-color:var(--accent);background:var(--accent-soft)}.badge{min-height:26px;font:600 var(--fs-xs)/1 var(--font-sans);background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge--ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.badge--warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.badge--info{background:var(--info-soft);color:var(--info);border-color:#0000}.badge--accent{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.field{margin-bottom:var(--sp-4);gap:6px;display:grid}.field-label{font-weight:600;font-size:var(--fs-sm)}.field-help{font-size:var(--fs-xs);color:var(--muted)}.field-error{font-size:var(--fs-xs);color:#b42318;font-weight:600}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);width:100%;min-height:46px;font:inherit;font-size:var(--fs-sm);color:var(--text);padding:0 14px}.textarea{resize:vertical;min-height:120px;padding:12px 14px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent-text);outline-offset:1px;border-color:#0000}.input[aria-invalid=true]{border-color:#b42318}.check{font-size:var(--fs-sm);cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{width:18px;height:18px;accent-color:var(--ink);margin:2px 0 0}.search-field{gap:var(--sp-2);display:flex}.search-field .input{flex:1}.chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);min-height:40px;font-size:var(--fs-sm);color:var(--text);border-radius:999px;align-items:center;padding:0 14px;font-weight:500;text-decoration:none;display:inline-flex}.chip:hover{border-color:var(--ink)}.chip[aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}.pagination{gap:var(--sp-2);margin:var(--sp-6) 0;justify-content:center;align-items:center;display:flex}.pagination a,.pagination span{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);min-width:44px;height:44px;font-weight:600;font-size:var(--fs-sm);place-items:center;padding:0 12px;text-decoration:none;display:grid}.pagination [aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}.page-head{padding:var(--sp-6) 0 var(--sp-5);border-bottom:1px solid var(--line);margin-bottom:var(--sp-5)}.page-head h1{margin:var(--sp-2) 0;font-size:clamp(30px,4vw,40px);font-weight:800}.page-head p{color:var(--muted);max-width:680px;margin:0}.page-head .meta{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--muted)}.post-row{gap:var(--sp-5);padding:var(--sp-5) 0;border-bottom:1px solid var(--line);grid-template-columns:220px 1fr;display:grid;position:relative}.post-row img{aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-sm);background:var(--line);width:100%}.post-row h2,.post-row h3{font-size:var(--fs-h3);margin:var(--sp-2) 0}.post-row h2 a,.post-row h3 a{text-decoration:none}.post-row h2 a:after,.post-row h3 a:after{content:"";position:absolute;inset:0}.post-row:hover h2,.post-row:hover h3{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px}.post-row p{margin:0 0 var(--sp-2);color:var(--muted);font-size:var(--fs-sm)}.post-row mark{background:var(--accent-soft);color:inherit;padding:0 2px}@media (width<=640px){.post-row{gap:var(--sp-3);grid-template-columns:112px 1fr}.post-row h2,.post-row h3{font-size:var(--fs-md)}.post-row p{display:none}}.price{font:600 var(--fs-md)/1 var(--font-mono);white-space:nowrap}.price small{font:400 var(--fs-xs) var(--font-sans);color:var(--muted)}.tool-card{gap:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-5);display:grid}.tool-card-head{align-items:center;gap:var(--sp-3);display:flex}.tool-logo{border-radius:var(--r-sm);background:var(--bg);border:1px solid var(--line);width:44px;height:44px;font:700 16px var(--font-display);flex:none;place-items:center;display:grid}.tool-card h3{font-size:var(--fs-lg)}.tool-card dl{gap:6px var(--sp-4);font-size:var(--fs-sm);grid-template-columns:auto 1fr;margin:0;display:grid}.tool-card dt{color:var(--muted)}.tool-card dd{margin:0;font-weight:500}.pros-cons{gap:var(--sp-4);grid-template-columns:1fr 1fr;margin:0 0 1.4em;display:grid}@media (width<=640px){.pros-cons{grid-template-columns:1fr}}.pros-cons>div{border:1px solid var(--line);border-top:3px solid var(--ok);border-radius:var(--r);padding:var(--sp-4);background:var(--surface)}.pros-cons>div+div{border-top-color:#b42318}.pros-cons h3{font:600 var(--fs-xs)/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--sp-2)}.pros-cons ul{font-size:var(--fs-sm);margin:0;padding-left:1.1em}.pros-cons li{margin:4px 0}.verdict{gap:var(--sp-4);background:var(--ink);color:#fff;border-radius:var(--r);padding:var(--sp-5);grid-template-columns:auto 1fr;align-items:start;margin:0 0 1.4em;display:grid}.verdict-label{font:600 var(--fs-xs)/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-bright);padding-top:4px}.verdict p{font-size:var(--fs-md);margin:0}@media (width<=640px){.verdict{gap:var(--sp-2);grid-template-columns:1fr}}.disclosure{font-size:var(--fs-xs);color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--sp-2) 0;margin:0 0 var(--sp-5)}.disclosure a{color:var(--text)}.cookie-banner{z-index:40;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);max-width:560px;box-shadow:var(--shadow);padding:var(--sp-5);gap:var(--sp-3);font-size:var(--fs-sm);margin-inline:auto;display:grid;position:fixed;bottom:16px;left:16px;right:16px}.cookie-banner p{margin:0}.cookie-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.cookie-actions .btn{flex:1}.cookie-banner--static{box-shadow:none;margin:0;position:static}.page-content{max-width:var(--prose);padding-bottom:var(--sp-7)}.empty{text-align:center;padding:var(--sp-8) var(--sp-4);max-width:560px;margin:0 auto}.empty-code{font:800 72px/1 var(--font-display);color:var(--accent-text)}.empty h1,.empty h2{font-size:var(--fs-h2);margin:var(--sp-3) 0 var(--sp-2)}.empty p{color:var(--muted);margin:0 0 var(--sp-5)}.empty .search-field{max-width:420px;margin:0 auto}.home-intro{padding:var(--sp-7) 0 var(--sp-6);border-bottom:1px solid var(--line);margin-bottom:var(--sp-6);gap:var(--sp-6);grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:end;display:grid}.home-intro h1{letter-spacing:-.02em;margin:var(--sp-3) 0 var(--sp-4);text-wrap:balance;font-size:clamp(32px,4.6vw,52px);font-weight:800;line-height:1.08}.home-intro h1 span{background:linear-gradient(transparent 62%, var(--accent-soft) 62%)}.home-promise{font-size:var(--fs-lg);color:var(--muted);max-width:620px;margin:0}.home-facts{gap:var(--sp-2) var(--sp-5);margin:var(--sp-4) 0 0;font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.home-facts b{color:var(--text);font-family:var(--font-mono)}.home-intro .search-field{align-self:end}@media (width<=860px){.home-intro{padding-top:var(--sp-6);grid-template-columns:1fr}}.home-section{padding:0 0 var(--sp-7);scroll-margin-top:calc(var(--header-h) + 16px)}.section-head{justify-content:space-between;align-items:baseline;gap:var(--sp-4);border-top:2px solid var(--ink);padding-top:var(--sp-3);margin-bottom:var(--sp-5);display:flex}.section-head h2{font-size:var(--fs-h3)}.section-head p{color:var(--muted);font-size:var(--fs-sm);margin:4px 0 0}.see-all{font-weight:600;font-size:var(--fs-sm);color:var(--accent-text);white-space:nowrap;flex:none;text-decoration:none}.see-all:hover{text-decoration:underline}.feature-grid{gap:var(--sp-5);grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);display:grid}.feature-grid>.card:first-child{grid-row:span 2}.card--lead .card-title{font-size:clamp(22px,2.4vw,28px);line-height:1.2}.card--lead .card-body{padding:var(--sp-5)}.card-excerpt{color:var(--muted);font-size:var(--fs-sm);margin:0}@media (width<=760px){.feature-grid{grid-template-columns:1fr}.feature-grid>.card:first-child{grid-row:auto}}.picks{counter-reset:pick;gap:0 var(--sp-6);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.picks li{counter-increment:pick;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--line);grid-template-columns:34px 96px minmax(0,1fr);align-items:center;display:grid;position:relative}.picks li:before{content:counter(pick, decimal-leading-zero);font:600 var(--fs-md)/1 var(--font-mono);color:var(--accent-text)}.picks img{aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-sm);background:var(--line);width:96px}.picks li>div{line-height:1.35}.picks a{font:700 var(--fs-sm)/1.35 var(--font-display);color:var(--text);text-decoration:none}.picks a:after{content:"";position:absolute;inset:0}.picks li:hover a{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px}.picks .card-meta{font-family:var(--font-sans);margin-top:4px;display:block}@media (width<=760px){.picks{grid-template-columns:1fr}.picks li{grid-template-columns:28px 80px minmax(0,1fr)}.picks img{width:80px}}.about-brief{gap:var(--sp-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-5) var(--sp-6);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.about-brief p{font-size:var(--fs-md);margin:0}.about-brief .kicker{margin-bottom:var(--sp-2);display:block}@media (width<=640px){.about-brief{padding:var(--sp-5);grid-template-columns:1fr}}.ad-in-feed{margin:0 0 var(--sp-7)}a.search-btn{text-decoration:none}.cookie-options{gap:var(--sp-2);display:grid}.cookie-reopen{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.page-head .search-field{max-width:560px;margin-top:var(--sp-4)}
