.projects-page.svelte-1vo3y64{min-height:100vh;padding-top:calc(var(--header-height) + 2rem);padding-bottom:4rem}.hero-section.svelte-1vo3y64{text-align:center;margin-bottom:4rem;max-width:800px;margin-left:auto;margin-right:auto}.hero-section.svelte-1vo3y64 h1:where(.svelte-1vo3y64){font-size:clamp(2.5rem,8vw,4rem);font-weight:600;margin-bottom:1.5rem;color:var(--text-color);font-family:var(--font-secondary)}.hero-section.svelte-1vo3y64 p:where(.svelte-1vo3y64){font-size:1.125rem;color:var(--text-light);line-height:1.7;max-width:600px;margin:0 auto}.projects-grid.svelte-1vo3y64{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;margin-bottom:4rem}@media (min-width: 1200px){.projects-grid.svelte-1vo3y64{grid-template-columns:repeat(3,1fr)}}@media (min-width: 768px) and (max-width: 1199px){.projects-grid.svelte-1vo3y64{grid-template-columns:repeat(2,1fr)}}@media (max-width: 767px){.projects-grid.svelte-1vo3y64{grid-template-columns:1fr;gap:1.5rem}}.card-wrapper.svelte-1vo3y64{transition:none}.card.svelte-1vo3y64{background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden;transition:var(--transition);box-shadow:var(--shadow-light);position:relative;width:100%;max-width:100%}.card.svelte-1vo3y64:hover{box-shadow:var(--shadow-medium);transform:translateY(-4px)}.card-image.svelte-1vo3y64{position:relative;height:292px;overflow:hidden}.card-image.svelte-1vo3y64 img:where(.svelte-1vo3y64){width:100%;height:100%;object-fit:cover;transition:var(--transition)}.card.svelte-1vo3y64:hover .card-image:where(.svelte-1vo3y64) img:where(.svelte-1vo3y64){transform:scale(1.05)}.card-overlay.svelte-1vo3y64{position:absolute;top:0;left:0;right:0;bottom:0;background:#00003ecc;display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--transition)}.card.svelte-1vo3y64:hover .card-overlay:where(.svelte-1vo3y64){opacity:1}@media (max-width: 768px){.card-overlay.svelte-1vo3y64{opacity:.95;background:#00003ee6}.card.svelte-1vo3y64:hover .card-overlay:where(.svelte-1vo3y64){opacity:1}}.card-content.svelte-1vo3y64{padding:1.5rem}.card-header.svelte-1vo3y64{margin-bottom:1rem}.card-header.svelte-1vo3y64 h3:where(.svelte-1vo3y64){font-size:1.25rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.card-description.svelte-1vo3y64{color:var(--text-light);line-height:1.6;margin-bottom:1.5rem;font-size:.95rem}.card-tags.svelte-1vo3y64{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.tag.svelte-1vo3y64{display:inline-flex;align-items:center;gap:.25rem;background:var(--background-light);color:var(--text-light);padding:.25rem .75rem;border-radius:calc(var(--border-radius) * 2);font-size:.75rem;font-weight:500;border:1px solid var(--border-light)}.card-footer.svelte-1vo3y64{display:flex;justify-content:flex-end}@media (max-width: 480px){.card-footer.svelte-1vo3y64{justify-content:stretch}.card-footer.svelte-1vo3y64 .button{width:100%;text-align:center}}.cta-section.svelte-1vo3y64{background:var(--background-light);border-radius:var(--border-radius);padding:3rem 2rem;text-align:center;border:1px solid var(--border-color);box-shadow:var(--shadow-light)}.cta-content.svelte-1vo3y64 h2:where(.svelte-1vo3y64){font-size:2rem;font-weight:600;margin-bottom:1rem;color:var(--text-color)}.cta-content.svelte-1vo3y64 p:where(.svelte-1vo3y64){font-size:1.125rem;color:var(--text-light);margin-bottom:2rem;max-width:600px;margin-left:auto;margin-right:auto}@media (max-width: 768px){.projects-page.svelte-1vo3y64{padding-top:calc(var(--header-height) + 1rem);padding-bottom:2rem}.hero-section.svelte-1vo3y64{margin-bottom:2.5rem;padding:0 .5rem}.hero-section.svelte-1vo3y64 h1:where(.svelte-1vo3y64){font-size:2.5rem}.hero-section.svelte-1vo3y64 p:where(.svelte-1vo3y64){font-size:1rem}.cta-section.svelte-1vo3y64{padding:2rem 1.5rem}.cta-content.svelte-1vo3y64 h2:where(.svelte-1vo3y64){font-size:1.5rem}.card-content.svelte-1vo3y64{padding:1.25rem}.card-tags.svelte-1vo3y64{gap:.375rem}.tag.svelte-1vo3y64{font-size:.7rem;padding:.2rem .6rem}.card-footer.svelte-1vo3y64{margin-top:1rem}}@media (max-width: 480px){.hero-section.svelte-1vo3y64 h1:where(.svelte-1vo3y64){font-size:2rem}.card-image.svelte-1vo3y64{height:200px}.projects-grid.svelte-1vo3y64{gap:1rem}.card-content.svelte-1vo3y64{padding:1rem}.cta-section.svelte-1vo3y64{padding:1.5rem 1rem}}
