:root {
  --ink: #0a1015;
  --ink-2: #111a22;
  --paper: #f2f4f5;
  --white: #ffffff;
  --blue: #12608b;
  --blue-bright: #27a7e1;
  --blue-soft: #9bdcf6;
  --line: rgba(10,16,21,.14);
  --line-dark: rgba(255,255,255,.16);
  --muted: #6c757d;
  --container: min(1320px, calc(100vw - 64px));
  --ease: cubic-bezier(.22,1,.36,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Manrope", sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open, body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button, input, textarea { font: inherit; }
.container { width: var(--container); margin-inline: auto; }
.section { padding: 150px 0; position: relative; }

.page-loader {
  position: fixed; inset: 0; z-index: 9999; background: #071017; color: white;
  display: grid; place-content: center; gap: 20px; text-align: center;
  transition: opacity .8s var(--ease), visibility .8s var(--ease);
}
.page-loader.hidden { opacity: 0; visibility: hidden; }
.page-loader p { letter-spacing: .42em; font-size: 12px; margin: 0; font-weight: 700; }
.loader-mark { display: flex; justify-content: center; gap: 7px; }
.loader-mark span { width: 4px; height: 42px; background: var(--blue-bright); animation: loaderPulse 1s ease-in-out infinite; }
.loader-mark span:nth-child(2) { animation-delay: .12s; }
.loader-mark span:nth-child(3) { animation-delay: .24s; }
@keyframes loaderPulse { 0%,100%{transform:scaleY(.35);opacity:.35} 50%{transform:scaleY(1);opacity:1} }

.cursor-glow {
  position: fixed; width: 360px; height: 360px; pointer-events: none; z-index: 1;
  border-radius: 50%; background: radial-gradient(circle, rgba(39,167,225,.11), transparent 67%);
  transform: translate(-50%,-50%); opacity: 0; transition: opacity .3s ease;
}
.scroll-progress { position: fixed; z-index: 3000; top: 0; left: 0; height: 3px; width: 0; background: var(--blue-bright); }

.site-header {
  position: fixed; z-index: 1000; left: 0; right: 0; top: 0; color: white;
  transition: background .35s ease, color .35s ease, box-shadow .35s ease;
}
.site-header.scrolled { background: rgba(242,244,245,.92); backdrop-filter: blur(18px); color: var(--ink); box-shadow: 0 1px 0 var(--line); }
.header-inner { height: 92px; display: grid; grid-template-columns: 210px 1fr auto; align-items: center; gap: 30px; }
.brand { width: 184px; position: relative; z-index: 3; }
.brand img { height: 58px; width: auto; object-fit: contain; filter: brightness(0) invert(1); transition: filter .35s ease; }
.site-header.scrolled .brand img, footer .brand img { filter: none; }
.desktop-nav { display: flex; justify-content: center; gap: clamp(20px,2.5vw,42px); font-size: 13px; font-weight: 600; }
.desktop-nav a { position: relative; padding: 12px 0; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:5px; height:1px; background:currentColor; transition:right .35s var(--ease); }
.desktop-nav a:hover::after { right:0; }
.header-cta { display:flex; align-items:center; gap:14px; border:1px solid rgba(255,255,255,.36); padding:14px 18px; font-size:13px; font-weight:700; transition:.3s ease; }
.site-header.scrolled .header-cta { border-color:var(--line); }
.header-cta:hover { background:var(--blue); color:white; border-color:var(--blue); }
.header-cta svg, .primary-button svg, .arrow-link svg, .cap-arrow svg { width:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.menu-toggle { display:none; background:none; border:0; width:42px; height:42px; position:relative; z-index:3; color:currentColor; }
.menu-toggle span { position:absolute; width:24px; height:1.5px; left:9px; background:currentColor; transition:.4s var(--ease); }
.menu-toggle span:first-child { top:17px; }
.menu-toggle span:last-child { top:25px; }
.menu-open .menu-toggle span:first-child { top:21px; transform:rotate(45deg); }
.menu-open .menu-toggle span:last-child { top:21px; transform:rotate(-45deg); }
.mobile-menu { position:fixed; inset:0; background:#071017; color:white; opacity:0; visibility:hidden; transition:.5s var(--ease); }
.mobile-menu-inner { min-height:100%; padding:150px 32px 48px; display:flex; flex-direction:column; gap:18px; transform:translateY(20px); transition:.5s var(--ease); }
.mobile-menu a { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif; font-size:clamp(32px,8vw,52px); font-weight:600; }
.mobile-contact { margin-top:auto; display:flex; flex-direction:column; gap:7px; }
.mobile-contact a { font-family:"Manrope"; font-size:15px; }
.menu-open .mobile-menu { opacity:1; visibility:visible; }
.menu-open .mobile-menu-inner { transform:none; }

.hero { min-height: 100svh; position:relative; overflow:hidden; color:white; background:#061018; }
.hero-media { position:absolute; inset:-8%; }
.hero-media img { height:100%; object-fit:cover; filter:saturate(.82) contrast(1.05); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,10,15,.9) 0%,rgba(4,10,15,.55) 48%,rgba(4,10,15,.2) 100%),linear-gradient(0deg,rgba(4,10,15,.9),transparent 42%); }
.hero-grid { position:absolute; inset:0; opacity:.17; background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px); background-size:70px 70px; mask-image:linear-gradient(to right,black,transparent 70%); }
.hero-light { position:absolute; border-radius:50%; filter:blur(20px); opacity:.28; mix-blend-mode:screen; }
.hero-light-one { width:460px;height:460px;right:8%;top:12%;background:radial-gradient(circle,var(--blue-bright),transparent 70%);animation:floatLight 8s ease-in-out infinite; }
.hero-light-two { width:220px;height:220px;left:33%;bottom:10%;background:radial-gradient(circle,#ef8f40,transparent 70%);animation:floatLight 10s ease-in-out infinite reverse; }
@keyframes floatLight { 50%{transform:translate3d(30px,-24px,0) scale(1.08)} }
.hero-content { position:relative; z-index:2; padding-top:clamp(180px,22vh,250px); }
.hero-kicker { display:flex; align-items:center; gap:12px; text-transform:uppercase; font-size:11px; letter-spacing:.22em; font-weight:700; }
.pulse-dot { width:8px;height:8px;background:var(--blue-bright);border-radius:50%;box-shadow:0 0 0 0 rgba(39,167,225,.7);animation:pulse 2s infinite; }
@keyframes pulse { 70%{box-shadow:0 0 0 12px rgba(39,167,225,0)}100%{box-shadow:0 0 0 0 rgba(39,167,225,0)} }
.hero-title { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif; font-size:clamp(54px,7.1vw,112px); line-height:.92; letter-spacing:-.055em; max-width:1100px; margin:0 0 28px; font-weight:600; }
.hero-title .line { display:block; overflow:hidden; }
.hero-title .line > span { display:block; transform:translateY(115%); animation:titleIn 1.1s var(--ease) forwards; animation-delay:.45s; }
.hero-title .line:nth-child(2) > span { animation-delay:.58s; }
@keyframes titleIn { to{transform:none} }
.accent-line { color:var(--blue-soft); }
.hero-copy { max-width:630px; font-size:clamp(16px,1.45vw,22px); line-height:1.65; color:rgba(255,255,255,.75); }
.hero-actions { display:flex; align-items:center; gap:34px; margin-top:44px; }
.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:58px; padding:0 25px; background:var(--blue); color:white; border:0; font-size:13px; font-weight:700; cursor:pointer; transition:background .25s ease, transform .25s ease; }
.primary-button:hover { background:#0d77aa; }
.text-link { display:inline-flex; flex-direction:column; gap:8px; font-size:13px; font-weight:700; }
.text-link i { width:100%; height:1px; background:rgba(255,255,255,.35); position:relative; overflow:hidden; }
.text-link i::after { content:"";position:absolute;inset:0;background:white;transform:translateX(-105%);transition:.45s var(--ease); }
.text-link:hover i::after { transform:none; }
.hero-bottom { position:absolute; z-index:2; left:50%; transform:translateX(-50%); bottom:28px; display:grid; grid-template-columns:repeat(3,1fr); max-width:850px; gap:50px; padding-right:80px; }
.hero-proof { display:flex; gap:15px; align-items:flex-start; }
.hero-proof span { color:var(--blue-soft); font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif; font-size:12px; }
.hero-proof p { margin:0; color:rgba(255,255,255,.63); font-size:12px; line-height:1.6; }
.scroll-cue { position:absolute; right:32px; bottom:30px; z-index:2; display:flex; align-items:center; gap:15px; writing-mode:vertical-rl; text-transform:uppercase; letter-spacing:.18em; font-size:9px; }
.scroll-cue i { display:block; width:1px;height:50px;background:rgba(255,255,255,.3);position:relative;overflow:hidden; }
.scroll-cue i::after { content:"";position:absolute;top:-50%;left:0;width:1px;height:50%;background:white;animation:scrollLine 1.8s ease-in-out infinite; }
@keyframes scrollLine { 100%{top:110%} }

.section-label { display:flex; align-items:center; gap:14px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:800; }
.section-label span { color:var(--blue); }
.section-label.light { color:rgba(255,255,255,.7); }
.section-label.light span { color:var(--blue-soft); }
.intro-grid { display:grid; grid-template-columns:220px 1fr; gap:80px; }
.display-copy { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif; font-size:clamp(42px,5.4vw,82px); line-height:1.03; letter-spacing:-.045em; max-width:1050px; margin:0; font-weight:600; }
.intro-copy-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin:65px 0 42px; max-width:900px; }
.intro-copy-grid p { margin:0; font-size:16px; color:#505a62; line-height:1.85; }
.arrow-link { display:inline-flex; align-items:center; gap:22px; font-size:13px; font-weight:800; border-bottom:1px solid var(--line); padding-bottom:10px; }
.arrow-link svg { transition:transform .3s var(--ease); }
.arrow-link:hover svg { transform:translateX(6px); }

.capabilities { background:var(--ink); color:white; overflow:hidden; }
.section-heading { display:grid; grid-template-columns:220px 1fr; gap:80px; align-items:start; margin-bottom:90px; }
.section-heading h2 { margin:0; font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif; font-size:clamp(44px,6vw,90px); line-height:.98; letter-spacing:-.05em; font-weight:600; }
.section-heading h2 em, .contact h2 em, .dark-heading h2 em { font-style:normal; color:var(--blue-soft); }
.capability-list { border-top:1px solid var(--line-dark); }
.capability-item { min-height:150px; border-bottom:1px solid var(--line-dark); display:grid; grid-template-columns:110px 1fr 118px; align-items:center; gap:25px; cursor:pointer; position:relative; outline:none; transition:padding .45s var(--ease), background .45s var(--ease); }
.capability-item::before { content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(39,167,225,.14),transparent 72%);transform:scaleX(0);transform-origin:left;transition:.5s var(--ease); }
.capability-item:hover::before,.capability-item.active::before,.capability-item:focus-visible::before { transform:scaleX(1); }
.capability-item:hover,.capability-item:focus-visible { padding-left:18px; }
.capability-item:focus-visible { box-shadow:inset 0 0 0 2px var(--blue-bright); }
.cap-number { color:var(--blue-soft); font-size:12px; position:relative; }
.cap-main { position:relative; display:grid; grid-template-columns:minmax(250px,.8fr) 1.2fr; align-items:center; gap:50px; }
.cap-main h3 { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif; margin:0; font-size:clamp(28px,3vw,48px); letter-spacing:-.03em; }
.cap-main p { margin:0; color:rgba(255,255,255,.58); max-width:560px; line-height:1.75; font-size:14px; }
.cap-action { position:relative;display:flex;align-items:center;justify-content:flex-end;gap:13px; }
.cap-action > span { color:rgba(255,255,255,.48);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;transition:color .3s ease; }
.cap-arrow { position:relative; width:46px;height:46px;border:1px solid var(--line-dark);display:grid;place-items:center;border-radius:50%;transition:.4s var(--ease); }
.capability-item:hover .cap-arrow,.capability-item:focus-visible .cap-arrow { transform:rotate(-35deg);background:var(--blue);border-color:var(--blue); }
.capability-item:hover .cap-action > span,.capability-item:focus-visible .cap-action > span { color:white; }
.floating-preview { position:fixed; width:310px;height:210px; z-index:20; pointer-events:none; opacity:0; transform:translate(-50%,-50%) scale(.8) rotate(-3deg); transition:opacity .25s ease,transform .35s var(--ease); overflow:hidden; box-shadow:0 25px 70px rgba(0,0,0,.35); }
.floating-preview.visible { opacity:1; transform:translate(-50%,-50%) scale(1) rotate(-3deg); }
.floating-preview img { height:100%;object-fit:cover;transition:opacity .2s ease,transform .6s var(--ease); }
.capability-modal { position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:28px;opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s var(--ease); }
.capability-modal.open { opacity:1;visibility:visible; }
.capability-modal-backdrop { position:absolute;inset:0;background:rgba(3,8,12,.82);backdrop-filter:blur(13px); }
.capability-modal-panel { position:relative;width:min(1120px,100%);max-height:min(760px,calc(100vh - 56px));display:grid;grid-template-columns:1.05fr .95fr;background:#eef1f3;color:var(--ink);overflow:auto;box-shadow:0 45px 120px rgba(0,0,0,.5);transform:translateY(34px) scale(.97);transition:transform .5s var(--ease); }
.capability-modal.open .capability-modal-panel { transform:none; }
.capability-modal-close { position:absolute;z-index:3;top:22px;right:22px;width:48px;height:48px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(5,13,18,.35);backdrop-filter:blur(10px);cursor:pointer; }
.capability-modal-close span { position:absolute;left:14px;top:23px;width:20px;height:1.5px;background:white; }
.capability-modal-close span:first-child { transform:rotate(45deg); }
.capability-modal-close span:last-child { transform:rotate(-45deg); }
.capability-modal-media { min-height:620px;overflow:hidden;background:#0b141b; }
.capability-modal-media img { height:100%;object-fit:cover;transition:transform .8s var(--ease); }
.capability-modal.open .capability-modal-media img { transform:scale(1.025); }
.capability-modal-content { padding:clamp(45px,6vw,84px);display:flex;flex-direction:column;justify-content:center; }
.capability-modal-eyebrow { display:flex;gap:13px;align-items:center;text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:800;color:#6b757d; }
.capability-modal-eyebrow span { color:var(--blue); }
.capability-modal-content h3 { font-family:"Space Grotesk", "Manrope", Arial, sans-serif;font-size:clamp(42px,5vw,68px);line-height:1;letter-spacing:-.045em;margin:28px 0 25px; }
.capability-modal-description { color:#566069;line-height:1.85;margin:0;font-size:15px; }
.capability-modal-points { list-style:none;padding:0;margin:34px 0 40px;display:grid;gap:14px; }
.capability-modal-points li { position:relative;padding-left:25px;font-size:13px;font-weight:700; }
.capability-modal-points li::before { content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border:2px solid var(--blue);border-radius:50%; }
.modal-contact-link { align-self:flex-start; }

.quality { min-height:900px; display:flex; align-items:center; overflow:hidden; padding:0; }
.quality-media { position:absolute; inset:0; }
.quality-media img { height:110%;object-fit:cover; }
.quality-media-overlay { position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,13,18,.92) 0%,rgba(6,13,18,.65) 50%,rgba(6,13,18,.18) 100%); }
.quality-grid { position:relative; z-index:2; }
.quality-card { width:min(670px,68%); color:white; padding:70px 0; }
.quality-card h2 { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif; font-size:clamp(44px,5vw,75px); line-height:1.02; letter-spacing:-.045em; margin:35px 0; }
.quality-card > p { color:rgba(255,255,255,.66);font-size:16px;line-height:1.85;max-width:620px; }
.quality-tags { display:flex;flex-wrap:wrap;gap:10px;margin-top:38px; }
.quality-tags span { border:1px solid rgba(255,255,255,.25);padding:12px 15px;font-size:11px;letter-spacing:.08em;backdrop-filter:blur(10px); }

.process { background:#e8ecee; }
.dark-heading { color:var(--ink); }
.dark-heading h2 em { color:var(--blue); }
.process-line { height:1px;background:var(--line);margin:10px 0 0; }
.process-line span { display:block;width:0;height:1px;background:var(--blue);transition:width 1.5s var(--ease); }
.process-line.animated span { width:100%; }
.process-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line); }
.process-step { background:#e8ecee;padding:45px 34px 60px;min-height:300px;transition:background .35s ease,color .35s ease,transform .35s var(--ease); }
.process-step:hover { background:var(--ink);color:white;transform:translateY(-10px); }
.process-step span { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif;font-size:12px;color:var(--blue); }
.process-step h3 { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif;font-size:28px;margin:55px 0 18px; }
.process-step p { color:#667078;line-height:1.75;font-size:14px;margin:0; }
.process-step:hover p { color:rgba(255,255,255,.62); }
.process-step:hover span { color:var(--blue-soft); }

.sectors { background:#0b141b;color:white;overflow:hidden;padding-top:70px; }
.sector-marquee { white-space:nowrap;overflow:hidden;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);padding:28px 0;margin-bottom:110px; }
.sector-marquee div { display:inline-flex;align-items:center;gap:36px;animation:marquee 28s linear infinite; }
.sector-marquee span { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif;font-size:clamp(34px,4vw,62px);font-weight:600;color:rgba(255,255,255,.16); }
.sector-marquee i { color:var(--blue-bright);font-style:normal;font-size:24px; }
@keyframes marquee { to{transform:translateX(-50%)} }
.sectors-content { display:grid;grid-template-columns:220px 1fr;gap:80px; }
.sector-grid { display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark); }
.sector-card { min-height:390px;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);position:relative;overflow:hidden;isolation:isolate; }
.sector-card-image { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.05);transform:scale(1.01);transition:transform .9s var(--ease),filter .7s ease; }
.sector-card-shade { position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,12,17,.18),rgba(5,12,17,.42) 38%,rgba(5,12,17,.96) 100%);transition:background .5s ease; }
.sector-card-content { position:relative;z-index:2;min-height:390px;padding:34px 38px;display:flex;flex-direction:column;justify-content:flex-end; }
.sector-card::after { content:"";position:absolute;z-index:1;inset:auto -80px -100px auto;width:240px;height:240px;border-radius:50%;background:var(--blue);filter:blur(95px);opacity:.12;transition:opacity .5s ease,transform .7s var(--ease); }
.sector-card:hover .sector-card-image { transform:scale(1.09);filter:saturate(.95) contrast(1.06); }
.sector-card:hover .sector-card-shade { background:linear-gradient(180deg,rgba(5,12,17,.08),rgba(5,12,17,.32) 35%,rgba(5,12,17,.94) 100%); }
.sector-card:hover::after { opacity:.5;transform:translate(-20px,-15px); }
.sector-card span { color:var(--blue-soft);font-size:11px; }
.sector-card h3 { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif;font-size:38px;margin:62px 0 15px; }
.sector-card p { color:rgba(255,255,255,.7);line-height:1.7;max-width:370px;margin:0; }

.contact { background:#071017;color:white;overflow:hidden; }
.contact-bg { position:absolute;inset:0;background:radial-gradient(circle at 20% 40%,rgba(18,96,139,.28),transparent 36%),linear-gradient(120deg,transparent 0 57%,rgba(255,255,255,.025) 57% 58%,transparent 58% 65%,rgba(255,255,255,.02) 65% 66%,transparent 66%); }
.contact-grid { display:grid;grid-template-columns:1.1fr .9fr;gap:100px;position:relative;z-index:2; }
.contact h2 { font-family:"Space Grotesk", "Manrope", Arial, sans-serif, "Manrope", Arial, sans-serif;font-size:clamp(50px,6vw,88px);line-height:.98;letter-spacing:-.05em;margin:42px 0 32px; }
.contact-copy > p { color:rgba(255,255,255,.6);line-height:1.8;max-width:560px; }
.contact-links { display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:45px; }
.contact-links a { font-size:20px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:5px; }
.contact-links span { color:rgba(255,255,255,.46);font-size:13px;margin-top:6px; }
.contact-form { background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:38px;backdrop-filter:blur(14px); }
.contact-form label { display:block;margin-bottom:25px; }
.contact-form label span { display:block;text-transform:uppercase;letter-spacing:.13em;font-size:10px;color:rgba(255,255,255,.48);margin-bottom:10px; }
.contact-form input,.contact-form textarea { width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.18);color:white;padding:11px 0 14px;outline:none;resize:none;transition:border-color .25s ease; }
.contact-form input:focus,.contact-form textarea:focus { border-color:var(--blue-bright); }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:rgba(255,255,255,.28); }
.contact-form .primary-button { width:100%;margin-top:8px; }
.form-note { font-size:10px!important;color:rgba(255,255,255,.3)!important;text-align:center;margin:14px 0 0!important; }

