/* ============================================================
   PRISM Security, landing page
   Conteúdo alinhado à Proposta Comercial PRP-2026-001.
   Paleta:
     #060A09 void          #0B100E void_deep     #0E1412 carbon
     #1A2420 graphite      #00FFB2 spectral      #00A87A deep_signal
     #E8F2EE mist          #8FA39B ash_dark      #566159 text_muted_2
     #FFFFFF page_bg       #E2E8E5 hairline      #25302B text_body
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Space Grotesk', sans-serif; background: #060A09; color: #E8F2EE; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
a:hover { color: #00FFB2; }
img, svg { display: block; }

@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.cursor-blink { animation: blink 1s step-end infinite; }

/* Fade-in: visível por padrão. O JS "arma" só o que está abaixo da dobra,
   então se o JS falhar nada some. */
.fade-in { opacity: 1; }
.fade-in.armed { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.fade-in.armed.visible { opacity: 1; transform: none; }


/* ---------- Nav ---------- */
nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: rgba(6,10,9,.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid #1A2420; }
.nav-inner { max-width: 1200px; margin: 0 auto; padding: 0 32px; height: 64px; display: flex; align-items: center; justify-content: space-between; }
.nav-logo { display: flex; align-items: center; gap: 12px; }
.nav-wordmark { font-weight: 700; font-size: 16px; letter-spacing: .15em; color: #E8F2EE; }
.nav-wordmark i { display: inline-block; width: .5em; height: .72em; background: #00FFB2; margin-left: .06em; vertical-align: middle; font-style: normal; }
.nav-links { display: flex; gap: 28px; }
.nav-links a { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .2em; color: #8FA39B; text-transform: uppercase; transition: color .2s; }
.nav-links a:hover { color: #00FFB2; }
.nav-cta { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .16em; padding: 10px 20px; border: 1px solid #00A87A; color: #00FFB2; background: transparent; text-transform: uppercase; transition: background .2s; }
.nav-cta:hover { background: rgba(0,255,178,.08); color: #00FFB2; }
.hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; background: none; border: 0; }
.hamburger span { display: block; width: 22px; height: 1.5px; background: #E8F2EE; transition: transform .3s, opacity .3s; }
.hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* 5 itens no menu nao cabem abaixo de ~1100px sem encostar no logo,
   entao o menu sanduiche entra mais cedo que os outros breakpoints. */
@media (max-width: 1100px) {
  .nav-links { display: none; flex-direction: column; gap: 24px; position: absolute; top: 64px; left: 0; right: 0; background: rgba(6,10,9,.97); padding: 32px; border-bottom: 1px solid #1A2420; }
  .nav-links.open { display: flex; }
  .hamburger { display: flex; }
  .nav-cta { display: none; }
}

/* ---------- Layout ---------- */
section { width: 100%; }
.section-inner { max-width: 1200px; margin: 0 auto; padding: 96px 32px; }
.dark-bg { background: #060A09; background-image:
  repeating-linear-gradient(0deg, rgba(0,255,178,.025) 0 1px, transparent 1px 48px),
  repeating-linear-gradient(90deg, rgba(0,255,178,.025) 0 1px, transparent 1px 48px); }
.dark-bg-plain { background: #060A09; }
.light-bg { background: #FFFFFF; color: #25302B; }

.eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: #00FFB2; display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.eyebrow.light { color: #00A87A; }
.eyebrow::before { content: ''; display: block; width: 32px; height: 1px; background: currentColor; flex-shrink: 0; }
.eyebrow.no-line::before { display: none; }
.eyebrow.muted { color: #8FA39B; }
.accent-bar { width: 44px; height: 3px; background: #00A87A; margin: 16px 0 40px; }
.section-title { font-size: clamp(32px, 4vw, 48px); font-weight: 700; letter-spacing: -.01em; line-height: 1.1; }
.section-title.dark { color: #E8F2EE; }
.section-title.light-text { color: #0E1412; }
.section-lead { font-size: 16px; line-height: 1.7; max-width: 660px; margin-bottom: 48px; text-wrap: pretty; }
.section-lead.on-light { color: #25302B; }
.section-lead.on-dark { color: #8FA39B; }

/* ---------- Hero ---------- */
.hero { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; padding-top: 64px; position: relative; overflow: hidden; }
.hero::after { content: ''; position: absolute; bottom: -140px; right: -140px; width: 560px; height: 560px; background: radial-gradient(circle, rgba(0,255,178,.08) 0%, transparent 70%); pointer-events: none; }
.hero-inner { max-width: 1200px; margin: 0 auto; padding: 40px 32px; width: 100%; position: relative; z-index: 1; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); gap: 48px; align-items: center; }
.hero-h1 { font-size: clamp(34px, 4.4vw, 58px); font-weight: 700; line-height: 1.06; letter-spacing: -.02em; margin: 18px 0; color: #E8F2EE; text-wrap: balance; }
.hero-h1 .accent { color: #00FFB2; }
.hero-sub { font-size: clamp(15px, 1.2vw, 17px); color: #8FA39B; line-height: 1.6; max-width: 460px; margin-bottom: 32px; text-wrap: pretty; }
.hero-btns { display: flex; gap: 16px; flex-wrap: wrap; }

/* Prisma: feixe branco entra, binários verdes saem */
.prism-fig { width: 100%; max-width: 540px; margin-left: auto; }
.prism-fig svg { width: 100%; height: auto; overflow: visible; }
/* Lockup da marca: PRISM sobre o prisma, acrônimo aberto embaixo */
.brand-wordmark { font-size: clamp(22px, 2.4vw, 32px); font-weight: 700; letter-spacing: .34em; text-indent: .34em; color: #E8F2EE; text-align: center; margin: 0 10.7% 4px 0; }
.brand-expansion { font-family: 'JetBrains Mono', monospace; font-size: clamp(8.5px, .82vw, 11px); letter-spacing: .2em; text-indent: .2em; text-transform: uppercase; color: #566159; text-align: center; margin-top: 10px; }
.brand-expansion strong { color: #E8F2EE; font-weight: 700; }
.ray-bits { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: .8px; animation: rayDrift 5s linear infinite; }
@keyframes rayDrift { from { transform: translateX(-72px); } to { transform: translateX(0); } }
@keyframes beamPulse { 0%, 100% { opacity: 1; } 50% { opacity: .72; } }
/* Abertura: o feixe entra pela esquerda, atravessa o prisma e a dispersão acende */
@keyframes drawBeam { to { stroke-dashoffset: 0; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.beam-glow { stroke-dasharray: 190; stroke-dashoffset: 190; animation: drawBeam .8s ease-out .25s forwards; }
.beam-core { stroke-dasharray: 190; stroke-dashoffset: 190; animation: drawBeam .8s ease-out .25s forwards, beamPulse 3.6s ease-in-out 1.4s infinite; }
.beam-inner { stroke-dasharray: 140; stroke-dashoffset: 140; animation: drawBeam .42s linear 1.02s forwards; }
.exit-glow { opacity: 0; animation: fadeIn .55s ease-out 1.32s forwards; }
.ray-g { opacity: 0; animation: fadeIn .7s ease-out forwards; }
.btn-primary { background: #00FFB2; color: #060A09; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; padding: 16px 32px; border: none; cursor: pointer; transition: opacity .2s; display: inline-block; }
.btn-primary:hover { opacity: .88; color: #060A09; }
.btn-secondary { background: transparent; color: #E8F2EE; font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; padding: 15px 32px; border: 1px solid #1A2420; transition: border-color .2s; display: inline-block; }
.btn-secondary:hover { border-color: #8FA39B; color: #E8F2EE; }

/* Stats: mesmos números da proposta comercial */
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #1A2420; margin-top: 48px; }
.stat-item { padding: 24px 24px 20px 0; border-right: 1px solid #1A2420; }
.stat-item:nth-child(2) { padding-left: 24px; }
.stat-item:last-child { border-right: none; padding-left: 24px; }
.stat-num { font-size: clamp(26px, 2.6vw, 34px); font-weight: 700; color: #00FFB2; line-height: 1; margin-bottom: 10px; letter-spacing: -.02em; }
.stat-num small { font-size: .5em; font-weight: 500; letter-spacing: 0; margin-left: 2px; }
.stat-label { font-size: 12.5px; color: #8FA39B; line-height: 1.5; max-width: 240px; text-wrap: pretty; }
.stats-source { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .16em; color: #566159; text-transform: uppercase; margin-top: 16px; }

@media (max-width: 900px) {
  .hero { min-height: auto; padding-top: 88px; padding-bottom: 24px; }
  .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .prism-fig { max-width: 420px; margin: 0 auto; }
}
@media (max-width: 768px) {
  .stats-grid { grid-template-columns: 1fr; }
  .stat-item, .stat-item:nth-child(2), .stat-item:last-child { border-right: none; border-bottom: 1px solid #1A2420; padding: 20px 0; }
  .stat-item:last-child { border-bottom: none; }
  .stat-label { max-width: none; }
}
/* Telas baixas: encolhe o hero para caber sem cortar */
@media (min-width: 901px) and (max-height: 800px) {
  .hero-inner { padding: 24px 32px; }
  .hero-h1 { font-size: clamp(32px, 3.6vw, 46px); margin: 14px 0; }
  .hero-sub { margin-bottom: 24px; }
  .stats-grid { margin-top: 32px; }
  .stat-item { padding-top: 18px; padding-bottom: 14px; }
  .prism-fig { max-width: 440px; }
}

/* ---------- Serviços / modalidades ---------- */
.services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: #1A2420; align-items: stretch; }
@media (max-width: 1080px) { .services-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .services-grid { grid-template-columns: 1fr; } }
.service-card { background: #FFFFFF; padding: 32px 26px; border-top: 3px solid #0E1412; transition: transform .2s; }
.service-card:hover { transform: translateY(-4px); }
.service-card.recommended { border-top-color: #00A87A; background: #F7FCFA; }
.card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 24px; min-height: 40px; }
.icon-box { width: 40px; height: 40px; border: 1px solid #E2E8E5; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.card-kicker { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .22em; color: #8A968F; text-transform: uppercase; margin-bottom: 8px; }
.card-name { font-size: 18px; font-weight: 700; color: #0E1412; margin-bottom: 4px; }
.card-duration { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .16em; color: #00A87A; text-transform: uppercase; margin-bottom: 16px; }
.card-desc { font-size: 14px; color: #25302B; line-height: 1.6; margin-bottom: 24px; text-wrap: pretty; }
.card-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.card-list li { font-size: 13px; color: #25302B; display: flex; gap: 10px; align-items: flex-start; line-height: 1.5; }
.card-list li::before { content: '✓'; color: #00A87A; font-weight: 700; flex-shrink: 0; margin-top: 1px; }

.badge-rec { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: .16em; color: #FFFFFF; background: #00A87A; padding: 5px 9px; text-transform: uppercase; white-space: nowrap; }

/* ---------- Metodologia ---------- */
.process-list { display: flex; flex-direction: column; }
.process-step { display: grid; grid-template-columns: 80px 1fr; padding: 36px 0; border-bottom: 1px solid #1A2420; }
.process-step:first-child { border-top: 1px solid #1A2420; }
.process-step:last-child { border-bottom: none; }
.step-num { font-family: 'JetBrains Mono', monospace; font-size: 32px; font-weight: 700; color: #566159; padding-top: 4px; }
.step-name { font-size: 18px; font-weight: 600; color: #E8F2EE; margin-bottom: 8px; }
.step-desc { font-size: 14px; color: #8FA39B; line-height: 1.6; max-width: 680px; text-wrap: pretty; }
@media (max-width: 768px) {
  .process-step { grid-template-columns: 1fr; gap: 12px; }
  .step-num { font-size: 24px; }
}

/* ---------- Entregáveis ---------- */
.deliver-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: #E2E8E5; }
@media (max-width: 768px) { .deliver-grid { grid-template-columns: 1fr; } }
.deliver-cell { background: #FFFFFF; padding: 36px; }
.deliver-kicker { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .22em; color: #00A87A; text-transform: uppercase; margin-bottom: 10px; }
.deliver-name { font-size: 17px; font-weight: 700; color: #0E1412; margin-bottom: 8px; }
.deliver-desc { font-size: 14px; color: #25302B; line-height: 1.6; text-wrap: pretty; }

/* ---------- Por que a PRISM ---------- */
.why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px 56px; }
@media (max-width: 768px) { .why-grid { grid-template-columns: 1fr; gap: 32px; } }
.why-item { display: grid; grid-template-columns: 20px 1fr; gap: 14px; }
.why-arrow { color: #00A87A; font-size: 15px; line-height: 1.5; }
.why-name { font-size: 16px; font-weight: 700; color: #E8F2EE; margin-bottom: 6px; }
.why-desc { font-size: 14px; color: #8FA39B; line-height: 1.6; text-wrap: pretty; }

/* ---------- Setores ---------- */
.sectors-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: #E2E8E5; }
@media (max-width: 768px) { .sectors-grid { grid-template-columns: repeat(2, 1fr); } }
.sector-cell { background: #FFFFFF; padding: 32px 24px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .16em; color: #8A968F; text-transform: uppercase; transition: color .2s; }
.sector-cell:hover { color: #00A87A; }

/* ---------- Próximos passos ---------- */
.steps-list { display: flex; flex-direction: column; margin-top: 32px; border-top: 1px solid #1A2420; }
.step-row { display: grid; grid-template-columns: 34px 1fr; gap: 14px; padding: 18px 0; border-bottom: 1px solid #1A2420; }
.step-row-num { font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: #00A87A; padding-top: 2px; }
.step-row-name { font-size: 15px; font-weight: 600; color: #E8F2EE; margin-bottom: 5px; }
.step-row-desc { font-size: 13.5px; color: #8FA39B; line-height: 1.55; text-wrap: pretty; }

/* ---------- Contato ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; gap: 48px; } }
.contact-sub { font-size: 16px; color: #8FA39B; line-height: 1.6; max-width: 460px; text-wrap: pretty; }
.contact-email { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: #00FFB2; letter-spacing: .1em; margin-top: 28px; display: inline-block; }

.form-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.form-field label { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: #566159; }
.form-field input, .form-field select, .form-field textarea { background: #0B100E; border: 1px solid #1A2420; color: #E8F2EE; font-family: 'Space Grotesk', sans-serif; font-size: 14px; padding: 12px 16px; outline: none; transition: border-color .2s; border-radius: 0; -webkit-appearance: none; appearance: none; width: 100%; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: #00A87A; }
.form-field input[aria-invalid="true"], .form-field select[aria-invalid="true"], .form-field textarea[aria-invalid="true"] { border-color: #FF5C5C; }
.form-field textarea { resize: vertical; min-height: 248px; }
.form-field select { cursor: pointer; background-image: linear-gradient(45deg, transparent 50%, #566159 50%), linear-gradient(135deg, #566159 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 768px) { .form-row { grid-template-columns: 1fr; } }
.submit-btn { background: #00FFB2; color: #060A09; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; border: none; padding: 16px 32px; cursor: pointer; border-radius: 0; width: 100%; margin-top: 8px; transition: opacity .2s; }
.submit-btn:hover { opacity: .88; }
.submit-btn:disabled { opacity: .5; cursor: default; }
.form-error, .form-success { display: none; font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: .16em; text-align: center; margin-top: 16px; }
.form-error { color: #FF5C5C; border: 1px solid #FF5C5C; padding: 14px; }
.form-success { color: #00FFB2; border: 1px solid #00A87A; padding: 20px; letter-spacing: .18em; }
.form-note { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .14em; color: #566159; text-transform: uppercase; text-align: center; margin-top: 14px; line-height: 1.7; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Footer ---------- */
footer { border-top: 1px solid #1A2420; background: #060A09; }
.footer-inner { max-width: 1200px; margin: 0 auto; padding: 48px 32px; display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; flex-wrap: wrap; }
.footer-left { display: flex; flex-direction: column; gap: 12px; }
.footer-meta { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .18em; color: #8FA39B; line-height: 1.9; }
.footer-tagline { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .18em; color: #00A87A; text-transform: uppercase; align-self: flex-end; }
@media (max-width: 768px) { .footer-tagline { align-self: flex-start; } }

/* Foco visível para navegação por teclado */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid #00A87A; outline-offset: 2px; }

/* ---------- Regras que substituem os antigos atributos style= ----------
   Removidos para a CSP poder dispensar 'unsafe-inline' em style-src.
   Os valores sao identicos aos que estavam inline. */
.ray-1 { animation-delay: 1.62s; }
.ray-2 { animation-delay: 1.54s; }
.ray-3 { animation-delay: 1.45s; }
.ray-4 { animation-delay: 1.54s; }
.ray-5 { animation-delay: 1.62s; }
.ray-1 .ray-bits { animation-duration: 6.4s; }
.ray-2 .ray-bits { animation-duration: 5.2s; }
.ray-3 .ray-bits { animation-duration: 4.4s; }
.ray-4 .ray-bits { animation-duration: 5.8s; }
.ray-5 .ray-bits { animation-duration: 6.8s; }

.icon-box.accent { border-color: #00A87A; }

.footer-brand { display: flex; align-items: center; gap: 12px; }
.footer-wordmark { font-weight: 700; font-size: 14px; letter-spacing: .15em; color: #E8F2EE; }

/* ---------- O que fazemos ---------- */
/* Caixa da explicacao em linguagem simples: barra verde a esquerda,
   mesmo recurso da caixa de CONDICOES da proposta comercial. */
.plain-box { border-left: 3px solid #00A87A; background: #0B100E; padding: 28px 32px; margin-bottom: 56px; max-width: 860px; }
.plain-kicker { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: #00A87A; margin-bottom: 12px; }
.plain-text { font-size: 16px; line-height: 1.7; color: #E8F2EE; text-wrap: pretty; }

.does-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: #1A2420; }
@media (max-width: 900px) { .does-grid { grid-template-columns: 1fr; } }
.does-item { background: #060A09; padding: 32px 28px 36px; }
.does-num { font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: #00A87A; margin-bottom: 16px; }
.does-name { font-size: 17px; font-weight: 600; color: #E8F2EE; line-height: 1.3; margin-bottom: 12px; text-wrap: balance; }
.does-desc { font-size: 14px; color: #8FA39B; line-height: 1.65; text-wrap: pretty; }

/* Faixa de credibilidade */
.trust-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin-top: 56px; padding-top: 32px; border-top: 1px solid #1A2420; }
@media (max-width: 900px) { .trust-row { grid-template-columns: repeat(2, 1fr); gap: 28px; } }
@media (max-width: 520px) { .trust-row { grid-template-columns: 1fr; } }
.trust-item { display: flex; flex-direction: column; gap: 8px; }
.trust-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: #566159; }
.trust-value { font-size: 13.5px; color: #8FA39B; line-height: 1.5; text-wrap: pretty; }

/* ---------- Movimento reduzido ----------
   Este bloco precisa vir DEPOIS das regras que ele sobrescreve. Estava no
   topo do arquivo, com a mesma especificidade das definicoes do prisma
   (.beam-glow, .ray-g etc.) que aparecem mais abaixo. Empate de
   especificidade e decidido por ordem, entao as de baixo venciam: o
   stroke-dashoffset continuava 190 e .ray-g continuava opacity 0.
   Na pratica, quem usa "reduzir movimento" via so o triangulo vazio,
   sem o feixe e sem os binarios. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cursor-blink, .ray-bits, .beam-core, .beam-glow, .beam-inner, .exit-glow, .ray-g { animation: none; }
  .beam-glow, .beam-core, .beam-inner { stroke-dashoffset: 0; }
  .exit-glow, .ray-g { opacity: 1; }
  .fade-in.armed { opacity: 1 !important; transform: none !important; transition: none; }
  * { transition-duration: .01ms !important; }
}
