.portfolio-nav-link {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  position: relative;
  color: #f5f5f5;
  font-family: "Roboto Mono", monospace;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .02em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  padding: 8px 0;
}
.portfolio-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 3px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}
.portfolio-nav-link:hover::after,
.portfolio-nav-link:focus-visible::after { transform: scaleX(1); }
.portfolio-nav-link:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }

#main .framer-wdUAA.framer-v-lo4nud .framer-4g8qbg {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  width: 100%;
}
#main .framer-wdUAA.framer-v-lo4nud .framer-fsil6w {
  display: flex;
  gap: clamp(20px, 2.5vw, 32px);
  flex-shrink: 0;
}
#main .framer-wdUAA.framer-v-lo4nud.framer-lo4nud {
  padding: 12px clamp(20px, 2.5vw, 36px);
}

/* The three mobile links stay together; short screens can scroll the menu. */
header.framer-wdUAA .framer-ktyioq-container { display: none !important; }
#main header.framer-wdUAA:not(.framer-v-gg3skn) .framer-1jjebof {
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s 180ms;
}
#main header.framer-wdUAA.framer-v-gg3skn .framer-1jjebof { visibility: visible; transition: visibility 0s; }
#main .framer-wdUAA.framer-v-gg3skn.framer-lo4nud {
  height: 100dvh;
  max-height: 100dvh;
}
#main .framer-wdUAA.framer-v-gg3skn .framer-1hq0syf {
  pointer-events: auto;
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 20px 20px 24px;
  justify-content: space-between;
  gap: clamp(32px, 6dvh, 56px);
}
#main .framer-wdUAA .framer-1jjebof {
  gap: 8px;
  padding: 12px 0 0;
}
#main .framer-wdUAA .framer-1jjebof .portfolio-nav-link {
  width: 100%;
  min-height: 44px;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 18px;
  line-height: 1.4;
  padding: 10px 0;
}
#main .framer-wdUAA .framer-1jjebof .portfolio-nav-link::after { right: auto; width: 32px; }
#main .framer-wdUAA.framer-v-gg3skn .framer-1vmal6c { margin-top: 0; flex-shrink: 0; }
#main .framer-wdUAA .framer-1jjebof,
#main .framer-wdUAA .framer-l6wivo { flex-shrink: 0; }
#main .framer-wdUAA.framer-v-gg3skn .framer-1jjebof .portfolio-nav-link {
  animation: portfolio-menu-link-in 420ms cubic-bezier(.22, 1, .36, 1) both;
  animation-delay: 100ms;
}
#main .framer-wdUAA.framer-v-gg3skn .framer-1jjebof .portfolio-nav-link:nth-child(2) { animation-delay: 145ms; }
#main .framer-wdUAA.framer-v-gg3skn .framer-1jjebof .portfolio-nav-link:nth-child(3) { animation-delay: 190ms; }
@keyframes portfolio-menu-link-in {
  from { opacity: 0; translate: 0 12px; }
  to { opacity: 1; translate: 0 0; }
}
#main .framer-Wqq94 .framer-18ti5zb { gap: 32px; }
@media (max-width: 809.98px) {
  #main .framer-wbGfx .framer-1wy9psp { padding-bottom: 48px; }
  #main .framer-Wqq94 .framer-18ti5zb { gap: 16px; }
  /* Keep the clock in its final position while the menu fades in and out. */
  #main header.framer-wdUAA .framer-1a67mbz {
    flex: none;
    flex-direction: row;
    justify-content: space-between;
    gap: 0;
    width: 100%;
  }
  #main header.framer-wdUAA .framer-11gpy7o-container { order: 1; }
  #main header.framer-wdUAA .framer-wry15t { order: 2; flex: 1 0 0; width: 1px; }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-nav-link::after { transition: none; }
  #main .framer-wdUAA.framer-v-gg3skn .framer-1jjebof .portfolio-nav-link { animation: none; }
}
/* Raise the fixed wrapper as well as the header's own stacking context. */
#main div:has(> header.framer-wdUAA) { z-index: 1000 !important; }
#main header.framer-wdUAA { z-index: 1000 !important; }

.portfolio-route-veil {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: #e8e8e8;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms cubic-bezier(.22, 1, .36, 1);
}
.portfolio-route-veil.is-covered { opacity: 1; pointer-events: auto; }
@media (max-width: 809.98px) {
  .portfolio-route-veil::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(220px, calc(100vw - 64px));
    height: 2px;
    transform: translate(-50%, -50%);
    border-radius: 2px;
    background: linear-gradient(90deg, transparent, #212431, transparent);
    background-size: 35% 100%;
    background-repeat: no-repeat;
    animation: portfolio-loading-line 1.4s cubic-bezier(.65, 0, .35, 1) infinite;
  }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-route-veil { transition: none; }
  .portfolio-route-veil::after { animation: none; background-position: center; }
}

