/* ==========================================================================
   Duna Duna — AI & Cloud Consulting
   ========================================================================== */

:root {
  --ink: #050b14;
  --ink-soft: #081321;
  --panel: #0a1728;
  --panel-light: #0d1d31;
  --blue: #167cff;
  --blue-light: #46dfff;
  --sand: #e7ad53;
  --sand-light: #ffd88c;
  --white: #f5f8fc;
  --muted: #8ea0b7;
  --muted-light: #b8c4d2;
  --line: rgba(143, 181, 219, .14);
  --line-bright: rgba(90, 209, 255, .25);
  --heading: "Space Grotesk", "Aptos Display", system-ui, sans-serif;
  --body: "Manrope", "Aptos", system-ui, sans-serif;
  --container: 1240px;
  --section-space: clamp(6.5rem, 10vw, 10rem);
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --shadow: 0 30px 80px rgba(0, 0, 0, .32);
  --transition: 300ms cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--white);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.65;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; cursor: pointer; }
::selection { color: #fff; background: rgba(22, 124, 255, .7); }

.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.section { position: relative; padding: var(--section-space) 0; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 1000; transform: translateY(-150%); padding: 10px 15px; border-radius: 8px; color: var(--ink); background: var(--white); transition: transform .2s; }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--blue-light); outline-offset: 4px; }

/* Navigation */
.site-header { position: fixed; inset: 0 0 auto; z-index: 100; border-bottom: 1px solid transparent; transition: background var(--transition), border-color var(--transition), backdrop-filter var(--transition); }
.site-header.scrolled, .site-header.menu-active { background: rgba(5, 11, 20, .82); border-color: var(--line); backdrop-filter: blur(18px); }
.nav-wrap { height: 82px; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 9px; min-width: max-content; font-family: var(--heading); font-weight: 700; letter-spacing: -.03em; }
.brand img { width: 42px; height: 42px; object-fit: contain; }
.brand span { font-size: 1.08rem; }
.primary-nav { display: flex; align-items: center; gap: clamp(1.25rem, 2vw, 2rem); color: var(--muted-light); font-size: .79rem; font-weight: 600; }
.primary-nav > a:not(.button) { position: relative; padding: 10px 0; transition: color var(--transition); }
.primary-nav > a:not(.button)::after { position: absolute; right: 0; bottom: 4px; left: 0; height: 1px; content: ""; background: var(--blue-light); transform: scaleX(0); transform-origin: right; transition: transform var(--transition); }
.primary-nav > a:not(.button):hover { color: var(--white); }
.primary-nav > a:not(.button):hover::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 18px; height: 1px; margin: 5px auto; background: var(--white); transition: transform var(--transition); }

