:root{color-scheme:dark;--bg:#0d151c;--panel:#14212b;--line:#2e414d;--text:#eaf0f1;--muted:#adbdc6;--accent:#99efd6;--amber:#f5cd8c;--mono:Consolas,'SFMono-Regular',monospace;font-family:Inter,'Noto Sans JP','Yu Gothic',Meiryo,system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--bg);color:var(--text);line-height:1.85}a{color:var(--accent);text-underline-offset:4px}a:hover{color:white}button,select{font:inherit}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--amber);outline-offset:4px}[hidden]{display:none!important}.wrap{max-width:1200px;margin:auto;padding:0 32px}.skip{position:absolute;left:20px;top:-100px;background:var(--bg);padding:12px}.skip:focus{top:12px;z-index:20}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:88px;border-bottom:1px solid var(--line)}.brand{font-weight:700;color:var(--text);text-decoration:none;letter-spacing:.04em}.langsw{display:flex;gap:8px}.langsw a{padding:3px 12px;text-decoration:none;font-family:var(--mono);border:1px solid var(--line);border-radius:4px}.langsw [aria-current]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.hero{padding:64px 0 34px;display:grid;grid-template-columns:1.6fr 1fr;gap:50px;align-items:center}.eyebrow,.section-no,.kicker{font:12px var(--mono);text-transform:uppercase;letter-spacing:.13em;color:var(--accent)}h1{font-size:clamp(32px,4.4vw,56px);line-height:1.3;letter-spacing:-.02em;margin:20px 0 24px;text-wrap:balance}h1 em{font-style:normal;color:var(--accent)}.lede{font-size:18px;line-height:1.9;color:var(--muted);max-width:42em}.lede strong{color:var(--text)}.meta{color:var(--muted);font-size:12px}.hero-note{background:linear-gradient(145deg,#1d3739,#15222f);border:1px solid #416a67;border-radius:12px;padding:26px}.hero-note h2{font-size:23px;margin:8px 0 18px}.hero-note p{font-size:14px}.route{display:grid;gap:8px}.route div{padding:12px 16px;border:1px solid #4a6467;border-radius:6px;background:#101f2780}.route b{display:block;color:var(--text)}.route span{display:block;font-size:12px;color:var(--muted)}.arrow{color:var(--accent);text-align:center;line-height:1}.toc{display:flex;gap:12px;flex-wrap:wrap;padding:22px 0 40px}.toc a{font-size:14px;border-bottom:1px solid var(--line);text-decoration:none;padding:5px 0;margin-right:12px}section{padding:36px 0;scroll-margin-top:20px}h2{font-size:clamp(24px,3vw,34px);line-height:1.45;margin:10px 0 18px}h3{font-size:21px;line-height:1.5;margin:8px 0 12px}p{margin:0 0 16px}.intro{max-width:850px;color:var(--muted)}.picks{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px 0}.pick{padding:24px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:7px;background:var(--panel);text-decoration:none;color:var(--text)}.pick:nth-child(3){border-top-color:var(--amber)}.pick p{font-size:14px;color:var(--muted);margin:0}.pick .kicker{font-size:11px}.pick h3{font-size:23px}.note{border-left:3px solid var(--amber);padding:18px 22px;background:#29272166;color:#e6d7bd;margin:24px 0;font-size:14px}.legend{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.badge{display:inline-block;font-size:12px;font-weight:700;border-radius:4px;padding:3px 9px;background:#254940;color:#b4f5d9}.badge.sdk{background:#263e58;color:#c4deff}.badge.claim{background:#4d3a21;color:#ffdfad}.badge.unknown{background:#3d3542;color:#e1cee9}.filters{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;gap:18px;align-items:end;flex-wrap:wrap}.filters label{font-size:12px;color:var(--muted);display:grid;gap:7px;flex:1;min-width:200px}.filters select{background:var(--bg);color:var(--text);border:1px solid #56717e;padding:10px;border-radius:4px;max-width:100%;width:100%}.filters button{border:1px solid #56717e;color:var(--text);background:transparent;border-radius:4px;cursor:pointer;padding:10px 15px}.count{font-size:13px;color:var(--muted);margin:14px 0}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:7px;margin-bottom:28px}table{border-collapse:collapse;width:100%;min-width:790px;font-size:13px}caption{text-align:left;padding:14px 16px;color:var(--muted);background:var(--panel)}th,td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--line)}thead th{font-size:12px;background:var(--panel);color:var(--muted)}tbody th{font-weight:600;width:21%}td:nth-child(3){white-space:nowrap}tbody tr:last-child>*{border-bottom:0}.devices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.device{min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:26px;scroll-margin-top:24px}.device .kicker{font-size:11px;color:var(--muted)}.device h3{font-size:24px}.price{color:var(--amber);font-size:15px;font-weight:600}.hardware{font-size:14px;color:var(--muted)}.device dl{font-size:14px;margin:20px 0}.device dt{font-weight:700;margin-top:16px;color:var(--text)}.device dd{margin:5px 0 0;color:var(--muted)}.sources{display:flex;flex-wrap:wrap;gap:8px 14px;border-top:1px solid var(--line);padding-top:14px;font-size:12px}.how-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.how-grid article{padding:24px;border:1px solid var(--line);border-radius:7px}.how-grid p,.how-grid li{font-size:15px;color:var(--muted)}code{font:13px var(--mono);color:var(--amber);overflow-wrap:anywhere}ol,ul{padding-left:22px}.faq{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:18px 0}summary{cursor:pointer;font-weight:700;padding-right:16px}details p{color:var(--muted);margin:14px 0 4px;max-width:900px}.method{max-width:900px;color:var(--muted);font-size:14px}.method strong{color:var(--text)}footer{padding:32px 0 70px;border-top:1px solid var(--line);margin-top:28px;font-size:13px;color:var(--muted)}
@media(max-width:850px){.hero{grid-template-columns:1fr;gap:22px;padding-top:40px}.hero-note{max-width:620px}.picks{grid-template-columns:1fr}.pick{padding:20px}.pick h3{margin:6px 0}.how-grid{grid-template-columns:1fr}}@media(max-width:620px){.wrap{padding:0 18px}.top{min-height:74px}.brand{font-size:14px}.hero{padding-top:28px}.hero-note{padding:20px}h1{font-size:34px}.lede{font-size:16px}.devices{grid-template-columns:1fr}.device{padding:22px}.toc{padding-bottom:16px}.filters{gap:14px}.filters label{min-width:100%}section{padding:26px 0}.pick h3{font-size:21px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