/* Theme-specific icons share the native menu control and its open state. */
.portfolio-menu-toggle{position:relative;min-width:44px;min-height:44px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.portfolio-menu-toggle:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:5px}
.portfolio-burger-glyph{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.portfolio-burger-glyph>span{position:relative;width:28px;height:28px;display:none;color:#f5f5f5}
.portfolio-burger-original{display:block}
.portfolio-burger-bar{position:absolute;display:block;left:2px;top:13px;width:24px;height:2px;background:currentColor;transform-origin:center;transition:transform 420ms cubic-bezier(.22,1,.36,1),opacity 200ms ease,background 220ms ease}
html[data-portfolio-theme="frosted"] .portfolio-burger-original,
html[data-portfolio-theme="tactile"] .portfolio-burger-original{display:none}
html[data-portfolio-theme="frosted"] .portfolio-burger-glyph>.portfolio-burger-frosted{display:block;color:#cdd6f4}
.portfolio-burger-frosted{transition:transform 520ms cubic-bezier(.22,1,.36,1)}
.portfolio-burger-frosted .portfolio-burger-bar{height:3px;top:12px;width:24px;left:2px;background:repeating-linear-gradient(90deg,currentColor 0 3px,transparent 3px 4px);transition:transform 460ms cubic-bezier(.22,1,.36,1),opacity 160ms ease,color 220ms ease;will-change:transform,opacity}
.portfolio-burger-frosted .portfolio-burger-bar-0{transform:translateY(-7px);color:#fab387}
.portfolio-burger-frosted .portfolio-burger-bar-1{transform:scaleX(.67);transform-origin:left;color:#cdd6f4}
.portfolio-burger-frosted .portfolio-burger-bar-2{transform:translateY(7px);color:#cba6f7}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-frosted{transform:rotate(90deg)}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-frosted .portfolio-burger-bar-0{transform:rotate(-45deg);transition-delay:35ms}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-frosted .portfolio-burger-bar-1{transform:scaleX(0);opacity:0}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-frosted .portfolio-burger-bar-2{transform:rotate(45deg);transition-delay:65ms}

html[data-portfolio-theme="tactile"] .portfolio-burger-glyph>.portfolio-burger-tactile{display:block;color:#d79921}
.portfolio-burger-tactile::before,.portfolio-burger-tactile::after{content:"";position:absolute;top:3px;bottom:3px;width:4px;border-top:2px solid #a89984;border-bottom:2px solid #a89984;transition:transform 440ms cubic-bezier(.22,1,.36,1),border-color 220ms ease;will-change:transform}
.portfolio-burger-tactile::before{left:0;border-left:2px solid #a89984}
.portfolio-burger-tactile::after{right:0;border-right:2px solid #a89984}
.portfolio-burger-tactile .portfolio-burger-bar{width:14px;left:7px;height:2px;transition:transform 380ms cubic-bezier(.22,1,.36,1),opacity 120ms ease;will-change:transform,opacity}
.portfolio-burger-tactile .portfolio-burger-bar-0{transform:translateY(-5px)}
.portfolio-burger-tactile .portfolio-burger-bar-1{color:#ebdbb2}
.portfolio-burger-tactile .portfolio-burger-bar-2{transform:translateY(5px)}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-tactile::before{transform:translateX(-3px) scaleY(.7);border-color:#d79921}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-tactile::after{transform:translateX(3px) scaleY(.7);border-color:#d79921}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-tactile .portfolio-burger-bar-0{transform:rotate(135deg);transition-delay:55ms}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-tactile .portfolio-burger-bar-1{transform:translateX(5px) scaleX(0);opacity:0}
.portfolio-menu-toggle[aria-expanded="true"] .portfolio-burger-tactile .portfolio-burger-bar-2{transform:rotate(45deg);transition-delay:85ms}
.portfolio-menu-toggle:active .portfolio-burger-glyph{transform:scale(.92)}
.portfolio-burger-glyph{transition:transform 160ms ease}
@media(prefers-reduced-motion:reduce){.portfolio-burger-original,.portfolio-burger-original path,.portfolio-burger-glyph,.portfolio-burger-frosted,.portfolio-burger-bar,.portfolio-burger-tactile::before,.portfolio-burger-tactile::after{transition:none!important}}