footer { background:#f2f4f5;padding:60px 0 25px; }
.footer-top { display:flex;align-items:center;justify-content:space-between;padding-bottom:45px;border-bottom:1px solid var(--line); }
.footer-brand img { height:60px; }
.footer-nav { display:flex;gap:28px;font-size:12px;font-weight:700; }
.footer-bottom { display:flex;justify-content:space-between;align-items:center;padding-top:23px;color:#6f7880;font-size:11px; }

.reveal { opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease); }
.reveal.visible { opacity:1;transform:none; }
.delay-1 { transition-delay:.1s; }.delay-2 { transition-delay:.2s; }.delay-3 { transition-delay:.3s; }.delay-4 { transition-delay:.4s; }

@media (max-width: 1050px) {
  :root { --container:min(100% - 42px, 1320px); }
  .desktop-nav,.header-cta { display:none; }
  .menu-toggle { display:block;justify-self:end; }
  .header-inner { grid-template-columns:1fr auto; }
  .hero-bottom { display:none; }
  .intro-grid,.section-heading,.sectors-content { grid-template-columns:1fr;gap:38px; }
  .section-heading { margin-bottom:60px; }
  .cap-main { grid-template-columns:1fr;gap:12px; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .contact-grid { grid-template-columns:1fr;gap:60px; }
  .quality-card { width:82%; }
}

@media (max-width: 700px) {
  :root { --container:calc(100% - 36px); }
  .section { padding:95px 0; }
  .header-inner { height:74px; }
  .brand { width:150px; }
  .brand img { height:46px; }
  .hero-content { padding-top:165px; }
  .hero-title { font-size:clamp(46px,14vw,72px); }
  .hero-copy { font-size:15px;max-width:92%; }
  .hero-actions { align-items:flex-start;flex-direction:column;gap:24px;margin-top:34px; }
  .primary-button { min-height:54px; }
  .scroll-cue { display:none; }
  .intro-copy-grid { grid-template-columns:1fr;gap:22px;margin:40px 0 35px; }
  .display-copy { font-size:41px; }
  .capability-item { grid-template-columns:45px 1fr 90px;min-height:170px;gap:12px; }
  .cap-action > span { display:none; }
  .capability-modal { padding:14px; }
  .capability-modal-panel { grid-template-columns:1fr;max-height:calc(100vh - 28px); }
  .capability-modal-media { min-height:290px;max-height:38vh; }
  .capability-modal-content { padding:38px 28px 42px; }
  .capability-modal-close { top:14px;right:14px; }
  .cap-main h3 { font-size:28px; }
  .cap-main p { font-size:12px;line-height:1.6; }
  .floating-preview { display:none; }
  .quality { min-height:760px; }
  .quality-media img { object-position:62% center; }
  .quality-card { width:100%; }
  .quality-card h2 { font-size:44px; }
  .process-grid,.sector-grid { grid-template-columns:1fr; }
  .process-step { min-height:230px;padding:34px 25px 45px; }
  .process-step h3 { margin-top:34px; }
  .sectors { padding-top:45px; }
  .sector-marquee { margin-bottom:80px; }
  .sector-card,.sector-card-content { min-height:310px; }
  .sector-card-content { padding:28px; }
  .sector-card h3 { margin-top:45px;font-size:34px; }
  .contact-form { padding:28px 22px; }
  .footer-top { align-items:flex-start;gap:35px;flex-direction:column; }
  .footer-nav { flex-wrap:wrap; }
  .footer-bottom { align-items:flex-start;gap:18px;flex-direction:column; }
  .cursor-glow { display:none; }
}

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