.portfolio__header[data-astro-cid-gq3l3q6k]{margin-bottom:2.5rem}.portfolio__heading[data-astro-cid-gq3l3q6k]{font-size:var(--text-display-2);max-width:18ch}.portfolio__filters[data-astro-cid-gq3l3q6k]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem;padding:0}.filter[data-astro-cid-gq3l3q6k]{appearance:none;border:1px solid color-mix(in srgb,var(--color-default),transparent 70%);background:transparent;color:var(--color-heading);font-family:var(--font-nav);font-size:.92rem;font-weight:500;padding:.5rem 1.1rem;border-radius:var(--radius-pill);cursor:pointer;transition:background var(--duration-affordance) var(--ease-snappy),color var(--duration-affordance) var(--ease-snappy),border-color var(--duration-affordance) var(--ease-snappy)}.filter[data-astro-cid-gq3l3q6k]:hover{border-color:var(--color-heading)}.filter[data-astro-cid-gq3l3q6k].is-active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.portfolio__grid[data-astro-cid-gq3l3q6k]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.portfolio__grid[data-astro-cid-gq3l3q6k]>.case[data-astro-cid-gq3l3q6k].is-hidden{display:none}.case[data-astro-cid-gq3l3q6k]{appearance:none;background:var(--color-surface);border:1px solid color-mix(in srgb,var(--color-default),transparent 88%);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);text-align:left;cursor:pointer;padding:0;color:inherit;width:100%;display:grid;gap:1rem;height:100%;transition:border-color var(--duration-affordance) var(--ease-snappy),box-shadow var(--duration-affordance) var(--ease-snappy),transform var(--duration-affordance) var(--ease-snappy)}.case[data-astro-cid-gq3l3q6k]:hover{border-color:var(--color-accent);box-shadow:0 12px 32px -8px color-mix(in srgb,var(--color-accent),transparent 78%)}.case__media[data-astro-cid-gq3l3q6k]{position:relative;margin:0;aspect-ratio:16/9;overflow:hidden}.case__media[data-astro-cid-gq3l3q6k] img[data-astro-cid-gq3l3q6k]{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--duration-transition) var(--ease-snappy);transform:translateZ(0)}.case[data-astro-cid-gq3l3q6k]:hover .case__media[data-astro-cid-gq3l3q6k] img[data-astro-cid-gq3l3q6k]{transform:scale(1.02)}.case__media[data-astro-cid-gq3l3q6k]:after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--color-accent),transparent 88%);opacity:0;transition:opacity var(--duration-affordance) var(--ease-snappy);pointer-events:none}.case[data-astro-cid-gq3l3q6k]:hover .case__media[data-astro-cid-gq3l3q6k]:after{opacity:1}.case__meta[data-astro-cid-gq3l3q6k]{padding:0 1.5rem 1.75rem;display:grid;gap:.4rem;transform:translateZ(20px)}.case__industry[data-astro-cid-gq3l3q6k]{font-family:var(--font-nav);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin:0}.case__title[data-astro-cid-gq3l3q6k]{font-size:1.35rem;margin:0}.case__client[data-astro-cid-gq3l3q6k]{font-family:var(--font-nav);color:var(--color-default);font-size:.95rem;margin:0}.case-modal{margin:auto;border:0;padding:0;max-width:min(960px,92vw);width:100%;max-height:92vh;border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-default);overflow:hidden;box-shadow:0 30px 80px -20px #1a2f4a66}.case-modal::backdrop{background:color-mix(in srgb,var(--color-ink),transparent 30%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.case-modal{opacity:0;transform:scale(.96);transition:opacity var(--duration-transition) var(--ease-snappy),transform var(--duration-transition) var(--ease-snappy)}.case-modal[open]{opacity:1;transform:scale(1)}.case-modal::backdrop{opacity:0;transition:opacity var(--duration-transition) var(--ease-snappy)}.case-modal[open]::backdrop{opacity:1}@media(prefers-reduced-motion:reduce){.case-modal,.case-modal::backdrop{transition:none}.case-modal{transform:none}}.case-modal__inner{position:relative;overflow-y:auto;max-height:92vh;padding:clamp(2rem,5vw,4rem) clamp(1.5rem,4vw,3rem) clamp(2rem,4vw,3rem);display:grid;gap:2rem}.case-modal__close{position:absolute;top:1.25rem;right:1.25rem;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--color-default),transparent 70%);background:var(--color-bg);color:var(--color-heading);font-size:1.5rem;cursor:pointer;transition:background var(--duration-affordance) var(--ease-snappy),color var(--duration-affordance) var(--ease-snappy),border-color var(--duration-affordance) var(--ease-snappy);z-index:2}.case-modal__close:hover{background:var(--color-ink);color:#fff;border-color:var(--color-ink)}.case-modal__header{display:grid;gap:.75rem}.case-modal__eyebrow{font-family:var(--font-nav);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin:0}.case-modal__title{font-size:clamp(1.8rem,4vw,2.8rem);margin:0;max-width:22ch}.case-modal__summary{font-size:1.05rem;line-height:1.6;color:var(--color-default);max-width:60ch;margin:0}.case-modal__hero{margin:0;border-radius:var(--radius-md);overflow:hidden}.case-modal__hero img{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover}.case-modal__metrics{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;border-block:1px solid color-mix(in srgb,var(--color-default),transparent 88%);padding-block:1.25rem}.case-modal__metric{display:grid;gap:.25rem}.case-modal__metric-value{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--color-heading);line-height:1.1;letter-spacing:-.02em}.case-modal__metric-label{font-size:.92rem;line-height:1.4;color:var(--color-default)}.case-modal__metric-attr{font-family:var(--font-mono);font-size:.72rem;color:color-mix(in srgb,var(--color-default),transparent 30%);letter-spacing:.02em}.case-modal__engagement{display:grid;grid-template-columns:max-content 1fr;gap:.4rem .9rem;margin:0}.case-modal__engagement dt{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb,var(--color-default),transparent 30%);margin:0}.case-modal__engagement dd{margin:0;font-size:.9rem;color:var(--color-heading);line-height:1.45}.case-modal__body{display:grid;gap:.5rem;max-width:60ch}.case-modal__body h2{font-size:var(--text-h2);margin-top:1.5rem}.case-modal__body p{line-height:1.7}.case-modal__body ul{padding-left:1.5rem;line-height:1.65;display:grid;gap:.4rem}.case-modal__aside{padding:1.5rem;background:var(--bg-tint);border-radius:var(--radius-md);display:grid;gap:.75rem}.case-modal__aside h3{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin:0;font-family:var(--font-nav)}.case-modal__aside p{margin:0;line-height:1.6}.case-modal__aside .chip-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem}.case-modal__aside .chip{padding:.3rem .7rem;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--color-default),transparent 70%);font-size:.8rem;font-family:var(--font-nav);color:var(--color-heading);background:var(--color-surface);transition:transform var(--duration-affordance) var(--ease-snappy),color var(--duration-affordance) var(--ease-snappy),background-color var(--duration-affordance) var(--ease-snappy),border-color var(--duration-affordance) var(--ease-snappy),box-shadow var(--duration-affordance) var(--ease-snappy);will-change:transform}.case-modal__aside .chip:hover{color:var(--color-accent);background-color:color-mix(in srgb,var(--color-accent),var(--color-surface) 88%);border-color:var(--color-accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--color-accent),transparent 78%);position:relative;z-index:2}
