:root{--color-bg:#fff;--color-surface:#f4f6fa;--color-text:#16233a;--color-navy:#0f1d38;--color-muted:#57607a;--color-border:#dde3ee;--color-primary:#1d63d1;--color-primary-dark:#123f87;--color-accent-warm:#d9622b;--color-accent-warm-dark:#b04e20;--color-ad:#8a5a00;--color-ad-bg:#fdf3e0;--color-good:#1b6b3a;--color-bad:#a3312a;--color-surface-warm:#faf4ec;--color-cat-smart-home:#1a56b8;--color-cat-security:#0a6358;--color-cat-cleaning:#5b4fc9;--max-width:44rem;--wide-width:1200px;--radius:8px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:17px}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,sans-serif;line-height:1.8;overflow-x:hidden}img,video{max-width:100%;height:auto}a{color:var(--color-primary)}a:hover{color:var(--color-primary-dark)}h1,h2,h3,h4{color:var(--color-text);line-height:1.4}table{border-collapse:collapse;width:100%}th,td{border:1px solid var(--color-border);text-align:left;vertical-align:top;padding:.5rem .75rem}th{background:var(--color-surface)}.container{max-width:var(--max-width);margin-inline:auto;padding-inline:1rem}.container-wide{max-width:var(--wide-width);margin-inline:auto;padding-inline:1rem}@media (width>=640px){.container,.container-wide{padding-inline:1.5rem}}.site-header{border-bottom:1px solid var(--color-border);background:var(--color-bg)}.site-header .container,.site-header .container-wide{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-top:1rem;padding-bottom:1rem;display:flex}.site-header a.brand{letter-spacing:-.01em;color:var(--color-text);align-items:baseline;font-size:1.3rem;font-weight:800;text-decoration:none;display:inline-flex}.site-header a.brand .brand-mark{color:var(--color-navy);margin-right:.15em}.nav-toggle{background:var(--color-bg);border:1px solid var(--color-border);font:inherit;color:var(--color-text);border-radius:6px;padding:.45rem .8rem;font-weight:600;display:none}.site-nav{flex-wrap:wrap;gap:.15rem;font-size:.95rem;display:flex}.site-nav a{color:var(--color-text);border-radius:6px;padding:.45rem .7rem;font-weight:500;text-decoration:none;display:inline-block}.site-nav a:hover{color:var(--color-primary);background:var(--color-surface)}@media (width<=639px){.nav-toggle{display:inline-block}.site-nav{border-top:1px solid var(--color-border);flex-direction:column;gap:0;width:100%;margin-top:.75rem;padding-top:.5rem;display:none}.site-nav.is-open{display:flex}.site-nav a{padding:.7rem .5rem}}main{min-height:60vh;padding:2rem 0 3.5rem}main :where(h2){margin-top:2.25rem;margin-bottom:.85rem;font-size:1.5rem}main :where(h3){margin-top:1.5rem;margin-bottom:.6rem;font-size:1.15rem}main :where(p){margin:0 0 1.15rem}main :where(ul,ol){margin:0 0 1.15rem;padding-left:1.4rem}.article-image-break{margin:1.5rem 0}.article-image-break img{border-radius:var(--radius);width:100%;height:auto;display:block}.article-image-break figcaption{color:var(--color-muted);text-align:center;margin-top:.5rem;font-size:.85rem}.site-footer{border-top:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);font-size:.85rem}.site-footer .container{padding-top:1.5rem;padding-bottom:1.5rem}.footer-links{flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:.75rem;padding:0;list-style:none;display:flex}.footer-links a{color:var(--color-muted)}.ad-disclosure{color:var(--color-ad);background:var(--color-ad-bg);border:1px solid #f0d9a8;border-radius:999px;align-items:center;gap:.4rem;margin:.25rem 0;padding:.2rem .65rem;font-size:.8rem;font-weight:600;display:inline-flex}.ad-disclosure-block{color:var(--color-ad);background:var(--color-ad-bg);border-radius:var(--radius);border:1px solid #f0d9a8;margin:1rem 0;padding:.75rem 1rem;font-size:.9rem}.cta-button{background:var(--color-primary);color:#fff;border-radius:var(--radius);margin-top:.5rem;padding:.7rem 1.25rem;font-weight:600;text-decoration:none;display:inline-block}.cta-button:hover{background:var(--color-primary-dark);color:#fff}.cta-button.buy-button{background:var(--color-accent-warm)}.cta-button.buy-button:hover{background:var(--color-accent-warm-dark)}.cta-fallback{border:1px dashed var(--color-border);border-radius:var(--radius);color:var(--color-muted);padding:.9rem 1rem;font-size:.9rem}.cta-who-should-check{border-left:3px solid var(--color-border);background:var(--color-surface);color:var(--color-text);margin:0 0 .6rem;padding:.7rem .9rem;font-size:.9rem}.cta-live-link{margin:.4rem 0 .3rem}.cta-destination-note{color:var(--color-muted);margin:0;font-size:.82rem}.card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);margin:1rem 0;padding:1.1rem 1.25rem}.pros-cons{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.pros-cons{grid-template-columns:1fr 1fr}}.pros-cons h3{margin-top:0;font-size:1rem}.pros-cons .pros h3{color:var(--color-good)}.pros-cons .cons h3{color:var(--color-bad)}.pros-cons ul{margin:0;padding-left:1.2rem}.badge{color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.15rem .6rem;font-size:.78rem;display:inline-block}.breadcrumbs{color:var(--color-muted);margin-bottom:1rem;font-size:.85rem}.breadcrumbs ol{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{content:"›";color:var(--color-muted);margin-left:.35rem}.todo-evidence{border-radius:var(--radius);color:#6b4a08;background:#fffaf0;border:2px dashed #c4931f;padding:.9rem 1rem;font-size:.9rem}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--color-primary);color:#fff;z-index:100;padding:.5rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{top:.5rem;left:.5rem}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.hero-photo-section{background:var(--color-surface-warm);border-radius:var(--radius);padding:1.25rem 1.25rem 1.75rem}.hero-photo-frame{aspect-ratio:21/9;border-radius:var(--radius);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));color:var(--color-primary);justify-content:center;align-items:center;margin-bottom:1.5rem;display:flex;overflow:hidden}.hero-photo-frame img{object-fit:cover;width:100%;height:100%;display:block}.hero-photo-frame svg{width:32%;height:auto}@media (width<=479px){.hero-photo-frame{aspect-ratio:4/3}}.hero-photo-text h1{margin:0 0 .85rem;font-size:clamp(1.7rem,3.4vw,2.4rem)}.hero-lead{color:var(--color-muted);margin:0 0 1.5rem;font-size:1.1rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.hero-actions .secondary-link{font-weight:600}.viewpoints-section{background:var(--color-surface);border-radius:var(--radius);padding:1.5rem 1.5rem 1.75rem}.viewpoints-section h2{margin-top:0}.metric-panels{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.metric-panel{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:1rem 1.1rem}.metric-panel .metric-label{margin-bottom:.2rem;font-size:.98rem;font-weight:700;display:block}.metric-panel .metric-desc{color:var(--color-muted);font-size:.85rem;display:block}.focus-cards{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.focus-cards{grid-template-columns:1fr 1fr}}.focus-card{border:1px solid var(--color-border);border-top:3px solid var(--thumb-color,var(--color-border));border-radius:var(--radius);background:var(--color-bg);padding:1.25rem 1.4rem}.focus-card-icon{width:2.4rem;height:2.4rem;color:var(--thumb-color,var(--color-muted));background:color-mix(in srgb, var(--thumb-color,var(--color-muted)) 12%, transparent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.6rem;display:inline-flex}.focus-card-icon--neutral{color:var(--color-muted);background:var(--color-surface);font-weight:700}.focus-card h3{margin-top:0}.focus-card p{color:var(--color-muted);margin-bottom:0}.tool-highlight{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;padding:1.5rem 1.75rem;display:flex}.tool-highlight-text{max-width:34rem}.tool-highlight-text h3{margin:0 0 .4rem}.tool-highlight-text p{color:var(--color-muted);margin:0}.rule-cards{grid-template-columns:1fr;gap:1rem;margin:1.5rem 0;display:grid}@media (width>=720px){.rule-cards{grid-template-columns:repeat(3,1fr)}}.rule-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:1.1rem 1.25rem}.rule-card .rule-number{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-bottom:.6rem;font-size:.85rem;font-weight:700;display:inline-flex}.rule-card p{color:var(--color-muted);margin:0;font-size:.95rem}.page-toc{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);margin:1.5rem 0 2rem;padding:1rem 1.25rem}.page-toc p{margin:0 0 .5rem;font-weight:700}.page-toc ol{margin:0;padding-left:1.25rem}.article-toc summary{cursor:pointer;margin:0 0 .5rem;font-weight:700}.article-toc[open] summary{margin-bottom:.6rem}.article-toc ol{margin:0;padding-left:1.25rem}.article-toc li{padding:.15rem 0}.table-scroll{overflow-x:auto}.scroll-hint{color:var(--color-muted);margin:0 0 .4rem;font-size:.82rem;display:none}@media (width<=719px){.scroll-hint{display:block}}.purchase-checklist ul{margin:0;padding:0;list-style:none}.purchase-checklist li{align-items:flex-start;gap:.5rem;padding:.4rem 0;display:flex}.checklist-mark{color:var(--color-good);font-weight:700}.research-scope-disclosure{color:var(--color-muted);border-left:3px solid var(--color-border);margin:0 0 1rem;padding-left:.9rem;font-size:.9rem}.update-history{margin:.75rem 0 0;padding:0;list-style:none}.update-history li{border-top:1px solid var(--color-border);align-items:baseline;gap:.6rem;padding:.4rem 0;font-size:.92rem;display:flex}.update-history li:first-child{border-top:none}.product-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.product-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.product-grid{grid-template-columns:repeat(3,1fr)}}.product-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);flex-direction:column;display:flex;overflow:hidden}.product-card[hidden],.product-group[hidden]{display:none}.product-card-photo{aspect-ratio:4/3;background:color-mix(in srgb, var(--thumb-color,var(--color-muted)) 12%, var(--color-surface));border-bottom:3px solid var(--thumb-color,var(--color-border));justify-content:center;align-items:center;display:flex;overflow:hidden}.product-card-photo img{object-fit:cover;width:100%;height:100%;display:block}.product-card-photo-fallback{color:var(--thumb-color,var(--color-muted));justify-content:center;align-items:center;display:inline-flex}.product-card-photo-fallback[hidden]{display:none}.product-card-photo-inner,.product-card-ad-photo{width:100%;height:100%;position:relative}.product-card-ad-photo[hidden]{display:none}[data-a8-target]{width:100%;height:100%;display:block}.product-card-ad-photo img{object-fit:cover;display:block;width:100%!important;height:100%!important}.product-card-ad-photo a{width:100%;height:100%;display:block}.product-card-ad-badge{margin:0;position:absolute;bottom:.6rem;left:.6rem}.product-card-body{flex-direction:column;flex:1;padding:1.1rem 1.25rem;display:flex}.product-card-type{color:var(--thumb-color,var(--color-muted));border-color:color-mix(in srgb, var(--thumb-color,var(--color-border)) 40%, var(--color-border));background:color-mix(in srgb, var(--thumb-color,var(--color-muted)) 8%, var(--color-surface));align-self:flex-start;margin-bottom:.5rem}.product-card h3{margin:0 0 .4rem;font-size:1.05rem}.product-card h3 a{text-decoration:none}.product-card-maker{color:var(--color-muted);margin:0 0 .5rem;font-size:.82rem}.product-card-does{color:var(--color-text);margin:0 0 .6rem;font-size:.92rem}.product-card-badges{flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;display:flex}.product-card-badge{color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:.2rem .65rem;font-size:.78rem;display:inline-block}.product-card-badge--hub{color:var(--color-text);font-weight:600}.product-price{margin:0 0 .6rem;font-size:.86rem}.product-price-label{color:var(--color-text);margin-bottom:.2rem;font-weight:700;display:block}.product-price--unknown .product-price-label{color:var(--color-muted);font-weight:600}.product-price-note{color:var(--color-muted);margin-top:.2rem;font-size:.78rem;display:block}.product-card-install,.product-card-for{color:var(--color-muted);margin:0 0 .6rem;font-size:.85rem}.product-card-install strong,.product-card-for strong{color:var(--color-text);font-weight:600}.product-card-link{margin:0 0 .75rem;font-size:.88rem;font-weight:600;display:inline-block}.product-card .cta-live{border-top:1px solid var(--color-border);margin-top:auto;padding-top:.6rem}.product-card .cta-button.buy-button{text-align:center;width:100%;margin-top:.3rem;display:block}.product-card .cta-fallback{margin-top:auto;padding:.75rem .9rem;font-size:.82rem}.purpose-shortcut-section{background:var(--color-surface-warm);border-radius:var(--radius);margin:1.5rem 0 2rem;padding:1.5rem 1.5rem 1.75rem}.purpose-shortcut-section h2{margin-top:0}.purpose-shortcut-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.purpose-shortcut-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.purpose-shortcut-grid{grid-template-columns:repeat(3,1fr)}}.purpose-shortcut-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:inherit;padding:1.1rem 1.25rem;text-decoration:none;display:block}.purpose-shortcut-card:hover{border-color:var(--color-primary)}.purpose-shortcut-icon{width:2.4rem;height:2.4rem;color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, transparent);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.6rem;display:inline-flex}.purpose-shortcut-card h3{margin:0 0 .35rem;font-size:1rem}.purpose-shortcut-card p{color:var(--color-muted);margin:0;font-size:.88rem}.discovery-toolbar{background:var(--color-surface);border-radius:var(--radius);margin-bottom:2rem;padding:1.5rem 1.5rem 1.75rem}.discovery-toolbar h2{margin-top:0}.discovery-noscript-note{color:var(--color-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.6rem .9rem;font-size:.88rem}.discovery-search{margin-bottom:1.25rem}.discovery-search label{margin-bottom:.4rem;font-weight:600;display:block}.discovery-search input{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);width:100%;max-width:28rem;color:var(--color-text);padding:.6rem .8rem;font-size:1rem}.discovery-filter-group{margin-top:1.1rem}.discovery-filter-group h3{margin:0 0 .5rem;font-size:.95rem}.discovery-chips{flex-wrap:wrap;gap:.5rem;display:flex}.discovery-chip{border:1px solid var(--color-border);background:var(--color-bg);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .8rem;font-size:.88rem;display:inline-flex}.discovery-chip:has(input:checked){border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-bg));color:var(--color-primary-dark);font-weight:600}.discovery-chip input{margin:0}.discovery-empty-message{color:var(--color-muted);background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;font-size:.9rem}.section-lead{color:var(--color-muted);font-size:.92rem}.starter-section{background:var(--color-surface-warm);border-radius:var(--radius);margin-bottom:2rem;padding:1.5rem 1.5rem 1.75rem}.starter-section h2{margin-top:0}.purpose-groups-section{margin-bottom:2rem}.purpose-groups-section>h2{margin-bottom:.2rem}.purpose-group{border-top:1px solid var(--color-border);margin-top:1.75rem;padding-top:1.5rem}.purpose-group:first-of-type{border-top:none}.purpose-group h3{margin-bottom:.2rem}.purpose-group-desc{color:var(--color-muted);margin:0 0 .75rem;font-size:.9rem}.product-type-section{background:var(--color-surface);border-radius:var(--radius);margin-bottom:2rem;padding:1.5rem 1.5rem 1.75rem}.product-type-section h2{margin-top:0}.product-group{margin-top:1.5rem}.product-group:first-of-type{margin-top:1rem}.product-group h3{color:var(--thumb-color,var(--color-text));border-bottom:2px solid var(--thumb-color,var(--color-border));margin-bottom:.9rem;padding-bottom:.2rem;display:inline-block}.products-cta-note{color:var(--color-muted);font-size:.92rem}.purpose-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.purpose-grid{grid-template-columns:repeat(2,1fr)}}.purpose-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;padding:1.25rem 1.4rem;text-decoration:none;display:block}.purpose-card:hover{border-color:var(--color-primary)}.purpose-card h3{color:var(--color-text);margin:0 0 .4rem}.purpose-card p{color:var(--color-muted);margin:0;font-size:.92rem}.article-thumbnail{background:color-mix(in srgb, var(--thumb-color) 10%, var(--color-surface));color:var(--thumb-color);border-radius:var(--radius);position:relative;overflow:hidden}.article-thumbnail-media{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.article-thumbnail-media svg{width:46%;height:auto}.article-scene-photo{object-fit:cover;width:100%;height:100%;display:block}.article-scene-fallback{justify-content:center;align-items:center;width:100%;height:100%}.article-thumbnail-label{letter-spacing:.02em;background:var(--color-bg);color:var(--thumb-color);border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:700;position:absolute;bottom:.6rem;left:.6rem}.article-thumbnail--card{aspect-ratio:4/3}.article-thumbnail--hero{aspect-ratio:21/9;margin-bottom:1.25rem}.article-thumbnail--hero .article-thumbnail-media svg{width:34%}.article-thumbnail--hero .article-thumbnail-label{font-size:.9rem}@media (width<=479px){.article-thumbnail--hero{aspect-ratio:16/10}}.article-card-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}@media (width>=640px){.article-card-grid{grid-template-columns:repeat(2,1fr)}}.recommended-section{background:var(--color-surface);border-radius:var(--radius);padding:1.5rem 1.5rem 1.75rem}.recommended-section h2{margin-top:0}.recommended-section>p:last-child{margin-bottom:0;font-weight:600}.focus-section{background:var(--color-surface-warm);border-radius:var(--radius);padding:1.5rem 1.5rem 1.75rem}.focus-section h2{margin-top:0}@media (width>=960px){.article-card-grid{grid-template-columns:repeat(3,1fr)}}.article-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:inherit;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.article-card:hover{border-color:var(--thumb-color,var(--color-primary))}.article-card:hover .article-card-link{color:var(--color-primary-dark)}.article-card-body{flex-direction:column;flex:1;padding:1rem 1.1rem 1.2rem;display:flex}.article-card h3{margin:.4rem 0 .35rem;font-size:1.02rem}.article-card p{color:var(--color-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;margin:0;font-size:.9rem;display:-webkit-box;overflow:hidden}.article-card-link{color:var(--color-primary);margin-top:.75rem;font-size:.88rem;font-weight:600}.beginner-section{background:var(--color-surface-warm);border-radius:var(--radius);padding:1.5rem 1.5rem 1.75rem}.beginner-section h2{margin-top:0}.beginner-card{border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);background:var(--color-bg);color:inherit;padding:1.25rem 1.4rem;text-decoration:none;display:block}.beginner-card:hover{border-color:var(--color-primary)}.beginner-card-tag{color:var(--color-primary-dark);background:color-mix(in srgb, var(--color-primary) 12%, var(--color-bg));border-radius:999px;margin-bottom:.5rem;padding:.15rem .7rem;font-size:.78rem;font-weight:700;display:inline-block}.beginner-card h3{margin:0 0 .4rem}.beginner-card p{color:var(--color-muted);margin:0}
