*{box-sizing:border-box;margin:0}body{color:#2e1a2b;background:linear-gradient(#d2ede1,#5daaae);font-family:system-ui,sans-serif;line-height:1.6}.container{max-width:960px;margin:0 auto;padding:4rem 1.5rem}.hero{--hero-bg:#126b70;background:var(--hero-bg);border-bottom:1px solid #fff}.hero .container{padding-top:4rem;padding-bottom:3rem}.hero h1{color:#fff;font-size:2.5rem}.hero .tagline{color:#ffffffbf;margin-top:.5rem}section h2{margin-bottom:1.5rem}.project-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.project-card{--accent:#126b70;border:1px solid #e5e5e5;border-top:3px solid var(--accent);background:#fff;border-radius:12px;transition:transform .15s,box-shadow .15s;overflow:hidden}.project-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000014}.project-card:hover .project-card-image{transform:scale(1.15)}.project-card-banner{aspect-ratio:16/9;overflow:hidden}.project-card-image{object-fit:cover;width:100%;height:100%;transition:transform 1.4s;display:block}.project-card-default-image{background:color-mix(in srgb, var(--accent) 12%, white);color:var(--accent);justify-content:center;align-items:center;font-size:3rem;font-weight:600;display:flex}.project-card-body{padding:1.5rem}.project-card h3{margin-bottom:.5rem}.project-card p{color:#444;font-size:.95rem}.tech-tags{flex-wrap:wrap;gap:.4rem;margin:1rem 0;padding:0;list-style:none;display:flex}.tech-tags li{background:color-mix(in srgb, var(--accent) 12%, white);color:var(--accent);border-radius:999px;padding:.2rem .6rem;font-size:.8rem}.project-card a{color:var(--accent);margin-right:1rem;font-weight:500;text-decoration:none}.project-card a:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.footer{color:#fff;border-top:1px solid #e5e5e5;margin-top:5rem;padding-top:2rem}.footer-links{gap:1.5rem;margin-top:.5rem;display:flex}.footer-links a{color:var(--accent);font-weight:500;text-decoration:none}.footer-links a:hover{text-decoration:underline}
