.pb-stars{display:inline-flex;gap:2px}.pb-stars svg.is-on{color:var(--pb-orange)}.pb-stars svg.is-off{color:var(--pb-border2)}.pb-reviews-grid{-moz-columns:300px 3;columns:300px 3;-moz-column-gap:18px;column-gap:18px;margin-top:22px}.pb-reviews-grid>.pb-review{-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:18px}.pb-review{display:flex;flex-direction:column;gap:14px;padding:22px 24px;border-radius:20px;background:var(--pb-glass);border:1px solid var(--pb-border);box-shadow:var(--pb-shadow)}.pb-review-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.pb-review-badge{padding:4px 9px;border-radius:999px;border:1px solid var(--pb-border2);font-family:var(--font-jetbrains-mono),monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--pb-muted)}.pb-review-badge[data-source=link]{border-color:var(--pb-violet);color:var(--pb-violet2)}.pb-review-quote{margin:0}.pb-review-quote p{margin:0;font-size:15.5px;line-height:1.7;color:var(--pb-text);white-space:pre-line}.pb-review-lang{margin:-6px 0 0;font-size:12px;font-style:italic;color:var(--pb-dim)}.pb-review-who{display:flex;flex-direction:column;gap:6px;padding-top:14px;border-top:1px solid var(--pb-border)}.pb-review-who cite{font-style:normal;display:flex;flex-direction:column;gap:2px}.pb-review-who cite strong{font-size:14px;color:var(--pb-text)}.pb-review-who cite span{font-size:13px;color:var(--pb-muted)}.pb-review-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-family:var(--font-jetbrains-mono),monospace;font-size:10px;letter-spacing:.08em;color:var(--pb-dim)}.pb-review-project,.pb-review-source{font-size:12.5px;color:var(--pb-violet2);text-decoration:none}.pb-review-project:hover,.pb-review-source:hover{text-decoration:underline}.pb-review-reply{padding:12px 14px;border-radius:12px;background:var(--pb-glass2);border-left:3px solid var(--pb-orange)}.pb-review-reply span{font-family:var(--font-jetbrains-mono),monospace;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--pb-orange)}.pb-review-reply p{margin:6px 0 0;font-size:14px;line-height:1.6;color:var(--pb-muted)}.pb-rating{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px;align-items:center;padding:26px 30px;margin-top:8px}.pb-rating-value{font-family:var(--font-playfair-display),serif;font-size:56px;font-weight:700;line-height:1;color:var(--pb-text)}.pb-rating-value small{font-size:20px;color:var(--pb-dim)}.pb-rating-main p{margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--pb-muted)}.pb-rating-bars{list-style:none;display:grid;gap:8px;margin:0;padding:0}.pb-rating-bars li{display:grid;grid-template-columns:14px minmax(0,1fr) 24px;gap:10px;align-items:center;font-family:var(--font-jetbrains-mono),monospace;font-size:11px;color:var(--pb-muted)}.pb-rating-bar{height:8px;border-radius:999px;background:var(--pb-border);overflow:hidden}.pb-rating-bar i{display:block;height:100%;border-radius:inherit;background:var(--pb-orange)}@media (max-width:720px){.pb-rating{grid-template-columns:1fr;gap:20px}}.pb-policy{margin-top:56px}.pb-policy h2{margin:0 0 18px;font-family:var(--font-playfair-display),serif;font-size:26px;color:var(--pb-text)}.pb-policy-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px;margin:0;padding:0;list-style:none}.pb-policy-list li{padding:18px 20px;border-radius:16px;background:var(--pb-glass);border:1px solid var(--pb-border)}.pb-policy-list strong{display:block;margin-bottom:6px;font-size:14.5px;color:var(--pb-text)}.pb-policy-list p{margin:0;font-size:14px;line-height:1.6;color:var(--pb-muted)}.pb-reviews-empty{max-width:640px;margin:20px auto 0;padding:32px;text-align:center;border-radius:20px;background:var(--pb-glass);border:1px solid var(--pb-border)}.pb-reviews-empty h2{margin:0 0 10px;font-family:var(--font-playfair-display),serif;font-size:24px;color:var(--pb-text)}.pb-reviews-empty p{margin:0 0 22px;font-size:15px;line-height:1.65;color:var(--pb-muted)}.pb-reviews-empty div{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.pb-reviews-empty a{text-decoration:none}.pb-review-form{max-width:720px;margin-inline:auto;padding:30px 32px;display:grid;gap:20px}.pb-review-intro{margin:0;font-size:15.5px;line-height:1.65;color:var(--pb-muted)}.pb-review-for{margin:0;font-family:var(--font-jetbrains-mono),monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pb-orange)}.pb-review-field{display:grid;gap:8px;border:0;padding:0;margin:0;min-width:0}.pb-review-field>label,.pb-review-field>legend{font-size:13px;font-weight:600;color:var(--pb-text)}.pb-review-field input,.pb-review-field textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--pb-border2);background:var(--pb-glass2);color:var(--pb-text);font:inherit;font-size:15px}.pb-review-field textarea{resize:vertical;line-height:1.6}.pb-review-hint{margin:0;font-size:12.5px;color:var(--pb-dim);display:flex;justify-content:space-between;gap:12px}.pb-review-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}@media (max-width:720px){.pb-review-row{grid-template-columns:1fr}.pb-review-form{padding:22px 20px}}.pb-review-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--pb-muted)}.pb-review-check input{margin-top:3px;accent-color:var(--pb-violet)}.pb-review-check a{color:var(--pb-violet2)}.pb-review-error{margin:0;padding:10px 14px;border-radius:10px;background:rgba(220,38,38,.12);color:#f87171;font-size:14px}:root[data-theme=light] .pb-review-error{color:#b91c1c}.pb-review-form button[type=submit]{justify-self:start;cursor:pointer;font-family:inherit}.pb-review-form button[disabled]{opacity:.55;cursor:not-allowed}.pb-review-done{text-align:center;justify-items:center}.pb-review-done h2{margin:0;font-family:var(--font-playfair-display),serif;font-size:28px;color:var(--pb-text)}.pb-review-done p{margin:0;max-width:46ch;font-size:15.5px;line-height:1.65;color:var(--pb-muted)}.pb-review-done a{text-decoration:none}.pb-rate{display:flex;gap:4px}.pb-rate label{position:relative;cursor:pointer;color:var(--pb-border2);transition:color .15s ease,transform .15s ease}.pb-rate label.is-on{color:var(--pb-orange)}.pb-rate label:hover{transform:scale(1.1)}.pb-rate input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.pb-rate label:focus-within{outline:2px solid var(--pb-violet);outline-offset:3px;border-radius:6px}.pb-hp,.pb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pb-hp{left:-9999px}@media (prefers-reduced-motion:reduce){.pb-rate label{transition:none}.pb-rate label:hover{transform:none}}.pb-external{margin-top:56px}.pb-external h2{margin:0 0 8px;font-family:var(--font-playfair-display),serif;font-size:26px;color:var(--pb-text)}.pb-external-lede{margin:0 0 18px;max-width:62ch;font-size:15px;line-height:1.65;color:var(--pb-muted)}.pb-external-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}.pb-external-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;border-radius:16px;background:var(--pb-glass);border:1px solid var(--pb-border)}.pb-external-card strong{font-size:15px;color:var(--pb-text)}.pb-external-card p{margin:0 0 12px;flex:1;font-size:14px;line-height:1.6;color:var(--pb-muted)}.pb-external-card a{text-decoration:none}.pb-review-done .pb-external-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:4px 0 18px}.pb-review-done .pb-external-links a{text-decoration:none}.pb-review-done .pb-external-note{margin:18px 0 10px;font-size:14px;color:var(--pb-muted)}.pb-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}