/* Generated by data/scripts/build-css.mjs from css/base/fonts.css + css/main.css - do not edit. */
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(/assets/fonts/ibm-plex-mono-latin-ext-7f25d9.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(/assets/fonts/ibm-plex-mono-latin-d196e8.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url(/assets/fonts/ibm-plex-mono-latin-ext-b42080.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Mono';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url(/assets/fonts/ibm-plex-mono-latin-a7544c.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 400;
font-stretch: 100%;
font-display: swap;
src: url(/assets/fonts/ibm-plex-sans-latin-ext-71c30c.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 400;
font-stretch: 100%;
font-display: swap;
src: url(/assets/fonts/ibm-plex-sans-latin-a68a20.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 500;
font-stretch: 100%;
font-display: swap;
src: url(/assets/fonts/ibm-plex-sans-latin-ext-71c30c.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 500;
font-stretch: 100%;
font-display: swap;
src: url(/assets/fonts/ibm-plex-sans-latin-a68a20.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 600;
font-stretch: 100%;
font-display: swap;
src: url(/assets/fonts/ibm-plex-sans-latin-ext-71c30c.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 600;
font-stretch: 100%;
font-display: swap;
src: url(/assets/fonts/ibm-plex-sans-latin-a68a20.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 700;
font-stretch: 100%;
font-display: swap;
src: url(/assets/fonts/ibm-plex-sans-latin-ext-71c30c.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'IBM Plex Sans';
font-style: normal;
font-weight: 700;
font-stretch: 100%;
font-display: swap;
src: url(/assets/fonts/ibm-plex-sans-latin-a68a20.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
color-scheme: light;
--bg-rgb: 250 250 250;
--bg2-rgb: 244 245 247;
--surface-rgb: 255 255 255;
--ink-rgb: 11 13 18;
--accent-rgb: 15 98 254;
--glass-min: 0.86;
--color-bg: rgb(var(--bg-rgb));
--color-bg-secondary: rgb(var(--bg2-rgb));
--color-surface: rgb(var(--surface-rgb));
--color-surface-elevated: #ffffff;
--color-primary: rgb(var(--accent-rgb));
--color-primary-hover: #0353E9;
--color-primary-active: #002D9C;
--color-on-primary: #ffffff;
--color-secondary: #0b0d12;
--color-text: rgb(var(--ink-rgb));
--color-text-muted: #5b6475;
--color-text-subtle: #697284;
--color-border: rgb(var(--ink-rgb) / 0.09);
--color-border-strong: rgb(var(--accent-rgb) / 0.35);
--color-overlay: rgb(var(--bg-rgb) / 0.8);
--color-glow: rgb(var(--accent-rgb) / 0.10);
--color-glow-strong: rgb(var(--accent-rgb) / 0.22);
--color-danger: #d92d20;
--color-warning: #b54708;
--color-success: #067647;
--shadow-soft: 0 1px 2px rgb(16 24 40 / 0.04), 0 8px 24px rgb(16 24 40 / 0.06);
--shadow-glow: 0 10px 30px rgb(var(--accent-rgb) / 0.18);
--glass-bg: rgb(var(--surface-rgb) / 0.82);
--glass-border: rgb(var(--ink-rgb) / 0.08);
--font-display: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
--font-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
--fs-xs: 0.75rem;
--fs-sm: 0.875rem;
--fs-base: 1rem;
--fs-md: 1.125rem;
--fs-lg: 1.25rem;
--fs-xl: 1.5rem;
--fs-2xl: 2rem;
--fs-3xl: clamp(2.25rem, 4vw, 3.25rem);
--fs-4xl: clamp(3rem, 7vw, 5.5rem);
--fs-hero: clamp(3.5rem, 9vw, 7.5rem);
--lh-tight: 1.05;
--lh-snug: 1.25;
--lh-normal: 1.6;
--lh-relaxed: 1.8;
--fw-regular: 400;
--fw-medium: 500;
--fw-semibold: 600;
--fw-bold: 700;
--fw-black: 700;
--tracking-tight: -0.02em;
--tracking-normal: 0;
--tracking-wide: 0.08em;
--tracking-wider: 0.16em;
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 0.75rem;
--space-4: 1rem;
--space-5: 1.5rem;
--space-6: 2rem;
--space-7: 3rem;
--space-8: 4rem;
--space-9: 6rem;
--space-10: 8rem;
--container-max: 1280px;
--container-narrow: 880px;
--header-height: 5rem;
--section-padding-y: clamp(5rem, 10vw, 8rem);
--section-padding-x: clamp(1.25rem, 4vw, 3rem);
--radius-sm: 0.5rem;
--radius-md: 0.75rem;
--radius-lg: 1rem;
--radius-full: 9999px;
--blur-sm: 10px;
--blur-md: 20px;
--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
--duration-fast: 150ms;
--duration-base: 300ms;
--duration-slow: 600ms;
--duration-cinematic: 1200ms;
--z-base: 1;
--z-header: 100;
--z-overlay: 200;
--z-modal: 300;
--z-toast: 400;
--z-cursor: 500;
}
[data-theme="dark"] {
color-scheme: dark;
--bg-rgb: 10 12 17;
--bg2-rgb: 14 17 24;
--surface-rgb: 19 23 32;
--ink-rgb: 238 240 246;
--accent-rgb: 120 169 255;
--glass-min: 0;
--color-surface-elevated: #181d29;
--color-primary-hover: #A6C8FF;
--color-primary-active: #D0E2FF;
--color-on-primary: #0a0c11;
--color-secondary: #eef0f6;
--color-text-muted: #9aa3b4;
--color-text-subtle: #6b7384;
--color-border: rgb(var(--ink-rgb) / 0.09);
--color-danger: #f97066;
--color-warning: #fdb022;
--color-success: #47cd89;
--shadow-soft: 0 1px 2px rgb(0 0 0 / 0.3), 0 12px 32px rgb(0 0 0 / 0.35);
--glass-bg: rgb(var(--surface-rgb) / 0.6);
}
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
scroll-behavior: auto;
}
body {
min-height: 100%;
line-height: var(--lh-normal);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
img,
picture,
video,
canvas,
svg {
display: block;
max-width: 100%;
height: auto;
}
input,
button,
textarea,
select {
font: inherit;
color: inherit;
background: none;
border: none;
}
button {
cursor: pointer;
}
a {
color: inherit;
text-decoration: none;
}
ul,
ol {
list-style: none;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: inherit;
font-size: inherit;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
:focus-visible {
outline: 2px solid var(--color-primary);
outline-offset: 3px;
}
::selection {
background: rgb(var(--accent-rgb) / 0.28);
color: var(--color-text);
}
body {
font-family: var(--font-body);
font-size: var(--fs-base);
font-weight: var(--fw-regular);
color: var(--color-text);
background-color: var(--color-bg);
}
.font-display {
font-family: var(--font-display);
}
.font-mono {
font-family: var(--font-mono);
}
.heading-hero {
font-family: var(--font-display);
font-size: var(--fs-hero);
font-weight: var(--fw-black);
line-height: var(--lh-tight);
letter-spacing: var(--tracking-tight);
}
.heading-xl {
font-family: var(--font-display);
font-size: var(--fs-4xl);
font-weight: var(--fw-bold);
line-height: var(--lh-tight);
letter-spacing: var(--tracking-tight);
}
.heading-lg {
font-family: var(--font-display);
font-size: var(--fs-3xl);
font-weight: var(--fw-bold);
line-height: var(--lh-snug);
letter-spacing: var(--tracking-tight);
}
.heading-md {
font-family: var(--font-display);
font-size: var(--fs-2xl);
font-weight: var(--fw-semibold);
line-height: var(--lh-snug);
}
.heading-sm {
font-family: var(--font-display);
font-size: var(--fs-xl);
font-weight: var(--fw-semibold);
line-height: var(--lh-snug);
}
.text-lead {
font-size: var(--fs-md);
line-height: var(--lh-relaxed);
color: var(--color-text-muted);
max-width: 42rem;
}
.text-body {
font-size: var(--fs-base);
line-height: var(--lh-relaxed);
color: var(--color-text-muted);
}
.text-sm {
font-size: var(--fs-sm);
}
.text-xs {
font-size: var(--fs-xs);
}
.text-muted {
color: var(--color-text-muted);
}
.text-primary {
color: var(--color-primary);
}
.eyebrow {
display: inline-flex;
align-items: center;
flex-wrap: wrap;
gap: var(--space-3);
max-width: 100%;
white-space: normal;
font-family: var(--font-mono);
font-size: var(--fs-xs);
font-weight: var(--fw-medium);
letter-spacing: var(--tracking-wider);
text-transform: uppercase;
color: var(--color-primary);
}
.eyebrow::before {
content: "";
width: 1.75rem;
height: 1px;
background: currentColor;
}
h1, h2, h3, h4 {
font-family: var(--font-display);
letter-spacing: -0.02em;
text-wrap: balance;
}
p { text-wrap: pretty; }
::selection {
background: rgb(var(--accent-rgb) / 0.18);
color: var(--color-text);
}
.container {
width: min(100% - (var(--section-padding-x) * 2), var(--container-max));
margin-inline: auto;
}
.container--narrow {
width: min(100% - (var(--section-padding-x) * 2), var(--container-narrow));
margin-inline: auto;
}
.section {
position: relative;
padding-block: var(--section-padding-y);
z-index: var(--z-base);
}
.section--flush-top {
padding-top: 0;
}
.section--flush-bottom {
padding-bottom: 0;
}
.section--alt {
background: var(--color-bg-secondary);
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.is-hidden {
display: none !important;
}
.visually-ready {
opacity: 1;
}
.stack {
display: flex;
flex-direction: column;
gap: var(--space-5);
}
.stack--sm {
gap: var(--space-3);
}
.stack--lg {
gap: var(--space-7);
}
.cluster {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--space-4);
}
.grid-auto {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
gap: var(--space-5);
}
.full-bleed {
width: 100vw;
margin-left: calc(50% - 50vw);
}
.media-cover {
width: 100%;
height: 100%;
object-fit: cover;
}
.glass {
background: var(--glass-bg);
border: 1px solid var(--glass-border);
backdrop-filter: blur(var(--blur-md));
-webkit-backdrop-filter: blur(var(--blur-md));
}
.glow-edge {
box-shadow: var(--shadow-glow);
}
.text-balance {
text-wrap: balance;
}
.truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
:lang(de) :is(p, li, dd, dt, h1, h2, h3, h4, h5, h6, blockquote, figcaption, td, th, label, summary) {
-webkit-hyphens: auto;
hyphens: auto;
overflow-wrap: break-word;
}
:lang(de) :is(.btn, .site-nav a, .site-nav button, .lang-menu__trigger, .eyebrow) {
-webkit-hyphens: manual;
hyphens: manual;
}
:lang(de) .site-header .btn,
:lang(de) .site-nav__actions .btn { white-space: nowrap; }
body {
position: relative;
overflow-x: hidden;
background:
radial-gradient(ellipse 70% 40% at 50% -10%, rgb(var(--accent-rgb) / 0.06), transparent 60%),
var(--color-bg);
color: var(--color-text);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
font-feature-settings: "cv11", "ss01", "ss03";
}
body::before {
content: "";
position: fixed;
inset: 0;
background-image:
linear-gradient(rgb(var(--ink-rgb) / 0.035) 1px, transparent 1px),
linear-gradient(90deg, rgb(var(--ink-rgb) / 0.035) 1px, transparent 1px);
background-size: 64px 64px;
mask-image: radial-gradient(ellipse 80% 50% at 50% 0%, black 10%, transparent 70%);
-webkit-mask-image: radial-gradient(ellipse 80% 50% at 50% 0%, black 10%, transparent 70%);
pointer-events: none;
z-index: 0;
}
#app {
position: relative;
z-index: var(--z-base);
min-height: 100vh;
display: flex;
flex-direction: column;
}
#main-content {
flex: 1;
padding-top: var(--header-height);
}
.page-atmosphere {
position: fixed;
inset: 0;
pointer-events: none;
z-index: 0;
overflow: hidden;
}
.page-atmosphere__orb {
position: absolute;
border-radius: 50%;
filter: blur(80px);
opacity: 0.25;
}
.page-atmosphere__orb--primary {
width: 40vw;
height: 40vw;
top: -10%;
left: -5%;
background: rgb(var(--accent-rgb) / 0.12);
}
.page-atmosphere__orb--secondary {
width: 30vw;
height: 30vw;
bottom: 10%;
right: -8%;
background: rgb(var(--accent-rgb) / 0.048);
}
.html-lenis,
.html-lenis body {
height: auto;
}
.lenis.lenis-smooth {
scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
overscroll-behavior: contain;
}
.site-header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: var(--z-header);
height: var(--header-height);
transition:
background-color var(--duration-base) var(--ease-out),
border-color var(--duration-base) var(--ease-out);
}
.site-header__inner {
display: flex;
align-items: center;
justify-content: space-between;
height: 100%;
width: min(100% - (var(--section-padding-x) * 2), var(--container-max));
margin-inline: auto;
}
.site-header { border-bottom: 1px solid transparent; }
.site-header.is-scrolled {
background: rgb(var(--bg-rgb) / 0.96);
border-bottom-color: var(--color-border);
box-shadow: 0 6px 24px rgb(var(--ink-rgb) / 0.06);
}
.site-logo {
display: inline-flex;
align-items: baseline;
gap: var(--space-2);
font-family: var(--font-display);
font-size: var(--fs-lg);
font-weight: var(--fw-bold);
letter-spacing: var(--tracking-tight);
position: relative;
z-index: 3;
}
.site-logo__mark {
color: var(--color-primary);
}
.site-logo__text {
color: var(--color-text);
}
.site-nav {
display: flex;
align-items: center;
gap: var(--space-6);
}
.site-nav__list {
display: flex;
align-items: center;
gap: var(--space-5);
}
.site-nav__link {
position: relative;
font-family: var(--font-body);
font-size: var(--fs-sm);
font-weight: var(--fw-medium);
letter-spacing: -0.005em;
text-transform: none;
color: var(--color-text-muted);
transition: color var(--duration-fast) var(--ease-out);
}
.site-nav__link::after {
content: "";
position: absolute;
left: 0;
bottom: -0.35rem;
width: 100%;
height: 1px;
background: var(--color-primary);
transform: scaleX(0);
transform-origin: left;
transition: transform var(--duration-base) var(--ease-out);
}
.site-nav__link:hover,
.site-nav__link[aria-current="page"] {
color: var(--color-text);
}
.site-nav__link:hover::after,
.site-nav__link[aria-current="page"]::after {
transform: scaleX(1);
}
.site-nav__actions {
display: flex;
align-items: center;
gap: var(--space-3);
}
.lang-menu { position: relative; }
.lang-menu__trigger {
display: inline-flex;
align-items: center;
gap: 0.4rem;
min-height: 2.5rem;
padding: 0.4rem 0.6rem 0.4rem 0.65rem;
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
font-size: var(--fs-sm);
font-weight: 500;
color: var(--color-text);
background: transparent;
cursor: pointer;
transition: border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);
}
.lang-menu__trigger:hover,
.lang-menu.is-open .lang-menu__trigger {
border-color: rgb(var(--accent-rgb) / 0.45);
background: rgb(var(--accent-rgb) / 0.06);
}
.lang-menu__trigger:focus-visible,
.lang-menu__item:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.lang-menu__globe { width: 1.05rem; height: 1.05rem; color: var(--color-text-muted); }
.lang-menu__chev { width: 0.85rem; height: 0.85rem; color: var(--color-text-muted); transition: transform var(--duration-fast) var(--ease-out); }
.lang-menu.is-open .lang-menu__chev { transform: rotate(180deg); }
.lang-menu__list {
position: absolute;
top: calc(100% + 8px);
right: 0;
z-index: 60;
min-width: 13rem;
margin: 0;
padding: 6px;
list-style: none;
border: 1px solid var(--color-border);
border-radius: 12px;
background: rgb(var(--surface-rgb) / 0.98);
box-shadow: 0 18px 48px rgb(var(--ink-rgb) / 0.14), 0 2px 6px rgb(var(--ink-rgb) / 0.06);
backdrop-filter: blur(14px);
transform-origin: top right;
animation: langPop 140ms var(--ease-out);
}
.lang-menu__list[hidden] { display: none; }
@keyframes langPop { from { opacity: 0; transform: translateY(-4px) scale(0.98); } to { opacity: 1; transform: none; } }
.lang-menu__item {
display: flex;
align-items: center;
gap: 0.5rem;
width: 100%;
padding: 0.6rem 0.7rem;
border-radius: 8px;
text-align: left;
font-size: var(--fs-sm);
color: var(--color-text);
background: transparent;
cursor: pointer;
}
.lang-menu__item:hover,
.lang-menu__item:focus-visible { background: rgb(var(--accent-rgb) / 0.08); }
.lang-menu__name { font-weight: 500; }
.lang-menu__region { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--color-text-muted); }
.lang-menu__check { width: 1rem; height: 1rem; margin-left: auto; color: var(--color-primary); visibility: hidden; }
.lang-menu__item.is-active { color: var(--color-primary); }
.lang-menu__item.is-active .lang-menu__check { visibility: visible; }
.nav-toggle {
display: none;
width: 2.75rem;
height: 2.75rem;
place-items: center;
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
position: relative;
z-index: 3;
}
.nav-toggle__bar {
display: block;
width: 1.1rem;
height: 1px;
background: var(--color-text);
position: relative;
transition: background-color var(--duration-fast) var(--ease-out);
}
.nav-toggle__bar::before,
.nav-toggle__bar::after {
content: "";
position: absolute;
left: 0;
width: 100%;
height: 1px;
background: var(--color-text);
transition: transform var(--duration-base) var(--ease-out);
}
.nav-toggle__bar::before {
top: -6px;
}
.nav-toggle__bar::after {
top: 6px;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar {
background: transparent;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::before {
transform: translateY(6px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::after {
transform: translateY(-6px) rotate(-45deg);
}
@media (min-width: 961px) and (max-width: 1180px) {
.lang-menu__label, .lang-menu__chev { display: none; }
.lang-menu__trigger { padding: 0.4rem 0.6rem; }
.site-nav {
gap: var(--space-4);
}
.site-nav__list {
gap: var(--space-3);
}
}
.nav-close {
display: none;
}
@media (max-width: 960px) {
.nav-toggle {
display: grid;
}
.nav-close {
display: grid;
place-items: center;
position: absolute;
top: max(0.85rem, env(safe-area-inset-top));
right: max(1rem, env(safe-area-inset-right));
z-index: 2;
width: 2.75rem;
height: 2.75rem;
padding: 0;
border: 1px solid var(--color-border-strong);
border-radius: var(--radius-sm);
background: rgb(var(--surface-rgb) / max(0.9, var(--glass-min)));
color: var(--color-primary);
}
.nav-close span[aria-hidden="true"] {
font-size: 1.6rem;
line-height: 1;
transform: translateY(-0.05em);
}
.nav-close:hover,
.nav-close:focus-visible {
border-color: var(--color-primary);
background: rgb(var(--accent-rgb) / 0.1);
}
.site-nav,
body > .site-nav {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: calc(var(--z-header) + 1);
width: 100%;
height: 100dvh;
min-height: 100vh;
margin: 0;
flex-direction: column;
align-items: center;
justify-content: center;
gap: var(--space-7);
padding: calc(var(--header-height) + var(--space-6)) var(--section-padding-x) var(--space-8);
background: var(--color-bg);
opacity: 0;
visibility: hidden;
pointer-events: none;
transition:
opacity var(--duration-base) var(--ease-out),
visibility var(--duration-base) var(--ease-out);
}
.site-nav.is-open {
opacity: 1;
visibility: visible;
pointer-events: auto;
}
.site-nav__list {
flex-direction: column;
align-items: center;
gap: var(--space-6);
}
.site-nav__link {
font-size: var(--fs-sm);
}
.site-nav__actions {
flex-direction: column;
align-items: stretch;
width: min(100%, 18rem);
gap: var(--space-4);
}
.site-nav__actions .lang-menu { width: 100%; }
.site-nav__actions .lang-menu__trigger { width: 100%; min-height: 2.75rem; }
.site-nav__actions .lang-menu__chev { margin-left: auto; }
.site-nav__actions .lang-menu__list { position: static; margin-top: 8px; min-width: 0; box-shadow: none; animation: none; }
.site-nav__actions .btn {
width: 100%;
}
body.nav-open {
overflow: hidden;
}
body.nav-open .site-header {
z-index: calc(var(--z-header) + 2);
background: transparent;
border-bottom-color: transparent;
}
}
@media (max-width: 480px) {
:root {
--header-height: 4.25rem;
}
.site-logo__text {
display: none;
}
.site-logo {
font-size: var(--fs-xl);
}
}
@media (max-width: 960px) {
.site-nav__actions [data-book-call] { order: -2; }
.site-nav__actions [data-resume-link] { order: -1; }
.site-nav__actions .lang-menu { order: 1; }
.site-nav__actions .theme-toggle { order: 2; align-self: center; }
}
@media (min-width: 1100px) {
.site-header__inner {
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
column-gap: var(--space-5);
}
.site-header__inner > .site-logo { grid-column: 1; justify-self: start; }
.site-header__inner > .site-nav { display: contents; }
.site-header__inner .site-nav__list { grid-column: 2; justify-self: center; }
.site-header__inner .site-nav__actions { grid-column: 3; justify-self: end; }
}
@media (max-width: 960px) {
.nav-close { display: none !important; }
body.nav-open .site-header { background: transparent; box-shadow: none; }
.site-nav,
body > .site-nav {
justify-content: space-between;
gap: var(--space-6);
padding: calc(var(--header-height) + var(--space-6)) var(--section-padding-x) max(var(--space-6), env(safe-area-inset-bottom));
background: rgb(var(--bg-rgb) / 0.97);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
overflow-y: auto;
}
.site-nav__list {
counter-reset: navidx;
width: 100%;
flex: 1 1 auto;
justify-content: center;
align-items: center;
gap: var(--space-5);
}
.site-nav__list > li { counter-increment: navidx; }
.site-nav .site-nav__link {
display: inline-flex;
align-items: baseline;
gap: 0.75rem;
font-family: var(--font-body);
font-size: clamp(2rem, 8.5vw, 2.5rem);
font-weight: var(--fw-medium, 500);
letter-spacing: -0.02em;
line-height: 1.1;
color: var(--color-text);
}
.site-nav .site-nav__link::before {
content: counter(navidx, decimal-leading-zero);
font-family: var(--font-mono);
font-size: 0.8rem;
font-weight: 500;
letter-spacing: 0;
color: var(--color-primary);
transform: translateY(-1.1em);
}
.site-nav .site-nav__link::after { bottom: -0.2rem; height: 2px; }
.site-nav .site-nav__link[aria-current="page"] { color: var(--color-primary); }
.site-nav__actions {
width: 100%;
max-width: 26rem;
display: grid;
grid-template-columns: 1fr auto;
gap: var(--space-3);
}
.site-nav__actions [data-book-call],
.site-nav__actions [data-resume-link] { grid-column: 1 / -1; width: 100%; }
.site-nav__actions .lang-menu { grid-column: 1; width: 100%; }
.site-nav__actions .theme-toggle { grid-column: 2; align-self: stretch; }
.site-nav__actions .lang-menu__list { position: absolute; top: auto; bottom: calc(100% + 8px); left: 0; right: 0; margin: 0; box-shadow: 0 18px 48px rgb(var(--ink-rgb) / 0.14); }
.site-nav.is-open .site-nav__list > li,
.site-nav.is-open .site-nav__actions > * {
animation: navItemIn 420ms var(--ease-out) both;
}
.site-nav.is-open .site-nav__list > li:nth-child(1) { animation-delay: 60ms; }
.site-nav.is-open .site-nav__list > li:nth-child(2) { animation-delay: 110ms; }
.site-nav.is-open .site-nav__list > li:nth-child(3) { animation-delay: 160ms; }
.site-nav.is-open .site-nav__list > li:nth-child(4) { animation-delay: 210ms; }
.site-nav.is-open .site-nav__actions > * { animation-delay: 270ms; }
}
@keyframes navItemIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (max-width: 960px) and (prefers-reduced-motion: reduce) {
.site-nav.is-open .site-nav__list > li,
.site-nav.is-open .site-nav__actions > * { animation: none; }
.site-nav, body > .site-nav, .nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after { transition: none; }
}
.site-nav__logo { display: none; }
@media (max-width: 960px) {
.site-nav__logo {
display: inline-flex;
position: absolute;
top: 0;
left: var(--section-padding-x);
height: var(--header-height);
align-items: center;
}
.nav-close {
display: grid !important;
width: 2.75rem;
height: 2.75rem;
border: 1px solid var(--color-border);
background: transparent;
color: var(--color-text);
}
.nav-close .nav-toggle__bar { background: var(--color-text); }
.site-nav.is-open .nav-close .nav-toggle__bar { background: transparent; }
.site-nav.is-open .nav-close .nav-toggle__bar::before { transform: translateY(6px) rotate(45deg); }
.site-nav.is-open .nav-close .nav-toggle__bar::after { transform: translateY(-6px) rotate(-45deg); }
.nav-close .nav-toggle__bar::before,
.nav-close .nav-toggle__bar::after { transition-delay: 80ms; }
}
.site-footer {
position: relative;
margin-top: auto;
border-top: 1px solid var(--color-border);
background: var(--color-bg-secondary);
}
.site-footer::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(
90deg,
transparent,
rgb(var(--accent-rgb) / 0.45),
transparent
);
}
.site-footer__inner {
width: min(100% - (var(--section-padding-x) * 2), var(--container-max));
margin-inline: auto;
padding-block: var(--space-8) var(--space-6);
}
.site-footer__grid {
display: grid;
grid-template-columns: 1.4fr repeat(3, 1fr);
gap: var(--space-7);
margin-bottom: var(--space-7);
}
.site-footer__brand-name {
font-family: var(--font-display);
font-size: var(--fs-xl);
font-weight: var(--fw-bold);
margin-bottom: var(--space-3);
}
.site-footer__brand-name span {
color: var(--color-primary);
}
.site-footer__brand-text {
color: var(--color-text-muted);
line-height: var(--lh-relaxed);
max-width: 22rem;
}
.site-footer__heading {
font-family: var(--font-mono);
font-size: var(--fs-xs);
letter-spacing: var(--tracking-wider);
text-transform: uppercase;
color: var(--color-primary);
margin-bottom: var(--space-4);
}
.site-footer__links {
display: flex;
flex-direction: column;
gap: var(--space-3);
}
.site-footer__links a {
color: var(--color-text-muted);
font-size: var(--fs-sm);
transition: color var(--duration-fast) var(--ease-out);
}
.site-footer__links a:hover {
color: var(--color-text);
}
.site-footer__social {
display: flex;
gap: var(--space-3);
}
.site-footer__social--spaced {
margin-top: var(--space-4);
}
.site-footer__social a {
display: grid;
place-items: center;
width: 2.25rem;
height: 2.25rem;
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
color: var(--color-text-muted);
transition:
color var(--duration-fast) var(--ease-out),
border-color var(--duration-fast) var(--ease-out),
background-color var(--duration-fast) var(--ease-out);
}
.site-footer__social a:hover {
color: var(--color-primary);
border-color: var(--color-border-strong);
background: rgb(var(--accent-rgb) / 0.08);
}
.site-footer__bottom {
display: flex;
justify-content: space-between;
align-items: center;
gap: var(--space-4);
flex-wrap: wrap;
padding-top: var(--space-5);
border-top: 1px solid var(--color-border);
font-family: var(--font-mono);
font-size: var(--fs-xs);
color: var(--color-text-muted);
letter-spacing: var(--tracking-wide);
}
@media (max-width: 900px) {
.site-footer__grid {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 560px) {
.site-footer__grid {
grid-template-columns: 1fr;
}
.site-footer__bottom {
flex-direction: column;
text-align: center;
}
}
.site-footer__location { margin-top: var(--space-3); font-size: var(--fs-sm); color: var(--color-text-muted); }
.site-footer__social a svg { display: block; }
.site-footer__social a:hover { color: var(--color-primary); border-color: rgb(var(--accent-rgb) / 0.45); }
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--space-2);
min-height: 3rem;
padding: 0.85rem 1.6rem;
font-family: var(--font-body);
font-size: var(--fs-sm);
font-weight: var(--fw-semibold);
letter-spacing: -0.005em;
text-transform: none;
border-radius: 0.625rem;
border: 1px solid transparent;
transition:
transform var(--duration-base) var(--ease-out),
background-color var(--duration-base) var(--ease-out),
border-color var(--duration-base) var(--ease-out),
color var(--duration-base) var(--ease-out),
box-shadow var(--duration-base) var(--ease-out);
will-change: transform;
}
.btn:hover {
transform: translateY(-1px);
}
.btn:active {
transform: translateY(0);
}
.btn--primary {
background: var(--color-primary);
color: var(--color-on-primary);
box-shadow: 0 1px 2px rgb(var(--ink-rgb) / 0.08), inset 0 1px 0 rgb(255 255 255 / 0.12);
}
.btn--primary:hover {
background: var(--color-primary-hover);
box-shadow: var(--shadow-glow);
}
.btn--secondary {
background: var(--color-surface);
border-color: rgb(var(--ink-rgb) / 0.14);
color: var(--color-text);
}
.btn--secondary:hover {
border-color: rgb(var(--ink-rgb) / 0.28);
color: var(--color-text);
background: rgb(var(--accent-rgb) / 0.06);
}
.btn--ghost {
background: transparent;
color: var(--color-text-muted);
padding-inline: 0.5rem;
}
.btn--ghost:hover {
color: var(--color-text);
}
.btn--sm {
min-height: 2.4rem;
padding: 0.55rem 1rem;
}
@media (max-width: 720px) {
.btn--sm {
min-height: 2.75rem;
}
}
.btn--lg {
min-height: 3.4rem;
padding: 1rem 2rem;
}
.btn:disabled,
.btn[aria-disabled="true"] {
opacity: 0.5;
pointer-events: none;
}
.btn--secondary.is-active {
border-color: var(--color-border-strong);
color: var(--color-primary);
background: rgb(var(--accent-rgb) / 0.1);
}
.btn:focus-visible {
outline: 2px solid var(--color-primary);
outline-offset: 3px;
}
.btn--primary:active {
background: var(--color-primary-active);
}
.card {
position: relative;
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
overflow: hidden;
transition:
transform var(--duration-base) var(--ease-out),
border-color var(--duration-base) var(--ease-out),
box-shadow var(--duration-base) var(--ease-out);
}
.card:hover {
transform: translateY(-4px);
border-color: var(--color-border-strong);
box-shadow: var(--shadow-soft), 0 0 0 1px rgb(var(--accent-rgb) / 0.08);
}
.card__media {
aspect-ratio: 16 / 10;
overflow: hidden;
background: var(--color-bg-secondary);
}
.card__media img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform var(--duration-slow) var(--ease-out);
}
.card:hover .card__media img {
transform: scale(1.04);
}
.card__body {
padding: var(--space-5);
display: flex;
flex-direction: column;
gap: var(--space-3);
}
.card__meta {
font-family: var(--font-mono);
font-size: var(--fs-xs);
letter-spacing: var(--tracking-wide);
text-transform: uppercase;
color: var(--color-primary);
}
.card__title {
font-family: var(--font-display);
font-size: var(--fs-lg);
font-weight: var(--fw-semibold);
line-height: var(--lh-snug);
}
.card__title a {
transition: color var(--duration-fast) var(--ease-out);
}
.card__title a:hover {
color: var(--color-primary);
}
.card__excerpt {
color: var(--color-text-muted);
font-size: var(--fs-sm);
line-height: var(--lh-relaxed);
}
.card__footer {
margin-top: auto;
padding-top: var(--space-3);
display: flex;
flex-wrap: wrap;
gap: var(--space-2);
}
.tag {
display: inline-flex;
align-items: center;
padding: 0.25rem 0.55rem;
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
font-family: var(--font-mono);
font-size: 0.68rem;
color: var(--color-text-muted);
letter-spacing: var(--tracking-wide);
}
.card--interactive {
cursor: pointer;
}
.card--flat {
background: transparent;
}
.card--flat:hover {
background: rgb(var(--surface-rgb) / max(0.65, var(--glass-min)));
}
.form {
display: flex;
flex-direction: column;
gap: var(--space-4);
}
.form__field {
display: flex;
flex-direction: column;
gap: var(--space-2);
}
.form__label {
font-family: var(--font-mono);
font-size: var(--fs-xs);
letter-spacing: var(--tracking-wide);
text-transform: uppercase;
color: var(--color-text-muted);
}
.form__control {
width: 100%;
min-height: 3rem;
padding: 0.85rem 1rem;
background: var(--color-bg-secondary);
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
color: var(--color-text);
transition:
border-color var(--duration-fast) var(--ease-out),
box-shadow var(--duration-fast) var(--ease-out);
}
.form__control::placeholder {
color: var(--color-text-subtle);
}
.form__control:hover {
border-color: rgb(var(--ink-rgb) / 0.16);
}
.form__control:focus {
outline: none;
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgb(var(--accent-rgb) / 0.15);
}
textarea.form__control {
min-height: 9rem;
resize: vertical;
}
.form__error {
font-size: var(--fs-xs);
color: var(--color-danger);
}
.form__status {
font-size: var(--fs-sm);
color: var(--color-text-muted);
}
.form__status.is-success {
color: var(--color-success);
}
.form__status.is-error {
color: var(--color-danger);
}
.form__actions {
display: flex;
flex-wrap: wrap;
gap: var(--space-3);
margin-top: var(--space-2);
}
.section-header {
display: flex;
flex-direction: column;
gap: var(--space-4);
margin-bottom: var(--space-7);
max-width: 44rem;
}
.section-header--center {
margin-inline: auto;
text-align: center;
align-items: center;
}
.section-header__title {
font-family: var(--font-display);
font-size: var(--fs-3xl);
font-weight: var(--fw-bold);
line-height: var(--lh-tight);
letter-spacing: var(--tracking-tight);
}
.section-header__desc {
color: var(--color-text-muted);
font-size: var(--fs-md);
line-height: var(--lh-relaxed);
}
.section-header__action {
margin-top: var(--space-2);
}
.skip-link {
position: absolute;
left: var(--space-4);
top: -100px;
z-index: var(--z-toast);
padding: 0.75rem 1rem;
background: var(--color-primary);
color: var(--color-on-primary);
font-family: var(--font-mono);
font-size: var(--fs-xs);
letter-spacing: var(--tracking-wide);
text-transform: uppercase;
border-radius: var(--radius-sm);
transition: top var(--duration-fast) var(--ease-out);
}
.skip-link:focus {
top: var(--space-4);
}
.page-hero {
position: relative;
isolation: isolate;
overflow: hidden;
padding-block: clamp(3.25rem, 7vw, 5.25rem) clamp(2rem, 4vw, 3rem);
border-bottom: 1px solid rgb(var(--accent-rgb) / 0.12);
background:
linear-gradient(180deg, rgb(var(--surface-rgb) / max(0.55, var(--glass-min))) 0%, rgb(var(--bg-rgb) / 0) 72%);
}
.page-hero::before {
content: "";
position: absolute;
inset: 0;
z-index: 0;
background:
radial-gradient(ellipse 70% 90% at 0% 0%, rgb(var(--accent-rgb) / 0.16), transparent 55%),
radial-gradient(ellipse 50% 60% at 100% 20%, rgb(var(--accent-rgb) / 0.06), transparent 50%);
pointer-events: none;
}
.page-hero::after {
content: "";
position: absolute;
inset: auto 0 0;
height: 1px;
z-index: 1;
background: linear-gradient(
90deg,
transparent 0%,
rgb(var(--accent-rgb) / 0.45) 20%,
rgb(var(--ink-rgb) / 0.12) 50%,
rgb(var(--accent-rgb) / 0.35) 80%,
transparent 100%
);
pointer-events: none;
}
.page-hero__glow {
position: absolute;
top: -20%;
right: -8%;
width: min(42rem, 70vw);
height: min(28rem, 55vw);
z-index: 0;
background: radial-gradient(circle at center, rgb(var(--accent-rgb) / 0.1), transparent 68%);
filter: blur(8px);
pointer-events: none;
}
.page-hero__inner {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--space-4);
max-width: 48rem;
}
.page-hero__eyebrow {
margin: 0;
}
.page-hero__title {
margin: 0;
max-width: min(100%, 16ch);
font-family: var(--font-display);
font-size: clamp(2.35rem, 8vw, 4.25rem);
font-weight: var(--fw-black);
line-height: 0.98;
letter-spacing: -0.04em;
color: var(--color-text);
overflow-wrap: break-word;
word-break: normal;
}
.page-hero__title .page-hero__accent {
color: var(--color-primary);
}
.page-hero__rule {
width: 3.5rem;
height: 2px;
margin-block: 0.15rem;
border-radius: 999px;
background: linear-gradient(90deg, var(--color-primary), transparent);
}
.page-hero__desc {
margin: 0;
max-width: 36rem;
color: var(--color-text-muted);
font-size: clamp(1rem, 1.5vw, 1.125rem);
line-height: var(--lh-relaxed);
}
.page-hero__desc[hidden] {
display: none;
}
.page-hero:has(.page-hero__desc[hidden]) .page-hero__rule {
margin-bottom: 0;
}
.page-hero + .section,
[data-component="page-hero"] + .section {
padding-top: clamp(1.75rem, 3.5vw, 2.75rem);
}
.page-hero + .section.section--flush-top,
[data-component="page-hero"] + .section.section--flush-top {
padding-top: clamp(1.75rem, 3.5vw, 2.75rem);
}
.empty-state {
display: grid;
gap: var(--space-4);
place-items: start;
padding: var(--space-7);
border: 1px dashed var(--color-border);
border-radius: var(--radius-md);
background: rgb(var(--surface-rgb) / max(0.35, var(--glass-min)));
}
.empty-state__title {
font-family: var(--font-display);
font-size: var(--fs-xl);
font-weight: var(--fw-semibold);
}
.empty-state__text {
color: var(--color-text-muted);
line-height: var(--lh-relaxed);
max-width: 36rem;
}
.page-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
gap: var(--space-5);
}
@media (max-width: 640px) {
.page-hero {
padding-block: clamp(2.25rem, 9vw, 3rem) clamp(1.5rem, 5vw, 2rem);
}
.page-hero__inner {
max-width: 100%;
gap: var(--space-3);
}
.page-hero__title {
max-width: 100%;
font-size: clamp(2.15rem, 10.5vw, 2.85rem);
}
.page-hero__title .page-hero__accent {
display: inline-block;
}
.page-hero__desc {
font-size: var(--fs-base);
max-width: 100%;
}
}
html.motion-active [data-reveal]:not(.is-revealed) {
opacity: 0;
transform: translate3d(0, 28px, 0);
will-change: opacity, transform;
}
html.motion-active [data-reveal].is-revealed,
html.motion-active [data-hero-item].is-revealed,
[data-reveal].is-revealed,
[data-hero-item].is-revealed {
opacity: 1;
transform: none;
will-change: auto;
}
html.motion-active [data-hero-item]:not(.is-revealed) {
opacity: 0;
will-change: opacity, transform;
}
.html-lenis,
.html-lenis body {
height: auto;
}
.has-smooth-scroll {
scroll-behavior: auto;
}
.scroll-progress {
position: fixed;
top: 0;
left: 0;
z-index: 200;
width: 100%;
height: 2px;
transform: scaleX(0);
transform-origin: left center;
background: linear-gradient(90deg, transparent, var(--color-primary), var(--color-secondary));
pointer-events: none;
}
[data-magnetic] {
display: inline-flex;
will-change: transform;
}
.motion-ready .page-atmosphere__orb--primary {
animation: orb-drift-a 18s ease-in-out infinite alternate;
}
.motion-ready .page-atmosphere__orb--secondary {
animation: orb-drift-b 22s ease-in-out infinite alternate;
}
@keyframes orb-drift-a {
from {
transform: translate3d(0, 0, 0) scale(1);
}
to {
transform: translate3d(4%, 6%, 0) scale(1.08);
}
}
@keyframes orb-drift-b {
from {
transform: translate3d(0, 0, 0) scale(1);
}
to {
transform: translate3d(-5%, -4%, 0) scale(1.12);
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
html.motion-active [data-reveal],
html.motion-active [data-hero-item],
[data-reveal],
[data-hero-item] {
opacity: 1 !important;
transform: none !important;
will-change: auto;
}
.scroll-progress,
.motion-ready .page-atmosphere__orb--primary,
.motion-ready .page-atmosphere__orb--secondary {
animation: none !important;
}
}
.site-logo__mark {
display: inline-grid;
place-items: center;
width: 2rem;
height: 2rem;
border-radius: 0.55rem;
background: var(--color-text);
color: var(--color-bg);
font-size: 0.8rem;
font-weight: 700;
letter-spacing: -0.02em;
align-self: center;
}
.site-logo { align-items: center; font-size: var(--fs-md); font-weight: 650; }
.site-header.is-scrolled {
background: rgb(var(--bg-rgb) / 0.9);
}
.theme-toggle {
display: inline-grid;
place-items: center;
width: 2.4rem;
height: 2.4rem;
border-radius: 0.6rem;
border: 1px solid var(--color-border);
background: var(--color-surface);
color: var(--color-text-muted);
cursor: pointer;
transition: color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);
}
.theme-toggle:hover { color: var(--color-text); border-color: rgb(var(--ink-rgb) / 0.2); }
.theme-toggle:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.theme-toggle svg { width: 1.05rem; height: 1.05rem; }
.theme-toggle .icon-sun { display: none; }
[data-theme="dark"] .theme-toggle .icon-sun { display: block; }
[data-theme="dark"] .theme-toggle .icon-moon { display: none; }
.metric-item__value { font-weight: 650; letter-spacing: -0.03em; }
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { scroll-behavior: auto !important; }
}
.dvd-hero {
--bg-rgb: 10 12 17;
--bg2-rgb: 14 17 24;
--surface-rgb: 19 23 32;
--ink-rgb: 238 240 246;
--accent-rgb: 120 169 255;
--glass-min: 0;
--color-on-primary: #0a0c11;
--color-primary-hover: #A6C8FF;
--color-text-muted: #aab2c2;
--color-border: rgb(238 240 246 / 0.12);
--color-bg: rgb(var(--bg-rgb));
--color-bg-secondary: rgb(var(--bg2-rgb));
--color-surface: rgb(var(--surface-rgb));
--color-primary: rgb(var(--accent-rgb));
--color-text: rgb(var(--ink-rgb));
--color-border-strong: rgb(var(--accent-rgb) / 0.35);
--color-glow: rgb(var(--accent-rgb) / 0.14);
color: var(--color-text);
}
:root:not([data-theme="dark"]) .cs-hero__backdrop img {
opacity: 0.07;
filter: blur(3px) saturate(0.6);
}
@media (max-width: 520px) {
.hero__meta { flex-direction: column; align-items: flex-start; gap: 0.2rem; }
.hero__meta-sep { display: none; }
}
.faq { display: grid; gap: var(--space-3); }
.faq__item { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); transition: border-color var(--duration-fast) var(--ease-out); }
.faq__item[open] { border-color: rgb(var(--accent-rgb) / 0.4); }
.faq__q { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-5); cursor: pointer; list-style: none; font-family: var(--font-display); font-weight: var(--fw-semibold); }
.faq__q::-webkit-details-marker { display: none; }
.faq__q:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; border-radius: var(--radius-md); }
.faq__icon { position: relative; width: 14px; height: 14px; flex: none; }
.faq__icon::before, .faq__icon::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; margin-top: -1px; background: var(--color-primary); transition: transform var(--duration-fast) var(--ease-out); }
.faq__icon::after { transform: rotate(90deg); }
.faq__item[open] .faq__icon::after { transform: rotate(0deg); }
.faq__a { margin: 0; padding: 0 var(--space-5) var(--space-5); color: var(--color-text-muted); line-height: var(--lh-relaxed); }
.section-header .eyebrow, .about-section__header .eyebrow, .cs-section__heading .eyebrow, .offering-section .eyebrow { margin: 0; }
