.aff-card,.aff-related,.aff-floating{--aff-radius:1rem;font-style:normal}.aff-card{border:1px solid var(--border);border-radius:var(--aff-radius);background:var(--surface);margin-block:1.8em;padding:.9rem 1rem 1rem;line-height:1.5;display:block;box-shadow:0 1px 2px #0f172a0a}.blog-prose .aff-card{margin-block:1.8em}.aff-card__label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.75rem;font-weight:600;display:flex}.aff-card__disclosure{color:var(--text-muted);letter-spacing:0;text-transform:none;opacity:.85;font-size:.6875rem;font-weight:400}.aff-card__inner{align-items:stretch;gap:1rem;display:flex}.aff-card .aff-card__media{flex-shrink:0;width:8.5rem;text-decoration:none;display:block}.aff-card .aff-card__media img,.aff-related .aff-card__media img,.aff-card__placeholder{aspect-ratio:1;object-fit:cover;background:var(--surface-muted);border-radius:.75rem;justify-content:center;align-items:center;width:100%;height:auto;margin:0;font-size:2rem;display:flex}.aff-card__body,.aff-tile__body{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.aff-card__body>*,.aff-tile__body>*{margin:0}.aff-card__name{font-size:1.0625rem;font-weight:700;line-height:1.4}.aff-card .aff-card__name a,.aff-related .aff-card__name a{-webkit-line-clamp:2;color:var(--foreground);-webkit-box-orient:vertical;font-weight:700;text-decoration:none;display:-webkit-box;overflow:hidden}.aff-card .aff-card__name a:hover,.aff-related .aff-card__name a:hover{color:var(--brand)}.aff-card__rating{color:var(--text-soft);font-size:.8125rem}.aff-card__rating span{color:#f59e0b}.aff-card__price{flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;display:flex}.aff-card__price-now{color:#dc2626;font-size:1.125rem;font-weight:700}:root[data-theme=dark] .aff-card__price-now{color:#f87171}.aff-card__price-old{color:var(--text-muted);font-size:.8125rem}.aff-card__discount{color:#dc2626;background:#dc26261f;border-radius:.25rem;padding:0 .35rem;font-size:.75rem;font-weight:700}.aff-card__desc{-webkit-line-clamp:2;color:var(--text-soft);-webkit-box-orient:vertical;font-size:.875rem;line-height:1.55;display:-webkit-box;overflow:hidden}.aff-card__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.5rem;display:flex;margin-top:auto!important}.aff-card__platform{color:var(--text-muted);align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;display:inline-flex}.aff-card__platform:before{content:"";background:var(--aff-platform,var(--text-muted));border-radius:999px;width:.5rem;height:.5rem}.aff-card a.aff-card__cta,.aff-related a.aff-card__cta{background:var(--brand);color:#fff;text-align:center;white-space:nowrap;border-radius:999px;margin-left:auto;padding:.45rem 1rem;font-size:.875rem;font-weight:600;line-height:1.3;text-decoration:none}.aff-card a.aff-card__cta:hover,.aff-related a.aff-card__cta:hover{background:var(--brand-strong);color:#fff}:root[data-theme=dark] .aff-card a.aff-card__cta,:root[data-theme=dark] .aff-related a.aff-card__cta{color:#062a26}.aff-card--compact{padding:.75rem}.aff-card--compact .aff-card__label{margin-bottom:.5rem}.aff-card--compact .aff-card__media{width:4.5rem}.aff-card--compact .aff-card__name{font-size:.9375rem}.aff-card--compact .aff-card__price-now{font-size:1rem}.aff-related{border-top:1px solid var(--border);padding-top:1.5rem}.aff-related__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:1rem;display:flex}.aff-related__head h2{color:var(--foreground);margin:0;font-size:1.25rem;font-weight:700}.aff-related__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:1rem;display:grid}.aff-tile{border:1px solid var(--border);border-radius:var(--aff-radius);background:var(--surface);flex-direction:column;gap:.75rem;min-width:0;padding:.75rem;display:flex}.aff-tile .aff-card__media{text-decoration:none;display:block}.aff-tile .aff-card__name{font-size:.9375rem}.aff-tile .aff-card__price-now{font-size:1rem}.aff-tile a.aff-card__cta{width:100%;margin-left:0}.aff-floating{z-index:30;border:1px solid var(--border);border-radius:var(--aff-radius);background:var(--surface);opacity:0;pointer-events:none;width:14rem;padding:.75rem;transition:opacity .2s,transform .2s;display:none;position:fixed;bottom:1.5rem;right:1rem;transform:translateY(.75rem);box-shadow:0 10px 30px #0f172a1f}@media (min-width:1360px){.aff-floating{display:block}}.aff-floating--visible{opacity:1;pointer-events:auto;transform:none}.aff-floating .aff-card__label{margin-bottom:.5rem;padding-right:1.5rem}.aff-floating__close{width:1.75rem;height:1.75rem;color:var(--text-muted);border-radius:999px;font-size:1.25rem;line-height:1;position:absolute;top:.35rem;right:.45rem}.aff-floating__close:hover{background:var(--surface-muted);color:var(--foreground)}.aff-floating__link{color:var(--foreground);gap:.6rem;text-decoration:none;display:flex}.aff-floating__img{object-fit:cover;background:var(--surface-muted);border-radius:.6rem;flex-shrink:0;width:4rem;height:4rem;font-size:1.5rem}.aff-floating__text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.aff-floating__name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.875rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.aff-floating .aff-card__price-now{font-size:.9375rem}.aff-floating__cta{color:var(--brand);font-size:.8125rem;font-weight:600}.aff-floating__disclosure{margin:.5rem 0 0}@media (max-width:640px){.aff-card--card .aff-card__inner{flex-direction:column;gap:.75rem}.aff-card--card .aff-card__media{width:100%;max-width:12rem;margin-inline:auto}.aff-card--card a.aff-card__cta{width:100%;margin-left:0}.aff-card--compact .aff-card__media{width:4rem}.aff-card--compact .aff-card__footer{padding-top:.25rem}.aff-card--compact a.aff-card__cta{white-space:normal;padding:.35rem .8rem;font-size:.8125rem}.aff-related__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.aff-tile{padding:.6rem}.aff-tile a.aff-card__cta{white-space:normal;padding:.4rem .5rem;font-size:.8125rem}}@media (max-width:360px){.aff-related__grid{grid-template-columns:minmax(0,1fr)}}.aff-sidebar .aff-related{border:0;padding:0}.aff-sidebar .aff-related__grid{grid-template-columns:minmax(0,1fr);gap:0}.aff-sidebar .aff-tile{border:0;border-top:1px solid var(--border);background:0 0;border-radius:0;flex-direction:row;gap:.75rem;padding:.75rem 0}.aff-sidebar .aff-tile:first-child{border-top:0;padding-top:0}.aff-sidebar .aff-tile .aff-card__media{flex-shrink:0;width:4.5rem}.aff-sidebar .aff-card__placeholder{font-size:1.5rem}.aff-sidebar .aff-card__name{font-size:.875rem}.aff-sidebar .aff-card__price-now{font-size:.9375rem}.aff-sidebar .aff-card__price-old,.aff-sidebar .aff-card__rating{font-size:.75rem}.aff-sidebar .aff-card__footer{padding-top:.35rem}.aff-sidebar .aff-card__platform{display:none}.aff-sidebar .aff-tile a.aff-card__cta{white-space:normal;width:auto;margin-left:0;padding:.35rem .75rem;font-size:.8125rem}@media (min-width:1024px){.aff-dock{overscroll-behavior:contain;scrollbar-width:thin;border:1px solid var(--border);background:var(--surface);border-radius:1rem;max-height:calc(100vh - 6rem);padding:1rem;position:sticky;top:5rem;overflow-y:auto}.aff-dock__bar,.aff-dock__backdrop{display:none}.aff-sidebar .aff-related__head{margin-bottom:.75rem}.aff-sidebar .aff-related__head h2{font-size:1rem}}@media (max-width:1023.98px){.aff-dock{inset-inline:0;z-index:40;max-height:72vh;padding:.5rem 1rem calc(.75rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);border-radius:1rem 1rem 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;box-shadow:0 -8px 24px #0f172a1f}.aff-dock__backdrop{z-index:39;background:#0f172a66;position:fixed;inset:0}.aff-dock__bar{flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;min-height:2.25rem;margin-bottom:.5rem;display:flex}.aff-dock__title{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:600;overflow:hidden}.aff-dock__toggle{border:1px solid var(--border);color:var(--brand);border-radius:999px;flex-shrink:0;padding:.35rem .75rem;font-size:.8125rem;font-weight:600}.aff-dock .aff-sidebar{overscroll-behavior:contain;min-height:0;overflow-y:auto}.aff-dock .aff-related__head,.aff-dock:not([data-open]) .aff-tile:nth-child(n+2){display:none}.aff-dock .aff-tile .aff-card__media{width:3.75rem}.aff-dock .aff-card__name a{-webkit-line-clamp:1}.aff-dock .aff-tile .aff-tile__body{gap:.15rem}}
