/* ===== Self-hosted fonts (latin + latin-ext only — covers hu/en/it) ===== */
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/inter-400-0ff153.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/inter-400-e3e793.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/inter-500-340c18.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/inter-500-e97ea9.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;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/jetbrainsmono-400-35a329.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/jetbrainsmono-400-8d6c37.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;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/jetbrainsmono-500-a83f17.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/jetbrainsmono-500-f70309.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;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/spacegrotesk-400-904feb.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/spacegrotesk-400-16e931.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;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/spacegrotesk-500-054b6d.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/spacegrotesk-500-85dc4f.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;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/spacegrotesk-600-8749df.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/spacegrotesk-600-35c25d.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;
}
/* latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/spacegrotesk-700-380b68.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/spacegrotesk-700-9812cb.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;
}

/* ===== Reset & base ===== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: 'Inter', sans-serif;
  min-height: 100vh;
  overflow-x: hidden;
  position: relative;
}
::selection { background: oklch(var(--indigo) / 0.35); color: #fff; }
a { color: inherit; }
img { max-width: 100%; }

/* ===== Design tokens ===== */
:root {
  --bg: #0a0b0d;
  --fg: #e6e8ec;
  --panel-top: #111318;
  --panel-bottom: #0d0f13;
  --panel-alt-top: #0e1116;
  --panel-alt-bottom: #0b0d11;
  --border: #1c2027;
  --border-soft: #23272f;
  --muted: #9aa2ad;
  --muted-2: #838a95;
  --muted-3: #7a818f;
  --text-soft: #b8bfc8;
  --text-softer: #8b929c;

  --teal: 0.85 0.19 165;
  --blue: 0.62 0.19 255;
  --blue-light: 0.75 0.15 255;
  --blue-bright: 0.68 0.17 255;
  --blue-fill: 0.8 0.13 255;
  --blue-glow: 0.6 0.19 255;
  --indigo: 0.68 0.16 250;
}

/* ===== Keyframes ===== */
@keyframes glowpulse { 0%, 100% { opacity: 0.5; } 50% { opacity: 0.9; } }
@keyframes glowdrift1 { 0%, 100% { transform: translate(0,0); } 33% { transform: translate(70px,50px); } 66% { transform: translate(30px,120px); } }
@keyframes glowdrift2 { 0%, 100% { transform: translate(0,0); } 33% { transform: translate(-80px,60px); } 66% { transform: translate(-30px,-40px); } }
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes cap-flow { 0% { transform: translateX(-15px); opacity: 0; } 20%, 80% { opacity: 1; } 100% { transform: translateX(15px); opacity: 0; } }
@keyframes cap-fall { 0% { top: -10%; opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { top: 106%; opacity: 0; } }
@keyframes cap-layer { 0%, 100% { opacity: 0.32; transform: scaleX(0.5); } 50% { opacity: 1; transform: scaleX(1); } }
@keyframes cap-node { 0%, 100% { transform: scale(0.6); opacity: 0.35; box-shadow: 0 0 0 transparent; } 50% { transform: scale(1.12); opacity: 1; } }
@keyframes cap-fillv { 0% { transform: scaleY(0); } 45% { transform: scaleY(1); } 55% { transform: scaleY(1); } 100% { transform: scaleY(0); } }
@keyframes cap-core { 0%, 100% { transform: scale(0.72); opacity: 0.6; } 50% { transform: scale(1); opacity: 1; } }
@keyframes sf-token { 0% { left: 10%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: 90%; opacity: 0; } }
@keyframes sf-flash {
  0% { transform: scale(1); box-shadow: 0 0 0 transparent; background: oklch(var(--teal) / 0.5); }
  6% { transform: scale(1.75); box-shadow: 0 0 12px oklch(var(--teal) / 0.9); background: oklch(0.9 0.16 165); }
  24% { transform: scale(1); box-shadow: 0 0 0 transparent; background: oklch(var(--teal) / 0.5); }
  100% { transform: scale(1); box-shadow: 0 0 0 transparent; background: oklch(var(--teal) / 0.5); }
}
@keyframes grain {
  0% { transform: translate(0,0); }
  20% { transform: translate(-4%,3%); }
  40% { transform: translate(3%,-5%); }
  60% { transform: translate(-3%,2%); }
  80% { transform: translate(4%,-3%); }
  100% { transform: translate(0,0); }
}

@media (prefers-reduced-motion: reduce) {
  #bg-net, #bg-spot { display: none !important; }
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; }
}

/* ===== Background decorations ===== */
#bg-net {
  position: fixed; inset: 0; width: 100%; height: 100%;
  display: block; pointer-events: none; z-index: 0;
}
.bg-grid {
  position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(#ffffff08 1px, transparent 1px), linear-gradient(90deg, #ffffff08 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 78%);
}
.bg-glow {
  position: absolute; border-radius: 50%; filter: blur(20px); pointer-events: none;
}
.bg-glow--a {
  top: -180px; left: -120px; width: 520px; height: 520px;
  background: radial-gradient(circle, oklch(var(--blue-glow) / 0.22), transparent 68%);
  animation: glowpulse 9s ease-in-out infinite, glowdrift1 22s ease-in-out infinite;
}
.bg-glow--b {
  top: 120px; right: -160px; width: 480px; height: 480px;
  background: radial-gradient(circle, oklch(var(--teal) / 0.14), transparent 70%);
  animation: glowpulse 11s ease-in-out infinite, glowdrift2 26s ease-in-out infinite;
}
#bg-spot {
  position: fixed; top: 0; left: 0; width: 620px; height: 620px; margin: -310px 0 0 -310px;
  border-radius: 50%; background: radial-gradient(circle, oklch(0.7 0.15 210 / 0.11), transparent 62%);
  filter: blur(34px); pointer-events: none; opacity: 0; transition: opacity .5s ease; z-index: 0; will-change: transform;
}

