/* Proteção inicial contra a exibição do HTML cru enquanto o CSS principal carrega. */
[hidden] { display: none !important; }
html, body { margin: 0; min-height: 100%; background: #020705; }
body { min-height: 100vh; }
.boot-view {
  position: fixed;
  z-index: 99999;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 10px;
  padding: 24px;
  color: #f4fff8;
  background:
    radial-gradient(circle at 50% 38%, rgba(85, 242, 139, .12), transparent 22rem),
    #020705;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-align: center;
}
.boot-mark {
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  border: 2px solid #55f28b;
  border-radius: 50%;
  color: #ffe35b;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .08em;
  box-shadow: 0 0 0 8px rgba(85, 242, 139, .05), 0 0 32px rgba(85, 242, 139, .18);
  animation: glbr-boot-pulse 1.35s ease-in-out infinite;
}
.boot-view strong { color: #f4fff8; font-size: 1rem; letter-spacing: .13em; }
.boot-view span { color: #91a99a; font-size: .78rem; }
@keyframes glbr-boot-pulse { 50% { transform: scale(.94); opacity: .72; } }
@media (prefers-reduced-motion: reduce) { .boot-mark { animation: none; } }

/* Experiência institucional exibida antes das páginas públicas. */
.glbr-intro {
  position: fixed;
  z-index: 99999;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 24px;
  color: #f4fff8;
  background:
    radial-gradient(circle at 50% 40%, rgba(85, 242, 139, .13), transparent 20rem),
    radial-gradient(circle at 67% 27%, rgba(240, 196, 0, .08), transparent 16rem),
    #020705;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  transition: opacity .46s ease, visibility .46s ease;
}
.glbr-intro::before {
  content: "";
  position: absolute;
  inset: -30%;
  opacity: .34;
  background-image:
    linear-gradient(rgba(85, 242, 139, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(85, 242, 139, .055) 1px, transparent 1px);
  background-size: 42px 42px;
  transform: perspective(520px) rotateX(58deg) translateY(22%);
  animation: glbr-grid-flow 5s linear infinite;
}
.glbr-intro::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 38%, rgba(85, 242, 139, .055) 50%, transparent 62%);
  transform: translateX(-100%);
  animation: glbr-scan 2.6s ease-in-out infinite;
}
.glbr-intro-stage { position: relative; z-index: 1; display: grid; justify-items: center; width: min(560px, 100%); text-align: center; }
.glbr-intro-core { position: relative; display: grid; place-items: center; width: 152px; height: 152px; margin-bottom: 20px; }
.glbr-intro-core::before,.glbr-intro-core::after { content: ""; position: absolute; border-radius: 50%; }
.glbr-intro-core::before { inset: 4px; border: 1px solid rgba(85, 242, 139, .34); border-top-color: #55f28b; border-bottom-color: #f0c400; animation: glbr-orbit 2.8s linear infinite; }
.glbr-intro-core::after { inset: 20px; border: 1px dashed rgba(240, 196, 0, .42); animation: glbr-orbit 5s linear infinite reverse; }
.glbr-intro-logo { position: relative; z-index: 2; width: 82px; height: 82px; object-fit: contain; filter: drop-shadow(0 0 18px rgba(85,242,139,.28)) drop-shadow(0 0 8px rgba(240,196,0,.2)); animation: glbr-logo-breathe 1.8s ease-in-out infinite; }
.glbr-intro-dot { position: absolute; z-index: 3; top: 8px; left: 50%; width: 7px; height: 7px; margin-left: -3.5px; border-radius: 50%; background: #f0c400; box-shadow: 0 0 12px #f0c400; transform-origin: 3.5px 68px; animation: glbr-orbit 2.8s linear infinite; }
.glbr-intro-kicker { margin: 0 0 8px; color: #55f28b !important; font: 850 .68rem/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .19em; }
.glbr-intro-title { margin: 0; color: #f4fff8 !important; font-size: clamp(1.45rem, 5vw, 2.15rem) !important; line-height: 1.12; letter-spacing: -.025em !important; }
.glbr-intro-copy { max-width: 440px; margin-top: 10px; color: #a7b9ae !important; font-size: clamp(.79rem, 2.5vw, .94rem) !important; line-height: 1.55; }
.glbr-intro-progress { width: min(310px, 78vw); height: 3px; margin-top: 25px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.075); }
.glbr-intro-progress i { display: block; width: 42%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, transparent, #55f28b 48%, #f0c400 78%, transparent); box-shadow: 0 0 15px rgba(85,242,139,.5); animation: glbr-progress 1.55s ease-in-out infinite; }
.glbr-intro-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin-top: 18px; }
.glbr-intro-tags span { padding: 5px 8px; border: 1px solid rgba(85,242,139,.14); border-radius: 999px; color: #789487 !important; background: rgba(85,242,139,.035); font: 750 .56rem/1 ui-monospace, SFMono-Regular, Consolas, monospace !important; letter-spacing: .09em; }
.glbr-intro.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
@keyframes glbr-grid-flow { to { transform: perspective(520px) rotateX(58deg) translateY(calc(22% + 42px)); } }
@keyframes glbr-scan { 45%,100% { transform: translateX(100%); } }
@keyframes glbr-orbit { to { transform: rotate(360deg); } }
@keyframes glbr-logo-breathe { 50% { transform: scale(.94); filter: drop-shadow(0 0 26px rgba(85,242,139,.42)) drop-shadow(0 0 12px rgba(240,196,0,.27)); } }
@keyframes glbr-progress { from { transform: translateX(-110%); } to { transform: translateX(340%); } }
@media (max-width: 520px) { .glbr-intro-core { width: 132px; height: 132px; } .glbr-intro-logo { width: 72px; height: 72px; } .glbr-intro-dot { transform-origin: 3.5px 58px; } }
@media (prefers-reduced-motion: reduce) {
  .glbr-intro::before,.glbr-intro::after,.glbr-intro-core::before,.glbr-intro-core::after,.glbr-intro-logo,.glbr-intro-dot,.glbr-intro-progress i { animation: none; }
  .glbr-intro { transition-duration: .15s; }
  .glbr-intro-progress i { width: 100%; background: linear-gradient(90deg,#55f28b,#f0c400); }
}
