.project-showcase{display:grid;gap:1.5rem}.project-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));margin-top:.5rem}.project-feature{background:var(--bg);border:1px solid var(--rule);border-radius:.5rem;display:grid;overflow:hidden;transition:border-color .2s,box-shadow .2s}.project-card:focus-within,.project-card:hover,.project-feature:focus-within,.project-feature:hover{border-color:var(--link);box-shadow:0 2px 16px #00000012}[data-theme=dark] .project-card:focus-within,[data-theme=dark] .project-card:hover,[data-theme=dark] .project-feature:focus-within,[data-theme=dark] .project-feature:hover{box-shadow:0 2px 16px #0000004d}.project-card-visual,.project-feature-visual{background:var(--bg);border-bottom:1px solid var(--rule);min-width:0}.project-feature-body{align-content:start;display:grid;gap:.85rem;padding:1.2rem}.project-feature-kicker{align-items:center;color:var(--eyebrow);display:flex;font-size:.72rem;font-weight:800;gap:.75rem;justify-content:space-between;letter-spacing:0;text-transform:uppercase}.project-feature-title{color:var(--heading);font-size:clamp(1.45rem,3vw,2rem);line-height:1.08;margin:0}.project-card-title a,.project-feature-title a{color:inherit;text-decoration:none}.project-card-title a:hover,.project-feature-title a:hover{color:var(--link)}.project-feature-desc{color:var(--lede);font-size:.95rem;line-height:1.6;margin:0}.project-card{background:var(--bg);border:1px solid var(--rule);border-radius:.5rem;color:inherit;display:grid;grid-template-rows:auto 1fr;overflow:hidden;transition:border-color .2s,box-shadow .2s}.project-card-image{display:block;height:auto;width:100%}.project-card-body{display:grid;gap:.6rem;padding:1.1rem}.project-card-header{align-items:flex-start;display:flex;gap:.75rem;justify-content:space-between}.project-card-title{color:var(--heading);font-size:1.15rem;font-weight:700;line-height:1.25;margin:0}.project-card-desc{color:var(--lede);font-size:.9rem;line-height:1.55;margin:0}.project-card-techs{display:flex;flex-wrap:wrap;gap:.3rem}.project-card-link{font-size:.82rem;font-weight:700;justify-self:start;margin-top:.1rem;text-decoration:none}.tech-tag{border:1px solid var(--tag-border);color:var(--link);padding:.08rem .4rem}.status-badge,.tech-tag{border-radius:999px;font-size:.72rem}.status-badge{display:inline-block;flex-shrink:0;font-weight:700;letter-spacing:.02em;padding:.1rem .5rem;text-transform:uppercase}.status-active{background:#58b9c226;color:var(--link)}.status-archived{background:#6d766f26;color:var(--muted)}.status-experimental{background:#d4945a26;color:var(--eyebrow)}.project-hero{aspect-ratio:3/1;background:var(--rule);border:1px solid var(--rule);border-radius:.75rem;margin-bottom:.5rem;-o-object-fit:cover;object-fit:cover;width:100%}.project-links{display:flex;gap:1.25rem;margin-top:.25rem}.project-links a{font-size:.92rem;font-weight:650}.metrics-section{margin:2rem 0}.metrics-header{align-items:baseline;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1rem}.metrics-header h2{font-size:1.3rem;margin:0}.metrics-tone{align-items:center;display:flex;font-size:.82rem;gap:.35rem}.tone-dot{border-radius:50%;display:inline-block;height:6px;width:6px}.tone-ok{color:var(--link)}.tone-ok .tone-dot{background:var(--link)}.tone-warn{color:var(--eyebrow)}.tone-warn .tone-dot{background:var(--eyebrow)}.tone-bad{color:#c44}.tone-bad .tone-dot{background:#c44}.kpi-grid{display:grid;gap:.75rem;grid-template-columns:repeat(4,1fr)}.kpi-tile{border:1px solid var(--rule);border-radius:.6rem;display:grid;gap:.35rem;padding:1rem}.kpi-tile.tone-ok{border-left:3px solid var(--link)}.kpi-tile.tone-warn{border-left:3px solid var(--eyebrow)}.kpi-tile.tone-bad{border-left:3px solid #c44}.kpi-h{align-items:center;display:flex;justify-content:space-between}.kpi-label{color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.kpi-window{color:var(--muted);font-size:.7rem}.kpi-value{align-items:baseline;display:flex;gap:.15rem}.kpi-num{color:var(--heading);font-size:2rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.kpi-unit{color:var(--muted);font-size:.9rem}.kpi-spark{width:100%}.kpi-spark,.kpi-spark-placeholder{height:22px}.services-section{margin:2rem 0}.services-section h2{font-size:1.3rem;margin:0 0 .75rem}.service-list{display:grid;gap:.4rem}.service-row{border:1px solid var(--rule);border-radius:.4rem;font-size:.9rem;justify-content:space-between;padding:.55rem .75rem}.service-name,.service-row{align-items:center;display:flex}.service-name{gap:.5rem}.svc-dot{border-radius:50%;height:7px;width:7px}.svc-up{border-left:3px solid var(--link)}.svc-up .svc-dot{background:var(--link)}.svc-slow{border-left:3px solid var(--eyebrow)}.svc-slow .svc-dot{background:var(--eyebrow)}.svc-down{border-left:3px solid #c44}.svc-down .svc-dot{background:#c44}.service-detail{color:var(--muted);font-size:.82rem}.specs-table{border-collapse:collapse;font-size:.92rem;margin:1rem 0;width:100%}.specs-table td,.specs-table th{border-bottom:1px solid var(--rule);padding:.55rem 0;text-align:left}.specs-table th{color:var(--muted);font-weight:650;width:30%}.prose img{border:1px solid var(--rule);border-radius:.5rem;margin:1.5rem 0;width:100%}@media(min-width:760px){.project-feature{grid-template-columns:minmax(0,1.55fr) minmax(17rem,.9fr)}.project-feature-visual{border-bottom:0;border-right:1px solid var(--rule)}}@media(max-width:640px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.project-card-header{flex-direction:column}}