.film-grain {
  position: fixed; inset: 0; pointer-events: none; z-index: 45; opacity: 0.055; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 140px 140px;
  animation: grain 0.6s steps(3) infinite;
}

/* ===== Reveal-on-scroll ===== */
[data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .65s cubic-bezier(.22,.61,.36,1), transform .65s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}
[data-reveal].is-visible { opacity: 1; transform: none; }

/* ===== Page wrapper ===== */
.page {
  max-width: 1080px; margin: 0 auto; padding: 0 32px;
  position: relative; z-index: 1;
}

/* ===== Header ===== */
.header { padding: 120px 0 88px; }
.header__bar {
  display: flex; align-items: center; gap: 18px; padding-bottom: 22px;
  border-bottom: 1px solid #1a1d23; margin-bottom: 44px; flex-wrap: wrap;
}
.header__identity {
  display: inline-flex; align-items: center; gap: 13px; padding: 8px 20px 8px 8px;
  border-radius: 16px; border: 1px solid var(--border-soft); background: #0e1014;
}
.header__photo {
  width: 48px; height: 48px; border-radius: 50%; object-fit: cover;
  border: 1px solid #2a2f38; box-shadow: 0 0 0 4px oklch(var(--blue) / 0.1);
}
.header__name {
  font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 16.5px;
  color: #f2f4f7; line-height: 1.2; white-space: nowrap;
}
.header__location {
  font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted-2);
  margin-top: 3px; white-space: nowrap;
}
.header__availability {
  display: inline-flex; align-items: center; gap: 8px; font-family: 'JetBrains Mono', monospace;
  font-size: 12.5px; color: var(--muted); white-space: nowrap;
}
.header__availability-led {
  width: 7px; height: 7px; border-radius: 50%; background: oklch(var(--teal));
  box-shadow: 0 0 10px oklch(var(--teal) / 0.9);
}
.header__availability-word { color: oklch(var(--teal)); transition: opacity .35s ease; }

.header__nav-link {
  margin-left: auto; display: inline-flex; align-items: center; gap: 7px;
  font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--text-soft);
  text-decoration: none; white-space: nowrap; padding: 8px 14px; border-radius: 999px;
  background: #0e1014; border: 1px solid var(--border-soft);
  transition: color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;
}
.header__nav-link::after { content: '→'; color: oklch(var(--teal)); transition: transform .15s ease; }
.header__nav-link:hover {
  color: #f2f4f7; border-color: oklch(var(--teal) / 0.55); background: oklch(var(--teal) / 0.08);
}
.header__nav-link:hover::after { transform: translateX(2px); }

.langswitch {
  display: inline-flex; align-items: center; gap: 2px; padding: 4px;
  border-radius: 10px; background: #0e1014; border: 1px solid var(--border-soft);
  font-family: 'JetBrains Mono', monospace; font-size: 12px;
}
.langswitch__btn {
  background: transparent; color: var(--muted-2); border: 1px solid transparent; border-radius: 7px;
  padding: 5px 10px; cursor: pointer; text-decoration: none; font: inherit;
}
.langswitch__btn.is-active {
  background: oklch(var(--blue) / 0.16); color: #f2f4f7; border: 1px solid oklch(var(--blue) / 0.55);
}

/* ===== Hero ===== */
#hero-grid.hero-grid {
  display: grid; grid-template-columns: minmax(0,1.02fr) minmax(0,0.98fr); gap: 52px; align-items: center;
}
.hero__title {
  font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(40px,6vw,68px);
  line-height: 1.03; letter-spacing: -0.02em; margin: 0 0 26px;
}
.hero__title-line1 { color: #f5f7fa; }
.hero__title-line2 {
  background: linear-gradient(100deg, oklch(var(--blue-bright)), oklch(var(--teal)));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.hero__lead { font-size: 18.5px; line-height: 1.62; color: var(--muted); max-width: 620px; margin: 0 0 40px; }
.hero__cta-row { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.hero__cta-note { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--muted-2); }
.mono { font-family: 'JetBrains Mono', monospace; }

.btn-primary {
  display: inline-flex; align-items: center; gap: 10px; padding: 15px 26px; border-radius: 12px;
  background: oklch(var(--blue) / 0.06); border: 1px solid oklch(var(--blue) / 0.45);
  color: oklch(0.8 0.11 255); font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 15px;
  text-decoration: none; transition: background .16s ease, border-color .16s ease;
}
.btn-primary:hover { background: oklch(var(--blue) / 0.14); border-color: oklch(var(--blue) / 0.7); }

.terminal { position: relative; }
.terminal__frame {
  border-radius: 14px; overflow: hidden; background: #0c0e12; border: 1px solid var(--border);
  box-shadow: 0 30px 70px -24px #000, 0 0 0 1px #ffffff05 inset;
}
.terminal__tabs { display: flex; align-items: stretch; background: #0e1014; border-bottom: 1px solid var(--border); }
.terminal__tab {
  display: flex; align-items: center; padding: 11px 16px; font-family: 'JetBrains Mono', monospace;
  font-size: 12px; color: var(--muted-3);
}
.terminal__tab--active {
  gap: 9px; background: #0c0e12; border-right: 1px solid var(--border); border-top: 2px solid oklch(var(--blue-light));
  color: var(--fg);
}
.terminal__tab-dot { width: 8px; height: 8px; border-radius: 2px; background: oklch(var(--teal)); }
.terminal__tab-close { color: var(--muted-3); }
.terminal__meta { margin-left: auto; display: flex; align-items: center; padding: 11px 16px; font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--muted-3); }
.terminal__body-wrap { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; line-height: 1.95; }
.terminal__body { padding: 20px 20px; min-height: 236px; overflow: hidden; }
.terminal__line { white-space: pre; }
.terminal__prompt { color: oklch(var(--teal)); }
.terminal__cmd { color: var(--fg); }

/* ===== Section heading ===== */
.section { padding: 8px 0 96px; }
.section__head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 28px; }
.section__num { font-family: 'JetBrains Mono', monospace; font-weight: 600; font-size: 36px; }
.section__num--teal { color: oklch(var(--teal)); }
.section__title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 32px; letter-spacing: -0.01em; color: #f2f4f7; margin: 0; }
.eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted-3); margin: 64px 0 22px; }
.eyebrow--tight { margin: 0 0 20px; }

