  :root{
    --bg:#ffffff;
    --bg-alt:#f6f6f7;
    --bg-card:#f0f0f2;
    --orange:#ff6a00;
    --orange-deep:#d94a00;
    --text:#0b0b0d;
    --text-dim:#55565d;
    --line:rgba(0,0,0,0.10);
    --line-bright:rgba(0,0,0,0.22);
    /* Eras Bold quando disponivel no dispositivo; Quicksand 700 como substituta servida pela web */
    --eras:'Eras Bold ITC','ErasITC-Bold','Eras Demi ITC','Eras Medium ITC','Poppins','Trebuchet MS',sans-serif;
    --display:var(--eras);
    --body:var(--eras);
    --mono:var(--eras);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  /* site inteiro em bold */
  *,*::before,*::after{font-weight:700;}
  html,body{height:100%;overflow:hidden;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:var(--body);
    -webkit-font-smoothing:antialiased;
  }
  ::selection{background:var(--orange-deep);color:#fff;}

  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;position:relative;z-index:2;}

  /* ---------- Scroll reveal ---------- */
  .reveal,.reveal-l,.reveal-r{
    opacity:0;filter:blur(6px);
    transition:opacity .8s cubic-bezier(.16,.8,.3,1),transform .8s cubic-bezier(.16,.8,.3,1),filter .8s cubic-bezier(.16,.8,.3,1);
  }
  .reveal{transform:translateY(28px);}
  .reveal-l{transform:translateX(-32px);}
  .reveal-r{transform:translateX(32px);}
  .reveal.in,.reveal-l.in,.reveal-r.in{opacity:1;transform:translate(0,0);filter:blur(0);}
  .stagger .reveal:nth-child(1){transition-delay:0s;}
  .stagger .reveal:nth-child(2){transition-delay:.1s;}
  .stagger .reveal:nth-child(3){transition-delay:.2s;}
  .stagger .reveal:nth-child(4){transition-delay:.3s;}

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important;transition:none !important;}
    .reveal,.reveal-l,.reveal-r{opacity:1;transform:none;filter:none;}
  }

  /* ---------- Grid / atmosphere ---------- */
  .grid-bg{
    position:fixed;inset:0;z-index:0;pointer-events:none;
    background-image:
      linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:64px 64px;
    opacity:.35;
    mask-image:radial-gradient(ellipse 80% 60% at 50% 20%, black 40%, transparent 90%);
  }

  .blob{
    position:fixed;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0;
  }
  .blob-orange{width:520px;height:520px;background:radial-gradient(circle,var(--orange) 0%, transparent 70%);top:-120px;left:-160px;opacity:.16;}
  .blob-deep{width:460px;height:460px;background:radial-gradient(circle,var(--orange-deep) 0%, transparent 70%);top:280px;right:-160px;opacity:.12;}

  /* ---------- Header ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:22px 40px;
    transition:background .4s ease, padding .4s ease, border-color .4s ease;
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    background:rgba(255,255,255,.82);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    padding:14px 40px;
    border-bottom:1px solid var(--line);
  }
  .logo{
    font-family:var(--display);font-weight:700;font-size:1.15rem;letter-spacing:.03em;
    display:flex;align-items:center;gap:10px;
  }
  .logo img{height:48px;width:auto;display:block;}
  .footer-inner .logo img{height:38px;}
  .logo .dot{
    width:9px;height:9px;border-radius:50%;
    background:var(--orange-deep);
    box-shadow:0 0 12px 2px var(--orange-deep);
    animation:pulse-dot 2.2s ease-in-out infinite;
  }
  .logo span{color:var(--orange);}
  @keyframes pulse-dot{
    0%,100%{transform:scale(1);opacity:1;}
    50%{transform:scale(1.5);opacity:.6;}
  }
  nav{display:flex;align-items:center;gap:36px;}
  nav a{
    font-family:var(--mono);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;
    color:var(--text-dim);position:relative;transition:color .3s ease;
    padding-bottom:4px;cursor:pointer;user-select:none;
  }
  nav a:focus-visible{outline:1px solid var(--orange);outline-offset:4px;}
  nav a::after{
    content:'';position:absolute;left:0;bottom:-6px;width:0;height:1px;
    background:linear-gradient(90deg,var(--orange),var(--orange-deep));
    transition:width .3s ease;
  }
  nav a:hover{color:var(--text);}
  nav a:hover::after{width:100%;}
  nav a.active{color:var(--text);}
  nav a.active::after{width:100%;}
  .nav-links{display:flex;gap:32px;position:relative;}
  .nav-indicator{
    position:absolute;bottom:-6px;height:2px;
    background:linear-gradient(90deg,var(--orange),var(--orange-deep));
    box-shadow:0 0 8px 1px rgba(255,106,0,.45);
    border-radius:2px;
    transition:left .4s cubic-bezier(.65,0,.35,1), width .4s cubic-bezier(.65,0,.35,1), opacity .3s ease;
    opacity:0;
  }

  /* ---------- Mega menu (Portfólio) ---------- */
  .nav-item-mega{position:relative;display:flex;align-items:center;}
  .mega-menu{
    position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%) translateY(-6px);
    min-width:420px;max-width:80vw;background:#fff;border:1px solid var(--line);border-radius:8px;
    box-shadow:0 20px 40px -12px rgba(0,0,0,.18);padding:20px 24px;
    display:flex;gap:36px;flex-wrap:wrap;
    opacity:0;pointer-events:none;transition:opacity .22s ease, transform .22s ease;
    z-index:50;
  }
  /* ponte invisível cobrindo o vão entre o link e o menu, para o hover não
     "cair" no meio do caminho enquanto o mouse desce até as opções */
  .mega-menu::before{content:'';position:absolute;top:-18px;left:0;right:0;height:18px;}
  .nav-item-mega:hover .mega-menu,
  .nav-item-mega.open .mega-menu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
  .mega-col{min-width:150px;}
  .mega-cat{
    display:block;font-family:var(--display);font-weight:700;font-size:.92rem;color:var(--text);
    margin-bottom:10px;text-transform:none;letter-spacing:normal;
  }
  .mega-cat:hover{color:var(--orange-deep);}
  .mega-cat::after{display:none;}
  .mega-subs{display:flex;flex-direction:column;gap:8px;}
  .mega-subs a{
    font-family:var(--body);font-weight:400;font-size:.82rem;color:var(--text-dim);
    text-transform:none;letter-spacing:normal;transition:color .2s ease;
  }
  .mega-subs a::after{display:none;}
  .mega-subs a:hover{color:var(--orange-deep);}
  @media(max-width:860px){
    /* tira o item do fluxo do cabeçalho para o dropdown não empurrar/quebrar
       o resto do menu — vira um painel de tela cheia ancorado no header */
    .nav-item-mega{position:static;}
    .mega-menu{
      position:absolute;top:100%;left:0;right:0;transform:none;
      min-width:0;max-width:none;width:auto;margin:0;
      border:none;border-top:1px solid var(--line);border-radius:0 0 8px 8px;
      box-shadow:0 20px 40px -12px rgba(0,0,0,.18);
      padding:18px 20px;display:none;flex-direction:column;gap:18px;
      max-height:75vh;overflow-y:auto;
    }
    .nav-item-mega.open .mega-menu{display:flex;opacity:1;pointer-events:auto;transform:none;}
  }

  /* ---------- Página de portfólio (categoria / subcategoria) ---------- */
  .portfolio-breadcrumb{
    font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;
    color:var(--text-dim);margin-bottom:18px;display:flex;gap:8px;flex-wrap:wrap;
  }
  .portfolio-breadcrumb a{color:var(--text-dim);}
  .portfolio-breadcrumb a:hover{color:var(--orange-deep);}
  .portfolio-page{padding:140px 0 100px;min-height:60vh;}
  .portfolio-page h1{font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:10px;}
  .portfolio-page > .wrap > p{color:var(--text-dim);max-width:640px;margin-bottom:40px;}
  .portfolio-empty{color:var(--text-dim);padding:40px 0;}
  .btn{
    font-family:var(--mono);font-size:.78rem;letter-spacing:.03em;text-transform:uppercase;
    padding:11px 22px;border-radius:2px;border:1px solid var(--line-bright);
    background:transparent;color:var(--text);cursor:pointer;
    position:relative;overflow:hidden;transition:border-color .3s ease, color .3s ease, transform .2s ease;
    display:inline-block;
  }
  .btn::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(90deg,var(--orange),var(--orange-deep));
    transform:translateX(-101%);transition:transform .35s cubic-bezier(.16,.8,.3,1);
    z-index:-1;
  }
  .btn:hover::before{transform:translateX(0);}
  .btn:hover{border-color:transparent;color:#fff;transform:translateY(-2px);}
  .btn-solid{
    background:linear-gradient(90deg,var(--orange),var(--orange-deep));
    border:none;color:#fff;font-weight:700;
  }
  .btn-solid:hover{transform:translateY(-2px);filter:brightness(1.1);}
  .btn-solid::before{display:none;}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;min-height:100vh;display:flex;align-items:center;
    padding:140px 0 80px;overflow:hidden;
  }
  .hero-inner{
    display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;
    width:100%;min-height:min(620px,62vh);
  }
  .hero-top,.hero-bottom{display:flex;flex-direction:column;align-items:center;}
  .hero-top{margin-top:-28px;}
  .eyebrow{
    font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
    color:var(--orange);display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:22px;
  }
  .eyebrow .bar{width:32px;height:1px;background:linear-gradient(90deg,var(--orange),var(--orange-deep));}
  h1{
    font-family:var(--display);font-weight:700;font-size:clamp(2.4rem,5vw,4.1rem);
    line-height:1.06;letter-spacing:-.005em;
    -webkit-text-stroke:.022em currentColor;
  }
  h1 .accent{
    -webkit-text-stroke-color:var(--orange);
    background:linear-gradient(90deg,var(--orange),var(--orange-deep));
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .hero p.lead{
    font-size:1.08rem;color:var(--text-dim);max-width:460px;line-height:1.65;margin:0 auto 30px;
  }
  .hero-cta{display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap;}
  .ghost-link{
    font-family:var(--mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;
    color:var(--text-dim);display:flex;align-items:center;gap:8px;transition:color .3s ease, gap .3s ease;
  }
  .ghost-link:hover{color:var(--text);gap:12px;}

  /* Hero visual: laser engraving LASERLY 3D, letter by letter — now a dimmed full-bleed background
     so it reads as "the image being cut/printed by laser" behind the centered text, with a soft
     3D lift via layered blur + glow. */
  .hero-visual{
    position:absolute;inset:0;z-index:1;
    display:flex;align-items:center;justify-content:center;
    pointer-events:none;
    -webkit-mask-image:radial-gradient(ellipse 65% 60% at 50% 50%, black 45%, transparent 88%);
    mask-image:radial-gradient(ellipse 65% 60% at 50% 50%, black 45%, transparent 88%);
  }
  .hero-anim{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
  .hero-anim svg{width:min(120%,1000px);overflow:visible;opacity:.62;filter:drop-shadow(0 14px 26px rgba(0,0,0,.16));}
  .anim-laser{animation:alt-laser 43s ease-in-out infinite;}
  .anim-print{animation:alt-print 43s ease-in-out infinite;}
  @keyframes alt-laser{
    0%{opacity:1;}
    1%{opacity:1;}
    49%{opacity:1;}
    50%{opacity:0;}
    99%{opacity:0;}
    100%{opacity:1;}
  }
  @keyframes alt-print{
    0%{opacity:0;}
    1%{opacity:0;}
    49%{opacity:0;}
    50%{opacity:1;}
    99%{opacity:1;}
    100%{opacity:0;}
  }
  .lg{
    font-family:var(--display);font-weight:700;
    stroke-width:1.4;
    paint-order:stroke;
    opacity:0;
    stroke-dasharray:1000;
    stroke-dashoffset:1000;
  }
  .lg.tone-a{fill:var(--orange);stroke:var(--orange);filter:drop-shadow(0 0 5px rgba(255,106,0,.65));}
  .lg.tone-b{fill:var(--orange-deep);stroke:var(--orange-deep);filter:drop-shadow(0 0 5px rgba(217,74,0,.65));}
  .lg0{animation:cutL0 21.5s linear infinite;}
  .lg1{animation:cutL1 21.5s linear infinite;}
  .lg2{animation:cutL2 21.5s linear infinite;}
  .lg3{animation:cutL3 21.5s linear infinite;}
  .lg4{animation:cutL4 21.5s linear infinite;}
  .lg5{animation:cutL5 21.5s linear infinite;}
  .lg6{animation:cutL6 21.5s linear infinite;}
  .lg7{animation:cutL7 21.5s linear infinite;}
  .lg8{animation:cutL8 21.5s linear infinite;}
  @keyframes cutL0{0%{opacity:1;stroke-dashoffset:1000;}4.65%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}
  @keyframes cutL1{0%,5.25%{opacity:0;stroke-dashoffset:1000;}5.35%{opacity:1;stroke-dashoffset:1000;}10.0%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}
  @keyframes cutL2{0%,10.6%{opacity:0;stroke-dashoffset:1000;}10.7%{opacity:1;stroke-dashoffset:1000;}15.35%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}
  @keyframes cutL3{0%,15.95%{opacity:0;stroke-dashoffset:1000;}16.05%{opacity:1;stroke-dashoffset:1000;}20.7%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}
  @keyframes cutL4{0%,21.3%{opacity:0;stroke-dashoffset:1000;}21.4%{opacity:1;stroke-dashoffset:1000;}26.05%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}
  @keyframes cutL5{0%,26.64%{opacity:0;stroke-dashoffset:1000;}26.74%{opacity:1;stroke-dashoffset:1000;}31.4%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}
  @keyframes cutL6{0%,31.99%{opacity:0;stroke-dashoffset:1000;}32.09%{opacity:1;stroke-dashoffset:1000;}36.74%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}
  @keyframes cutL7{0%,39.43%{opacity:0;stroke-dashoffset:1000;}39.53%{opacity:1;stroke-dashoffset:1000;}44.19%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}
  @keyframes cutL8{0%,44.78%{opacity:0;stroke-dashoffset:1000;}44.88%{opacity:1;stroke-dashoffset:1000;}49.53%{opacity:1;stroke-dashoffset:0;}96.05%{opacity:1;stroke-dashoffset:0;}98.37%{opacity:0;stroke-dashoffset:0;}100%{opacity:0;stroke-dashoffset:1000;}}

  /* Ponto do laser (sempre vermelho) contornando cada letra — sobe, atravessa o topo, desce — 1s por letra */
  .laser-dot{fill:var(--orange-deep);filter:drop-shadow(0 0 8px var(--orange-deep));}
  .dot0{animation:dotMove0 21.5s linear infinite;}
  .dot1{animation:dotMove1 21.5s linear infinite;}
  .dot2{animation:dotMove2 21.5s linear infinite;}
  .dot3{animation:dotMove3 21.5s linear infinite;}
  .dot4{animation:dotMove4 21.5s linear infinite;}
  .dot5{animation:dotMove5 21.5s linear infinite;}
  .dot6{animation:dotMove6 21.5s linear infinite;}
  .dot7{animation:dotMove7 21.5s linear infinite;}
  .dot8{animation:dotMove8 21.5s linear infinite;}
  @keyframes dotMove0{0%{opacity:1;transform:translate(20px,110px);}1.16%{transform:translate(20px,58px);}2.33%{transform:translate(60px,58px);}3.49%{transform:translate(60px,110px);}4.65%{opacity:1;transform:translate(20px,110px);}5.12%,100%{opacity:0;transform:translate(20px,110px);}}
  @keyframes dotMove1{0%,5.25%{opacity:0;transform:translate(68px,110px);}5.35%{opacity:1;transform:translate(68px,110px);}6.51%{transform:translate(68px,58px);}7.67%{transform:translate(108px,58px);}8.84%{transform:translate(108px,110px);}10.0%{opacity:1;transform:translate(68px,110px);}10.47%,100%{opacity:0;transform:translate(68px,110px);}}
  @keyframes dotMove2{0%,10.6%{opacity:0;transform:translate(116px,110px);}10.7%{opacity:1;transform:translate(116px,110px);}11.86%{transform:translate(116px,58px);}13.02%{transform:translate(156px,58px);}14.19%{transform:translate(156px,110px);}15.35%{opacity:1;transform:translate(116px,110px);}15.81%,100%{opacity:0;transform:translate(116px,110px);}}
  @keyframes dotMove3{0%,15.95%{opacity:0;transform:translate(164px,110px);}16.05%{opacity:1;transform:translate(164px,110px);}17.21%{transform:translate(164px,58px);}18.37%{transform:translate(204px,58px);}19.53%{transform:translate(204px,110px);}20.7%{opacity:1;transform:translate(164px,110px);}21.16%,100%{opacity:0;transform:translate(164px,110px);}}
  @keyframes dotMove4{0%,21.3%{opacity:0;transform:translate(212px,110px);}21.4%{opacity:1;transform:translate(212px,110px);}22.56%{transform:translate(212px,58px);}23.72%{transform:translate(252px,58px);}24.88%{transform:translate(252px,110px);}26.05%{opacity:1;transform:translate(212px,110px);}26.51%,100%{opacity:0;transform:translate(212px,110px);}}
  @keyframes dotMove5{0%,26.64%{opacity:0;transform:translate(260px,110px);}26.74%{opacity:1;transform:translate(260px,110px);}27.91%{transform:translate(260px,58px);}29.07%{transform:translate(300px,58px);}30.23%{transform:translate(300px,110px);}31.4%{opacity:1;transform:translate(260px,110px);}31.86%,100%{opacity:0;transform:translate(260px,110px);}}
  @keyframes dotMove6{0%,31.99%{opacity:0;transform:translate(308px,110px);}32.09%{opacity:1;transform:translate(308px,110px);}33.26%{transform:translate(308px,58px);}34.42%{transform:translate(348px,58px);}35.58%{transform:translate(348px,110px);}36.74%{opacity:1;transform:translate(308px,110px);}37.21%,100%{opacity:0;transform:translate(308px,110px);}}
  @keyframes dotMove7{0%,39.43%{opacity:0;transform:translate(382px,110px);}39.53%{opacity:1;transform:translate(382px,110px);}40.7%{transform:translate(382px,58px);}41.86%{transform:translate(418px,58px);}43.02%{transform:translate(418px,110px);}44.19%{opacity:1;transform:translate(382px,110px);}44.65%,100%{opacity:0;transform:translate(382px,110px);}}
  @keyframes dotMove8{0%,44.78%{opacity:0;transform:translate(427px,110px);}44.88%{opacity:1;transform:translate(427px,110px);}46.05%{transform:translate(427px,58px);}47.21%{transform:translate(463px,58px);}48.37%{transform:translate(463px,110px);}49.53%{opacity:1;transform:translate(427px,110px);}50.0%,100%{opacity:0;transform:translate(427px,110px);}}
  .coord{
    position:absolute;font-family:var(--mono);font-size:.68rem;color:var(--text-dim);letter-spacing:.05em;
  }
  .coord.c1{top:8%;left:2%;}
  .coord.c2{bottom:6%;right:0%;}

  /* ---------- Print visual: LASERLY 3D "impressa" em PLA, bico varrendo cada letra em zigue-zague, 1s por letra ---------- */
  .pla{font-family:var(--display);font-weight:700;paint-order:fill;}
  .pla.tone-a{fill:url(#plaOrangeGrad);filter:drop-shadow(0 2px 1px rgba(0,0,0,.18));}
  .pla.tone-b{fill:url(#plaDeepGrad);filter:drop-shadow(0 2px 1px rgba(0,0,0,.18));}
  .pla-lines{font-family:var(--display);font-weight:700;fill:url(#plaLines);opacity:.55;mix-blend-mode:multiply;}
  .pl0{animation:printL0 21.5s linear infinite;}
  .pl1{animation:printL1 21.5s linear infinite;}
  .pl2{animation:printL2 21.5s linear infinite;}
  .pl3{animation:printL3 21.5s linear infinite;}
  .pl4{animation:printL4 21.5s linear infinite;}
  .pl5{animation:printL5 21.5s linear infinite;}
  .pl6{animation:printL6 21.5s linear infinite;}
  .pl7{animation:printL7 21.5s linear infinite;}
  .pl8{animation:printL8 21.5s linear infinite;}
  @keyframes printL0{0%{clip-path:inset(100% 0 0 0) fill-box;}4.65%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}
  @keyframes printL1{0%,5.25%{clip-path:inset(100% 0 0 0) fill-box;}5.35%{clip-path:inset(100% 0 0 0) fill-box;}10.0%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}
  @keyframes printL2{0%,10.6%{clip-path:inset(100% 0 0 0) fill-box;}10.7%{clip-path:inset(100% 0 0 0) fill-box;}15.35%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}
  @keyframes printL3{0%,15.95%{clip-path:inset(100% 0 0 0) fill-box;}16.05%{clip-path:inset(100% 0 0 0) fill-box;}20.7%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}
  @keyframes printL4{0%,21.3%{clip-path:inset(100% 0 0 0) fill-box;}21.4%{clip-path:inset(100% 0 0 0) fill-box;}26.05%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}
  @keyframes printL5{0%,26.64%{clip-path:inset(100% 0 0 0) fill-box;}26.74%{clip-path:inset(100% 0 0 0) fill-box;}31.4%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}
  @keyframes printL6{0%,31.99%{clip-path:inset(100% 0 0 0) fill-box;}32.09%{clip-path:inset(100% 0 0 0) fill-box;}36.74%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}
  @keyframes printL7{0%,39.43%{clip-path:inset(100% 0 0 0) fill-box;}39.53%{clip-path:inset(100% 0 0 0) fill-box;}44.19%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}
  @keyframes printL8{0%,44.78%{clip-path:inset(100% 0 0 0) fill-box;}44.88%{clip-path:inset(100% 0 0 0) fill-box;}49.53%{clip-path:inset(0% 0 0 0) fill-box;}96.05%{clip-path:inset(0% 0 0 0) fill-box;}100%{clip-path:inset(100% 0 0 0) fill-box;}}

  /* Bico da impressora construindo cada letra com zigue-zague ascendente — 1s por letra */
  .nozzle-mini path{fill:#8b8f99;}
  .nozzle-mini rect{fill:#5f636e;}
  .nozzle-mini circle{fill:#ff6a00;filter:drop-shadow(0 0 6px rgba(255,106,0,.75));}
  .noz0{animation:nozMove0 21.5s linear infinite;}
  .noz1{animation:nozMove1 21.5s linear infinite;}
  .noz2{animation:nozMove2 21.5s linear infinite;}
  .noz3{animation:nozMove3 21.5s linear infinite;}
  .noz4{animation:nozMove4 21.5s linear infinite;}
  .noz5{animation:nozMove5 21.5s linear infinite;}
  .noz6{animation:nozMove6 21.5s linear infinite;}
  .noz7{animation:nozMove7 21.5s linear infinite;}
  .noz8{animation:nozMove8 21.5s linear infinite;}
  @keyframes nozMove0{0%{opacity:1;transform:translate(26px,108px);}1.16%{transform:translate(54px,100px);}2.33%{transform:translate(26px,88px);}3.49%{transform:translate(54px,74px);}4.65%{opacity:1;transform:translate(40px,58px);}5.12%,100%{opacity:0;transform:translate(40px,58px);}}
  @keyframes nozMove1{0%,5.25%{opacity:0;transform:translate(74px,108px);}5.35%{opacity:1;transform:translate(74px,108px);}6.51%{transform:translate(102px,100px);}7.67%{transform:translate(74px,88px);}8.84%{transform:translate(102px,74px);}10.0%{opacity:1;transform:translate(88px,58px);}10.47%,100%{opacity:0;transform:translate(88px,58px);}}
  @keyframes nozMove2{0%,10.6%{opacity:0;transform:translate(122px,108px);}10.7%{opacity:1;transform:translate(122px,108px);}11.86%{transform:translate(150px,100px);}13.02%{transform:translate(122px,88px);}14.19%{transform:translate(150px,74px);}15.35%{opacity:1;transform:translate(136px,58px);}15.81%,100%{opacity:0;transform:translate(136px,58px);}}
  @keyframes nozMove3{0%,15.95%{opacity:0;transform:translate(170px,108px);}16.05%{opacity:1;transform:translate(170px,108px);}17.21%{transform:translate(198px,100px);}18.37%{transform:translate(170px,88px);}19.53%{transform:translate(198px,74px);}20.7%{opacity:1;transform:translate(184px,58px);}21.16%,100%{opacity:0;transform:translate(184px,58px);}}
  @keyframes nozMove4{0%,21.3%{opacity:0;transform:translate(218px,108px);}21.4%{opacity:1;transform:translate(218px,108px);}22.56%{transform:translate(246px,100px);}23.72%{transform:translate(218px,88px);}24.88%{transform:translate(246px,74px);}26.05%{opacity:1;transform:translate(232px,58px);}26.51%,100%{opacity:0;transform:translate(232px,58px);}}
  @keyframes nozMove5{0%,26.64%{opacity:0;transform:translate(266px,108px);}26.74%{opacity:1;transform:translate(266px,108px);}27.91%{transform:translate(294px,100px);}29.07%{transform:translate(266px,88px);}30.23%{transform:translate(294px,74px);}31.4%{opacity:1;transform:translate(280px,58px);}31.86%,100%{opacity:0;transform:translate(280px,58px);}}
  @keyframes nozMove6{0%,31.99%{opacity:0;transform:translate(314px,108px);}32.09%{opacity:1;transform:translate(314px,108px);}33.26%{transform:translate(342px,100px);}34.42%{transform:translate(314px,88px);}35.58%{transform:translate(342px,74px);}36.74%{opacity:1;transform:translate(328px,58px);}37.21%,100%{opacity:0;transform:translate(328px,58px);}}
  @keyframes nozMove7{0%,39.43%{opacity:0;transform:translate(386px,108px);}39.53%{opacity:1;transform:translate(386px,108px);}40.7%{transform:translate(414px,100px);}41.86%{transform:translate(386px,88px);}43.02%{transform:translate(414px,74px);}44.19%{opacity:1;transform:translate(400px,58px);}44.65%,100%{opacity:0;transform:translate(400px,58px);}}
  @keyframes nozMove8{0%,44.78%{opacity:0;transform:translate(431px,108px);}44.88%{opacity:1;transform:translate(431px,108px);}46.05%{transform:translate(459px,100px);}47.21%{transform:translate(431px,88px);}48.37%{transform:translate(459px,74px);}49.53%{opacity:1;transform:translate(445px,58px);}50.0%,100%{opacity:0;transform:translate(445px,58px);}}

  /* ---------- Paginação: transição "laser" de cima para baixo ---------- */
  .h-outer{position:relative;width:100vw;height:100vh;overflow:hidden;}
  .h-track{position:relative;width:100%;height:100%;}
  .h-panel{
    position:absolute;top:0;left:0;width:100vw;height:100vh;
    overflow-y:auto;overflow-x:hidden;
    scrollbar-width:none;-ms-overflow-style:none;
    opacity:0;pointer-events:none;z-index:1;
    clip-path:inset(0 0 100% 0);
    -webkit-clip-path:inset(0 0 100% 0);
  }
  .h-panel::-webkit-scrollbar{display:none;}

  .page-laser{
    position:fixed;left:0;right:0;top:0;height:2px;z-index:90;pointer-events:none;
    background:linear-gradient(90deg,transparent,var(--orange) 15%,var(--orange-deep) 85%,transparent);
    box-shadow:0 0 14px 3px rgba(255,106,0,.45), 0 0 14px 3px rgba(217,74,0,.35);
    opacity:0;
  }
  .page-laser.active{opacity:1;}


  /* ---------- Section shared ---------- */
  section{position:relative;z-index:1;padding:130px 0;}
  .section-head{max-width:640px;margin:0 auto 64px;text-align:center;position:relative;z-index:2;}
  .section-head .eyebrow{color:var(--orange-deep);}
  h2{
    font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,3.4vw,2.6rem);
    line-height:1.15;letter-spacing:-.005em;
    -webkit-text-stroke:.022em currentColor;
  }
  h2 .accent-orange{color:var(--orange);}
  .section-head p{color:var(--text-dim);margin-top:16px;font-size:1.02rem;line-height:1.6;}

  /* ---------- Services ---------- */
  .services{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  .service-card{
    background:var(--bg);padding:38px 30px;transition:background .4s ease, transform .4s ease;
    position:relative;overflow:hidden;
  }
  .service-card::before{
    content:'';position:absolute;top:0;left:0;right:0;height:2px;
    background:linear-gradient(90deg,var(--orange),var(--orange-deep));
    transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.16,.8,.3,1);
  }
  .service-card:hover::before{transform:scaleX(1);}
  .service-card:hover{background:var(--bg-card);transform:translateY(-6px);}
  .service-num{font-family:var(--mono);font-size:.72rem;color:var(--text-dim);margin-bottom:26px;display:block;}
  .service-card h3{font-family:var(--display);font-size:1.05rem;font-weight:700;margin-bottom:12px;letter-spacing:.01em;}
  .service-card p{color:var(--text-dim);font-size:.9rem;line-height:1.6;}
  @media(max-width:900px){.services{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.services{grid-template-columns:1fr;}}

  /* ---------- Process ---------- */
  .process{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .process-list{display:flex;flex-direction:column;}
  .process-item{
    display:grid;grid-template-columns:110px 1fr;gap:32px;padding:34px 0;
    border-bottom:1px solid var(--line);align-items:start;
  }
  .process-item:last-child{border-bottom:none;}
  .process-num{
    font-family:var(--display);font-size:2.4rem;font-weight:700;
    background:linear-gradient(180deg,var(--orange),var(--orange-deep));
    -webkit-background-clip:text;background-clip:text;color:transparent;
    opacity:.85;
  }
  .process-item h3{font-family:var(--body);font-weight:700;font-size:1.15rem;margin-bottom:8px;}
  .process-item p{color:var(--text-dim);max-width:520px;line-height:1.6;font-size:.95rem;}

  /* ---------- Materials marquee ---------- */
  .marquee-wrap{overflow:hidden;padding:38px 0;border-bottom:1px solid var(--line);}
  .marquee{display:flex;white-space:nowrap;animation:marquee 24s linear infinite;width:max-content;}
  .marquee span{
    font-family:var(--mono);font-size:1rem;letter-spacing:.12em;color:var(--text-dim);
    padding:0 28px;display:flex;align-items:center;gap:28px;text-transform:uppercase;
  }
  .marquee span::after{content:'◆';color:var(--orange-deep);font-size:.6rem;}
  @keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

  /* ---------- Portfolio ---------- */
  .portfolio-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .cat-card{
    aspect-ratio:4/5;border-radius:4px;position:relative;overflow:hidden;
    border:1px solid var(--line);cursor:pointer;background:none;padding:0;width:100%;
    display:block;text-align:left;font:inherit;color:inherit;
  }
  .cat-card .fill{
    position:absolute;inset:0;transition:transform .6s cubic-bezier(.16,.8,.3,1);
  }
  .cat-card:hover .fill{transform:scale(1.08) rotate(1deg);}
  .cat-card .fill .slide{
    position:absolute;inset:0;background-size:cover;background-position:center;
    opacity:0;transition:opacity 1s ease;
  }
  .cat-card .fill .slide.active{opacity:1;}
  .cat-card .overlay{
    position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;
    background:linear-gradient(180deg,transparent 35%, rgba(255,255,255,.96) 100%);
  }
  .cat-card h3{font-family:var(--display);font-size:1.2rem;font-weight:700;}
  .cat-card .view-link{
    display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-family:var(--mono);
    font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text);transition:gap .3s ease;
  }
  .cat-card:hover .view-link{gap:10px;}
  .t1{background:radial-gradient(circle at 30% 30%,#ffd9b8,#f3f3f4 70%);}
  .t2{background:radial-gradient(circle at 70% 40%,#ffc79a,#f3f3f4 70%);}
  .t3{background:radial-gradient(circle at 50% 60%,#e6e6e8,#fafafa 70%);}
  .t4{background:radial-gradient(circle at 40% 70%,#ffb877,#f3f3f4 70%);}
  .t5{background:radial-gradient(circle at 60% 30%,#dcdcde,#fafafa 70%);}
  .t6{background:radial-gradient(circle at 30% 60%,#ffcfa3,#f3f3f4 70%);}
  @media(max-width:700px){.portfolio-categories{grid-template-columns:1fr;}.cat-card{aspect-ratio:16/10;}}

  /* Portfolio: galeria de itens (categoria/subcategoria) — usada em portfolio.html */
  .modal-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
  @media(max-width:900px){.modal-gallery{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.modal-gallery{grid-template-columns:1fr;}}
  .modal-item{border:1px solid var(--line);border-radius:4px;overflow:hidden;}
  .modal-item .thumb{aspect-ratio:4/3;position:relative;overflow:hidden;}
  .modal-item .thumb .slide{
    position:absolute;inset:0;background-size:cover;background-position:center;
    opacity:0;transition:opacity .8s ease;
  }
  .modal-item .thumb .slide.active{opacity:1;}
  .modal-item .info{padding:14px 16px;}
  .modal-item h5{font-family:var(--display);font-size:.95rem;font-weight:700;margin-bottom:4px;}
  .modal-item p{color:var(--text-dim);font-size:.83rem;line-height:1.5;}

  /* ---------- CTA ---------- */
  .cta-section{
    background:var(--bg-alt);border-top:1px solid var(--line);
    text-align:center;position:relative;overflow:hidden;
  }
  .cta-inner{position:relative;z-index:2;}
  .cta-inner h2{max-width:600px;margin:0 auto 30px;}
  .cta-form{
    display:flex;flex-direction:column;gap:14px;max-width:480px;margin:0 auto;text-align:left;
  }
  .cta-form label{
    font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;
    color:var(--text-dim);margin-bottom:6px;display:block;
  }
  .cta-form input,
  .cta-form select,
  .cta-form textarea{
    width:100%;background:rgba(0,0,0,.02);border:1px solid var(--line-bright);
    padding:13px 16px;color:var(--text);font-family:var(--body);border-radius:2px;font-size:.92rem;
    transition:border-color .3s ease, background .3s ease;
  }
  .cta-form select{
    appearance:none;-webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%2355565d'%3E%3Cpath d='M5.5 7.5l4.5 4.5 4.5-4.5' stroke='%2355565d' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 14px center;
    cursor:pointer;
  }
  .cta-form select option{background:var(--bg-card);color:var(--text);}
  .cta-form textarea{resize:vertical;min-height:90px;font-family:var(--body);}
  .cta-form input:focus,
  .cta-form select:focus,
  .cta-form textarea:focus{outline:none;border-color:var(--orange);background:rgba(255,106,0,.05);}
  .cta-form input::placeholder,
  .cta-form textarea::placeholder{color:var(--text-dim);}
  .cta-form .field{display:flex;flex-direction:column;}
  .cta-form .btn-solid{
    justify-content:center;display:flex;align-items:center;gap:10px;margin-top:6px;
    width:100%;padding:15px 22px;
  }
  .cta-form .btn-solid svg{width:18px;height:18px;fill:currentColor;}

  /* ---------- Footer ---------- */
  footer{padding:56px 0 36px;border-top:1px solid var(--line);}
  .footer-inner{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;}
  .footer-inner .logo{margin-bottom:10px;}
  footer p.tag{color:var(--text-dim);font-size:.88rem;max-width:320px;line-height:1.5;}
  .footer-links{display:flex;gap:26px;}
  .footer-links a{font-family:var(--mono);font-size:.78rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;transition:color .3s ease;}
  .footer-links a:hover{color:var(--orange);}
  .footer-bottom{
    margin-top:40px;padding-top:24px;border-top:1px solid var(--line);
    display:flex;justify-content:space-between;color:var(--text-dim);font-family:var(--mono);font-size:.72rem;flex-wrap:wrap;gap:10px;
  }

  /* ---------- WhatsApp float button ---------- */
  .wa-float{
    position:fixed;right:26px;bottom:26px;z-index:200;
    width:58px;height:58px;border-radius:50%;
    background:#25D366;display:flex;align-items:center;justify-content:center;
    box-shadow:0 6px 22px rgba(0,0,0,.18);
    transition:transform .3s ease;
  }
  .wa-float:hover{transform:scale(1.08);}
  .wa-float svg{width:30px;height:30px;fill:#fff;}
  .wa-float .ring{
    position:absolute;inset:-6px;border-radius:50%;
    border:2px solid var(--orange);
    animation:wa-pulse 2.2s ease-out infinite;
  }
  .wa-float .ring.r2{
    border-color:var(--orange-deep);
    animation-delay:1.1s;
  }
  @keyframes wa-pulse{
    0%{transform:scale(.85);opacity:.9;}
    100%{transform:scale(1.5);opacity:0;}
  }
  .wa-tooltip{
    position:absolute;right:70px;top:50%;transform:translateY(-50%) translateX(6px);
    background:var(--bg-card);border:1px solid var(--line-bright);color:var(--text);
    font-family:var(--mono);font-size:.75rem;padding:8px 14px;border-radius:4px;
    white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s ease, transform .3s ease;
  }
  .wa-float:hover .wa-tooltip{opacity:1;transform:translateY(-50%) translateX(0);}

  @media(max-width:860px){
    header{padding:14px 16px;flex-wrap:wrap;gap:10px;}
    nav{display:contents;}
    .nav-links{gap:0;width:100%;justify-content:space-between;order:3;}
    nav a{font-size:.66rem;}
    .btn{order:2;padding:9px 14px;font-size:.68rem;}
    .wrap{padding:0 20px;}
    .process-item{grid-template-columns:60px 1fr;}
    .process-num{font-size:1.6rem;}
    .coord{display:none;}
  }
  @media(max-width:420px){
    nav a{font-size:.6rem;}
    .nav-links{gap:0;}
  }
  @media(max-width:560px){
    h1{font-size:clamp(1.9rem,9vw,2.5rem);line-height:1.16;}
    h1 br{display:none;}
    .hero p.lead{font-size:.98rem;}
  }
