@layer theme,base;@layer components{.rgrid{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}@media (width>=720px){.rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.rgrid.r3{grid-template-columns:repeat(3,minmax(0,1fr))}}.rcard{gap:var(--sp-3);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:transform var(--dur) var(--ease), box-shadow var(--dur), border-color var(--dur);flex-direction:column;display:flex;position:relative}.rcard:hover{box-shadow:var(--shadow-2);border-color:var(--border-strong);transform:translateY(-2px)}.rcard:focus-within{border-color:var(--accent-line)}@media (prefers-reduced-motion:reduce){.rcard,.rcard:hover{transition:none;transform:none}}.rcard-top{gap:var(--sp-3);align-items:flex-start;display:flex}.rcard-top .grow{flex:1;min-width:0}.rcard-name{justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.rcard-name h3{font-size:var(--fs-lg)}.rcard-name a{color:var(--text);text-decoration:none}.rcard-name a:after{content:"";border-radius:inherit;position:absolute;inset:0}.rcard-name a:focus-visible{outline:none}.rcard:has(.rcard-name a:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.rcard-tag{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.rcard-chips{flex-wrap:nowrap;gap:8px;display:flex;overflow:hidden}.rcard-facts{gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin:auto 0 0;display:grid}.rcard-facts dt{font-size:var(--fs-xs);color:var(--text-faint)}.rcard-facts dd{font-weight:600;font-size:var(--fs-sm);margin:0}.micon{width:32px;height:32px;color:var(--accent);flex:none;place-items:center;display:grid}.chip .chip-ic{width:14px;height:14px;color:var(--accent)}.cat-toolbar{gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.cat-search{flex:260px;display:flex;position:relative}.cat-search svg{color:var(--text-faint);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.cat-search .input{width:100%;padding-left:40px}.cat-toolbar>.select{flex:0 200px;width:auto}.cat-filters .select{flex:140px;width:auto}.cat-size .select{width:auto}.cat-filters[data-open=false]{display:none}@media (width>=1024px){.cat-filters[data-open=false]{display:flex}.cat-toggle{display:none}}.cat-open{font-size:var(--fs-sm);color:var(--text-muted)}.cat-active{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.cat-remove{min-height:44px;padding:0 var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--text);font-size:var(--fs-sm);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.cat-pager{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-6);font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;display:flex}.cat-pages{align-items:center;gap:var(--sp-2);display:flex}.cat-pages a,.cat-pages span[aria-disabled]{border-radius:var(--r-md);border:1px solid var(--border);min-width:44px;min-height:44px;color:var(--text);place-items:center;text-decoration:none;display:inline-grid}.cat-pages a[aria-current=page]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.cat-pages span[aria-disabled]{color:var(--text-faint);opacity:.5}.cat-size{align-items:center;gap:var(--sp-2);display:flex}.sk{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--fill-1), var(--fill-2), var(--fill-1));background-size:200% 100%;animation:1.2s linear infinite sk;display:block}.sk-line{height:12px;margin-top:8px}@keyframes sk{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.sk{animation:none}}.pp-back{min-height:44px;color:var(--text-muted);font-size:var(--fs-sm);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.pp-head{gap:var(--sp-4);margin:var(--sp-4) 0 var(--sp-5);grid-template-columns:auto 1fr;align-items:center;display:grid}.pp-head .avatar.xl{--size:96px}@media (width>=768px){.pp-head .avatar.xl{--size:120px}}.pp-name{align-items:center;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;display:flex}.pp-verified{font-size:var(--fs-xs);color:var(--ok);align-items:center;gap:4px;font-weight:600;display:inline-flex}.pp-tag{color:var(--text-muted);margin-top:4px}.pp-meta{margin-top:var(--sp-3);align-items:center;gap:8px var(--sp-2);flex-wrap:wrap;display:flex}.pp-sla{font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:4px;display:inline-flex}.pp-stats{padding:var(--sp-4) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.pp-jump{top:var(--sp-2);z-index:15;align-items:center;gap:var(--sp-2);width:max-content;min-height:44px;margin:var(--sp-3) 0 0 auto;padding:0 var(--sp-4);border:1px solid var(--accent-line);border-radius:var(--r-pill);background:var(--surface-solid);color:var(--accent);font-size:var(--fs-sm);text-decoration:none;display:flex;position:sticky}.pp-layout{gap:var(--sp-8);margin-top:var(--sp-6);display:grid}.pp-main{min-width:0;padding-bottom:var(--sp-4)}.pp-aside{display:none}@media (width>=1024px){.pp-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start}.pp-aside{top:var(--sp-6);display:block;position:sticky}.pp-jump,.pp-cta{display:none}}.pp-sec{margin-top:var(--sp-10)}.pp-sec:first-child{margin-top:0}.pp-sec>h2{margin-bottom:var(--sp-4);font-size:var(--fs-xl)}.pp-h3{font-size:var(--fs-md);margin:var(--sp-5) 0 var(--sp-3)}.pp-intro{gap:var(--sp-3);white-space:pre-line;max-width:62ch;display:grid}.pp-facts{margin:var(--sp-5) 0 0;display:grid}.pp-facts>div{gap:var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm);grid-template-columns:140px 1fr;padding:12px 0;display:grid}.pp-facts dt{color:var(--text-muted)}.pp-facts dd{margin:0}.pp-special{margin-top:var(--sp-4);gap:var(--sp-2);display:grid}.pp-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.pp-topics{gap:var(--sp-1) var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.pp-topics li{align-items:center;gap:8px;min-height:32px;display:flex}.pp-topics .num{color:var(--text-faint);font-size:var(--fs-sm)}.pp-methods{gap:var(--sp-3) var(--sp-6);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.pp-methods li{align-items:center;gap:var(--sp-2);display:flex}.pkg-cards{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}@media (width>=720px){.pkg-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.pkg-card{gap:var(--sp-3);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);align-content:start;display:grid}.pkg-type{font-size:var(--fs-xs);color:var(--text-faint)}.pkg-card h3{font-size:var(--fs-lg)}.pkg-gets{color:var(--text-muted);font-size:var(--fs-sm)}.pkg-meta{font-size:var(--fs-sm);color:var(--text-muted);gap:4px;margin:0;padding:0;list-style:none;display:grid}.pkg-meta li{align-items:center;gap:8px;display:flex}.pkg-meta svg{color:var(--text-faint)}.pkg-card-foot{justify-content:space-between;align-items:center;gap:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);margin-top:auto;display:flex}.pkg-price{font-size:var(--fs-xl);font-weight:600;font-family:var(--font-head)}.pp-list{margin:0;padding:0;list-style:none;display:grid}.pp-list li{border-bottom:1px solid var(--border);font-size:var(--fs-sm);padding:12px 0}.pp-list li:last-child{border-bottom:0}.pp-sample{margin:0}.pp-sample blockquote{margin:0 0 var(--sp-2);padding:var(--sp-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);white-space:pre-line;max-width:62ch;line-height:1.8}.pp-policy{gap:var(--sp-4);margin:0;padding:0;list-style:none;display:grid}.pp-policy li{gap:var(--sp-3);grid-template-columns:24px 1fr;display:grid}.pp-policy svg{color:var(--accent);margin-top:2px}.pp-buy{gap:var(--sp-3);background:var(--surface-solid);display:grid}.buy-pick{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.buy-pick strong{font-family:var(--font-head);font-size:var(--fs-xl);color:var(--accent)}.pp-cta{bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom) + 8px);z-index:20;margin-top:var(--sp-8);padding:var(--sp-2);border-radius:var(--r-lg);background:var(--surface-solid);border:1px solid var(--border);position:sticky}.pp-note{gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-md);border:1px solid var(--warn-line);background:var(--warn-soft);font-size:var(--fs-sm);align-items:flex-start;display:flex}.pp-note svg{color:var(--warn);flex:none;margin-top:2px}.nf{place-items:center;min-height:60dvh;display:grid}.nf-box{max-width:520px}.nf-code{margin-bottom:var(--sp-2)}.nf-act{gap:var(--sp-3);flex-wrap:wrap;justify-content:center;display:flex}}@layer utilities;
