  :root{
    --charcoal:#121212;
    --graphite:#1A1A1A;
    --slate:#2B2B2B;
    --warm-white:#F4F3EF;
    --stone:#A9AAA4;
    --evergreen:#435244;
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  .page-wipe{
    position:fixed;
    inset:0;
    background:var(--charcoal);
    z-index:9999;
    transform:translateY(-100%);
    transition:transform .5s cubic-bezier(.76,0,.24,1);
    pointer-events:none;
  }
  .page-wipe.is-covering{
    transform:translateY(0);
  }

  html{scroll-behavior:smooth;}

  body{
    background:var(--charcoal);
    color:var(--warm-white);
    font-family:'neue-haas-grotesk-text','Inter',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
    overflow-x:hidden;
  }

  h1,h2,h3, .serif{
    font-family:'adobe-caslon-pro','Cormorant Garamond',Georgia,serif;
    font-weight:400;
  }

  .label{
    font-family:'neue-haas-grotesk-text','Inter',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.18em;
    font-size:12px;
    font-weight:500;
  }

  a{color:inherit;text-decoration:none;}

  /* ---------- NAV ---------- */
  nav{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:24px 56px;
    background:transparent;
    border-bottom:1px solid transparent;
    transition:background 0.9s ease-in-out, padding 0.9s ease-in-out;
  }
  nav.is-scrolled{
    background:var(--charcoal);
    padding-top:18px;
    padding-bottom:18px;
  }
  .logo-img{
    height:16px;
    width:auto;
    display:block;
  }
  .nav-links{display:flex;gap:40px;}
  .nav-links a{
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    position:relative;
    padding-bottom:4px;
  }
  .nav-links a::after{
    content:'';
    position:absolute;
    bottom:0;left:0;
    width:0;height:1px;
    background:var(--evergreen);
    filter:brightness(1.8);
    transition:width .35s ease;
  }
  .nav-links a:hover{color:var(--evergreen);filter:brightness(1.7);}
  .nav-links a:hover::after{width:100%;}

  @media (max-width:760px){
    nav{padding:22px 24px;}
    .nav-links{gap:22px;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:flex-end;
    background:var(--charcoal);
    padding-top:96px; /* guarantees clearance under the fixed nav no matter the content height */
  }

  .hero-video-wrap{
    position:absolute;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:var(--charcoal);
    pointer-events:none; /* hero has no other interactive video controls; CTA/nav sit above via z-index */
    animation:heroZoomIn 2.4s cubic-bezier(.16,.6,.2,1) forwards;
  }
  @keyframes heroZoomIn{
    from{ transform:scale(1.03); }
    to{ transform:scale(1); }
  }
  .hero-video-wrap iframe{
    position:absolute;
    top:50%;
    left:50%;
    width:100vw;
    height:56.25vw; /* 16:9 */
    min-height:100vh;
    min-width:177.78vh; /* 16:9 */
    transform:translate(-50%,-50%);
    border:none;
  }
  .hero-poster{
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    z-index:1;
    opacity:1;
    transition:opacity 0.6s ease;
  }
  .hero-poster.is-hidden{
    opacity:0;
    pointer-events:none;
  }

  .hero-scrim{
    position:absolute;
    inset:0;
    z-index:1;
    background:
      linear-gradient(0deg, rgba(18,18,18,0.92) 0%, rgba(18,18,18,0.35) 45%, rgba(18,18,18,0.15) 100%),
      linear-gradient(100deg, rgba(18,18,18,0.55) 0%, transparent 55%);
    pointer-events:none;
  }

  .topo-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0.5;
    z-index:1;
    mix-blend-mode:overlay;
  }
  .topo-bg{
    animation: driftTopo 90s linear infinite;
  }
  @keyframes driftTopo{
    0%{transform:translate(0,0) scale(1);}
    50%{transform:translate(-1.2%,0.8%) scale(1.01);}
    100%{transform:translate(0,0) scale(1);}
  }
  @media (prefers-reduced-motion:reduce){
    .topo-bg{animation:none;}
  }

  .scroll-cue{
    position:absolute;
    left:56px;
    bottom:0;
    top:0;
    z-index:2;
    display:none;
  }

  .hero-inner{
    position:relative;
    z-index:2;
    max-width:900px;
    padding:0 56px 120px;
  }

  .hero-eyebrow{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:28px;
    opacity:0;
    animation:riseIn .9s ease forwards .1s;
  }
  .hero-eyebrow .dot{
    width:6px;height:6px;border-radius:50%;
    background:var(--evergreen);
  }

  .hero h1{
    font-size:clamp(2.6rem, 6vw, 5.2rem);
    line-height:1.08;
    letter-spacing:-0.01em;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--evergreen);
    filter:brightness(1.5);
  }
  .hero h1 .line-mask{
    display:block;
    overflow:hidden;
  }
  .hero h1 .line-inner{
    display:block;
    transform:translateY(115%);
    animation:lineUp .7s cubic-bezier(.16,1,.3,1) forwards;
  }
  .hero h1 .line-mask:nth-child(1) .line-inner{animation-delay:.1s;}
  .hero h1 .line-mask:nth-child(2) .line-inner{animation-delay:.24s;}
  .hero h1 .line-mask:nth-child(3) .line-inner{animation-delay:.38s;}
  @keyframes lineUp{
    to{ transform:translateY(0); }
  }

  .hero p{
    margin-top:28px;
    max-width:460px;
    font-size:16px;
    line-height:1.7;
    color:var(--stone);
    opacity:0;
    animation:riseIn .8s ease forwards .85s;
  }

  .hero-cta{
    margin-top:44px;
    display:inline-flex;
    align-items:center;
    gap:14px;
    opacity:0;
    animation:riseIn .8s ease forwards 1s;
  }
  .hero-cta .label{color:var(--warm-white);}
  .hero-cta svg{transition:transform .3s ease;}
  .hero-cta:hover svg{transform:translateX(6px);}

  @keyframes riseIn{
    from{opacity:0; transform:translateY(16px);}
    to{opacity:1; transform:translateY(0);}
  }

  /* coordinate tag */
  .coord-tag{
    position:absolute;
    right:56px;
    bottom:64px;
    z-index:2;
  }
  .coord-mark{
  }
  .crosshair-img{
    display:block;
    width:20px;
    height:20px;
    transform:rotate(-50deg) scale(0.3);
    opacity:0;
    animation:crosshairIn 2.2s cubic-bezier(.16,.8,.2,1) forwards;
    animation-delay:0.1s;
  }
  .crosshair-img.anim-done{
    animation:none;
    transform:rotate(0deg) scale(1);
    opacity:0.7;
    transition:transform 1.6s ease-in-out, opacity 1.6s ease-in-out;
  }
  .crosshair-img.anim-done.is-scrolled-away{
    transform:rotate(-50deg) scale(0.3);
    opacity:0;
  }
  @keyframes crosshairIn{
    0%{ transform:rotate(-50deg) scale(0.3); opacity:0; }
    100%{ transform:rotate(0deg) scale(1); opacity:0.7; }
  }
  @media (prefers-reduced-motion:reduce){
    .crosshair-img{animation:none;opacity:0.7;transform:rotate(0deg) scale(1);}
  }

  @media (max-width:760px){
    .hero-inner{padding:0 24px;}
    .coord-tag{right:24px;bottom:32px;}
  }

  /* ---------- SECTION SHARED ---------- */
  section{
    padding:140px 56px;
    position:relative;
  }
  #work{
    padding-top:32px;
    padding-bottom:64px;
  }
  .testimonial-section{
    padding-top:40px;
    padding-bottom:100px;
  }
  @media (max-width:760px){
    section{padding:90px 24px;}
    #work{padding-top:48px;}
    .testimonial-section{padding-bottom:70px;}
  }
  .section-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:40px;
    margin-bottom:64px;
    padding-bottom:28px;
  }
  .section-head .label{color:var(--evergreen);filter:brightness(1.6);}
  .section-head h2{
    font-size:clamp(1.8rem,3.4vw,2.8rem);
    margin-top:12px;
  }
  .section-head .section-note{
    max-width:280px;
    font-size:14px;
    color:var(--stone);
    line-height:1.6;
    text-align:right;
  }
  @media (max-width:760px){
    .section-head{flex-direction:column;align-items:flex-start;}
    .section-head .section-note{text-align:left;}
  }

  /* ---------- WORK GRID ---------- */
  .still-item.photo-viewer-item{cursor:pointer;}
  .work-filter{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    margin-bottom:20px;
  }
  .filter-toggle{
    background:none;
    border:none;
    padding:0;
    font-family:'neue-haas-grotesk-text','Inter',sans-serif;
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--stone);
    cursor:pointer;
    transition:color .3s ease;
  }
  .filter-toggle.active{
    color:var(--warm-white);
  }
  .filter-toggle:hover{
    color:var(--evergreen);
    filter:brightness(1.6);
  }
  .filter-divider{
    color:var(--slate);
    font-size:12px;
  }
  .work-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:0;
  }
  .work-item.is-hidden{
    display:none;
  }
  @media (max-width:760px){
    .work-grid{grid-template-columns:1fr;}
    .work-item{aspect-ratio:2/3;}
    .work-item h3{font-size:1.2rem;line-height:1.2;}
  }
  .custom-cursor{
    position:fixed;
    top:0;
    left:0;
    width:68px;
    height:68px;
    border-radius:50%;
    background:var(--evergreen);
    color:var(--warm-white);
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:'neue-haas-grotesk-text','Inter',sans-serif;
    font-size:9px;
    font-weight:700;
    letter-spacing:0.06em;
    text-transform:uppercase;
    text-align:center;
    line-height:1.4;
    pointer-events:none;
    z-index:999;
    opacity:0;
    margin:-34px 0 0 -34px;
    scale:0.7;
    transition:opacity .3s ease, scale .3s ease;
  }
  .custom-cursor.is-active{
    opacity:0.95;
    scale:1;
  }
  @media (hover:none), (pointer:coarse){
    .custom-cursor{display:none;}
  }
  @media (hover:hover) and (pointer:fine){
    .work-item{cursor:none;}
  }
  .work-item{
    background:var(--graphite);
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    cursor:pointer;
    display:block;
    color:inherit;
    text-decoration:none;
  }
  .work-item .thumb{
    position:absolute;inset:0;
    background:
      radial-gradient(circle at 30% 30%, rgba(67,82,68,0.35), transparent 60%),
      linear-gradient(160deg, #1c1f1c 0%, #141514 100%);
    transition:transform .8s cubic-bezier(.16,1,.3,1);
  }
  .work-item .thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .work-item .thumb-mask{
    position:absolute;
    inset:0;
    z-index:1;
    background:var(--charcoal);
    transform:translateY(0);
    transition:transform 1s cubic-bezier(.65,0,.35,1);
  }
  .work-item.is-revealed .thumb-mask{
    transform:translateY(-101%);
  }
  .work-item:hover .thumb{transform:scale(1.03);}
  .work-item{border:1px solid transparent;transition:border-color .4s ease;}
  .work-item:hover{border-color:var(--evergreen);}
  .work-item .work-plus{
    position:absolute;
    bottom:24px;
    right:24px;
    z-index:2;
    width:22px;
    height:22px;
    opacity:0;
    transform:rotate(-50deg) scale(0.3);
    transition:opacity .6s cubic-bezier(.16,.8,.2,1), transform .6s cubic-bezier(.16,.8,.2,1);
    pointer-events:none;
  }
  .work-item:hover .work-plus{
    opacity:0.8;
    transform:rotate(0deg) scale(1);
  }
  .work-item .overlay{
    position:absolute;inset:0;
    padding:28px 28px 8px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    background:linear-gradient(0deg, rgba(18,18,18,0.85) 0%, transparent 55%);
  }
  @media (max-width:760px){
    .work-item .overlay{
      padding:20px 20px 8px;
      background:linear-gradient(0deg, rgba(18,18,18,0.92) 0%, rgba(18,18,18,0.7) 42%, transparent 75%);
    }
  }
  .work-item .proj-coord{
    font-size:11px;
    letter-spacing:0.08em;
    color:var(--stone);
    margin-bottom:8px;
  }
  .work-item h3{
    font-size:1.5rem;
    margin-bottom:6px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .work-item h3 .title-arrow{
    display:inline-flex;
    transform:translateX(-6px);
    opacity:0;
    transition:transform .4s cubic-bezier(.16,.8,.2,1), opacity .4s ease;
  }
  .work-item:hover h3 .title-arrow{
    transform:translateX(0);
    opacity:1;
  }
  .work-item .proj-tag{
    font-size:12px;
    color:var(--stone);
    letter-spacing:0.08em;
    text-transform:uppercase;
  }

  /* ---------- CLIENTS MARQUEE ---------- */
  .clients-section{
    padding:32px 0;
    overflow:hidden;
  }
  .clients-label{
    display:block;
    width:100%;
    box-sizing:border-box;
    text-align:center;
    color:var(--stone);
    margin-bottom:40px;
    padding:0 56px;
  }
  .marquee-track{
    display:flex;
    width:max-content;
    gap:80px;
    will-change:transform;
  }
  .client-logo-box{
    height:52px;
    width:160px;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:visible;
  }
  .marquee-track .client-logo-img{
    max-height:100%;
    max-width:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    opacity:1;
  }
  .marquee-track .client-logo-img.logo-boost{
    transform:scale(1.4);
  }
  @media (max-width:700px){
    .clients-label{padding:0 24px;}
    .client-logo-box{height:34px;width:96px;}
    .marquee-track{gap:36px;}
  }

  /* ---------- TESTIMONIALS ---------- */
  .testimonial-section{
    background:linear-gradient(180deg, var(--charcoal) 0, var(--graphite) 120px, var(--graphite) calc(100% - 120px), var(--charcoal) 100%);
    overflow:hidden;
  }
  .testimonial-topo-img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0.03;
    pointer-events:none;
    z-index:0;
    -webkit-mask-image:linear-gradient(180deg, transparent 0, black 120px, black calc(100% - 120px), transparent 100%);
    mask-image:linear-gradient(180deg, transparent 0, black 120px, black calc(100% - 120px), transparent 100%);
  }
  .testimonial-section > *:not(.testimonial-topo-img):not(.coord-tag){
    position:relative;
    z-index:1;
  }
  .testimonial-section .section-head{
    margin-bottom:24px;
  }
  .testimonial-nav{
    display:flex;
    align-items:center;
    gap:14px;
    flex-shrink:0;
  }
  .carousel-counter{
    font-size:12px;
    letter-spacing:0.08em;
    color:var(--stone);
    font-variant-numeric:tabular-nums;
  }
  .carousel-arrow{
    width:38px;
    height:38px;
    border-radius:50%;
    border:1px solid var(--slate);
    background:none;
    color:var(--warm-white);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:border-color .3s ease, color .3s ease;
  }
  .carousel-arrow:hover{
    border-color:var(--evergreen);
    color:var(--evergreen);
    filter:brightness(1.6);
  }
  .carousel-arrow svg{width:16px;height:16px;}
  .testimonial-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0;
    align-items:start;
  }
  @media (max-width:900px){
    .testimonial-grid{grid-template-columns:1fr;}
    .testimonial-card:nth-child(2), .testimonial-card:nth-child(3){display:none;}
  }
  .testimonial-card{
    background:transparent;
    padding:32px 28px;
    display:flex;
    flex-direction:column;
    transition:opacity .35s ease, transform .35s ease;
  }
  .testimonial-card.is-transitioning{
    opacity:0;
    transform:translateY(10px);
  }
  .testimonial-mark{
    font-family:'adobe-caslon-pro','Cormorant Garamond',serif;
    font-size:2.4rem;
    color:var(--evergreen);
    filter:brightness(1.6);
    line-height:1;
    margin-bottom:8px;
  }
  .testimonial-quote-wrap{
    overflow:hidden;
    transition:max-height .5s cubic-bezier(.25,.1,.25,1);
  }
  .testimonial-quote{
    font-family:'adobe-caslon-pro','Cormorant Garamond',serif;
    font-size:1.15rem;
    line-height:1.55;
    color:var(--warm-white);
    display:-webkit-box;
    -webkit-line-clamp:4;
    -webkit-box-orient:vertical;
    overflow:hidden;
    min-height:6.2em;
  }
  .testimonial-quote.is-expanded{
    -webkit-line-clamp:unset;
    overflow:visible;
    display:block;
  }
  .testimonial-toggle{
    display:none;
    margin-top:6px;
    background:none;
    border:none;
    padding:0;
    font-family:'neue-haas-grotesk-text','Inter',sans-serif;
    font-size:12px;
    letter-spacing:0.04em;
    color:var(--evergreen);
    filter:brightness(1.6);
    cursor:pointer;
    text-decoration:underline;
    text-underline-offset:3px;
  }
  .testimonial-toggle:hover{
    filter:brightness(2);
  }
  .testimonial-toggle.is-visible{
    display:inline-block;
  }
  .testimonial-attr{
    margin-top:18px;
    padding-top:14px;
    display:flex;
    align-items:center;
    gap:14px;
  }
  .testimonial-avatar{
    width:44px;
    height:44px;
    border-radius:50%;
    flex-shrink:0;
    background:var(--slate);
    overflow:hidden;
  }
  .testimonial-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .testimonial-attr .name{font-size:14px;color:var(--warm-white);}
  .testimonial-attr .role{font-size:12px;color:var(--stone);letter-spacing:0.06em;text-transform:uppercase;margin-top:4px;}

  /* ---------- ABOUT ---------- */
  /* ---------- ABOUT: MASKED TYPE REVEALS ---------- */
  .mask-reveal-wrap{
    display:block;
    overflow:hidden;
  }
  .mask-reveal-inner{
    display:block;
    transform:translateY(32px);
    opacity:0;
    transition:transform .9s cubic-bezier(.16,1,.3,1), opacity .9s ease;
  }
  .page-hero-reveal.visible .mask-reveal-inner{
    transform:translateY(0);
    opacity:1;
  }
  .about-wrap.visible .about-statement .mask-reveal-inner{
    transform:translateY(0);
    opacity:1;
  }
  .founder-copy.visible .mask-reveal-inner{
    transform:translateY(0);
    opacity:1;
    transition-delay:.15s;
  }

  .about-eyebrow{
    opacity:0;
    transform:translateY(10px);
    transition:opacity .6s ease, transform .6s ease;
  }
  .page-hero-reveal.visible .about-eyebrow{
    opacity:1;
    transform:translateY(0);
  }
  .page-hero-reveal.visible .mask-reveal-inner{
    transition-delay:.15s;
  }

  .about-support p{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .7s ease, transform .7s cubic-bezier(.25,.1,.25,1);
  }
  .about-wrap.visible .about-support p{
    opacity:1;
    transform:translateY(0);
  }
  .about-wrap.visible .about-support p:nth-child(1){transition-delay:.25s;}
  .about-wrap.visible .about-support p:nth-child(2){transition-delay:.35s;}

  .founder-copy .label{
    opacity:0;
    transform:translateY(10px);
    transition:opacity .6s ease, transform .6s ease;
  }
  .founder-copy.visible .label{
    opacity:1;
    transform:translateY(0);
  }
  .founder-copy p{
    opacity:0;
    transform:translateY(16px);
    transition:opacity .7s ease, transform .7s cubic-bezier(.25,.1,.25,1);
    transition-delay:.35s;
  }
  .founder-copy.visible p{
    opacity:1;
    transform:translateY(0);
  }

  @media (prefers-reduced-motion: reduce){
    .mask-reveal-inner,
    .about-eyebrow,
    .about-support p,
    .founder-copy .label,
    .founder-copy p{
      transition:opacity .3s ease !important;
      transform:none !important;
      opacity:1 !important;
    }
  }

  .about-wrap{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:80px;
    align-items:start;
  }
  @media (min-width:761px){
    .about-wrap{gap:64px;}
  }
  @media (max-width:900px){
    .about-wrap{grid-template-columns:1fr;gap:48px;}
  }
  .about-wrap p{
    font-size:1.15rem;
    line-height:1.85;
    color:var(--stone);
    margin-bottom:24px;
  }
  .about-wrap p:first-child{
    color:var(--warm-white);
    font-size:1.35rem;
    font-family:'adobe-caslon-pro','Cormorant Garamond',serif;
    line-height:1.6;
  }
  .elevation-list{
  }
  .elevation-item{
    display:flex;
    justify-content:space-between;
    padding:20px 0;
    font-size:14px;
    border-bottom:1px solid var(--slate);
    opacity:0;
    transform:translateY(12px);
    transition:opacity .5s ease, transform .5s cubic-bezier(.25,.1,.25,1), border-color .4s ease;
  }
  .about-wrap.visible .elevation-item{
    opacity:1;
    transform:translateY(0);
  }
  .about-wrap.visible .elevation-item:nth-child(1){transition-delay:.45s;}
  .about-wrap.visible .elevation-item:nth-child(2){transition-delay:.53s;}
  .about-wrap.visible .elevation-item:nth-child(3){transition-delay:.61s;}
  .about-wrap.visible .elevation-item:nth-child(4){transition-delay:.69s;}
  .elevation-item:hover{
    border-bottom-color:var(--evergreen);
  }
  .elevation-item .label{color:var(--stone);}
  .elevation-item .val{
    display:inline-block;
    font-family:'neue-haas-grotesk-text',monospace;
    color:var(--evergreen);
    filter:brightness(1.6);
    transition:transform .4s cubic-bezier(.25,.1,.25,1), filter .4s ease;
  }
  .elevation-item:hover .val{
    transform:translateX(5px);
    filter:brightness(2.1);
  }
  @media (prefers-reduced-motion: reduce){
    .elevation-item{
      transition:opacity .3s ease !important;
      transform:none !important;
      opacity:1 !important;
    }
    .elevation-item .val{transition:none !important;}
    .elevation-item:hover .val{transform:none !important;}
  }
  @media (max-width:900px){
    .elevation-item{transform:translateY(8px);}
  }

  /* ---------- ABOUT: FOUNDER SECTION ---------- */
  .founder-wrap{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:80px;
    align-items:center;
  }
  @media (max-width:900px){
    .founder-wrap{grid-template-columns:1fr;gap:40px;}
  }
  .founder-copy h2{
    font-family:'adobe-caslon-pro','Cormorant Garamond',serif;
    font-size:clamp(2rem, 4vw, 3rem);
    color:var(--warm-white);
    margin:16px 0 24px;
  }
  .founder-copy p{
    font-size:1.05rem;
    line-height:1.8;
    color:var(--stone);
    max-width:480px;
  }

  .founder-portrait-mask{
    position:relative;
    overflow:hidden;
    aspect-ratio:4/5;
    clip-path:inset(100% 0 0 0);
    transition:clip-path 1.05s cubic-bezier(.16,1,.3,1);
  }
  .founder-portrait-mask.visible{
    clip-path:inset(0 0 0 0);
  }
  .founder-portrait-img{
    position:absolute;
    inset:0;
    width:100%;
    height:112%;
    object-fit:cover;
    transform:scale(1.03) translateY(0px);
    filter:grayscale(1) brightness(.78) contrast(.85);
    transition:transform 1.05s cubic-bezier(.16,1,.3,1), filter 1.05s ease;
  }
  .founder-portrait-mask.visible .founder-portrait-img{
    transform:scale(1) translateY(var(--depth-y, 0px));
    filter:grayscale(1) brightness(1) contrast(1);
  }
  .founder-portrait-mask.visible .founder-portrait-img:hover{
    transition:transform .9s cubic-bezier(.25,.1,.25,1);
    transform:scale(1.02) translateY(var(--depth-y, 0px));
  }
  @media (hover:none), (pointer:coarse){
    .founder-portrait-mask.visible .founder-portrait-img:hover{
      transform:scale(1) translateY(var(--depth-y, 0px));
    }
  }
  @media (prefers-reduced-motion: reduce){
    .founder-portrait-mask{
      clip-path:none !important;
      transition:none !important;
    }
    .founder-portrait-img{
      transform:none !important;
      filter:grayscale(1) !important;
      transition:none !important;
    }
  }

  .cta-close-section{
    background:var(--charcoal);
    padding:36px 56px;
  }
  .cta-close-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
  }
  .cta-close-inner{
    max-width:560px;
  }
  .cta-close-headline{
    font-family:'adobe-caslon-pro','Cormorant Garamond',serif;
    font-size:clamp(3rem, 6vw, 5.4rem);
    line-height:1.1;
    letter-spacing:-0.01em;
    color:var(--warm-white);
    margin:16px 0 44px;
    transition:color .4s ease;
  }
  .cta-close-inner:has(.cta-close-link:hover) .cta-close-headline{
    color:#FFFFFF;
  }
  .cta-close-link{
    display:inline-flex;
    align-items:center;
    gap:14px;
    color:var(--warm-white);
    transition:opacity .3s ease;
  }
  .cta-close-link:hover{
    opacity:0.7;
  }
  .cta-close-link svg{
    transition:transform .3s ease;
  }
  .cta-close-link:hover svg{
    transform:translateX(6px);
  }

  @media (max-width:900px){
    .cta-close-grid{
      grid-template-columns:1fr;
    }
    .cta-close-inner{
      max-width:100%;
    }
  }

  @media (max-width:700px){
    .cta-close-section{
      padding:32px 24px;
    }
  }

  .contact-inner{
    max-width:700px;
  }
  .contact-inner h1, .contact-inner h2{
    font-size:clamp(2rem,4.5vw,3.4rem);
    line-height:1.2;
    margin-bottom:36px;
  }
  .contact-links{
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .contact-links a{
    font-size:1.1rem;
    display:inline-flex;
    align-items:center;
    gap:14px;
    width:fit-content;
    padding-bottom:6px;
    border-bottom:1px solid var(--slate);
  }
  .contact-links a:hover{color:var(--evergreen);filter:brightness(1.6);border-color:var(--evergreen);}

  footer{
    padding:0;
    background:var(--evergreen);
    position:relative;
    overflow:hidden;
  }
  .footer-topo-svg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0.05;
    pointer-events:none;
    z-index:0;
  }
  .footer-topo-svg path{
    fill:none;
    stroke:#fff;
    transition:stroke-dashoffset 4.5s cubic-bezier(.25,.1,.25,1);
  }
  footer > *:not(.footer-topo-svg){
    position:relative;
    z-index:1;
  }
  .footer-main{
    display:grid;
    grid-template-columns:1.4fr 0.6fr 1fr;
    gap:24px;
    padding:24px 56px 12px;
    align-items:center;
  }
  .footer-mark-img{
    height:32px;
    width:auto;
    margin-bottom:10px;
  }
  .footer-brand p{
    max-width:300px;
    font-size:13px;
    line-height:1.6;
    color:var(--stone);
  }
  .footer-links{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .footer-links a{
    font-size:13px;
    color:var(--warm-white);
  }
  .footer-links a:hover{color:var(--evergreen);filter:brightness(1.6);}
  .footer-contact .label{color:var(--evergreen);filter:brightness(1.6);margin-bottom:10px;}
  .footer-contact a{
    display:block;
    font-size:13px;
    color:var(--warm-white);
    margin-bottom:4px;
  }
  .footer-contact a:hover{color:var(--evergreen);filter:brightness(1.6);}
  .footer-social{
    display:flex;
    gap:10px;
    margin-top:10px;
  }
  .footer-social a{
    width:28px;
    height:28px;
    border-radius:50%;
    border:1px solid var(--slate);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--stone);
    transition:border-color .3s ease, color .3s ease;
  }
  .footer-social a:hover{
    border-color:var(--evergreen);
    color:var(--evergreen);
    filter:brightness(1.6);
  }
  .footer-social svg{width:13px;height:13px;}
  .footer-bottom{
    padding:10px 56px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:11px;
    letter-spacing:0.06em;
    color:var(--stone);
  }
  .footer-bottom-links{
    display:flex;
    gap:10px;
  }
  .footer-bottom-links a{color:var(--stone);}
  .footer-bottom-links a:hover{color:var(--evergreen);filter:brightness(1.6);}
  @media (max-width:760px){
    .footer-main{grid-template-columns:1fr;gap:24px;padding:40px 24px 24px;}
    .footer-bottom{padding:16px 24px;flex-direction:column;gap:12px;text-align:center;}
  }

  ::selection{background:var(--evergreen);color:var(--warm-white);}

  /* focus visibility */
  a:focus-visible, button:focus-visible{
    outline:1px solid var(--evergreen);
    outline-offset:4px;
  }

  /* scroll reveal */
  .reveal{
    opacity:0;
    transform:translateY(24px);
    transition:opacity .8s ease, transform .8s ease;
  }
  .reveal.visible{opacity:1;transform:translateY(0);}

  /* nav active state */
  .nav-links a.active{color:var(--evergreen);filter:brightness(1.7);}
  .nav-links a.active::after{width:100%;}

  /* page hero (non-video interior pages) */
  .page-hero{
    padding:120px 56px 64px;
  }
  .page-hero .label{color:var(--evergreen);filter:brightness(1.6);}
  @media (min-width:761px){
    .about-intro-section{
      padding:80px 56px;
    }
    .about-founder-section{
      padding:60px 56px 130px;
    }
  }
  .page-hero h1{
    font-size:clamp(2.4rem,5vw,4rem);
    margin-top:14px;
    max-width:700px;
  }
  .page-hero p{
    margin-top:20px;
    max-width:520px;
    color:var(--stone);
    font-size:16px;
    line-height:1.7;
  }
  @media (max-width:760px){
    .page-hero{padding:100px 24px 48px;}
  }

  /* ---------- PROJECT PAGE ---------- */
  .project-video-wrap{
    position:relative;
    width:100%;
    padding-top:56.25%; /* 16:9 */
    background:var(--charcoal);
    overflow:hidden;
  }
  .project-video-wrap--compact{
    max-width:1100px;
    margin:0 auto;
  }
  .project-video-wrap iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:none;
  }
  .project-writeup{
    max-width:720px;
    margin:0 auto;
  }
  .project-writeup p{
    font-size:1.1rem;
    line-height:1.75;
    color:var(--stone);
    margin-bottom:16px;
  }
  .project-writeup p:first-child{
    color:var(--warm-white);
    font-size:1.35rem;
    font-family:'adobe-caslon-pro','Cormorant Garamond',serif;
    line-height:1.6;
  }
  .stills-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-auto-rows:1px;
    column-gap:2px;
    row-gap:0;
    align-items:start;
  }
  @media (max-width:760px){
    .stills-grid{
      grid-template-columns:1fr;
      grid-auto-rows:auto;
      row-gap:2px;
    }
    .stills-grid .still-item{grid-row-end:auto !important;}
  }
  .still-item{
    background:
      radial-gradient(circle at 30% 30%, rgba(67,82,68,0.35), transparent 60%),
      linear-gradient(160deg, #1c1f1c 0%, #141514 100%);
    overflow:hidden;
    line-height:0;
  }
  .still-item img{
    width:100%;
    height:auto;
    display:block;
  }
  .back-link{
    display:inline-flex;
    align-items:center;
    gap:12px;
  }
  .back-link svg{transform:rotate(180deg);transition:transform .3s ease;}
  .back-link:hover{color:var(--evergreen);filter:brightness(1.6);}
  .back-link:hover svg{transform:rotate(180deg) translateX(6px);}
  .project-top-back-wrap{
    padding:104px 56px 0;
  }
  @media (max-width:760px){
    .project-top-back-wrap{padding:84px 24px 0;}
  }

  /* teaser link */
  .view-all{
    display:inline-flex;
    align-items:center;
    gap:12px;
    margin-top:48px;
  }
  .view-all svg{transition:transform .3s ease;}
  .view-all:hover svg{transform:translateX(6px);}
  .view-all:hover{color:var(--evergreen);filter:brightness(1.6);}

  /* ---------- SOCIAL GRID ---------- */
  .social-subfilter{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin-bottom:20px;
  }
  .social-filter-toggle{
    background:none;
    border:none;
    padding:0;
    font-family:'neue-haas-grotesk-text','Inter',sans-serif;
    font-size:10px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--stone);
    opacity:0.6;
    cursor:pointer;
    transition:color .3s ease, opacity .3s ease;
  }
  .social-filter-toggle.active{color:var(--stone);opacity:1;}
  .social-filter-toggle:hover{color:var(--evergreen);filter:brightness(1.6);opacity:1;}

  .social-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:6px;
  }
  .social-grid-more{margin-top:6px;}
  @media (max-width:1100px){
    .social-grid{grid-template-columns:repeat(4,1fr);}
  }
  @media (max-width:800px){
    .social-grid{grid-template-columns:repeat(3,1fr);}
  }
  @media (max-width:520px){
    .social-grid{grid-template-columns:repeat(2,1fr);gap:4px;}
  }

  .social-post{
    position:relative;
    display:block;
    width:100%;
    aspect-ratio:9/16;
    background:var(--graphite);
    border:none;
    padding:0;
    margin:0;
    overflow:hidden;
    cursor:pointer;
    transition:opacity .4s ease, transform .4s ease;
  }
  .social-post.is-filtered-out{
    display:none;
  }
  .social-post img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
  }
  .social-post:hover img{
    transform:scale(1.04);
  }
  .social-post-scrim{
    position:absolute;
    inset:0;
    background:linear-gradient(0deg, rgba(18,18,18,0.82) 0%, transparent 42%);
    pointer-events:none;
  }
  .social-post-caption{
    position:absolute;
    left:10px;
    right:10px;
    bottom:10px;
    font-size:11px;
    line-height:1.4;
    color:var(--warm-white);
    text-align:left;
    opacity:0.92;
  }
  .social-type-icon{
    position:absolute;
    top:10px;
    right:10px;
    color:var(--warm-white);
    opacity:0.85;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,0.5));
  }
  .social-post-dots{
    position:absolute;
    left:0;
    right:0;
    bottom:32px;
    display:flex;
    justify-content:center;
    gap:4px;
  }
  .social-post-dots span{
    width:4px;
    height:4px;
    border-radius:50%;
    background:rgba(244,243,239,0.4);
  }
  .social-post-dots span.is-active{
    background:var(--warm-white);
  }

  .social-load-more-wrap{
    display:flex;
    justify-content:center;
    margin-top:40px;
  }
  .social-load-more{
    background:none;
    border:1px solid var(--slate);
    color:var(--stone);
    padding:13px 30px;
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    cursor:pointer;
    transition:border-color .3s ease, color .3s ease;
  }
  .social-load-more:hover{
    border-color:var(--evergreen);
    color:var(--warm-white);
  }
  .social-load-more.is-hidden{display:none;}

  /* ---------- SOCIAL LIGHTBOX ---------- */
  .social-lightbox{
    position:fixed;
    inset:0;
    z-index:500;
    display:none;
    align-items:center;
    justify-content:center;
    pointer-events:none;
  }
  .social-lightbox.is-visible{
    display:flex;
    pointer-events:auto;
  }
  .social-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(18,18,18,0);
    backdrop-filter:blur(0px);
    -webkit-backdrop-filter:blur(0px);
    transition:background .5s cubic-bezier(.25,.1,.25,1), backdrop-filter .5s cubic-bezier(.25,.1,.25,1);
  }
  .social-lightbox.is-open .social-lightbox-backdrop{
    background:rgba(18,18,18,0.55);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
  }
  .social-lightbox-close{
    position:absolute;
    top:24px;
    right:24px;
    z-index:2;
    background:none;
    border:none;
    color:var(--warm-white);
    opacity:0.8;
    cursor:pointer;
    padding:8px;
    transition:opacity .3s ease, transform .3s ease;
  }
  .social-lightbox-close:hover{opacity:1;transform:rotate(90deg);}
  .social-lightbox-stage{
    position:fixed;
    z-index:1;
    overflow:hidden;
  }
  .social-lightbox-stage.is-loading::after{
    content:'';
    position:absolute;
    bottom:14px;
    right:14px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--stone);
    animation:terrainLoadPulse 1.1s ease-in-out infinite;
    pointer-events:none;
  }
  @keyframes terrainLoadPulse{
    0%, 100%{ opacity:0.25; }
    50%{ opacity:0.8; }
  }
  .social-lightbox-media{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
  }
  .social-lightbox-media img,
  .social-lightbox-media iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    border:none;
  }
  .social-lightbox-media .social-video-frame{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
  }
  .social-lightbox-media .social-video-frame img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  }
  .social-lightbox-media .social-video-frame iframe{
    position:absolute;inset:0;width:100%;height:100%;
  }
  .social-lightbox-media .social-video-frame .social-play-btn{
    position:absolute;
    inset:0;
    margin:auto;
    width:56px;
    height:56px;
    border-radius:50%;
    background:rgba(18,18,18,0.55);
    border:1px solid rgba(244,243,239,0.5);
    color:var(--warm-white);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:background .3s ease;
  }
  .social-lightbox-media .social-video-frame .social-play-btn:hover{
    background:var(--evergreen);
  }
  .social-lightbox-nav{
    position:fixed;
    top:50%;
    transform:translateY(-50%);
    z-index:2;
    background:none;
    border:none;
    color:var(--warm-white);
    opacity:0.8;
    cursor:pointer;
    padding:14px;
    transition:opacity .3s ease;
  }
  .social-lightbox-nav:hover{opacity:1;}
  .social-lightbox-prev{left:24px;}
  .social-lightbox-next{right:24px;}
  @media (max-width:900px){
    .social-lightbox-prev{left:8px;}
    .social-lightbox-next{right:8px;}
  }
  .social-lightbox-dots{
    position:fixed;
    left:0;
    right:0;
    bottom:28px;
    z-index:2;
    display:flex;
    justify-content:center;
    gap:6px;
  }
  .social-lightbox-dots span{
    width:5px;
    height:5px;
    border-radius:50%;
    background:rgba(244,243,239,0.35);
    transition:background .3s ease;
  }
  .social-lightbox-dots span.is-active{background:var(--warm-white);}
  .social-lightbox-caption{
    position:absolute;
    bottom:36px;
    left:0;
    right:0;
    max-width:520px;
    margin:0 auto;
    padding:0 24px;
    text-align:center;
    font-size:14px;
    line-height:1.7;
    color:var(--stone);
    opacity:0;
    transition:opacity .4s ease;
    transition-delay:.2s;
  }
  .social-lightbox.is-open .social-lightbox-caption{opacity:1;}

  @media (prefers-reduced-motion:reduce){
    .social-lightbox-backdrop,
    .social-lightbox-stage,
    .social-lightbox-caption,
    .social-post,
    .social-post img{
      transition:opacity .2s ease !important;
      transform:none !important;
    }
    .social-lightbox-stage.is-loading::after{
      animation:none !important;
      opacity:0.5;
    }
  }
