.gal .galh{font-size:clamp(24px,3.4vw,34px);font-weight:800;letter-spacing:-.03em;line-height:1.08}.gal .galsub{color:var(--c-ink-2);font-size:15px;line-height:1.6;max-width:720px;margin-top:12px}.gal .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.gal .chip{padding:8px 15px;border-radius:999px;border:1px solid var(--c-line2);background:var(--c-glass);color:var(--c-ink-2);font:600 13px inherit;cursor:pointer;backdrop-filter:blur(14px);transition:color .15s,border-color .15s}.gal .chip:hover{color:var(--c-ink-1)}.gal .chip.on{background:linear-gradient(135deg,oklch(.82 .15 200),#72eb99);color:oklch(.26 .06 220);border-color:transparent}.gal .card{padding:18px;display:flex;flex-direction:column;gap:11px}.gal .chead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.gal .hero{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:27px;box-shadow:0 8px 20px #00000059,inset 0 1px #ffffff40}.gal .meta{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.gal .stars{font-size:13px;letter-spacing:1px;color:#4e5661}.gal .stars .on{color:#e5c057}.gal .tag{font:700 10px inherit;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px;white-space:nowrap}.gal .tag.ready{color:#7cf5a2;background:#72eb9926}.gal .tag.planned{color:#fec766;background:#f0ba5929}.gal .ctitle{font-size:17px;font-weight:800;letter-spacing:-.01em}.gal .ccat{font:600 11.5px inherit;text-transform:uppercase;letter-spacing:.1em;color:#34dde5;margin-top:-4px}.gal .cpitch{color:var(--c-ink-2);font-size:13.5px;line-height:1.55}.gal .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:2px}.gal .stats div{background:#131b268c;border-radius:10px;padding:8px 4px;text-align:center}.gal .stats b{display:block;font-size:14px;font-weight:800;color:var(--c-ink-1)}.gal .stats i{font-style:normal;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink-3)}.gal .comps{display:flex;flex-wrap:wrap;gap:6px}.gal .comp{font:500 11.5px ui-monospace,Menlo,monospace;color:var(--c-ink-2);background:#131b268c;border-radius:7px;padding:3px 8px}.gal .sketch summary{cursor:pointer;font:600 12px inherit;color:var(--c-ink-3);list-style:none;padding:4px 0}.gal .sketch summary::-webkit-details-marker{display:none}.gal .sketch summary:hover{color:var(--c-ink-1)}.gal .sketch .code{margin-top:8px;padding:12px 14px;border-radius:12px;background:#050911b3;border:1px solid var(--c-line2);font:12px/1.6 ui-monospace,Menlo,monospace;overflow-x:auto}.gal .sketch .code .kw{color:var(--kw)}.gal .sketch .code .ty{color:var(--ty)}.gal .sketch .code .fn{color:var(--fn)}.gal .sketch .code .st{color:var(--st)}.gal .sketch .code .nu{color:var(--nu)}.gal .sketch .code .cm{color:var(--cm);font-style:italic}.gal .wiring summary{display:flex;align-items:center;gap:8px}.gal .wcount{font:700 10px inherit;letter-spacing:.04em;color:#34dde5;background:oklch(.82 .15 200 / .12);border-radius:999px;padding:2px 8px}.gal .wnote{margin-top:8px;color:var(--c-ink-3);font-size:11.5px;line-height:1.5;font-style:italic}.gal .wtablewrap{margin-top:8px;border-radius:12px;border:1px solid var(--c-line2);background:#05091180;overflow-x:auto}.gal table.wtable{width:100%;border-collapse:collapse;font-size:12px;min-width:340px}.gal table.wtable th,.gal table.wtable td{padding:7px 12px;text-align:left;border-bottom:1px solid var(--c-line);white-space:nowrap}.gal table.wtable thead th{font:700 10.5px inherit;text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink-3)}.gal table.wtable thead th:last-child{color:#34dde5}.gal table.wtable tbody tr:last-child td{border-bottom:none}.gal table.wtable .wpart{color:var(--c-ink-1);font-weight:600}.gal table.wtable .wpin{color:var(--c-ink-2);font-family:ui-monospace,Menlo,monospace}.gal .wgpio{font:600 11px ui-monospace,Menlo,monospace;color:#52f1f9;background:oklch(.82 .15 200 / .12);border-radius:6px;padding:2px 7px}.gal .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}.gal .btn{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:11px;font:700 12.5px inherit;border:1px solid var(--c-line2);color:var(--c-ink-1);background:var(--c-glass);transition:transform .12s,border-color .15s}.gal .btn:hover{transform:translateY(-1px);border-color:oklch(.82 .14 200 / .6)}.gal .btn.primary{background:linear-gradient(135deg,oklch(.82 .15 200),#72eb99);color:oklch(.24 .06 220);border-color:transparent}.gal .tablewrap{margin-top:22px;padding:4px;overflow-x:auto}.gal table.cmp{width:100%;border-collapse:collapse;font-size:13.5px;min-width:560px}.gal table.cmp th,.gal table.cmp td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--c-line)}.gal table.cmp thead th{font-weight:700;color:var(--c-ink-1);font-size:13px}.gal table.cmp tbody th.feat{font-weight:600;color:var(--c-ink-2)}.gal table.cmp td{color:var(--c-ink-2)}.gal table.cmp .own{background:oklch(.82 .15 200 / .09);color:var(--c-ink-1);font-weight:600}.gal table.cmp thead th.own{background:oklch(.82 .15 200 / .16)}.gal table.cmp tbody tr:last-child th,.gal table.cmp tbody tr:last-child td{border-bottom:none}.gal .only{margin-top:16px;padding:18px 20px}.gal .onlyh{font-weight:800;font-size:15px}.gal .onlylead{color:var(--c-ink-3);font-size:13px;margin-top:3px}.gal .onlylist{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.gal .ofeat{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--c-ink-1);background:#131b268c;border-radius:10px;padding:7px 12px}.gal .ofeat .ok{color:#72eb99;font-weight:800}.gal .note{margin-top:16px;color:var(--c-ink-3);font-size:12.5px;line-height:1.6;max-width:760px;font-style:italic}.sc{--glass2:oklch(.22 .02 255 / .7);--grad:linear-gradient(135deg,oklch(.82 .15 200),oklch(.85 .16 152));--kw:oklch(.78 .13 320);--ty:oklch(.82 .13 200);--fn:oklch(.85 .15 152);--st:oklch(.82 .12 90);--nu:oklch(.8 .12 40);--cm:oklch(.55 .02 255);--mono:ui-monospace,"SF Mono",Consolas,monospace }.sc h1{font-size:clamp(28px,4.4vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-bottom:8px}.sc h1 span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.sc .sub{color:var(--c-ink-2);font-size:clamp(14px,2vw,17px);max-width:680px;margin-bottom:24px;line-height:1.55}.sc .tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.sc .tabs button{padding:10px 18px;border-radius:999px;border:1px solid var(--c-line2);background:var(--c-glass);color:var(--c-ink-2);font:600 14px inherit;cursor:pointer;backdrop-filter:blur(14px)}.sc .tabs button.on{background:var(--grad);color:oklch(.26 .06 220);border-color:transparent}.sc .split{display:grid;grid-template-columns:1fr 360px;gap:26px;align-items:start}@media (max-width:860px){.sc .split{grid-template-columns:1fr;justify-items:center}}.sc .codewrap{background:var(--c-glass);border:1px solid var(--c-line2);border-radius:20px;overflow:hidden;width:100%;backdrop-filter:blur(22px) saturate(180%);box-shadow:0 18px 50px #0006}.sc .dots{display:flex;gap:7px;padding:14px 16px 0}.sc .dots i{width:11px;height:11px;border-radius:50%}.sc .dots i:nth-child(1){background:#fa6863}.sc .dots i:nth-child(2){background:#eabf3a}.sc .dots i:nth-child(3){background:#6ed889}.sc pre.code{padding:16px 20px 22px;font:13px/1.65 var(--mono);overflow:auto;-moz-tab-size:2;-o-tab-size:2;tab-size:2;color:var(--c-ink-1);max-height:600px;margin:0;text-align:left}.sc pre.code .kw{color:var(--kw)}.sc pre.code .ty{color:var(--ty)}.sc pre.code .fn{color:var(--fn)}.sc pre.code .st{color:var(--st)}.sc pre.code .nu{color:var(--nu)}.sc pre.code .cm{color:var(--cm);font-style:italic}.sc .phonewrap{display:grid;place-items:center;position:sticky;top:84px}.sc .phone{border-radius:46px;padding:11px;background:linear-gradient(160deg,#2a2e33,#040609);box-shadow:0 0 0 2px #35383d,0 30px 70px #0009}.sc .screen{position:relative;width:300px;height:600px;border-radius:36px;overflow:hidden;background:#080e16}.sc .screen iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.sc .homebar{position:absolute;left:0;right:0;bottom:0;height:26px;display:grid;place-items:center;z-index:3;pointer-events:none}.sc .homebar i{width:118px;height:5px;border-radius:99px;background:#ffffff80;box-shadow:0 0 12px #ffffff40;animation:schb 2.6s ease-in-out infinite}@keyframes schb{0%,to{transform:translateY(0);opacity:.6}50%{transform:translateY(-3px);opacity:1}}.sc .cap{margin-top:14px;color:var(--c-ink-3);font:12px var(--mono);text-align:center}