/* ===== Shared card shell ===== */
.card {
  position: relative; border-radius: 18px; background: linear-gradient(180deg, var(--panel-top), var(--panel-bottom));
  border: 1px solid var(--border); overflow: hidden;
}

/* ===== Pillars ===== */
.pillars-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.card--pillar { padding: 34px 32px; }
.card__topline { position: absolute; top: 0; left: 0; right: 0; height: 2px; }
.card__topline--blue { background: linear-gradient(90deg, transparent, oklch(var(--blue-bright)), transparent); }
.card__topline--teal { background: linear-gradient(90deg, transparent, oklch(var(--teal)), transparent); }
.card__title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 28px; letter-spacing: -0.01em; margin: 0 0 12px; color: #f2f4f7; }
.card__desc { font-size: 15.5px; line-height: 1.62; color: var(--muted); margin: 0 0 20px; }

.pillar-visual {
  position: relative; height: 132px; margin-bottom: 24px; border-radius: 12px; overflow: hidden;
}
.pillar-visual--blue {
  background: radial-gradient(120% 130% at 50% 0%, oklch(var(--blue) / 0.12), #0a0c10 72%);
  border: 1px solid oklch(var(--blue) / 0.22);
}
.pillar-visual--teal {
  background: radial-gradient(120% 130% at 50% 0%, oklch(var(--teal) / 0.1), #0a0c10 72%);
  border: 1px solid oklch(var(--teal) / 0.22);
}
#net-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.pillar-visual__label {
  position: absolute; left: 14px; bottom: 10px; font-family: 'JetBrains Mono', monospace; font-size: 10px;
  letter-spacing: 0.1em; text-transform: uppercase; pointer-events: none;
}
.pillar-visual__label--blue { color: oklch(0.8 0.09 255); }
.pillar-visual__label--teal { color: oklch(0.82 0.1 165); }
.blink-dot { animation: blink 1.2s step-end infinite; color: oklch(var(--teal)); }

.sf-route { position: absolute; top: 14px; left: 14px; font-family: 'JetBrains Mono', monospace; font-size: 9.5px; color: oklch(0.72 0.06 165 / 0.9); }
.sf-route__tag { color: oklch(0.82 0.1 165); }
.sf-line {
  position: absolute; left: 10%; right: 10%; top: 56px; height: 1.5px;
  background: linear-gradient(90deg, oklch(var(--teal) / 0.12), oklch(var(--teal) / 0.4), oklch(var(--teal) / 0.12));
}
.sf-token {
  position: absolute; top: 56px; transform: translate(-50%,-50%); width: 7px; height: 7px; border-radius: 50%;
  background: oklch(0.9 0.16 165); box-shadow: 0 0 12px oklch(var(--teal) / 0.95); animation: sf-token 4.2s linear infinite;
}
.sf-node { position: absolute; top: 52px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; }
.sf-node__dot { width: 8px; height: 8px; border-radius: 50%; background: oklch(var(--teal) / 0.5); animation: sf-flash 4.2s linear infinite; }
.sf-node__label { font-family: 'JetBrains Mono', monospace; font-size: 9px; color: var(--text-softer); white-space: nowrap; }

.bullet-list { display: flex; flex-direction: column; gap: 11px; }
.bullet { display: flex; align-items: flex-start; gap: 11px; font-size: 14px; line-height: 1.5; color: var(--text-soft); }
.bullet::before { content: ''; flex-shrink: 0; margin-top: 7px; width: 6px; height: 6px; border-radius: 50%; }
.bullet--blue::before { background: oklch(var(--blue-light)); box-shadow: 0 0 8px oklch(var(--blue-light) / 0.7); }
.bullet--teal::before { background: oklch(var(--teal)); box-shadow: 0 0 8px oklch(var(--teal) / 0.7); }

/* ===== Tech stack grid ===== */
.tech-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 12px; perspective: 1000px; }
.tech-slot {
  display: flex; align-items: center; justify-content: center; min-height: 170px; padding: 22px 12px;
  border-radius: 14px; background: linear-gradient(180deg, var(--panel-top), var(--panel-bottom));
  border: 1px solid var(--border); overflow: hidden; position: relative;
}
.tech-slot__inner { display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; text-align: center; transition: opacity .45s ease-in-out; }
.tech-slot__logo { height: 76px; display: flex; align-items: center; justify-content: center; width: 100%; max-width: 100%; overflow: hidden; }
.tech-slot__logo img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.tech-mono {
  width: 76px; height: 76px; border-radius: 13px; display: flex; align-items: center; justify-content: center;
  font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 28px; color: #0b0d11;
}
.tech-slot__name {
  font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 14px; color: #f2f4f7;
  line-height: 1.2; height: 2.4em; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}

