<!DOCTYPE html>
<html lang="en">
<head>
Ê <meta charset="utf-8" />
Ê <meta name="viewport" content="width=device-width, initial-scale=1" />
Ê <title>at@berninger.at</title>
Ê <meta name="description" content="Contact at@berninger.at" />
Ê <meta name="theme-color" content="#0b0b0b" />
Ê <!-- (Optional) Preload for snappier first paint -->
Ê <!-- <link rel="preload" as="image" href=ãsailing.jpg">
Ê <link rel="preload" as="image" href=ãocean.jpg">
Ê <link rel="preload" as="image" href=ãface.jpg"> -->
Ê <style>
Ê Ê :root {
Ê Ê Ê /* Put your exact filenames or URLs here */
Ê Ê Ê --img-sailing: url(âsailing.jpg');
Ê Ê Ê --img-ocean: Ê url(âocean.jpg');
Ê Ê Ê --img-portrait:url(âface.jpg'); /* the black & white selfie */
Ê Ê Ê --cycle: 21s; Ê Ê /* full slideshow duration (Å7s per image) */
Ê Ê Ê --text: #fff;
Ê Ê }
Ê Ê * { box-sizing: border-box; }
Ê Ê html, body { height: 100%; }
Ê Ê body {
Ê Ê Ê margin: 0;
Ê Ê Ê font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
Ê Ê Ê color: var(--text);
Ê Ê Ê background: #0b0b0b;
Ê Ê Ê overflow: hidden;
Ê Ê }
Ê Ê /* Background layers */
Ê Ê .bg {
Ê Ê Ê position: fixed;
Ê Ê Ê inset: 0;
Ê Ê Ê background-size: cover;
Ê Ê Ê background-repeat: no-repeat;
Ê Ê Ê will-change: opacity, transform, background-position;
Ê Ê Ê opacity: 0;
Ê Ê Ê transform: scale(1.035);
Ê Ê }
Ê Ê /* Per-image tuning: overlay + focal point */
Ê Ê .bg.bg1 {
Ê Ê Ê /* Sailing: darker overlay for the bright sail */
Ê Ê Ê background-image:
Ê Ê Ê Ê linear-gradient(rgba(0,0,0,0.44), rgba(0,0,0,0.44)),
Ê Ê Ê Ê var(--img-sailing);
Ê Ê Ê background-position: 70% center; /* keeps person/sail visible */
Ê Ê }
Ê Ê .bg.bg2 {
Ê Ê Ê /* Ocean wave: slightly lighter overlay */
Ê Ê Ê background-image:
Ê Ê Ê Ê linear-gradient(rgba(0,0,0,0.34), rgba(0,0,0,0.34)),
Ê Ê Ê Ê var(--img-ocean);
Ê Ê Ê background-position: 40% 55%;
Ê Ê }
Ê Ê .bg.bg3 {
Ê Ê Ê /* Portrait: stronger overlay so text pops; nudge left to keep face */
Ê Ê Ê background-image:
Ê Ê Ê Ê linear-gradient(rgba(0,0,0,0.50), rgba(0,0,0,0.50)),
Ê Ê Ê Ê var(--img-portrait);
Ê Ê Ê background-position: 25% 35%;
Ê Ê }
Ê Ê /* Crossfade for 3 slides */
Ê Ê @keyframes crossfade3 {
Ê Ê Ê 0%, 27% Ê { opacity: 1; }
Ê Ê Ê 33%, 94%Ê { opacity: 0; }
Ê Ê Ê 100%Ê Ê Ê { opacity: 1; }
Ê Ê }
Ê Ê /* Gentle Ken Burns zoom */
Ê Ê @keyframes zoom {
Ê Ê Ê from { transform: scale(1.035); }
Ê Ê Ê to Ê { transform: scale(1.08); }
Ê Ê }
Ê Ê .animate.bg1 {
Ê Ê Ê animation:
Ê Ê Ê Ê crossfade3 var(--cycle) linear infinite,
Ê Ê Ê Ê zoom calc(var(--cycle) * 2) ease-in-out infinite alternate;
Ê Ê }
Ê Ê .animate.bg2 {
Ê Ê Ê animation:
Ê Ê Ê Ê crossfade3 var(--cycle) linear infinite calc(var(--cycle) / 3),
Ê Ê Ê Ê zoom calc(var(--cycle) * 2) ease-in-out infinite alternate calc(var(--cycle) / 3);
Ê Ê }
Ê Ê .animate.bg3 {
Ê Ê Ê animation:
Ê Ê Ê Ê crossfade3 var(--cycle) linear infinite calc(var(--cycle) * 2 / 3),
Ê Ê Ê Ê zoom calc(var(--cycle) * 2) ease-in-out infinite alternate calc(var(--cycle) * 2 / 3);
Ê Ê }
Ê Ê /* Soft edge vignette to center the eye on the text */
Ê Ê .vignette {
Ê Ê Ê position: fixed;
Ê Ê Ê inset: 0;
Ê Ê Ê pointer-events: none;
Ê Ê Ê background: radial-gradient(ellipse at center,
Ê Ê Ê Ê Ê Ê Ê Ê Ê rgba(0,0,0,0) 40%,
Ê Ê Ê Ê Ê Ê Ê Ê Ê rgba(0,0,0,0.35) 100%);
Ê Ê }
Ê Ê main {
Ê Ê Ê min-height: 100vh;
Ê Ê Ê display: grid;
Ê Ê Ê place-items: center;
Ê Ê Ê text-align: center;
Ê Ê Ê padding: 2rem;
Ê Ê }
Ê Ê a.email {
Ê Ê Ê color: inherit;
Ê Ê Ê text-decoration: none;
Ê Ê Ê font-weight: 800;
Ê Ê Ê font-size: clamp(2rem, 12vw, 9rem);
Ê Ê Ê letter-spacing: -0.02em;
Ê Ê Ê line-height: 1.05;
Ê Ê Ê text-shadow: 0 2px 22px rgba(0,0,0,0.55);
Ê Ê Ê border-bottom: 0.08em solid rgba(255,255,255,0.35);
Ê Ê Ê transition: transform 0.15s ease, border-color 0.2s ease, text-shadow 0.2s ease;
Ê Ê }
Ê Ê a.email:hover,
Ê Ê a.email:focus-visible {
Ê Ê Ê border-color: rgba(255,255,255,0.9);
Ê Ê Ê transform: scale(1.02);
Ê Ê Ê text-shadow: 0 4px 28px rgba(0,0,0,0.65);
Ê Ê Ê outline: none;
Ê Ê }
Ê Ê /* Small/portrait screens: adjust focal points */
Ê Ê @media (max-aspect-ratio: 3/4) {
Ê Ê Ê .bg.bg1 { background-position: 72% 40%; }
Ê Ê Ê .bg.bg2 { background-position: 45% 55%; }
Ê Ê Ê .bg.bg3 { background-position: 50% 30%; }
Ê Ê }
Ê Ê /* Reduce motion accessibility */
Ê Ê @media (prefers-reduced-motion: reduce) {
Ê Ê Ê .animate { animation: none !important; }
Ê Ê Ê .bg { opacity: 0; transform: none; }
Ê Ê Ê .bg.bg1 { opacity: 1; } /* show the first image only */
Ê Ê }
Ê </style>
</head>
<body>
Ê <!-- Backgrounds -->
Ê <div class="bg bg1 animate" aria-hidden="true"></div>
Ê <div class="bg bg2 animate" aria-hidden="true"></div>
Ê <div class="bg bg3 animate" aria-hidden="true"></div>
Ê <div class="vignette" aria-hidden="true"></div>
Ê <main>
Ê Ê <a class="email" href="mailto:at@berninger.at" aria-label="Email at at@berninger.at">
Ê Ê Ê at@berninger.at
Ê Ê </a>
Ê </main>
</body>
</html>