.projects-intro.svelte-1tes396{color:var(--color-neutral);margin:-1.5rem 0 2rem;font-size:.875rem;line-height:1.5}.projects-intro.svelte-1tes396 p:where(.svelte-1tes396){max-width:32rem}.projects-grid.svelte-1tes396{gap:1.25rem;display:none}.mobile-carousel.svelte-1tes396{margin-right:-1.25rem}.carousel-viewport.svelte-1tes396{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;transition:height .18s;overflow:auto hidden}.carousel-viewport.svelte-1tes396:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:1.25rem}.carousel-viewport.svelte-1tes396::-webkit-scrollbar{display:none}.carousel-track.svelte-1tes396{align-items:flex-start;gap:1rem;display:flex}.carousel-track.svelte-1tes396 .project-card{scroll-snap-align:start;flex:0 0 calc(100% - 2rem)}.carousel-controls.svelte-1tes396{font-family:var(--font-serif);justify-content:space-between;align-items:center;gap:1.5rem;margin:1.25rem 1.25rem 0 0;display:flex}.carousel-status.svelte-1tes396{flex:1;align-items:center;gap:.9rem;display:flex}.carousel-count.svelte-1tes396{color:var(--color-neutral);font-variant-numeric:tabular-nums;letter-spacing:.08em;white-space:nowrap;font-size:.8rem}.carousel-count.svelte-1tes396 strong:where(.svelte-1tes396){color:var(--color-accent);font-weight:600}.carousel-progress.svelte-1tes396{background:var(--color-edge);border-radius:999px;flex:1;max-width:7rem;height:2px;overflow:hidden}.carousel-progress.svelte-1tes396 span:where(.svelte-1tes396){border-radius:inherit;background:var(--color-accent);height:100%;transition:width .22s;display:block}.carousel-buttons.svelte-1tes396{gap:.5rem;display:flex}.carousel-controls.svelte-1tes396 button:where(.svelte-1tes396){border:1px solid var(--color-edge-strong);width:2.5rem;height:2.5rem;color:var(--color-white);cursor:pointer;border-radius:50%;place-items:center;font-size:1.1rem;transition:border-color .15s,color .15s;display:grid}.carousel-controls.svelte-1tes396 button:where(.svelte-1tes396):hover{border-color:var(--color-accent);color:var(--color-accent)}.carousel-controls.svelte-1tes396 button:where(.svelte-1tes396):focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.project-card.svelte-1tes396{border:1px solid var(--color-edge);background:var(--color-surface);border-radius:1.25rem;flex-direction:column;min-width:0;transition:border-color .18s,transform .18s;display:flex;overflow:hidden}.project-card.svelte-1tes396:hover{border-color:var(--color-edge-hover);transform:translateY(-3px)}.project-image.svelte-1tes396{aspect-ratio:16/10;background:var(--color-surface-raised);position:relative;overflow:hidden}.project-image.svelte-1tes396:after{content:"";pointer-events:none;border-bottom:1px solid #ffffff18;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff12}.project-image.svelte-1tes396 img:where(.svelte-1tes396){object-fit:cover;object-position:top center;width:100%;height:100%}.project-details.svelte-1tes396{flex-direction:column;flex:1;padding:1.5rem;display:flex}.project-heading.svelte-1tes396 h3:where(.svelte-1tes396){color:var(--color-white);font-family:var(--font-serif);letter-spacing:-.04em;font-size:clamp(1.6rem,4vw,2rem);font-weight:600;line-height:1.1}.project-summary.svelte-1tes396{color:var(--color-soft);margin-top:.9rem;font-size:.875rem;line-height:1.65}.project-tech.svelte-1tes396{flex-wrap:wrap;gap:.4rem;margin-top:1.4rem;padding:0;list-style:none;display:flex}.project-tech.svelte-1tes396 li:where(.svelte-1tes396){border:1px solid var(--color-edge-strong);color:var(--color-chip);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .65rem;font-size:.7rem;line-height:1.25;display:inline-flex}.project-tech.svelte-1tes396 a:where(.svelte-1tes396){align-items:center;gap:.4rem;display:inline-flex}.project-tech.svelte-1tes396 img,.project-tech.svelte-1tes396 i{object-fit:contain;flex:none;width:1rem;height:1rem;font-size:1rem;display:block}.project-tech.svelte-1tes396 a:where(.svelte-1tes396):focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.project-footer.svelte-1tes396{justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:1.75rem;display:flex}.project-links.svelte-1tes396{flex-wrap:wrap;flex:1;gap:.75rem 1.2rem;min-width:0;display:flex}.project-links.svelte-1tes396 a:where(.svelte-1tes396){color:var(--color-white);text-decoration:underline;-webkit-text-decoration-color:var(--color-underline);text-decoration-color:var(--color-underline);text-underline-offset:.3rem;font-size:.8rem;font-weight:600}.project-links.svelte-1tes396 a:where(.svelte-1tes396):hover{color:var(--color-accent)}.project-links.svelte-1tes396 a:where(.svelte-1tes396) span:where(.svelte-1tes396){margin-left:.1rem;text-decoration:none;display:inline-block}.project-team.svelte-1tes396{flex:none;align-items:center;padding-left:.3rem;display:flex}.project-team.svelte-1tes396 a:where(.svelte-1tes396),.project-team.svelte-1tes396 span:where(.svelte-1tes396){border:2px solid var(--color-surface);border-radius:50%;width:2rem;height:2rem;margin-left:-.3rem;display:block}.project-team.svelte-1tes396 img:where(.svelte-1tes396){object-fit:cover;border-radius:50%;width:100%;height:100%}.project-team.svelte-1tes396 a:where(.svelte-1tes396):hover{outline:2px solid var(--color-accent)}.project-links.svelte-1tes396 a:where(.svelte-1tes396):focus-visible,.project-team.svelte-1tes396 a:where(.svelte-1tes396):focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}@media (width>=640px){.mobile-carousel.svelte-1tes396{display:none}.projects-grid.svelte-1tes396{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-card.featured.svelte-1tes396{flex-direction:row-reverse;grid-column:1/-1;min-height:23rem}.featured.svelte-1tes396 .project-details:where(.svelte-1tes396){padding:2rem}.featured.svelte-1tes396 .project-heading:where(.svelte-1tes396) h3:where(.svelte-1tes396){font-size:clamp(2rem,4vw,2.5rem)}.featured.svelte-1tes396 .project-image:where(.svelte-1tes396),.featured.svelte-1tes396 .project-details:where(.svelte-1tes396){width:50%}.featured.svelte-1tes396 .project-image:where(.svelte-1tes396){aspect-ratio:auto}.featured.svelte-1tes396 .project-image:where(.svelte-1tes396) img:where(.svelte-1tes396){position:absolute;inset:0}}@media (prefers-reduced-motion:reduce){.carousel-viewport.svelte-1tes396,.carousel-progress.svelte-1tes396 span:where(.svelte-1tes396),.carousel-controls.svelte-1tes396 button:where(.svelte-1tes396),.project-card.svelte-1tes396{transition:none}.project-card.svelte-1tes396:hover{transform:none}}@media (width<=639px){.project-card.svelte-1tes396:hover{transform:none}}