/* ===== Capability cards ===== */
.capabilities-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.card--capability { display: flex; gap: 20px; padding: 28px 28px; border-radius: 16px; }
.card__title--sm { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 18px; color: #f2f4f7; margin-bottom: 9px; letter-spacing: -0.01em; }
.card__desc--sm { font-size: 14px; line-height: 1.6; color: var(--muted); margin: 0; }

.cap-icon { flex-shrink: 0; width: 64px; align-self: stretch; min-height: 104px; border-radius: 13px; position: relative; overflow: hidden; }
.cap-icon--teal { background: oklch(var(--teal) / 0.07); border: 1px solid oklch(var(--teal) / 0.25); }
.cap-icon--blue { background: oklch(var(--blue) / 0.1); border: 1px solid oklch(var(--blue) / 0.28); }

.cap-icon--rain .cap-icon__rail { position: absolute; left: 50%; top: 12px; bottom: 12px; width: 1px; margin-left: -0.5px; background: oklch(var(--teal) / 0.2); }
.cap-icon--rain .cap-icon__diamond {
  position: absolute; left: 50%; width: 11px; height: 11px; margin-left: -5.5px; margin-top: -5.5px;
  border: 1px solid oklch(var(--teal) / 0.5); background: oklch(var(--teal) / 0.12); transform: rotate(45deg);
}
.cap-icon--rain .cap-icon__drop {
  position: absolute; left: 50%; margin-left: -3px; width: 6px; height: 6px; border-radius: 50%;
  background: oklch(0.9 0.16 165); box-shadow: 0 0 8px oklch(var(--teal)); animation: cap-fall 2.4s linear infinite;
}

.cap-icon--layers { display: flex; flex-direction: column; justify-content: center; align-items: stretch; gap: 6px; padding: 14px 13px; }
.cap-icon--layers .cap-icon__layer { height: 6px; border-radius: 2px; background: oklch(var(--blue-light)); transform-origin: left; animation: cap-layer 2.2s ease-in-out infinite; }

.cap-icon--graph .cap-icon__vline { position: absolute; left: 50%; top: 22%; bottom: 22%; width: 1px; margin-left: -0.5px; background: oklch(var(--teal) / 0.22); }
.cap-icon--graph .cap-icon__hline { position: absolute; left: 26%; top: 50%; right: 26%; height: 1px; background: oklch(var(--teal) / 0.22); }
.cap-icon--graph .cap-icon__node {
  position: absolute; margin-left: -3.5px; margin-top: -3.5px; width: 7px; height: 7px; border-radius: 50%;
  background: oklch(0.9 0.16 165); box-shadow: 0 0 8px oklch(var(--teal)); animation: cap-node 1.9s ease-in-out infinite;
}
.cap-icon--graph .cap-icon__core {
  position: absolute; left: 50%; top: 50%; margin-left: -7px; margin-top: -7px; width: 14px; height: 14px; border-radius: 50%;
  background: oklch(var(--teal) / 0.9); box-shadow: 0 0 14px oklch(var(--teal) / 0.9); animation: cap-core 1.9s ease-in-out infinite;
}

.cap-icon--pipeline .cap-icon__pipe-track {
  position: absolute; left: 50%; top: 16px; bottom: 16px; width: 2px; margin-left: -1px;
  background: oklch(var(--blue) / 0.18); border-radius: 2px;
}
.cap-icon--pipeline .cap-icon__pipe-fill {
  position: absolute; left: 50%; top: 16px; bottom: 16px; width: 2px; margin-left: -1px;
  background: oklch(var(--blue-fill)); border-radius: 2px; transform-origin: top; animation: cap-fillv 2.6s ease-in-out infinite;
}
.cap-icon--pipeline .cap-icon__pipe-node {
  position: absolute; left: 50%; margin-left: -5px; margin-top: -5px; width: 10px; height: 10px; border-radius: 3px;
  background: oklch(var(--blue-fill)); box-shadow: 0 0 8px oklch(var(--blue-light)); animation: cap-node 2.6s ease-in-out infinite;
}

/* ===== Timeline (experience + leadership) ===== */
.terminal-comment { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--muted-3); margin: -4px 0 30px; }
.terminal-comment--tight { margin: 0 0 18px; }
.terminal-comment__dollar { color: oklch(var(--teal)); }

.timeline { position: relative; }
.timeline__rail { position: absolute; left: 6px; top: 14px; bottom: 20px; width: 2px; }
.timeline__rail--experience { background: linear-gradient(180deg, oklch(var(--teal) / 0.6), oklch(var(--blue-light) / 0.35), var(--border)); }
.timeline__rail--leadership { left: 7px; top: 12px; bottom: 16px; background: linear-gradient(180deg, oklch(var(--teal) / 0.55), oklch(var(--blue-light) / 0.55)); }

