@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Cormorant+Garamond:ital,wght@1,500;1,600;1,700&family=IBM+Plex+Mono:wght@500;600&display=swap');

  :root{
    --bg:#0a0a0b;
    --surface:#141215;
    --surface-2:#1b171a;
    --text:#f4f1ef;
    --text-muted:#9c9296;
    --text-dim:#5f5a5d;
    --accent:#e2352a;
    --accent-soft:#7a2019;
    --line:#2a2427;
    --mono: 'IBM Plex Mono', ui-monospace, monospace;
    --display: 'Manrope', ui-sans-serif, sans-serif;
    --body: 'Manrope', ui-sans-serif, sans-serif;
    --accent-serif: 'Cormorant Garamond', Georgia, serif;
  }

  *{box-sizing:border-box;}
  html{color-scheme:dark;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#0a0a0b;overflow-x:hidden;width:100%;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:var(--body);
    -webkit-font-smoothing:antialiased;
    padding-inline:clamp(20px,6vw,72px);
    overflow-x:hidden;
    width:100%;
    max-width:100vw;
  }
  img{max-width:100%;display:block;}

  h1,h2,h3{
    font-family:var(--display);
    font-weight:700;
    text-wrap:balance;
    margin:0;
    letter-spacing:-0.02em;
    color:var(--text);
  }
  h1{letter-spacing:-0.03em;}
  h3{font-weight:600;letter-spacing:-0.01em;}
  h1 em,h2 em,h3 em{font-size:1.05em;}
  p{margin:0;color:var(--text-muted);font-weight:400;line-height:1.65;}

  a{color:inherit;}

  .eyebrow{
    font-family:var(--mono);
    font-size:0.72rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--accent);
  }

  .wrap{max-width:1180px;margin-inline:auto;}

  /* ---------- header ---------- */
  header{
    position:sticky;top:0;z-index:50;
    display:flex;align-items:center;justify-content:space-between;
    padding-block:18px;
    background:linear-gradient(var(--bg) 78%, transparent);
    max-width:1180px;margin-inline:auto;
  }
  .brand{display:flex;align-items:center;gap:10px;}
  .brand img{height:clamp(40px,5.6vw,62px);width:auto;filter:brightness(0) invert(1);}
  .brand-mark{height:clamp(48px,7vw,78px) !important;filter:none !important;}
  nav{display:flex;align-items:center;gap:clamp(16px,3vw,34px);}
  nav a{
    font-family:var(--body);font-weight:500;
    font-size:0.86rem;color:var(--text-muted);text-decoration:none;
    transition:color .15s ease;
  }
  nav a:hover{color:var(--text);}
  .btn{
    font-family:var(--body);
    font-weight:600;
    font-size:0.86rem;
    color:#0a0a0b;
    background:var(--accent);
    border:none;
    padding:11px 20px;
    cursor:pointer;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:8px;
    clip-path:polygon(0 0,100% 0,100% 70%,92% 100%,0 100%);
    transition:filter .15s ease, transform .15s ease;
  }
  .btn:hover{filter:brightness(1.12);transform:translateY(-1px);}
  .btn.ghost{
    background:transparent;color:var(--text);
    border:1px solid var(--line);
    clip-path:none;
  }
  .nav-cta{display:none;}
  @media (min-width:760px){ .nav-cta{display:inline-flex;} }

  /* ---------- photo banner ---------- */
  .photo-banner{
    position:relative;
    width:100%;
    max-width:100vw;
    height:clamp(300px,42vw,440px);
    overflow:hidden;
    background:#0a0a0b;
    contain:layout paint;
  }
  .photo-banner-track{
    position:absolute;inset:0;
    display:flex;
    width:max-content;
    animation:photoScroll 32s linear infinite;
  }
  .photo-banner:hover .photo-banner-track{animation-play-state:paused;}
  @keyframes photoScroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  .photo-banner-item{
    flex:none;
    width:clamp(200px,24vw,320px);
    height:100%;
    position:relative;
  }
  .photo-banner-item img{
    width:100%;height:100%;object-fit:cover;display:block;
    filter:grayscale(.8) brightness(.22) contrast(1.1);
    opacity:.5;
  }
  .photo-banner::after{
    content:'';position:absolute;inset:0;z-index:1;
    background:linear-gradient(180deg, rgba(10,10,11,.6), rgba(10,10,11,.88) 58%, rgba(10,10,11,.97));
    pointer-events:none;
  }
  .photo-banner-content{
    position:absolute;inset:0;z-index:2;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;gap:16px;padding:24px;
  }
  .photo-banner-content img{
    height:clamp(34px,4vw,46px);width:auto;
    filter:brightness(0) invert(1);
    margin-bottom:2px;
  }
  .photo-banner-content h2{
    font-size:clamp(1.15rem,2.5vw,1.85rem);line-height:1.35;
    max-width:820px;color:var(--text);font-weight:700;
  }
  .photo-banner-content h2 strong{color:var(--accent);}
  .photo-banner-content p{
    font-size:0.92rem;color:var(--text-muted);max-width:520px;line-height:1.65;
  }
  @media (prefers-reduced-motion: reduce){
    .photo-banner-track{animation:none;}
  }
  @media (max-width:640px){
    .photo-banner{height:clamp(340px,90vw,460px);}
  }

  /* ---------- hero ---------- */
  .hero{
    padding-block:clamp(48px,9vw,88px) clamp(48px,8vw,80px);
    position:relative;
  }
  .hero-layout{
    display:grid;
    grid-template-columns:0.95fr 1.05fr;
    gap:clamp(28px,5vw,56px);
    align-items:stretch;
  }
  @media (max-width:900px){ .hero-layout{grid-template-columns:1fr;} }

  .hero-tag{
    display:flex;align-items:center;gap:10px;
    font-family:var(--mono);font-size:0.72rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--text-muted);
    margin-bottom:20px;
  }
  .hero-tag::before{content:"";width:22px;height:1px;background:var(--text-dim);display:inline-block;}

  .hero-title{
    display:flex;flex-direction:column;
    font-size:clamp(2.2rem,4.6vw,3.5rem);
    font-weight:800;
    line-height:1.1;
    letter-spacing:-0.03em;
    margin:0 0 22px;
  }
  .hero-title .accent-line{
    font-family:var(--accent-serif);font-style:italic;font-weight:600;color:var(--accent);
    font-size:1.18em;
    margin-top:0.12em;
  }

  .hero-desc{font-size:1.02rem;line-height:1.6;max-width:46ch;margin-bottom:30px;color:rgba(244,241,239,.72);}

  .hero-cta-row{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-bottom:clamp(36px,6vw,56px);}
  .btn-solid{
    font-family:var(--body);font-weight:600;font-size:0.86rem;letter-spacing:0;
    text-transform:none;
    background:var(--text);color:var(--bg);
    padding:15px 22px;text-decoration:none;
    display:inline-flex;align-items:center;gap:10px;
    transition:filter .15s ease, transform .15s ease;
  }
  .btn-solid:hover{filter:brightness(.92);transform:translateY(-1px);}
  .btn-link{
    font-family:var(--body);font-weight:600;font-size:0.86rem;letter-spacing:0;
    text-transform:none;color:var(--text-muted);text-decoration:none;
    display:inline-flex;align-items:center;gap:8px;
    border-bottom:1px solid var(--line);padding-bottom:3px;
    transition:color .15s ease,border-color .15s ease;
  }
  .btn-link:hover{color:var(--text);border-color:var(--text-dim);}

  .hero-specs{display:flex;}
  .spec{
    flex:1;padding-right:20px;border-right:1px solid var(--line);
    display:flex;flex-direction:column;gap:6px;
  }
  .spec:last-child{border-right:none;padding-right:0;}
  .spec + .spec{padding-left:20px;}
  .spec-val{font-family:var(--display);font-weight:700;font-size:clamp(1.2rem,2.4vw,1.5rem);}
  .spec-label{font-family:var(--mono);font-weight:500;font-size:0.68rem;letter-spacing:0.06em;color:var(--text-dim);line-height:1.4;}

  .hero-visual{display:flex;gap:14px;min-height:560px;}
  .visual-card{
    position:relative;flex:1;
    background:#0d0b0c;
    border:1px solid var(--line);
    overflow:hidden;
    display:flex;flex-direction:column;justify-content:space-between;
    padding:18px 20px;
    min-height:460px;
  }
  @media (max-width:900px){
    .hero-visual{min-height:480px;}
    .visual-card{min-height:420px;}
  }
  .visual-photo{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;object-position:50% 22%;
    filter:grayscale(.25) contrast(1.05);
    z-index:0;
    transition:filter .1s linear;
  }
  .scroll-cue{
    position:absolute;left:50%;bottom:18px;z-index:3;
    transform:translateX(-50%);
    display:flex;flex-direction:column;align-items:center;gap:8px;
    font-family:var(--mono);font-size:0.6rem;letter-spacing:0.1em;
    text-transform:uppercase;color:var(--text-muted);
    opacity:1;
    transition:opacity .3s ease;
    pointer-events:none;
  }
  .scroll-mouse{
    width:22px;height:36px;
    border:2px solid rgba(244,241,239,.55);
    border-radius:13px;
    position:relative;
  }
  .scroll-dot{
    position:absolute;top:6px;left:50%;
    width:4px;height:8px;border-radius:2px;
    background:var(--accent);
    transform:translateX(-50%);
    animation:scrollDot 1.8s ease-in-out infinite;
  }
  @keyframes scrollDot{
    0%{ top:6px; opacity:1; }
    70%{ top:20px; opacity:0; }
    100%{ top:6px; opacity:0; }
  }
  @media (prefers-reduced-motion: reduce){
    .scroll-dot{animation:none;}
  }
  .visual-scrim{
    position:absolute;inset:0;
    background:
      linear-gradient(180deg, rgba(10,10,11,.75) 0%, rgba(10,10,11,.05) 26%, rgba(10,10,11,.05) 62%, rgba(10,10,11,.9) 100%),
      linear-gradient(90deg, rgba(226,53,42,.09), transparent 55%);
    z-index:1;
  }
  .visual-top,.visual-bottom-row{
    display:flex;justify-content:space-between;align-items:center;
    font-family:var(--mono);font-weight:500;font-size:0.68rem;letter-spacing:0.13em;
    text-transform:uppercase;color:var(--text-muted);
    position:relative;z-index:2;
  }
  .live-dot{color:var(--accent);display:inline-flex;align-items:center;gap:6px;}
  .live-dot::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);
    box-shadow:0 0 10px var(--accent);animation:pulse 1.6s ease-in-out infinite;}
  @keyframes pulse{50%{opacity:.35;}}

  .corner{position:absolute;width:16px;height:16px;border:1px solid rgba(244,241,239,.35);z-index:2;}
  .corner.tl{top:14px;left:14px;border-right:none;border-bottom:none;}
  .corner.tr{top:14px;right:14px;border-left:none;border-bottom:none;}
  .corner.bl{bottom:14px;left:14px;border-right:none;border-top:none;}
  .corner.br{bottom:14px;right:14px;border-left:none;border-top:none;}

  .visual-bottom{position:relative;z-index:2;}
  .visual-brand{font-family:var(--mono);font-size:0.64rem;letter-spacing:0.08em;color:var(--text-dim);}
  .visual-caption{
    font-family:var(--display);font-weight:600;font-size:1.35rem;color:var(--text);
    margin-top:6px;line-height:1.15;
  }

  .hero-vertical{
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    font-family:var(--mono);font-size:0.66rem;letter-spacing:0.22em;
    text-transform:uppercase;color:var(--text-dim);
    display:flex;align-items:center;justify-content:center;
    gap:14px;white-space:nowrap;
  }
  @media (max-width:900px){ .hero-vertical{display:none;} }

  /* ---------- section shell ---------- */
  section{
    padding-block:clamp(52px,9vw,96px);
    border-top:1px solid var(--line);
  }
  .section-light{
    --bg:#f5f1ef;
    --surface:#ffffff;
    --surface-2:#efe7e5;
    --text:#130b0a;
    --text-muted:#5c5254;
    --text-dim:#8f8688;
    --line:#e0d6d4;
    background:var(--bg);
    border-top-color:transparent;
    box-shadow:0 0 0 100vmax var(--bg);
    clip-path:inset(0 -100vmax);
    position:relative;
  }
  .section-light .btn-solid{background:#0a0a0b;color:#f4f1ef;}
  .section-light .btn-link{color:#5c5254;border-color:#d8cccb;}
  .section-light .btn-link:hover{color:#130b0a;border-color:#8f8688;}

  .section-light > .section-head,
  .section-light > .projects,
  .section-light > .proj-extra,
  .section-light > .proj-more{
    position:relative;z-index:1;
  }
  .section-head{
    display:flex;justify-content:space-between;align-items:flex-end;
    gap:24px;margin-bottom:clamp(32px,5vw,52px);
    flex-wrap:wrap;
  }
  .section-head h2{font-size:clamp(2rem,4.4vw,3.25rem);line-height:1.1;}
  .section-head .note{max-width:34ch;font-size:0.95rem;}

  /* ---------- solutions ---------- */
  .solutions-head{justify-content:center;text-align:center;flex-direction:column;align-items:center;}
  .solutions-head h2{font-size:clamp(2rem,4.4vw,3.25rem);line-height:1.1;max-width:20ch;}
  .solutions-head h2 em{font-family:var(--accent-serif);font-style:italic;font-weight:600;color:var(--accent);}
  .solutions-head .note{max-width:44ch;}
  .solutions{
    display:grid;grid-template-columns:repeat(6,1fr);gap:16px;
    perspective:1400px;
  }
  .solutions .solution:nth-child(1),
  .solutions .solution:nth-child(2),
  .solutions .solution:nth-child(3){grid-column:span 2;}
  .solutions .solution:nth-child(4){grid-column:2 / 4;}
  .solutions .solution:nth-child(5){grid-column:4 / 6;}
  @media (max-width:900px){
    .solutions{grid-template-columns:repeat(2,1fr);}
    .solutions .solution:nth-child(1),
    .solutions .solution:nth-child(2),
    .solutions .solution:nth-child(3),
    .solutions .solution:nth-child(4),
    .solutions .solution:nth-child(5){grid-column:span 1;}
  }
  @media (max-width:760px){ .solutions{grid-template-columns:1fr;} }
  .solution{
    position:relative;
    display:flex;gap:16px;align-items:flex-start;
    border:1px solid rgba(226,53,42,.16);
    border-radius:18px;
    background:
      linear-gradient(155deg, rgba(226,53,42,.10) 0%, rgba(255,255,255,.015) 38%, rgba(0,0,0,.55) 100%),
      rgba(6,5,5,.94);
    backdrop-filter:blur(20px) saturate(150%);
    -webkit-backdrop-filter:blur(20px) saturate(150%);
    padding:22px;
    isolation:isolate;
    overflow:hidden;
    transform-style:preserve-3d;
    will-change:transform;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.09),
      inset 0 0 0 1px rgba(0,0,0,.3),
      0 18px 34px -22px rgba(0,0,0,.85);
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .3s ease, background .3s ease;
  }
  .solution::before{
    content:'';
    position:absolute;inset:0;
    background:linear-gradient(115deg, rgba(255,255,255,.14) 0%, transparent 26%, transparent 72%, rgba(226,53,42,.08) 100%);
    mix-blend-mode:overlay;
    pointer-events:none;
    z-index:1;
  }
  .solution > *{position:relative;z-index:2;}
  .solution:hover{
    border-color:rgba(226,53,42,.6);
    background:
      linear-gradient(155deg, rgba(226,53,42,.18) 0%, rgba(255,255,255,.02) 38%, rgba(0,0,0,.5) 100%),
      rgba(6,5,5,.97);
    transform:translateY(-8px) scale(1.02) rotateX(4deg) rotateY(-4deg);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.14),
      0 30px 50px -18px rgba(226,53,42,.5),
      0 14px 30px -12px rgba(0,0,0,.9);
  }
  .solution{cursor:pointer;}
  .solution:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
  @media (prefers-reduced-motion: reduce){
    .solution{transition:border-color .2s ease, background .2s ease;}
    .solution:hover{transform:none;}
  }
  .sol-icon{
    flex:none;width:42px;height:42px;
    display:flex;align-items:center;justify-content:center;
    background:var(--accent);color:var(--bg);
    border-radius:11px;
    box-shadow:0 8px 16px -6px rgba(226,53,42,.55), inset 0 1px 0 rgba(255,255,255,.3);
  }
  .sol-icon svg{width:22px;height:22px;}

  .service-modal{
    position:fixed;inset:0;z-index:80;
    display:flex;align-items:center;justify-content:center;
    padding:24px;
    opacity:0;pointer-events:none;
    transition:opacity .2s ease;
  }
  .service-modal.open{opacity:1;pointer-events:auto;}
  .service-modal-backdrop{
    position:absolute;inset:0;
    background:rgba(6,5,6,.82);
    backdrop-filter:blur(3px);
  }
  .service-modal-panel{
    position:relative;
    width:100%;max-width:560px;max-height:86vh;min-height:0;overflow-y:auto;overscroll-behavior:contain;
    border-radius:20px;
    border:1px solid rgba(226,53,42,.18);
    background:
      linear-gradient(155deg, rgba(226,53,42,.10) 0%, rgba(255,255,255,.015) 30%, rgba(0,0,0,.6) 100%),
      rgba(6,5,5,.72);
    backdrop-filter:blur(26px) saturate(150%);
    -webkit-backdrop-filter:blur(26px) saturate(150%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.09),
      0 30px 60px -20px rgba(0,0,0,.85);
    padding:40px 34px 34px;
    transform:translateY(14px) scale(.98);
    transition:transform .25s ease;
  }
  .service-modal.open .service-modal-panel{transform:translateY(0) scale(1);}
  .service-modal-close{
    position:absolute;top:16px;right:16px;
    width:36px;height:36px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:var(--surface-2);border:1px solid var(--line);
    color:var(--text-muted);cursor:pointer;
    transition:color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;
  }
  .service-modal-close svg{width:14px;height:14px;}
  .service-modal-close:hover{color:var(--text);border-color:var(--accent-soft);background:var(--surface);}
  .service-modal-close:active{transform:scale(.92);}
  .service-modal-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:52px;height:52px;margin-bottom:18px;
    background:var(--accent);color:var(--bg);
    border-radius:13px;
    box-shadow:0 8px 16px -6px rgba(226,53,42,.55), inset 0 1px 0 rgba(255,255,255,.3);
  }
  .service-modal-icon svg{width:26px;height:26px;}
  .service-modal-tag{
    display:block;
    font-family:var(--mono);font-size:0.66rem;letter-spacing:0.1em;
    text-transform:uppercase;color:var(--accent);margin-bottom:10px;
  }
  .service-modal-panel h3{
    font-family:var(--display);font-size:1.5rem;font-weight:700;
    margin-bottom:14px;line-height:1.15;
  }
  .service-modal-lead{
    font-size:0.95rem;line-height:1.6;color:var(--text-muted);margin-bottom:22px;
  }
  .service-modal-list{
    display:flex;flex-direction:column;gap:10px;margin-bottom:30px;
  }
  .service-modal-list li{
    display:flex;gap:10px;align-items:flex-start;
    font-size:0.88rem;line-height:1.5;color:var(--text);
  }
  .service-modal-list li::before{
    content:'';flex:none;width:6px;height:6px;margin-top:7px;
    background:var(--accent);
    clip-path:polygon(0 0,100% 0,100% 78%,78% 100%,0 100%);
  }
  .service-modal-cta{width:100%;justify-content:center;}
  @media (max-width:520px){
    .service-modal-panel{padding:32px 22px 26px;}
  }

  /* ---------- método (diagrama) ---------- */
  .method-cta{
    display:flex;flex-direction:column;align-items:flex-start;
    max-width:560px;gap:18px;
  }
  .method-eyebrow{
    display:flex;align-items:center;gap:9px;
    font-family:var(--mono);font-size:0.72rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--text-muted);
  }
  .method-dot{
    width:6px;height:6px;border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 10px var(--accent);
    flex:none;
  }
  .method-cta h2{font-size:clamp(1.9rem,3.6vw,2.75rem);line-height:1.15;}
  .method-cta .note{font-size:0.98rem;line-height:1.6;color:var(--text-muted);}

  .method-diagram{
    position:relative;
    width:100%;max-width:640px;aspect-ratio:1/1;
    margin:clamp(48px,8vw,80px) auto 0;
    background-image:radial-gradient(rgba(244,241,239,.09) 1px, transparent 1px);
    background-size:26px 26px;
    -webkit-mask-image:radial-gradient(circle at 50% 50%, #000 60%, transparent 92%);
    mask-image:radial-gradient(circle at 50% 50%, #000 60%, transparent 92%);
    overflow:hidden;
  }
  .method-diagram::before,
  .method-diagram::after{
    content:'';
    position:absolute;
    width:52%;aspect-ratio:1/1;
    border-radius:50%;
    background:radial-gradient(circle, rgba(226,53,42,.4), transparent 70%);
    filter:blur(34px);
    pointer-events:none;
    z-index:0;
  }
  .method-diagram::before{
    top:6%;left:2%;
    animation:methodLight1 10s ease-in-out infinite;
  }
  .method-diagram::after{
    bottom:4%;right:0%;
    animation:methodLight2 12s ease-in-out infinite;
  }
  @keyframes methodLight1{
    0%,100%{ transform:translate(0,0) scale(1); opacity:.45; }
    50%{ transform:translate(14%,10%) scale(1.2); opacity:.85; }
  }
  @keyframes methodLight2{
    0%,100%{ transform:translate(0,0) scale(1); opacity:.35; }
    50%{ transform:translate(-14%,-12%) scale(1.25); opacity:.7; }
  }
  @media (prefers-reduced-motion: reduce){
    .method-diagram::before,.method-diagram::after{animation:none;}
  }
  .method-lights{
    position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none;
    -webkit-mask-image:radial-gradient(circle at 50% 50%, #000 38%, transparent 78%);
    mask-image:radial-gradient(circle at 50% 50%, #000 38%, transparent 78%);
  }
  .method-ray{
    position:absolute;
    width:150%;height:2px;left:-25%;
    background:linear-gradient(90deg, transparent, rgba(226,53,42,.75) 45%, rgba(255,255,255,.5) 50%, rgba(226,53,42,.75) 55%, transparent);
    filter:blur(1.5px);
    opacity:0;
  }
  .method-ray.r1{ top:20%; animation:rayPass1 7s ease-in-out infinite; }
  .method-ray.r2{ top:52%; animation:rayPass2 8.5s ease-in-out infinite 2.4s; }
  .method-ray.r3{ top:80%; animation:rayPass3 9.5s ease-in-out infinite 5s; }
  @keyframes rayPass1{
    0%{ transform:translateX(-55%) rotate(-16deg); opacity:0; }
    18%{ opacity:.85; }
    50%{ transform:translateX(0%) rotate(-16deg); opacity:1; }
    82%{ opacity:.85; }
    100%{ transform:translateX(55%) rotate(-16deg); opacity:0; }
  }
  @keyframes rayPass2{
    0%{ transform:translateX(-55%) rotate(10deg); opacity:0; }
    18%{ opacity:.7; }
    50%{ transform:translateX(0%) rotate(10deg); opacity:.9; }
    82%{ opacity:.7; }
    100%{ transform:translateX(55%) rotate(10deg); opacity:0; }
  }
  @keyframes rayPass3{
    0%{ transform:translateX(-55%) rotate(-7deg); opacity:0; }
    18%{ opacity:.6; }
    50%{ transform:translateX(0%) rotate(-7deg); opacity:.8; }
    82%{ opacity:.6; }
    100%{ transform:translateX(55%) rotate(-7deg); opacity:0; }
  }
  .method-dust{
    position:absolute;
    width:3px;height:3px;border-radius:50%;
    background:rgba(255,210,205,.95);
    box-shadow:0 0 7px 2px rgba(226,53,42,.75);
    opacity:0;
  }
  .method-dust.dA{ animation-name:dustFloatA; }
  .method-dust.dB{ animation-name:dustFloatB; }
  .method-dust{ animation-duration:6.5s; animation-timing-function:ease-in-out; animation-iteration-count:infinite; }
  @keyframes dustFloatA{
    0%{ transform:translate(0,0) scale(.6); opacity:0; }
    12%{ opacity:.9; }
    50%{ transform:translate(5%,-38%) scale(1); opacity:.6; }
    88%{ opacity:0; }
    100%{ transform:translate(9%,-64%) scale(.5); opacity:0; }
  }
  @keyframes dustFloatB{
    0%{ transform:translate(0,0) scale(.6); opacity:0; }
    12%{ opacity:.85; }
    50%{ transform:translate(-6%,-34%) scale(1); opacity:.55; }
    88%{ opacity:0; }
    100%{ transform:translate(-10%,-60%) scale(.5); opacity:0; }
  }
  @media (prefers-reduced-motion: reduce){
    .method-ray,.method-dust{animation:none;opacity:0;}
  }
  .method-center{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:40%;aspect-ratio:1/1;
    display:flex;align-items:center;justify-content:center;
    border-radius:50%;
    background:radial-gradient(circle, rgba(226,53,42,.22), transparent 72%);
    z-index:1;
  }
  .method-center img{
    width:72%;height:auto;
    filter:brightness(0) invert(1) drop-shadow(0 0 34px rgba(226,53,42,.5));
    opacity:.95;
  }
  .method-node{
    position:absolute;
    display:flex;flex-direction:column;gap:4px;
    max-width:38%;
    z-index:1;
  }
  .method-node-idx{
    font-family:var(--mono);color:var(--text-dim);font-size:0.68rem;letter-spacing:0.04em;
  }
  .method-node h3{font-size:0.9rem;font-weight:600;line-height:1.3;color:var(--text);}
  .method-node-line{position:absolute;background:linear-gradient(var(--line-dir,180deg), var(--line), transparent);}
  .method-node--top{ top:0; left:50%; transform:translateX(-50%); text-align:center; align-items:center; }
  .method-node--top .method-node-line{ left:50%;top:100%;transform:translateX(-50%);width:1px;height:30%; }
  .method-node--right{ top:50%; right:0; transform:translateY(-50%); text-align:right; align-items:flex-end; }
  .method-node--right .method-node-line{ right:100%;top:50%;transform:translateY(-50%);height:1px;width:26%;background:linear-gradient(270deg, var(--line), transparent); }
  .method-node--bottom{ bottom:0; left:50%; transform:translateX(-50%); text-align:center; align-items:center; }
  .method-node--bottom .method-node-line{ left:50%;bottom:100%;transform:translateX(-50%);width:1px;height:30%;background:linear-gradient(0deg, var(--line), transparent); }
  .method-node--left{ top:50%; left:0; transform:translateY(-50%); text-align:left; align-items:flex-start; }
  .method-node--left .method-node-line{ left:100%;top:50%;transform:translateY(-50%);height:1px;width:26%; }
  @media (max-width:680px){
    .method-diagram{
      aspect-ratio:auto;max-width:460px;
      display:flex;flex-direction:column;align-items:center;
      padding-top:0;
      -webkit-mask-image:none;mask-image:none;
      background-image:none;
    }
    .method-center{
      position:static;transform:none;
      width:104px;margin:0 auto clamp(26px,7vw,38px);
      background:radial-gradient(circle, rgba(226,53,42,.28), transparent 72%);
    }
    .method-node{
      position:static;max-width:none;transform:none !important;
      width:100%;
      display:grid !important;grid-template-columns:36px 1fr;gap:14px;
      align-items:center !important;text-align:left !important;
      padding-block:18px;
      border-top:1px solid var(--line);
    }
    .method-node--top{border-top:1px solid var(--line);}
    .method-node-idx{
      grid-row:1 / 3;
      display:flex;align-items:center;justify-content:center;
      width:34px;height:34px;border-radius:50%;
      border:1px solid var(--accent-soft);
      background:var(--surface);
      color:var(--accent);font-size:0.68rem;
    }
    .method-node h3{font-size:1rem;}
    .method-node-line{ display:none; }
    .method-lights{ display:none; }
  }

  .solution h3{font-size:1rem;font-weight:600;margin-bottom:6px;}
  .solution p{font-size:0.88rem;line-height:1.5;}

  .client-marquee{
    overflow:hidden;padding-top:8px;
    perspective:900px;
    cursor:grab;
    touch-action:pan-y;
    -webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
    mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  }
  .client-marquee.dragging{cursor:grabbing;}
  .client-track{
    display:flex;width:max-content;gap:clamp(20px,4vw,40px);
    animation:marquee 26s linear infinite;
    will-change:transform;
  }
  .client-track.js-driven{animation:none;}
  .client-marquee:hover .client-track:not(.js-driven){animation-play-state:paused;}
  @keyframes marquee{
    from{transform:translateX(0);}
    to{transform:translateX(calc(-50% - clamp(10px,2vw,20px)));}
  }
  .client-marquee.dragging .client-badge{transition:none;}
  .client-badge{user-select:none;-webkit-user-select:none;}
  .client-badge{
    flex:none;
    width:clamp(86px,10vw,104px);height:clamp(86px,10vw,104px);
    border-radius:50%;
    overflow:hidden;
    background:#100e0f;
    border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;
  }
  .client-badge img{
    width:100%;height:100%;object-fit:cover;
    pointer-events:none;-webkit-user-drag:none;user-select:none;
  }
  @media (prefers-reduced-motion: reduce){
    .client-track{animation:none;}
    .client-badge{animation:none;}
    .client-marquee{overflow:visible;-webkit-mask-image:none;mask-image:none;}
    .client-track{flex-wrap:wrap;justify-content:center;width:auto;}
    .client-badge[aria-hidden="true"]{display:none;}
  }

  /* ---------- projects ---------- */
  .projects{
    display:grid;grid-template-columns:repeat(4,1fr);gap:24px 20px;
  }
  @media (max-width:1100px){ .projects{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .projects{grid-template-columns:1fr;} }
  .project{display:flex;flex-direction:column;gap:10px;}

  .proj-card{display:flex;flex-direction:column;}
  .proj-thumb{
    position:relative;
    aspect-ratio:9/16;
    background:#000;
    border-radius:22px;
    overflow:hidden;
    box-shadow:inset 0 0 0 1px var(--line);
  }
  .proj-thumb video{
    width:100%;height:100%;object-fit:cover;display:block;
    border-radius:22px;
  }
  .proj-play-fallback{
    position:absolute;inset:0;z-index:4;
    display:flex;align-items:center;justify-content:center;
    background:rgba(10,10,11,.22);
    border:none;padding:0;margin:0;cursor:pointer;
    opacity:0;pointer-events:none;
    transition:opacity .2s ease;
  }
  .proj-play-fallback.show{opacity:1;pointer-events:auto;}
  .proj-play-fallback .play-circle{
    width:58px;height:58px;border-radius:50%;
    background:rgba(244,241,239,.95);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 8px 24px rgba(0,0,0,.35);
  }
  .proj-play-fallback svg{width:22px;height:22px;fill:#0a0a0b;margin-left:3px;}
  .vid-mute-btn{
    position:absolute;right:12px;bottom:12px;z-index:3;
    width:34px;height:34px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:rgba(10,10,11,.55);
    border:1px solid rgba(244,241,239,.28);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    color:#fff;cursor:pointer;
    transition:background .15s ease, border-color .15s ease, transform .15s ease;
  }
  .vid-mute-btn:hover{border-color:rgba(226,53,42,.6);transform:scale(1.06);}
  .vid-mute-btn svg{width:16px;height:16px;}
  .vid-mute-btn .icon-unmuted{display:none;}
  .vid-mute-btn[data-muted="false"]{background:rgba(226,53,42,.85);border-color:rgba(226,53,42,.9);}
  .vid-mute-btn[data-muted="false"] .icon-muted{display:none;}
  .vid-mute-btn[data-muted="false"] .icon-unmuted{display:block;}
  .proj-cat{
    font-family:var(--mono);font-weight:500;font-size:0.68rem;letter-spacing:.13em;
    text-transform:uppercase;color:var(--text-dim);
    margin-top:14px;
  }
  .proj-title{
    font-family:var(--display);font-weight:600;font-size:1.05rem;
    margin:6px 0 8px;line-height:1.25;letter-spacing:-0.01em;
  }
  .proj-desc{font-size:0.85rem;line-height:1.55;color:var(--text-muted);}

  .proj-extra{
    overflow:hidden;
    max-height:0;
    opacity:0;
    filter:blur(10px);
    transform:translateY(-8px);
    transition:max-height .6s ease, opacity .5s ease, filter .5s ease, transform .5s ease;
  }
  .proj-extra .projects{margin-top:24px;}
  .proj-extra.open{
    opacity:1;
    filter:blur(0);
    transform:translateY(0);
  }
  .proj-more{display:flex;justify-content:center;margin-top:28px;}
  .proj-more-btn{
    display:inline-flex;align-items:center;gap:10px;
    font-family:var(--mono);font-weight:600;font-size:0.78rem;letter-spacing:0.05em;
    text-transform:uppercase;color:var(--text);
    background:transparent;border:1px solid var(--line);
    padding:14px 24px;cursor:pointer;
    transition:border-color .15s ease, color .15s ease;
  }
  .proj-more-btn:hover{border-color:var(--accent-soft);color:var(--accent);}
  .proj-more-btn svg{width:16px;height:16px;transition:transform .3s ease;}
  .proj-more-btn.open svg{transform:rotate(180deg);}
  @media (prefers-reduced-motion: reduce){
    .proj-extra{transition:none;}
  }

  /* ---------- faq ---------- */
  .faq-grid{
    display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:start;
  }
  @media (max-width:800px){ .faq-grid{grid-template-columns:1fr;gap:24px;} }
  .faq-side{position:sticky;top:100px;}
  .faq-side h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-bottom:14px;line-height:1.15;}
  .faq-side p{font-size:0.94rem;line-height:1.6;color:var(--text-muted);}
  @media (max-width:800px){ .faq-side{position:static;} }
  .faq-list{display:flex;flex-direction:column;gap:12px;}
  .faq-item{
    border:1px solid var(--line);
    background:var(--surface);
    overflow:hidden;
  }
  .faq-q{
    width:100%;
    display:flex;align-items:center;gap:12px;
    background:transparent;border:none;cursor:pointer;
    padding:20px 22px;
    text-align:left;
    font-family:var(--display);font-weight:600;font-size:0.98rem;color:var(--text);
  }
  .faq-arrow{
    flex:none;
    width:20px;height:20px;
    display:flex;align-items:center;justify-content:center;
    color:var(--accent);
    transition:transform .25s ease;
  }
  .faq-arrow svg{width:12px;height:12px;}
  .faq-item.open .faq-arrow{transform:rotate(180deg);}
  .faq-a{
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease, opacity .3s ease;
    opacity:0;
  }
  .faq-item.open .faq-a{opacity:1;}
  .faq-a p{
    padding:0 22px 22px 54px;
    font-size:0.9rem;line-height:1.6;color:var(--text-muted);
  }

  /* ---------- fit (para quem é) ---------- */
  .fit-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  @media (max-width:760px){ .fit-grid{grid-template-columns:1fr;} }
  .fit-card{
    position:relative;
    border-radius:18px;
    border:1px solid var(--line);
    padding:34px 32px;
    background:
      linear-gradient(155deg, rgba(226,53,42,.05) 0%, rgba(255,255,255,.012) 40%, rgba(0,0,0,.03) 100%),
      var(--surface);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 20px 40px -28px rgba(0,0,0,.55);
  }
  .fit-card--yes{border-color:rgba(226,53,42,.32);}
  .fit-card-head{
    display:flex;align-items:center;gap:14px;
    margin-bottom:24px;padding-bottom:22px;
    border-bottom:1px solid var(--line);
  }
  .fit-card-icon{
    flex:none;width:36px;height:36px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
  }
  .fit-card-icon svg{width:18px;height:18px;}
  .fit-card--yes .fit-card-icon{background:var(--accent);color:#fff;box-shadow:0 8px 16px -6px rgba(226,53,42,.5);}
  .fit-card--no .fit-card-icon{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--line);}
  .fit-card h3{font-family:var(--display);font-size:1.15rem;font-weight:700;}
  .fit-card--yes h3{color:var(--accent);}
  .fit-card ul{display:flex;flex-direction:column;}
  .fit-card li{
    display:flex;gap:14px;align-items:flex-start;
    font-size:0.92rem;line-height:1.55;
    padding-block:14px;
    border-top:1px solid var(--line);
  }
  .fit-card li:first-child{border-top:none;padding-top:0;}
  .fit-card li:last-child{padding-bottom:0;}
  .fit-mark{
    flex:none;width:22px;height:22px;border-radius:50%;margin-top:1px;
    display:flex;align-items:center;justify-content:center;
  }
  .fit-mark svg{width:12px;height:12px;}
  .fit-card--yes .fit-mark{background:rgba(226,53,42,.14);color:var(--accent);}
  .fit-card--no .fit-mark{background:var(--surface-2);color:var(--text-dim);}
  .fit-card--no li{color:var(--text-muted);}
  .fit-cta{display:flex;justify-content:center;margin-top:32px;}

  /* ---------- founder / propósito ---------- */
  .founder{
    display:grid;grid-template-columns:240px minmax(0,620px);gap:64px;align-items:center;
    justify-content:start;
  }
  @media (max-width:800px){ .founder{grid-template-columns:1fr;gap:28px;} }
  .founder-photo{
    position:relative;
    width:220px;height:220px;border-radius:50%;
    margin:0 auto;
    overflow:hidden;
    box-shadow:0 0 0 2px var(--accent), 0 0 42px 6px var(--accent-soft);
  }
  .founder-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05);}
  .founder-photo-link{position:absolute;inset:0;z-index:2;border-radius:50%;}
  .founder h2{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.15;margin-bottom:22px;}
  .founder h2 em{font-family:var(--accent-serif);font-style:italic;font-weight:600;color:var(--accent);}
  .founder p{font-size:1rem;line-height:1.75;color:var(--text-muted);max-width:58ch;}
  .founder p + p{margin-top:16px;}
  .founder-who{
    display:block;
    font-family:var(--mono);font-size:0.76rem;letter-spacing:.08em;
    text-transform:uppercase;color:var(--accent);
    margin:26px 0 24px;
  }

  /* ---------- why choose ---------- */
  .why{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
  @media (max-width:860px){ .why{grid-template-columns:1fr;gap:24px;} }
  .why h2{font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.15;margin-bottom:14px;}
  .why h2 em{font-family:var(--accent-serif);font-style:italic;font-weight:600;color:var(--accent);}
  .why > div:first-child p{font-size:0.94rem;line-height:1.6;color:var(--text-muted);margin-bottom:22px;max-width:52ch;}
  .why-list{display:flex;flex-direction:column;gap:12px;}
  .why-item{
    display:flex;gap:16px;align-items:flex-start;
    border:1px solid var(--line);
    border-radius:16px;
    background:
      linear-gradient(155deg, rgba(226,53,42,.05) 0%, rgba(255,255,255,.012) 40%, rgba(0,0,0,.03) 100%),
      var(--surface);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 16px 32px -26px rgba(0,0,0,.5);
    padding:20px 22px;
    transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
  }
  .why-item:hover{
    border-color:rgba(226,53,42,.32);
    transform:translateY(-2px);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 20px 36px -24px rgba(0,0,0,.55);
  }
  .why-icon{
    flex:none;width:40px;height:40px;border-radius:11px;
    display:flex;align-items:center;justify-content:center;
    background:var(--accent);color:#fff;
    box-shadow:0 8px 16px -6px rgba(226,53,42,.5);
  }
  .why-icon svg{width:19px;height:19px;}
  .why-item h3{font-size:0.95rem;font-weight:700;margin-bottom:4px;}
  .why-item p{font-size:0.86rem;line-height:1.5;color:var(--text-muted);}

  /* ---------- final cta ---------- */
  .final-cta{
    text-align:left;
    padding-block:clamp(60px,10vw,100px);
  }
  .final-cta h2{
    font-size:clamp(2.1rem,5.4vw,3.6rem);
    line-height:1.1;
    max-width:16ch;
  }
  .final-cta h2 em{font-family:var(--accent-serif);font-style:italic;font-weight:600;color:var(--accent);}
  .final-cta .row{
    display:flex;justify-content:space-between;align-items:flex-end;
    gap:24px;flex-wrap:wrap;margin-top:28px;
  }
  .final-cta p{max-width:40ch;font-size:1rem;}

  /* ---------- footer ---------- */
  footer{
    border-top:1px solid var(--line);
    padding-block:28px 40px;
    display:flex;justify-content:space-between;align-items:center;
    gap:16px;flex-wrap:wrap;
  }
  footer img{height:26px;width:auto;filter:brightness(0) invert(1);opacity:0.85;}
  .foot-links{display:flex;gap:22px;flex-wrap:wrap;}
  .foot-links a{
    font-size:0.85rem;color:var(--text-muted);text-decoration:none;
    display:inline-flex;align-items:center;gap:8px;
    transition:color .15s ease;
  }
  .foot-links a:hover{color:var(--text);}
  .foot-links svg{width:16px;height:16px;flex:none;}
  .foot-meta{font-family:var(--mono);font-size:0.75rem;color:var(--text-dim);}

  /* ---------- back to top ---------- */
  .back-to-top{
    position:fixed;
    right:clamp(16px,4vw,32px);bottom:clamp(16px,4vw,32px);
    z-index:60;
    width:52px;height:52px;border-radius:50%;
    padding:0;
    display:flex;align-items:center;justify-content:center;
    background:var(--surface);
    border:1px solid var(--accent-soft);
    color:var(--text);
    cursor:pointer;
    box-shadow:0 12px 30px -10px rgba(0,0,0,.7), 0 0 0 1px rgba(226,53,42,.08);
    opacity:0;visibility:hidden;
    transform:translateY(18px) scale(.9);
    transition:opacity .35s ease, transform .35s ease, border-color .2s ease, background .2s ease;
  }
  .back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
  .back-to-top:hover{border-color:var(--accent);background:var(--surface-2);}
  .back-to-top:active{transform:scale(.92);}
  .back-to-top-inner{
    width:100%;height:100%;
    display:flex;align-items:center;justify-content:center;
    animation:backToTopFloat 3.2s ease-in-out infinite;
  }
  .back-to-top-inner svg{width:20px;height:20px;}
  @keyframes backToTopFloat{
    0%,100%{ transform:translateY(0); }
    50%{ transform:translateY(-4px); }
  }
  @media (max-width:600px){
    .back-to-top{width:46px;height:46px;}
    .back-to-top-inner svg{width:18px;height:18px;}
  }
  @media (prefers-reduced-motion: reduce){
    .back-to-top{transition:opacity .2s ease;}
    .back-to-top-inner{animation:none;}
  }

  /* ---------- intro ---------- */
  #site{
    filter:blur(26px);
    opacity:0;
    transform:scale(1.035);
  }
  #site.reveal{
    animation:site-focus 1.3s cubic-bezier(.16,.84,.44,1) forwards;
  }
  #site.reveal-done{
    animation:none;
    filter:none;
    opacity:1;
    transform:none;
    transition:filter .45s ease;
  }
  #site.scroll-blur{
    filter:blur(9px);
  }
  @keyframes site-focus{
    to{filter:none;opacity:1;transform:none;}
  }

  #intro{
    position:fixed;inset:0;z-index:300;
    background:var(--bg);
    display:flex;align-items:center;justify-content:center;
    perspective:1100px;
    cursor:pointer;
  }
  #intro[hidden]{display:none;}
  #intro.open{
    animation:intro-dissolve 1.1s ease .2s forwards;
  }
  @keyframes intro-dissolve{
    to{opacity:0;filter:blur(38px);pointer-events:none;}
  }

  .intro-stage{
    position:relative;z-index:2;
    display:flex;flex-direction:column;align-items:center;gap:18px;
    transform-style:preserve-3d;
  }
  .intro-stage::before{
    content:'';
    position:absolute;left:50%;top:42%;
    width:clamp(340px,52vw,540px);aspect-ratio:1/1;
    transform:translate(-50%,-50%);
    background:radial-gradient(circle, rgba(226,53,42,.22), transparent 70%);
    filter:blur(38px);
    z-index:-1;
    opacity:0;
    animation:glow-in 2.4s ease forwards .2s;
    pointer-events:none;
  }
  @keyframes glow-in{to{opacity:1;}}
  .intro-eyebrow{
    font-family:var(--mono);font-size:0.64rem;letter-spacing:0.32em;
    text-transform:uppercase;color:var(--text-dim);
    opacity:0;
    animation:tag-in 1s ease forwards .1s;
  }
  .intro-mark{
    width:min(360px,62vw);
    filter:brightness(0) invert(1);
    opacity:0;
    transform:translateY(18px) scale(.92);
    animation:intro-in 2.2s cubic-bezier(.19,1,.22,1) forwards .35s;
  }
  @keyframes intro-in{
    0%{opacity:0;filter:brightness(0) invert(1) blur(10px);transform:translateY(18px) scale(.92);}
    45%{opacity:1;}
    100%{opacity:1;filter:brightness(0) invert(1) blur(0px);transform:translateY(0) scale(1);}
  }
  .intro-divider{
    width:34px;height:1px;
    background:linear-gradient(90deg, transparent, var(--accent), transparent);
    opacity:0;
    animation:tag-in .9s ease forwards 2.05s;
  }
  .intro-tag{
    font-family:var(--mono);font-size:0.7rem;letter-spacing:0.24em;
    text-transform:uppercase;color:var(--text-dim);
    opacity:0;
    animation:tag-in .9s ease forwards 2.3s;
  }
  @keyframes tag-in{to{opacity:1;}}
  .intro-skip{
    position:absolute;bottom:clamp(20px,4vw,36px);right:clamp(20px,4vw,36px);
    z-index:2;
    font-family:var(--mono);font-size:0.68rem;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--text-dim);
    padding:9px 16px;
    border:1px solid rgba(244,241,239,.16);
    opacity:0;animation:tag-in .8s ease forwards 2.6s;
    transition:border-color .2s ease, color .2s ease;
  }
  .intro-skip:hover{border-color:rgba(244,241,239,.4);color:var(--text);}
  #intro.open .intro-skip{opacity:0;}
  @media (prefers-reduced-motion: reduce){
    #intro,.intro-stage::before,.intro-eyebrow,.intro-mark,.intro-divider,.intro-tag,.intro-skip,#site,#site.reveal{animation:none !important;}
    .intro-stage::before{opacity:1;}
    .intro-eyebrow{opacity:1;}
    .intro-mark{opacity:1;transform:none;filter:brightness(0) invert(1);}
    .intro-divider{opacity:1;}
    .intro-tag{opacity:1;}
    #site{filter:none;opacity:1;transform:none;}
  }

  /* ---------- scroll reveal ---------- */
  .reveal-el{
    opacity:0;
    filter:blur(14px);
    transform:translateY(22px);
    transition:opacity .8s cubic-bezier(.2,.7,.2,1), filter .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
    will-change:opacity, filter, transform;
  }
  .reveal-el.revealed{
    opacity:1;
    filter:blur(0);
    transform:translateY(0);
  }
  .solutions .reveal-el:nth-child(2), .why-list .reveal-el:nth-child(2), .fit-grid .reveal-el:nth-child(2){transition-delay:.08s;}
  .solutions .reveal-el:nth-child(3), .why-list .reveal-el:nth-child(3){transition-delay:.16s;}
  .solutions .reveal-el:nth-child(4), .why-list .reveal-el:nth-child(4){transition-delay:.24s;}
  .solutions .reveal-el:nth-child(5){transition-delay:.32s;}
  .projects .reveal-el:nth-child(2){transition-delay:.08s;}
  .projects .reveal-el:nth-child(3){transition-delay:.16s;}
  .projects .reveal-el:nth-child(4){transition-delay:.24s;}
  .faq-list .reveal-el:nth-child(2){transition-delay:.06s;}
  .faq-list .reveal-el:nth-child(3){transition-delay:.12s;}
  .faq-list .reveal-el:nth-child(4){transition-delay:.18s;}
  @media (prefers-reduced-motion: reduce){
    .reveal-el{opacity:1;filter:none;transform:none;transition:none;}
  }
