/* TREK 4.0.0 "KEINE ANGST" — styles for the beacon and the show. Temporary by design: remove together with the FourZero folder. */ .fz-overlay { position: fixed; inset: 0; z-index: 9999; background: #05060a; overflow: hidden; color: #f5f2ea; font-family: inherit; } .fz-canvas { position: absolute; inset: 0; width: 100%; height: 100%; } .fz-vignette { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at center, transparent 52%, rgba(160, 25, 25, 0.28) 100%); animation: fzVignettePulse 2.6s ease-in-out infinite; } @keyframes fzVignettePulse { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } } /* ── the lines ── */ .fz-line-wrap { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 0 12vw; pointer-events: none; /* A soft radial pool of darkness under the words, so they never sink into the burning map — depth, not a hard box. */ background: radial-gradient(52% 34% at 50% 50%, rgba(5, 6, 10, 0.55), rgba(5, 6, 10, 0) 72%); } .fz-line { max-width: 900px; text-align: center; font-size: clamp(22px, 3.2vw, 40px); font-weight: 300; line-height: 1.45; letter-spacing: 0.015em; text-shadow: 0 1px 2px rgba(5, 6, 10, 0.9), 0 4px 18px rgba(5, 6, 10, 0.8), 0 10px 46px rgba(5, 6, 10, 0.65); animation: fzLineIn 1.6s cubic-bezier(0.19, 1, 0.22, 1) both; } .fz-line-hard { font-weight: 700; font-size: clamp(26px, 3.8vw, 50px); letter-spacing: 0.01em; } /* The pivot line out of the silence breathes in slowly instead of arriving. */ .fz-line-soft { animation-duration: 3.4s; } @keyframes fzLineIn { from { opacity: 0; transform: translateY(14px); filter: blur(6px); } to { opacity: 1; transform: translateY(0); filter: blur(0); } } /* Staccato words strobing to the heartbeat in the late fear act. */ .fz-flash-wrap { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; } /* A stamped title card, not a zoom: bone-white core, chromatic red/blue fringes, a nervous micro-jitter while it stands, tracking that slowly clenches, and a hard cut out. */ .fz-flash { font-size: clamp(52px, 9vw, 130px); font-weight: 900; color: #f4ded9; text-shadow: -2px 0 0 rgba(235, 45, 38, 0.85), 2px 0 0 rgba(60, 90, 235, 0.5), 0 0 34px rgba(235, 50, 45, 0.5), 0 4px 26px rgba(0, 0, 0, 0.95); animation: fzFlashStamp 0.65s linear both, fzFlashJitter 0.1s steps(2, jump-none) infinite; } @keyframes fzFlashStamp { 0% { opacity: 0; letter-spacing: 0.2em; } 6% { opacity: 1; } 88% { opacity: 1; letter-spacing: 0.11em; } 100% { opacity: 0; letter-spacing: 0.11em; } } @keyframes fzFlashJitter { 0% { transform: translate(0, 0); } 50% { transform: translate(1.6px, -1px); } 100% { transform: translate(-1.4px, 0.8px); } } /* ── anthem ── */ .fz-anthem { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4vh; pointer-events: none; padding: 0 6vw; } .fz-anthem-word { font-size: clamp(48px, 9vw, 128px); font-weight: 800; letter-spacing: 0.06em; text-align: center; margin: 0; text-shadow: 0 0 60px rgba(255, 200, 120, 0.35), 0 2px 30px rgba(0, 0, 0, 0.9); animation: fzAnthemIn 2.8s cubic-bezier(0.19, 1, 0.22, 1) both; } .fz-anthem-word-small { font-size: clamp(34px, 5vw, 64px); } @keyframes fzAnthemIn { from { opacity: 0; transform: scale(0.94); letter-spacing: 0.18em; filter: blur(10px); } to { opacity: 1; transform: scale(1); letter-spacing: 0.06em; filter: blur(0); } } .fz-cascade { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 26px; max-width: 1000px; } .fz-cascade-item { font-size: clamp(13px, 1.35vw, 19px); font-weight: 500; opacity: 0; color: rgba(245, 235, 215, 0.92); animation: fzCascadeIn 1.4s ease-out both; } @keyframes fzCascadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 0.92; transform: translateY(0); } } /* ── chrome ── */ .fz-chrome { position: absolute; right: 18px; bottom: 16px; display: flex; gap: 8px; align-items: center; opacity: 0; animation: fzChromeIn 1s ease-out 2.5s both; } @keyframes fzChromeIn { to { opacity: 1; } } .fz-chrome-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 999px; border: 1px solid rgba(245, 240, 225, 0.22); background: rgba(10, 12, 18, 0.55); color: rgba(245, 240, 225, 0.75); font-size: 12px; font-weight: 600; font-family: inherit; cursor: pointer; backdrop-filter: blur(6px); transition: color 0.15s, border-color 0.15s; } .fz-chrome-btn:hover { color: #fff; border-color: rgba(245, 240, 225, 0.55); } /* ── beacon (dashboard trigger) ── */ /* Wrapper is a div so the dismiss can be a real sibling