.project-grid-viewport{position:relative;width:100%;height:100svh;overflow:hidden;cursor:-webkit-grab;cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;background:var(--color-bg)}.project-grid-viewport--sidebar{height:100%;background:#111}.project-grid-viewport--single-row{cursor:ew-resize}.project-grid-viewport--single-row.project-grid-viewport--dragging{cursor:-webkit-grabbing;cursor:grabbing}.project-grid-viewport--single-row .project-grid-auto-indicator{display:none}.project-grid-viewport--dragging{cursor:-webkit-grabbing;cursor:grabbing}.project-grid-viewport--dragging .project-card{pointer-events:none}.project-grid-auto-indicator{position:absolute;top:20px;left:20px;z-index:3;display:flex;align-items:center;justify-content:center;width:48px;height:48px;color:hsla(0,0%,100%,.85);font-size:32px;pointer-events:none;text-shadow:0 1px 8px rgba(0,0,0,.45)}.project-grid-canvas{position:absolute;top:0;left:0;will-change:transform;opacity:0;transition:opacity .8s ease}.project-grid-canvas--visible{opacity:1}.project-grid-overlay{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:1;transition:opacity .5s ease}.project-grid-overlay--hidden{opacity:0}.project-grid-overlay--hidden .project-grid-overlay__inner{pointer-events:none}.project-grid-overlay h1{margin:0;padding:0;font-family:var(--font-display);font-size:clamp(22px,4vw,42px);font-weight:700;letter-spacing:.02em;color:inherit;text-align:center}.project-grid-overlay__inner{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 32px 22px;color:var(--color-text);background:color-mix(in srgb,var(--color-bg) 45%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto}@media (prefers-color-scheme:light){.project-grid-overlay__inner{color:#3d2f24;background:color-mix(in srgb,#f4eadc 45%,transparent);transition:color .8s ease,background .8s ease}.project-grid-overlay__inner--over-grid{color:#ebe3d6;background:color-mix(in srgb,#261e14 45%,transparent)}}.project-grid-overlay__subtitle{font-weight:400}.project-grid-overlay__cursor{display:inline-block;width:.07em;height:.82em;margin-left:.06em;background:currentColor;vertical-align:-.06em;animation:overlay-cursor-blink .85s step-end infinite}@keyframes overlay-cursor-blink{0%,to{opacity:1}50%{opacity:0}}.project-grid-overlay__social{display:flex;align-items:center;gap:16px;font-size:22px;opacity:0;transition:opacity .45s ease}.project-grid-overlay__social--visible{opacity:1}.project-grid-overlay__social a{color:inherit;line-height:1;opacity:.85;transition:opacity .2s ease}.project-grid-overlay__social a:hover{opacity:1}.project-grid-overlay__name{text-transform:uppercase;letter-spacing:.05em}.project-card{display:block;border-radius:0;text-decoration:none;background:#352730;isolation:isolate;cursor:pointer;z-index:1}.project-card,.project-card__bg{position:absolute;overflow:hidden}.project-card__bg{inset:0}.project-card__bg-image{position:absolute;inset:-25%;width:150%;height:150%;object-fit:cover;will-change:transform;pointer-events:none;filter:sepia(100%);transition:filter .45s ease}.project-card:hover .project-card__bg-image{filter:sepia(0)}.project-card__ken-burns--1{animation:ken-burns-bg-1 16s ease-in-out infinite alternate}.project-card__ken-burns--2{animation:ken-burns-bg-2 18s ease-in-out infinite alternate}.project-card__ken-burns--3{animation:ken-burns-bg-3 14s ease-in-out infinite alternate}.project-card__ken-burns--4{animation:ken-burns-bg-4 20s ease-in-out infinite alternate}@keyframes ken-burns-bg-1{0%{transform:scale(1) translate(0)}to{transform:scale(1.38) translate(-8%,-6%)}}@keyframes ken-burns-bg-2{0%{transform:scale(1.25) translate(6%,4%)}to{transform:scale(1) translate(-8%,-7%)}}@keyframes ken-burns-bg-3{0%{transform:scale(1) translate(-6%,6%)}to{transform:scale(1.4) translate(8%,-5%)}}@keyframes ken-burns-bg-4{0%{transform:scale(1.2) translate(5%,-6%)}to{transform:scale(1) translate(-8%,7%)}}.project-card__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 45%,rgba(0,0,0,.68));pointer-events:none;transition:background .35s ease}.project-card:hover .project-card__scrim{background:linear-gradient(180deg,rgba(0,0,0,.25) 0,rgba(0,0,0,.35) 45%,rgba(0,0,0,.75))}.project-card--active .project-card__bg-image{filter:sepia(0)}.project-card--active .project-card__scrim{background:linear-gradient(180deg,rgba(0,0,0,.25) 0,rgba(0,0,0,.35) 45%,rgba(0,0,0,.75))}.project-card__title{position:absolute;bottom:0;left:0;right:0;z-index:1;margin:0;padding:14px 16px 16px;font-family:var(--font-prose);font-size:clamp(13px,1.4vw,15px);font-weight:400;font-style:italic;color:#fff;letter-spacing:.01em;text-align:center;text-shadow:0 1px 8px rgba(0,0,0,.5);border-top:1px solid hsla(0,0%,100%,.18);background:rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:opacity .4s ease}.project-card--active .project-card__title{opacity:1;transition-delay:0s}.project-card:hover .project-card__title{opacity:1;transition-delay:.35s}.project-card:not(:hover) .project-card__title{transition-delay:0s}@media (prefers-reduced-motion:reduce){.project-grid-canvas{transition:none}.project-grid-overlay__cursor{animation:none}.project-grid-overlay__social{transition:none;opacity:1}.project-card__bg-image{animation:none;inset:0;width:100%;height:100%}.project-card__title{transition:none}.project-card:hover .project-card__title{transition-delay:0s}}