
  /* ------------------------- Scaling System -------------------------  */

  /* Desktop */
  :root {
    --size-unit: 16; /* body font-size in design - no px */
    --size-container-ideal: 1440; /* screen-size in design - no px */
    --size-container-min: 992px;
    --size-container-max: 1920px;
    --size-container: clamp(var(--size-container-min), 100vw, var(--size-container-max));
    --size-font: calc(var(--size-container) / (var(--size-container-ideal) / var(--size-unit)));
  }

  /* Tablet */
  @media screen and (max-width: 991px) {
    :root {
      --size-container-ideal: 834; /* screen-size in design - no px */
      --size-container-min: 768px;
      --size-container-max: 991px;
    }
  }

  /* Mobile Landscape */
  @media screen and (max-width: 767px) {
    :root {
      --size-container-ideal: 550; /* screen-size in design - no px */
      --size-container-min: 480px;
      --size-container-max: 767px;
    }
  }

  /* Mobile Portrait */
  @media screen and (max-width: 479px) {
    :root {
      --size-container-ideal: 390; /* screen-size in design - no px */
      --size-container-min: 320px;
      --size-container-max: 479px;
    }
  }

  body {
    font-size: var(--size-font);
  }

  html,
  body {
    position: fixed;
    overflow: hidden;
    inset: 0;
    height: 100%;
    width: 100%;
  }

  * {
    -webkit-tap-highlight-color: transparent;
  }


  /* Ensure loader container covers the entire viewport */
  .loader {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    pointer-events: all;
  }

  /* Background SVG layer covering entire viewport */
  .svg-bg-stroke {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
  }

  .svg-bg-stroke svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Centered logo content */
  .loader-inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 1451px;
    padding: 2rem;
    pointer-events: none;
  }

  .logo-animation,
  .loader-inner svg,
  .two26-logo-svg {
    width: 100%;
    max-width: 1000px;
    height: auto;
    display: block;
    visibility: hidden; /* Option B: Keeps SVG in layout tree so getBBox() calculates accurately */
  }


  .two26-nav-toggle-btn {
    width: 2.5em !important;
    height: 2.5em !important;
    min-width: 2.5em !important;
    min-height: 2.5em !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2px solid #ff5400 !important;
    border-radius: 0.25em !important;
    background-color: #f9e2e1 !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    padding: 0.35em !important;
    position: relative !important;
    user-select: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .two26-toggle-svg {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    overflow: visible !important;
    display: block !important;
    transform-origin: center center !important;
    will-change: transform;
    pointer-events: none !important;
  }

  .two26-toggle-svg path {
    will-change: stroke-dashoffset, stroke-dasharray, stroke-width;
  }


  /* Base state: strictly fixed and removed from DOM flow so it never occupies space */
  .ham-navbar {
    display: none;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    width: 100svw !important;
    height: 100vh !important;
    height: 100svh !important;
    background-color: rgba(249, 226, 225, 0.95) !important;
    opacity: 0;
    pointer-events: none;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    margin: 0 !important;
  }

  /* When open on mobile (<= 768px) */
  @media (max-width: 768px) {
    .ham-navbar.is-open {
      display: block !important;
      opacity: 1;
      pointer-events: auto !important;
    }

    .hamburger-links > * {
      will-change: transform, opacity;
      transform-origin: center center;
    }
  }

  /* Strictly hidden on desktop (> 768px) */
  @media (min-width: 769px) {
    .ham-navbar,
    .ham-navbar.is-open {
      display: none !important;
      visibility: hidden !important;
      pointer-events: none !important;
    }
  }


  /* Fixed overlay base state - strictly 100svh, zero scrollbar */
  .contact-page {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    width: 100svw !important;
    height: 100vh !important;
    height: 100svh !important;
    max-height: 100svh !important;
    z-index: 9999999 !important;
    display: none;
    visibility: hidden;
    pointer-events: none;
    overflow: hidden !important;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }

  .contact-page::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  .contact-page.is-active {
    display: flex !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Transition SVG full coverage */
  .contact-transition,
  .svg-tcontact {
    pointer-events: none;
  }

  .contact-transition svg,
  .svg-tcontact svg {
    overflow: visible;
  }

  /* SplitText & mask utilities */
  .contact-heading-char {
    display: inline-block;
    will-change: transform, opacity, text-shadow;
    transform-origin: center center;
  }

  .contact-para-line-mask {
    overflow: hidden !important;
    display: block !important;
  }

  .contact-para-line {
    display: block !important;
    will-change: transform, opacity;
  }

  /* Email headings: strictly single line with overflow hidden */
  .email-heading,
  .contact-right .email-heading {
    white-space: nowrap !important;
    word-break: keep-all !important;
  }

  .contact-word-mask {
    overflow: hidden !important;
    display: inline-block !important;
    white-space: nowrap !important;
    vertical-align: top !important;
  }

  .contact-word {
    display: inline-block !important;
    white-space: nowrap !important;
    will-change: transform, opacity;
  }

  /* Email links: NO overflow hidden */
  .email-link,
  .contact-right .email-link,
  .contact-right [class*="email-link"] {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: visible !important;
    display: inline-block !important;
  }

  .contact-email-char {
    display: inline-block;
    transform-origin: center center;
    will-change: transform, text-shadow;
  }

  .contact-social {
    will-change: transform, opacity;
  }

  .contact-img-wrap {
    overflow: visible !important;
    contain: none !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    pointer-events: none !important;
  }

  .contact-img-wrap svg,
  .contact-img-wrap img,
  .contact-img {
    overflow: visible !important;
    max-height: 52vh !important;
    max-height: 52svh !important;
    width: auto !important;
    max-width: 85vw !important;
    object-fit: contain !important;
    display: block !important;
    transform-origin: bottom center !important;
    -webkit-transform-origin: bottom center !important;
    will-change: transform, opacity;
  }

  @media (max-width: 767px) {
    .contact-img-wrap svg,
    .contact-img-wrap img,
    .contact-img {
      max-height: 35svh !important;
      width: auto !important;
      object-fit: contain !important;
    }
  }


  /* Prevent FOUC: Elements start invisible until GSAP initializes */
  .section-work-hero .work-hero-text h1,
  .section-work-hero .work-hero-text .heading,
  .section-work-hero [data-work-hero-heading],
  .section-work-hero h1 {
    opacity: 0;
  }

  .section-work-hero .work-hero-pill {
    opacity: 0;
    will-change: transform, opacity;
  }

  /* Pill text mask: clips inner text for clean slide-up reveal */
  .section-work-hero .work-hero-pill .work-hero-pill-text,
  .section-work-hero .work-hero-pill [class*="pill-text"],
  .section-work-hero .work-hero-pill [class*="pill-label"] {
    display: block;
    will-change: transform, opacity;
  }

  .section-work-hero .work-hero-pill-text-mask {
    overflow: hidden;
    display: block;
  }

  .section-work-hero .work-hero-path svg {
    overflow: visible;
  }

  /* Line-by-line heading mask: matching projects-end look */
  .work-hero-line-mask {
    overflow: hidden !important;
    display: block !important;
  }

  .work-hero-line {
    display: block !important;
    will-change: transform, opacity;
  }

  .work-hero-para-line {
    display: block !important;
    will-change: transform, opacity;
  }

  .section-work-hero .cat-work-wrapper,
  .section-work-hero .cat-work-img {
    will-change: transform, opacity;
  }


  /* Ensure parent sections allow sticky stacking */
  .section-projects-work,
  .section-projects-work-wrapper,
  .prjs-work-wrapper,
  .prjs-work-list {
    overflow: visible !important;
  }

  /* Sticky Stacking Card Setup */
  .prjs-work-item {
    position: sticky !important;
    top: 0 !important;
    width: 100% !important;
    overflow: hidden !important;
    will-change: transform;
  }

  /* Desktop & Tablet Height (480px and above): 100vh / 100svh */
  @media (min-width: 480px) {
    .prjs-work-item {
      height: 100vh !important;
      height: 100svh !important;
    }
  }

  /* Mobile Portrait Height (479px and below): 50svh (Eliminates extra bottom spacing) */
  @media (max-width: 479px) {
    .prjs-work-item {
      height: 50svh !important;
      height: 50svh !important;
      min-height: auto !important;
    }

    .project-work-wrapper,
    .porject-img-wrapper,
    .project-img-wrapper {
      position: relative !important;
      height: 100% !important;
    }
  }

  /* Transition Cover: Stretches full cover with visible SVG stroke */
  .prj-transiton-cover,
  .prj-transition-cover {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    pointer-events: none !important;
    z-index: 10 !important;
    overflow: visible !important;
  }

  .prj-stroke svg {
    width: 100% !important;
    height: 100% !important;
    overflow: visible !important;
    display: block !important;
  }

  /* Cursor Follower Floating Project Info (Desktop 992px+ with Fine Pointer Only) */
  @media (min-width: 992px) and (hover: hover) and (pointer: fine) {
    .prjs-work-item .project-info {
      position: fixed !important;
      top: 0 !important;
      left: 0 !important;
      margin: 0 !important;
      pointer-events: none !important;
      will-change: transform;
      transform: translate(-50%, -50%) scale(0);
      transform-origin: center center;
    }

    .prjs-work-item .project-info > * {
      will-change: transform;
      transform-origin: center center;
    }
  }

  /* Tablets & Below / Touch Devices (Anchored bottom: 0, right: 0) */
  @media (max-width: 991px), (hover: none), (pointer: coarse) {
    .porject-img-wrapper,
    .project-img-wrapper,
    .project-work-wrapper {
      position: relative !important;
    }

    .prjs-work-item .project-info {
      position: absolute !important;
      bottom: 0 !important;
      right: 0 !important;
      top: auto !important;
      left: auto !important;
      margin: 0 !important;
      transform: none !important;
      pointer-events: auto !important;
      opacity: 1 !important;
      visibility: visible !important;
      z-index: 20 !important;
    }

    .prjs-work-item .project-info > * {
      transform: none !important;
      opacity: 1 !important;
      visibility: visible !important;
    }
  }


  /* Clip mask container for project card reveal (15% W/H to 100%) */
  .project-card-clip-mask {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    perspective: 1200px;
    -webkit-perspective: 1200px;
    transform-style: preserve-3d;
    will-change: clip-path;
  }

  .project-card {
    will-change: transform;
    transform-style: preserve-3d;
  }

  /* Projects End: Line-by-line heading masks & pills */
  .section-projects .projects-end-para {
    opacity: 0;
  }

  .project-line-mask {
    display: block !important;
    overflow: hidden !important;
  }

  .project-line {
    display: block !important;
    will-change: transform, opacity;
  }

  .section-projects .projects-pill-first,
  .section-projects .projects-pill-second,
  .section-projects .projects-pill-third,
  .section-projects .projects-pill-fourth,
  .section-projects [class*="projects-pill"],
  .section-projects .project-btn {
    opacity: 0;
    will-change: transform, opacity;
  }


  /* Ensure project card image wrapper and images always maintain cover fit */
  .project-card-img-wrapper {
    position: relative !important;
    overflow: hidden !important;
  }
  .project-card-img-wrapper img.project-img,
  .project-card-img-wrapper img.project-img-hover {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
  }
  .project-card-mask-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    pointer-events: none !important;
  }


  .footer-btm {
    will-change: transform;
  }

  .footer-btm {
    display: block !important;
    transform-origin: bottom center !important;
    will-change: transform;
  }

  .footer-heading-line-mask {
    overflow: hidden !important;
    display: block !important;
  }

  .footer-heading-line {
    display: block !important;
    will-change: transform, opacity;
  }

  .footer-link-char {
    display: inline-block;
    transform-origin: center center;
    will-change: transform, text-shadow;
  }


  html,
  body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    height: 100dvh;
    overflow: hidden;
    position: fixed;
    top: 0;
    left: 0;
  }

  .page {
    width: 100%;
    height: 100%;
    height: 100dvh;
    height: calc(var(--vh, 1vh) * 100);
    overflow-y: auto;
    overflow-x: hidden;
    position: relative;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
  }
