:root{--teal:#00a08a;--teal-dk:#006b5d;--ink:#18292b;--muted:#5d7173;--line:#d9e4e4;--bg:#f2f7f7;--bad:#d92d20}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 "Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
header{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line);padding:10px 24px;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none}.brand img{height:auto}
.devbadge{background:var(--bad);color:#fff;font-size:11px;font-weight:700;border-radius:5px;padding:2px 7px;letter-spacing:.5px}
.sub{color:var(--muted);font-size:13px}
header nav{display:flex;flex-wrap:wrap;gap:4px 12px;flex:1;justify-content:flex-end;font-size:13px}header nav a{color:var(--teal-dk);text-decoration:none;padding:2px 4px}header nav a:hover{text-decoration:underline}
main{max-width:1500px;margin:0 auto;padding:24px}
.intro small{letter-spacing:2px;font-size:11px;font-weight:700;color:var(--teal-dk)}.intro h1{font-size:40px;margin:2px 0 8px;letter-spacing:-.5px}.intro p{max-width:900px;color:#34494b}
.how{background:#fff;border:1px dashed #a9cdc1;border-radius:10px;padding:12px 16px;margin:14px 0 8px;max-width:900px;font-size:13px}code{background:#e6f0ef;border-radius:4px;padding:1px 6px;font-size:12px}
h2{font-size:26px;margin:34px 0 6px}h2.part{margin-top:46px;padding-top:18px;border-top:2px solid var(--teal)}.lead{max-width:900px;color:#34494b}
.whos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:14px}
.who{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.who h3{margin:0 0 2px;font-size:19px}.who p{margin:4px 0 10px;font-size:13px;color:var(--muted)}
.who img,figure img{width:100%;height:auto;border:1px solid var(--line);border-radius:10px;display:block}
.who .count{margin:10px 0 4px;color:var(--ink)}.who ul{margin:0 0 12px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:4px}.who li{background:#e6f4f1;color:var(--teal-dk);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}
.open{display:inline-block;background:var(--teal);color:#fff;text-decoration:none;border-radius:8px;padding:8px 14px;font-weight:700;font-size:13px}.open:hover{background:var(--teal-dk)}
.mod{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin:18px 0}
.mh{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start}.mh h2{margin:0;font-size:24px}.mh p{margin:4px 0 0;max-width:820px;color:#34494b}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px;margin-top:14px}
figure{margin:0}figcaption{display:flex;flex-direction:column;font-size:13px;margin-top:6px}figcaption span{color:var(--muted);font-size:12px}figcaption a{color:var(--teal-dk)}
footer{text-align:center;color:var(--muted);font-size:12px;padding:30px 0 40px}
a:focus-visible,img:focus-visible{outline:3px solid #ffb703;outline-offset:2px}
@media(max-width:900px){.whos{grid-template-columns:1fr}.gal{grid-template-columns:1fr}main{padding:16px}.intro h1{font-size:30px}}
