:root {
    --bg: #ffffff;
    --text: #0b0f19;
    --muted: rgba(11, 15, 25, 0.66);
    --border: rgba(11, 15, 25, 0.10);
  
    --card: rgba(255, 255, 255, 0.76);
    --shadow: 0 18px 60px rgba(11, 15, 25, 0.10);
  
    --radius-xl: 24px;
    --radius-lg: 18px;
  
    --tech: "Geist Mono", Arial, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji",
      "Segoe UI Emoji";
    --sans: "Zalando Sans", Arial, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji",
      "Segoe UI Emoji";
  
    --container: 1140px;
  }
  
  * { box-sizing: border-box; }
  html, body { 
    height: 100%;
    scroll-behavior: smooth;
 }
  body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: Arial, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji",
      "Segoe UI Emoji";
    line-height: 1.45;
    letter-spacing: -0.01em;
    overflow-x: hidden;
  }
  
  a { color: inherit; text-decoration: none; }
  a:hover { opacity: 0.92; }
  
  .container {
    width: min(var(--container), calc(100% - 48px));
    margin: 0 auto;
  }
  
  /* CTA button with morphing wave canvas */
  .btn-waves {
    position: relative;
    overflow: hidden;            /* clip canvas to pill shape */
    isolation: isolate;          /* keep blend layers contained */
  }
  
  /* canvas sits behind the text inside the button */
  .btn-waves-canvas {
    position: absolute;
    inset: 0;                 /* overscan so waves don't show edges */
    width: 100%;
    height: 100%;
    display: block;
    z-index: 0;
    pointer-events: none;
  }
  
  /* content stays above the canvas */
  .btn-waves-content {
    position: relative;
    z-index: 1;
  }
  
  /* keep your existing solid CTA base, but allow wave shine to read */
  .btn-solid.btn-waves {
    background: rgba(11, 15, 25, 0.92); /* base */
    border-color: rgba(11, 15, 25, 0.92);
  }
  
  /* optional: subtle glossy highlight */
  .btn-solid.btn-waves::after {
    content: "";
    position: absolute;
    inset: -40%;
    background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.18), transparent 55%);
    z-index: 0;
    pointer-events: none;
  }
  
  
  /* ---------------------------
     Apple-leaning Liquid Glass Nav (2025)
  ---------------------------- */
  
  /* ---------------------------
     Simple, modern navbar (baseline)
  ---------------------------- */
  
  .site-header {
    position: sticky;
      z-index: 50;
  
  }
  
  .nav {
    width: min(var(--container), calc(100% - 48px));
    margin: 0 auto;
    height: 64px;
  
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  
  .brand {
    font-weight: 550;
    font-size: 1rem;
    color: #0c0c0c;
  }
  
  .nav-links {
    display: flex;
    gap: 20px;
  }
  
  .nav-links a {
    font-size: 14px;
    color: rgba(11, 15, 25, 0.72);
    padding: 6px 2px;
  }
  
  .nav-links a:hover {
    color: rgba(11, 15, 25, 0.95);
  }
  
  @media (max-width: 760px) {
    .nav-links {
      display: none;
    }
  }
  
  .brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 220px;
  }
  
  .brand-mark {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: rgba(11, 15, 25, 0.92);
    box-shadow:
      0 0 0 6px rgba(11, 15, 25, 0.06),
      0 10px 24px rgba(11, 15, 25, 0.10);
  }
  
  .brand-text {
    font-weight: 650;
    letter-spacing: 0.10em;
    font-family: "Zalando Sans";
    font-size: 1rem;
    color: rgba(11, 15, 25, 0.86);
  }
  
  .nav-links {
    display: flex;
    align-items: center;
    gap: 18px;
  
    color: rgba(11, 15, 25, 0.72);
    font-size: 14px;
  }
  
  .nav-links a {
    position: relative;
    padding: 10px 10px;
    border-radius: 999px;
    transition: background 180ms ease, color 180ms ease;
  }
  
  .nav-links a:hover {
    background: rgba(255,255,255,0.55);
    color: rgba(11, 15, 25, 0.86);
  }
  
  /* A tiny “lens” effect on hover */
  .nav-links a::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.55), rgba(255,255,255,0) 60%);
    opacity: 0;
    transition: opacity 180ms ease;
    pointer-events: none;
  }
  .nav-links a:hover::after { opacity: 0.75; }
  
  .nav-actions {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  
  
  
  .hero {
    display: flex;
    flex-direction: column;
    justify-items: center;
    color: #fcfcfc;
  }
  
  .hero-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 28px;
    align-items: start;
  }
  
  .hero-top {
    display: flex;
    flex-direction: column;
    margin: 0;
    background-color: #0c0c0c;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%233c3c3c' fill-opacity='0.19'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  }
  
  .hero-image-grid {
      padding: 0 2rem;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.2rem;
  
  }
  
  .hero-image-grid img {
    width: 100%;
    height: 100%;
    aspect-ratio: 5 / 6;      /* keeps images consistent */
    object-fit: cover;
    border-radius: 1rem;
    display: block;
  }
  
  /* Responsive: stack to 1 or 2 columns */
  @media (max-width: 900px) {
    .hero-image-grid {
      grid-template-columns: repeat(3, 1fr);
    }
  }
  
  @media (max-width: 520px) {
    .hero-image-grid {
      grid-template-columns: 1fr;
    }
  }
  
  .pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.62);
    color: rgba(11, 15, 25, 0.72);
    font-size: 13px;
    margin-bottom: 18px;
  }
  
  .pill .dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: rgba(11, 15, 25, 0.85);
    box-shadow: 0 0 0 5px rgba(11, 15, 25, 0.08);
  }
  
  .hero-title {
    margin-top: 4vh;
    padding: 0 2rem;
    font-size: clamp(2.6rem, 3.3rem, 4.2rem);
    font-family: "Zalando Sans";
    color: #fcfcfc;
    line-height: 1.03;
    letter-spacing: -0.04em;
    font-weight: 720;
  }
  
  .hero-title .accent {
    display: inline-block;
    padding: 2px 10px 6px;
    border-radius: 14px;
    background: rgba(11, 15, 25, 0.06);
    border: 1px solid rgba(11, 15, 25, 0.08);
  }
  
  .hero-subtitle {
    margin: 4vw;
      padding-bottom: 4vh;
      text-align: left;
      font-size: 1.2rem;
      line-height: 1.6;
  }
  
  .hero-cta {
    display: flex;
      align-items: center;
      justify-content: center;
      gap: 14px;
      margin-top: 2.2rem;
  }
  
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 16px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 1rem;
    font-weight: 550;
    font-family: var(--tech);
    letter-spacing: -0.01em;
    transition: transform 140ms ease, background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
    user-select: none;
    white-space: nowrap;
  }
  
  .btn:hover { transform: translateY(-1px); }
  
  .btn-solid {
    background: #fcfcfc;
    color: #0c0c0c;
    border: none;
  }
  
  .btn-ghost {
    background: #0c0c0c;
    border: none;
    color: #fcfcfc;
  }
  
  .btn-link {
    padding: 12px 4px;
    border-color: transparent;
    background: transparent;
  }
  .btn-link:hover { background: transparent; transform: none; opacity: 0.86; }
  
  .btn-cta {
    position: relative;
    overflow: hidden;
  }
  .btn-cta::before {
    content: "";
    position: absolute;
    inset: -40%;
    background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.28), transparent 55%);
    transform: translate3d(-10%, 0, 0);
    opacity: 0.95;
  }
  .btn-cta > * { position: relative; z-index: 1; }
  
  .hero-proof {
    display: flex;
    gap: 14px;
    margin-top: 26px;
  }
  
  .proof-item {
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid var(--border);
    background: rgba(255, 255, 255, 0.62);
    min-width: 120px;
  }
  
  .proof-top {
    font-weight: 760;
    letter-spacing: -0.03em;
    font-size: 18px;
  }
  
  .proof-bottom {
    margin-top: 3px;
    font-size: 13px;
    color: rgba(11, 15, 25, 0.62);
  }
  
  .hero-card {
    display: flex;
    justify-content: flex-end;
  }
  
  .card {
    width: 100%;
    max-width: 420px;
    border-radius: var(--radius-xl);
    border: 1px solid rgba(11, 15, 25, 0.12);
    background: var(--card);
    box-shadow: var(--shadow);
    
    padding: 18px;
  }
  
  .card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(11, 15, 25, 0.10);
  }
  
  .card-title {
    font-weight: 740;
    letter-spacing: -0.02em;
  }
  
  .card-chip {
    font-size: 12px;
    color: rgba(11, 15, 25, 0.70);
    border: 1px solid rgba(11, 15, 25, 0.12);
    background: rgba(255, 255, 255, 0.60);
    border-radius: 999px;
    padding: 6px 10px;
  }
  
  .card-list {
    list-style: none;
    padding: 14px 0 0;
    margin: 0;
    display: grid;
    gap: 10px;
    color: rgba(11, 15, 25, 0.78);
    font-size: 14px;
  }
  
  .card-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 10px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(11, 15, 25, 0.08);
  }
  
  .li-dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: rgba(11, 15, 25, 0.72);
    box-shadow: 0 0 0 5px rgba(11, 15, 25, 0.08);
  }
  
  .card-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 14px;
  }
  
  .card-note {
    color: rgba(11, 15, 25, 0.55);
    font-size: 13px;
  }
  
  .section {
    padding: 2rem 0;
  }
  
  .section-title {
    margin: 0;
    font-size: 2.9rem;
    font-family: var(--sans);
  }
  
  .section-subtitle {
    margin: 10px 0 0;
    color: var(--muted);
    max-width: 70ch;
  }
  
  /* ---------------------------
     Services (clean / negative space)
  ---------------------------- */
  
  .services {
    background: #fcfcfc;
    color: #0c0c0c;
    padding: 2vw;
  }
  
  .services-head {
    max-width: 72ch;
  }
  
  .services-grid {
    margin-top: 28px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    align-items: start;
  }
  
  .services-block {
    padding: 18px 18px 16px;
    border: 1px solid rgba(11, 15, 25, 0.10);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.85);
  }
  
  .services-title {
    margin: 0 0 12px;
    font-family: var(--sans);
    font-weight: 650;
    font-size: 1.05rem;
    letter-spacing: -0.02em;
    color: rgba(11, 15, 25, 0.92);
  }
  
  .services-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
    color: rgba(11, 15, 25, 0.72);
    font-size: 0.98rem;
    line-height: 1.55;
  }
  
  .services-list li {
    position: relative;
    padding-left: 14px;
  }
  
  .services-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.65em;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: rgba(11, 15, 25, 0.22);
  }
  
  .services-note {
    margin: 14px 0 0;
    color: rgba(11, 15, 25, 0.58);
    font-size: 0.95rem;
    line-height: 1.55;
  }
  
  .services-kv {
    display: grid;
    gap: 10px;
    margin-top: 6px;
  }
  
  .kv {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(11, 15, 25, 0.08);
    background: rgba(11, 15, 25, 0.02);
  }
  
  .kv-label {
    color: rgba(11, 15, 25, 0.62);
    font-size: 0.92rem;
  }
  
  .kv-value {
    color: rgba(11, 15, 25, 0.92);
    font-weight: 650;
    font-size: 0.98rem;
    text-align: right;
  }
  
  .services-wide {
    grid-column: 1 / -1;
  }
  
  .services-install {
    padding: 20px 20px 18px;
  }
  
  .services-copy {
    margin: 0;
    color: rgba(11, 15, 25, 0.72);
    font-size: 1rem;
    line-height: 1.65;
    max-width: 85ch;
  }
  
  .install-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
  }
  
  .tag {
    display: inline-flex;
    align-items: center;
    padding: 8px 10px;
    border-radius: 999px;
    border: 1px solid rgba(11, 15, 25, 0.10);
    background: rgba(255, 255, 255, 0.70);
    color: rgba(11, 15, 25, 0.70);
    font-size: 0.92rem;
  }
  
  .services-cta {
    margin-top: 22px;
    display: flex;
    gap: 12px;
    align-items: center;
  }
  
  /* Responsive */
  @media (max-width: 980px) {
    .services-grid {
      grid-template-columns: 1fr;
    }
    .services-cta {
      flex-direction: column;
      align-items: flex-start;
    }
  }
  
  
  /* ---------------------------
     Work grid (4-up, thin gaps, hover overlay)
  ---------------------------- */
  
  .work {
    padding: 2vw; /* matches your services approach */
    background-color: #fcfcfc;
    color: #0c0c0c;
  }
  
  .work-head {
    max-width: 70ch;
    margin-bottom: 18px;
  }
  
  .work-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2x2 grid */
    gap: 8px; /* thin gap */
  }
  
  .work-item {
    position: relative;
    display: block;
    overflow: hidden;
    background: transparent;  /* no border radius, no border */
  }
  
  .work-item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    aspect-ratio: 4 / 3;      /* consistent sizing */
  }
  
  /* White fade overlay + centered text */
  .work-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.00);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 160ms ease, background 160ms ease;
  }
  
  .work-overlay-text {
    font-family: var(--tech);
    font-weight: 650;
    font-size: 0.95rem;
    color: rgba(11, 15, 25, 0.92);
    letter-spacing: 0.02em;
    transform: translateY(6px);
    opacity: 0;
    transition: transform 160ms ease, opacity 160ms ease;
  }

  .work-chips-bar {
    background: #fcfcfc;
    padding: 18px 2vw 8px;
  }
  
  .work-chips-inner {
    width: min(var(--container), calc(100% - 48px));
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
  }
  
  
  /* Hover state */
  .work-item:hover .work-overlay {
    opacity: 1;
    background: rgba(255, 255, 255, 0.72);
  }
  
  .work-item:hover .work-overlay-text {
    opacity: 1;
    transform: translateY(0);
  }
  
  /* Keyboard accessibility */
  .work-item:focus-visible {
    outline: 2px solid rgba(11, 15, 25, 0.35);
    outline-offset: 3px;
  }
  
  /* Responsive */
  @media (max-width: 980px) {
    .work-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  
  @media (max-width: 520px) {
    .work-grid {
      grid-template-columns: 1fr;
    }
  }

  /* ---------------------------
   Work page: subtle CSS-only animations (no JS)
---------------------------- */

@keyframes cggFadeUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  
  @keyframes cggFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
  }
  
  /* Hero pieces */
  .work-page-title {
    animation: cggFadeUp 600ms ease both;
  }
  
  .work-page-subtitle {
    animation: cggFadeUp 600ms ease both;
    animation-delay: 120ms;
  }
  
  .work-page-hero-media {
    animation: cggFadeIn 700ms ease both;
    animation-delay: 220ms;
  }
  
  /* Chips bar */
  .work-chips-bar {
    animation: cggFadeUp 520ms ease both;
    animation-delay: 140ms;
  }
  
  /* Stagger chips */
  .work-chips-inner .chip {
    animation: cggFadeUp 520ms ease both;
  }
  
  .work-chips-inner .chip:nth-child(1) { animation-delay: 160ms; }
  .work-chips-inner .chip:nth-child(2) { animation-delay: 220ms; }
  .work-chips-inner .chip:nth-child(3) { animation-delay: 280ms; }
  .work-chips-inner .chip:nth-child(4) { animation-delay: 340ms; }
  
  /* Section headings + grids */
  .work-page-head {
    animation: cggFadeUp 560ms ease both;
  }
  
  .portfolio-grid {
    animation: cggFadeIn 640ms ease both;
    animation-delay: 120ms;
  }
  
  /* Respect reduced motion */
  @media (prefers-reduced-motion: reduce) {
    .work-page-title,
    .work-page-subtitle,
    .work-page-hero-media,
    .work-chips-bar,
    .work-chips-inner .chip,
    .work-page-head,
    .portfolio-grid {
      animation: none !important;
    }
  
    html { scroll-behavior: auto; }
  }
  
  
  /* ---------------------------
     Contact section (minimal)
  ---------------------------- */
  
  .contact {
    background: #fcfcfc;
    padding: 8vh 2vw;
  }
  
  .contact-inner {
    max-width: 60ch;
  }
  
  .contact-title {
    margin: 0;
    font-family: var(--sans);
    font-size: clamp(1.8rem, 2.4vw, 2.2rem);
    font-weight: 650;
    letter-spacing: -0.03em;
    color: #0c0c0c;
  }
  
  .contact-subtitle {
    margin-top: 12px;
    font-size: 1.05rem;
    line-height: 1.6;
    color: rgba(11, 15, 25, 0.65);
  }
  
  .contact-btn {
    margin-top: 28px;
  }
  
  
  .contact-row {
    display: flex;
    gap: 12px;
    margin-top: 18px;
  }
  
  .footer {
    padding: 34px 0 54px;
    border-top: 1px solid var(--border);
    background: rgba(255,255,255,0.70);
  }
  
  .footer-inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
  }
  
  .footer-brand {
    font-weight: 740;
    letter-spacing: -0.02em;
  }
  
  .footer-sub {
    margin-top: 6px;
    color: rgba(11, 15, 25, 0.62);
    font-size: 13px;
  }
  
  .footer-right {
    display: flex;
    gap: 16px;
    color: rgba(11, 15, 25, 0.75);
    font-size: 14px;
  }
  
  /* ---------------------------
     Contact page (under construction)
  ---------------------------- */
  
  .contact-page {
    background: #fcfcfc;
    min-height: calc(100vh - 64px);
    padding: 8vh 2vw;
  }
  
  .contact-page-inner {
    max-width: 62ch;
    font-family: var(--tech);
  }
  
  .contact-page-title {
    margin: 0;
    font-family: var(--sans);
    font-size: clamp(2.2rem, 3vw, 2.6rem);
    font-weight: 650;
    letter-spacing: -0.03em;
    color: #0c0c0c;
  }
  
  .contact-page-subtitle {
    margin-top: 14px;
    font-size: 1.05rem;
    color: rgba(11, 15, 25, 0.55);
  }
  
  .contact-page-copy {
    margin-top: 22px;
    font-size: 1.1rem;
    line-height: 1.65;
    color: rgba(11, 15, 25, 0.72);
  }
  
  .contact-page-copy a {
    color: rgba(11, 15, 25, 0.9);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  
  /* ---------------------------
     Hero image grid -> horizontal swipe on mobile
  ---------------------------- */
  
  .hero-image-wrap {
    padding: 0 2rem; /* matches your current hero padding */
  }
  
  @media (max-width: 760px) {
    .hero-image-wrap {
      padding: 0 1rem;
    }
  
    .hero-image-grid {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: 82%;
      gap: 12px;
  
      overflow-x: auto;
      overflow-y: hidden;
      -webkit-overflow-scrolling: touch;
  
      scroll-snap-type: x mandatory;
      scroll-padding-left: 1rem;
      padding-bottom: 6px; /* small breathing room */
    }
  
    .hero-image-grid img {
      scroll-snap-align: start;
      width: 100%;
      height: auto;
      aspect-ratio: 5 / 6;
      border-radius: 1rem; /* keep your existing radius */
    }
  
    /* Hide scrollbar (clean) */
    .hero-image-grid::-webkit-scrollbar { height: 0; }
    .hero-image-grid { scrollbar-width: none; }
  
    /* Tighten hero spacing so CTA stays visible */
    .hero-title {
      margin-top: 2vh;
      padding: 0 1rem;
      font-size: clamp(2.2rem, 9vw, 3.0rem);
    }
  
    .hero-cta {
      margin-top: 1.2rem;
      padding: 0 1rem;
    }
  
    .hero-subtitle {
      margin: 1.2rem 1rem 0;
      padding-bottom: 3.5vh;
      font-size: 1.05rem;
    }
  }
  
  
  /* ---------------------------
     Mobile menu (full-screen, minimal)
  ---------------------------- */
  
  .nav-actions {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  
  /* Hamburger: no border/background */
  .nav-toggle {
    display: none;
    border: 0;
    font-size: 1.2rem;
    color: #0c0c0c;
    background: transparent;
    padding: 10px;
    cursor: pointer;
    line-height: 0;
  }
  
  .nav-toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: rgba(11, 15, 25, 0.85);
    margin: 5px 0;
    border-radius: 2px;
  }
  
  /* Full-screen overlay menu */
  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: #ffffff; /* clean, minimal */
    display: block;
  }
  
  .mobile-menu[hidden] {
    display: none;
  }
  
  .mobile-menu-inner {
    min-height: 100vh;
    padding: 22px 18px;
    display: flex;
    flex-direction: column;
  }
  
  .mobile-close {
    margin-left: auto;
    border: 0;
    background: transparent;
    font-family: "Zalando Sans";
    font-weight: 650;
    font-size: 1rem;
    color: rgba(11, 15, 25, 0.80);
    padding: 10px 8px;
    cursor: pointer;
  }
  
  .mobile-links {
    margin-top: 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  
  .mobile-link {
    font-family: "Zalando Sans";
    font-weight: 650;
    font-size: 1.6rem;
    color: rgba(11, 15, 25, 0.92);
    letter-spacing: -0.02em;
  }
  
  /* Add the “+” prefix */
  .mobile-link::before {
    content: "+";
    margin-right: 10px;
    color: rgba(11, 15, 25, 0.55);
  }
  
  .mobile-cta {
    margin-top: auto;
    padding-top: 16px;
  }
  
  /* Responsive behavior */
  @media (max-width: 760px) {
    .nav-links { display: none; }
    .nav-actions .btn { display: none; } /* hide desktop CTA on mobile */
    .nav-toggle { display: inline-flex; }
    .hero-title { padding: 0 1rem; }
  }
   
  

  /* ---------------------------
   Work page (portfolio)
---------------------------- */

.work-page-hero {
    background: #0c0c0c;
    color: #fcfcfc;
    padding: 7vh 2vw 4vh;
  }
  
  .work-page-hero-inner {
    max-width: var(--container);
    margin: 0 auto;
    width: min(var(--container), calc(100% - 48px));
  }
  
  .work-page-title {
    margin: 0;
    font-family: var(--sans);
    font-weight: 720;
    letter-spacing: -0.04em;
    font-size: clamp(2.4rem, 4vw, 3.4rem);
    line-height: 1.05;
  }
  
  .work-page-subtitle {
    margin-top: 12px;
    max-width: 72ch;
    color: rgba(252, 252, 252, 0.75);
    font-size: 1.05rem;
    line-height: 1.6;
  }
  
  .work-page-hero-media {
    margin-top: 22px;
  }
  
  .work-hero-video {
    width: 100%;
    display: block;
    border-radius: 18px;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: rgba(255,255,255,0.06);
  }
  
  .work-page-chips {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
  
  /* simple chip that matches your aesthetic */
  .chip {
    display: inline-flex;
    align-items: center;
    padding: .6rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: #0c0c0c;
    color: #fcfcfc;
    font-family: var(--tech);
    font-size: 0.92rem;
  }
  
  .chip:hover { opacity: 0.92; }
  
  .work-page-section {
    background: #fcfcfc;
    color: #0c0c0c;
    padding: 3.2rem 2vw;
  }
  
  .work-page-head {
    max-width: 75ch;
    margin-bottom: 18px;
  }
  
  .work-page-h2 {
    margin: 0;
    font-family: var(--sans);
    font-size: 2.2rem;
    letter-spacing: -0.03em;
  }
  
  .work-page-desc {
    margin: 10px 0 0;
    color: rgba(11, 15, 25, 0.62);
    max-width: 72ch;
  }
  
  /* Portfolio grid: thin gaps, no radius */
  .portfolio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  
  .portfolio-item {
    margin: 0;
    background: transparent;
  }
  
  .portfolio-item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    aspect-ratio: 4 / 3;
    border-radius: 0; /* as requested: no radius */
  }
  
  /* Responsive */
  @media (max-width: 980px) {
    .portfolio-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  
  @media (max-width: 520px) {
    .work-page-hero {
      padding: 6vh 4vw 3vh;
    }
  
    .work-page-section {
      padding: 2.4rem 4vw;
    }
  
    .portfolio-grid {
      grid-template-columns: 1fr;
    }
  }
  
  
  /* ---------------------------
     Reveal animations (no blur)
  ---------------------------- */
  
  .reveal,
  .reveal-section {
    opacity: 0;
    transform: translateY(14px);
    transition:
      opacity 520ms cubic-bezier(.2,.8,.2,1),
      transform 520ms cubic-bezier(.2,.8,.2,1);
    will-change: opacity, transform;
  }
  
  /* Direction variants */
  .reveal--up { transform: translateY(16px); }
  .reveal--left { transform: translateX(-18px); }
  .reveal--right { transform: translateX(18px); }
  
  /* Pop variant */
  .reveal--pop { transform: translateY(10px) scale(0.985); }
  
  /* Active state */
  .is-visible {
    opacity: 1;
    transform: translate(0, 0) scale(1);
  }
  
  /* Delay helpers */
  .reveal--delay-1 { transition-delay: 80ms; }
  .reveal--delay-2 { transition-delay: 160ms; }
  .reveal--delay-3 { transition-delay: 240ms; }
  .reveal--delay-4 { transition-delay: 320ms; }
  .reveal--delay-5 { transition-delay: 400ms; }
  
  /* Mobile tuning */
  @media (max-width: 760px) {
    .reveal,
    .reveal-section {
      /*transform: translateY(10px);*/
      transition-duration: 460ms;
    }
    .reveal--left { transform: translateX(-14px); }
    .reveal--right { transform: translateX(14px); }
  }
  
  /* Reduced motion */
  @media (prefers-reduced-motion: reduce) {
    .reveal,
    .reveal-section {
      transition: none !important;
      transform: none !important;
      opacity: 1 !important;
    }
  }
  
  
  
  /* Responsive */
  @media (max-width: 980px) {
    .hero-grid {
      grid-template-columns: 1fr;
    }
    .hero-card {
      justify-content: flex-start;
    }
    .card {
      max-width: 560px;
    }
  }
  
  @media (max-width: 760px) {
    .nav-links {
      display: none;
    }
  
    /* KEEP nav-actions visible so the hamburger can show */
    .nav-actions {
      display: flex;
      align-items: center;
      gap: 12px;
    }
  
    /* Hide the desktop CTA button on mobile */
    .nav-actions .btn {
      display: none;
    }
  
    .nav-toggle {
      display: inline-flex;
    }
  
    .container {
      width: min(var(--container), calc(100% - 34px));
    }
  
    .hero-proof {
      flex-wrap: wrap;
    }
  }