@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Manrope:wght@500;600;700;800&display=swap');

:root {
  --ink: #031a2f;
  --ink-2: #05263f;
  --ink-3: #083553;
  --cyan: #0b9ed4;
  --cyan-soft: #75e0fa;
  --green: #0a973d;
  --lime: #9ce800;
  --white: #f3fbff;
  --muted: #a9c0cf;
  --line: rgba(123, 215, 245, .19);
  --glass: rgba(7, 38, 60, .72);
  --shadow: 0 24px 80px rgba(0, 0, 0, .32);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--white); background: var(--ink); font: 400 16px/1.65 'DM Sans', Arial, sans-serif; overflow-x: hidden; }
button, input, textarea, select { font: inherit; }
button, select { color: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
::selection { color: #031a2f; background: var(--lime); }

.site-shell { isolation: isolate; position: relative; min-height: 100vh; overflow: hidden; background: radial-gradient(circle at 82% 10%, rgba(9, 155, 178, .22), transparent 27rem), linear-gradient(135deg, #021527 0%, var(--ink) 44%, #052b43 100%); }
.site-width { position: relative; width: min(1200px, calc(100% - 48px)); margin: 0 auto; }
.section-space { padding: 9rem 0; }
.section-space-sm { padding: 5.6rem 0; }
.sr-only { position: absolute; height: 1px; width: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

.ambient { position: fixed; z-index: -1; pointer-events: none; filter: blur(50px); opacity: .55; border-radius: 50%; }
.ambient-one { width: 28rem; height: 28rem; top: 10rem; right: -13rem; background: rgba(26, 197, 161, .13); }
.ambient-two { width: 22rem; height: 22rem; bottom: 12rem; left: -14rem; background: rgba(4, 142, 206, .14); }

.site-header { position: sticky; z-index: 30; top: 0; background: rgba(2, 21, 39, .64); border-bottom: 1px solid transparent; backdrop-filter: blur(16px); transition: .3s ease; }
.site-header.is-scrolled { background: rgba(2, 21, 39, .92); border-color: var(--line); box-shadow: 0 10px 30px rgba(0, 0, 0, .13); }
.nav-wrap { display: flex; gap: 2rem; min-height: 84px; align-items: center; justify-content: space-between; }
.brand { position: relative; width: clamp(148px, 16vw, 195px); z-index: 1; }
.brand img { width: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 5px 10px rgba(0,0,0,.2)); }
.site-nav { display: flex; align-items: center; gap: clamp(.6rem, 1.6vw, 1.65rem); }
.nav-link { position: relative; padding: .65rem 0; color: rgba(237, 250, 255, .82); font-size: .92rem; transition: color .2s ease; }
.nav-link::after { position: absolute; content: ''; left: 0; bottom: .35rem; height: 1px; width: 0; background: linear-gradient(90deg, var(--cyan), var(--lime)); transition: width .25s ease; }
.nav-link:hover, .nav-link.is-active { color: var(--white); }
.nav-link:hover::after, .nav-link.is-active::after { width: 100%; }
.nav-cta, .button { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; border: 0; border-radius: 999px; font-weight: 700; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.nav-cta { padding: .65rem 1.1rem; border: 1px solid rgba(136, 235, 166, .74); color: var(--white); background: linear-gradient(90deg, rgba(11, 158, 212, .18), rgba(156, 232, 0, .12)); font-size: .86rem; }
.nav-cta:hover, .button-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(45, 225, 150, .22); }
.menu-toggle { display: none; padding: .45rem; border: 0; background: transparent; }
.menu-toggle span:not(.sr-only) { display: block; width: 24px; height: 2px; margin: 5px; border-radius: 2px; background: var(--white); }

.hero { position: relative; min-height: min(850px, calc(100vh - 84px)); padding: 7.5rem 0 3.5rem; overflow: clip; }
.hero::before { position: absolute; content: ''; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(2, 21, 39, .95) 0%, rgba(2, 21, 39, .76) 40%, rgba(2, 21, 39, .18) 85%); }
.hero-grid { position: absolute; inset: 0; opacity: .24; background-image: linear-gradient(rgba(105,214,244,.14) 1px, transparent 1px), linear-gradient(90deg, rgba(105,214,244,.14) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(to bottom, black, transparent 86%); }
.hero-inner { position: relative; display: grid; grid-template-columns: minmax(0, .93fr) minmax(430px, 1.07fr); align-items: center; min-height: 610px; }
.hero-copy { position: relative; z-index: 3; max-width: 610px; }
.eyebrow { display: flex; gap: .6rem; align-items: center; margin: 0 0 1rem; color: var(--cyan-soft); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.pulse-dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 0 rgba(156, 232, 0, .6); animation: pulse 2.3s infinite; }
.hero h1, .page-hero h1 { max-width: 750px; margin: 0; font: 800 clamp(2.75rem, 5vw, 5.35rem)/1.04 'Manrope', sans-serif; letter-spacing: -.058em; text-wrap: balance; }
.hero-lead { max-width: 570px; margin: 1.65rem 0 2.2rem; color: var(--muted); font-size: clamp(1rem, 1.3vw, 1.14rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; }
.button { padding: .92rem 1.35rem; font-size: .94rem; }
.button-primary { color: #031a2f; background: linear-gradient(100deg, #5bdcff, var(--lime)); box-shadow: 0 10px 27px rgba(11, 158, 212, .2); }
.button-quiet { border: 1px solid rgba(181, 230, 248, .35); color: var(--white); background: rgba(255, 255, 255, .03); }
.button-quiet:hover { border-color: rgba(156, 232, 0, .7); background: rgba(255, 255, 255, .08); }
.hero-assurance { display: flex; gap: .6rem; align-items: center; margin-top: 2.4rem; color: rgba(237, 250, 255, .73); font-size: .9rem; }
.hero-assurance span { width: 30px; height: 1px; background: linear-gradient(90deg, var(--cyan), var(--lime)); }
.hero-art { position: relative; z-index: 1; min-height: 630px; margin-right: -10vw; }
.hero-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center right; mix-blend-mode: screen; filter: saturate(1.07) contrast(1.06); }
.hero-art::before { position: absolute; z-index: 1; content: ''; inset: 8% 5% 7% 8%; border: 1px solid rgba(118, 237, 244, .18); border-radius: 49% 51% 45% 55% / 55% 48% 52% 45%; animation: wobble 18s ease-in-out infinite; }
.orbit { position: absolute; z-index: 2; left: 50%; top: 50%; width: 62%; aspect-ratio: 1; border: 1px solid rgba(100, 230, 247, .2); border-radius: 50%; transform: translate(-23%, -50%) rotateX(63deg) rotateZ(-14deg); animation: orbit 18s linear infinite; }
.orbit-two { width: 77%; transform: translate(-18%, -50%) rotateX(61deg) rotateZ(68deg); animation-duration: 26s; }
.orbit-three { width: 92%; transform: translate(-14%, -50%) rotateX(60deg) rotateZ(155deg); border-color: rgba(156, 232, 0, .13); animation-duration: 34s; animation-direction: reverse; }
.hero-particle { position: absolute; z-index: 3; width: 13px; height: 13px; border-radius: 50%; background: rgba(166, 255, 209, .86); box-shadow: 0 0 16px rgba(116, 255, 203, .9); animation: drift 8s ease-in-out infinite; }
.particle-a { top: 18%; right: 25%; }.particle-b { left: 25%; bottom: 22%; width: 8px; height: 8px; animation-delay: -3s; }.particle-c { right: 13%; bottom: 33%; width: 7px; height: 7px; animation-delay: -5s; }
.hero-bottom { position: relative; z-index: 4; }
.hero-rail { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem; padding-top: 1.4rem; border-top: 1px solid rgba(141, 219, 243, .22); color: rgba(224, 246, 255, .66); font-size: .77rem; letter-spacing: .08em; text-transform: uppercase; }

.intro-section { position: relative; }
.intro-grid, .section-top { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 8vw, 9rem); align-items: end; }
.section-heading h2, .section-top h2, .quote-copy h2, .statement-panel h2 { margin: 0; max-width: 660px; font: 700 clamp(2.15rem, 3.6vw, 3.65rem)/1.1 'Manrope', sans-serif; letter-spacing: -.045em; text-wrap: balance; }
.intro-copy { max-width: 490px; }
.intro-copy p, .statement-panel p { margin: 0; color: var(--muted); font-size: 1.08rem; }
.text-link { display: inline-flex; gap: .55rem; align-items: center; margin-top: 1.6rem; color: var(--white); font-weight: 700; }
.text-link span { color: var(--lime); font-size: 1.2rem; transition: transform .2s ease; }.text-link:hover span { transform: translate(3px, -3px); }

.service-section { background: linear-gradient(180deg, rgba(4, 37, 59, .58), rgba(2, 21, 39, 0)); border-top: 1px solid rgba(126, 203, 234, .12); border-bottom: 1px solid rgba(126, 203, 234, .09); }
.section-top { margin-bottom: 3rem; }.section-top > .text-link { align-self: end; justify-self: end; margin-bottom: .55rem; }
.services-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { position: relative; min-height: 304px; padding: 1.7rem; overflow: hidden; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(5, 36, 57, .36); transition: transform .35s ease, background .35s ease, box-shadow .35s ease; }
.service-card::before { position: absolute; content: ''; left: -10%; right: -10%; top: -35%; height: 75%; background: radial-gradient(circle, rgba(38, 230, 165, .22), transparent 68%); opacity: 0; transition: opacity .4s ease; }
.service-card:hover { z-index: 1; transform: translateY(-10px); background: rgba(7, 55, 75, .82); box-shadow: var(--shadow); }.service-card:hover::before { opacity: 1; }
.card-head { position: relative; display: flex; justify-content: space-between; align-items: center; }.service-no { color: var(--lime); font-size: .8rem; font-weight: 800; letter-spacing: .12em; }.service-icon { display: grid; width: 47px; height: 47px; place-items: center; border: 1px solid rgba(103, 223, 247, .5); border-radius: 15px; color: var(--cyan-soft); background: rgba(2, 27, 45, .55); }.service-icon svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.service-card h3 { position: relative; margin: 3rem 0 .65rem; font: 700 1.28rem/1.23 'Manrope', sans-serif; letter-spacing: -.03em; }.service-card p { position: relative; min-height: 80px; margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.68; }.card-line { position: relative; display: block; height: 1px; margin: 1.55rem 0 1rem; background: rgba(165, 220, 239, .25); }.service-card a { position: relative; font-size: .86rem; font-weight: 700; }.service-card a span { color: var(--lime); padding-left: .3rem; }

.image-statement-inner { position: relative; min-height: 530px; overflow: hidden; border: 1px solid rgba(124, 223, 238, .28); border-radius: 28px; box-shadow: var(--shadow); }.image-statement-inner::after { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg, rgba(2, 22, 40, .93) 0%, rgba(2, 22, 40, .53) 50%, transparent); }.image-statement-inner > img { width: 100%; height: 530px; object-fit: cover; filter: saturate(.93) contrast(1.08); }.statement-panel { position: absolute; z-index: 2; left: clamp(1.5rem, 6vw, 5rem); top: 50%; width: min(480px, calc(100% - 3rem)); transform: translateY(-50%); }.statement-panel p:last-child { margin-top: 1.3rem; }

.partner-section { background: linear-gradient(180deg, rgba(5, 47, 67, .08), rgba(5, 47, 67, .34)); border-top: 1px solid rgba(126, 203, 234, .08); }.section-kicker { display: flex; align-items: center; gap: .7rem; margin-bottom: 1.6rem; color: var(--muted); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.section-kicker span { width: 30px; height: 1px; background: var(--lime); }.section-kicker p { margin: 0; }.partner-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, black 9%, black 91%, transparent); }.partner-track { display: flex; width: max-content; gap: 1rem; animation: marquee 34s linear infinite; }.partner-marquee:hover .partner-track { animation-play-state: paused; }.partner-logo { display: grid; place-items: center; width: 180px; height: 95px; padding: 1.25rem; border: 1px solid rgba(126, 203, 234, .2); border-radius: 13px; background: rgba(5, 42, 61, .54); }.partner-logo img { max-width: 100%; max-height: 55px; object-fit: contain; filter: grayscale(1) brightness(1.8); opacity: .86; transition: .25s ease; }.partner-logo:hover img { filter: none; opacity: 1; }

.quote-section { position: relative; background: radial-gradient(ellipse at 85% 38%, rgba(18, 174, 119, .18), transparent 30rem), #05273e; border-top: 1px solid rgba(118, 218, 244, .2); }.quote-grid { display: grid; grid-template-columns: .87fr 1.13fr; gap: clamp(2rem, 8vw, 8rem); align-items: center; }.quote-copy > p:not(.eyebrow) { max-width: 470px; color: var(--muted); }.contact-note { display: flex; gap: .85rem; align-items: center; margin-top: 2rem; }.contact-icon { display: grid; flex: none; width: 43px; height: 43px; place-items: center; border: 1px solid rgba(156,232,0,.4); border-radius: 50%; color: var(--lime); }.contact-note strong, .contact-note span { display: block; }.contact-note span { color: var(--muted); font-size: .9rem; }.contact-lines { display: grid; gap: .25rem; margin-top: 1.5rem; color: rgba(242, 250, 253, .85); font-size: .9rem; }.contact-lines a:hover { color: var(--cyan-soft); }
.quote-form { padding: clamp(1.4rem, 3.2vw, 2.5rem); border: 1px solid rgba(126, 230, 242, .32); border-radius: 22px; background: rgba(3, 25, 44, .76); box-shadow: var(--shadow); backdrop-filter: blur(12px); }.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.quote-form label { display: grid; gap: .4rem; margin-bottom: 1rem; color: rgba(231, 247, 255, .88); font-size: .86rem; font-weight: 700; }.quote-form input, .quote-form select, .quote-form textarea { width: 100%; padding: .76rem .8rem; border: 1px solid rgba(122, 212, 244, .24); border-radius: 10px; outline: 0; color: var(--white); background: rgba(1, 15, 28, .6); transition: border-color .2s ease, box-shadow .2s ease; }.quote-form select option { color: #061a2e; }.quote-form textarea { resize: vertical; }.quote-form input:focus, .quote-form textarea:focus, .quote-form select:focus { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(11,158,212,.12); }.form-note { margin: -.25rem 0 1rem; color: var(--muted); font-size: .76rem; }.form-alert { margin: 0 0 1rem; padding: .7rem .8rem; border-radius: 9px; font-size: .86rem; }.form-alert.success { color: #d7ffe6; border: 1px solid rgba(105, 238, 150, .42); background: rgba(40, 156, 77, .19); }.form-alert.error { color: #ffe0e0; border: 1px solid rgba(255, 110, 110, .45); background: rgba(177, 45, 45, .2); }

.site-footer { padding: 3rem 0; border-top: 1px solid rgba(126, 203, 234, .18); background: #02182a; }.footer-inner { display: grid; grid-template-columns: minmax(120px, 170px) 1fr 1.3fr auto; align-items: center; gap: 1.4rem; color: var(--muted); font-size: .82rem; }.footer-inner img { width: 150px; }.footer-inner p { margin: 0; }.footer-rights { text-align: right; }.admin-link { color: var(--cyan-soft); opacity: .5; font-size: .75rem; transition: opacity .2s ease; }.admin-link:hover { opacity: 1; }

.page-hero { position: relative; overflow: hidden; padding: 7rem 0 5rem; min-height: 580px; border-bottom: 1px solid rgba(126, 203, 234, .15); background: radial-gradient(circle at 88% 32%, rgba(13, 166, 164, .22), transparent 27rem); }.page-hero-grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; min-height: 450px; }.page-hero-copy { position: relative; z-index: 3; max-width: 680px; }.page-hero-copy > p:not(.eyebrow) { max-width: 570px; margin-top: 1.5rem; color: var(--muted); font-size: 1.06rem; }.about-art, .service-orb, .reference-art { position: absolute; right: max(0px, calc((100vw - 1200px) / -2)); top: 0; width: min(54vw, 730px); height: 100%; mask-image: linear-gradient(90deg, transparent, black 24%, black); }.about-art img, .service-orb img, .reference-art img { width: 100%; height: 100%; object-fit: cover; object-position: right center; mix-blend-mode: screen; }.service-orb { width: min(58vw, 790px); opacity: .85; }.reference-art { width: min(50vw, 690px); opacity: .8; }.reference-art img { object-position: 60% center; }
.story-grid { display: grid; grid-template-columns: 1.07fr .93fr; gap: clamp(3rem, 9vw, 10rem); align-items: start; }.story-copy { max-width: 650px; color: #d4e7ef; font-size: clamp(1.15rem, 1.6vw, 1.45rem); line-height: 1.68; }.story-copy p { margin-top: 0; }.story-copy .standards { margin: 2.2rem 0 0; padding: 1.3rem 0 0 1.15rem; border-left: 2px solid var(--lime); color: var(--muted); font-size: .96rem; }.method-card { padding: 2.2rem; border: 1px solid rgba(120, 225, 239, .28); border-radius: 18px; background: linear-gradient(145deg, rgba(13,74,91,.64), rgba(4,32,51,.86)); }.method-number { display: block; margin-bottom: 4rem; color: var(--lime); font-family: 'Manrope', sans-serif; font-size: 1rem; font-weight: 800; }.method-card h2 { margin: 0; font: 700 1.8rem/1.2 'Manrope', sans-serif; letter-spacing: -.04em; }.method-card p { color: var(--muted); }.values-section { background: rgba(4, 37, 59, .42); border-top: 1px solid rgba(126, 203, 234, .11); }.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 3.2rem; }.value-card { min-height: 245px; padding: 1.8rem; border: 1px solid var(--line); background: rgba(2, 24, 41, .5); }.value-card span { color: var(--lime); font-weight: 800; }.value-card h3 { margin: 3rem 0 .6rem; font: 700 1.25rem/1.2 'Manrope', sans-serif; }.value-card p { margin: 0; color: var(--muted); font-size: .92rem; }
.services-list { border-top: 1px solid var(--line); }.service-detail { display: grid; grid-template-columns: 4.5rem 5rem minmax(0, 1fr) 3rem; gap: 1.7rem; align-items: center; padding: 2.4rem 0; border-bottom: 1px solid var(--line); transition: padding .25s ease; }.service-detail:hover { padding-left: 1rem; padding-right: 1rem; background: linear-gradient(90deg, rgba(5, 104, 125, .14), transparent); }.service-detail-no { color: var(--lime); font-weight: 800; letter-spacing: .1em; }.service-icon.large { width: 58px; height: 58px; border-radius: 50%; }.service-icon.large svg { width: 26px; }.service-detail h2 { margin: 0 0 .3rem; font: 700 clamp(1.35rem, 2vw, 1.9rem)/1.2 'Manrope', sans-serif; letter-spacing: -.04em; }.service-detail p { max-width: 740px; margin: 0; color: var(--muted); }.circle-link { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(118, 230, 245, .45); border-radius: 50%; color: var(--lime); transition: .2s ease; }.circle-link:hover { color: #031a2f; background: var(--lime); transform: rotate(45deg); }
.references-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.35rem; }.reference-card { overflow: hidden; border: 1px solid rgba(121, 218, 240, .25); border-radius: 17px; background: rgba(4, 34, 54, .58); transition: .3s ease; }.reference-card:hover { transform: translateY(-8px); box-shadow: var(--shadow); }.reference-thumb { position: relative; height: 220px; overflow: hidden; }.reference-thumb::after { position: absolute; inset: 0; content: ''; background: linear-gradient(to top, rgba(2, 21, 39, .7), transparent 55%); }.reference-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }.reference-card:hover .reference-thumb img { transform: scale(1.06); }.reference-thumb span { position: absolute; z-index: 1; top: 1rem; left: 1rem; padding: .35rem .6rem; border: 1px solid rgba(139, 232, 255, .35); border-radius: 99px; background: rgba(2, 24, 41, .6); font-size: .72rem; }.reference-copy { padding: 1.5rem; }.reference-copy .metric { color: var(--lime); font-size: .76rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }.reference-copy h2 { margin: .4rem 0 .8rem; font: 700 1.48rem/1.2 'Manrope', sans-serif; letter-spacing: -.04em; }.reference-copy p:last-child { margin: 0; color: var(--muted); font-size: .92rem; }

.reveal { opacity: 0; transform: translateY(20px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); }.reveal.is-visible { opacity: 1; transform: none; }.services-grid .reveal:nth-child(2) { transition-delay: .05s; }.services-grid .reveal:nth-child(3) { transition-delay: .1s; }.services-grid .reveal:nth-child(4) { transition-delay: .15s; }
@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(156,232,0,0); } 100% { box-shadow: 0 0 0 0 rgba(156,232,0,0); } }
@keyframes orbit { to { transform: translate(-23%, -50%) rotateX(63deg) rotateZ(346deg); } }
@keyframes wobble { 50% { border-radius: 55% 44% 54% 46% / 46% 55% 45% 54%; transform: rotate(4deg) scale(1.04); } }
@keyframes drift { 50% { transform: translate(14px, -22px); opacity: .45; } }
@keyframes marquee { to { transform: translateX(calc(-50% - .5rem)); } }

@media (max-width: 900px) {
  .nav-wrap { min-height: 72px; }.brand { width: 152px; }.menu-toggle { display: block; z-index: 3; }.site-nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: grid; gap: .25rem; padding: 1rem 24px 1.3rem; border-bottom: 1px solid var(--line); background: rgba(2,21,39,.98); transform: translateY(-18px); opacity: 0; visibility: hidden; transition: .2s ease; }.site-nav.is-open { transform: none; opacity: 1; visibility: visible; }.nav-link { padding: .7rem 0; }.nav-cta { margin-top: .7rem; width: max-content; }
  .hero { min-height: auto; padding-top: 5rem; }.hero-inner, .page-hero-grid, .intro-grid, .quote-grid, .story-grid { grid-template-columns: 1fr; }.hero-inner { min-height: 700px; }.hero-art { position: absolute; right: -24vw; bottom: 1rem; width: 100%; min-height: 500px; opacity: .58; }.hero-copy { padding-bottom: 4rem; }.hero::before { background: linear-gradient(180deg, rgba(2,21,39,.94), rgba(2,21,39,.75) 60%, rgba(2,21,39,.84)); }.hero-rail { justify-content: flex-start; }.section-space { padding: 6rem 0; }.section-top { grid-template-columns: 1fr; gap: 1.4rem; }.section-top > .text-link { justify-self: start; }.services-grid { grid-template-columns: repeat(2, 1fr); }.service-card { min-height: 285px; }.image-statement-inner, .image-statement-inner > img { min-height: 500px; height: 500px; }.image-statement-inner::after { background: linear-gradient(180deg, rgba(2,22,40,.2), rgba(2,22,40,.92) 72%); }.statement-panel { top: auto; bottom: 2rem; transform: none; }.page-hero { min-height: 500px; padding: 4.8rem 0 3.2rem; }.page-hero-grid { min-height: 420px; }.about-art, .service-orb, .reference-art { right: -15vw; width: 95vw; opacity: .45; }.page-hero-copy { padding-bottom: 9rem; }.values-grid, .references-grid { grid-template-columns: 1fr; }.reference-thumb { height: 260px; }.footer-inner { grid-template-columns: 150px 1fr; }.footer-rights { text-align: left; }.admin-link { justify-self: end; }
}
@media (max-width: 580px) {
  .site-width { width: min(100% - 32px, 1200px); }.hero { padding-top: 3.6rem; }.hero-inner { min-height: 620px; }.hero h1, .page-hero h1 { font-size: clamp(2.45rem, 12vw, 3.3rem); }.hero-actions, .field-row { grid-template-columns: 1fr; flex-direction: column; align-items: stretch; }.hero-actions .button { width: 100%; }.hero-art { right: -42vw; min-height: 410px; bottom: 0; }.hero-rail { display: grid; grid-template-columns: 1fr 1fr; font-size: .62rem; }.section-space { padding: 4.8rem 0; }.services-grid { grid-template-columns: 1fr; }.service-card { min-height: 270px; }.section-heading h2, .section-top h2, .quote-copy h2, .statement-panel h2 { font-size: 2.05rem; }.image-statement-inner, .image-statement-inner > img { min-height: 510px; height: 510px; }.story-grid { gap: 2rem; }.method-card { padding: 1.5rem; }.values-grid { margin-top: 2rem; }.service-detail { grid-template-columns: 3rem 1fr 2.6rem; gap: .85rem; }.service-icon.large { grid-row: span 2; width: 45px; height: 45px; }.service-detail-no { display: none; }.service-detail h2 { font-size: 1.23rem; }.service-detail p { grid-column: 2 / 4; font-size: .88rem; }.circle-link { align-self: start; }.quote-form { padding: 1.25rem; }.footer-inner { grid-template-columns: 1fr; }.footer-rights { max-width: 280px; }.admin-link { justify-self: start; }.partner-logo { width: 150px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* Living Element visual system — based on the approved DORA design boards. */
:root {
  --ink: #020f1d;
  --ink-2: #041b2c;
  --ink-3: #07314a;
  --cyan: #10c9ed;
  --cyan-soft: #80e8ff;
  --lime: #9cf33e;
  --muted: #a9c6d5;
  --line: rgba(126, 222, 246, .22);
  --glass: rgba(6, 36, 55, .74);
  --shadow: 0 26px 76px rgba(0, 0, 0, .36);
}

body { background: #020f1d; }
.site-shell {
  background:
    radial-gradient(circle at 79% 14%, rgba(0, 197, 199, .18), transparent 25rem),
    radial-gradient(circle at 91% 58%, rgba(130, 243, 62, .10), transparent 29rem),
    radial-gradient(circle at 8% 81%, rgba(0, 161, 244, .13), transparent 26rem),
    linear-gradient(135deg, #020f1d 0%, #041727 45%, #051a2b 100%);
}
.site-shell::before {
  position: fixed; z-index: -1; inset: 0; content: ''; pointer-events: none; opacity: .42;
  background-image: linear-gradient(rgba(101, 220, 249, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(101, 220, 249, .045) 1px, transparent 1px);
  background-size: 80px 80px; mask-image: linear-gradient(to bottom, black, transparent 90%);
}
.ambient { filter: blur(75px); opacity: .7; }
.site-width { width: min(1380px, calc(100% - 80px)); }
.section-space { padding: clamp(5.4rem, 9vw, 9.6rem) 0; }
.section-space-sm { padding: clamp(4rem, 6.4vw, 6.5rem) 0; }

.site-header {
  min-height: 76px; background: rgba(2, 15, 29, .68); border-bottom: 1px solid rgba(117, 220, 244, .15);
  backdrop-filter: blur(20px) saturate(132%);
}
.site-header::after { position: absolute; content: ''; right: 0; bottom: -1px; left: 0; height: 1px; opacity: .5; background: linear-gradient(90deg, transparent, var(--cyan), var(--lime), transparent); }
.nav-wrap { min-height: 76px; }
.brand { width: clamp(145px, 14vw, 184px); }
.site-nav { gap: clamp(.9rem, 2vw, 2.35rem); }
.nav-link { color: rgba(231, 248, 255, .77); font-size: .86rem; letter-spacing: -.01em; }
.nav-link::after { right: 0; bottom: .2rem; margin: auto; height: 2px; border-radius: 3px; background: linear-gradient(90deg, var(--cyan), var(--lime)); }
.nav-cta { min-width: 106px; padding: .62rem 1.18rem; border-color: rgba(101, 235, 228, .64); background: linear-gradient(90deg, rgba(10, 150, 180, .28), rgba(99, 230, 80, .19)); }

.hero { min-height: min(890px, calc(100svh - 76px)); padding: clamp(4.5rem, 8vw, 7.5rem) 0 1.75rem; }
.hero::before { background: linear-gradient(90deg, #020f1d 0%, rgba(2, 15, 29, .94) 27%, rgba(2, 15, 29, .53) 57%, rgba(2, 15, 29, .10) 100%); }
.hero::after { position: absolute; right: -10vw; bottom: -12rem; width: 70vw; height: 38rem; content: ''; border-radius: 50%; background: radial-gradient(ellipse, rgba(65, 219, 192, .14), transparent 67%); filter: blur(14px); pointer-events: none; }
.hero-grid { opacity: .42; background-size: 72px 72px; }
.hero-inner { grid-template-columns: minmax(420px, .82fr) minmax(470px, 1.18fr); min-height: min(650px, calc(100svh - 232px)); }
.hero-copy { max-width: 650px; padding: 1.5rem 0 4.2rem; }
.eyebrow { color: #a9eefa; font-size: .72rem; letter-spacing: .17em; }
.hero h1, .page-hero h1 { max-width: 725px; font-size: clamp(3.25rem, 5.7vw, 6.45rem); line-height: .97; text-shadow: 0 7px 35px rgba(0, 0, 0, .18); }
.hero-lead { max-width: 565px; color: #b4ceda; font-size: clamp(1rem, 1.2vw, 1.16rem); }
.button { min-height: 50px; padding: .88rem 1.4rem; font-size: .9rem; }
.button-primary { color: #03182b; background: linear-gradient(105deg, #35c8ef, #50dcbd 53%, #b5f43b); box-shadow: 0 12px 35px rgba(20, 206, 194, .24); }
.button-primary:hover { box-shadow: 0 16px 38px rgba(115, 241, 97, .28); }
.button-quiet { background: rgba(8, 31, 48, .52); border-color: rgba(153, 221, 241, .45); backdrop-filter: blur(8px); }
.hero-art { min-height: 650px; margin-right: -5vw; isolation: isolate; }
.hero-art::after { position: absolute; z-index: 1; inset: 0; content: ''; pointer-events: none; background: radial-gradient(circle at 62% 48%, transparent 0 22%, rgba(2, 15, 29, .08) 49%, rgba(2, 15, 29, .83) 100%); }
.hero-art img { object-position: 51% center; mix-blend-mode: screen; filter: saturate(1.18) contrast(1.08) brightness(1.05); }
.hero-art::before { z-index: 2; inset: 12% 12% 10% 13%; border-color: rgba(95, 231, 246, .26); box-shadow: inset 0 0 80px rgba(45, 225, 204, .08), 0 0 75px rgba(13, 180, 228, .06); }
.orbit { z-index: 3; border-color: rgba(111, 232, 247, .28); }
.orbit-three { border-color: rgba(152, 244, 62, .23); }
.hero-particle { z-index: 4; }
.hero-bottom { z-index: 5; }
.hero-pillars {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); min-height: 112px; overflow: hidden;
  border: 1px solid rgba(121, 223, 242, .31); border-radius: 20px; background: linear-gradient(105deg, rgba(6, 36, 55, .87), rgba(4, 27, 43, .72)); box-shadow: 0 20px 44px rgba(0, 0, 0, .22); backdrop-filter: blur(17px);
}
.hero-pillar { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .55rem; padding: .9rem 1rem; color: #c5dce6; font-size: .7rem; font-weight: 700; letter-spacing: .055em; text-align: center; text-transform: uppercase; }
.hero-pillar + .hero-pillar { border-left: 1px solid rgba(132, 215, 239, .2); }
.hero-pillar i { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(124, 230, 242, .5); border-radius: 50%; color: var(--cyan-soft); font-style: normal; background: rgba(3, 19, 34, .46); box-shadow: inset 0 0 14px rgba(10, 208, 231, .12); }
.hero-pillar:nth-child(2n) i { color: var(--lime); border-color: rgba(175, 243, 81, .44); }
.hero-pillar svg, .method-timeline svg, .service-flow svg, .reference-metrics svg, .reference-strip svg, .value-orb svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }

.intro-section { padding-top: clamp(6rem, 9vw, 10rem); }
.intro-section::after { position: absolute; inset: 15% 0 auto; height: 1px; content: ''; opacity: .55; background: linear-gradient(90deg, transparent, rgba(73, 226, 239, .38), transparent); }
.section-heading h2, .section-top h2, .quote-copy h2, .statement-panel h2 { font-size: clamp(2.35rem, 4vw, 4.1rem); }
.intro-copy { position: relative; padding: 1.5rem 0 1.5rem 2rem; border-left: 1px solid rgba(88, 217, 237, .35); }
.intro-copy::before { position: absolute; top: 1.5rem; left: -4px; width: 7px; height: 7px; content: ''; border-radius: 50%; background: var(--lime); box-shadow: 0 0 16px var(--lime); }

.service-section { position: relative; background: linear-gradient(180deg, rgba(6, 35, 54, .72), rgba(3, 22, 37, .15)); }
.service-section::before { position: absolute; inset: 0; content: ''; opacity: .18; pointer-events: none; background: linear-gradient(120deg, transparent 28%, rgba(23, 197, 214, .23), transparent 59%); }
.services-grid { overflow: hidden; border: 1px solid rgba(132, 221, 239, .31); border-radius: 20px; box-shadow: 0 22px 70px rgba(0, 0, 0, .2); }
.service-card { min-height: 325px; padding: 1.75rem; background: linear-gradient(145deg, rgba(10, 50, 73, .86), rgba(3, 26, 43, .87)); }
.service-card::after { position: absolute; right: -25%; bottom: -42%; width: 12rem; height: 12rem; content: ''; border: 1px solid rgba(106, 228, 245, .13); border-radius: 50%; }
.service-card:hover { background: linear-gradient(145deg, rgba(11, 78, 91, .91), rgba(4, 34, 50, .93)); box-shadow: 0 18px 44px rgba(0, 0, 0, .32), inset 0 0 0 1px rgba(163, 246, 75, .22); }
.service-card h3 { margin-top: 2.45rem; font-size: 1.22rem; }
.service-card p { min-height: 95px; color: #a9c8d5; }
.service-icon { border-radius: 14px; border-color: rgba(83, 217, 242, .68); background: linear-gradient(145deg, rgba(17, 79, 105, .72), rgba(3, 31, 50, .74)); }
.service-card:nth-child(3n) .service-icon { color: #b7fa68; border-color: rgba(177, 247, 90, .66); }

.image-statement-inner { min-height: 560px; border-color: rgba(105, 234, 243, .38); border-radius: 24px; }
.image-statement-inner::after { background: linear-gradient(90deg, rgba(2, 16, 30, .94) 0%, rgba(2, 16, 30, .62) 46%, rgba(2, 16, 30, .05) 100%); }
.image-statement-inner::before { position: absolute; z-index: 2; right: 10%; bottom: 10%; width: 170px; height: 170px; content: ''; border: 1px solid rgba(160, 246, 93, .28); border-radius: 50%; box-shadow: 0 0 72px rgba(25, 199, 186, .14); }
.image-statement-inner > img { height: 560px; filter: saturate(1.1) contrast(1.08); }
.statement-panel { max-width: 520px; }

.quote-section { overflow: hidden; background: radial-gradient(circle at 88% 35%, rgba(70, 224, 175, .16), transparent 27rem), linear-gradient(115deg, #051c2e, #07384a); }
.quote-section::before { position: absolute; inset: 0; content: ''; opacity: .18; pointer-events: none; background: linear-gradient(90deg, transparent 48%, rgba(142, 239, 85, .36), transparent 77%); }
.quote-copy { position: relative; }
.quote-copy::after { position: absolute; top: -4rem; right: -5rem; width: 14rem; height: 14rem; content: ''; border: 1px solid rgba(93, 236, 243, .22); border-radius: 50%; box-shadow: 0 0 45px rgba(19, 216, 202, .08); }
.quote-form { position: relative; border-radius: 19px; border-color: rgba(111, 231, 243, .42); background: rgba(3, 24, 40, .79); box-shadow: 0 30px 70px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .06); }
.quote-form::before { position: absolute; top: 0; right: 10%; left: 10%; height: 1px; content: ''; background: linear-gradient(90deg, transparent, var(--cyan), var(--lime), transparent); }

.page-hero { min-height: 640px; padding: 7rem 0 4rem; background: radial-gradient(circle at 81% 37%, rgba(15, 174, 187, .23), transparent 28rem), linear-gradient(135deg, #031426, #062b40); }
.page-hero::before { position: absolute; inset: 0; content: ''; pointer-events: none; background-image: linear-gradient(rgba(87, 216, 243, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(87, 216, 243, .07) 1px, transparent 1px); background-size: 78px 78px; mask-image: linear-gradient(90deg, black, transparent 80%); }
.page-hero-grid { min-height: 515px; }
.page-hero-copy > p:not(.eyebrow) { color: #b7cfda; }
.about-art, .service-orb, .reference-art { right: max(-2vw, calc((100vw - 1380px) / -2)); width: min(60vw, 880px); opacity: .92; }
.about-art::after, .service-orb::after, .reference-art::after { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg, #04182a 0%, transparent 37%, rgba(4, 24, 42, .22) 100%); }
.about-art img, .service-orb img, .reference-art img { filter: saturate(1.2) contrast(1.1); }
.story-copy { color: #d6eaf1; }
.method-card { position: relative; overflow: hidden; min-height: 330px; border-radius: 20px; border-color: rgba(112, 234, 242, .37); background: linear-gradient(145deg, rgba(12, 69, 85, .82), rgba(3, 28, 47, .9)); box-shadow: var(--shadow); }
.method-card::after { position: absolute; right: -4rem; bottom: -4rem; width: 15rem; height: 15rem; content: ''; border: 1px solid rgba(168, 246, 70, .25); border-radius: 50%; }
.method-number { margin-bottom: 3rem; }
.values-section { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(5, 37, 56, .76), rgba(2, 17, 30, .45)); }
.values-section::before { position: absolute; inset: 0; content: ''; pointer-events: none; background: radial-gradient(circle at 75% 25%, rgba(22, 205, 183, .12), transparent 26rem); }
.values-grid { gap: 1.1rem; }
.value-card { position: relative; min-height: 285px; overflow: hidden; padding: 1.8rem; border-radius: 18px; border-color: rgba(117, 225, 244, .31); background: linear-gradient(145deg, rgba(8, 53, 75, .88), rgba(3, 28, 47, .94)); }
.value-card::after { position: absolute; right: -3.6rem; bottom: -3.6rem; width: 10rem; height: 10rem; content: ''; border: 1px solid rgba(99, 232, 242, .22); border-radius: 50%; }
.value-orb { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid rgba(117, 229, 245, .58); border-radius: 50%; color: var(--cyan-soft); background: radial-gradient(circle at 35% 25%, rgba(81, 227, 246, .34), rgba(6, 46, 69, .85)); box-shadow: inset 0 0 16px rgba(67, 226, 246, .16); }
.value-card:nth-child(2) .value-orb { color: var(--lime); border-color: rgba(170, 242, 83, .6); }
.value-card:nth-child(3) .value-orb { color: #aeeefe; }
.value-number { position: absolute; top: 1.85rem; right: 1.85rem; color: var(--lime) !important; font-weight: 800; }
.value-card h3 { margin: 2.8rem 0 .65rem; }
.method-timeline { display: grid; grid-template-columns: repeat(5, 1fr); align-items: start; gap: 0; margin-top: 4.4rem; padding: 1.8rem 2rem; border: 1px solid rgba(112, 225, 242, .25); border-radius: 20px; background: rgba(4, 29, 45, .62); }
.method-timeline > div { position: relative; display: grid; justify-items: center; gap: .7rem; color: #bcd7df; font-size: .74rem; font-weight: 700; text-align: center; }
.method-timeline > div:not(:last-child)::after { position: absolute; top: 25px; left: calc(50% + 28px); width: calc(100% - 55px); height: 1px; content: ''; background: linear-gradient(90deg, var(--cyan), var(--lime)); }
.method-timeline i { position: relative; z-index: 1; display: grid; width: 51px; height: 51px; place-items: center; border: 1px solid rgba(103, 229, 244, .54); border-radius: 50%; color: var(--cyan-soft); background: #052239; font-style: normal; box-shadow: 0 0 20px rgba(23, 196, 224, .14); }
.method-timeline > div:nth-child(even) i { color: var(--lime); border-color: rgba(161, 244, 75, .58); }

.services-stage { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(5, 31, 48, .52), rgba(2, 16, 28, .94)); }
.services-stage::before { position: absolute; z-index: 0; inset: 0; content: ''; pointer-events: none; opacity: .22; background: linear-gradient(90deg, rgba(2, 16, 29, .92), rgba(2, 16, 29, .44)), url('assets/images/industrial-living-element.png') center/cover; filter: saturate(.8); }
.services-stage .site-width { position: relative; z-index: 1; }
.services-stage-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 3.2rem; }
.services-stage-head h2 { max-width: 680px; margin: 0; font: 700 clamp(2.45rem, 4vw, 4.25rem)/1.05 'Manrope', sans-serif; letter-spacing: -.055em; }
.services-stage-head > p { max-width: 340px; margin: 0 0 .45rem; color: var(--muted); }
.services-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid rgba(111, 224, 240, .35); border-radius: 22px; box-shadow: 0 24px 65px rgba(0, 0, 0, .23); }
.service-detail { position: relative; display: flex; min-height: 308px; flex-direction: column; gap: 1.2rem; padding: 1.65rem; overflow: hidden; border: 0; border-right: 1px solid rgba(118, 218, 237, .2); border-bottom: 1px solid rgba(118, 218, 237, .2); background: linear-gradient(145deg, rgba(6, 42, 63, .91), rgba(3, 26, 44, .91)); transition: transform .28s ease, background .28s ease, box-shadow .28s ease; }
.service-detail:nth-child(4n) { border-right: 0; }
.service-detail:nth-last-child(-n+4) { border-bottom: 0; }
.service-detail::before { position: absolute; top: -7rem; right: -7rem; width: 14rem; height: 14rem; content: ''; border: 1px solid rgba(91, 223, 243, .19); border-radius: 50%; transition: .35s ease; }
.service-detail::after { position: absolute; right: -25%; bottom: -50%; width: 140%; height: 70%; content: ''; opacity: 0; background: radial-gradient(ellipse, rgba(134, 246, 73, .2), transparent 67%); transition: opacity .3s ease; }
.service-detail:hover { z-index: 1; transform: translateY(-8px); background: linear-gradient(145deg, rgba(7, 72, 82, .96), rgba(3, 37, 51, .96)); box-shadow: 0 20px 47px rgba(0, 0, 0, .35); }
.service-detail:hover::after { opacity: 1; }.service-detail:hover::before { transform: scale(1.15); border-color: rgba(179, 244, 74, .48); }
.service-detail-top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; }
.service-detail-no { color: var(--lime); font-size: .73rem; font-weight: 800; letter-spacing: .14em; }
.service-icon.large { width: 54px; height: 54px; border-radius: 16px; }
.service-detail-copy { position: relative; z-index: 1; }
.service-detail h2 { min-height: 53px; margin: 1.3rem 0 .6rem; font-size: 1.28rem; }
.service-detail p { font-size: .88rem; line-height: 1.65; }
.circle-link { position: relative; z-index: 1; align-self: flex-end; width: 37px; height: 37px; margin-top: auto; }
.service-flow { display: flex; align-items: center; justify-content: center; gap: .85rem; margin-top: 3rem; }
.service-flow span { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(111, 226, 244, .5); border-radius: 50%; color: var(--cyan-soft); background: rgba(4, 31, 47, .8); }.service-flow span:nth-child(4n+1) { color: var(--lime); border-color: rgba(165, 244, 76, .55); }
.service-flow i { width: min(12vw, 150px); height: 1px; background: linear-gradient(90deg, var(--cyan), var(--lime)); }

.reference-stage { position: relative; background: radial-gradient(circle at 12% 54%, rgba(20, 197, 213, .1), transparent 23rem), linear-gradient(160deg, rgba(4, 26, 43, .88), rgba(2, 16, 28, .3)); }
.reference-feature { position: relative; display: grid; grid-template-columns: 1.03fr .97fr; min-height: 388px; overflow: hidden; margin-bottom: 1.6rem; border: 1px solid rgba(128, 226, 243, .39); border-radius: 22px; background: linear-gradient(145deg, rgba(6, 45, 64, .92), rgba(3, 28, 45, .96)); box-shadow: 0 25px 70px rgba(0, 0, 0, .26); }
.reference-feature-image { position: relative; min-height: 350px; overflow: hidden; }.reference-feature-image::after { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg, transparent 45%, rgba(3, 25, 43, .72) 100%); }.reference-feature-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) contrast(1.1); }
.reference-feature-copy { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 4vw, 4rem); }.reference-feature-copy h2 { margin: 0; font: 700 clamp(2rem, 3.2vw, 3.45rem)/1.04 'Manrope', sans-serif; letter-spacing: -.055em; }.reference-feature-copy > p:not(.eyebrow) { max-width: 480px; color: #aec9d4; }
.reference-metrics { display: grid; gap: .65rem; margin: 1.25rem 0 1.4rem; color: #c5dce4; font-size: .78rem; font-weight: 700; }.reference-metrics span { display: flex; align-items: center; gap: .5rem; }.reference-metrics svg { color: var(--lime); }
.reference-feature .button { align-self: flex-start; min-height: 45px; }.reference-feature-orb { position: absolute; z-index: 2; right: 6%; bottom: 8%; display: grid; width: 138px; height: 138px; place-items: center; border: 1px solid rgba(104, 230, 245, .5); border-radius: 50%; color: var(--lime); background: rgba(5, 42, 59, .52); box-shadow: inset 0 0 34px rgba(96, 239, 79, .16), 0 0 50px rgba(20, 203, 219, .13); backdrop-filter: blur(8px); }.reference-feature-orb svg { width: 68px; fill: none; stroke: currentColor; stroke-width: 1.2; }
.references-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; }.reference-card { position: relative; display: grid; grid-template-columns: minmax(180px, .76fr) 1.24fr; min-height: 238px; border-radius: 18px; border-color: rgba(120, 225, 241, .32); background: linear-gradient(145deg, rgba(7, 48, 68, .83), rgba(3, 27, 44, .92)); }.reference-thumb { height: auto; min-height: 238px; }.reference-copy { display: flex; flex-direction: column; padding: 1.55rem; }.reference-copy h2 { font-size: 1.4rem; }.reference-copy > a { display: grid; width: 35px; height: 35px; place-items: center; align-self: flex-end; margin-top: auto; border: 1px solid rgba(101, 224, 243, .5); border-radius: 50%; color: var(--lime); }.reference-strip { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; margin-top: 1.6rem; padding: 1.15rem 1.5rem; border: 1px solid rgba(112, 223, 240, .22); border-radius: 14px; background: rgba(4, 29, 45, .52); }.reference-strip span { display: flex; align-items: center; justify-content: center; gap: .45rem; color: #bfd7e1; font-size: .72rem; font-weight: 700; }.reference-strip svg { color: var(--cyan-soft); }

@media (max-width: 1040px) {
  .site-width { width: min(1200px, calc(100% - 48px)); }
  .hero-inner { grid-template-columns: minmax(0, 1fr) minmax(400px, .9fr); }
  .services-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }.service-detail:nth-child(4n) { border-right: 1px solid rgba(118, 218, 237, .2); }.service-detail:nth-child(2n) { border-right: 0; }.service-detail:nth-last-child(-n+4) { border-bottom: 1px solid rgba(118, 218, 237, .2); }.service-detail:nth-last-child(-n+2) { border-bottom: 0; }
}
@media (max-width: 900px) {
  .hero { padding-top: 4.6rem; }.hero-inner { min-height: 700px; }.hero-art { right: -25vw; }.hero-pillars { grid-template-columns: repeat(3, 1fr); }.hero-pillar:nth-child(4), .hero-pillar:nth-child(5) { border-top: 1px solid rgba(132, 215, 239, .2); }.hero-pillar:nth-child(4) { border-left: 0; }
  .services-stage-head { align-items: start; flex-direction: column; }.services-stage-head > p { max-width: 600px; }.reference-feature { grid-template-columns: 1fr; }.reference-feature-image { min-height: 310px; }.reference-feature-image::after { background: linear-gradient(180deg, transparent, rgba(3, 25, 43, .72)); }.reference-feature-orb { right: 5%; top: 275px; bottom: auto; width: 95px; height: 95px; }.reference-feature-orb svg { width: 47px; }
}
@media (max-width: 620px) {
  .site-width { width: min(100% - 32px, 1200px); }.site-header { min-height: 70px; }.nav-wrap { min-height: 70px; }.hero { min-height: auto; padding-top: 3.7rem; }.hero h1, .page-hero h1 { font-size: clamp(2.65rem, 12vw, 4rem); }.hero-copy { padding-bottom: 2rem; }.hero-art { min-height: 430px; }.hero-pillars { grid-template-columns: repeat(2, 1fr); margin-top: .5rem; }.hero-pillar { min-height: 84px; }.hero-pillar:nth-child(3), .hero-pillar:nth-child(4), .hero-pillar:nth-child(5) { border-top: 1px solid rgba(132, 215, 239, .2); }.hero-pillar:nth-child(3), .hero-pillar:nth-child(5) { border-left: 0; }.hero-pillar:nth-child(5) { grid-column: 1 / -1; }
  .intro-copy { padding-left: 1.25rem; }.services-grid, .services-list, .references-grid { grid-template-columns: 1fr; }.services-list .service-detail, .service-detail:nth-child(4n), .service-detail:nth-child(2n) { border-right: 0; border-bottom: 1px solid rgba(118, 218, 237, .2); }.services-list .service-detail:last-child { border-bottom: 0; }.service-detail { min-height: 270px; }.service-detail h2 { min-height: auto; }.service-flow { gap: .38rem; }.service-flow span { width: 36px; height: 36px; }.service-flow i { width: 5vw; }
  .method-timeline { grid-template-columns: 1fr; gap: .8rem; margin-top: 2.4rem; }.method-timeline > div { grid-template-columns: 53px 1fr; justify-items: start; align-items: center; text-align: left; }.method-timeline > div:not(:last-child)::after { top: 50px; left: 25px; width: 1px; height: calc(100% - 24px); background: linear-gradient(var(--cyan), var(--lime)); }.reference-feature-copy { padding: 1.7rem; }.reference-feature-orb { display: none; }.reference-card { grid-template-columns: 1fr; }.reference-thumb { min-height: 210px; height: 210px; }.reference-strip { grid-template-columns: 1fr 1fr; }.reference-strip span { justify-content: flex-start; padding: .35rem; }.reference-strip span:last-child { grid-column: 1 / -1; }
}

/* Fixed-size reference logos: source artwork may vary, the visible canvas never does. */
.partner-section { position: relative; overflow: hidden; }
.partner-section::before { position: absolute; inset: 0; content: ''; pointer-events: none; background: radial-gradient(circle at 78% 50%, rgba(138, 242, 74, .08), transparent 22rem); }
.partner-marquee { padding: .65rem 0; }
.partner-track { gap: 1.5rem; animation-duration: 42s; }
.partner-logo {
  flex: 0 0 230px; width: 230px; min-width: 230px; height: 230px; padding: 0; overflow: hidden;
  border-color: rgba(112, 228, 244, .38); border-radius: 18px; background: linear-gradient(145deg, rgba(12, 57, 76, .88), rgba(3, 28, 45, .94));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 13px 31px rgba(0, 0, 0, .18); transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
.partner-logo-canvas { display: grid; width: 100%; height: 100%; place-items: center; padding: 22px; }
.partner-logo img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; object-position: center; filter: none; opacity: 1; }
.partner-logo:hover { transform: translateY(-5px); border-color: rgba(177, 244, 78, .66); background: linear-gradient(145deg, rgba(13, 75, 83, .96), rgba(3, 35, 49, .98)); }
.partner-logo:hover img { filter: none; opacity: 1; }
@keyframes marquee { to { transform: translateX(calc(-50% - .75rem)); } }

/* Managed typography, announcement ribbon and regulation library. */
body { font-family: var(--dora-font-family, DM Sans, Arial, sans-serif); font-size: var(--dora-base-size, 16px); }
body h1, body h2, body h3, body h4, body h5, body h6 { font-family: var(--dora-font-family, DM Sans, Arial, sans-serif) !important; }
body button, body input, body textarea, body select { font-family: inherit; }

.site-nav { gap: clamp(.45rem, 1.05vw, 1.15rem); }
.announcement-section { position: relative; z-index: 2; padding: 1.15rem 0 0; overflow: hidden; background: linear-gradient(180deg, rgba(2, 16, 29, .9), rgba(2, 16, 29, .12)); }
.announcement-frame { position: relative; display: grid; grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr); gap: clamp(1.2rem, 3vw, 3rem); align-items: center; min-height: 152px; padding: 1.45rem clamp(1.25rem, 3vw, 2.25rem); overflow: hidden; border: 1px solid rgba(111, 230, 241, .3); border-radius: 18px; background: linear-gradient(120deg, rgba(8, 55, 77, .87), rgba(3, 29, 47, .93)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 16px 34px rgba(0, 0, 0, .18); }
.announcement-frame::before { position: absolute; inset: 0; content: ''; pointer-events: none; opacity: .7; background: radial-gradient(circle at 80% 40%, rgba(145, 242, 72, .15), transparent 17rem), linear-gradient(90deg, transparent 0 48px, rgba(105, 224, 241, .045) 49px 50px); background-size: auto, 50px 50px; }
.announcement-heading, .announcement-list { position: relative; z-index: 1; }
.announcement-heading .eyebrow { margin-bottom: .45rem; font-size: .64rem; }
.announcement-heading h2 { margin: 0; color: #f0fcff; font-size: clamp(1.4rem, 2.2vw, 2.05rem); letter-spacing: -.045em; }
.announcement-heading > p:last-child { max-width: 365px; margin: .55rem 0 0; color: #aac6d2; font-size: .82rem; line-height: 1.55; }
.announcement-list { display: grid; gap: .65rem; max-height: 186px; overflow: auto; padding-right: .25rem; }
.announcement-card, .announcement-empty { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: .9rem; align-items: center; min-height: 76px; padding: .82rem .95rem; border: 1px solid rgba(109, 221, 240, .2); border-radius: 13px; background: rgba(3, 23, 40, .48); }
.announcement-empty { grid-template-columns: 44px minmax(0, 1fr); }
.announcement-icon { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(105, 229, 244, .42); border-radius: 50%; color: var(--cyan-soft); background: radial-gradient(circle at 35% 25%, rgba(39, 203, 223, .26), rgba(4, 31, 49, .76)); }
.announcement-icon svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.announcement-card time { display: block; margin-bottom: .18rem; color: var(--lime); font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.announcement-card h3 { margin: 0; color: #ecfbff; font-size: .94rem; letter-spacing: -.02em; }
.announcement-card p, .announcement-empty p { margin: .22rem 0 0; color: #a9c5d0; font-size: .76rem; line-height: 1.45; }
.announcement-link { display: inline-flex; align-items: center; gap: .35rem; color: var(--lime); font-size: .73rem; font-weight: 800; white-space: nowrap; }
.announcement-link span { color: var(--cyan-soft); font-size: 1rem; transition: transform .2s ease; }.announcement-link:hover span { transform: translate(2px, -2px); }

.partner-track { min-width: 100%; gap: 1.5rem; animation: none; will-change: transform; }
.partner-marquee:hover .partner-track { animation-play-state: initial; }

.regulations-stage { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(3, 23, 39, .66), rgba(3, 17, 29, .96)); }
.regulations-stage::before { position: absolute; inset: 0; content: ''; pointer-events: none; background: radial-gradient(circle at 83% 16%, rgba(145, 244, 77, .1), transparent 24rem), linear-gradient(130deg, transparent 43%, rgba(25, 199, 218, .1), transparent 67%); }
.regulations-stage .site-width { position: relative; z-index: 1; }
.regulations-heading { display: flex; align-items: end; justify-content: space-between; gap: 2.5rem; margin-bottom: 3rem; }
.regulations-heading h2 { max-width: 710px; margin: 0; color: #effcff; font-size: clamp(2.2rem, 4vw, 4rem); line-height: 1.06; letter-spacing: -.055em; }
.regulations-heading > p { max-width: 350px; margin: 0 0 .35rem; color: #aac6d2; }
.regulations-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.15rem; }
.regulation-card, .regulation-empty { position: relative; display: flex; min-height: 305px; flex-direction: column; padding: 1.55rem; overflow: hidden; border: 1px solid rgba(109, 223, 240, .3); border-radius: 18px; background: linear-gradient(145deg, rgba(8, 53, 75, .88), rgba(3, 26, 44, .95)); box-shadow: 0 16px 45px rgba(0, 0, 0, .17); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.regulation-card::after { position: absolute; right: -3.4rem; bottom: -3.4rem; width: 10rem; height: 10rem; content: ''; border: 1px solid rgba(159, 243, 71, .26); border-radius: 50%; transition: transform .3s ease; }
.regulation-card:hover { z-index: 1; transform: translateY(-7px); border-color: rgba(169, 245, 78, .52); box-shadow: 0 25px 55px rgba(0, 0, 0, .28); }.regulation-card:hover::after { transform: scale(1.18); }
.regulation-card-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.regulation-icon { display: grid; width: 52px; height: 52px; place-items: center; border: 1px solid rgba(103, 226, 244, .58); border-radius: 15px; color: var(--cyan-soft); background: linear-gradient(145deg, rgba(18, 87, 109, .78), rgba(3, 31, 50, .82)); }.regulation-icon svg { width: 26px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.regulation-label { color: var(--lime); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-align: right; text-transform: uppercase; }
.regulation-card time { display: block; margin-top: 1.55rem; color: #91dbe9; font-size: .7rem; font-weight: 700; }
.regulation-card h2 { margin: 1.1rem 0 .65rem; color: #edfcff; font-size: 1.45rem; line-height: 1.18; letter-spacing: -.04em; }
.regulation-card p { margin: 0; color: #abc6d0; font-size: .9rem; line-height: 1.65; }
.regulation-link { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .45rem; margin-top: auto; padding-top: 1.45rem; color: var(--lime); font-size: .82rem; font-weight: 800; }.regulation-link span { color: var(--cyan-soft); font-size: 1.1rem; transition: transform .2s ease; }.regulation-link:hover span { transform: translate(3px, -3px); }
.regulation-empty { align-items: center; justify-content: center; gap: 1rem; min-height: 210px; color: #b6d1da; text-align: center; }.regulation-empty span { color: var(--lime); }.regulation-empty svg { width: 34px; fill: none; stroke: currentColor; stroke-width: 1.4; }.regulation-empty p { max-width: 260px; margin: 0; }

@media (max-width: 900px) { .announcement-frame { grid-template-columns: 1fr; gap: 1.1rem; }.announcement-heading > p:last-child { max-width: 650px; }.regulations-heading { align-items: start; flex-direction: column; gap: 1rem; }.regulations-heading > p { max-width: 650px; } }
@media (max-width: 620px) { .announcement-section { padding-top: .75rem; }.announcement-frame { min-height: 0; padding: 1.15rem; border-radius: 14px; }.announcement-card { grid-template-columns: 38px minmax(0, 1fr); }.announcement-icon { width: 36px; height: 36px; }.announcement-link { grid-column: 2; justify-self: start; }.announcement-list { max-height: 260px; }.regulations-grid { grid-template-columns: 1fr; }.regulation-card { min-height: 270px; } }
