/* v2.36: Grid portfolio, category transitions and caption typography. */body.work-grid-home{margin:0;padding:0;display:block;background:#f5f4f1;color:#202022;font-family:Inter,Arial,sans-serif;overflow-x:hidden}
.work-grid-home *{box-sizing:border-box}.work-grid-home main{margin:0;padding:0;width:100%;max-width:none;outline:0}
.portfolio-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;min-height:100svh;align-content:start}
.work-tile{position:relative;display:block;aspect-ratio:1.125;min-width:0;overflow:hidden;background:#d8d8d5;text-decoration:none;color:white;isolation:isolate;--tile-tint:115,158,200}
.work-tile>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease;filter:none}
.work-tile--product-design{--tile-tint:89,151,216}.work-tile--graphics{--tile-tint:171,139,199}.work-tile--motion-production{--tile-tint:218,158,91}.work-tile--animation{--tile-tint:218,158,91}.work-tile--ai{--tile-tint:76,173,167}.work-tile--other{--tile-tint:150,150,150}
.work-tile-tint{position:absolute;inset:0;background:rgba(var(--tile-tint),.16);pointer-events:none;transition:opacity .25s}
.work-tile::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.68));pointer-events:none}
.work-tile-caption{position:absolute;z-index:2;left:16px;bottom:16px;right:36px;display:flex;flex-direction:column;gap:4px;line-height:1.3}
.work-tile-category{font-size:10px;letter-spacing:.075em;font-weight:700;text-transform:uppercase}
.work-tile-title{font-size:14px;font-weight:500;text-wrap:pretty}
.work-tile-arrow{position:absolute;right:16px;bottom:16px;z-index:2;font-size:22px;opacity:0;transition:opacity .2s}
.work-tile:hover>img,.work-tile:focus-visible>img{transform:scale(1.035)}.work-tile:hover .work-tile-tint{opacity:.4}.work-tile:hover .work-tile-arrow,.work-tile:focus-visible .work-tile-arrow{opacity:1}
.work-tile:focus-visible{outline:3px solid #fff;outline-offset:-6px}
.grid-signature{position:fixed;z-index:4;right:20px;bottom:12px;margin:0;padding:0;font-size:clamp(46px,8.4vw,160px);line-height:.85;letter-spacing:-.065em;font-weight:900;color:rgba(14,14,16,.24);pointer-events:none;user-select:none;white-space:nowrap;transition:opacity .2s}
.grid-toolbar{position:fixed;top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));z-index:30;display:flex;gap:2px;padding:5px;background:rgba(250,249,246,.90);backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,.08);border-radius:4px}
.grid-toolbar button{display:grid;place-items:center;width:42px;height:42px;padding:10px;color:#171719;background:none;border:0;border-radius:0;cursor:pointer}
.grid-toolbar button:hover{background:rgba(0,0,0,.07)}.grid-toolbar button:focus-visible,.work-grid-home .closebtn:focus-visible{outline:2px solid #325eac;outline-offset:1px}
.grid-toolbar svg{width:25px;height:25px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:square;stroke-linejoin:round}.grid-toolbar .grid-quote-mark{fill:currentColor;stroke:none}
.grid-scrim{position:fixed;inset:0;z-index:70;background:rgba(15,17,22,.32);backdrop-filter:blur(2px)}.grid-scrim[hidden]{display:none}
.work-grid-home .sidenav{position:fixed;inset:0 0 0 auto;z-index:80;width:min(420px,100vw)!important;height:100dvh;padding:72px 28px 30px!important;margin:0;border-radius:0!important;border:0;background:#faf9f6;color:#242426;box-shadow:-8px 0 40px rgba(0,0,0,.12);transform:translateX(105%);visibility:hidden;transition:transform .28s ease,visibility .28s;overflow:auto;overscroll-behavior:contain;text-align:left}
.work-grid-home .sidenav.grid-drawer-open{transform:translateX(0);visibility:visible;transition:transform .28s ease}
.work-grid-home .sidenav .closebtn{position:absolute;top:17px;right:22px;left:auto;margin:0;padding:0;width:44px;height:44px;line-height:40px;text-align:center;font-size:32px;background:none;border:0;color:#202022;cursor:pointer;text-decoration:none}
.work-grid-home .sidenav-inner,.work-grid-home .testimonial-nav-content{padding:0;margin:0;width:auto;min-width:0}.work-grid-home .sidenav-heading{color:#75736f;font-size:11px;letter-spacing:.12em}
.work-grid-home .sidenav a:not(.closebtn){color:#252527}.work-grid-home .sidenav a:not(.closebtn):hover{color:#325eac}
.work-grid-home.grid-drawer-active{overflow:hidden}.grid-drawer-active .grid-signature{opacity:0}
.grid-about-content h2{font-size:42px;font-weight:800;letter-spacing:-.045em;line-height:1.05;margin:12px 0 22px}
.grid-about-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#777;margin:0}.grid-about-role{font-size:17px;line-height:1.5;font-weight:600;margin:0 0 24px}.grid-about-bio{font-size:16px;line-height:1.8}
.grid-about-links{margin-top:32px;border-top:1px solid #d9d6d0}.work-grid-home .grid-about-links a{display:flex;justify-content:space-between;padding:18px 0;font-size:16px;border-bottom:1px solid #d9d6d0;text-decoration:none}
.grid-skip{position:fixed;top:12px;left:12px;transform:translateY(-200%);z-index:100;background:white;padding:12px;color:black}.grid-skip:focus{transform:none}
.grid-empty{padding:120px 32px}.grid-noscript{padding:24px;background:white}
@media(min-width:1900px){.portfolio-wall{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1050px){.portfolio-wall{grid-template-columns:repeat(3,minmax(0,1fr))}.work-tile-caption{left:12px;bottom:12px}}
@media(max-width:700px){.portfolio-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:3px}.work-tile{aspect-ratio:.88}.grid-toolbar{top:12px;right:12px;padding:3px}.grid-toolbar button{width:38px;height:38px;padding:9px}.grid-signature{font-size:clamp(38px,11.5vw,80px);bottom:max(14px,env(safe-area-inset-bottom));right:12px;letter-spacing:-.06em}.work-tile-caption{right:12px;left:10px;bottom:12px}.work-tile-category{font-size:8px;letter-spacing:.05em}.work-tile-title{font-size:12px}.work-tile-arrow{display:none}}
@media(prefers-reduced-motion:reduce){.work-grid-home *{transition:none!important;scroll-behavior:auto!important}}

/* Category filters share the existing upper-right toolbar. */
.grid-toolbar{max-width:calc(100vw - 36px);align-items:center}
.grid-filters{display:flex;align-items:center;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.grid-toolbar .grid-filters button{display:block;width:auto;flex:0 0 auto;padding:0 12px;font:600 11px Inter,Arial,sans-serif;white-space:nowrap}
.grid-filters button[aria-pressed="true"]{background:#242426;color:#fff}
.grid-filters button[aria-pressed="true"]:hover{background:#242426}
.grid-drawer-controls{display:flex;flex-shrink:0;border-left:1px solid rgba(0,0,0,.15);padding-left:5px;margin-left:5px}
.work-tile[hidden],.grid-filter-empty[hidden]{display:none!important}
.grid-filter-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.grid-filter-empty{position:absolute;top:160px;left:24px;right:24px;text-align:center}
@media(max-width:900px){.grid-toolbar{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 24px)}.grid-filters{flex:1 1 100%;order:2;border-top:1px solid rgba(0,0,0,.1);padding-top:3px}.grid-drawer-controls{border:0;margin:0;padding:0}.grid-toolbar .grid-filters button{padding:0 10px}}


/* v2.36: Titles are easier to read and never shift on hover; images still zoom. */
.work-grid-home .work-tile-title {
  font-size: clamp(17px, 1.52vw, 22px);
  line-height: 1.14;
  font-weight: 750;
  letter-spacing: -.028em;
}
.work-grid-home .work-tile-caption,
.work-grid-home .work-tile-caption * {
  transform: none !important;
  transition: none !important;
  animation: none !important;
}
.work-grid-home .work-tile:hover .work-tile-caption,
.work-grid-home .work-tile:focus-visible .work-tile-caption {
  transform: none !important;
}

/* The tile drops in individually; outgoing tiles drop away before the grid reflows. */
@keyframes gridCardFallIn {
  0%   {opacity: 0; transform: translate3d(0,-64px,0) rotate(-1.25deg) scale(.97)}
  72%  {opacity: 1; transform: translate3d(0,6px,0) rotate(.18deg) scale(1.002)}
  100% {opacity: 1; transform: translate3d(0,0,0) rotate(0) scale(1)}
}
@keyframes gridCardFallOut {
  0%   {opacity: 1; transform: translate3d(0,0,0) rotate(0) scale(1)}
  100% {opacity: 0; transform: translate3d(0,46px,0) rotate(1.1deg) scale(.975)}
}
@media (prefers-reduced-motion: no-preference) {
  .work-grid-home .work-tile.is-entry-waiting {opacity:0; transform:translate3d(0,-48px,0)}
  .work-grid-home .work-tile.is-falling-in {
    animation: gridCardFallIn .66s cubic-bezier(.19,.78,.24,1) var(--tile-delay,0ms) both;
  }
  .work-grid-home .work-tile.is-falling-out {
    animation: gridCardFallOut .26s cubic-bezier(.55,.1,.8,.45) var(--tile-out-delay,0ms) both;
    pointer-events:none;
  }
}
@media (max-width:700px) {
  .work-grid-home .work-tile-title {font-size:clamp(15px,3.7vw,19px);line-height:1.18}
}
@media (prefers-reduced-motion:reduce) {
  .work-grid-home .work-tile.is-entry-waiting,
  .work-grid-home .work-tile.is-falling-in,
  .work-grid-home .work-tile.is-falling-out {opacity:1;transform:none;animation:none!important}
}

/* v2.37: Card captions retain their original white color on hover/focus/visited.
   The card's image zoom, tint and arrow hover effects are unchanged. */
.work-grid-home a.work-tile .work-tile-caption,
.work-grid-home a.work-tile .work-tile-caption *,
.work-grid-home a.work-tile:hover .work-tile-caption,
.work-grid-home a.work-tile:hover .work-tile-caption *,
.work-grid-home a.work-tile:focus-visible .work-tile-caption,
.work-grid-home a.work-tile:focus-visible .work-tile-caption *,
.work-grid-home a.work-tile:visited .work-tile-caption,
.work-grid-home a.work-tile:visited .work-tile-caption * {
  color: #fff !important;
}

/* v2.38: Keep testimonial portraits thumbnail-sized inside the homepage
   drawer. The larger image styles used for project cards must not affect
   portraits in the testimonial panel. */
body.work-grid-home #testimonialNav .testimonial-card img {
  display: block;
  width: 60px !important;
  height: 60px !important;
  max-width: 60px !important;
  max-height: 60px !important;
  min-width: 0;
  flex: 0 0 60px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 50%;
}


/* v2.40: Krea-style two-axis gallery navigation, without restyling cards.
   This enhanced layout is only enabled after JS has initialized; the original
   page remains a normal scrolling grid when JavaScript is off. */
.work-grid-home.grid-pan-enabled {
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  overscroll-behavior: none;
}
.work-grid-home.grid-pan-enabled #portfolio-work {
  position: fixed;
  inset: 0;
  height: 100vh;
  height: 100dvh;
  width: 100%;
  overflow: hidden;
  overscroll-behavior: contain;
  touch-action: pinch-zoom;
  cursor: grab;
}
.work-grid-home.grid-pan-enabled #portfolio-work.is-panning {cursor: grabbing}
.work-grid-home.grid-pan-enabled .portfolio-wall {
  /* 5 card columns, of which 4 are initially visible. Each card retains
     exactly the pre-existing 4-column size and gap. */
  width: calc(125vw - 1px);
  grid-template-columns: repeat(5, minmax(0,1fr));
  min-height: 100vh;
  min-height: 100dvh;
  will-change: transform;
  transform: translate3d(0,0,0);
}
.work-grid-home.grid-pan-enabled .work-tile,
.work-grid-home.grid-pan-enabled .work-tile > img {
  -webkit-user-drag: none;
  user-select: none;
  -webkit-user-select: none;
}
.work-grid-home.grid-pan-enabled #portfolio-work.is-panning .work-tile {cursor: grabbing}
.gallery-pan-sr-only {
  position: absolute!important;
  width: 1px!important;
  height: 1px!important;
  overflow: hidden!important;
  clip-path: inset(50%)!important;
  white-space: nowrap!important;
}
@media (min-width:1900px) {
  .work-grid-home.grid-pan-enabled .portfolio-wall {
    /* Original 5 columns remain on-screen; the 6th can be dragged into view. */
    width: calc(120vw - 1px);
    grid-template-columns: repeat(6,minmax(0,1fr));
  }
}
@media (max-width:1050px) {
  .work-grid-home.grid-pan-enabled .portfolio-wall {
    width: calc(133.333vw - 1px);
    grid-template-columns: repeat(4,minmax(0,1fr));
  }
}
@media (max-width:700px) {
  .work-grid-home.grid-pan-enabled .portfolio-wall {
    width: calc(150vw - 2px);
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  .work-grid-home.grid-pan-enabled .portfolio-wall {will-change:auto}
}
