:root{
  --page-bg:#0a0b0f;
  --text:#e8e9ee;
  --text-dim:#b6b8c3;
  --line:rgba(255,255,255,.12);
  --radius:30px;
  --container:1120px;
}
@media (prefers-color-scheme: light){
  :root{ --page-bg:#ffffff; --text:#0f1115; --text-dim:#5b5e68; --line:rgba(0,0,0,.08); }
}
*, *::before, *::after { box-sizing:border-box; }
html,body{ height:100%; }
html{ scroll-behavior:smooth; }
body{
  background: transparent;
  color:#e8e9ee; color:var(--text,#e8e9ee);
  margin:0; font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  position: relative;
}

/* Moving gradient background */
html { background: #0a0b0f; }
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(40% 50% at 20% 25%, rgba(141,90,255,0.35), rgba(141,90,255,0) 55%),
    radial-gradient(35% 45% at 80% 30%, rgba(24,120,255,0.35), rgba(24,120,255,0) 55%),
    radial-gradient(45% 55% at 60% 80%, rgba(255,72,176,0.25), rgba(255,72,176,0) 60%),
    linear-gradient(120deg, #0b0d12, #0b0d12);
  filter: saturate(120%);
  transform: translateZ(0);
  animation: stGradientPan 28s ease-in-out infinite alternate;
}
@keyframes stGradientPan {
  0%   { transform: translate3d(0, 0, 0) scale(1); }
  50%  { transform: translate3d(2%, -2%, 0) scale(1.02); }
  100% { transform: translate3d(-2%, 2%, 0) scale(1); }
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  body::before{ animation:none; }
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.container{ max-width:var(--container,1120px); margin-inline:auto; padding:0 24px; }
.section{ padding:96px 0; scroll-margin-top:84px; }
.center{ text-align:center; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
@media (max-width:900px){ .grid-2{ grid-template-columns:1fr; } }

h1{ font-size:28px; line-height:1.2; margin:0 0 12px; }
h2{ font-size:clamp(28px,4vw,36px); line-height:1.12; margin:0 0 12px; }
p{ margin:0 0 12px; color:var(--text-dim,#b6b8c3); }

.btn{ display:inline-flex; align-items:center; justify-content:center; height:44px; padding:0 16px; border-radius:14px; border:1px solid var(--line,rgba(255,255,255,.12)); background:transparent; color:inherit; cursor:pointer; }
.btn-dark{ background:#0f1115; border-color:#0f1115; color:#fff; }
.form-status{ min-height:1.2em; margin-top:8px; }

/* SR-only helper */
.sr-only{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Header */
.site-header{ position:sticky; top:0; z-index:50; background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none; border:0; }
.site-header.scrolled{ backdrop-filter:blur(16px) saturate(1.35); -webkit-backdrop-filter:blur(16px) saturate(1.35); background:linear-gradient(to bottom, rgba(18,18,22,.52), rgba(18,18,22,.34)); box-shadow:0 10px 30px rgba(0,0,0,.25); }
.header-inner{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  padding:14px 24px; position:relative;
}
.nav{ display:flex; gap:28px; justify-self:center; }
.nav a{ opacity:.9; }
.nav a:hover{ opacity:1; }

/* Language switcher */
.lang-switch{ justify-self:end; position:relative; }
.lang-btn{
  display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 12px;
  border-radius:12px; border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06); color:inherit; cursor:pointer;
  backdrop-filter:blur(10px) saturate(1.1); -webkit-backdrop-filter:blur(10px) saturate(1.1);
}
.lang-menu{
  position:absolute; right:0; top:calc(100% + 8px); list-style:none; margin:0; padding:6px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  border-radius:12px; display:none; min-width:110px; box-shadow:0 16px 40px rgba(0,0,0,.4); backdrop-filter:blur(10px);
}
.lang-switch.open .lang-menu{ display:block; }
.lang-menu li{ margin:0; }
.lang-menu button{
  width:100%; text-align:left; padding:8px 10px; background:transparent; border:0; color:inherit; cursor:pointer;
  border-radius:8px;
}
.lang-menu button:hover{ background:rgba(255,255,255,.09); }

/* Hero */
.hero{ position:relative; padding:0; }
.hero-bg{ position:absolute; inset:0; z-index:-1; background: transparent; pointer-events:none; }
.hero-center{ display:grid; place-items:center; height:72vh; position:relative; }
.logo-mount{ display:grid; place-items:center; }
.hero-logo-fallback{ width:min(36vw,540px); filter:drop-shadow(0 18px 50px rgba(0,0,0,.6)); animation:breathe 7s ease-in-out infinite; }
@keyframes breathe{ 0%{transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }

/* Inline SVG animation (looping stroke) */
.logo-svg{ width:min(36vw,540px); height:auto; filter:drop-shadow(0 18px 50px rgba(0,0,0,.6)); }
.logo-svg .outline{
  fill:none; stroke:#fff; stroke-width:18; stroke-linecap:round; stroke-linejoin:round; opacity:.95;
  stroke-dasharray:var(--len,300); stroke-dashoffset:var(--len,300);
  animation:drawLoop 2.6s ease-in-out infinite;
}
@keyframes drawLoop{ 0%{stroke-dashoffset:var(--len,300);} 55%{stroke-dashoffset:0;} 100%{stroke-dashoffset:var(--len,300);} }
.logo-svg .fill{ fill:#fff; opacity:0; animation:fillIn .6s ease .6s forwards; }
@keyframes fillIn{ to{ opacity:1; } }

/* Scroll hint */
.scroll-hint{
  position:absolute; bottom:clamp(24px,7vh,48px);
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:999px; color:#e8e9ee;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(12px) saturate(1.2); -webkit-backdrop-filter:blur(12px) saturate(1.2);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  animation:hintBounce 2.2s ease-in-out infinite;
}
@keyframes hintBounce{ 0%,100%{transform:translateY(0);opacity:.9;} 50%{transform:translateY(6px);opacity:1;} }

/* Companies */
.logos.one{ display:grid; grid-template-columns:1fr; justify-items:center; margin-top:24px; }
.logo-tile{ width:132px; height:132px; border-radius:var(--radius,30px); background:rgba(255,255,255,.06); border:1px solid var(--line,rgba(255,255,255,.12)); box-shadow:0 12px 30px rgba(0,0,0,.35); display:grid; place-items:center; }
.logo-tile img{ width:60%; }

/* About */
.about.has-bg{ position:relative; padding:120px 0; }
.about-bg{ position:absolute; inset:0; background:url('assets/woods.jpg') center/cover no-repeat; filter:saturate(1.08) contrast(1.02) brightness(.9); opacity:.95; }
.about .container{ position:relative; z-index:1; }
.glass-panel{ backdrop-filter:blur(18px) saturate(1.25); -webkit-backdrop-filter:blur(18px) saturate(1.25); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.28); border-radius:var(--radius,30px); padding:28px; box-shadow:0 20px 60px rgba(0,0,0,.6); }
.glass-full{ width:100%; max-width:none; margin:0; }

/* Contact */
.contact-form,.company-info{ border:1px solid var(--line,rgba(255,255,255,.12)); border-radius:18px; background:rgba(255,255,255,.04); padding:18px; }
.field{ display:grid; gap:6px; margin:10px 0; }
input,textarea{ width:100%; border:1px solid var(--line,rgba(255,255,255,.12)); border-radius:12px; background:rgba(255,255,255,.06); color:inherit; padding:10px 12px; font:inherit; }

/* Company info — modern two-column list */
.info-list{
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: grid;
  gap: 0;
  border-radius: 14px;
  overflow: hidden;
}
.info-list li{
  display: grid;
  grid-template-columns: minmax(140px,1fr) minmax(0,2fr);
  gap: 12px 18px;
  align-items: baseline;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line, rgba(255,255,255,.12));
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.025));
}
.info-list li:last-child{ border-bottom: none; }
.info-list .k{ color: var(--text-dim, #b6b8c3); font-weight: 600; white-space: nowrap; }
.info-list .v{ word-break: break-word; }
.mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  letter-spacing: .2px;
}

/* Footer */
.site-footer{ border-top:1px solid var(--line,rgba(255,255,255,.12)); padding:28px 0; background:rgba(255,255,255,.02); }
.footer-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer-nav{ display:flex; gap:16px; }

/* Reveal */
.reveal{ opacity:0; transform:translateY(10px); transition:opacity .5s ease, transform .5s ease; }
.reveal.in{ opacity:1; transform:none; }

/* Back to top */
.to-top{
  position:fixed; right:20px; bottom:20px; z-index:60;
  width:44px; height:44px; border-radius:999px; color:#e8e9ee;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(10px) saturate(1.1); -webkit-backdrop-filter:blur(10px) saturate(1.1);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease;
}
.to-top.show{ opacity:1; pointer-events:auto; }
.to-top:active{ transform:scale(.96); }

/* A11y */
.skip-link{ position:absolute; left:-9999px; top:-9999px; }
.skip-link:focus{ left:16px; top:12px; background:#000; color:#fff; padding:8px 12px; border-radius:8px; z-index:100; }