:root{--bg:#f6f7fb;--surface:#ffffff;--ink:#121528;--ink-2:#3a3f55;--muted:#6a7088;--line:#e3e6ef;--accent:#3b5bfd;--accent-ink:#ffffff;--tint-vac:#dcebff;--tint-vac-ink:#1f4fa8;--tint-lawn:#ddf3e4;--tint-lawn-ink:#1d6b3f;--tint-win:#d9f3f1;--tint-win-ink:#11635c;--tint-help:#ece4ff;--tint-help-ink:#5a36b0;--s-available:#12865a;--s-announced:#3b5bfd;--s-emerging:#b8680a;--s-concept:#8a47c9;--s-wish:#6f7690;--warn-bg:#fff3d1;--warn:#6b4d00;--font-display:var(--nf-display,"Segoe UI"),system-ui,-apple-system,sans-serif;--font-sans:var(--nf-body,"Segoe UI"),system-ui,-apple-system,Roboto,sans-serif;--font-mono:"Cascadia Mono","SF Mono",Consolas,ui-monospace,monospace;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:40px;--s7:64px;--radius:18px;--radius-sm:12px;--shadow:0 12px 30px -20px rgba(18,21,40,0.35)}@media (prefers-color-scheme:dark){:root{--bg:#0e1020;--surface:#171a2e;--ink:#eef0f8;--ink-2:#c5c9da;--muted:#9298b0;--line:#2a2e48;--accent:#8aa0ff;--accent-ink:#0e1020;--tint-vac:#1b2a45;--tint-vac-ink:#9dc1ff;--tint-lawn:#173323;--tint-lawn-ink:#8eddb0;--tint-win:#13322f;--tint-win-ink:#86dcd3;--tint-help:#2a2147;--tint-help-ink:#c7b4ff;--s-available:#3ccb92;--s-announced:#8aa0ff;--s-emerging:#f2a94a;--s-concept:#c08cf0;--s-wish:#a0a7bc;--warn-bg:#3a3014;--warn:#f2d27a;--shadow:none;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--font-sans)}a{color:var(--accent);text-underline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:var(--font-display);line-height:1.08;letter-spacing:-.02em;text-wrap:balance;margin:0}h1{font-size:clamp(2rem,5vw,3.6rem);font-weight:800}h2{font-size:clamp(1.45rem,2.6vw,2rem);font-weight:750}h3{font-size:1.12rem;font-weight:700}p{max-width:66ch}.wrap{max-width:1180px;margin:0 auto;padding-block:var(--s5) var(--s7);padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.mono,time{font-family:var(--font-mono);font-size:.82em}.eyebrow,.muted{color:var(--muted)}.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0}.eyebrow a{color:inherit}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-header{background:var(--surface);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:5}.site-header nav{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);align-items:center;max-width:1180px;margin:0 auto;padding:var(--s3) max(16px,env(safe-area-inset-right)) var(--s3) max(16px,env(safe-area-inset-left))}.logo{font:800 1.2rem var(--font-display);color:var(--ink);text-decoration:none;gap:var(--s2);margin-right:var(--s2)}.logo,.logo-lockup{display:inline-flex;align-items:center}.logo-lockup{gap:9px}.logo-word{font:800 1.3rem/1 var(--font-display);letter-spacing:-.02em}.logo-neo{color:var(--ink)}.logo-intell{background:linear-gradient(90deg,#7f8ff5,#5560f5);-webkit-background-clip:text;background-clip:text;color:transparent}@media (prefers-color-scheme:dark){.logo-intell{background:linear-gradient(90deg,#a7b4ff,#7c86ff);-webkit-background-clip:text;background-clip:text}}.site-header .main-links{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);align-items:center}.site-header .main-links>a,.site-header summary{color:var(--ink-2);text-decoration:none;font-weight:600;cursor:pointer}.site-header .main-links>a:hover,.site-header summary:hover{color:var(--ink)}.menu{position:relative}.menu summary{list-style:none}.menu summary::-webkit-details-marker{display:none}.menu summary:after{content:" ▾";font-size:.8em}.menu-panel{position:absolute;top:calc(100% + 10px);left:-12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:var(--s2);display:grid;grid-gap:2px;gap:2px;min-width:220px;z-index:10}.menu-panel a{padding:var(--s2) var(--s3);border-radius:8px;color:var(--ink);text-decoration:none;font-weight:600}.menu-panel a:hover{background:var(--bg)}.biz{margin-left:auto;font-weight:600;font-size:.9rem;padding:7px 14px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--muted)}.biz:hover{color:var(--ink);border-color:var(--muted)}@media (max-width:620px){.site-header nav{gap:var(--s2) var(--s4)}.site-header .main-links{gap:var(--s2) var(--s4);font-size:.93rem;order:3;width:100%}.biz{padding:5px 10px;font-size:.82rem}}.site-footer{border-top:1px solid var(--line);margin-top:var(--s7);background:var(--surface)}.site-footer nav{display:flex;flex-wrap:wrap;gap:var(--s4);max-width:1180px;margin:0 auto;padding:var(--s5) 16px;font-size:.9rem}.site-footer a{color:var(--muted)}.site-footer .push{margin-left:auto}.fixture-banner{background:var(--warn-bg);color:var(--warn);padding:var(--s2) 16px;text-align:center;font-size:.9rem}.meter{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.meter-steps{display:inline-flex;gap:2px}.meter-steps span{width:6px;height:12px;border-radius:2px;background:var(--line)}.meter-label{font-weight:700;font-size:.86rem}.meter-lg .meter-steps{gap:4px}.meter-lg .meter-steps span{width:16px;height:22px;border-radius:4px}.meter-lg .meter-label{font-size:1.05rem}.meter-available{color:var(--s-available)}.meter-available .on{background:var(--s-available)}.meter-announced{color:var(--s-announced)}.meter-announced .on{background:var(--s-announced)}.meter-emerging{color:var(--s-emerging)}.meter-emerging .on{background:var(--s-emerging)}.meter-concept{color:var(--s-concept)}.meter-concept .on{background:var(--s-concept)}.meter-wish{color:var(--s-wish)}.meter-wish .on{background:var(--s-wish)}.meter-legend{list-style:none;padding:0;margin:0;display:grid;grid-gap:var(--s2);gap:var(--s2)}.meter-legend li{display:grid;grid-template-columns:170px minmax(0,1fr);grid-gap:var(--s3);gap:var(--s3);align-items:center;font-size:.93rem}@media (max-width:600px){.meter-legend li{grid-template-columns:minmax(0,1fr);gap:2px}}.chip{display:inline-block;font-weight:700;font-size:.75rem;padding:2px 9px;border-radius:999px;white-space:nowrap;background:var(--bg);border:1px solid var(--line)}.chip-available{color:var(--s-available)}.chip-announced{color:var(--s-announced)}.chip-emerging{color:var(--s-emerging)}.chip-concept{color:var(--s-concept)}.chip-wish{color:var(--s-wish)}.chip-fixture{color:var(--warn);background:var(--warn-bg)}.chip-pro{color:var(--bg);background:var(--ink);border-color:var(--ink)}.art{display:grid;place-items:center;overflow:hidden}.art svg{width:42%;max-width:140px;height:auto}.art.topic svg{width:64%;max-width:220px}.art.topic .fill{fill:currentColor;fill-opacity:.18}.q-hero{grid-template-columns:minmax(0,1fr) 240px;column-gap:var(--s5)}.q-hero>*{grid-column:1}.q-hero>.q-art{grid-column:2;grid-row:1/span 5;border-radius:var(--radius);align-self:start;height:180px}@media (max-width:760px){.q-hero{grid-template-columns:minmax(0,1fr)}.q-hero>.q-art{grid-column:1;grid-row:auto;order:-1;height:140px}}.problem-art{height:90px;border-radius:10px;margin-bottom:6px}.tint-robot-vacuums{background:var(--tint-vac);color:var(--tint-vac-ink)}.tint-lawn-and-pool{background:var(--tint-lawn);color:var(--tint-lawn-ink)}.tint-window-cleaning{background:var(--tint-win);color:var(--tint-win-ink)}.tint-humanoids{background:var(--tint-help);color:var(--tint-help-ink)}.photo{position:relative;margin:0;background:var(--surface);overflow:hidden;display:grid}.photo img{width:100%;height:100%;object-fit:contain;background:#fff;display:block}.photo figcaption{position:absolute;right:8px;bottom:6px;font-size:.7rem;color:#3a3f55;background:rgba(255,255,255,.82);padding:1px 6px;border-radius:4px}.photo-concept{position:absolute;left:8px;top:8px;font-weight:700;font-size:.75rem;color:#fff;background:var(--s-concept);padding:2px 8px;border-radius:999px}.card-photo{height:160px}.hero-photo{border-radius:18px;min-height:260px}@media (max-width:760px){.hero-photo{min-height:200px}}.search{display:flex;gap:var(--s2);max-width:720px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:var(--s2);box-shadow:var(--shadow)}.search input{flex:1 1;min-width:0;border:0;background:transparent;font:inherit;font-size:1.05rem;color:var(--ink);padding:10px 12px}.search input:focus{outline:none}.search:focus-within{border-color:var(--accent)}.chips,.pills{display:flex;gap:var(--s2)}.chips{flex-wrap:wrap}.pills{overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.chips a,.pills a{flex:none;font-size:.92rem;padding:6px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);text-decoration:none}.chips a:hover,.pills a:hover{border-color:var(--muted)}.pills a[aria-current=page]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn{display:inline-block;border:1px solid var(--line);color:var(--ink);background:var(--surface);border-radius:var(--radius-sm);padding:11px 18px;font:700 .98rem var(--font-sans);cursor:pointer;text-decoration:none}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn:hover{filter:brightness(1.06)}form.stack{max-width:480px}label{display:flex;flex-direction:column;gap:var(--s1);font-weight:600;font-size:.95rem}label.inline{flex-direction:row;gap:var(--s2);font-weight:400;align-items:flex-start}input[type=email],input[type=text],select,textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-gap:var(--s6);gap:var(--s6);align-items:center;padding-block:var(--s5) var(--s6)}.hero h1 em{font-style:normal;color:var(--accent)}.hero .lede{font-size:1.15rem;color:var(--ink-2);margin:var(--s4) 0 var(--s5);max-width:46ch}.hero .chips{margin-top:var(--s3)}.feature{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:block;color:inherit;text-decoration:none;box-shadow:var(--shadow)}.feature .art{height:230px}.feature .body{padding:var(--s4) var(--s5) var(--s5);display:grid;grid-gap:var(--s2);gap:var(--s2)}.feature h2{font-size:1.6rem}.feature p{margin:0;color:var(--ink-2)}.feature:hover h2{text-decoration:underline}@media (max-width:860px){.hero{grid-template-columns:minmax(0,1fr)}.feature .art{height:170px}}section.block{padding-block:var(--s5)}.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s2);margin-bottom:var(--s4)}.section-head a{font-weight:600;text-decoration:none}.rail,.section-head p{margin:0}.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);grid-gap:var(--s3);gap:var(--s3);overflow-x:auto;padding-bottom:var(--s2);scroll-snap-type:x mandatory;list-style:none;padding-left:0}.rail>li{scroll-snap-align:start}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--s3);gap:var(--s3)}.tile{border-radius:20px;padding:var(--s4);min-height:150px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none}.tile .tile-art{background:transparent;place-items:start}.tile svg{width:46px;height:46px}.tile h3{font-size:1.2rem}.tile span{font-size:.88rem;opacity:.85}.tile:hover h3{text-decoration:underline}@media (max-width:860px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.vs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:var(--s4);gap:var(--s4)}.vs .col{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:var(--s4);display:grid;grid-gap:var(--s2);gap:var(--s2);align-content:start}.vs h3{font-size:1.2rem;margin-bottom:var(--s1)}.vs-row{display:flex;gap:var(--s3);align-items:center;padding:10px;border-radius:14px;background:var(--bg);color:inherit;text-decoration:none}.vs-row .art{width:54px;height:54px;border-radius:12px;flex:none}.vs-row .art svg{width:62%}.vs-row div{min-width:0;display:grid;grid-gap:2px;gap:2px}.vs-row b{font-weight:700}.vs-row small{color:var(--muted)}.vs-row:hover b{text-decoration:underline}@media (max-width:760px){.vs{grid-template-columns:minmax(0,1fr)}}.soon{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--s3);gap:var(--s3);list-style:none;padding:0;margin:0}@media (max-width:860px){.soon{grid-template-columns:minmax(0,1fr)}}.quiz{background:var(--ink);color:var(--bg);border-radius:24px;padding:var(--s5);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);grid-gap:var(--s5);gap:var(--s5);align-items:center}.quiz .eyebrow{color:inherit;opacity:.7}.quiz h2{font-size:clamp(1.5rem,3vw,2.2rem);margin-top:var(--s2)}.quiz .opts{display:flex;gap:var(--s2);margin-top:var(--s4);flex-wrap:wrap}.quiz button{font:700 1rem var(--font-sans);padding:12px 20px;border-radius:var(--radius-sm);border:2px solid;background:transparent;color:inherit;cursor:pointer}.quiz button:hover,.quiz button[aria-pressed=true]{background:var(--bg);color:var(--ink);border-color:var(--bg)}.quiz .answer{margin:var(--s4) 0 0;min-height:3.2em}.quiz .answer a{color:inherit;font-weight:700}.quiz .art{border-radius:18px;height:210px}@media (max-width:760px){.quiz{grid-template-columns:minmax(0,1fr)}.quiz .art{display:none}}.problems{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:var(--s3);gap:var(--s3)}.problem{display:grid;grid-gap:4px;gap:4px;height:100%;padding:var(--s4);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none}.problem b{font:700 1.05rem var(--font-display)}.problem span{color:var(--muted);font-size:.9rem}.problem:hover{border-color:var(--accent)}.hype{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4) var(--s5);display:grid;grid-gap:var(--s4);gap:var(--s4)}.hype-head{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}.hype-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:var(--s5);gap:var(--s5)}.hype-cols>div{display:grid;grid-gap:6px;gap:6px;align-content:start}.hype-cols p{margin:0}.hype-cols>div+div{border-left:1px solid var(--line);padding-left:var(--s5)}.cite{font-size:.82rem;color:var(--muted)}.verdict-pill{font-weight:700;font-size:.85rem;padding:3px 12px;border-radius:999px;color:#fff}.verdict-pill-yes{background:var(--s-available)}.verdict-pill-partly{background:var(--s-emerging)}.verdict-pill-no{background:var(--s-wish)}@media (max-width:760px){.hype-cols{grid-template-columns:minmax(0,1fr);gap:var(--s4)}.hype-cols>div+div{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:var(--s4)}}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:var(--s3);gap:var(--s3);padding:0;margin:0;list-style:none}.cards-1{grid-template-columns:minmax(0,1fr)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;min-width:0;height:100%;position:relative;transition:border-color .15s,transform .15s}.card:hover{border-color:var(--muted)}.card .art{height:130px}.card .body{padding:var(--s3) var(--s4) var(--s4);display:grid;grid-gap:6px;gap:6px;align-content:start;flex:1 1}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:after{content:"";position:absolute;inset:0}.card p{margin:0;color:var(--ink-2);font-size:.93rem}.card .kind{font-size:.78rem;font-weight:700;color:var(--muted)}.card-foot{display:flex;justify-content:space-between;gap:var(--s2);padding:var(--s2) var(--s4) var(--s3);font-size:.8rem;color:var(--muted);border-top:1px solid var(--line)}@media (prefers-reduced-motion:no-preference){.card:hover{transform:translateY(-2px)}}.explore{display:grid;grid-template-columns:240px minmax(0,1fr);grid-gap:var(--s5);gap:var(--s5);align-items:start}.filters-desktop{position:-webkit-sticky;position:sticky;top:calc(env(safe-area-inset-top, 0px) + 80px);display:grid;grid-gap:var(--s3);gap:var(--s3)}.filters-mobile{display:none}.filters summary{font-weight:700;cursor:pointer}.filters fieldset{border:0;padding:0;margin:0;display:grid;grid-gap:var(--s2);gap:var(--s2)}.filters legend{font-weight:700;font-size:.95rem;margin-bottom:var(--s1)}.filters label.inline{align-items:center;font-size:.93rem}.filters select{width:100%}.results-count{margin:0;font-size:1rem;font-weight:700;color:var(--muted);font-family:var(--font-sans);letter-spacing:0}@media (max-width:820px){.explore{grid-template-columns:minmax(0,1fr)}.filters-desktop{display:none}.filters-mobile{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--s3) var(--s4)}.filters-mobile[open] summary{margin-bottom:var(--s3)}}.page-head{display:grid;grid-gap:var(--s3);gap:var(--s3);padding-block:var(--s3) var(--s5)}.product-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-gap:var(--s5);gap:var(--s5);background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:var(--s5)}.product-hero .art{border-radius:18px;min-height:260px}.product-hero .info{display:grid;grid-gap:var(--s3);gap:var(--s3);align-content:start}.product-hero .lead{font-size:1.1rem;color:var(--ink-2);margin:0}.actions{display:flex;flex-wrap:wrap;gap:var(--s2)}@media (max-width:760px){.product-hero{grid-template-columns:minmax(0,1fr);padding:var(--s4)}.product-hero .art{min-height:160px}}.answer{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4) var(--s5)}.answer p{margin:0;font-size:1.12rem}.answer .eyebrow{margin-bottom:var(--s1)}.can{list-style:none;padding:0;margin:0;display:grid;grid-gap:var(--s2);gap:var(--s2)}.can li{display:grid;grid-template-columns:30px minmax(0,1fr);grid-gap:var(--s3);gap:var(--s3);align-items:start;padding:var(--s3) var(--s4);border-radius:14px;background:var(--surface);border:1px solid var(--line)}.can .mark{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;font-size:.9rem}.mark-yes{background:var(--s-available)}.mark-partly{background:var(--s-emerging)}.mark-no{background:var(--s-wish)}.can .what{display:grid;grid-gap:2px;gap:2px}.can .what a{color:var(--ink);font-weight:700;text-decoration:none}.can .what a:hover{text-decoration:underline}.can .verdict{font-weight:700;font-size:.9rem}.can .verdict-yes{color:var(--s-available)}.can .verdict-partly{color:var(--s-emerging)}.can .verdict-no{color:var(--s-wish)}.can p{margin:0;color:var(--ink-2);font-size:.95rem}.caveat{font-size:.9rem;color:var(--muted)}details.how{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4) var(--s5)}details.how>summary{font-weight:700;cursor:pointer;font-family:var(--font-display);font-size:1.15rem}details.how[open]>summary{margin-bottom:var(--s4)}.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:var(--s5);gap:var(--s5)}@media (max-width:760px){.two-col{grid-template-columns:minmax(0,1fr)}}.timeline{list-style:none;padding:0;margin:0;border-left:2px solid var(--line);display:grid;grid-gap:var(--s4);gap:var(--s4)}.timeline li{padding-left:var(--s4);position:relative}.timeline li:before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--muted)}.timeline .src-meta{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);font-size:.82rem;color:var(--muted)}.timeline p{margin:var(--s1) 0}.changes{list-style:none;padding:0;margin:0;flex-direction:column}.changes,.changes li{display:flex;gap:var(--s2)}.changes li{flex-wrap:wrap;align-items:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s5)}.stack{flex-direction:column;gap:var(--s4)}.row,.stack{display:flex}.row{flex-wrap:wrap;gap:var(--s3);align-items:center}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}.table-wrap table{min-width:560px}td,th{text-align:left;vertical-align:top;padding:var(--s2) var(--s3);border-bottom:1px solid var(--line)}th{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}pre.diff{white-space:pre-wrap;font:.8rem/1.4 var(--font-mono);margin:0;max-height:200px;overflow:auto}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}