/* Estilos extraídos de index.html (site estático) — não editar sem comparar com o original. */
body{margin:0}img{max-width:100%}[hidden]{display:none!important}

  /* Paleta clara fixa — o site é sempre light, independente do tema do sistema */
  :root{
    --paper:#ffffff;
    --paper-2:#eef1f6;
    --card:#ffffff;
    --line:#e4e8ef;
    --ink:#0c1a24;
    --ink-soft:#55646f;
    --navy:#0b1b30;
    --teal:#12a892;
    --teal-deep:#0b7f6d;
    --ia:#19c0a4;
    --rv:#8b6cf3;
    --sim:#3d92e6;
    --games:#eda23f;
    --coral:#e2685f;
    --radius:18px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:'Plus Jakarta Sans',ui-sans-serif,system-ui,sans-serif; line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:'Sora',ui-sans-serif,system-ui,sans-serif;margin:0;text-wrap:balance;letter-spacing:-.025em;}
  p{margin:0;}
  a{color:inherit;}
  :focus-visible{outline:2px solid var(--teal); outline-offset:3px; border-radius:6px;}
  .wrap{max-width:1240px;margin:0 auto;padding:0 26px;}
  .wrap-wide{max-width:none;padding:0 6px;}
  .eyebrow{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-deep);}

  /* header */
  header.site{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 4px 24px rgba(12,26,36,.025);}
  .nav{display:flex;align-items:center;gap:24px;max-width:none;margin:0 auto;padding:8px 28px;}
  .brand{display:flex;align-items:center;gap:14px;margin-right:auto;text-decoration:none;}
  .brand .mark{width:50px;height:50px;flex:none;object-fit:contain;display:block;
    filter:drop-shadow(0 4px 12px rgba(18,168,146,.18));}
  @keyframes markfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
  @media (prefers-reduced-motion:reduce){ .brand .mark{animation:none;} }
  .brand b{font-family:'Sora',sans-serif;font-size:1.8rem;font-weight:700;letter-spacing:-.055em;display:block;line-height:1.1;text-transform:none;}
  .brand b span{color:var(--teal-deep);}
  .nav ul{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:5px;border:1px solid #d9e7e7;border-radius:100px;background:linear-gradient(145deg,#e5f1ef,#edf2f7);box-shadow:inset 0 2px 4px #35596a12,0 5px 16px #254d6010;}
  @media (min-width:541px){
    .nav ul{gap:6px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;}
    #legend .chip[data-id="hub"]{display:none;}
  }
  .nav ul a{display:block;font-size:.87rem;font-weight:600;text-decoration:none;color:#405763;padding:10px 15px;border-radius:100px;background:linear-gradient(165deg,#fff 0%,#edf6f5 55%,#dfedee 100%);box-shadow:inset 0 1px 1px #fff,inset 0 0 0 1px #ffffffb3,0 2px 0 #b9d1d3,0 3px 5px #1b4b5810;text-shadow:0 1px 0 #ffffffb3;transition:color .2s,background .2s,box-shadow .2s,transform .2s;white-space:nowrap;}
  .nav ul a:hover,.nav ul a:focus-visible{color:#056c64;background:linear-gradient(165deg,#faffff,#d8f4eb 60%,#c4e7e2);transform:translateY(-2px);box-shadow:inset 0 1px 1px #fff,inset 0 0 0 1px #b3ded6,0 4px 0 #91bdb9,0 7px 12px #128c7926;}
  .nav ul a:active{transform:translateY(1px);background:linear-gradient(165deg,#d1e9e5,#e6f4f1);box-shadow:inset 0 2px 4px #285e642b,0 1px 0 #aecacb;}
  @media(prefers-reduced-motion:reduce){.nav ul a{transition:none;}.nav ul a:hover,.nav ul a:active,.nav ul a:focus-visible{transform:none;}}
  .assistant-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;flex:none;background:linear-gradient(165deg,#23b6a5 0%,#078c89 48%,#076c91 100%);color:#fff;font-weight:700;font-size:.9rem;padding:11px 19px;border:1px solid #139b99;border-radius:14px;text-decoration:none;white-space:nowrap;box-shadow:inset 0 2px 1px #ffffff70,inset 0 -2px 4px #00475950,0 4px 0 #075569,0 8px 16px #078c8926;text-shadow:0 1px 2px #00485880;transition:transform .2s,box-shadow .2s;}
  .assistant-cta{font-size:.8rem;padding:8px 14px;gap:8px;border-radius:12px;}
  .assistant-cta .assistant-mark{width:23px;height:23px;flex:none;object-fit:contain;filter:brightness(0) invert(1);}
  .assistant-cta:hover{transform:translateY(-2px);box-shadow:inset 0 2px 1px #ffffff70,0 6px 0 #075569,0 10px 20px #078c8935;}
  .assistant-cta:active{transform:translateY(3px);box-shadow:inset 0 1px 3px #003b5560,0 1px 0 #075569;}
  #campus,#sobre,#contato{scroll-margin-top:120px;}
  @media (max-width:1000px){
    .nav{flex-wrap:wrap;gap:10px;padding:8px 20px;}
    .nav ul{justify-content:center;}
    #campus,#sobre,#contato{scroll-margin-top:160px;}
  }
  @media (max-width:540px){
    .nav{padding:12px 16px;gap:10px;}
    .brand{gap:8px;}.brand .mark{width:46px;height:46px;}.brand b{font-size:1.35rem;}
    .nav .cta{font-size:.75rem;padding:12px;gap:7px;border-radius:12px;}.nav .cta .assistant-mark{width:23px;height:23px;}
    .nav ul a{font-size:.78rem;padding:8px 12px;}
    .nav ul{width:100%;border-radius:100px;padding:5px;margin-top:4px;}
    .nav{gap:4px;padding:8px 16px;}
  }

  /* stage section */
  .nav,.hero-sec,.panel-intro{font-family:'DM Sans',sans-serif;}
  .brand b{font-family:'Outfit',sans-serif;font-size:2rem;letter-spacing:-.035em;}
  @media(max-width:540px){.brand b{font-size:1.35rem;}}
  .hero-sec{padding:10px 0 16px;}
  .hero-sec .wrap{max-width:none;padding:0 32px;}
  .stage-sec{padding:0 0 22px;}
  .stage-head{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:24px;}
  .stage-head .eyebrow{display:flex;align-items:center;gap:10px;font-family:inherit;font-size:.72rem;font-weight:700;letter-spacing:.12em;color:#087c70;}
  .stage-head .eyebrow::before{content:'';width:24px;height:2px;background:linear-gradient(90deg,#10b89e,#367bc0);}
  .stage-head h1{font-family:'Outfit',sans-serif;font-size:clamp(1.2rem,1.85vw,2rem);font-weight:500;max-width:none;margin:0;line-height:1.16;letter-spacing:-.035em;}
  .stage-head h1 span{color:#087f78;}
  .stage-head h1 .hero-learning{color:var(--ink);}
  .mobile-map-base,.mobile-hub-link{display:none;}
  .stage-head .lede{color:#485b68;max-width:49ch;font-size:1rem;line-height:1.75;}
  .stage-head .explore-hint{display:flex;align-items:center;gap:9px;margin-top:18px;color:#087c70;font-size:.8rem;font-weight:600;}
  .explore-hint svg{width:18px;height:18px;flex:none;}
  @media(max-width:760px){
    .hero-sec{padding:10px 0 14px;}.hero-sec .wrap{padding:0 16px;}
    .stage-head{gap:12px;}.stage-head h1{max-width:26ch;margin:0;}.stage-head .lede{font-size:.93rem;}
    .assistant-cta{font-size:.7rem;padding:7px 10px;gap:6px;white-space:normal;max-width:135px;line-height:1.25;}
    .assistant-cta .assistant-mark{width:20px;height:20px;}
    .stage-head .explore-hint{margin-top:12px;}
  }
  @media(prefers-reduced-motion:reduce){.assistant-cta,.chip{transition:none!important;}}

  .stage{
    position:relative;height:auto;aspect-ratio:2.34135;border-radius:26px;overflow:hidden;
    width:min(100%,var(--panel-width,100%));margin:0 auto;
    background:#050e1c;border:1px solid rgba(255,255,255,.08);
    box-shadow:0 30px 70px -34px rgba(6,20,36,.7);
  }
  .panel-art{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:fill;z-index:0;}
  .panel-intro{position:absolute;top:16px;left:50%;transform:translateX(-50%);width:34%;z-index:3;text-align:center;pointer-events:none;color:#d5f3f5;}
  .panel-intro p{font-family:'Outfit',sans-serif;font-weight:500;font-size:clamp(.8rem,1.25vw,1.15rem);letter-spacing:.015em;line-height:1.25;text-shadow:0 2px 10px #00101e;}
  .panel-intro span{display:block;margin-top:5px;font-size:clamp(.65rem,.85vw,.8rem);color:#9ebdca;}
  .room-effects{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;}
  .room-hotspot{pointer-events:auto;cursor:pointer;outline:none;}
  .room-visual{transform-box:view-box;transform-origin:var(--room-origin);transition:transform .28s ease,filter .28s ease;}
  .room-hotspot.active .room-visual,.room-hotspot:hover .room-visual,.room-hotspot:focus-visible .room-visual{transform:scale(1.025);filter:brightness(1.15) saturate(1.06);}
  .room-title{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:24px;font-weight:500;letter-spacing:1px;
    fill:var(--room-color);text-anchor:middle;transition:filter .25s ease,fill .25s ease;}
  .room-hotspot.active .room-title,.room-hotspot:hover .room-title,.room-hotspot:focus-visible .room-title{
    fill:#f0fcff;filter:drop-shadow(0 0 3px var(--room-color)) drop-shadow(0 0 8px var(--room-color));}
  .room-hotspot:focus-visible .room-nameplate{stroke:var(--room-color);stroke-width:2;}
  @media(prefers-reduced-motion:reduce){.room-visual,.room-title{transition:none!important;}.room-hotspot .room-visual{transform:none!important;}}
  .stage svg.scene{width:100%;height:100%;display:block;}
  /* A arte aprovada já contém ambientes e caminhos; o SVG fica somente como camada de clique. */
  .stage svg.scene{position:relative;z-index:1;opacity:0!important;pointer-events:none;}
  .scene .hub{pointer-events:auto;}
  /* A arte aprovada já contém os quatro ambientes; o SVG fica como camada interativa. */
  .scene .roomimg,.scene .ilabel,.scene .hub{opacity:0!important;}
  .scene .star,.scene #world>ellipse,.scene #world>.island,.scene #world>.hub{opacity:0!important;}
  .scene #world>.links-layer{opacity:0!important;}
  .scene .badge-glow,.scene .island .bob>circle,.scene .island .bob>svg{opacity:0!important;}
  /* Os ambientes permanecem estáticos; apenas o clique abre o menu. */
  .scene .hover-frame{display:none!important;}
  /* Encobre apenas o aviso da arte de fundo, abaixo das salas e suas legendas. */
  .hint-cover{position:absolute;left:28%;right:28%;bottom:18px;height:42px;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(4,13,26,0),rgba(4,13,26,.92) 46%,#040d1a 100%);}
  /* Ampliação horizontal leve: arte e efeitos compartilham exatamente
     a mesma escala, sem recortar salas ou caminhos.
     As setas seguem os eixos medidos e ficam limitadas à largura das passarelas. */
  .walkway-effects{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:hidden;}
  .walkway-corridor{fill:none;stroke:white;stroke-width:28;stroke-linecap:butt;}
  .walkway-arrow{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
    filter:drop-shadow(0 0 .7px currentColor);}
  @media (prefers-reduced-motion:reduce){.walkway-effects{display:none;}}
  /* A marca vetorial original forma a face e a espessura, sem bitmap ampliado. */
  .hub-overlay{position:absolute;left:50%;top:37.5%;width:108px;height:108px;
    transform:translate(-50%,-50%);perspective:650px;z-index:2;pointer-events:none;
    animation:hub-float 6s ease-in-out infinite;}
  .hub-overlay::before{content:'';position:absolute;inset:-14%;border-radius:50%;background:radial-gradient(ellipse,rgba(29,218,225,.17),rgba(15,147,211,.06) 50%,transparent 72%);}
  .hub-sculpture{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(8deg) rotateY(0deg);animation:hub-turn 14s linear infinite;}
  .hub-sculpture img{position:absolute;left:-150%;top:-150%;display:block;width:400%;height:400%;max-width:none;object-fit:contain;backface-visibility:visible;}
  .hub-edge{transform:translateZ(calc(var(--depth) * var(--hub-depth-unit,1px))) scale(.25);filter:brightness(.9) saturate(1.08);}
  .hub-sculpture .hub-face,.hub-sculpture .hub-back{backface-visibility:hidden;filter:brightness(1.24) saturate(1.08);}
  .hub-face{transform:translateZ(calc(1.75 * var(--hub-depth-unit,1px))) scale(.25);}
  .hub-back{transform:translateZ(calc(-1.75 * var(--hub-depth-unit,1px))) rotateY(180deg) scale(.25);}
  @keyframes hub-float{0%,100%{transform:translate(-50%,-50%) translateY(0);}50%{transform:translate(-50%,-50%) translateY(-6px);}}
  @keyframes hub-turn{from{transform:rotateX(8deg) rotateY(0deg);}to{transform:rotateX(8deg) rotateY(360deg);}}
  @media (prefers-reduced-motion:reduce){.hub-overlay,.hub-sculpture{animation:none;}}
  .stage > .hint{z-index:3;}
  .stage-shell > #cards{position:static;}
  .scene .island{cursor:pointer;transition:none;}
  .scene .island .bob{animation:none;}
  .scene .hub{cursor:pointer;transition:none;}
  .scene.has-active .island:not(.active),
  .scene.has-active.hub-active .hub:not(.active){opacity:1;}
  .scene .island:hover,.scene .island.active,.scene .hub:hover,.scene .hub.active{transform:none;}
  .scene .roomimg{filter:drop-shadow(0 20px 30px rgba(0,0,0,.55));}
  .scene .aura{transition:opacity .3s;}
  .scene .island.active .aura{opacity:.34;}
  .scene #world{transition:transform .45s cubic-bezier(.2,.8,.3,1);}
  .scene .rim{transition:opacity .3s;}
  .scene .island.active .rim{opacity:1;}
  .scene .badge-glow{opacity:.35;transition:opacity .3s;}
  .scene .island.active .badge-glow{opacity:.95;}
  .scene .flow{display:none!important;}
  .scene .link.active .flow{display:none!important;}
  .scene .hublogo{transform-box:fill-box;transform-origin:center;
    filter:drop-shadow(0 8px 18px rgba(0,0,0,.45));}
  .scene .castshadow{transform-box:fill-box;transform-origin:center;}
  @keyframes levitate{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
  @keyframes shadowpulse{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(.86);opacity:.32}}
  .scene .ring{transform-box:fill-box;transform-origin:center;}
  .scene .ring.b{ }
  .scene .ilabel{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:14px;letter-spacing:.14em;text-transform:uppercase;}
  .scene .hlabel{font-family:'Sora',sans-serif;font-size:19px;font-weight:700;fill:#eafaf6;}
  .scene .hsub{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;fill:#7fd8c8;}
  @keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
  @keyframes flow{to{stroke-dashoffset:-260}}
  @keyframes spin{to{transform:rotate(360deg)}}
  @keyframes twinkle{0%,100%{opacity:.15}50%{opacity:.75}}
  .scene .star{animation:twinkle 5s ease-in-out infinite;}
  @media (prefers-reduced-motion:reduce){
    .scene .bob,.scene .flow,.scene .ring,.scene .star{animation:none!important;}
    .scene .island,.scene .hub{transition:none;}
  }

  .stage-shell{position:relative;}
  .stage-shell > #cards .card{z-index:3;}
  .mobile-pan-hint{display:none;}
  /* cards */
  #cards .card{
    position:absolute;width:min(300px,calc(100% - 28px));padding:16px 18px 12px;border-radius:20px;
    background:linear-gradient(152deg,
      color-mix(in srgb,var(--accent) 10%,transparent),
      rgba(5,17,34,.18));
    border:1px solid color-mix(in srgb,var(--accent) 62%,transparent);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.4), inset 0 0 24px color-mix(in srgb,var(--accent) 8%,transparent),
               0 0 22px color-mix(in srgb,var(--accent) 18%,transparent),0 16px 36px rgba(0,5,15,.28);
    text-shadow:0 1px 4px #020b19,0 2px 10px #020b19;
    color:#e8f3f7;opacity:0;visibility:hidden;pointer-events:none;
    height:auto;max-height:none;overflow:visible;
    transform-origin:top left;
    transform:translate(var(--tx,0),calc(var(--ty,0px) + var(--enter-y,-12px))) scale(var(--card-scale,1));
    transition:opacity .26s ease,transform .26s cubic-bezier(.2,.8,.3,1),visibility .26s;
  }
  #cards .card.show{backdrop-filter:blur(5px) saturate(120%);-webkit-backdrop-filter:blur(5px) saturate(120%);}
  #cards .card.show{opacity:1;visibility:visible;pointer-events:auto;transform:translate(var(--tx,0),var(--ty,0)) scale(var(--card-scale,1));}
  #cards .card h3{font-size:1rem;font-weight:700;line-height:1.35;color:var(--accent);text-align:center;}
  #cards .card h3::before{content:"";display:block;width:28px;height:2px;margin:0 auto 9px;border-radius:3px;background:var(--accent);box-shadow:0 0 12px var(--accent);}
  #cards .card p{font-size:.9rem;line-height:1.5;color:#edf5fc;margin-top:9px;text-align:center;text-wrap:pretty;}
  #cards .card ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;}
  #cards .card li+li{border-top:1px solid color-mix(in srgb,var(--accent) 25%,transparent);}
  #cards .card li a{display:flex;align-items:center;min-height:36px;padding:8px 4px;font-size:.82rem;line-height:1.35;text-decoration:none;color:#f2f9fc;font-weight:500;border-radius:9px;transition:background .2s,color .2s;}
  #cards .card li a:hover,#cards .card li a:focus-visible{color:#fff;background:color-mix(in srgb,var(--accent) 18%,transparent);text-shadow:0 0 9px var(--accent);}
  #cards .card .go{
    display:inline-flex;align-items:center;gap:8px;margin-top:14px;width:100%;justify-content:center;
    background:transparent;border:0;box-shadow:none;
    color:color-mix(in srgb,var(--accent) 65%,white);font-family:inherit;font-weight:600;font-size:.9rem;min-height:44px;padding:11px 16px;border-radius:6px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px;text-decoration-thickness:1px;cursor:pointer;
    text-shadow:0 1px 3px rgba(0,10,20,.5);transition:color .2s,text-decoration-color .2s;
  }
  #cards .card .go:hover,#cards .card .go:focus-visible{text-decoration-color:currentColor;}
  #cards .card .go:focus-visible,.card-close:focus-visible{outline:2px solid var(--accent);outline-offset:4px;}
  .card-close{display:none;}
  #cards .card .card-status{font-size:.8rem;margin:10px 0 0;}
  .hint{
    position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
    font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
    color:rgba(190,215,225,.5);pointer-events:none;transition:opacity .22s;
  }
  /* o aviso some enquanto um menu está aberto, para não brigar com o card */
  .stage-shell:has(#cards .card.show) .hint{opacity:0;}
  @media (max-width:880px){
    .panel-intro{top:10px;width:35%;}.panel-intro span{display:none;}
    .hub-overlay{width:12%;height:auto;aspect-ratio:1;--hub-depth-unit:.4px;}
    #cards .card{padding:16px 18px 12px;}
    .stage{aspect-ratio:1.72;}
  }
  @media (max-width:880px),(max-height:560px){
    .stage-shell > #cards .card{padding:28px 24px 22px;max-height:calc(100dvh - 110px);overflow-y:auto;}
    #cards .card h3{font-size:1.15rem;padding:0 18px;}
    #cards .card p{font-size:1rem;}
    .card-close{display:grid;place-items:center;position:absolute;top:4px;right:4px;width:44px;height:44px;border:0;background:transparent;color:#edf5fc;font-size:1.5rem;cursor:pointer;}
  }
  @media (max-width:600px){
    .stage-sec .wrap-wide{padding:0 1px;}
    .nav{padding:5px 10px;gap:8px;flex-wrap:nowrap;}
    .brand{gap:6px;flex:none;}
    .brand .mark{width:36px;height:36px;}
    .brand b{font-size:clamp(1.05rem,5vw,1.35rem);}
    .nav ul{width:auto;flex:none;gap:6px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;}
    .nav ul a{display:flex;align-items:center;justify-content:center;padding:6px 9px;font-size:.7rem;min-height:40px;}
    .nav .nav-contact{display:none;}
    .hero-sec{padding:5px 0 8px;}
    .hero-sec .wrap{padding:0 12px;}
    .stage-head{gap:8px;}
    .stage-head>div{flex:1;min-width:0;}
    .stage-head h1{font-size:clamp(13px,3.8vw,20.5px);line-height:1.4;max-width:none;}
    .stage-head h1 span{display:block;white-space:nowrap;}
    .stage-head .assistant-cta{width:100px;max-width:100px;min-height:44px;padding:6px;gap:5px;font-size:10px;text-align:center;}
    .stage-head .assistant-mark{width:18px;height:18px;}
    .stage-head .assistant-cta span{flex:none;width:62px;}
    .stage-scroll{width:100%;max-width:100%;margin:0 auto;overflow:hidden;border-radius:22px;background:#050e1c;}
    .stage-scroll .stage{width:100%;max-width:none;margin:0;box-shadow:none;aspect-ratio:var(--mobile-panel-ratio,4/5);}
    .stage .panel-art,.stage .walkway-effects,.stage .hint-cover,.stage svg.scene{display:none;}
    .mobile-map-base{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
    .stage .hub-overlay{top:44%;width:var(--mobile-hub-size,18%);}
    .stage .room-title{font-size:28px;}
    .stage .room-hotspot[data-id="ia"] :is(.room-title,.room-nameplate){transform:translateX(-80px);}
    .stage .room-hotspot[data-id="rv"] :is(.room-title,.room-nameplate){transform:translateX(60px);}
    .mobile-hub-link{display:block;position:absolute;left:37%;top:35%;width:26%;height:23%;z-index:2;border-radius:50%;border:0;padding:0;background:transparent;cursor:pointer;}
    .mobile-pan-hint{display:block;margin:5px 16px 0;text-align:center;color:#55646f;font-size:.75rem;line-height:1.5;}
    #legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:0 6px;margin-top:7px;}
    #legend .chip{justify-content:center;gap:3px;min-height:36px;padding:4px 2px;font-size:clamp(8px,2.2vw,12px);white-space:nowrap;}
    #legend .chip-icon{width:12px;}
    #legend .chip-icon svg{width:12px;height:12px;}
    #legend .chip[data-id="hub"]{display:none;}
    #legend .chip-label-full{display:none;}
    #legend .chip-label-mobile{display:inline;}
  }
  .chip-label-mobile{display:none;}

  /* legend */
  .legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;justify-content:center;}
  .chip{
    display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:100px;cursor:pointer;
    border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:.76rem;font-weight:500;
    font-family:inherit;transition:border-color .2s,transform .2s;
  }
  .chip-icon{position:relative;width:15px;height:9px;flex:none;display:block;color:var(--c);}
  .chip-icon svg,.chip-icon img{position:absolute;left:0;top:50%;transform:translateY(-50%);width:15px;height:15px;display:block;object-fit:contain;}
  .chip{background:linear-gradient(170deg,#fff,color-mix(in srgb,var(--c) 16%,#f3f7fa));border-color:color-mix(in srgb,var(--c) 38%,#d5e0e6);box-shadow:inset 0 2px 1px #fff,0 3px 0 color-mix(in srgb,var(--c) 32%,#bccdd6),0 6px 12px #0a293514;transition:transform .2s,box-shadow .2s;}
  .chip:hover{transform:translateY(-2px);}
  .chip.on{border-color:var(--c);background:linear-gradient(170deg,#fff,color-mix(in srgb,var(--c) 26%,#edf6fa));box-shadow:inset 0 1px 0 #fff,0 3px 0 color-mix(in srgb,var(--c) 70%,#486276),0 6px 16px color-mix(in srgb,var(--c) 22%,transparent);}
  .chip[data-id="hub"]{color:white;background:linear-gradient(160deg,#29bcae,#087b91);border-color:#1ab1aa;box-shadow:inset 0 2px 1px #ffffff65,0 4px 0 #07576a,0 8px 16px #0b7f7928;text-shadow:0 1px 2px #003f5060;}
  .chip[data-id="hub"] .chip-icon img{filter:brightness(0) invert(1);}
  .chip:active{transform:translateY(2px);box-shadow:inset 0 1px 3px #18374520,0 1px 0 #9fb8c0;}

  /* impacto */
  .impacto{display:none;}
  .impacto h2{font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:700;}
  .imp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:30px;}
  @media (max-width:1040px){.imp-grid{grid-template-columns:repeat(3,1fr);}}
  @media (max-width:700px){.imp-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:460px){.imp-grid{grid-template-columns:1fr;}}
  .imp{
    position:relative;overflow:hidden;
    background:linear-gradient(158deg,#16293b 0%,#0b1826 62%);
    border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:24px 21px;
    color:#e9f2f7;display:flex;flex-direction:column;gap:13px;
    box-shadow:0 16px 38px -28px rgba(6,20,36,.85);
    transition:transform .28s cubic-bezier(.2,.8,.3,1),box-shadow .28s,border-color .28s;
  }
  .imp::before{
    content:"";position:absolute;inset:-40% 45% 55% -30%;border-radius:50%;
    background:var(--c);opacity:.12;filter:blur(38px);pointer-events:none;transition:opacity .28s;
  }
  .imp:hover{
    transform:translateY(-5px);
    border-color:color-mix(in srgb,var(--c) 52%,transparent);
    box-shadow:0 26px 54px -26px color-mix(in srgb,var(--c) 62%,transparent);
  }
  .imp:hover::before{opacity:.22;}
  .ico{
    position:relative;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;color:var(--c);
    background:color-mix(in srgb,var(--c) 16%,#0b1826);
    border:1px solid color-mix(in srgb,var(--c) 42%,transparent);
    box-shadow:0 0 18px -6px color-mix(in srgb,var(--c) 70%,transparent);
    transition:background .28s,color .28s,transform .28s cubic-bezier(.2,.8,.3,1);
  }
  .ico svg{width:24px;height:24px;display:block;}
  .imp:hover .ico{background:var(--c);color:#08151f;transform:translateY(-2px) rotate(-5deg);}
  .imp b{position:relative;font-family:'Sora',sans-serif;font-size:.97rem;font-weight:600;letter-spacing:-.02em;color:#fff;}
  .imp small{position:relative;color:#9db3c2;font-size:.84rem;line-height:1.5;}
  @media (prefers-reduced-motion:reduce){ .imp,.imp .ico{transition:none;} .imp:hover{transform:none;} .imp:hover .ico{transform:none;} }

  .proposito{margin-top:52px;background:var(--navy);border-radius:24px;padding:40px;color:#dce9f0;display:grid;grid-template-columns:1fr 1.4fr;gap:34px;align-items:center;}
  @media (max-width:820px){.proposito{grid-template-columns:1fr;padding:28px;}}
  .proposito h2{color:#fff;font-size:1.5rem;}
  .proposito p{color:#a9c2ce;font-size:1rem;}
  .proposito .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
  .proposito .tags span{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:5px 11px;color:#8fd8ca;}

  /* footer.site-foot */
  footer.site-foot{margin-top:28px;border-top:1px solid var(--line);padding:28px 0 12px;}
  .foot{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:36px;}
  @media (max-width:780px){.foot{grid-template-columns:1fr;gap:26px;}}
  .foot h4{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 13px;}
  .foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
  .foot a{font-size:.9rem;text-decoration:none;}
  .foot a:hover{color:var(--teal-deep);}
  .foot p{color:var(--ink-soft);font-size:.9rem;max-width:40ch;}
  .foot-bottom{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:.8rem;color:var(--ink-soft);}
  /* Rodapé monocromático: marcas oficiais preservadas, sem esticar imagens. */
  footer.site-foot{color:var(--ink-soft);background:#fff;}
  footer.site-foot :focus-visible{outline-color:var(--ink-soft);}
  footer.site-foot .wrap{max-width:1240px;padding:0 26px;}
  .foot{grid-template-columns:1.5fr 1fr 1.2fr;gap:36px;}
  .foot h4{font-family:'DM Sans',sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.13em;}
  .footer-brand{font-family:'Outfit',sans-serif;font-size:1.25rem;font-weight:600;letter-spacing:-.035em;margin-bottom:12px;}
  .foot p,.foot a,.foot li{font-size:.86rem;line-height:1.7;}
  .foot a:hover{color:#34434d;}
  .partner-logos{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin:0;}
  .partner-logo{display:inline-flex;align-items:center;gap:9px;min-width:0;text-align:left;text-decoration:none;}
  .partner-logo img{display:block;height:19px;width:19px;flex:none;object-fit:contain;filter:grayscale(1);opacity:.8;transition:opacity .2s;}
  .partner-logo span{font-size:inherit;font-weight:400;letter-spacing:0;}
  .partner-logo:hover img,.partner-logo:focus-visible img{opacity:1;}
  .foot .contact-list{gap:8px;}
  .contact-list a{overflow-wrap:anywhere;}
  .social-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px;}
  .social-link{display:inline-flex;align-items:center;gap:9px;padding:0;text-decoration:none;background:transparent;}
  .social-link svg{width:17px;height:17px;flex:none;display:block;}
  .social-link:hover span,.partner-logo:hover span{text-decoration:underline;text-underline-offset:3px;}
  .developer-credit{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;text-decoration:none;color:var(--ink-soft);}
  .developer-credit img{display:block;width:24px;height:24px;object-fit:contain;transition:transform .2s,filter .2s;}
  .developer-credit:hover img,.developer-credit:focus-visible img{transform:scale(1.08);filter:drop-shadow(0 2px 3px #55646f30);}
  .developer-tooltip{position:absolute;right:0;bottom:calc(100% + 8px);width:max-content;max-width:min(280px,calc(100vw - 48px));padding:10px 14px;border:1px solid #dde3e8;border-radius:10px;background:#fff;color:#46545e;font-size:.76rem;box-shadow:0 6px 20px #26394318;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s,transform .2s,visibility .2s;pointer-events:none;}
  .developer-credit:hover .developer-tooltip,.developer-credit:focus-visible .developer-tooltip{opacity:1;visibility:visible;transform:translateY(0);}
  .foot-bottom{align-items:center;margin-top:16px;padding-top:4px;font-size:.74rem;line-height:1.4;}
  @media(max-width:1000px){.foot{gap:28px;grid-template-columns:1fr 1fr;}.foot>div:last-child{grid-column:1/-1;}}
  @media(max-width:620px){footer.site-foot .wrap{padding:0 22px;}.foot{grid-template-columns:1fr;gap:28px;}.foot>div:last-child{grid-column:auto;}.partner-logos{max-width:360px;}.partner-note{text-align:left;}.foot-bottom{flex-wrap:nowrap;font-size:.7rem;}.developer-credit{flex:none;}}
  @media(prefers-reduced-motion:reduce){.partner-logo img,.developer-credit img,.developer-tooltip{transition:none;}}
