/* GeneOmics visual refresh — shared across every page. */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&family=Manrope:wght@400;500;600;700&display=swap');

:root {
  --ink:#050a14; --navy:#0b3157; --navy2:#071f38; --navy3:#0d4d73;
  --teal:#4bd7cb; --cyan:#72e7df; --ice:#e8f6f8; --surface:#f5f8fa;
  --border:#dce7eb; --slate:#1b2c3a; --muted:#607284;
  --ff:'Manrope',sans-serif; --fm:'IBM Plex Mono',monospace;
  --fd:'Instrument Serif',Georgia,serif; --shadow:0 20px 60px rgba(9,38,62,.13);
}

html{scroll-padding-top:104px}
body{background:#fbfcfd;font-feature-settings:'ss01' 1,'cv01' 1;text-rendering:optimizeLegibility}
body::before{content:'';position:fixed;z-index:0;inset:0;pointer-events:none;opacity:.22;background-image:radial-gradient(rgba(11,49,87,.16) .65px,transparent .65px);background-size:18px 18px;mask-image:linear-gradient(to bottom,transparent 0,#000 19%,#000 76%,transparent 100%)}
::selection{background:rgba(75,215,203,.34);color:var(--ink)}
:focus-visible{outline:2px solid var(--teal);outline-offset:4px}

/* Navigation */
.site-nav{height:80px;padding:0 clamp(22px,5vw,72px);background:rgba(5,12,26,.76);border-bottom:1px solid rgba(184,233,234,.13);box-shadow:none}
.site-nav.scrolled{background:rgba(5,12,26,.94);box-shadow:0 14px 40px rgba(0,0,0,.18)}
.nav-logo img{height:42px;filter:drop-shadow(0 4px 14px rgba(75,215,203,.13))}
.nav-links{gap:5px}.nav-links a{font-size:12px;letter-spacing:.015em;padding:9px 13px}.nav-links a:not(.nav-cta){position:relative}
.nav-links a:not(.nav-cta)::after{content:'';position:absolute;left:13px;right:13px;bottom:3px;height:1px;transform:scaleX(0);transform-origin:right;background:var(--teal);transition:transform .28s var(--ease)}
.nav-links a:not(.nav-cta):hover::after,.nav-links a.active:not(.nav-cta)::after{transform:scaleX(1);transform-origin:left}
.nav-cta{margin-left:7px;border-radius:999px!important;background:linear-gradient(135deg,#55d8cf,#269ec3)!important;box-shadow:0 10px 26px rgba(42,181,191,.2)}
.nav-cta:hover{box-shadow:0 14px 30px rgba(42,181,191,.36)}
.mob-nav{background:radial-gradient(circle at 70% 15%,#123d63,transparent 33%),var(--ink)}

/* Type and calls to action */
.lbl,.dark-lbl{font-size:10px;letter-spacing:.2em;color:#168e9b}.lbl::before{width:30px;background:currentColor}
.h2,.cta-band h2,.page-hero h1{letter-spacing:-.025em;font-weight:400}.h2{max-width:15ch}.h2 em,.page-hero h1 em{color:#159eab}
.sec-lead{font-size:16px;line-height:1.86}
.btn{min-height:46px;padding:12px 25px;border-radius:999px;font-size:13px;letter-spacing:.01em}.btn-lg{min-height:52px;padding:14px 29px}
.btn-teal{background:linear-gradient(135deg,#159eab,#167ec0);border-color:transparent;box-shadow:0 12px 26px rgba(22,142,155,.19)}
.btn-teal:hover{background:linear-gradient(135deg,#179fac,#1776ad)}.btn-navy{background:#0a294a;border-color:#0a294a}.btn-outline{border-color:#0a294a}.btn-ghost{border-color:rgba(255,255,255,.36)}

/* Section rhythm and surfaces */
.sec{padding:clamp(76px,9vw,126px) 0}.sec-sm{padding:clamp(58px,7vw,88px) 0}.sec-surface{background:linear-gradient(135deg,#f5f9fb 0%,#f7fbfc 55%,#eff7f7 100%)}
.sec-dark,.sec-navy,.sec-navy2{position:relative;overflow:hidden}
.sec-dark::before,.sec-navy::before,.sec-navy2::before{content:'';position:absolute;inset:auto -12% -54% auto;width:min(58vw,760px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(75,215,203,.14),transparent 64%);pointer-events:none}
.sec-dark>*,.sec-navy>*,.sec-navy2>*{position:relative}

/* Cards get a quiet glass-and-paper finish. */
.card,.sv-card,.service-card,.res-card,.blog-card,.team-card,.port-card{position:relative;overflow:hidden;border:1px solid rgba(173,196,207,.62);border-radius:20px;box-shadow:0 8px 24px rgba(8,44,65,.035);transition:transform .38s var(--ease),box-shadow .38s var(--ease),border-color .38s var(--ease)}
.card::before,.sv-card::before,.service-card::before,.res-card::before,.blog-card::before,.team-card::before,.port-card::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(260px circle at var(--spot-x,50%) var(--spot-y,0%),rgba(76,215,203,.16),transparent 46%);transition:opacity .35s ease}
.card:hover,.sv-card:hover,.service-card:hover,.res-card:hover,.blog-card:hover,.team-card:hover,.port-card:hover{transform:translateY(-8px);border-color:rgba(75,175,188,.66);box-shadow:var(--shadow)}
.card:hover::before,.sv-card:hover::before,.service-card:hover::before,.res-card:hover::before,.blog-card:hover::before,.team-card:hover::before,.port-card:hover::before{opacity:1}
.card-ico{border:1px solid rgba(73,182,192,.18);border-radius:16px;background:linear-gradient(135deg,#e7f7f6,#ebf2fb)}.card-tit{font-weight:700;letter-spacing:-.025em}.card-bod{line-height:1.78}
.ck li{border-color:rgba(162,185,196,.44)}.ck li::before{background:linear-gradient(135deg,#23aab2,#1374ac)}

/* Inner-page hero depth. */
.page-hero{padding:176px 0 110px;background:linear-gradient(95deg,rgba(3,10,20,.98) 0%,rgba(5,20,38,.92) 53%,rgba(5,36,57,.84) 100%)}
.page-hero::after{content:'';position:absolute;z-index:1;inset:0;pointer-events:none;opacity:.56;background-image:linear-gradient(rgba(97,234,223,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(97,234,223,.12) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,transparent,#000 55%,transparent)}
.page-hero-in,.breadcrumb{z-index:2;position:relative}.page-hero h1{font-size:clamp(43px,5.2vw,72px);line-height:.98;max-width:13ch}.page-hero p{max-width:590px}

/* Homepage image: subdued so the copy remains first. */
#hero-section{background:linear-gradient(90deg,rgba(3,7,16,.98) 0%,rgba(3,8,18,.91) 40%,rgba(3,13,26,.54) 70%,rgba(3,9,19,.4) 100%),url('assets/dna-hero.png') center/cover no-repeat!important}
#hero-section::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,rgba(5,10,20,.18),transparent 44%,rgba(5,10,20,.62))}
#hero-section>.con{z-index:3}#hero-section canvas{opacity:.25!important;mix-blend-mode:screen}#hero-section .para-layer{opacity:.7}

/* Footer and forms */
.site-footer{border-top:1px solid rgba(126,218,218,.16)}
.form-inp,.form-ta{border-radius:12px;border-color:#d7e4e9;background:rgba(255,255,255,.84);transition:border-color .2s,box-shadow .2s,background .2s}
.form-inp:focus,.form-ta:focus{background:#fff;border-color:#24aeb2;box-shadow:0 0 0 4px rgba(75,215,203,.14);outline:0}

/* Lightweight enhancement injected by premium.js. */
.premium-progress{position:fixed;z-index:1200;top:0;left:0;width:var(--page-progress,0%);height:2px;background:linear-gradient(90deg,#67e4d5,#4388e8);box-shadow:0 0 15px rgba(103,228,213,.78);transition:width .08s linear}
.premium-orbit{position:absolute;right:clamp(-130px,-5vw,-45px);top:50%;width:min(28vw,430px);aspect-ratio:1;border:1px solid rgba(133,238,228,.16);border-radius:50%;transform:translateY(-50%);pointer-events:none;animation:premium-orbit 17s linear infinite}
.premium-orbit::before,.premium-orbit::after{content:'';position:absolute;border:inherit;border-radius:inherit;inset:15%}.premium-orbit::after{inset:31%;border-color:rgba(160,168,255,.28)}
@keyframes premium-orbit{to{rotate:360deg}}

@media(max-width:900px){.site-nav{height:72px}.page-hero{padding:144px 0 84px}.h2{max-width:18ch}.premium-orbit{opacity:.38;width:52vw;right:-22vw}#hero-section{background-position:63% center!important}}
@media(max-width:600px){.con{padding-left:24px;padding-right:24px}.page-hero h1{font-size:clamp(38px,12vw,55px)}.card,.sv-card,.service-card,.res-card,.blog-card,.team-card,.port-card{border-radius:17px}.premium-orbit{display:none}#hero-section{background-position:67% center!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.premium-orbit{display:none}}
