
:root { --background: #e70b21; --text: #000; --pulse: 0; --safeMargin: 24px; --logoScale: 1; }
* { box-sizing:border-box; }
html,body { margin:0; padding:0; background:var(--background); color:var(--text);
  font-family:"Helvetica Neue","HelveticaNeue","Helvetica",Arial,sans-serif; font-weight:700; height:100%; overflow:hidden; }
.stage { position:relative; min-height:100vh; width:100%; will-change:transform;
  filter: brightness(calc(1 + var(--pulse,0)*0.15)) contrast(calc(1 + var(--pulse,0)*0.35)) saturate(calc(1 + var(--pulse,0)*0.45)); }
.logo-img { position:absolute; top:50%; left:50%; width:min(700px,88vw); transform:translate(-50%,-50%) scale(var(--logoScale));
  z-index:10050 !important; pointer-events:auto !important; cursor:pointer !important; }

#hoverTip { position:fixed; left:0; top:0; font-size:12px; letter-spacing:.04em; color:#000; pointer-events:none; z-index:10060; visibility:hidden; }
@media (hover:none) and (pointer:coarse) { #hoverTip { display:none !important; } }

#ver { position:fixed; top:8px; right:10px; font-size:10px; opacity:.5; z-index:20000; animation: fadeout 2s 1.2s forwards; }
@keyframes fadeout { to { opacity:0; visibility:hidden; } }

/* Textures */
body.texture-v2::before, body.texture-v3::before, body.texture-v4::before {
  content:""; position:fixed; inset:0; pointer-events:none; transition:opacity .06s linear;
}
body.texture-v2::before { opacity:.66; background:url('texture_v2_blotch.svg') center/cover no-repeat; mix-blend-mode:multiply; }
body.texture-v3::before { opacity:.58; background:url('texture_v3_grain.svg') 0 0/120px 120px repeat; mix-blend-mode:overlay; }
body.texture-v4::before { opacity:.40; background:url('texture_v4_luma.svg') center/cover no-repeat; mix-blend-mode:luminosity; }
body::after { content:""; position:fixed; inset:0; pointer-events:none; opacity:0;
  background: radial-gradient(1200px 800px at 40% 35%, rgba(255,255,255,.7), rgba(255,255,255,0) 60%),
              radial-gradient(900px 600px at 70% 25%, rgba(255,255,255,.5), rgba(255,255,255,0) 60%);
  mix-blend-mode:screen; transition:opacity .05s ease-out; }
body.flash::after { opacity:.65; }

#glitchOverlay { position:fixed; inset:0; pointer-events:none; z-index:9998; opacity:0; transition:opacity .06s; 
  background: repeating-linear-gradient(0deg, rgba(255,255,255,.22) 0px, rgba(255,255,255,.22) 1px, rgba(0,0,0,0) 2px),
              repeating-linear-gradient(90deg, rgba(0,0,0,.08) 0px, rgba(0,0,0,.08) 1px, rgba(0,0,0,0) 3px);
  mix-blend-mode:overlay; filter: saturate(1.05) contrast(1.15); }
.stage.shake { transform: translate(var(--sx,0px), var(--sy,0px)) rotate(var(--sr,0deg)); }

/* Footer that never overlaps */
.footer { position:absolute; bottom: calc(7% + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:12px; z-index:21; }
.footer .contacts { text-align:center; }
.footer .links { display:flex; flex-direction:row; flex-wrap:wrap; gap:14px; justify-content:center; }
.footer .links a { color:var(--text); text-decoration:none; text-transform:uppercase; letter-spacing:.06em; padding:12px 20px; border:2px solid var(--text); border-radius:4px; }
.footer .links a:hover { background:var(--text); color:var(--background); }

@media (max-width: 900px), (max-height: 720px) {
  .footer .links { flex-direction:column; flex-wrap:nowrap; gap:10px; }
}


/* v24f fix: email links in contacts are black, not browser blue */
.footer .contacts a,
.footer .contacts a:visited {
  color: var(--text) !important;
  text-decoration: underline;
}
.footer .contacts a:hover,
.footer .contacts a:focus,
.footer .contacts a:active {
  color: var(--text) !important;
  text-decoration: underline;
  opacity: .9;
}
