.modal-zoom-layer{position:fixed;inset:0;z-index:1200;display:none;pointer-events:none;overflow:hidden}.modal-zoom-layer.active{display:block}.modal-zoom-host{position:fixed;transform:translate(0) scale(1);will-change:transform}.portfolio-modal-overlay[data-astro-cid-q7ptv7yu]{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;opacity:0;transition:opacity .3s ease}.portfolio-modal-overlay[data-astro-cid-q7ptv7yu].open{pointer-events:auto;opacity:1}.portfolio-modal-overlay[data-astro-cid-q7ptv7yu][aria-hidden=true]{visibility:hidden}.portfolio-modal-overlay[data-astro-cid-q7ptv7yu].open[aria-hidden=false]{visibility:visible}.portfolio-modal-backdrop[data-astro-cid-q7ptv7yu]{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.dark .portfolio-modal-backdrop[data-astro-cid-q7ptv7yu]{background:#000000b3}.portfolio-modal-container[data-astro-cid-q7ptv7yu]{position:relative;width:100%;max-width:72rem;max-height:90vh;overflow-y:auto;overflow-x:hidden;border-radius:1.5rem 1.5rem 0 0;background:var(--color-surface);box-shadow:0 -8px 40px #0003;transform:translateY(100%);transition:transform .4s cubic-bezier(.23,1,.32,1);-webkit-overflow-scrolling:touch}.dark .portfolio-modal-container[data-astro-cid-q7ptv7yu]{background:var(--color-surface-dark-alt);box-shadow:0 -8px 40px #00000080,0 0 0 1px color-mix(in srgb,var(--color-accent) 15%,transparent)}.portfolio-modal-overlay[data-astro-cid-q7ptv7yu].open .portfolio-modal-container[data-astro-cid-q7ptv7yu]{transform:translateY(0)}@media(min-width:768px){.portfolio-modal-overlay[data-astro-cid-q7ptv7yu]{align-items:center;padding:1.5rem}.portfolio-modal-container[data-astro-cid-q7ptv7yu]{border-radius:1.5rem;max-height:90vh;transform:translateY(40px) scale(.95);opacity:0;transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .3s ease}.portfolio-modal-overlay[data-astro-cid-q7ptv7yu].open .portfolio-modal-container[data-astro-cid-q7ptv7yu]{transform:translateY(0) scale(1);opacity:1}}.modal-close-wrapper[data-astro-cid-q7ptv7yu]{position:sticky;top:0;height:0;overflow:visible;display:flex;justify-content:flex-end;z-index:50;pointer-events:none}.portfolio-modal-close[data-astro-cid-q7ptv7yu]{pointer-events:auto;margin:12px 12px 0 0;width:44px;height:44px;border-radius:50%;background:#0000001f;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:none;color:var(--color-text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease;flex-shrink:0}.dark .portfolio-modal-close[data-astro-cid-q7ptv7yu]{background:#ffffff1f;color:var(--color-text-dark)}.portfolio-modal-close[data-astro-cid-q7ptv7yu]:hover{background:#0003}.dark .portfolio-modal-close[data-astro-cid-q7ptv7yu]:hover{background:#ffffff40}.portfolio-modal-content[data-astro-cid-q7ptv7yu]{--pf-ink: color-mix(in oklch, var(--pf-color-1) 75%, black);--pf-c2: var( --pf-color-2, color-mix(in oklch, var(--pf-color-1), white 35%) );display:none;position:relative}.dark .portfolio-modal-content[data-astro-cid-q7ptv7yu]{--pf-ink: color-mix(in oklch, var(--pf-color-1) 45%, white)}.modal-color-infusion[data-astro-cid-q7ptv7yu]{position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--pf-color-1) 8%,transparent),color-mix(in srgb,var(--pf-color-1) 3%,transparent) 50%,transparent)}.dark .modal-color-infusion[data-astro-cid-q7ptv7yu]{background:linear-gradient(to bottom,color-mix(in srgb,var(--pf-color-1) 12%,transparent),color-mix(in srgb,var(--pf-color-1) 5%,transparent) 50%,transparent)}.dual-accent .modal-color-infusion[data-astro-cid-q7ptv7yu]{background:linear-gradient(to bottom right,color-mix(in srgb,var(--pf-color-1) 8%,transparent),transparent 55%),linear-gradient(to top left,color-mix(in srgb,var(--pf-c2) 6%,transparent),transparent 55%)}.dark .dual-accent .modal-color-infusion[data-astro-cid-q7ptv7yu]{background:linear-gradient(to bottom right,color-mix(in srgb,var(--pf-color-1) 12%,transparent),transparent 55%),linear-gradient(to top left,color-mix(in srgb,var(--pf-c2) 8%,transparent),transparent 55%)}.modal-slideshow[data-astro-cid-q7ptv7yu]{display:block;position:relative;z-index:1}.modal-slideshow-viewport[data-astro-cid-q7ptv7yu]{position:relative;aspect-ratio:var(--modal-viewport-ratio, 4 / 5);max-height:56vh;max-height:56dvh;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent);mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent)}@media(min-width:768px){.modal-slideshow-viewport[data-astro-cid-q7ptv7yu]{width:100%;aspect-ratio:auto;height:clamp(400px,60vh,800px);max-height:none;margin:0 auto}}.modal-slide[data-astro-cid-q7ptv7yu]{display:none;position:absolute;inset:0;align-items:center;justify-content:center}.modal-slide[data-astro-cid-q7ptv7yu].active{display:flex}.modal-slide-media[data-astro-cid-q7ptv7yu]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;will-change:transform}.modal-device-wrapper[data-astro-cid-q7ptv7yu]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;padding:.75rem;container-type:size}@media(min-width:640px){.modal-device-wrapper[data-astro-cid-q7ptv7yu]{padding:1rem}}.modal-device-wrapper[data-astro-cid-q7ptv7yu] .modal-pf-device[data-astro-cid-q7ptv7yu]{display:inline-block;vertical-align:middle}.modal-pf-device[data-astro-cid-q7ptv7yu]{position:relative;transform-style:preserve-3d}.modal-pf-device-screen[data-astro-cid-q7ptv7yu]{position:relative;display:block;max-width:90cqw;max-height:90cqh;width:auto;height:auto;border:1.25cqmin solid white;border-radius:4.5cqmin;transform:translateZ(1cqmin);background:#070b14;z-index:2;object-fit:cover}.dark .modal-pf-device-screen[data-astro-cid-q7ptv7yu]{border-color:#3a3a44;box-shadow:0 0 0 1px #ffffff1a,0 12px 40px -8px #0009}.modal-pf-device-body[data-astro-cid-q7ptv7yu]{position:absolute;inset:0;background:#e4e4e7;pointer-events:none;border-radius:4.5cqmin}@media(max-width:768px){.modal-pf-device-body[data-astro-cid-q7ptv7yu]:nth-of-type(n+4){display:none}}.dark .modal-pf-device-body[data-astro-cid-q7ptv7yu]{background:#3f3f46}.modal-standalone-wrapper[data-astro-cid-q7ptv7yu]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;padding:1.5rem}@media(min-width:640px){.modal-standalone-wrapper[data-astro-cid-q7ptv7yu]{padding:2rem}}.modal-standalone-wrapper[data-astro-cid-q7ptv7yu] img[data-astro-cid-q7ptv7yu]{max-width:100%;max-height:100%;border-radius:0;object-fit:contain}.modal-nav[data-astro-cid-q7ptv7yu]{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:#00000026;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.2);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:background .2s ease}.modal-nav-prev[data-astro-cid-q7ptv7yu]{left:12px}.modal-nav-next[data-astro-cid-q7ptv7yu]{right:12px}.modal-nav[data-astro-cid-q7ptv7yu]:hover{background:#0000004d}.dark .modal-nav[data-astro-cid-q7ptv7yu]{background:#ffffff26;border:1px solid rgba(255,255,255,.2);color:var(--color-text-dark)}.dark .modal-nav[data-astro-cid-q7ptv7yu]:hover{background:color-mix(in srgb,var(--color-accent) 20%,transparent)}.modal-caption-area[data-astro-cid-q7ptv7yu]{min-height:2.75rem;padding:.5rem 1.5rem;display:flex;align-items:center;justify-content:center}@media(min-width:640px){.modal-caption-area[data-astro-cid-q7ptv7yu]{padding:.5rem 2rem}}.modal-slide-caption[data-astro-cid-q7ptv7yu]{font-size:.8125rem;color:var(--color-text-muted);text-align:center;max-width:480px;line-height:1.5}.dark .modal-slide-caption[data-astro-cid-q7ptv7yu]{color:var(--color-text-dark-muted)}.modal-page-indicators[data-astro-cid-q7ptv7yu]{display:flex;justify-content:center;gap:6px;padding:.25rem 0 .75rem}.modal-page-dot[data-astro-cid-q7ptv7yu]{width:8px;height:8px;border-radius:50%;border:none;background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 25%,transparent);cursor:pointer;padding:0;transition:background .2s ease,transform .2s ease}.modal-page-dot[data-astro-cid-q7ptv7yu].active{background:var(--pf-color-1, var(--color-accent));transform:scale(1.25)}.modal-info[data-astro-cid-q7ptv7yu]{padding:1.25rem 1.5rem 2rem;position:relative;z-index:1;max-width:48rem;margin:0 auto}@media(min-width:640px){.modal-info[data-astro-cid-q7ptv7yu]{padding:1.5rem 2rem 2rem}}.modal-header[data-astro-cid-q7ptv7yu]{margin-bottom:1.5rem}.modal-client-info[data-astro-cid-q7ptv7yu]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.modal-client-logo[data-astro-cid-q7ptv7yu]{height:22px;width:auto;opacity:.7}.dark .modal-client-logo[data-astro-cid-q7ptv7yu]{filter:grayscale(100%) invert(1);opacity:.5}.modal-client-name[data-astro-cid-q7ptv7yu]{font-size:.875rem;font-weight:500;color:var(--color-text-muted)}.dark .modal-client-name[data-astro-cid-q7ptv7yu]{color:var(--color-text-dark-muted)}.modal-year[data-astro-cid-q7ptv7yu]{font-size:.75rem;color:var(--color-text-muted);opacity:.6;margin-left:auto}.dark .modal-year[data-astro-cid-q7ptv7yu]{color:var(--color-text-dark-muted)}.modal-title[data-astro-cid-q7ptv7yu]{font-size:1.5rem;font-weight:700;line-height:1.2;margin-bottom:.75rem}.modal-tags[data-astro-cid-q7ptv7yu]{display:flex;flex-wrap:wrap;gap:.375rem}.modal-disciplines[data-astro-cid-q7ptv7yu]{margin-top:.625rem;font-size:.8125rem;font-weight:500;color:var(--pf-ink)}.modal-tag[data-astro-cid-q7ptv7yu]{display:inline-block;font-size:.6875rem;padding:.1875rem .625rem;border-radius:9999px;background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 8%,transparent);border:1px solid color-mix(in srgb,var(--pf-color-1, #7c3aed) 15%,transparent);color:var(--color-text-muted)}.dark .modal-tag[data-astro-cid-q7ptv7yu]{background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 12%,transparent);border-color:color-mix(in srgb,var(--pf-color-1, #7c3aed) 20%,transparent);color:var(--color-text-dark-muted)}.modal-body[data-astro-cid-q7ptv7yu]{display:flex;flex-direction:column;gap:1.5rem}.modal-description[data-astro-cid-q7ptv7yu]{font-size:.9375rem;line-height:1.65;color:var(--color-text)}.dark .modal-description[data-astro-cid-q7ptv7yu]{color:var(--color-text-dark)}.modal-details-grid[data-astro-cid-q7ptv7yu]{display:grid;grid-template-columns:1fr;gap:.75rem}@media(min-width:480px){.modal-details-grid[data-astro-cid-q7ptv7yu]{grid-template-columns:1fr 1fr}}.modal-detail-card[data-astro-cid-q7ptv7yu]{padding:1rem;border-radius:.75rem;background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 5%,transparent);border:1px solid color-mix(in srgb,var(--pf-color-1, #7c3aed) 10%,transparent)}.dark .modal-detail-card[data-astro-cid-q7ptv7yu]{background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 8%,transparent);border-color:color-mix(in srgb,var(--pf-color-1, #7c3aed) 15%,transparent)}.modal-detail-icon[data-astro-cid-q7ptv7yu]{width:28px;height:28px;border-radius:.5rem;background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 12%,transparent);display:flex;align-items:center;justify-content:center;color:var(--pf-ink);margin-bottom:.5rem}.dark .modal-detail-icon[data-astro-cid-q7ptv7yu]{background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 18%,transparent)}.modal-detail-label[data-astro-cid-q7ptv7yu]{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--pf-ink);margin-bottom:.375rem}.modal-detail-text[data-astro-cid-q7ptv7yu]{font-size:.8125rem;line-height:1.55;color:var(--color-text-muted)}.dark .modal-detail-text[data-astro-cid-q7ptv7yu]{color:var(--color-text-dark-muted)}.modal-cta[data-astro-cid-q7ptv7yu]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin-top:1.5rem;padding:1rem 1.25rem;border-radius:1rem;background:color-mix(in srgb,var(--color-accent, #7c3aed) 7%,transparent);border:1px solid color-mix(in srgb,var(--color-accent, #7c3aed) 16%,transparent);position:relative;z-index:1}.modal-cta-text[data-astro-cid-q7ptv7yu]{font-weight:600;color:var(--color-text)}.dark .modal-cta-text[data-astro-cid-q7ptv7yu]{color:var(--color-text-dark)}.modal-cta-actions[data-astro-cid-q7ptv7yu]{display:flex;flex-wrap:wrap;gap:.5rem}.modal-cta-btn[data-astro-cid-q7ptv7yu]{display:inline-flex;align-items:center;padding:.55rem 1.1rem;border-radius:9999px;font-size:.875rem;font-weight:600;color:var(--color-text);border:1px solid color-mix(in srgb,var(--color-accent, #7c3aed) 30%,transparent);text-decoration:none;transition:background .2s ease,border-color .2s ease}.dark .modal-cta-btn[data-astro-cid-q7ptv7yu]{color:var(--color-text-dark)}.modal-cta-btn[data-astro-cid-q7ptv7yu]:hover{border-color:var(--color-accent, #7c3aed)}.modal-cta-btn--primary[data-astro-cid-q7ptv7yu],.dark .modal-cta-btn--primary[data-astro-cid-q7ptv7yu]{color:#fff;background:var(--color-accent, #7c3aed);border-color:var(--color-accent, #7c3aed)}.modal-cta-btn--primary[data-astro-cid-q7ptv7yu]:hover{background:color-mix(in srgb,var(--color-accent, #7c3aed) 85%,black)}.modal-cta-btn[data-astro-cid-q7ptv7yu]:focus-visible{outline:2px solid var(--color-accent, #7c3aed);outline-offset:2px}.modal-links[data-astro-cid-q7ptv7yu]{display:flex;flex-direction:column;gap:.5rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid color-mix(in srgb,var(--pf-color-1, #7c3aed) 10%,transparent);position:relative;z-index:1}.dark .modal-links[data-astro-cid-q7ptv7yu]{border-top-color:color-mix(in srgb,var(--pf-color-1, #7c3aed) 20%,transparent)}.modal-link-btn[data-astro-cid-q7ptv7yu]{display:inline-flex;align-items:center;gap:.625rem;padding:.625rem 1rem;border-radius:.75rem;font-size:.8125rem;font-weight:500;color:var(--color-text);background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 5%,transparent);border:1px solid color-mix(in srgb,var(--pf-color-1, #7c3aed) 12%,transparent);text-decoration:none;transition:all .2s ease}.dark .modal-link-btn[data-astro-cid-q7ptv7yu]{color:var(--color-text-dark);background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 8%,transparent);border-color:color-mix(in srgb,var(--pf-color-1, #7c3aed) 18%,transparent)}.modal-link-btn[data-astro-cid-q7ptv7yu]:hover{background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 10%,transparent);border-color:color-mix(in srgb,var(--pf-color-1, #7c3aed) 30%,transparent);color:var(--pf-ink)}.dark .modal-link-btn[data-astro-cid-q7ptv7yu]:hover{background:color-mix(in srgb,var(--pf-color-1, #7c3aed) 15%,transparent);border-color:color-mix(in srgb,var(--pf-color-1, #7c3aed) 40%,transparent);color:var(--pf-ink)}
