[hidden]{display:none!important}
:root{--hue:#52525b;--tint:#f1f5f9;--hue-inv:#d4d4d8;--bg:#f7f7f8;--surface:#fff;--surface-hi:#f8f8fe;--subtle:#6b6b74;--line2:#d4d4d8;--control:#84848d;--accent-hi:#4338ca;--accent-soft:#eef2ff;--accent-line:#c7d2fe;--on-accent:#fff;--star:#c76a05;--track:#ececee;--shadow:0 1px 2px rgba(10,10,11,.06),0 1px 1px rgba(10,10,11,.03);--pop:0 12px 32px -8px rgba(10,10,11,.18),0 2px 6px rgba(10,10,11,.06);--pop-bg:#fff;--pop-line:#e7e7ea;--wait-bg:#fef3c7;--wait-fg:#854d0e;--danger:#b91c1c;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--r-tile:14px;--r-field:10px;--r-btn:8px}
html{background:var(--bg)}
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
main{flex:1 0 auto}
.wrap{width:100%}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.mono{font-family:var(--mono);font-size:.75rem;font-weight:500}
.ic{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.dev{flex:none;width:.875rem;height:.875rem;fill:none;stroke:currentColor;stroke-width:1.4}
.spark{flex:none;width:.75rem;height:.75rem;fill:currentColor}
.star{flex:none;width:.875rem;height:.875rem;fill:var(--star)}
.dot{color:var(--muted)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-btn)}
::selection{background:var(--accent);color:#fff}
.tint--productivity{--hue:#295397;--tint:#e3eefe;--hue-inv:#8abbfe}
.tint--utilities{--hue:#52525b;--tint:#f1f5f9;--hue-inv:#d4d4d8}
.tint--finance{--hue:#92400e;--tint:#fef3c7;--hue-inv:#fcd34d}
.tint--health{--hue:#be123c;--tint:#ffe4e6;--hue-inv:#fda4af}
.tint--lifestyle{--hue:#68631c;--tint:#f7f5db;--hue-inv:#ccd483}
.tint--food{--hue:#9d1b12;--tint:#ffe9e5;--hue-inv:#efa892}
.tint--travel{--hue:#13777e;--tint:#d9fbfe;--hue-inv:#5ee5f2}
.tint--transportation{--hue:#805a38;--tint:#feedde;--hue-inv:#e6bb96}
.tint--education{--hue:#c2410c;--tint:#ffedd5;--hue-inv:#fdba74}
.tint--games{--hue:#6d28d9;--tint:#f3e8ff;--hue-inv:#c4b5fd}
.tint--entertainment{--hue:#83109b;--tint:#fbeefe;--hue-inv:#de9df7}
.tint--sports{--hue:#396316;--tint:#eaf9e2;--hue-inv:#9cc58d}
.tint--shopping{--hue:#a2457e;--tint:#ffe9f4;--hue-inv:#fab0d9}
.tint--news{--hue:#3c3695;--tint:#edeffe;--hue-inv:#9499fa}
.tint--business{--hue:#0071a0;--tint:#e2f3fe;--hue-inv:#82cefc}
.tint--developer{--hue:#057c59;--tint:#dcf8ea;--hue-inv:#60e7b4}
:root[data-theme=dark]{--hue:#d4d4d8;--tint:rgba(212,212,216,.16);--hue-inv:#52525b;--bg:#0a0a0b;--surface:#111113;--surface-hi:#161619;--subtle:#85858e;--line2:#3f3f46;--control:#6b6b74;--accent-hi:#a5b4fc;--accent-soft:#16152a;--accent-line:#3b3a7a;--on-accent:#0a0a0b;--star:#fbbf24;--track:#18181b;--shadow:none;--pop:0 16px 40px -8px rgba(0,0,0,.7);--pop-bg:#18181b;--pop-line:#3f3f46;--wait-bg:rgba(252,211,77,.14);--wait-fg:#fcd34d;--danger:#f87171}
:root[data-theme=dark] .brand img,:root[data-theme=dark] .foot img{filter:invert(1)}
:root[data-theme=dark] .btn--danger{color:#0a0a0b}
:root[data-theme=dark] .tint--productivity{--hue:#8abbfe;--tint:rgba(138,187,254,.16);--hue-inv:#295397}
:root[data-theme=dark] .tint--utilities{--hue:#d4d4d8;--tint:rgba(212,212,216,.16);--hue-inv:#52525b}
:root[data-theme=dark] .tint--finance{--hue:#fcd34d;--tint:rgba(252,211,77,.16);--hue-inv:#92400e}
:root[data-theme=dark] .tint--health{--hue:#fda4af;--tint:rgba(253,164,175,.16);--hue-inv:#be123c}
:root[data-theme=dark] .tint--lifestyle{--hue:#ccd483;--tint:rgba(204,212,131,.16);--hue-inv:#68631c}
:root[data-theme=dark] .tint--food{--hue:#efa892;--tint:rgba(239,168,146,.16);--hue-inv:#9d1b12}
:root[data-theme=dark] .tint--travel{--hue:#5ee5f2;--tint:rgba(94,229,242,.16);--hue-inv:#13777e}
:root[data-theme=dark] .tint--transportation{--hue:#e6bb96;--tint:rgba(230,187,150,.16);--hue-inv:#805a38}
:root[data-theme=dark] .tint--education{--hue:#fdba74;--tint:rgba(253,186,116,.16);--hue-inv:#c2410c}
:root[data-theme=dark] .tint--games{--hue:#c4b5fd;--tint:rgba(196,181,253,.16);--hue-inv:#6d28d9}
:root[data-theme=dark] .tint--entertainment{--hue:#de9df7;--tint:rgba(222,157,247,.16);--hue-inv:#83109b}
:root[data-theme=dark] .tint--sports{--hue:#9cc58d;--tint:rgba(156,197,141,.16);--hue-inv:#396316}
:root[data-theme=dark] .tint--shopping{--hue:#fab0d9;--tint:rgba(250,176,217,.16);--hue-inv:#a2457e}
:root[data-theme=dark] .tint--news{--hue:#9499fa;--tint:rgba(148,153,250,.16);--hue-inv:#3c3695}
:root[data-theme=dark] .tint--business{--hue:#82cefc;--tint:rgba(130,206,252,.16);--hue-inv:#0071a0}
:root[data-theme=dark] .tint--developer{--hue:#60e7b4;--tint:rgba(96,231,180,.16);--hue-inv:#057c59}
:root[data-theme=dark] .themesun{display:none}
:root[data-theme=dark] .thememoon{display:inline}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--hue:#d4d4d8;--tint:rgba(212,212,216,.16);--hue-inv:#52525b;--bg:#0a0a0b;--surface:#111113;--surface-hi:#161619;--subtle:#85858e;--line2:#3f3f46;--control:#6b6b74;--accent-hi:#a5b4fc;--accent-soft:#16152a;--accent-line:#3b3a7a;--on-accent:#0a0a0b;--star:#fbbf24;--track:#18181b;--shadow:none;--pop:0 16px 40px -8px rgba(0,0,0,.7);--pop-bg:#18181b;--pop-line:#3f3f46;--wait-bg:rgba(252,211,77,.14);--wait-fg:#fcd34d;--danger:#f87171}
:root:not([data-theme=light]) .brand img,:root:not([data-theme=light]) .foot img{filter:invert(1)}
:root:not([data-theme=light]) .btn--danger{color:#0a0a0b}
:root:not([data-theme=light]) .tint--productivity{--hue:#8abbfe;--tint:rgba(138,187,254,.16);--hue-inv:#295397}
:root:not([data-theme=light]) .tint--utilities{--hue:#d4d4d8;--tint:rgba(212,212,216,.16);--hue-inv:#52525b}
:root:not([data-theme=light]) .tint--finance{--hue:#fcd34d;--tint:rgba(252,211,77,.16);--hue-inv:#92400e}
:root:not([data-theme=light]) .tint--health{--hue:#fda4af;--tint:rgba(253,164,175,.16);--hue-inv:#be123c}
:root:not([data-theme=light]) .tint--lifestyle{--hue:#ccd483;--tint:rgba(204,212,131,.16);--hue-inv:#68631c}
:root:not([data-theme=light]) .tint--food{--hue:#efa892;--tint:rgba(239,168,146,.16);--hue-inv:#9d1b12}
:root:not([data-theme=light]) .tint--travel{--hue:#5ee5f2;--tint:rgba(94,229,242,.16);--hue-inv:#13777e}
:root:not([data-theme=light]) .tint--transportation{--hue:#e6bb96;--tint:rgba(230,187,150,.16);--hue-inv:#805a38}
:root:not([data-theme=light]) .tint--education{--hue:#fdba74;--tint:rgba(253,186,116,.16);--hue-inv:#c2410c}
:root:not([data-theme=light]) .tint--games{--hue:#c4b5fd;--tint:rgba(196,181,253,.16);--hue-inv:#6d28d9}
:root:not([data-theme=light]) .tint--entertainment{--hue:#de9df7;--tint:rgba(222,157,247,.16);--hue-inv:#83109b}
:root:not([data-theme=light]) .tint--sports{--hue:#9cc58d;--tint:rgba(156,197,141,.16);--hue-inv:#396316}
:root:not([data-theme=light]) .tint--shopping{--hue:#fab0d9;--tint:rgba(250,176,217,.16);--hue-inv:#a2457e}
:root:not([data-theme=light]) .tint--news{--hue:#9499fa;--tint:rgba(148,153,250,.16);--hue-inv:#3c3695}
:root:not([data-theme=light]) .tint--business{--hue:#82cefc;--tint:rgba(130,206,252,.16);--hue-inv:#0071a0}
:root:not([data-theme=light]) .tint--developer{--hue:#60e7b4;--tint:rgba(96,231,180,.16);--hue-inv:#057c59}
:root:not([data-theme=light]) .themesun{display:none}
:root:not([data-theme=light]) .thememoon{display:inline}}
.top{position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line);background:var(--bg)}
@supports(background:color-mix(in oklab,red,blue)){.top{background:color-mix(in oklab,var(--bg) 80%,transparent);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px)}}
.top__in,.page,.hero__in,.foot__in{width:100%;max-width:72rem;margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}
@media(min-width:768px){.top__in,.page,.hero__in,.foot__in{padding-left:2rem;padding-right:2rem}}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:56px}
.brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.1875rem;letter-spacing:-.01em}
.brand img,.foot img{display:block}
.top__end{display:flex;align-items:center;gap:1.25rem;min-width:0}
.top nav{display:flex;gap:1.5rem}
.top nav a,.me a{font-size:.9375rem;font-weight:500;color:var(--muted);white-space:nowrap;transition:color .12s ease}
.top nav a:hover,.top nav a[aria-current],.me a:hover,.me a[aria-current]{color:var(--fg)}
.me{display:flex;align-items:center;gap:1rem;padding-left:1.25rem;border-left:1px solid var(--line)}
.me .acct{color:var(--fg);font-weight:600}
.themebtn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:var(--r-btn);background:transparent;color:var(--fg);cursor:pointer;transition:border-color .12s ease}
.themebtn:hover{border-color:var(--control)}
.themebtn .ic{width:18px;height:18px}
.themebtn .thememoon{display:none}
.rev{display:inline-flex;align-items:center;gap:.375rem}
.rev__n{min-width:1.25rem;padding:0 .375rem;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:.75rem;font-weight:700;line-height:1.25rem;text-align:center}
@media(max-width:479px){.top__in:has(.me) .brand span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.top__end,.top nav{gap:1rem}.me{gap:.75rem;padding-left:1rem}}
@media(max-width:599px){.top nav a[href="/stemstudio/"]{display:none}}
@media(max-width:359px){.brand{font-size:1.0625rem}.top__in{gap:.5rem}.top__end,.top nav{gap:.5rem}.me{gap:.5rem;padding-left:.5rem}.top nav a,.me a{font-size:.8125rem}}
.foot{border-top:1px solid var(--line);padding:2rem 0;font-size:.875rem;color:var(--muted)}
.foot__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem}
.foot__brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--fg);font-weight:600}
.foot nav{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
.foot nav a:hover{color:var(--fg)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.125rem;border:1px solid transparent;border-radius:var(--r-btn);font:500 .9375rem/1 var(--sans);white-space:nowrap;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}
.btn img{flex:none;border-radius:4.5px}
.btn--primary{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.btn--primary:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn--accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn--accent:hover{background:var(--accent-hi);border-color:var(--accent-hi)}
.btn--quiet{background:var(--surface);border-color:var(--control);color:var(--fg)}
.btn--quiet:hover{border-color:var(--fg)}
.btn--sm{padding:.5rem .75rem;font-size:.875rem}
.btn--danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn--danger:hover{opacity:.9}
.chips{display:flex;gap:.375rem;overflow-x:auto;margin:0 -1.25rem;padding:.125rem 1.25rem;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
@media(min-width:768px){.chips{flex-wrap:wrap;overflow:visible;margin:0;padding:0}}
.chip{flex:none;display:inline-flex;align-items:center;gap:.375rem;height:36px;padding:0 .75rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);box-shadow:var(--shadow);font-size:.875rem;font-weight:500;color:var(--fg);white-space:nowrap;transition:border-color .12s ease,background .12s ease}
.chip:hover{border-color:var(--control)}
.chip[aria-current=true],.chip[aria-current=page]{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.pill{display:inline-flex;align-items:center;min-height:24px;padding:0 .625rem;border-radius:999px;background:var(--track);font-size:.8125rem;font-weight:500;color:var(--muted);overflow-wrap:anywhere}
.hero{position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(720px 340px at 18% -18%,color-mix(in oklab,var(--accent) 14%,transparent) 0%,transparent 62%),radial-gradient(520px 260px at 62% 10%,color-mix(in oklab,var(--accent) 6%,transparent) 0%,transparent 60%)}
.hero__in{position:relative;padding-top:3.5rem;padding-bottom:2.5rem}
.eyebrow{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hero__title{max-width:19ch;margin:.75rem 0 0;font-size:2.5rem;font-weight:800;line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
.hero__lead{max-width:40rem;margin:1rem 0 1.5rem;font-size:1.125rem;line-height:1.55;color:var(--muted)}
.hero__lead a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--accent) 40%,transparent);text-underline-offset:3px;transition:text-decoration-color .12s ease}
.hero__lead a:hover{text-decoration-color:var(--accent)}
@media(max-width:767px){.hero__in{padding-top:2.5rem;padding-bottom:2rem}.hero__title{font-size:1.875rem}.hero__lead{font-size:1rem;margin:.75rem 0 1.25rem}}
.browse{padding:0 0 3.5rem}
.tools{display:flex;align-items:flex-start;gap:1rem;container:tools/inline-size}
.tools .chips{flex:1;flex-wrap:wrap;overflow:visible;margin:0;padding:0;min-width:0}
.tools .chip{padding:0 .625rem}
.cdot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--hue)}
.chip[aria-current=true] .cdot{background:var(--hue-inv)}
@media(min-width:1024px){.tools .chips{flex-wrap:nowrap}}
.more{position:relative;flex:none;order:2}
.tools .chip--more{gap:.25rem;padding-right:.5rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}
.chip--more::-webkit-details-marker{display:none}
.chip--more .ic{width:16px;height:16px;color:var(--muted);transition:transform .12s ease}
.more[open]>.chip--more{border-color:var(--control)}
.more[open]>.chip--more .ic{transform:rotate(180deg)}
.more__list{position:absolute;top:calc(100% + .5rem);left:0;z-index:10;min-width:14rem;margin:0;padding:.25rem;list-style:none;border:1px solid var(--pop-line);border-radius:var(--r-field);background:var(--pop-bg);box-shadow:var(--pop)}
.more__o{display:flex;align-items:center;gap:.5rem;height:36px;padding:0 .625rem;border-radius:var(--r-btn);font-size:.875rem;font-weight:500;color:var(--fg);white-space:nowrap}
.more__o:hover{background:color-mix(in srgb,var(--fg) 7%,transparent)}
.more__n{margin-left:auto;padding-left:1rem;font:500 .75rem/1 var(--mono);color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:1023px){.more{display:none}}
.sbox{position:relative;flex:0 0 280px}
.sbox>.ic{position:absolute;left:.75rem;top:50%;width:1rem;height:1rem;margin-top:-.5rem;color:var(--muted);pointer-events:none}
.search{display:block;width:100%;height:36px;padding:0 .75rem 0 2.25rem;border:1px solid var(--control);border-radius:var(--r-field);background:var(--surface);color:var(--fg);font:400 .875rem/1 var(--sans);-webkit-appearance:none;appearance:none}
.search::placeholder{color:var(--muted);opacity:1}
.search:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.search::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.sbox:has(.sclear) .search{padding-right:2.25rem}
.sclear{position:absolute;right:.375rem;top:50%;display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin-top:-12px;border-radius:50%;background:var(--track);color:var(--muted);transition:color .12s ease}
.sclear .ic{width:14px;height:14px;stroke-width:2}
.sclear:hover{color:var(--fg)}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem}
.toks{display:flex;flex-wrap:wrap;gap:.5rem;min-width:0}
.tok{display:inline-flex;align-items:center;gap:.5rem;max-width:100%;height:32px;padding:0 .375rem 0 .75rem;border-radius:999px;background:var(--fg);color:var(--bg);font-size:.875rem;font-weight:500}
.tok>span[dir]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tok__x{flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--bg) 24%,transparent);font-size:.875rem;line-height:1}
.tok--bare{padding:0 .375rem}
.count{margin:0;font-family:var(--mono);font-size:.75rem;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.seg,.sort{flex:none;display:inline-flex;gap:2px;padding:4px;border-radius:var(--r-field);background:var(--track)}
.seg{margin-left:auto}
.seg__o,.sort__o{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;height:28px;padding:0 .75rem;border-radius:var(--r-btn);font-size:.875rem;font-weight:500;color:var(--muted);white-space:nowrap;transition:color .12s ease,background .12s ease}
.seg__o:hover,.sort__o:hover{color:var(--fg)}
.seg__o[aria-current=true],.sort__o[aria-current=true]{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:inset 0 0 0 1px var(--control),var(--shadow)}
@media(max-width:1023px){
.tools{flex-direction:column;align-items:stretch;gap:.75rem}
.sbox{order:-1;flex:none;width:100%}
.search{height:40px}
.tools .chips{flex:none;width:auto;flex-wrap:nowrap;overflow-x:auto;margin:0 -2rem;padding:0 2rem 2px;scrollbar-width:none;scroll-padding:0 2rem}
.bar{margin-top:.75rem}
}
@media(max-width:767px){
.tools .chips{margin:0 -1.25rem;padding:0 1.25rem 2px;scroll-padding:0 1.25rem}
.toks{flex-basis:100%}
.count{order:3;flex-basis:100%;margin-top:.25rem}
.seg{margin-left:0}
.sort{margin-left:auto}
}
@media(max-width:479px){.bar{column-gap:.5rem}.seg__o,.sort__o{padding:0 .5rem;font-size:.8125rem}.seg__o{min-width:32px}.seg__o:not(:first-child) .seg__t{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.seg__o .dev{width:1rem;height:1rem}}
.grid{list-style:none;margin:1.25rem 0 0;padding:0;display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:640px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tile{position:relative;display:flex;flex-direction:column;gap:.75rem;min-width:0;padding:1.25rem;border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow);transition:border-color .12s ease,background .12s ease}
.tile:hover{border-color:var(--accent);background:var(--surface-hi)}
.tile:has(.tlink:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.tlink:focus-visible{outline:none}
.tlink::after{content:"";position:absolute;inset:0;border-radius:inherit}
.thead{display:flex;align-items:flex-start;gap:1rem}
.tico{flex:none;display:flex;align-items:center;justify-content:center;width:52px;height:52px;overflow:hidden;border-radius:var(--r-tile);background:var(--tint);font-size:1.75rem;line-height:1}
.tid{flex:1;min-width:0;min-height:52px;display:flex;flex-direction:column;justify-content:center;gap:.25rem}
.tname{margin:0;font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;line-height:1.3;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.tby{position:relative;z-index:1;display:block;max-width:100%;width:fit-content;font-size:.8125rem;font-weight:500;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.tby:hover{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.trate{flex:none;display:inline-flex;align-items:center;gap:.25rem;padding-top:.125rem;font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums}
.tline{margin:0;font-size:.875rem;line-height:1.5;color:var(--muted);overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.tbot{display:flex;flex-direction:column;gap:.75rem;margin-top:auto;padding-top:.25rem;min-width:0}
.ttech{display:flex;align-items:center;gap:.375rem;min-width:0;margin:0;overflow:hidden;font:500 .75rem/1.4 var(--mono);color:var(--subtle);white-space:nowrap}
.tt{flex:none}
.tt--model{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ttech .dot{flex:none}
.tfoot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0}
.tcat{display:inline-flex;align-items:center;height:24px;padding:0 .625rem;border-radius:999px;background:var(--tint);color:var(--hue);font-size:.8125rem;font-weight:500;white-space:nowrap}
a.tcat:hover{box-shadow:inset 0 0 0 1px var(--hue)}
.tdev{display:inline-flex;align-items:center;gap:.375rem;margin-left:auto;font-family:var(--mono);font-size:.75rem;font-weight:500;color:var(--muted);white-space:nowrap}
.tile--cta{display:none;flex-direction:row;align-items:center;gap:1.25rem;border-color:var(--accent-line);background:var(--accent-soft);box-shadow:none}
.tile--cta:hover{border-color:var(--accent);background:var(--accent-soft)}
.tico--app{width:52px;height:52px;object-fit:cover}
.cta__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}
.tile--cta .tline{-webkit-line-clamp:3}
@media(min-width:640px) and (max-width:1023px){.tile--cta[data-r2="1"]{display:flex;flex-direction:column;align-items:flex-start}.tile--cta[data-r2="1"] .btn{margin-top:auto}}
@media(min-width:1024px){.tile--cta[data-r3="1"]{display:flex;flex-direction:column;align-items:flex-start}.tile--cta[data-r3="1"] .btn{margin-top:auto}.tile--cta[data-r3="2"]{display:flex;grid-column:span 2}}
.pages{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:2.5rem}
.pages__o{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 .5rem;border:1px solid var(--line);border-radius:var(--r-btn);background:var(--surface);box-shadow:var(--shadow);font-size:.875rem;font-weight:500;color:var(--fg);font-variant-numeric:tabular-nums;transition:border-color .12s ease}
a.pages__o:hover{border-color:var(--control)}
.pages__o[aria-current=page]{background:var(--fg);border-color:var(--fg);color:var(--bg);font-weight:600}
.pages__prev,.pages__next{font-size:1.25rem;line-height:1}
.pages__off{color:var(--muted);opacity:.5;box-shadow:none}
.pages__gap{min-width:1.25rem;text-align:center;color:var(--muted)}
.pages__at{display:none;font-family:var(--mono);font-size:.75rem;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:479px){.pages{gap:1.5rem}.pages__prev,.pages__next{min-width:44px;height:44px}.pages__n,.pages__gap{display:none}.pages__at{display:inline}}
.nomatch,.empty{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:1.25rem 0 0;padding:3.5rem 1.5rem;border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow);text-align:center}
.nomatch__t,.empty__t{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.01em}
.empty{margin:0 0 3.5rem}
.empty__s{margin:-.5rem 0 0;color:var(--muted)}
.item{padding-top:2rem;padding-bottom:3.5rem}
.back{display:inline-flex;align-items:center;gap:.375rem;margin-bottom:1.5rem;font-size:.875rem;font-weight:500;color:var(--muted);transition:color .12s ease}
.back:hover{color:var(--fg)}
.proj{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}
.phead,.pbody{min-width:0}
@media(min-width:768px){.proj{grid-template-columns:minmax(0,1fr) 18rem;grid-template-rows:auto 1fr;grid-template-areas:"head act" "body act";column-gap:2.5rem;row-gap:0;align-items:start}.phead{grid-area:head}.act{grid-area:act}.pbody{grid-area:body;padding-top:2.5rem}}
@media(min-width:1024px){.proj{grid-template-columns:minmax(0,1fr) 20rem;column-gap:3.5rem}}
.ident{display:flex;align-items:flex-start;gap:1.25rem}
.bigico{flex:none;display:flex;align-items:center;justify-content:center;width:80px;height:80px;overflow:hidden;border-radius:var(--r-tile);background:var(--tint);font-size:2.75rem;line-height:1}
@media(max-width:639px){.bigico{width:64px;height:64px;font-size:2.125rem}.ident{gap:1rem}}
.ident__text{flex:1;min-width:0;min-height:80px;display:flex;flex-direction:column;justify-content:center}
.mtitle{margin:0;font-size:2.5rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;overflow-wrap:anywhere}
@media(max-width:767px){.mtitle{font-size:1.875rem}}
@media(max-width:639px){.ident__text{min-height:64px}}
.mby{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;margin:.5rem 0 0;font-size:.875rem;font-weight:500;color:var(--muted)}
.mauth{min-width:0;max-width:100%;color:var(--muted);overflow-wrap:anywhere}
a.mauth:hover{color:var(--fg);text-decoration:underline;text-underline-offset:3px}
.mtag{max-width:40rem;margin:1.25rem 0 0;font-size:1.125rem;line-height:1.55;color:var(--muted);overflow-wrap:anywhere}
.mrate{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-height:2rem;margin:.5rem 0 0}
.rstars{display:inline-flex;margin-left:-.25rem}
.rs{display:inline-flex;padding:.25rem;border-radius:var(--r-btn);color:var(--control)}
.rs.is-on{color:var(--star)}
.rsi{display:block;width:1.5rem;height:1.5rem;fill:currentColor}
.rtap .rs{cursor:pointer}
@media(hover:hover){.rtap:hover .rs{color:var(--star)}.rtap .rs:hover~.rs{color:var(--control)}}
.rtap:has(.rs:focus-visible) .rs{color:var(--star)}
.rtap .rs:focus-visible~.rs{color:var(--control)}
.rs:focus-visible{outline-offset:0}
@media(max-width:479px){.rsi{width:1.375rem;height:1.375rem}}
.rnum{font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums}
.rnum .dot{margin:0 .375rem;font-weight:400}
.rnum__n,.rnum--none{font-weight:500;color:var(--muted)}
.rown{max-width:36rem}
.rown:empty{display:none}
.cbox{margin:.75rem 0 .5rem}
.cfield{display:block;width:100%;min-height:5.5rem;padding:.75rem;border:1px solid var(--control);border-radius:var(--r-field);background:var(--surface);color:var(--fg);font:400 1rem/1.5 var(--sans);resize:vertical;-webkit-appearance:none;appearance:none}
.cfield::placeholder{color:var(--muted);opacity:1}
.cfield:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cfoot{display:flex;align-items:center;justify-content:flex-end;gap:.5rem .75rem;margin-top:.5rem}
.cnote{flex:1;min-width:0;margin:0;font-size:.875rem;color:var(--muted);overflow-wrap:anywhere}
.ccount{flex:none;font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums}
.csend{flex:none;height:36px;padding:0 1rem;border:1px solid var(--fg);border-radius:var(--r-btn);background:var(--fg);color:var(--bg);font:500 .875rem/1 var(--sans);cursor:pointer}
.csend:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.csend:disabled{background:var(--track);border-color:var(--track);color:var(--muted);cursor:default}
.rmine{margin:.75rem 0 0}
.rmine .rvtext{margin:0}
.rmeta{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin:.5rem 0 0;font-size:.875rem;font-weight:500;color:var(--muted);overflow-wrap:anywhere}
.rl{padding:0;border:0;background:none;font:inherit;color:var(--muted);text-decoration:underline;text-decoration-color:var(--control);text-underline-offset:3px;cursor:pointer}
.rl:hover{color:var(--fg);text-decoration-color:currentColor}
.mark{display:inline-flex;align-items:center;gap:.375rem;height:24px;padding:0 .625rem;border-radius:999px;font-size:.8125rem;font-weight:500;white-space:nowrap}
.mark::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.mark--wait{background:var(--wait-bg);color:var(--wait-fg)}
.mark--hidden{background:var(--track);color:var(--muted)}
.rask{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.75rem 0 0}
.rask>p{flex-basis:100%;margin:0;font-size:.875rem;font-weight:600;color:var(--fg)}
.act{display:flex;flex-direction:column;gap:1.25rem;min-width:0;padding:1.25rem;border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow)}
.act .openbtn{display:flex;gap:.5rem;width:100%;min-width:0;height:44px;padding:0 1rem;border-radius:var(--r-btn);font-size:.9375rem;font-weight:500;transition:background .12s ease,border-color .12s ease}
.openbtn--solid{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.openbtn--solid:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.openbtn img{flex:none;border-radius:4.5px}
.act .handoff{display:none;margin:0;padding:1rem;border-radius:var(--r-field);background:#fff;text-align:center;box-shadow:inset 0 0 0 1px var(--line)}
@media(min-width:768px) and (hover:hover){.act .handoff{display:block}}
.act .qr{width:148px;height:148px;margin:0 auto;box-shadow:none;border-radius:0}
.act .qrcap{margin:.5rem 0 0;font-size:.8125rem;font-weight:500;color:#4b4b52}
.act__links{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;margin:0 -.5rem}
.act__links .dl,.act__links .copy,.act__links .share{display:flex;align-items:center;gap:.75rem;height:36px;padding:0 .5rem;border:0;border-radius:var(--r-btn);background:none;font:500 .9375rem/1 var(--sans);color:var(--fg);text-decoration:none;cursor:pointer;transition:background .12s ease}
.act__links .ic{order:-1;flex:none;width:1.125rem;height:1.125rem;color:var(--muted)}
.act__links .dl:hover,.act__links .copy:hover,.act__links .share:hover{background:var(--track)}
.act .copyfield{width:100%;max-width:none;margin:0;padding:.5rem .75rem;border:1px solid var(--control);border-radius:var(--r-field);background:var(--surface);color:var(--fg);font:400 .875rem/1.4 var(--sans);text-align:left}
.act__end{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:-.5rem 0 0;font-size:.875rem;font-weight:500}
.report{color:var(--muted);text-decoration:underline;text-decoration-color:var(--control);text-underline-offset:3px;transition:color .12s ease}
.report:hover{color:var(--fg)}
.pbody>:first-child{margin-top:0}
.shots{container-type:inline-size;margin:0 -1.25rem;padding:0 1.25rem .5rem;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding:0 1.25rem}
@media(min-width:768px){.shots{margin-left:0;margin-right:0;padding-left:0;padding-right:0;scroll-padding:0}}
.shots:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--r-tile)}
.shots ul{display:flex;align-items:flex-start;gap:1rem;width:max-content;list-style:none;margin:0;padding:0}
.shots li{flex:none;scroll-snap-align:start}
.shots img{display:block;width:auto;height:min(26rem,68vh);max-width:100cqw;object-fit:contain;border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);cursor:zoom-in;transition:border-color .12s ease}
.shots--tablet img{height:min(24rem,60vh,75cqw)}
.shots--widget img{height:min(18rem,60vh,100cqw)}
.shots--banner img{height:min(9rem,25cqw)}
.shot{display:block;border-radius:var(--r-tile)}
.shot:hover img{border-color:var(--control)}
.shot:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-tile)}
html.lb-open{overflow:hidden}
.lb{position:fixed;inset:0;width:100%;height:100%;max-width:100vw;max-height:100vh;max-height:100dvh;margin:0;padding:0;border:0;background:transparent;color:#fff;overflow:hidden}
.lb::backdrop{background:rgba(10,10,11,.9)}
.lb__stage{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.lb__img{display:block;max-width:min(100vw - 2rem,1200px);max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);object-fit:contain;border-radius:var(--r-btn);box-shadow:0 24px 64px -16px rgba(0,0,0,.6)}
.lb__img:not([src]){display:none}
.lb__btn{position:absolute;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(24,24,27,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);color:#fff;cursor:pointer;transition:background .12s ease}
.lb__btn:hover{background:rgba(39,39,42,.92)}
.lb__btn:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:50%}
.lb__btn .ic{width:22px;height:22px;stroke-width:2}
.lb__close{top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right))}
.lb__prev{left:max(1rem,env(safe-area-inset-left));top:50%;transform:translateY(-50%)}
.lb__next{right:max(1rem,env(safe-area-inset-right));top:50%;transform:translateY(-50%)}
.lb__n{position:absolute;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));width:max-content;margin:0;padding:.375rem .625rem;border-radius:999px;background:rgba(24,24,27,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);font:500 .75rem/1 var(--mono);color:#fff;font-variant-numeric:tabular-nums;transform:translateX(-50%);pointer-events:none}
.lb__n:empty{display:none}
@media(prefers-reduced-motion:no-preference){@keyframes lb-in{from{opacity:0}}.lb[open],.lb[open]::backdrop{animation:lb-in .18s ease}}
.desc{margin-top:2.5rem;max-width:42rem}
.desc p{margin:0 0 1rem;font-size:1rem;line-height:1.65;white-space:pre-line;overflow-wrap:anywhere}
.desc p:last-child{margin-bottom:0}
.msec{margin:2.5rem 0 1rem;font-size:1.25rem;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.msec__n{margin-left:.5rem;font-family:var(--mono);font-size:.875rem;font-weight:500;color:var(--muted);letter-spacing:0}
.pbody>.revs:first-child>.msec,.pbody>.prompt:first-child>.msec{margin-top:0}
.prompt>.msec{margin-bottom:.5rem}
.prompt__lead{margin:0 0 1rem;font-size:.9375rem;line-height:1.5;color:var(--muted)}
.prompt__text{max-width:42rem;padding:1rem 1.25rem;border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow)}
.prompt__text p{margin:0 0 1rem;font-size:1rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.prompt__text p:last-child{margin-bottom:0}
@media(max-width:479px){.prompt__text{padding:.875rem 1rem}}
.rvs{list-style:none;margin:0;padding:0 1.25rem;border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow)}
.rv{padding:1.25rem 0;border-top:1px solid var(--line)}
.rv:first-child{border-top:0}
.rvhead{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin:0;font-size:.875rem;font-weight:500;color:var(--muted)}
.rvst{flex:none;display:inline-flex;gap:2px;margin-right:.25rem}
.rvhead .dot{margin:0 .125rem}
.rvsi{display:block;width:.875rem;height:.875rem;fill:var(--control)}
.rvsi.is-on{fill:var(--star)}
.rvname{min-width:0;font-weight:600;color:var(--fg);overflow-wrap:anywhere}
.rvrep{margin-left:auto;padding:0;border:0;background:none;font:inherit;color:var(--muted);text-decoration:underline;text-decoration-color:var(--control);text-underline-offset:3px;cursor:pointer}
.rvrep:hover{color:var(--fg)}
.rvtext{margin:.5rem 0 0;font-size:1rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.needs{list-style:none;margin:0;padding:0 1.25rem;border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow)}
.needs>li{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 0;border-top:1px solid var(--line);overflow-wrap:anywhere}
.needs>li:first-child{border-top:0}
.needs .ic{flex:none;width:1.25rem;height:1.25rem;color:var(--muted)}
.needs>li>div{min-width:0}
.needs--none{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;color:var(--fg)}
@media(max-width:479px){.rvs,.needs{padding:0 1rem}.rv{padding:1rem 0}.needs--none{padding:1rem}}
.hosts{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:.5rem 0 0;padding:0}
.hosts code{display:inline-flex;align-items:center;min-height:24px;padding:0 .625rem;border-radius:999px;background:var(--track);color:var(--muted);font:500 .75rem/1.4 var(--mono);overflow-wrap:anywhere}
.dcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0 0 1.25rem}
@media(min-width:640px){.dcards{grid-template-columns:repeat(4,minmax(0,1fr))}}
.dcard{min-width:0;padding:.75rem;border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow)}
.dcard dt{margin:0 0 .25rem;font-size:.8125rem;font-weight:500;color:var(--muted)}
.dcard dd{display:flex;align-items:center;gap:.375rem;margin:0;font-family:var(--mono);font-size:.75rem;font-weight:500;line-height:1.4;color:var(--fg);overflow-wrap:anywhere}
.dcard dd>span{min-width:0}
.mmeta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}
.kw{font-size:.875rem;font-weight:500;color:var(--muted);overflow-wrap:anywhere;text-underline-offset:3px}
.kw::before{content:"#";content:"#"/""}
.kw:hover{color:var(--fg);text-decoration:underline}
.updated{margin:1.25rem 0 0;font-size:.875rem;font-weight:500;color:var(--muted)}
.licence{margin:.5rem 0 0;font-size:.875rem;font-weight:500;color:var(--muted)}
.licence p{margin:0}
