/* 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; } .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 2px 24px rgba(0, 0, 0, 0.85); 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; } @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; } .fz-flash { font-size: clamp(52px, 9vw, 130px); font-weight: 900; letter-spacing: 0.08em; color: #ff4b3e; text-shadow: 0 0 42px rgba(235, 50, 45, 0.65), 0 2px 18px rgba(0, 0, 0, 0.9); animation: fzFlashIn 0.65s cubic-bezier(0.16, 1, 0.3, 1) both; } @keyframes fzFlashIn { 0% { opacity: 0; transform: scale(1.28); filter: blur(8px); } 18% { opacity: 1; transform: scale(1); filter: blur(0); } 80% { opacity: 1; } 100% { opacity: 0; } } /* ── 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); } } /* ── credits ── */ .fz-credits { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 0 8vw; text-align: center; animation: fzLineIn 1.8s ease-out both; } .fz-credit-lead { font-size: clamp(16px, 1.7vw, 23px); font-weight: 300; font-style: italic; opacity: 0.95; margin: 6px 0 4px; max-width: 680px; } .fz-credit-title { font-size: clamp(17px, 1.8vw, 24px); font-weight: 700; margin: 10px 0 0; } .fz-credit-body { font-size: clamp(14px, 1.4vw, 18px); font-weight: 300; opacity: 0.85; margin: 0; max-width: 640px; } .fz-credit-link { font-size: 13px; color: rgba(255, 200, 120, 0.9); text-decoration: none; border-bottom: 1px solid rgba(255, 200, 120, 0.4); padding-bottom: 1px; margin-top: 6px; pointer-events: auto; } .fz-credit-link:hover { color: #ffd58a; border-color: #ffd58a; } .fz-close-btn { margin-top: 26px; padding: 11px 34px; border-radius: 999px; border: 1px solid rgba(245, 240, 225, 0.35); background: transparent; color: #f5f2ea; font-size: 14px; font-weight: 600; font-family: inherit; letter-spacing: 0.04em; cursor: pointer; transition: background 0.2s, border-color 0.2s; } .fz-close-btn:hover { background: rgba(245, 240, 225, 0.12); border-color: rgba(245, 240, 225, 0.7); } /* ── 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