/* Shared UI */
.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: #a8bbd0; font-size: .7rem; font-weight: 700; letter-spacing: .2em; }
.eyebrow > span { width: 24px; height: 1px; background: linear-gradient(90deg, var(--blue), var(--blue-light)); }
.eyebrow i { color: var(--sand); font-style: normal; }
h1, h2, h3 { margin-top: 0; font-family: var(--heading); line-height: 1.06; }
h1 { margin-bottom: 1.5rem; font-size: clamp(3.5rem, 6.8vw, 6.7rem); letter-spacing: -.065em; }
h2 { margin: 1.2rem 0 1.5rem; font-size: clamp(2.7rem, 4.7vw, 4.8rem); letter-spacing: -.055em; }
h3 { letter-spacing: -.025em; }
p { color: var(--muted); }
.text-gradient { color: var(--blue-light); background: linear-gradient(105deg, #fff 0%, #7ce9ff 28%, #2286ff 64%, #e7ad53 110%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 1.4rem; min-height: 52px; padding: 0 24px; overflow: hidden; border: 1px solid transparent; border-radius: var(--radius-sm); font-size: .82rem; font-weight: 700; transition: transform var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition); }
.button::before { position: absolute; inset: 0; content: ""; background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.28) 48%, transparent 75%); transform: translateX(-120%); transition: transform .7s ease; }
.button:hover::before { transform: translateX(120%); }
.button:hover { transform: translateY(-2px); }
.button span { font-size: 1rem; }
.button-primary { color: #fff; background: linear-gradient(120deg, #1168e7, #168cff); border-color: rgba(121, 211, 255, .3); box-shadow: 0 12px 34px rgba(10, 104, 235, .24), inset 0 1px rgba(255,255,255,.2); }
.button-primary:hover { box-shadow: 0 16px 40px rgba(10, 104, 235, .38), inset 0 1px rgba(255,255,255,.3); }
.button-ghost { color: #d9e4ef; border-color: var(--line); background: rgba(255,255,255,.025); }
.button-ghost:hover { border-color: rgba(89, 220, 255, .4); background: rgba(53, 168, 235, .08); }
.button-small { min-height: 42px; padding-inline: 18px; gap: 1rem; }
.button-large { min-height: 58px; padding-inline: 30px; }
.section-heading { margin-bottom: clamp(3rem, 6vw, 5.5rem); }
.split-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 4rem; align-items: end; }
.split-heading > p { max-width: 500px; margin: 0 0 1.4rem; font-size: 1.05rem; }
.split-heading.compact { margin-bottom: 3.7rem; }
.centered { max-width: 820px; margin-right: auto; margin-left: auto; text-align: center; }
.centered .eyebrow { justify-content: center; }
.centered > p { max-width: 690px; margin: 0 auto; font-size: 1.05rem; }

/* Hero */
.hero { position: relative; min-height: max(760px, 100svh); padding: 130px 0 90px; overflow: hidden; background: radial-gradient(circle at 70% 37%, rgba(8, 78, 150, .16), transparent 30%), linear-gradient(165deg, #07101c 0%, var(--ink) 58%); }
.hero::after { position: absolute; right: 0; bottom: 0; left: 0; height: 180px; pointer-events: none; content: ""; background: linear-gradient(transparent, var(--ink)); }
.hero-ambient { position: absolute; top: -20%; left: -15%; width: 70vw; height: 70vw; border-radius: 50%; background: radial-gradient(circle, rgba(22, 124, 255, .11), transparent 62%); animation: breathe 9s ease-in-out infinite alternate; }
.hero-grid { position: absolute; inset: 0; opacity: .23; background-image: linear-gradient(rgba(80,150,220,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(80,150,220,.06) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(to bottom, black, transparent 90%); }
.hero-layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(480px, .95fr); align-items: center; gap: 3rem; min-height: calc(100svh - 220px); }
.hero-copy { padding-top: 2rem; }
.hero-copy .eyebrow { margin-bottom: 1.7rem; }
.hero-kicker { max-width: 620px; margin: 0 0 1rem; color: #e2eaf4; font-size: clamp(1.08rem, 1.6vw, 1.3rem); font-weight: 600; letter-spacing: -.02em; }
.hero-description { max-width: 640px; margin: 0; font-size: .97rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 2.2rem; }
.hero-proof { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 2.3rem; color: #8ea5ba; font-size: .72rem; font-weight: 600; letter-spacing: .04em; }
.hero-proof span { display: flex; align-items: center; gap: 8px; }
.hero-proof i { width: 5px; height: 5px; border-radius: 50%; background: var(--blue-light); box-shadow: 0 0 12px var(--blue-light); }
.hero-visual { position: relative; min-height: 610px; transform-style: preserve-3d; }
.visual-glow { position: absolute; top: 17%; left: 16%; width: 70%; height: 60%; border-radius: 50%; background: rgba(18, 105, 238, .16); filter: blur(80px); animation: breathe 7s ease-in-out infinite alternate; }
.network-card { position: absolute; top: 6%; right: 0; width: min(100%, 555px); aspect-ratio: 1.02; overflow: hidden; border: 1px solid rgba(97, 190, 255, .2); border-radius: 48% 48% 43% 46%; background: radial-gradient(circle at 50% 48%, rgba(14, 93, 177, .26), transparent 29%), rgba(7, 20, 36, .72); box-shadow: inset 0 0 70px rgba(42, 142, 255, .05), var(--shadow); backdrop-filter: blur(7px); transition: transform .18s ease-out; }
.network-card::before { position: absolute; inset: 0; content: ""; background-image: linear-gradient(rgba(104,177,231,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(104,177,231,.06) 1px, transparent 1px); background-size: 34px 34px; mask-image: radial-gradient(circle, black, transparent 72%); }
.network-label { position: absolute; z-index: 3; top: 40px; left: 50%; display: flex; align-items: center; gap: 8px; color: #6f899f; font-family: var(--heading); font-size: .56rem; letter-spacing: .18em; transform: translateX(-50%); }
.network-label span { width: 5px; height: 5px; border-radius: 50%; background: #54eaa6; box-shadow: 0 0 12px #54eaa6; }
.network-svg { position: relative; z-index: 2; width: 100%; height: 100%; }
.network-lines path { stroke-dasharray: 7 8; animation: dash 22s linear infinite; }
.core-node > circle:nth-child(2) { transform-origin: 278px 235px; animation: rotate 22s linear infinite; }
.core-node > circle:nth-child(3) { animation: corePulse 3.5s ease-in-out infinite; transform-origin: 278px 235px; }
.node-tag { position: absolute; z-index: 4; color: #7a92a8; font-family: var(--heading); font-size: .5rem; letter-spacing: .16em; }
.node-tag-1 { top: 19%; left: 10%; }.node-tag-2 { bottom: 21%; left: 15%; }.node-tag-3 { top: 20%; right: 10%; }.node-tag-4 { right: 8%; bottom: 20%; }
.core-caption { position: absolute; z-index: 5; top: 50%; left: 50%; display: grid; text-align: center; transform: translate(-50%, 36px); }
.core-caption small { color: #5d7c9d; font-size: .42rem; letter-spacing: .16em; }
.core-caption strong { color: #a9eefe; font-family: var(--heading); font-size: .75rem; font-weight: 500; }
.orbit { position: absolute; border: 1px solid rgba(74, 206, 255, .12); border-radius: 50%; }
.orbit::after { position: absolute; width: 6px; height: 6px; border-radius: 50%; content: ""; background: var(--blue-light); box-shadow: 0 0 16px var(--blue-light); }
.orbit-one { top: 1%; right: -8%; width: 630px; height: 630px; animation: rotate 28s linear infinite; }
.orbit-one::after { top: 18%; left: 8%; }
.orbit-two { top: 12%; right: 4%; width: 490px; height: 490px; border-color: rgba(231, 173, 83, .1); animation: rotate 22s linear infinite reverse; }
.orbit-two::after { right: 3%; bottom: 28%; background: var(--sand); box-shadow: 0 0 16px var(--sand); }
.floating-badge { position: absolute; z-index: 7; display: flex; align-items: center; gap: 12px; min-width: 190px; padding: 13px 15px; border: 1px solid rgba(122, 195, 243, .2); border-radius: 12px; background: rgba(8, 23, 39, .86); box-shadow: 0 16px 46px rgba(0,0,0,.28); backdrop-filter: blur(12px); transition: transform .18s ease-out; }
.floating-badge > span:last-child { display: grid; }
.floating-badge small { color: #668097; font-size: .48rem; line-height: 1.3; letter-spacing: .18em; }
.floating-badge strong { color: #dce9f5; font-size: .68rem; }
.badge-top { top: 14%; left: -4%; animation: float 6s ease-in-out infinite; }
.badge-bottom { right: -3%; bottom: 22%; animation: float 7s 1s ease-in-out infinite; }
.badge-icon { display: grid!important; width: 28px; height: 28px; place-items: center; border-radius: 8px; font-size: .8rem; }
.badge-icon-blue { color: #8eefff; background: rgba(27, 147, 245, .15); }
.status-dot { width: 8px; height: 8px; min-width: 8px; border-radius: 50%; background: #56e6a1; box-shadow: 0 0 14px rgba(86,230,161,.8); }
.dune-stack { position: absolute; z-index: 6; right: -7%; bottom: 3%; left: -10%; height: 180px; transition: transform .18s ease-out; }
.dune { position: absolute; right: 0; bottom: 0; left: 0; height: 130px; border-radius: 52% 64% 0 0 / 62% 69% 0 0; transform: rotate(-4deg); transform-origin: bottom; }
.dune-back { bottom: 34px; left: 12%; background: linear-gradient(115deg, rgba(231,173,83,.8), rgba(120,74,28,.4) 52%, transparent 78%); opacity: .46; clip-path: polygon(0 83%, 14% 55%, 32% 17%, 47% 38%, 63% 74%, 80% 86%, 100% 77%, 100% 100%, 0 100%); }
.dune-mid { background: linear-gradient(105deg, #0e356d 8%, #1257a7 47%, #0a2042 88%); clip-path: polygon(0 78%, 13% 56%, 27% 40%, 39% 48%, 54% 74%, 71% 86%, 87% 78%, 100% 90%, 100% 100%, 0 100%); }
.dune-front { bottom: -6px; background: linear-gradient(95deg, #07152a, #103c78 43%, #0a1930 80%); clip-path: polygon(0 88%, 15% 69%, 29% 56%, 43% 62%, 59% 83%, 74% 91%, 88% 86%, 100% 95%, 100% 100%, 0 100%); }
.scroll-cue { position: absolute; z-index: 4; bottom: 30px; left: 50%; display: flex; align-items: center; gap: 10px; color: #526a80; font-size: .6rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; transform: translateX(-50%); }
.scroll-cue span { width: 28px; height: 1px; overflow: hidden; background: #29435d; }

/* Capabilities */
.capability-strip { position: relative; z-index: 3; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #06101c; }
.capability-track { display: flex; align-items: center; justify-content: center; gap: clamp(1.2rem, 2.8vw, 2.8rem); min-width: max-content; min-height: 88px; padding: 0 24px; }
.capability-track span { color: #98a9ba; font-family: var(--heading); font-size: .72rem; font-weight: 600; letter-spacing: .05em; }
.capability-track i { width: 4px; height: 4px; border-radius: 50%; background: var(--sand); box-shadow: 0 0 10px rgba(231,173,83,.7); }

/* Services */
.services { overflow: hidden; background: radial-gradient(circle at 100% 20%, rgba(18,99,180,.08), transparent 34%), var(--ink); }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.service-card { position: relative; min-height: 335px; padding: 32px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: linear-gradient(145deg, rgba(13,30,51,.8), rgba(7,17,29,.82)); transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition); }
.service-card::before { position: absolute; top: 0; left: 0; width: 100%; height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(87,217,255,.45), transparent); transform: translateX(-100%); transition: transform .75s ease; }
.service-card::after { position: absolute; right: -60px; bottom: -80px; width: 180px; height: 180px; border-radius: 50%; content: ""; background: rgba(21, 125, 255, .12); filter: blur(48px); opacity: 0; transition: opacity var(--transition); }
.service-card:hover { z-index: 2; border-color: rgba(70, 210, 255, .28); box-shadow: 0 22px 55px rgba(0,0,0,.24); transform: translateY(-6px); }
.service-card:hover::before { transform: translateX(100%); }
.service-card:hover::after { opacity: 1; }
.service-card.featured { background: linear-gradient(145deg, rgba(12,46,80,.95), rgba(8,22,39,.92)); }
.service-icon { display: grid; width: 48px; height: 48px; margin-bottom: 3.2rem; place-items: center; border: 1px solid rgba(63,203,255,.22); border-radius: 12px; color: #73e4ff; background: rgba(25,125,222,.09); }
.service-icon svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.card-number { position: absolute; top: 35px; right: 32px; color: #40566d; font-family: var(--heading); font-size: .62rem; letter-spacing: .14em; }
.service-card h3 { margin-bottom: .8rem; font-size: 1.25rem; }
.service-card p { margin: 0; font-size: .87rem; line-height: 1.7; }
.service-detail-trigger { position: absolute; right: 32px; bottom: 28px; left: 32px; display: flex; width: calc(100% - 64px); justify-content: space-between; padding: 15px 0 0; border: 0; border-top: 1px solid var(--line); color: #9badc0; background: transparent; font-size: .67rem; font-weight: 700; letter-spacing: .05em; text-align: left; transition: color var(--transition); }
.service-detail-trigger span { color: var(--blue-light); transition: transform var(--transition); }
.service-detail-trigger:hover { color: white; }.service-detail-trigger:hover span { transform: translate(3px, -3px); }

/* AWS */
.aws-section { overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: linear-gradient(135deg, #07111e, #081829 53%, #07111d); }
.aws-noise { position: absolute; inset: 0; opacity: .3; background-image: radial-gradient(rgba(105,175,229,.12) .7px, transparent .7px); background-size: 14px 14px; mask-image: linear-gradient(90deg, black, transparent 65%); }
.aws-layout { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(4rem, 8vw, 8rem); align-items: center; }
.architecture-visual { overflow: hidden; border: 1px solid rgba(93,172,226,.2); border-radius: var(--radius-md); background: rgba(5,15,26,.76); box-shadow: var(--shadow); }
.arch-toolbar, .arch-footer { display: flex; align-items: center; gap: 6px; height: 40px; padding: 0 16px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.018); }
.arch-toolbar > span { width: 6px; height: 6px; border-radius: 50%; background: #30455b; }.arch-toolbar > span:first-child { background: #b27a45; }
.arch-toolbar small { margin-left: auto; color: #476179; font-size: .55rem; letter-spacing: .08em; }
.arch-canvas { position: relative; aspect-ratio: 1.35; overflow: hidden; }
.arch-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(86,151,202,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(86,151,202,.06) 1px, transparent 1px); background-size: 28px 28px; }
.arch-zone { position: absolute; border: 1px dashed rgba(68,187,243,.18); border-radius: 12px; }
.arch-zone small { position: absolute; top: 8px; left: 10px; color: #45647f; font-size: .48rem; letter-spacing: .15em; }
.zone-edge { top: 24%; bottom: 24%; left: 22%; width: 21%; }.zone-cloud { inset: 8% 5% 8% 47%; border-color: rgba(231,173,83,.17); }
.arch-node { position: absolute; z-index: 3; display: grid; gap: 7px; width: 67px; justify-items: center; color: #7790a6; font-size: .52rem; font-weight: 600; transform: translate(-50%, -50%); }
.arch-node i { position: relative; display: block; width: 42px; height: 42px; border: 1px solid rgba(70,200,255,.32); border-radius: 11px; background: linear-gradient(145deg, #0d3969, #0a203c); box-shadow: 0 8px 24px rgba(0,0,0,.3); }
.arch-node i::after { position: absolute; inset: 14px; border: 1px solid #6ce2ff; border-radius: 3px; content: ""; box-shadow: 0 0 12px rgba(79,218,255,.5); }
.arch-users { top: 50%; left: 13%; }.arch-edge { top: 50%; left: 32%; }.arch-app { top: 50%; left: 54%; }.arch-data { top: 28%; left: 79%; }.arch-ai { top: 73%; left: 79%; }
.arch-data i, .arch-ai i { border-color: rgba(231,173,83,.32); background: linear-gradient(145deg, #51391d, #251b13); }.arch-data i::after,.arch-ai i::after { border-color: var(--sand-light); box-shadow: 0 0 12px rgba(231,173,83,.5); }
.arch-canvas svg { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; fill: #6edfff; stroke: rgba(73,201,255,.42); stroke-width: 1.4; stroke-dasharray: 5 7; }
.arch-canvas svg path { animation: dash 20s linear infinite; }
.arch-canvas svg circle { filter: drop-shadow(0 0 6px #43d7ff); }
.arch-metric { position: absolute; bottom: 12px; display: grid; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(7,18,31,.9); }
.arch-metric small { color: #46617a; font-size: .42rem; letter-spacing: .1em; }.arch-metric strong { color: #8da4b9; font-size: .56rem; }.metric-one { left: 12px; }.metric-two { left: 108px; }
.arch-footer { justify-content: flex-end; gap: 18px; border-top: 1px solid var(--line); border-bottom: 0; color: #536c83; font-size: .5rem; letter-spacing: .06em; }
.arch-footer span:first-child { margin-right: auto; }.arch-footer i { display: inline-block; width: 5px; height: 5px; margin-right: 5px; border-radius: 50%; background: #55e1a0; }
.aws-copy > p { margin-bottom: 2rem; font-size: .98rem; }
.capability-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; margin: 0 0 2.5rem; padding: 0; list-style: none; }
.capability-list li { display: flex; align-items: center; gap: 10px; color: #bdcbd8; font-size: .78rem; }
.capability-list i { display: grid; width: 21px; height: 21px; min-width: 21px; place-items: center; border: 1px solid rgba(72,214,255,.25); border-radius: 50%; color: var(--blue-light); background: rgba(28,155,221,.08); font-size: .58rem; font-style: normal; }
.text-link { display: inline-flex; align-items: center; gap: 18px; padding-bottom: 8px; border-bottom: 1px solid rgba(72,213,255,.38); color: #dfeaf5; font-size: .79rem; font-weight: 700; }
.text-link span { color: var(--blue-light); transition: transform var(--transition); }.text-link:hover span { transform: translate(3px, -3px); }
.aws-actions { display: flex; flex-wrap: wrap; gap: 1.8rem; align-items: center; }
.text-link-muted { color: #869bae; border-color: var(--line); }

/* AWS health check */
.assessment-section { overflow: hidden; background: radial-gradient(circle at 15% 35%, rgba(17,111,210,.11), transparent 32%), #050c16; }
.assessment-section::after { position: absolute; top: 0; right: 6%; width: 1px; height: 100%; content: ""; background: linear-gradient(transparent, rgba(68,203,255,.18), transparent); }
.assessment-layout { position: relative; display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(4rem, 8vw, 8rem); align-items: start; }
.assessment-intro { position: sticky; top: 130px; }
.assessment-intro h2 { font-size: clamp(2.75rem, 3.7vw, 3.8rem); }
.assessment-intro > p { max-width: 500px; font-size: .95rem; }
.assessment-note { display: flex; gap: 13px; max-width: 480px; margin-top: 2rem; padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: rgba(17,42,68,.42); }
.assessment-note i { display: grid; width: 21px; height: 21px; min-width: 21px; place-items: center; border: 1px solid #2a698f; border-radius: 50%; color: #74dfff; font-size: .65rem; font-style: normal; }
.assessment-note span { color: #6f879d; font-size: .69rem; line-height: 1.6; }
.assessment-tool { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-md); background: linear-gradient(145deg, rgba(12,30,51,.88), rgba(7,17,29,.9)); box-shadow: var(--shadow); }
.assessment-tool[hidden] { display: none; }
.assessment-topline { display: flex; justify-content: space-between; margin-bottom: 1.6rem; padding-bottom: 16px; border-bottom: 1px solid var(--line); color: #c6d4e0; font-family: var(--heading); font-size: .75rem; }
.assessment-topline strong { color: var(--blue-light); font-size: .63rem; letter-spacing: .05em; }
.assessment-question { margin: 0; padding: 20px 0; border: 0; border-bottom: 1px solid var(--line); }
.assessment-question legend { display: flex; gap: 12px; margin-bottom: 12px; color: #c5d2de; font-family: var(--heading); font-size: .78rem; font-weight: 600; }
.assessment-question legend span { color: #43617a; font-size: .57rem; letter-spacing: .1em; }
.choice-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.choice-row label { position: relative; cursor: pointer; }
.choice-row input { position: absolute; opacity: 0; pointer-events: none; }
.choice-row label span { display: flex; min-height: 42px; align-items: center; justify-content: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; color: #71879b; background: rgba(255,255,255,.012); font-size: .63rem; font-weight: 600; text-align: center; transition: color var(--transition), border-color var(--transition), background var(--transition), transform var(--transition); }
.choice-row label:hover span { color: #c9d7e2; border-color: rgba(66,196,248,.28); }
.choice-row input:focus-visible + span { outline: 2px solid var(--blue-light); outline-offset: 2px; }
.choice-row input:checked + span { color: #e9f7ff; border-color: rgba(71,213,255,.55); background: linear-gradient(120deg, rgba(18,112,220,.25), rgba(49,203,242,.08)); box-shadow: inset 0 0 18px rgba(29,139,227,.08); transform: translateY(-1px); }
.assessment-submit { width: 100%; margin-top: 24px; }
.form-error { min-height: 1.2em; margin: 12px 0 0; color: #ff9e91; font-size: .7rem; }
.assessment-result { grid-column: 2; display: grid; grid-template-columns: 170px 1fr; gap: 34px; align-items: center; padding: 38px; border: 1px solid rgba(68,203,255,.25); border-radius: var(--radius-md); background: linear-gradient(145deg, rgba(12,49,82,.9), rgba(7,22,39,.94)); box-shadow: var(--shadow); }
.assessment-result[hidden] { display: none; }
.score-ring { --score: 0deg; display: grid; width: 160px; height: 160px; place-items: center; border-radius: 50%; background: conic-gradient(var(--blue-light) var(--score), rgba(91,135,170,.15) 0); box-shadow: 0 0 45px rgba(27,132,229,.14); }
.score-ring::before { position: absolute; width: 134px; height: 134px; border-radius: 50%; content: ""; background: #09192a; }
.score-ring > div { position: relative; z-index: 1; display: flex; align-items: baseline; }.score-ring strong { font-family: var(--heading); font-size: 2.8rem; letter-spacing: -.07em; }.score-ring small { color: #607b92; font-size: .7rem; }
.result-copy > span { color: var(--sand); font-size: .57rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }.result-copy h3 { margin: .45rem 0 .6rem; font-size: 1.5rem; }.result-copy p { margin: 0 0 1rem; font-size: .78rem; }.result-copy ul { display: grid; gap: 6px; margin: 0 0 1.5rem; padding: 0; list-style: none; }.result-copy li { color: #aebdca; font-size: .7rem; }.result-copy li::before { margin-right: 8px; color: var(--blue-light); content: "→"; }.result-buttons { display: flex; flex-wrap: wrap; gap: 9px; }.result-buttons .button { min-height: 44px; font-size: .68rem; }

/* AI */
.ai-section { overflow: hidden; background: #050b14; }
.ai-ambient { position: absolute; top: 15%; left: 50%; width: 900px; height: 700px; border-radius: 50%; background: radial-gradient(circle, rgba(12,98,195,.13), transparent 62%); transform: translateX(-50%); }
.ai-section .container { position: relative; }
.workflow { position: relative; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr; gap: 12px; align-items: center; margin-bottom: 5rem; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-md); background: linear-gradient(120deg, rgba(13,31,52,.68), rgba(8,19,32,.54)); }
.workflow::before { position: absolute; inset: 0; border-radius: inherit; content: ""; background: linear-gradient(90deg, transparent, rgba(57,187,255,.04), transparent); }
.workflow-step { position: relative; z-index: 2; display: grid; justify-items: center; text-align: center; }
.workflow-step > span { position: absolute; top: 0; right: 8%; color: #3d5974; font-family: var(--heading); font-size: .5rem; letter-spacing: .12em; }
.workflow-icon { display: grid; width: 58px; height: 58px; margin-bottom: 12px; place-items: center; border: 1px solid rgba(78,204,255,.2); border-radius: 50%; color: #6bddff; background: #0a2037; box-shadow: 0 0 0 7px rgba(24,120,200,.035); }
.workflow-step.active .workflow-icon { color: #fff; border-color: rgba(231,173,83,.4); background: linear-gradient(145deg, #19558e, #583e21); box-shadow: 0 0 32px rgba(36,151,231,.2), 0 0 0 7px rgba(231,173,83,.04); }
.workflow-step strong { font-family: var(--heading); font-size: .8rem; }.workflow-step small { color: #536d84; font-size: .52rem; }
.workflow-arrow { color: #35526d; font-style: normal; }
.workflow-progress { position: absolute; z-index: 1; top: 61px; right: 9%; left: 9%; height: 1px; overflow: hidden; background: #1a3853; }
.workflow-progress::after { display: block; width: 35%; height: 100%; content: ""; background: linear-gradient(90deg, transparent, var(--blue-light), transparent); animation: workflowFlow 5s ease-in-out infinite; }
.ai-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.ai-card { position: relative; min-height: 270px; padding: 30px 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background var(--transition); }
.ai-card:hover { background: rgba(15,45,76,.42); }
.ai-card > span { display: inline-block; margin-bottom: 4rem; color: #47627b; font-family: var(--heading); font-size: .6rem; letter-spacing: .13em; }
.ai-card h3 { margin-bottom: .8rem; font-size: 1.05rem; }.ai-card p { margin: 0; font-size: .8rem; }

/* Why */
.why-section { border-top: 1px solid var(--line); background: #07111e; }
.principles { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); }
.principle { position: relative; display: grid; grid-template-columns: 100px 1fr; min-height: 190px; padding: 35px; overflow: hidden; background: #07111e; transition: background var(--transition); }
.principle:hover { background: #0a192a; }
.principle::after { position: absolute; right: -30px; bottom: -80px; width: 170px; height: 150px; border-radius: 50%; content: ""; background: rgba(27,124,227,.08); filter: blur(35px); opacity: 0; transition: opacity var(--transition); }.principle:hover::after { opacity: 1; }
.principle > span { color: #294760; font-family: var(--heading); font-size: 2.3rem; font-weight: 600; letter-spacing: -.05em; }.principle h3 { margin: .45rem 0 .8rem; font-size: 1.2rem; }.principle p { max-width: 390px; margin: 0; font-size: .82rem; }

/* Process */
.process-section { background: linear-gradient(180deg, #050b14, #07111d); }
.process-heading { margin-bottom: 5rem; }
.process-list { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 42px; }
.process-line { position: absolute; top: 11px; right: 12.5%; left: 12.5%; height: 1px; overflow: hidden; background: #18314a; }
.process-line span { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, var(--blue), var(--blue-light), var(--sand)); transform: scaleX(0); transform-origin: left; transition: transform 1.7s .2s cubic-bezier(.2,.7,.2,1); }
.process-list.is-visible .process-line span { transform: scaleX(1); }
.process-step { position: relative; padding-top: 45px; }
.step-dot { position: absolute; z-index: 2; top: 0; left: 0; display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid #2a587f; border-radius: 50%; background: #07111d; }
.step-dot i { width: 5px; height: 5px; border-radius: 50%; background: var(--blue-light); box-shadow: 0 0 10px var(--blue-light); }
.process-step > span { color: #395874; font-family: var(--heading); font-size: .58rem; letter-spacing: .14em; }.process-step h3 { margin: .7rem 0 .8rem; font-size: 1.25rem; }.process-step p { margin: 0; font-size: .8rem; }

/* Engagement models */
.engagement-section { border-top: 1px solid var(--line); background: radial-gradient(circle at 75% 50%, rgba(16,102,187,.08), transparent 35%), #07111d; }
.engagement-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.engagement-card { position: relative; min-height: 425px; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(7,18,31,.85); transition: transform var(--transition), border-color var(--transition); }
.engagement-card:hover { border-color: rgba(69,211,255,.28); transform: translateY(-5px); }
.engagement-card.featured { background: linear-gradient(150deg, rgba(13,55,93,.9), rgba(7,21,37,.95)); }
.engagement-card > span { color: #527089; font-size: .56rem; font-weight: 700; letter-spacing: .14em; }.engagement-card h3 { margin: 2.7rem 0 1rem; font-size: 1.35rem; }.engagement-card p { font-size: .8rem; }.engagement-card ul { display: grid; gap: 8px; margin: 1.6rem 0 4.5rem; padding: 0; list-style: none; }.engagement-card li { color: #a8bac9; font-size: .7rem; }.engagement-card li::before { margin-right: 8px; color: var(--blue-light); content: "✓"; }.engagement-card a { position: absolute; right: 34px; bottom: 30px; left: 34px; display: flex; justify-content: space-between; padding-top: 15px; border-top: 1px solid var(--line); color: #b4c5d3; font-size: .7rem; font-weight: 700; }.engagement-card a span { color: var(--blue-light); transition: transform var(--transition); }.engagement-card a:hover span { transform: translate(3px,-3px); }

/* Technology */
.technology-section { padding: 5rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #06101b; }
.technology-inner { display: grid; grid-template-columns: .75fr 1.25fr; gap: 6rem; align-items: center; }
.technology-inner h2 { margin-bottom: 0; font-size: clamp(2rem, 3.3vw, 3.1rem); }
.tech-badges { display: flex; flex-wrap: wrap; gap: 9px; }
.tech-badges span { padding: 10px 14px; border: 1px solid var(--line); border-radius: 50px; color: #8097aa; background: rgba(255,255,255,.015); font-size: .65rem; font-weight: 600; transition: color var(--transition), border-color var(--transition), background var(--transition); }
.tech-badges span:hover { color: #dceaf5; border-color: rgba(71,212,255,.28); background: rgba(30,138,211,.08); }

/* Contact & footer */
.cta-section { position: relative; padding: 9rem 0 11rem; overflow: hidden; background: #050b14; }
.cta-section::before { position: absolute; inset: 0; content: ""; background-image: linear-gradient(rgba(76,151,212,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(76,151,212,.05) 1px, transparent 1px); background-size: 60px 60px; mask-image: radial-gradient(circle at center, black, transparent 68%); }
.cta-glow { position: absolute; top: 50%; left: 50%; width: 800px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(21,115,224,.23), rgba(15,84,163,.07) 42%, transparent 70%); filter: blur(15px); transform: translate(-50%, -50%); animation: ctaBreathe 8s ease-in-out infinite alternate; }
.contact-layout { position: relative; z-index: 3; display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(4rem, 8vw, 8rem); align-items: start; }
.contact-copy { position: sticky; top: 130px; }.contact-copy > p { max-width: 480px; font-size: .95rem; }.contact-details { display: grid; gap: 22px; margin-top: 2.7rem; }.contact-details div { display: grid; gap: 3px; }.contact-details small { color: #4e6b84; font-size: .52rem; font-weight: 700; letter-spacing: .14em; }.contact-details a, .contact-details span { color: #c0cfdb; font-size: .76rem; }.contact-details a:hover { color: var(--blue-light); }
.contact-form { padding: 34px; border: 1px solid rgba(91,166,221,.2); border-radius: var(--radius-md); background: rgba(8,22,38,.88); box-shadow: var(--shadow); backdrop-filter: blur(8px); }
.form-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.8rem; padding-bottom: 17px; border-bottom: 1px solid var(--line); }.form-heading span { font-family: var(--heading); font-size: .9rem; font-weight: 600; }.form-heading small { color: #526b82; font-size: .55rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 14px; }.form-grid label { display: grid; gap: 7px; }.form-grid label > span { color: #8197aa; font-size: .61rem; font-weight: 600; letter-spacing: .03em; }.field-wide { grid-column: 1 / -1; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; color: #dce8f2; background: rgba(4,13,23,.72); outline: 0; transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); }.form-grid input, .form-grid select { height: 48px; padding: 0 14px; }.form-grid textarea { min-height: 130px; padding: 13px 14px; resize: vertical; }.form-grid input::placeholder, .form-grid textarea::placeholder { color: #3f566b; }.form-grid select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #557087 50%), linear-gradient(135deg, #557087 50%, transparent 50%); background-position: calc(100% - 17px) 21px, calc(100% - 12px) 21px; background-size: 5px 5px; background-repeat: no-repeat; }.form-grid option { color: #dce8f2; background: #091827; }.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color: rgba(70,213,255,.58); background-color: rgba(7,24,41,.9); box-shadow: 0 0 0 3px rgba(41,164,229,.08); }.form-grid [aria-invalid="true"] { border-color: #d86e61; }
.consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 20px; color: #71879b; font-size: .64rem; cursor: pointer; }.consent input { width: 15px; height: 15px; margin-top: 2px; accent-color: var(--blue); }
.form-submit-row { display: flex; gap: 18px; align-items: center; margin-top: 12px; }.form-submit-row small { max-width: 270px; color: #4e657a; font-size: .55rem; line-height: 1.55; }
.form-success { display: flex; gap: 13px; align-items: flex-start; margin-top: 20px; padding: 15px; border: 1px solid rgba(72,216,157,.25); border-radius: 9px; background: rgba(36,144,101,.08); }.form-success[hidden] { display: none; }.form-success i { display: grid; width: 22px; height: 22px; min-width: 22px; place-items: center; border-radius: 50%; color: #61e3a7; background: rgba(69,208,145,.12); font-size: .65rem; font-style: normal; }.form-success div { display: grid; }.form-success strong { color: #bfe4d1; font-size: .7rem; }.form-success span { color: #6f8d7e; font-size: .6rem; }.form-success a { text-decoration: underline; }
.cta-dunes { position: absolute; right: 0; bottom: -2px; left: 0; height: 210px; opacity: .78; }
.cta-dunes span { position: absolute; inset: 0; background: linear-gradient(90deg, #071428, #10437f, #08213f); clip-path: polygon(0 75%, 13% 65%, 26% 43%, 37% 56%, 50% 77%, 65% 68%, 78% 45%, 90% 57%, 100% 47%, 100% 100%, 0 100%); }.cta-dunes span:last-child { top: 60px; background: #050b14; opacity: .6; clip-path: polygon(0 80%, 18% 65%, 31% 75%, 45% 60%, 59% 80%, 76% 63%, 88% 74%, 100% 61%, 100% 100%, 0 100%); }
.site-footer { border-top: 1px solid var(--line); background: #040910; }
.footer-top { display: grid; grid-template-columns: 1fr auto auto; gap: 8rem; padding-top: 4.5rem; padding-bottom: 4.5rem; }.footer-brand p { margin: 8px 0 0 51px; font-size: .7rem; }.footer-links { display: grid; align-content: start; gap: 10px; min-width: 130px; font-size: .72rem; }.footer-links strong { margin-bottom: 7px; color: #4f687f; font-size: .55rem; letter-spacing: .15em; text-transform: uppercase; }.footer-links a, .footer-links span { color: #889bad; }.footer-links a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 1.4rem; padding-bottom: 1.4rem; border-top: 1px solid var(--line); color: #40566a; font-size: .58rem; letter-spacing: .04em; }.footer-bottom a { color: #71879a; }.footer-bottom a span { margin-left: 7px; }

/* Service detail dialog */
.service-dialog { width: min(760px, calc(100% - 32px)); max-height: calc(100dvh - 40px); padding: 0; overflow: auto; border: 1px solid rgba(83,195,246,.27); border-radius: 20px; color: var(--white); background: #081522; box-shadow: 0 40px 120px rgba(0,0,0,.7); }
.service-dialog::backdrop { background: rgba(1,7,13,.78); backdrop-filter: blur(8px); }
.dialog-shell { position: relative; padding: clamp(30px, 6vw, 58px); overflow: hidden; }.dialog-shell::after { position: absolute; top: -100px; right: -100px; width: 320px; height: 320px; border-radius: 50%; content: ""; background: rgba(22,124,255,.12); filter: blur(65px); pointer-events: none; }
.dialog-close { position: absolute; z-index: 3; top: 22px; right: 22px; display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: #91a7ba; background: rgba(255,255,255,.02); font-size: 1.4rem; line-height: 1; transition: color var(--transition), border-color var(--transition), transform var(--transition); }.dialog-close:hover { color: white; border-color: rgba(70,213,255,.4); transform: rotate(5deg); }
.dialog-index { display: block; margin-top: 2.5rem; color: #36546e; font-family: var(--heading); font-size: .65rem; letter-spacing: .16em; }.service-dialog h2 { margin: .6rem 0 1rem; font-size: clamp(2.5rem, 6vw, 4.5rem); }.dialog-lead { max-width: 620px; font-size: .92rem; }.dialog-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }.dialog-columns h3 { color: #d6e3ee; font-size: .75rem; }.dialog-columns ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }.dialog-columns li { color: #8299ad; font-size: .72rem; }.dialog-columns li::before { margin-right: 8px; color: var(--blue-light); content: "→"; }.dialog-footer { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }.dialog-footer p { display: grid; margin: 0; }.dialog-footer small { color: #456179; font-size: .48rem; letter-spacing: .13em; }.dialog-footer p span { color: #9badbc; font-size: .65rem; }

/* Reveal animation */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
[data-delay="1"] { transition-delay: .08s; } [data-delay="2"] { transition-delay: .16s; } [data-delay="3"] { transition-delay: .24s; } [data-delay="4"] { transition-delay: .32s; } [data-delay="5"] { transition-delay: .4s; }
.stagger-group .reveal:nth-child(2) { transition-delay: .08s; }.stagger-group .reveal:nth-child(3) { transition-delay: .16s; }.stagger-group .reveal:nth-child(4) { transition-delay: .24s; }.stagger-group .reveal:nth-child(5) { transition-delay: .32s; }.stagger-group .reveal:nth-child(6) { transition-delay: .4s; }.stagger-group .reveal:nth-child(7) { transition-delay: .48s; }

@keyframes rotate { to { transform: rotate(360deg); } }
@keyframes dash { to { stroke-dashoffset: -200; } }
@keyframes float { 0%,100% { margin-top: 0; } 50% { margin-top: -10px; } }
@keyframes breathe { from { opacity: .65; transform: scale(.95); } to { opacity: 1; transform: scale(1.08); } }
@keyframes corePulse { 0%,100% { transform: scale(.95); opacity: .8; } 50% { transform: scale(1.08); opacity: 1; } }
@keyframes workflowFlow { from { transform: translateX(-100%); } to { transform: translateX(300%); } }
@keyframes ctaBreathe { from { opacity: .65; transform: translate(-50%, -50%) scale(.95); } to { opacity: 1; transform: translate(-50%, -50%) scale(1.08); } }

/* Responsive */
@media (max-width: 1100px) {
  .primary-nav { gap: 1.1rem; }.primary-nav > a { font-size: .72rem; }
  .hero-layout { grid-template-columns: 1fr 440px; gap: 1rem; }.hero-visual { min-height: 540px; }.network-card { top: 10%; }.badge-top { left: -2%; }.badge-bottom { right: 0; }
  .aws-layout { gap: 4rem; }.capability-list { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .container { width: min(calc(100% - 40px), var(--container)); }
  .menu-toggle { position: relative; z-index: 102; display: block; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .primary-nav { position: fixed; z-index: 101; inset: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0; padding: 100px max(30px, 8vw) 50px; background: rgba(5,11,20,.98); opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity var(--transition), visibility var(--transition), transform var(--transition); }
  .primary-nav.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
  .primary-nav > a:not(.button) { width: 100%; padding: 12px 0; border-bottom: 1px solid var(--line); color: #e7edf5; font-family: var(--heading); font-size: clamp(1.5rem, 5vw, 2.4rem); }
  .primary-nav .button { margin-top: 2rem; }
  .hero { padding-top: 120px; }.hero-layout { grid-template-columns: 1fr; }.hero-copy { position: relative; z-index: 9; max-width: 720px; }.hero-visual { min-height: 610px; margin-top: -40px; }.network-card { right: 3%; width: min(78vw, 560px); }.badge-top { left: 9%; }.badge-bottom { right: 8%; }.dune-stack { right: 0; left: 0; }
  .scroll-cue { display: none; }
  .split-heading { grid-template-columns: 1fr; gap: 0; }.split-heading > p { margin-bottom: 0; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .aws-layout { grid-template-columns: 1fr; }.architecture-visual { max-width: 680px; }.aws-copy { grid-row: 1; }
  .assessment-layout { grid-template-columns: 1fr; }.assessment-intro { position: static; max-width: 700px; }.assessment-result { grid-column: 1; }
  .workflow { grid-template-columns: repeat(5, 1fr); }.workflow-arrow { display: none; }.workflow-step > span { display: none; }
  .ai-grid { grid-template-columns: 1fr 1fr; }
  .engagement-grid { grid-template-columns: 1fr; }.engagement-card { min-height: 360px; }
  .technology-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .contact-layout { grid-template-columns: 1fr; }.contact-copy { position: static; max-width: 680px; }
}

@media (max-width: 640px) {
  :root { --section-space: 6rem; }
  .container { width: min(calc(100% - 32px), var(--container)); }
  .nav-wrap { height: 72px; }.brand img { width: 38px; height: 38px; }
  .hero { min-height: auto; padding: 115px 0 50px; }.hero-layout { min-width: 0; min-height: auto; }.hero-copy { min-width: 0; padding-top: 0; }.hero-copy .eyebrow { margin-bottom: 1.3rem; }
  h1 { margin-bottom: 1.3rem; font-size: clamp(2.9rem, 13.3vw, 3.7rem); letter-spacing: -.07em; }.hero-kicker { font-size: 1rem; }.hero-description { font-size: .86rem; }.hero-kicker, .hero-description { max-width: 100%; overflow-wrap: break-word; }.hero-actions { display: grid; grid-template-columns: minmax(0, 1fr); }.hero-actions .button { width: 100%; }.hero-proof { gap: 1rem; }
  .hero-visual { min-height: 440px; margin: 10px -10px 0; }.network-card { top: 6%; right: 0; left: 0; width: 100%; margin: auto; }.orbit-one { width: 450px; height: 450px; }.orbit-two { width: 360px; height: 360px; }.floating-badge { min-width: 0; padding: 10px; }.floating-badge strong { font-size: .57rem; }.badge-top { top: 8%; left: -1%; }.badge-bottom { right: -1%; bottom: 17%; }.dune-stack { bottom: -3%; height: 120px; }.dune { height: 100px; }
  .capability-strip { overflow: hidden; }.capability-track { justify-content: flex-start; animation: marquee 22s linear infinite; }
  .section-heading { margin-bottom: 3.2rem; } h2 { font-size: clamp(2.5rem, 12vw, 3.5rem); }.split-heading { gap: .4rem; }.split-heading > p, .centered > p { font-size: .9rem; }
  .service-grid { grid-template-columns: 1fr; }.service-card { min-height: 320px; }
  .architecture-visual { margin: 0 -8px; }.arch-node i { width: 34px; height: 34px; }.arch-node i::after { inset: 11px; }.arch-node { width: 53px; font-size: .43rem; }.arch-metric { display: none; }
  .capability-list { gap: 10px; }.capability-list li { font-size: .73rem; }
  .aws-actions { align-items: flex-start; flex-direction: column; gap: 1.1rem; }
  .assessment-layout { gap: 3rem; }.assessment-tool { padding: 22px 18px; }.choice-row { grid-template-columns: 1fr; }.choice-row label span { justify-content: flex-start; padding-left: 14px; }.assessment-result { grid-template-columns: 1fr; padding: 28px 22px; }.score-ring { width: 135px; height: 135px; }.score-ring::before { width: 113px; height: 113px; }.result-buttons { display: grid; grid-template-columns: 1fr; }.result-buttons .button { width: 100%; }
  .workflow { grid-template-columns: 1fr; gap: 0; padding: 22px; }.workflow-progress { top: 8%; bottom: 8%; left: 50%; width: 1px; height: auto; }.workflow-progress::after { width: 100%; height: 35%; animation: workflowFlowY 5s ease-in-out infinite; }.workflow-step { grid-template-columns: 55px 1fr; grid-template-rows: auto auto; width: 100%; padding: 15px 0; justify-items: start; text-align: left; }.workflow-icon { grid-row: 1 / 3; margin: 0 16px 0 0; }.workflow-step strong { align-self: end; }.workflow-step small { align-self: start; }
  .ai-grid { grid-template-columns: 1fr; }.ai-card { min-height: 230px; }.ai-card > span { margin-bottom: 3rem; }
  .principles { grid-template-columns: 1fr; }.principle { grid-template-columns: 70px 1fr; min-height: 180px; padding: 28px 20px; }.principle > span { font-size: 1.8rem; }
  .process-heading { margin-bottom: 3.5rem; }.process-list { grid-template-columns: 1fr; gap: 0; padding-left: 32px; }.process-line { top: 0; bottom: 0; left: 10px; width: 1px; height: auto; }.process-line span { width: 1px; height: 100%; transform: scaleY(0); transform-origin: top; }.process-list.is-visible .process-line span { transform: scaleY(1); }.process-step { padding: 0 0 3.2rem 20px; }.process-step:last-child { padding-bottom: 0; }.step-dot { top: 0; left: -33px; }
  .engagement-card { min-height: 390px; padding: 28px 24px; }.engagement-card a { right: 24px; left: 24px; }
  .technology-section { padding: 4.5rem 0; }.tech-badges { gap: 7px; }
  .cta-section { padding: 7rem 0 10rem; }.contact-copy h2 { font-size: clamp(3rem, 14vw, 4.4rem); }.contact-copy > p { font-size: .88rem; }.contact-form { padding: 24px 18px; }.form-heading { display: grid; gap: 5px; }.form-grid { grid-template-columns: 1fr; }.field-wide { grid-column: 1; }.form-submit-row { align-items: stretch; flex-direction: column; }.form-submit-row .button { width: 100%; }.form-submit-row small { max-width: none; }
  .dialog-columns { grid-template-columns: 1fr; }.dialog-footer { align-items: stretch; flex-direction: column; }.dialog-footer .button { width: 100%; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 3rem 2rem; }.footer-brand { grid-column: 1 / -1; }.footer-bottom { flex-direction: column; gap: .7rem; }
}

@keyframes marquee { to { transform: translateX(-55%); } }
@keyframes workflowFlowY { from { transform: translateY(-100%); } to { transform: translateY(300%); } }

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