.proj-grid{grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,36px);display:grid}.proj{isolation:isolate;border:var(--rule) solid var(--line-2);background:var(--surface);color:inherit;transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);border-radius:16px;flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000a}.proj:hover{border-color:color-mix(in oklab, var(--red) 45%, var(--line-2));transform:translateY(-6px);box-shadow:0 20px 44px #00000021}.proj:focus-visible{outline:var(--rule) solid var(--red);outline-offset:3px}.proj__media{border-bottom:var(--rule) solid var(--line-2);height:clamp(240px,30vw,340px);position:relative;overflow:hidden}.proj__media img{object-fit:cover}.proj__img{transition:transform .6s var(--ease)}.proj:hover .proj__img{transform:scale(1.06)}.proj__media:after{content:"";pointer-events:none;background:linear-gradient(#0006 0%,#0000 32% 100%);background:linear-gradient(lab(0% 0 0/.4) 0%,#0000 32% 100%);position:absolute;inset:0}.proj__media .ph{position:absolute;inset:0}.proj__chip{z-index:1;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red-ink);background:var(--red-fill);border-radius:999px;padding:7px 12px;font-size:11px;font-weight:700;position:absolute;top:14px;left:14px}.proj__meta{flex-direction:column;flex:1;padding:clamp(22px,2.2vw,30px);display:flex}.proj__loc{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin-bottom:10px;font-size:12px;font-weight:700}.proj__title{font-family:var(--font-display);text-transform:uppercase;transition:color .25s var(--ease);margin:0 0 12px;font-size:clamp(24px,2.4vw,32px);font-weight:900;line-height:1}.proj:hover .proj__title{color:var(--red)}.proj__desc{color:var(--ink-2);margin-bottom:22px;font-size:15.5px}.proj__link{margin-top:auto}.proj__link .arrow{transition:transform .25s var(--ease)}.proj:hover .proj__link .arrow{transform:translate(5px)}@media (max-width:760px){.proj-grid{grid-template-columns:1fr}}
.cs-carousel{margin-top:34px;position:relative}.cs-carousel__track{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;grid-auto-columns:calc(33.3333% - 16px);grid-auto-flow:column;gap:24px;margin:-6px -6px -18px;padding:6px 6px 18px;display:grid;overflow-x:auto}.cs-carousel__track>*{scroll-snap-align:start}.cs-carousel__track:focus-visible{outline:var(--rule) solid var(--red-fill);outline-offset:4px}.cs-carousel__nav{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.cs-carousel__btn{border:var(--rule) solid var(--line-2);width:44px;height:44px;color:var(--ink);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);background:0 0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.cs-carousel__btn:hover,.cs-carousel__btn:focus-visible{background:var(--ink);color:var(--bg);border-color:var(--ink)}@media (max-width:1024px){.cs-carousel__track{grid-auto-columns:calc(50% - 12px)}}@media (max-width:720px){.cs-carousel__track{grid-auto-columns:86%}.cs-carousel__track>*{align-self:start}}@media (prefers-reduced-motion:reduce){.cs-carousel__track{scroll-behavior:auto}.cs-carousel__btn{transition:none}}
