:root {
  --bg: #03060d;
  --bg-deep: #01040a;
  --surface: #07172c;
  --surface-2: #0a1e38;
  --text: #f4f5f2;
  --muted: #98a4ba;
  --accent: #2f8cff;
  --accent-strong: #1675ff;
  --line: rgba(151, 178, 215, 0.28);
  --line-soft: rgba(151, 178, 215, 0.12);
  --max: 1480px;
  --gutter: clamp(20px, 4.4vw, 72px);
  --radius: 22px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  color: var(--text);
  background:
    radial-gradient(circle at 86% 12%, rgba(15, 55, 108, 0.13), transparent 28%),
    linear-gradient(180deg, var(--bg-deep), var(--bg) 24%, #020711 100%);
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
body::before {
  position: fixed; inset: 0; z-index: 100; pointer-events: none; opacity: 0.12;
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
}
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
svg { display: block; }
.container { width: min(100%, var(--max)); margin-inline: auto; padding-inline: var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 10px 16px; color: #fff; background: var(--accent); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: absolute; inset: 0 0 auto; z-index: 30; border-bottom: 1px solid var(--line-soft); transition: background .25s ease, transform .25s ease; }
.site-header.is-fixed { position: fixed; background: rgba(3,6,13,.84); backdrop-filter: blur(18px); }
.header-inner { height: 96px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 40px; }
.wordmark { display: inline-flex; align-items: baseline; font-size: 34px; font-weight: 700; letter-spacing: -1.4px; }
.wordmark span:last-child { color: var(--accent); }
.site-nav { justify-self: end; display: flex; align-items: center; gap: clamp(22px, 2.6vw, 44px); }
.site-nav a, .site-footer nav a { position: relative; color: #d7dce5; font-size: 15px; }
.site-nav a::after, .site-footer nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: var(--accent); transition: right .3s var(--ease); }
.site-nav a:hover::after, .site-nav a:focus-visible::after, .site-footer nav a:hover::after { right: 0; }
.menu-toggle { display: none; width: 54px; height: 54px; border: 1px solid var(--accent); border-radius: 14px; color: #fff; background: transparent; place-items: center; align-content: center; gap: 6px; cursor: pointer; }
.menu-toggle span:not(.sr-only) { width: 24px; height: 2px; background: currentColor; transition: transform .25s ease, opacity .25s ease; }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(8px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(4) { transform: translateY(-8px) rotate(-45deg); }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 28px; min-height: 58px; padding: 0 28px; border: 1px solid var(--accent); border-radius: 8px; font-size: 17px; font-weight: 600; line-height: 1.1; transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s var(--ease), box-shadow .25s ease; }
.button svg, .text-link svg, .contact-link svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s var(--ease); }
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button:hover svg, .text-link:hover svg, .contact-link:hover svg { transform: translateX(5px); }
.button--primary { color: #fff; background: linear-gradient(110deg, var(--accent), #146dff); box-shadow: 0 18px 54px rgba(19,105,242,.18); }
.button--primary:hover { box-shadow: 0 20px 64px rgba(19,105,242,.28); }
.button--header { min-height: 52px; padding-inline: 22px; font-size: 14px; background: var(--accent); }

.hero { position: relative; min-height: 830px; padding: 150px 0 32px; border-bottom: 1px solid var(--line-soft); overflow: hidden; }
.hero-aura { position: absolute; inset: -25% -8% auto auto; width: 68vw; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(17,72,143,.14), transparent 66%); pointer-events: none; }
.hero-grid { position: relative; display: grid; grid-template-columns: minmax(480px,.92fr) minmax(590px,1.08fr); column-gap: clamp(48px,4vw,68px); align-items: center; }
.hero-copy { align-self: center; padding-bottom: 32px; }
.hero h1 { max-width: 690px; margin: 0; font-size: clamp(46px, 3.84vw, 62px); font-weight: 700; letter-spacing: -.055em; line-height: 1.01; }
.hero-copy > p { max-width: 620px; margin: 28px 0 0; color: var(--muted); font-size: clamp(19px, 1.55vw, 23px); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 38px; }
.text-link { display: inline-flex; align-items: center; gap: 18px; padding: 14px 0; color: var(--text); font-size: 17px; border-bottom: 1px solid rgba(47,140,255,.55); }

.architecture { position: relative; min-height: 540px; font-size: 12px; }
.arch-node { position: absolute; z-index: 2; padding: 20px; border: 1px solid rgba(139,175,220,.5); border-radius: 10px; background: rgba(4,13,27,.56); backdrop-filter: blur(6px); box-shadow: inset 0 1px rgba(255,255,255,.03); }
.arch-node--clients { top: 35px; left: 22%; width: 40%; }
.arch-node--app { top: 220px; left: 7%; width: 44%; }
.arch-node--integrations { top: 220px; left: 57%; width: 21%; }
.arch-node--ai { top: 220px; right: 0; width: 18%; }
.arch-node--infra { bottom: 28px; left: 5%; width: 61%; }
.arch-node--status { bottom: 60px; right: 0; width: 27%; display: flex; gap: 10px; align-items: center; color: #9ecb8a; }
.arch-label { display: block; margin-bottom: 14px; color: #9fadc2; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.arch-node strong { display: block; font-size: 13px; }
.arch-node small { display: block; margin-top: 9px; color: var(--muted); }
.arch-inline { display: flex; justify-content: space-between; gap: 14px; color: #d8dfeb; }
.arch-inline span { position: relative; padding-top: 34px; text-align: center; }
.arch-inline span::before { content:""; position:absolute; top:0; left:50%; width:24px; height:20px; border:1px solid var(--accent); transform:translateX(-50%); }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #7ccf72; box-shadow: 0 0 0 5px rgba(124,207,114,.12); }
.arch-lines { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: rgba(76,147,241,.62); stroke-width: 1; stroke-dasharray: 4 6; pointer-events: none; }
.arch-lines circle { fill: var(--accent); stroke: none; }
.hero-rail { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4,1fr); margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); color: #7f8ca2; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; }
.hero-rail span { position: relative; text-align: center; }
.hero-rail span::before { content:""; position:absolute; top:-32px; left:50%; width:7px; height:7px; background:var(--bg); border:1px solid var(--accent); }

.section { position: relative; padding: 140px 0; overflow: hidden; }
.services { padding-top: 82px; }
.section h2, .contact h2 { margin: 0; font-size: clamp(42px, 4vw, 61px); font-weight: 700; letter-spacing: -.05em; line-height: 1.04; }
.section-heading > p, .section-intro p { max-width: 690px; margin: 24px 0 0; color: var(--muted); font-size: 21px; }
.section-intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; align-items: center; margin-bottom: 44px; }
.blueprint { position: relative; height: 250px; background-image: radial-gradient(circle, rgba(47,140,255,.35) 1px, transparent 1px); background-size: 24px 24px; opacity: .84; }
.blueprint-circle, .blueprint-square, .blueprint-line { position: absolute; display: block; border: 1px solid rgba(47,140,255,.55); }
.blueprint-circle { width: 170px; height: 170px; top: 42px; left: 18%; border-radius: 50%; }
.blueprint-square { width: 120px; height: 120px; top: 68px; left: 45%; transform: rotate(30deg); }
.blueprint-line { width: 90%; height: 1px; top: 50%; left: 0; border-width: 1px 0 0; }
.service-list { display: grid; grid-template-columns: repeat(2,1fr); column-gap: 70px; }
.service-item { display: grid; grid-template-columns: 122px 1fr; gap: 28px; min-height: 150px; align-items: center; border-bottom: 1px solid var(--line); transition: border-color .25s ease, background .25s ease; }
.service-item:hover { border-color: var(--accent); background: linear-gradient(90deg, rgba(47,140,255,.055), transparent); }
.service-number, .process-number { color: var(--accent); font-size: 68px; font-weight: 300; letter-spacing: -.05em; line-height: 1; }
.service-item h3 { margin: 0; font-size: 18px; line-height: 1.2; }
.service-item p { max-width: 480px; margin: 10px 0 0; color: var(--muted); font-size: 16px; }
.section-cta { margin-top: 56px; }

.process { background: linear-gradient(180deg, rgba(5,14,29,.18), rgba(2,7,16,.9)); }
.process-track { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; margin-top: 108px; padding-top: 52px; }
.process-track::before, .process-progress { content:""; position:absolute; top:0; left:0; right:0; height:1px; background: var(--line); }
.process-progress { right:auto; width:0; background: var(--accent); box-shadow: 0 0 12px rgba(47,140,255,.45); transition: width 1.3s var(--ease); }
.process.is-active .process-progress { width: 100%; }
.process-step { position: relative; text-align: center; }
.process-dot { position:absolute; top:-59px; left:50%; width:16px; height:16px; border:3px solid var(--bg); border-radius:50%; background:#718097; box-shadow:0 0 0 2px #718097; transform:translateX(-50%); transition: background .3s ease, box-shadow .3s ease; }
.process.is-active .process-dot { background:var(--accent); box-shadow:0 0 0 2px var(--accent), 0 0 18px rgba(47,140,255,.55); }
.process-number { display: block; margin-bottom: 18px; color: #6980a0; font-size: 74px; transition: color .3s ease; }
.process.is-active .process-number { color: var(--accent); }
.process-step h3 { margin:0; font-size:18px; }
.process-step p { max-width: 285px; margin:10px auto 0; color:var(--muted); }
.process-closing { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; margin-top:120px; }
.process-closing p { margin:0; font-size:clamp(42px,4vw,62px); font-weight:700; letter-spacing:-.04em; line-height:1.08; }
.process-closing strong { color:var(--accent); }
.process-diagram { position:relative; height:175px; background-image:radial-gradient(circle, rgba(47,140,255,.3) 1px, transparent 1px); background-size:18px 18px; }
.process-diagram span { position:absolute; border:1px solid rgba(87,139,205,.42); }
.process-diagram span:nth-child(1) { width:110px;height:110px;left:18%;top:25px;transform:rotate(30deg); }
.process-diagram span:nth-child(2) { width:55%;height:1px;left:10%;top:80px;border-width:1px 0 0; }
.process-diagram span:nth-child(3) { width:8px;height:8px;left:64%;top:76px;background:var(--accent); }

.technology { border-top:1px solid var(--line-soft); }
.technology-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(360px,.85fr); gap:70px; align-items:start; }
.stack-list { margin-top:48px; border-top:1px solid var(--line); }
.stack-row { display:grid; grid-template-columns:74px minmax(180px,.85fr) 1.35fr; align-items:center; min-height:96px; border-bottom:1px solid var(--line); }
.stack-row > span { color:#718097; font-size:34px; font-weight:300; }
.stack-row strong { font-size:23px; }
.stack-row code { color:#acc0d8; font-family:"Courier New",monospace; font-size:16px; }
.support-panel { padding:50px 42px 40px; border:1px solid rgba(55,121,205,.5); border-radius:var(--radius); background:linear-gradient(150deg,rgba(9,35,72,.88),rgba(5,18,39,.72)); }
.pulse-line { width:100%; margin-bottom:36px; fill:none; stroke:var(--accent); stroke-width:1.6; }
.support-panel h2 { font-size:clamp(37px,3.2vw,50px); }
.support-panel > p { color:var(--muted); font-size:18px; }
.support-panel ul { margin:28px 0 34px; padding:0; list-style:none; }
.support-panel li { position:relative; padding:18px 0 18px 52px; border-bottom:1px solid var(--line); font-size:19px; }
.support-panel li::before { content:""; position:absolute; left:0; top:16px; width:27px; height:27px; border:1px solid var(--accent); border-radius:50%; }
.support-panel .button { width:100%; }

.lifecycle { border-top:1px solid var(--line-soft); background:linear-gradient(180deg,rgba(4,13,27,.2),rgba(7,23,44,.18)); }
.lifecycle-heading { display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end;margin-bottom:64px; }
.lifecycle-heading h2 { max-width:880px; }
.lifecycle-heading p { max-width:510px;margin:0 0 8px;color:var(--muted);font-size:20px;line-height:1.6; }
.lifecycle-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid var(--line);background:var(--line); }
.lifecycle-card { position:relative;min-height:280px;padding:34px 30px 32px;background:var(--bg);transition:background .3s ease,transform .3s var(--ease); }
.lifecycle-card::after { content:"";position:absolute;left:30px;right:100%;bottom:0;height:2px;background:var(--accent);transition:right .35s var(--ease); }
.lifecycle-card:hover { z-index:1;background:var(--surface);transform:translateY(-4px); }
.lifecycle-card:hover::after { right:30px; }
.lifecycle-tag { display:block;margin-bottom:54px;color:var(--accent);font-family:"Courier New",monospace;font-size:12px;font-weight:700;letter-spacing:.12em; }
.lifecycle-card h3 { margin:0;font-size:19px;letter-spacing:-.02em;line-height:1.2; }
.lifecycle-card p { margin:16px 0 0;color:var(--muted);font-size:15px;line-height:1.62; }

.contact { position:relative; min-height:720px; display:flex; align-items:center; border-bottom:1px solid var(--line); overflow:hidden; }
.contact-inner { position:relative;z-index:2; }
.contact h2 { max-width:1020px; }
.contact p { margin:32px 0 0;color:#bdc6d3;font-size:22px; }
.contact-link { display:flex;align-items:center;gap:24px;width:min(860px,72vw);margin-top:42px;color:var(--accent);font-size:clamp(26px,3vw,43px);font-weight:600; }
.contact-link > span { flex:1;height:1px;background:var(--accent); }
.contact-link svg { flex:none;width:32px;height:32px; }
.contact small { display:block;margin-top:28px;color:#b0bac8;font-size:15px; }
.contact-target { position:absolute;z-index:0;right:-90px;top:50%;width:610px;height:610px;transform:translateY(-50%);opacity:.6; }
.contact-target::before,.contact-target::after,.contact-target span { content:"";position:absolute;inset:50%;border:1px solid rgba(47,140,255,.35);border-radius:50%;transform:translate(-50%,-50%); }
.contact-target::before { width:210px;height:210px; }
.contact-target::after { width:390px;height:390px;border-style:dashed; }
.contact-target span:first-child { width:590px;height:590px; }
.contact-target span:nth-child(2) { width:1px;height:100%;border-width:0 0 0 1px;border-radius:0; }
.contact-target span:nth-child(3) { width:100%;height:1px;border-width:1px 0 0;border-radius:0; }

.site-footer { padding:58px 0 28px;background:#020711; }
.footer-main { display:grid;grid-template-columns:.75fr 1.25fr;align-items:center;gap:40px;padding-bottom:52px; }
.footer-main p { margin:8px 0 0;color:var(--muted); }
.site-footer nav { display:flex;justify-content:flex-end;gap:38px; }
.footer-legal { display:flex;justify-content:space-between;padding-top:26px;border-top:1px solid var(--line);color:#8794a8;font-size:14px; }
.footer-legal a { color:var(--accent); }

.cookie-banner { position:fixed; z-index:150; inset:auto 0 0; padding:22px 0; border-top:1px solid var(--line); background:rgba(3,6,13,.96); backdrop-filter:blur(18px); transform:translateY(100%); opacity:0; transition:transform .4s var(--ease),opacity .4s var(--ease); }
.cookie-banner.is-visible { transform:none; opacity:1; }
.cookie-banner-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.cookie-banner p { margin:0; max-width:900px; color:var(--muted); font-size:15px; line-height:1.55; }
.cookie-banner a { color:var(--accent); border-bottom:1px solid rgba(47,140,255,.55); }
.cookie-banner-actions { flex:none; }
.cookie-banner .button { min-height:48px; padding:0 26px; font-size:15px; }

.reveal { opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease); }
.reveal.is-visible { opacity:1;transform:none; }
:focus-visible { outline:2px solid #fff;outline-offset:4px; }

@media (max-width: 1180px) {
  .header-inner { grid-template-columns:auto 1fr auto; }
  .button--header { display:none; }
  .hero { min-height:auto; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-copy { max-width:840px;padding-top:20px; }
  .architecture { width:100%;max-width:850px;margin:50px auto 0; }
  .technology-grid { grid-template-columns:1fr; }
  .support-panel { display:grid;grid-template-columns:1fr 1fr;column-gap:50px; }
  .pulse-line { grid-column:1/-1; }
  .support-panel ul { grid-column:2;grid-row:2/5;margin:0; }
  .support-panel .button { width:max-content; }
}

@media (max-width: 820px) {
  :root { --gutter: 22px; }
  .site-header { position:absolute; }
  .header-inner { height:86px;display:flex;justify-content:space-between; }
  .wordmark { font-size:30px; }
  .menu-toggle { display:grid;position:relative;z-index:2; }
  .site-nav { position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;gap:28px;background:rgba(2,7,17,.97);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease; }
  .site-nav.is-open { opacity:1;visibility:visible;transform:none; }
  .site-nav a { font-size:28px; }
  .hero { padding-top:140px;padding-bottom:30px; }
  .hero-grid { display:block; }
  .hero h1 { font-size:clamp(37px,9.6vw,51px);line-height:1.05; }
  .hero-copy > p { font-size:19px;line-height:1.55; }
  .hero-actions { align-items:stretch;flex-direction:column;gap:14px;margin-top:34px; }
  .hero-actions .button { width:100%; }
  .text-link { align-self:flex-start; }
  .architecture { min-height:280px;margin-top:45px; }
  .arch-node { display:none; }
  .arch-lines { inset:55px 0 auto;height:170px; }
  .arch-lines path { d:path("M0 90H800M400 0V170"); }
  .arch-lines circle { display:none; }
  .architecture::before { content:"";position:absolute;left:50%;top:100px;width:68px;height:68px;border:1px solid var(--accent);transform:translateX(-50%); }
  .architecture::after { content:"";position:absolute;left:50%;top:130px;width:10px;height:10px;background:var(--accent);transform:translateX(-50%);box-shadow:0 0 20px rgba(47,140,255,.55); }
  .hero-rail { margin-top:-70px;padding-top:25px; }
  .hero-rail span { font-size:9px;letter-spacing:.08em; }
  .section { padding:100px 0; }
  .section h2,.contact h2 { font-size:clamp(34px,8.8vw,46px); }
  .section-heading > p,.section-intro p { font-size:18px; }
  .section-intro { grid-template-columns:1fr;gap:32px;margin-bottom:20px; }
  .blueprint { height:150px;order:-1; }
  .blueprint-circle { width:105px;height:105px;top:20px; }
  .blueprint-square { width:75px;height:75px;top:33px; }
  .service-list { grid-template-columns:1fr; }
  .service-item { grid-template-columns:92px 1fr;gap:16px;min-height:126px; }
  .service-number { font-size:52px; }
  .service-item h3 { font-size:16px; }
  .service-item p { font-size:15px; }
  .section-cta { width:100%; }
  .process-track { grid-template-columns:1fr;margin-top:65px;padding:0 0 0 42px;gap:0; }
  .process-track::before,.process-progress { top:0;bottom:0;left:7px;right:auto;width:1px;height:auto; }
  .process-progress { height:0;transition:height 1.3s var(--ease); }
  .process.is-active .process-progress { width:1px;height:100%; }
  .process-step { min-height:195px;text-align:left; }
  .process-dot { top:20px;left:-35px; }
  .process-number { font-size:56px; }
  .process-step p { margin-left:0; }
  .process-closing { grid-template-columns:1fr;margin-top:40px; }
  .process-diagram { height:150px; }
  .technology-grid { display:block; }
  .stack-row { grid-template-columns:56px 1fr;gap:12px;padding:18px 0; }
  .stack-row > span { font-size:28px; }
  .stack-row strong { font-size:20px; }
  .stack-row code { grid-column:2;font-size:14px; }
  .support-panel { display:block;margin-top:56px;padding:36px 26px 28px; }
  .support-panel .button { width:100%; }
  .lifecycle-heading { grid-template-columns:1fr;gap:24px;margin-bottom:44px; }
  .lifecycle-heading p { font-size:18px; }
  .lifecycle-grid { grid-template-columns:repeat(2,1fr); }
  .lifecycle-card { min-height:250px;padding:28px 24px; }
  .lifecycle-tag { margin-bottom:38px; }
  .contact { min-height:690px; }
  .contact h2 br { display:none; }
  .contact p { font-size:18px; }
  .contact-link { width:100%;gap:13px;font-size:clamp(22px,6vw,29px); }
  .contact-link > span { display:none; }
  .contact-target { right:-320px;opacity:.35; }
  .footer-main { grid-template-columns:1fr; }
  .site-footer nav { justify-content:flex-start;flex-wrap:wrap;gap:24px; }
  .cookie-banner-inner { flex-direction:column;align-items:stretch;gap:18px; }
  .cookie-banner .button { width:100%; }
}

@media (max-width: 460px) {
  .button { min-height:62px;padding-inline:20px;font-size:16px; }
  .hero { padding-top:132px; }
  .hero h1 { font-size:clamp(27px,8.4vw,34px);letter-spacing:-.058em; }
  .hero-copy > p { font-size:18px; }
  .hero-rail { grid-template-columns:repeat(2,1fr);row-gap:26px; }
  .service-item { grid-template-columns:72px 1fr; }
  .service-number { font-size:46px; }
  .process-closing p { font-size:39px; }
  .lifecycle-grid { grid-template-columns:1fr; }
  .lifecycle-card { min-height:auto;padding:28px 24px 30px; }
  .lifecycle-tag { margin-bottom:30px; }
  .contact-link { align-items:flex-start;word-break:break-word; }
  .footer-legal { gap:20px;flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
  .reveal { opacity:1;transform:none; }
}