.timeline__row { position: relative; display: grid; grid-template-columns: 14px 1fr; gap: 26px; padding-bottom: 22px; }
.timeline__row--compact { grid-template-columns: 16px 1fr; gap: 22px; padding-bottom: 26px; }
.timeline__dot-col { display: flex; justify-content: center; padding-top: 26px; }
.timeline__dot-col--compact { padding-top: 3px; }
.timeline__dot {
  position: relative; z-index: 1; width: 14px; height: 14px; border-radius: 50%; background: var(--bg); border: 2px solid;
}
.timeline__dot--teal { border-color: oklch(var(--teal)); box-shadow: 0 0 0 4px var(--bg), 0 0 12px oklch(var(--teal) / 0.6); }
.timeline__dot--blue { border-color: oklch(var(--blue-light)); box-shadow: 0 0 0 4px var(--bg), 0 0 12px oklch(var(--blue-light) / 0.55); }

.card--timeline { padding: 24px 26px; border-radius: 16px; }
.timeline__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 6px; }
.timeline__head--compact { margin-bottom: 5px; }
.timeline__head-left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.timeline__role { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 18.5px; color: #f2f4f7; letter-spacing: -0.01em; }
.timeline__period { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; white-space: nowrap; padding-top: 3px; }
.timeline__period--teal { color: oklch(var(--teal)); }
.timeline__period--blue { color: oklch(var(--blue-light)); }
.timeline__company { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--muted-2); margin-bottom: 13px; }
.timeline__desc { font-size: 14.5px; line-height: 1.62; color: var(--muted); margin: 0 0 16px; }

.timeline__hash { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; }
.timeline__hash--teal { color: oklch(var(--teal)); }
.timeline__hash--blue { color: oklch(var(--blue-light)); }
.timeline__item-title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 16.5px; color: #e9ebee; letter-spacing: -0.01em; white-space: nowrap; }
.timeline__item-desc { font-size: 14px; line-height: 1.55; color: var(--text-softer); }

.badge {
  font-family: 'JetBrains Mono', monospace; font-size: 10.5px; padding: 2px 9px; border-radius: 20px; white-space: nowrap;
}
.badge--teal { color: oklch(var(--teal)); border: 1px solid oklch(var(--teal) / 0.4); background: oklch(var(--teal) / 0.1); }

.tag-row { display: flex; flex-wrap: wrap; gap: 8px; }
.tag {
  font-family: 'JetBrains Mono', monospace; font-size: 11.5px; color: var(--text-soft); padding: 4px 11px;
  border-radius: 8px; border: 1px solid var(--border-soft); background: #0e1014;
}

/* ===== Contact ===== */
.contact-card-wrap { position: relative; }
.contact-card-wrap::before {
  content: ''; position: absolute; inset: -30px; pointer-events: none; filter: blur(20px);
  background: radial-gradient(60% 80% at 30% 20%, oklch(var(--blue) / 0.1), transparent 70%),
              radial-gradient(50% 70% at 80% 90%, oklch(var(--teal) / 0.08), transparent 70%);
}
.contact-card {
  position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 40px; border-radius: 20px;
  background: linear-gradient(160deg, var(--panel-alt-top), var(--panel-alt-bottom)); border: 1px solid var(--border); overflow: hidden;
}
.contact-card__topline {
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, oklch(var(--blue-light)), oklch(var(--teal)), transparent);
}
.contact-card__right { display: flex; flex-direction: column; justify-content: space-between; }
.contact-card__availability-text { font-size: 15px; line-height: 1.6; color: var(--muted); margin: 0 0 22px; }

