.apps32-preview{aspect-ratio:320 / 180;background:var(--paper-mid);border-bottom:1px solid var(--border);overflow:hidden}.apps32-preview svg{display:block;width:100%;height:100%}.apps32-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}@media (max-width: 980px){.apps32-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.apps32-grid{grid-template-columns:1fr}}.apps32-card{background:var(--paper);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.apps32-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 6px 22px -8px #16170f24}.apps32-stripe{height:3px;flex-shrink:0}.apps32-card--navigate .apps32-stripe{background:var(--cat-navigate)}.apps32-card--manage .apps32-stripe{background:var(--cat-manage)}.apps32-card--connect .apps32-stripe{background:var(--cat-connect)}.apps32-card--safety .apps32-stripe{background:var(--cat-safety)}.apps32-card--developer .apps32-stripe{background:var(--cat-developer)}.apps32-body{padding:18px 20px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.apps32-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.apps32-name{margin:0;font-size:16px;font-weight:500;letter-spacing:-.01em;color:var(--ink)}.apps32-tagline{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-secondary);flex:1}.apps32-status{font-family:Geist Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:999px;flex-shrink:0;white-space:nowrap}.apps32-status--v1{background:color-mix(in srgb,var(--cat-navigate) 12%,transparent);color:var(--cat-navigate)}.apps32-status--v15{background:color-mix(in srgb,var(--ink-secondary) 10%,transparent);color:var(--ink-secondary)}.apps32-status--coming{background:color-mix(in srgb,var(--border) 60%,transparent);color:var(--ink-secondary)}.apps32-cat{display:flex;align-items:center;gap:7px;margin:4px 0 0;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.apps32-card--navigate .apps32-cat{color:var(--cat-navigate)}.apps32-card--manage .apps32-cat{color:var(--cat-manage)}.apps32-card--connect .apps32-cat{color:var(--cat-connect)}.apps32-card--safety .apps32-cat{color:var(--cat-safety)}.apps32-card--developer .apps32-cat{color:var(--cat-developer)}.apps32-cat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.apps32-card--navigate .apps32-cat-dot{background:var(--cat-navigate)}.apps32-card--manage .apps32-cat-dot{background:var(--cat-manage)}.apps32-card--connect .apps32-cat-dot{background:var(--cat-connect)}.apps32-card--safety .apps32-cat-dot{background:var(--cat-safety)}.apps32-card--developer .apps32-cat-dot{background:var(--cat-developer)}.apps32-legend{list-style:none;padding:0;margin:0;display:flex;gap:20px;flex-wrap:wrap}.apps32-legend li{display:flex;align-items:center;gap:7px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-secondary)}.apps32-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.apps32-grid-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px;flex-wrap:wrap}.apps32-grid-head .kicker{margin-bottom:0}.apps32-contract-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 680px){.apps32-contract-grid{grid-template-columns:1fr}}.apps32-oss-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}@media (max-width: 760px){.apps32-oss-grid{grid-template-columns:1fr;gap:40px}}.apps32-agpl-stamp{width:220px;height:220px;display:flex;align-items:center;justify-content:center;border:2px solid var(--coral);border-radius:50%;flex-direction:column;gap:4px;font-weight:600;color:var(--coral);letter-spacing:.04em;margin:0 auto}.apps32-agpl-stamp .big{font-size:60px;letter-spacing:-.02em;font-weight:700}.apps32-agpl-stamp .small{font-size:11px;letter-spacing:.2em}.apps32-cta-strip{text-align:center;padding:108px 0}.apps32-cta-strip .headline{margin:0 auto}.apps32-cta-strip .lead{margin:20px auto 32px}.apps32-cta-strip .cta-row{justify-content:center}.apps32-cursor{animation:apps32CursorBlink 1.1s steps(2) infinite;fill:var(--coral);font-weight:700}@keyframes apps32CursorBlink{0%,50%{opacity:1}51%,to{opacity:0}}