.lang-list { display: flex; flex-direction: column; gap: 16px; }
.lang-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lang-row__name { font-family: 'Space Grotesk', sans-serif; font-weight: 500; font-size: 16px; color: var(--fg); }
.lang-row__meta { display: flex; align-items: center; gap: 10px; }
.lang-row__level { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--text-softer); }
.lang-row__dots { display: flex; gap: 4px; }
.lang-row__dot { width: 7px; height: 7px; border-radius: 50%; background: #262b34; }
.lang-row__dot.is-on { background: oklch(var(--teal)); }

.contact-links { display: flex; flex-direction: column; gap: 12px; }
.contact-link {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 22px;
  border-radius: 12px; background: #15181e; border: 1px solid #262b34; color: var(--fg); text-decoration: none;
  font-family: 'JetBrains Mono', monospace; font-size: 14px; transition: border-color .15s ease, background .15s ease;
}
.contact-link__label { display: inline-flex; align-items: center; gap: 12px; }
.contact-link--teal .contact-link__label { color: oklch(var(--teal)); }
.contact-link--teal .contact-link__arrow { color: oklch(var(--teal)); }
.contact-link--teal:hover { border-color: oklch(var(--teal) / 0.6); background: #181c23; }
.contact-link--blue .contact-link__label { color: oklch(var(--blue-light)); }
.contact-link--blue .contact-link__arrow { color: oklch(var(--blue-light)); }
.contact-link--blue:hover { border-color: oklch(var(--blue) / 0.6); background: #181c23; }
.contact-link .contact-link__label { color: var(--fg); }
.contact-link svg { flex-shrink: 0; }

/* ===== Footer (offline card + interests + copyright) ===== */
.offline-card {
  margin-top: 26px; padding: 28px 32px; border-radius: 18px;
  background: linear-gradient(160deg, var(--panel-alt-top), var(--panel-alt-bottom)); border: 1px solid #16191f;
}
.offline-card__text { font-size: 15px; line-height: 1.62; color: var(--muted); margin: 0 0 20px; max-width: 680px; }
.interest-row { display: flex; flex-wrap: wrap; gap: 9px; }
.interest {
  display: inline-flex; align-items: center; gap: 8px; font-family: 'JetBrains Mono', monospace; font-size: 12.5px;
  color: var(--text-soft); padding: 7px 14px; border-radius: 10px; border: 1px solid var(--border-soft); background: #0e1014;
}
.interest__mark--teal { color: oklch(var(--teal)); }
.interest__mark--blue { color: oklch(var(--blue-light)); }

.copyright {
  display: flex; justify-content: center; align-items: center; margin-top: 30px; padding-top: 24px;
  border-top: 1px solid #16191f; font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--muted-3);
}

/* ===== Siderail / dot nav / back-to-top ===== */
.siderail { position: fixed; top: 50%; transform: translateY(-50%); z-index: 50; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.siderail--left { left: 28px; font-family: 'JetBrains Mono', monospace; color: #3a3f48; }
.siderail__num { font-size: 15px; color: #c4cad3; letter-spacing: 0.06em; }
.siderail__num--end { font-size: 13px; color: #3a3f48; }
.siderail__rule { width: 1px; height: 28px; background: linear-gradient(#2a2f38, transparent); }
.siderail--right { right: 26px; gap: 16px; }
.dotnav__dot {
  display: block; width: 9px; height: 9px; border-radius: 50%; background: #2a2f38;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}

.back-to-top {
  position: fixed; right: 20px; bottom: 24px; z-index: 50; width: 44px; height: 44px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center; background: #12151a; border: 1px solid var(--border-soft);
  color: var(--muted); text-decoration: none; font-family: 'JetBrains Mono', monospace; font-size: 16px;
  transition: border-color .18s ease, color .18s ease, transform .18s ease;
}
.back-to-top:hover { border-color: oklch(var(--indigo) / 0.6); color: var(--fg); transform: translateY(-2px); }

/* ===== Spotlight hover overlay (injected by effects.js) ===== */
[data-spotlight] { position: relative; overflow: hidden; }
.spotlight-overlay {
  position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .3s ease; z-index: 2;
  background: radial-gradient(260px circle at var(--mx,50%) var(--my,50%), oklch(var(--indigo) / 0.13), transparent 62%);
}
.spotlight-overlay.is-active { opacity: 1; }

/* ===== Consulting packages page ===== */
.pp-hero { padding: 16px 0 56px; }
.pp-badge {
  display: inline-flex; align-items: center; gap: 9px; margin-bottom: 26px;
  font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted);
  border: 1px solid var(--border-soft); background: #0e1014; padding: 7px 14px; border-radius: 999px;
}
.pp-badge__dot { width: 7px; height: 7px; border-radius: 50%; background: oklch(var(--teal)); box-shadow: 0 0 10px oklch(var(--teal) / 0.85); }
.pp-hero__title { font-size: clamp(32px,5vw,52px); margin-bottom: 22px; }
.pp-hero__lead { margin: 0; }
.pp-hero__meta {
  margin-top: 30px; padding-top: 20px; border-top: 1px solid #1a1d23;
  font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted-3);
}
.pp-hero__sig { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 17px; color: #f2f4f7; letter-spacing: -0.012em; margin-bottom: 6px; }
.pp-hero__sig span { font-family: 'Inter', sans-serif; font-weight: 400; font-size: 14.5px; color: var(--muted); }

.section__num--blue { color: oklch(var(--blue-light)); }
.pp-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted-3); margin: 0 0 10px; }
.pp-lede { font-size: 17px; line-height: 1.65; color: var(--muted); max-width: 70ch; margin: 0 0 14px; }
.pp-lede:last-child { margin-bottom: 0; }

.pp-grid { display: grid; gap: 14px; margin-top: 26px; }
.pp-grid--2 { grid-template-columns: 1fr 1fr; }
.pp-grid--4 { grid-template-columns: repeat(4,1fr); }
.pp-tile {
  background: linear-gradient(180deg, var(--panel-top), var(--panel-bottom)); border: 1px solid var(--border);
  border-radius: 14px; padding: 20px 22px;
}
.pp-tile h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 15.5px; color: #f2f4f7; margin: 0 0 6px; }
.pp-tile p { font-size: 14px; line-height: 1.55; color: var(--muted); margin: 0; }
.pp-tile--step { padding: 18px; }
.pp-tile__step { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.09em; color: oklch(var(--teal)); margin-bottom: 8px; }

.pp-fit { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 20px; }
.pp-fit__col {
  border-radius: 14px; padding: 20px 22px; border: 1px solid var(--border);
  background: linear-gradient(180deg, var(--panel-top), var(--panel-bottom));
}
.pp-fit__col--yes { background: oklch(var(--teal) / 0.07); border-color: oklch(var(--teal) / 0.3); }
.pp-fit__col h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 15px; color: #f2f4f7; margin: 0 0 12px; }
.pp-fit__col ul { margin: 0; padding: 0; list-style: none; }
.pp-fit__col li { position: relative; padding-left: 20px; margin-bottom: 8px; font-size: 14.5px; line-height: 1.5; color: var(--text-soft); }
.pp-fit__col--yes li::before { content: "✓"; position: absolute; left: 0; color: oklch(var(--teal)); font-size: 13px; }
.pp-fit__col--no li::before { content: "–"; position: absolute; left: 0; color: var(--muted-3); }

.pp-highlight {
  margin-top: 26px; background: oklch(var(--teal) / 0.06); border: 1px solid oklch(var(--teal) / 0.25);
  border-radius: 14px; padding: 24px 26px;
}
.pp-highlight h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 17px; color: #f2f4f7; margin: 0 0 10px; }
.pp-highlight p { font-size: 15px; line-height: 1.62; color: var(--text-soft); max-width: 72ch; margin: 0 0 10px; }
.pp-highlight p:last-child { margin-bottom: 0; }

.pp-pkg {
  background: linear-gradient(180deg, var(--panel-top), var(--panel-bottom)); border: 1px solid var(--border);
  border-radius: 16px; padding: 26px 28px; margin-bottom: 16px;
}
.pp-pkg--free { background: oklch(var(--teal) / 0.05); border-color: oklch(var(--teal) / 0.25); }
.pp-pkg--lead { border-color: oklch(var(--teal) / 0.55); box-shadow: 0 0 0 1px oklch(var(--teal) / 0.55) inset; }
.pp-pkg__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.pp-pkg__code {
  font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.05em;
  color: oklch(var(--teal)); background: oklch(var(--teal) / 0.1); border: 1px solid oklch(var(--teal) / 0.3);
  border-radius: 6px; padding: 3px 9px;
}
.pp-pkg__head h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 20px; color: #f2f4f7; margin: 0; }
.pp-pkg__tag { margin-left: auto; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted-3); }
.pp-pkg__flag {
  font-family: 'JetBrains Mono', monospace; font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase;
  background: oklch(var(--teal)); color: #04140c; padding: 3px 9px; border-radius: 5px; font-weight: 600;
}
.pp-pkg__sub { font-size: 15px; color: var(--muted); margin-bottom: 16px; line-height: 1.55; }
.pp-pkg ul { margin: 0; padding: 0; list-style: none; }
.pp-pkg li { position: relative; padding-left: 20px; margin-bottom: 8px; font-size: 15px; line-height: 1.55; color: var(--text-soft); }
.pp-pkg li::before { content: "›"; position: absolute; left: 4px; top: -1px; color: oklch(var(--teal)); font-family: 'JetBrains Mono', monospace; }
.pp-pkg h4 { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.11em; text-transform: uppercase; color: var(--muted-3); margin: 20px 0 9px; }
.pp-pkg strong, .pp-meta strong, .pp-highlight strong, .pp-callout strong { color: #f2f4f7; font-weight: 600; }

.pp-meta {
  display: grid; grid-template-columns: auto 1fr; gap: 9px 22px; font-size: 14.5px;
  padding: 16px 0; margin: 16px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
}
.pp-meta dt { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted-3); white-space: nowrap; }
.pp-meta dd { margin: 0; color: var(--text-soft); line-height: 1.55; }

.pp-callout {
  font-size: 14.5px; color: var(--text-soft); background: oklch(var(--teal) / 0.06);
  border-left: 3px solid oklch(var(--teal)); border-radius: 0 8px 8px 0; padding: 15px 18px;
  margin-top: 16px; line-height: 1.55;
}
.pp-exclude { font-size: 14px; color: var(--muted-3); margin-top: 14px; line-height: 1.55; }

.pp-cta {
  margin-top: 8px; padding: 32px 34px; border-radius: 18px;
  background: linear-gradient(160deg, var(--panel-alt-top), var(--panel-alt-bottom)); border: 1px solid var(--border);
  position: relative; overflow: hidden;
}
.pp-cta::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, oklch(var(--blue-light)), oklch(var(--teal)), transparent);
}
.pp-cta h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 21px; color: #fff; max-width: 44ch; line-height: 1.35; margin: 0 0 12px; }
.pp-cta p { font-size: 15px; color: var(--muted); max-width: 56ch; margin: 0 0 22px; }
.pp-cta .contact-links { flex-direction: row; flex-wrap: wrap; gap: 10px 26px; }
.pp-cta .contact-link { padding: 11px 18px; font-size: 13px; }
.pp-disclaimer { margin-top: 24px; font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--muted-3); line-height: 1.65; }

.pp-price { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 19px; color: #f2f4f7; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); }
.pp-price .pp-vat { font-family: 'Inter', sans-serif; font-weight: 400; font-size: 13.5px; color: var(--muted-3); margin-left: 8px; }
.pp-pkg--free .pp-price { color: oklch(var(--teal)); }
.pp-price-note { font-size: 13.5px; color: var(--muted-3); margin-top: 8px; line-height: 1.55; }

.pp-panel { background: linear-gradient(180deg, var(--panel-top), var(--panel-bottom)); border: 1px solid var(--border); border-radius: 14px; padding: 4px 22px 18px; margin-top: 26px; }
.pp-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pp-table { width: 100%; border-collapse: collapse; font-size: 14.5px; min-width: 560px; }
.pp-table th { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted-3); text-align: left; padding: 16px 14px 10px 0; border-bottom: 1px solid var(--border-soft); }
.pp-table td { padding: 14px 14px 14px 0; border-bottom: 1px solid var(--border); vertical-align: top; color: var(--text-soft); }
.pp-table tr:last-child td { border-bottom: 0; }
.pp-t-name { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 14.5px; color: #f2f4f7; }
.pp-t-what { font-size: 13.5px; color: var(--muted); line-height: 1.5; }
.pp-t-price { font-family: 'JetBrains Mono', monospace; font-size: 13.5px; white-space: nowrap; color: #f2f4f7; }
.pp-t-free { color: oklch(var(--teal)); font-weight: 500; }
.pp-legend { margin-top: 16px; font-size: 14.5px; color: var(--muted); max-width: 66ch; }

.pp-dotlist { margin: 0; padding: 0; list-style: none; }
.pp-dotlist li { position: relative; padding-left: 16px; margin-bottom: 7px; font-size: 14px; color: var(--text-soft); }
.pp-dotlist li::before { content: "·"; position: absolute; left: 2px; color: oklch(var(--teal)); }

.pp-private-badge {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; font-family: 'JetBrains Mono', monospace;
  font-size: 11.5px; letter-spacing: 0.06em; text-transform: uppercase; color: oklch(var(--blue-light));
  border: 1px solid oklch(var(--blue) / 0.4); background: oklch(var(--blue) / 0.08); padding: 6px 12px; border-radius: 999px;
}

/* ===== Responsive ===== */
@media (max-width: 1260px) {
  [data-siderail] { display: none !important; }
}
@media (max-width: 1000px) {
  #hero-grid.hero-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
  .pillars-grid, .capabilities-grid, .contact-card { grid-template-columns: 1fr !important; }
}
@media (max-width: 720px) {
  .header { padding: 32px 0 8px; }
  .header__bar { gap: 10px; flex-wrap: wrap; margin-bottom: 20px; padding-bottom: 14px; }
  .header__bar .header__identity { flex-basis: 100%; }
  .header__nav-link { margin-left: 0; font-size: 11.5px; }
  .header__bar .langswitch { margin-left: auto; }
  .header__availability { font-size: 11px; gap: 6px; }
  .header__availability-word { display: inline-block; width: 15ch; }
  .langswitch { padding: 3px; }
  .langswitch__btn { padding: 4px 8px; font-size: 11px; }

  /* Hero: drop the decorative terminal and the small note under the CTA */
  .terminal { display: none; }
  .hero__cta-note { display: none; }
  .hero__title { margin-bottom: 18px; }
  .hero__lead { margin-bottom: 28px; }
  .hero__cta-row { margin-bottom: 32px; }

  /* Minimal-motion mode: calmer reveal, no always-on decorative animation */
  [data-reveal] {
    transform: none;
    transition: opacity .3s ease;
  }
  .film-grain,
  #bg-net,
  #net-canvas {
    display: none !important;
  }
  .bg-glow {
    animation: none !important;
  }
  .cap-icon__drop,
  .cap-icon__layer,
  .cap-icon__node,
  .cap-icon__core,
  .cap-icon__pipe-fill,
  .cap-icon__pipe-node,
  .sf-token,
  .sf-node__dot,
  .blink-dot {
    animation: none !important;
  }

  /* 01 — pillar cards: drop the decorative visual header, keep title/copy */
  .pillar-visual { display: none; }

  /* 02 — tech grid: smaller icons, more columns instead of a few huge ones */
  .tech-grid { grid-template-columns: repeat(4,1fr); gap: 8px; }
  .tech-slot { min-height: 84px; padding: 10px 6px; }
  .tech-slot__inner { gap: 6px; }
  .tech-slot__logo { height: 34px; }
  .tech-mono { width: 34px; height: 34px; font-size: 13px; border-radius: 8px; }
  .tech-slot__name { font-size: 10.5px; }

  /* Capability cards: drop the decorative icon, keep title/copy */
  .cap-icon { display: none; }
  .card--capability { gap: 0; }

  /* 05 — contact: stop the language rows / contact links from clipping */
  .lang-row { flex-wrap: wrap; row-gap: 6px; }
  .lang-row__meta { flex-basis: 100%; }
  .contact-link { flex-wrap: wrap; row-gap: 4px; padding: 13px 16px; }
  .contact-link__arrow { display: none; }
  .contact-link__label { white-space: normal; word-break: break-word; }

  /* Global — smaller section headings so they stop wrapping to 3 lines */
  .section__title { font-size: 22px; }
  .section__num { font-size: 26px; }

  /* whoami / interests: smaller tags so more fit per row instead of ~1-per-line */
  .offline-card { padding: 20px 16px; }
  .interest-row { gap: 6px; }
  .interest { font-size: 11px; padding: 6px 10px; gap: 6px; }

  /* Consulting packages page */
  .pp-grid--2, .pp-grid--4, .pp-fit { grid-template-columns: 1fr; }
  .pp-pkg { padding: 20px 18px; }
  .pp-pkg__tag { margin-left: 0; width: 100%; }
  .pp-meta { grid-template-columns: 1fr; gap: 3px; }
  .pp-meta dd { margin-bottom: 10px; }
  .pp-cta { padding: 24px 22px; }
  .pp-panel { padding: 4px 16px 14px; }
}

@media (max-width: 480px) {
  .page { padding: 0 20px; }
  .section { padding: 8px 0 64px; }
  .contact-card { padding: 24px; gap: 28px; }
  .offline-card { padding: 22px 20px; }
}
