/* Luminous depth, an intact logo, and a continuous scroll-led connection. */
:root {
  --bg: #132b45;
  --panel: #1b3653;
  --text: #f3f7ff;
  --muted: #bdccdf;
  --blue: #91c6ff;
  --gold: #ffb14e;
  --line: rgba(168, 204, 238, .24);
  --atmosphere-base: 19, 43, 69;
  --atmosphere-light: 44, 109, 166;
  --atmosphere-accent: 39, 107, 130;
}
body { background: rgb(var(--atmosphere-base)); isolation: isolate; }
.site-atmosphere {
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(ellipse at 83% 20%, rgba(var(--atmosphere-light), .62), transparent 62%),
    radial-gradient(ellipse at 3% 84%, rgba(var(--atmosphere-accent), .34), transparent 58%),
    linear-gradient(135deg, rgba(210, 231, 255, .025), transparent 50%),
    rgb(var(--atmosphere-base));
}
.site-atmosphere::before {
  content: ''; position: absolute; inset: 0; opacity: .27;
  background-image: linear-gradient(rgba(179, 215, 255, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(179, 215, 255, .08) 1px, transparent 1px);
  background-size: 88px 88px;
  mask-image: radial-gradient(ellipse at 70% 20%, #000, transparent 78%);
}
.atmosphere-layer {
  position: absolute; inset: 0; opacity: 0;
  background:
    radial-gradient(ellipse at 83% 20%, rgba(var(--layer-light), .62), transparent 62%),
    radial-gradient(ellipse at 3% 84%, rgba(var(--layer-accent), .34), transparent 58%),
    rgb(var(--layer-base));
}
.site-atmosphere::before,.site-atmosphere::after { z-index: 1; }
.site-atmosphere::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(105deg, transparent 55%, rgba(138, 195, 235, .055) 55.1%, transparent 72%);
}
.site-header { background: rgba(16, 35, 56, .78); box-shadow: 0 5px 32px rgba(6, 21, 37, .10); }
.mobile-nav { background: #19324f; }
.hero-visual { background: radial-gradient(ellipse at 52% 48%, rgba(101, 171, 238, .12), transparent 68%); }
.hero-description, .hero-note, .hero-bottom, .orbit-caption { color: #c0d0e4; }
h2 span { color: #a9c3df; }
.hero h1 { text-shadow: 0 4px 45px rgba(6, 28, 60, .1); }
.model-stage { transform-origin: 50% 58%; }
.brand-model { --poster-color: transparent; }
.nav-contact { background: rgba(111, 171, 216, .08); border-color: #6684a5; }
.hero-motion, .motion-toggle { background: rgba(24, 48, 73, .9); border-color: #6684a5; color: #deebfa; }
.capability-band { background: rgba(33, 64, 91, .55); backdrop-filter: blur(14px); }
.capability-band>div { color: #d1e0ef; }
.service-card {
  background: linear-gradient(145deg, rgba(40, 76, 104, .88), rgba(22, 48, 72, .92));
  border-color: rgba(154, 198, 232, .30);
  box-shadow: inset 0 1px 0 rgba(210, 234, 255, .075), 0 18px 55px rgba(5, 23, 38, .10);
}
.service-card:hover { background: linear-gradient(145deg, rgba(47, 87, 119, .94), rgba(24, 56, 83, .97)); border-color: #729aba; }
.service-featured { background: radial-gradient(ellipse at 85% 65%, rgba(73, 143, 186, .23), transparent 70%), linear-gradient(145deg, rgba(35, 76, 110, .94), rgba(24, 55, 80, .96)); }
.service-card p, .process-list p, .faq-list details p { color: #c0d0e1; }
.card-tags span { background: rgba(64, 106, 139, .38); border-color: #5b7898; color: #d7e5f5; }
.service-number, .diagram-label, .network-diagram small, .process-label, .brand-caption, .about-signoff>span:last-child { color: #b8d0e8; }
.service-detail summary { color: #e0ebf8; }
.approach-section { background: linear-gradient(160deg, rgba(52, 99, 113, .18), rgba(19, 61, 74, .12)); }
.process-number { background: #204a5c; border-color: #81b2c3; box-shadow: 0 0 0 12px rgba(25, 63, 78, .8); }
.about-brand { background: radial-gradient(ellipse at 45% 55%, rgba(115, 131, 215, .24), transparent 67%), rgba(31, 46, 82, .84); border-color: #607395; box-shadow: inset 0 1px 0 #c8dfff14, 0 24px 70px #10163122; }
.person-monogram { background: #294365; border-color: #738cb0; }
.contact-wrap { background: radial-gradient(ellipse at 8% 84%, rgba(166, 118, 75, .13), transparent 62%), rgba(28, 34, 55, .18); }
.inquiry-panel { background: linear-gradient(145deg, rgba(53, 67, 92, .92), rgba(31, 47, 70, .96)); border-color: #7389a2; box-shadow: inset 0 1px 0 #dce8ff18, 0 24px 70px #14253f20; }
.field input,.field textarea,.field select { background: #1b3049; border-color: #849bb6; }
.field input::placeholder,.field textarea::placeholder { color: #acbfd8; }
.field label { color: #e0eafa; }
.form-intro,.field small,.field label span,.form-note,.contact-links small,.person>div span,.footer-lower { color: #bccfe6; }
.email-preview pre { background: #1b3049; border-color: #7189a8; }
.full-footer { position: relative; background: transparent; }
#main { position: relative; isolation: isolate; }
.network-flow { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; overflow: visible; pointer-events: none; opacity: calc(var(--flow-opacity, 1) * var(--flow-contrast, 1)); }
.flow-track { fill: none; stroke: rgba(143, 188, 216, .075); stroke-width: 1; }
.flow-line { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.flow-core { stroke-width: 2; }
.flow-aura { stroke-width: 13; opacity: .11; }
.flow-secondary { stroke-width: 1.2; opacity: .48; }
.flow-branch { fill: none; stroke: #7ec9e7; stroke-width: 1; opacity: .3; }
.flow-terminal { fill: #14374d; stroke: #9acbe5; stroke-width: 1; }
.flow-head { fill: #ffc36c; }
.flow-head-halo { fill: #ffb659; opacity: .12; }
.flow-head-secondary { fill: #a5e3f1; }
.motion-paused .flow-head,.motion-paused .flow-head-halo,.motion-paused .flow-head-secondary { display: none; }
@media (max-width: 760px) {
  .site-atmosphere::before { background-size: 62px 62px; opacity: .18; }
  .site-header { background: rgba(17, 39, 61, .94); }
  .flow-core { stroke-width: 1.4; }
  .flow-aura { stroke-width: 6; opacity: .08; }
  .flow-secondary { opacity: .35; }
  .flow-branch { opacity: .25; }
  .process-number { box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
  .model-stage { transform: none !important; }
  .network-flow .flow-head,.network-flow .flow-head-halo,.network-flow .flow-head-secondary { display: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .site-header { background: #17314c; backdrop-filter: none; }
  .service-card { background: #244761; }
  .inquiry-panel { background: #2d4260; }
  .capability-band { background: #274862; backdrop-filter: none; }
}
@media (prefers-contrast: more) {
  :root { --muted: #edf5ff; --line: #a7c5df; }
  .service-card p,.process-list p,.faq-list details p,.form-note,.hero-description { color: #edf5ff; }
  .network-flow { --flow-contrast: .25; }
}

/* A pale sky at the start, blending into the blue, teal and violet atmosphere. */
.home-page .hero::before {
  content: ''; position: absolute; top: -100px; bottom: -2px; left: 50%;
  width: 100vw; transform: translateX(-50%); z-index: -2; pointer-events: none;
  background: radial-gradient(ellipse at 18% 8%, #fff 0%, #f4faffcc 22%, transparent 65%),
    linear-gradient(155deg, #e5f3ff 0%, #c6e0f3 44%, #8ab5d1 72%, #3a7092 92%, #285a79 100%);
}
.home-page .hero { color: #153953; }
.home-page .hero h1 { color: #102f4a; text-shadow: none; }
.home-page .hero h1 span { color: #1967ac; }
.home-page .hero .eyebrow,.home-page .hero .text-link { color: #245477; }
.home-page .hero .hero-description,.home-page .hero .hero-note { color: #304f66; }
.home-page .hero .eyebrow .line { background: #477b9f; }
.home-page .hero .hero-bottom { color: #edf7ff; }
.home-page .hero .hero-bottom a span { color: #edf7ff; }
.home-page .orbit-caption-top { color: #315977; }
.home-page .orbit-caption-bottom { color: #eff7ff; }
.home-page .hero-visual { background: radial-gradient(ellipse at 55% 48%, #3a8ae519, transparent 67%); }
.home-page .site-header { background: rgba(242, 249, 255, .9); color: #183d5c; }
.home-page .site-header .brand-sub,.home-page .desktop-nav { color: #3b5b74; }
.home-page .site-header .nav-contact { border-color: #7396b0; background: #ffffff60; }
.home-page .site-header .nav-contact:hover { background: #d2e7f7; }
.home-page .site-header .menu-toggle span { background: currentColor; }
.home-page .site-header .mobile-nav { background: #edf6ff; }
.home-page .site-header.header-deep { color: #edf7ff; background: rgba(22, 45, 66, .94); }
.home-page .header-deep .brand-sub,.home-page .header-deep .desktop-nav { color: #c4d8ea; }
.home-page .header-deep .nav-contact { background: #263f5866; }
.home-page .header-deep .nav-contact:hover { background: #315675; }
.home-page .header-deep .mobile-nav { background: #1b3953; }

/* One vertical route passes through the four physical stations. */
.approach-section { background: transparent; }
.approach-layout { display: grid; grid-template-columns: .88fr 1.12fr; gap: clamp(40px, 6vw, 100px); align-items: start; }
.approach-intro { position: sticky; top: 155px; padding-top: 18px; }
.approach-intro h2 { font-size: clamp(40px, 4vw, 58px); }
.approach-intro>p:not(.eyebrow) { max-width: 420px; margin: 28px 0 20px; color: #c0d4e3; font-size: 16px; line-height: 1.8; }
.approach-intro .text-link { color: #f1c285; }
.process-list { display: flex; flex-direction: column; gap: 74px; padding: 0; margin: 0; }
.process-list::before { display: block; width: 1px; height: auto; top: 63px; bottom: 170px; left: 27px; right: auto; background: #9bd4db30; }
.flow-ready .process-list::before { opacity: 0; }
.process-list li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 29px; min-height: 255px; align-items: start; z-index: auto; }
.process-number { position: relative; z-index: 2; width: 56px; height: 56px; margin: 38px 0 0; border: 1px solid #709ea7; background: #204853; color: #cae4e9; font-size: 18px; font-weight: 550; box-shadow: 0 0 0 9px #28596144; }
.process-card { position: relative; padding: 30px 32px; border-radius: 20px; border: 1px solid #88b8c340; background: linear-gradient(130deg, #3b7383e6, #224b5ce8); box-shadow: inset 0 1px 0 #d1f4ff0d, 0 20px 55px #071e2720; }
.process-card::before { content: ''; position: absolute; width: 30px; left: -30px; top: 65px; height: 1px; background: #87b7c04d; }
.process-card-top { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 17px; }
.process-card-top .icon { width: 25px; height: 25px; color: #b6d8e5; }
.process-label { font-size: 12px; letter-spacing: .12em; color: #c0dce6; }
.process-list h3 { font-size: clamp(30px, 3vw, 39px); line-height: 1.15; margin: 0 0 16px; letter-spacing: -.035em; }
.process-list p { font-size: 16px; line-height: 1.75; color: #d0e0ec; margin: 0 0 24px; }
.process-outcome { display: flex; gap: 8px 16px; flex-wrap: wrap; border-top: 1px solid #a3d5df2b; padding-top: 18px; color: #c2dce6; font-size: 13px; }
.process-outcome span+span::before { content: '·'; margin-right: 16px; color: #7fcada; }
.process-list li.is-reached .process-number { color: #17394b; background: #ffc273; border-color: #ffcf88; box-shadow: 0 0 0 8px #ffbe5f12, 0 0 25px #ffb65e2e; }
.process-list li.is-reached .process-card::before { background: #ffc273; }
.process-list li.is-current .process-card { border-color: #e8bd7899; background: linear-gradient(130deg, #417d8ceb, #285365f2); box-shadow: inset 0 1px 0 #f4d7a329, 0 20px 55px #071e2729; }
.process-list li.is-current .process-card-top .icon { color: #ffd28e; }
.flow-aura { stroke-width: 5; opacity: .13; }
.flow-core { stroke-width: 1.8; }
.flow-secondary { stroke-width: 1; opacity: .55; }
.flow-track { stroke: #a1d2e81c; }
.flow-particle { fill: #ffd190; }
.flow-particle-cyan { fill: #bceafa; }
.flow-particle-glow { fill: #ffbb60; }
.motion-paused .flow-particle,.motion-paused .flow-particle-cyan,.motion-paused .flow-particle-glow { display: none; }
@media (max-width: 1000px) {
  .approach-layout { grid-template-columns: .85fr 1.15fr; gap: 35px; }
  .process-list li { gap: 18px; }
  .process-card { padding: 26px 24px; }
  .process-card::before { width: 19px; left: -19px; }
}
@media (max-width: 760px) {
  .home-page .hero::before { background: radial-gradient(ellipse at 5% 3%, #fff 0%, transparent 58%), linear-gradient(155deg, #e5f3ff, #c8e4f7 36%, #83b1ce 70%, #285a79 100%); }
  .approach-layout { grid-template-columns: minmax(0, 1fr); gap: 58px; }
  .approach-intro { position: static; padding: 0; }
  .approach-intro h2 { font-size: clamp(37px, 8vw, 48px); }
  .process-list { gap: 46px; }
  .process-list li { grid-template-columns: 42px minmax(0, 1fr); gap: 17px; min-height: 270px; }
  .process-number { width: 42px; height: 42px; font-size: 16px; margin-top: 33px; box-shadow: none; }
  .process-list::before { left: 20px; top: 54px; bottom: 210px; }
  .process-card { padding: 24px 22px; border-radius: 16px; }
  .process-card::before { width: 18px; left: -18px; top: 53px; }
  .process-list h3 { font-size: 32px; }
  .process-list p { font-size: 16px; }
  .process-outcome { gap: 7px 12px; }
  .process-outcome span+span::before { margin-right: 12px; }
  .flow-aura { stroke-width: 4; }
}
@media (max-width: 390px) {
  .process-list li { gap: 12px; grid-template-columns: 36px minmax(0, 1fr); }
  .process-number { width: 36px; height: 36px; margin-top: 31px; }
  .process-card { padding: 20px 17px; }
  .process-card::before { width: 13px; left: -13px; top: 48px; }
  .process-list::before { left: 17px; }
  .process-label { font-size: 12px; letter-spacing: .06em; }
}
@media (prefers-reduced-transparency: reduce) {
  .home-page .site-header { background: #edf6ff; }
  .home-page .site-header.header-deep { background: #162d42; }
  .process-card { background: #2b5969; }
}
@media (prefers-contrast: more) {
  .home-page .hero .hero-description { color: #18364c; }
  .process-card { border-color: #b8dfe7; }
}

/* Light settles into a station rather than switching on at a hard threshold. */
.process-number { transition: color .85s ease, background-color 1s ease, border-color 1s ease, box-shadow 1.2s ease; }
.process-card { transition: border-color 1.1s ease, box-shadow 1.1s ease; }
.process-card::before { transition: background-color .9s ease; }
.process-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; background: radial-gradient(ellipse at 0% 30%, #ecc28926, transparent 75%); transition: opacity 1.25s ease; }
.process-card-top .icon { transition: color 1s ease; }
.process-list li.is-current .process-card { background: linear-gradient(130deg, #3b7383e6, #224b5ce8); }
.process-list li.is-current .process-card::after { opacity: 1; }
.motion-paused .process-number,.motion-paused .process-card,.motion-paused .process-card::before,.motion-paused .process-card::after,.motion-paused .process-card-top .icon { transition: none; }

/* Open service rows let the content and changing atmosphere carry the section. */
.services-list { border-top: 1px solid #b6d7ec47; }
.service-row { display: grid; grid-template-columns: 65px minmax(0, .92fr) minmax(0, 1.08fr); align-items: start; gap: clamp(28px, 4.5vw, 72px); padding: 54px 0 50px; border-bottom: 1px solid #b6d7ec3b; position: relative; }
.service-index { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; color: #a9d6f0; padding-top: 5px; }
.service-index>span { font-size: 13px; font-family: ui-monospace, SFMono-Regular, monospace; color: #b8d5e7; }
.service-index .icon { width: 29px; height: 29px; stroke-width: 1.2; }
.service-row h3 { font-size: clamp(29px, 3.2vw, 43px); font-weight: 500; letter-spacing: -.035em; line-height: 1.17; margin: 0; max-width: 360px; }
.service-body>p { margin: 0 0 22px; font-size: 17px; line-height: 1.75; max-width: 510px; color: #cadce9; }
.service-body .text-link { color: #f1c98d; }
.service-body .service-detail { border-top: 0; max-width: 510px; }
.service-body .service-detail summary { padding-top: 0; min-height: 44px; font-size: 14px; color: #f1c98d; }
.service-body .service-detail>div p { font-size: 16px; color: #c8dce9; line-height: 1.75; margin-bottom: 14px; }
.service-body .service-detail>div { padding-top: 18px; }
.services-enhanced .service-row { opacity: 0; transform: translateY(24px); transition: opacity 1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1); }
.services-enhanced .service-row.is-visible { opacity: 1; transform: none; }
.motion-paused .service-row { opacity: 1; transform: none; transition: none; }
@media (max-width: 900px) {
  .service-row { grid-template-columns: 42px minmax(0,.9fr) minmax(0,1.1fr); gap: 30px; padding-block: 43px; }
  .service-row h3 { font-size: 31px; }
  .service-body>p { font-size: 16px; }
}
@media (max-width: 760px) {
  .service-row { grid-template-columns: 30px minmax(0, 1fr); gap: 19px 22px; padding-block: 36px 34px; }
  .service-index { grid-row: span 2; gap: 20px; }
  .service-index .icon { width: 24px; height: 24px; }
  .service-row h3 { font-size: clamp(28px, 6.8vw, 36px); max-width: none; }
  .service-body { grid-column: 2; min-width: 0; }
  .service-body>p { margin-bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .services-enhanced .service-row { opacity: 1; transform: none; transition: none; }
  .process-number,.process-card,.process-card::before,.process-card::after,.process-card-top .icon { transition: none; }
  .flow-particle,.flow-particle-cyan,.flow-particle-glow { display: none; }
}

/* A dedicated right-hand signal lane keeps curves clear of content and controls. */
.hero-tools { margin-top: 22px; }
.home-page .hero-tools .hero-motion { background: #e8f3fcaa; color: #254e6b; border-color: #6d94af; }
.home-page .hero-tools .hero-motion:hover { background: #f3faff; }
.hero-bottom { justify-content: flex-start; gap: 42px; }
.capability-band { width: min(1320px, calc(100% - 104px)); margin-inline: auto; border: 1px solid #bbdce82e; border-radius: 16px; }
.capability-band>.section-wrap { width: calc(100% - 64px); }
.process-list li { grid-template-columns: minmax(0, 1fr) 56px; }
.process-number { grid-column: 2; grid-row: 1; }
.process-card { grid-column: 1; grid-row: 1; }
.process-card::before { left: auto; right: -30px; }
.process-list::before { left: auto; right: 27px; }
.service-index { padding-top: 4px; }
.service-expanded { max-width: 510px; padding-top: 5px; }
.service-expanded>p { color: #bed4e4; font-size: 16px; line-height: 1.8; margin-bottom: 18px; }
.services-enhanced .service-expanded { opacity: 0; transform: translateY(13px); transition: opacity 1.1s ease .18s, transform 1.2s cubic-bezier(.2,.7,.2,1) .18s; }
.services-enhanced .service-row.is-visible .service-expanded { opacity: 1; transform: none; }
.flow-head-halo { opacity: .08; }
.hero-signals { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; overflow: visible; }
.earth-signal-trail { fill: none; stroke: #ffd19a; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.earth-signal-head { fill: #ffe0ac; }
.earth-signal-halo { fill: #ff9f38; }
.motion-paused .hero-signals { display: none; }
@media (max-width: 1000px) { .process-card::before { right: -19px; } }
@media (max-width: 760px) {
  .capability-band { width: calc(100% - 70px); margin-left: 20px; margin-right: 50px; border-radius: 12px; }
  .capability-band>.section-wrap { width: calc(100% - 34px); column-gap: 15px; }
  .hero-bottom a { margin-left: 0; }
  .process-list li { grid-template-columns: minmax(0, 1fr) 42px; }
  .process-card::before { right: -18px; }
  .process-list::before { right: 20px; }
}
@media (max-width: 390px) {
  .process-list li { grid-template-columns: minmax(0, 1fr) 36px; }
  .process-card::before { right: -13px; }
  .process-list::before { right: 17px; }
  .capability-band>div { font-size: 11px; letter-spacing: .025em; }
}
.motion-paused .service-expanded { opacity: 1; transform: none; transition: none; }
@media (prefers-reduced-motion: reduce) {
  .services-enhanced .service-expanded { opacity: 1; transform: none; transition: none; }
  .hero-signals { display: none; }
}

/* Warm light dissolves through the opening; no opaque edge ends at the hero. */
.home-page .hero::before {
  top: -110px; bottom: -360px;
  background: radial-gradient(ellipse at 12% 0%, #ffd2a099 0%, #f2b98244 30%, transparent 64%),
    linear-gradient(180deg, #e6ad7e 0%, #d8aa87ed 20%, #91adb1cc 43%, #4e87a785 66%, #28577633 84%, #28577600 100%);
}
.home-page .site-header { background: rgba(230, 173, 126, .78); box-shadow: none; }
.home-page .site-header { transition: background-color .55s ease, color .55s ease; }
.home-page .site-header .mobile-nav { background: #e7b48c; }
.home-page .site-header .nav-contact { background: #fff3df24; }
.home-page .site-header .nav-contact:hover { background: #f8d2aa; }
.home-page .site-header.header-deep .mobile-nav { background: #1b3953; }
.home-page .site-header.header-deep .nav-contact:hover { background: #315675; }
.home-page .hero .hero-description,.home-page .hero .hero-note { color: #23435a; }
.home-page .hero-tools .hero-motion { background: #f3f9ff99; color: #234860; border-color: #6d94af; }
.home-page .hero-tools .hero-motion:hover { background: #f3faff; }
.home-page .hero { border: 0; }
.about-section { grid-template-columns: .9fr 1.1fr; align-items: start; gap: clamp(48px, 7vw, 112px); }
.about-intro h2 { font-size: clamp(40px, 4.2vw, 58px); line-height: 1.08; }
.about-established { color: #c2d4e8; font-size: 14px; margin: 26px 0 0; letter-spacing: .025em; }
.about-copy { padding-top: 45px; }
.about-copy>p:not(.eyebrow) { font-size: 17px; line-height: 1.85; }
.about-copy .person { margin-top: 32px; }
@media (max-width: 760px) {
  .home-page .hero::before { bottom: -280px; }
  .about-section { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .about-intro h2 { font-size: clamp(40px, 9vw, 52px); }
  .about-copy { padding: 0; }
}
@media (prefers-reduced-transparency: reduce) {
  .home-page .site-header { background: #e6ad7e; }
  .home-page .site-header.header-deep { background: #162d42; }
}


/* A white navigation surface becomes blue as the opening moves underneath. */
.home-page .site-header,.home-page .site-header.header-deep {
  background: var(--header-bg, rgba(246,250,253,.97)); color: var(--header-ink, #183d5c);
  box-shadow: 0 6px 30px #132c4510; transition: none;
}
.home-page .site-header .brand-sub,.home-page .site-header .desktop-nav { color: inherit; }
.home-page .site-header .mobile-nav,.home-page .site-header.header-deep .mobile-nav { background: var(--header-bg, #f6fafd); color: inherit; }
.site-header .nav-contact { justify-content: center; text-align: center; min-width: 140px; }
.home-page .site-header .nav-contact,.home-page .site-header.header-deep .nav-contact {
  color: #f7fbff; background: #245a80; border-color: #477ba1; justify-content: center;
}
.home-page .site-header .nav-contact:hover,.home-page .site-header.header-deep .nav-contact:hover { background: #326f9b; }
.hero-bottom { justify-content: space-between; gap: 28px; }
.hero-bottom a { margin-left: auto; justify-content: flex-end; text-align: right; }

/* The introduction stays in view while the five connected chapters pass it. */
#solutions { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.45fr); gap: 0 clamp(48px,7vw,108px); align-items: start; }
.solutions-intro { position: sticky; top: 140px; display: block; margin-bottom: 0; padding-bottom: 24px; }
.solutions-intro h2 { font-size: clamp(36px,3.65vw,53px); }
.solutions-intro>p { width: auto; max-width: 340px; margin-top: 30px; line-height: 1.8; }
.solutions-depth { width: min(100%,370px); margin: 30px -12px 0; opacity: .6; transform: translate3d(0,var(--depth-shift,0px),0); }
.solutions-depth svg { width: 100%; overflow: visible; stroke: #84b9d2; stroke-width: 1; }
.depth-back { opacity: .35; transform: translateY(var(--plane-shift,0px)); }
.depth-front { stroke-width: 1.4; }
.depth-front circle,.depth-signal { stroke: #ffc177; }
.depth-front circle { fill: #ffbd70; }
.services-list { border: 0; min-width: 0; }
.service-row { display: grid; grid-template-columns: minmax(0,1fr) 74px; align-items: start; column-gap: clamp(24px,3vw,48px); padding: 70px 0 80px; min-height: 540px; border-bottom: 1px solid #b6d7ec24; opacity: 1; transform: none; transition: none; }
.service-row:first-child { padding-top: 56px; }
.service-copy { min-width: 0; }
.service-row h3 { font-size: clamp(29px,3vw,43px); max-width: 430px; margin: 0 0 30px; color: var(--service-title,#d8e6f1); transform: translate3d(0,var(--title-shift,0px),0); }
.service-body { min-width: 0; transform: translate3d(0,calc(var(--copy-shift,0px) + var(--reveal-offset,0px)),0); }
.service-body>p { font-size: 17px; }
.service-expanded,.services-enhanced .service-expanded { opacity: 1; transform: none; transition: none; }
.service-index { grid-column: 2; grid-row: 1; width: 74px; height: 74px; padding: 0; display: grid; place-items: center; position: relative; border: 1px solid var(--service-border,#7ea9c575); border-radius: 50%; color: var(--service-title,#a2c4dc); background: #1a4057; }
.service-index::before { content: ''; position: absolute; inset: -19px; border-radius: 50%; background: radial-gradient(circle,#ffb75d55,transparent 70%); opacity: var(--service-charge,0); z-index: -1; }
.service-index::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(circle,#ffba572e,transparent 85%); opacity: var(--service-charge,0); pointer-events: none; }
.service-index .icon { width: 31px; height: 31px; stroke-width: 1.4; }
.solutions-enhanced .service-body { opacity: var(--service-reveal,0); }
.solutions-enhanced .service-row:not(.is-revealed) .service-body { pointer-events: none; }
.solutions-enhanced .service-row:focus-within .service-body { opacity: 1; pointer-events: auto; transform: none; }
.solutions-foot { grid-column: 2; padding-top: 38px; }
.solutions-foot p { margin-bottom: 8px; }
.flow-merge-glow { fill: #ffae42; }
.flow-merge-particle { fill: #ffe2b7; }
@media (min-width: 1500px) { .service-row { min-height: 600px; } }
@media (max-width: 1100px) {
  #solutions { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); column-gap: 40px; }
  .service-row { grid-template-columns: minmax(0,1fr) 62px; column-gap: 24px; min-height: 550px; }
  .service-index { width: 62px; height: 62px; }
  .solutions-intro h2 { font-size: 36px; }
}
@media (max-width: 760px) {
  .hero-bottom { align-items: flex-end; gap: 15px; }
  .hero-bottom>span { max-width: 44%; }
  .hero-bottom a { margin-left: auto; max-width: 52%; gap: 10px; }
  #solutions { display: block; }
  .solutions-intro { position: relative; top: auto; margin-bottom: 22px; padding-bottom: 0; }
  .solutions-intro h2 { font-size: clamp(38px,9vw,54px); }
  .solutions-intro>p { max-width: 430px; }
  .solutions-depth { width: 210px; margin: 14px 0 0 auto; height: 140px; }
  .service-row,.service-row:first-child { grid-template-columns: minmax(0,1fr) 54px; column-gap: 25px; row-gap: 0; padding: 52px 0 62px; min-height: 480px; }
  .service-index { width: 54px; height: 54px; grid-row: 1; }
  .service-index .icon { width: 25px; height: 25px; }
  .service-row h3 { font-size: clamp(27px,6.8vw,37px); margin-bottom: 24px; }
  .service-body { grid-column: auto; }
  .service-body>p,.service-expanded>p { font-size: 16px; }
  .service-body .text-link { font-size: 13px; gap: 8px; }
}
.motion-paused .service-body { opacity: 1 !important; transform: none; pointer-events: auto !important; }
.motion-paused .service-row h3,.motion-paused .solutions-depth,.motion-paused .depth-back { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .solutions-enhanced .service-body { opacity: 1; transform: none; pointer-events: auto; }
  .service-row h3,.solutions-depth,.depth-back { transform: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .home-page .site-header,.home-page .site-header.header-deep { background: var(--header-solid,#f6fafd); }
}

/* Parallax stays inside reserved art space and cannot cross the introduction. */
.solutions-depth { height: 235px; overflow: hidden; transform: none; }
.solutions-depth svg { transform: translate3d(0,var(--depth-shift,0px),0); }
@media (max-width: 760px) { .solutions-depth { height: 140px; } }
.motion-paused .solutions-depth svg { transform: none; }
@media (prefers-reduced-motion: reduce) { .solutions-depth svg { transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .solutions-enhanced .service-row:not(.is-revealed) .service-body { pointer-events: auto; }
}

/* Launch refinement: shorter reading paths, quiet surfaces and usable controls. */
.site-atmosphere::after { display: none; }
.home-page .site-header,.home-page .site-header.header-deep { backdrop-filter: none; box-shadow: none; }
.home-page .hero::before { display: none; }
.home-page #main::before { content: ''; position: absolute; left: 0; right: 0; top: -110px; height: calc(var(--hero-height, 850px) + 470px); z-index: -2; pointer-events: none; background: radial-gradient(ellipse at 12% 0%, #ffffffcc 0%, #eef8ff66 30%, transparent 64%), linear-gradient(180deg, #f8fbff 0%, #e8f3fa 20%, #b9d7e7ed 43%, #669ab9b3 66%, #28577640 84%, #28577600 100%); }
.contact-wrap { background: none; }
.home-page h1 { letter-spacing: -.045em; }
.home-page h2 { letter-spacing: -.04em; }
.desktop-nav a:hover { color: inherit; text-decoration: underline; text-underline-offset: 7px; }
.hero-phone { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; color: #153953; font-size: 14px; line-height: 1.35; }
.hero-phone .icon { width: 22px; height: 22px; }
.hero-phone>span>span { display: block; font-size: 16px; font-weight: 600; margin-top: 3px; }
.hero-phone:hover>span>span { text-decoration: underline; text-underline-offset: 4px; }
.hero-tools { margin-top: 24px; }
.hero-tools .hero-motion { min-height: 44px; font-size: 13px; }
.hero-actions { flex-wrap: wrap; }
.hero-bottom a { min-height: 44px; }
.approach-section,.contact-wrap { border: 0; }
.service-row,.service-row:first-child { padding: 56px 0 58px; min-height: 370px; }
.service-row h3 { margin-bottom: 23px; }
.service-body .text-link { min-height: 44px; font-size: 15px; text-decoration: underline; text-decoration-color: #f1c98d88; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.service-body .text-link:hover { text-decoration-color: currentColor; }
.process-list { gap: 30px; }
.process-list li { min-height: 205px; }
.process-number { margin-top: 15px; }
.process-card,.process-list li.is-current .process-card { padding: 19px 0 25px; border: 0; border-radius: 0; background: none; box-shadow: none; }
.process-card::before,.process-card::after { display: none; }
.process-list h3 { transition: color 1.1s ease; }
.process-list li.is-reached h3 { color: #ffcc88; }
.process-list p { max-width: 420px; margin-bottom: 0; }
.faq-list summary { font-size: 17px; }
.faq-list details p { font-size: 16px; }
.disclosure-chevron { width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); flex-shrink: 0; margin-right: 4px; transition: transform .2s ease; }
.faq-list details[open] summary>.disclosure-chevron { transform: rotate(225deg); }
.contact-grid { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(40px,6vw,90px); }
.contact-copy { position: sticky; top: 140px; }
.inquiry-panel { min-width: 0; }
.inquiry-panel fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.inquiry-panel legend { font-size: 15px; font-weight: 600; color: #f4f8ff; margin-bottom: 17px; padding: 0; }
.inquiry-panel fieldset+fieldset { margin-top: 14px; }
.form-intro { font-size: 15px; line-height: 1.65; }
.inquiry-panel:has(.email-preview:not([hidden]))>h3,.inquiry-panel:has(.email-preview:not([hidden]))>.form-intro { display: none; }
.form-submit { justify-content: center; text-align: center; min-height: 52px; }
.field label,.field label span { font-size: 14px; }
.field small,.form-note { font-size: 13px; }
.field textarea { min-height: 128px; }
.draft-actions .button,.draft-actions .text-button { min-height: 44px; font-size: 14px; }
#draft-title { scroll-margin-top: 135px; }
.back-top { width: auto; min-height: 44px; padding-inline: 16px; border-radius: 8px; white-space: nowrap; font-size: 13px; }
.footer-upper nav,.footer-lower { font-size: 14px; }
.footer-upper nav a,.footer-lower nav a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-lower .motion-toggle { min-height: 44px; font-size: 13px; }
.legal-main p,.legal-main li { color: #c9d9ec; }
@media (max-width: 1100px) {
  .service-row,.service-row:first-child { min-height: 390px; }
  .hero-actions .primary { padding-inline: 20px; }
  .contact-grid { gap: 35px; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .model-stage { width: 100%; margin-left: 0; }
  .home-page h1 { font-size: clamp(52px,6.5vw,74px); }
}
@media (max-width: 760px) {
  .nav-shell { gap: 10px; width: calc(100% - 32px); height: 76px; }
  .nav-shell .brand { font-size: 16px; letter-spacing: .035em; gap: 7px; }
  .nav-shell .brand-icon { width: 32px; height: 32px; }
  .nav-shell .brand-sub { font-size: 7px; letter-spacing: .15em; }
  .site-header .nav-contact { display: inline-flex; min-width: 0; min-height: 44px; padding: 10px 12px; font-size: 12px; margin-left: auto; white-space: nowrap; }
  .menu-toggle { flex-shrink: 0; }
  .hero { padding-top: 40px; }
  .home-page h1 { font-size: clamp(51px,11.5vw,82px); }
  .hero-actions { gap: 20px; }
  .hero-actions .primary { min-height: 52px; font-size: 15px; padding-inline: 22px; }
  .hero-phone { gap: 13px; }
  .hero-tools { margin-top: 18px; }
  .hero-bottom a { max-width: none; }
  .solutions-intro { margin-bottom: 8px; }
  .service-row,.service-row:first-child { padding: 45px 0 42px; min-height: 340px; row-gap: 25px; column-gap: 22px; }
  .service-copy { display: contents; }
  .service-row h3 { grid-column: 1; grid-row: 1; align-self: center; margin: 0; font-size: clamp(27px,6.8vw,37px); }
  .service-body { grid-column: 1/-1; grid-row: 2; padding-right: 13px; }
  .service-body>p { max-width: 520px; }
  .service-index { align-self: center; }
  .process-list { gap: 25px; }
  .process-list li { min-height: 180px; gap: 22px; }
  .process-card,.process-list li.is-current .process-card { padding: 10px 0 20px; }
  .process-number { margin-top: 9px; }
  .process-list h3 { font-size: 30px; }
  .process-list p { font-size: 16px; }
  .contact-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .contact-copy { position: static; }
  .contact-copy h2 { font-size: clamp(38px,9.5vw,52px); }
  .contact-links a { font-size: 21px; }
  .inquiry-panel { padding: 27px 22px; }
  .footer-lower { align-items: flex-start; }
}
@media (max-width: 600px) {
  .form-row { grid-template-columns: minmax(0,1fr); gap: 0; }
}
@media (max-width: 370px) {
  .nav-shell { width: calc(100% - 24px); gap: 8px; }
  .nav-shell .brand { font-size: 14px; gap: 5px; }
  .nav-shell .brand-icon { width: 27px; height: 27px; }
  .nav-shell .brand-sub { display: none; }
  .site-header .nav-contact { padding-inline: 9px; }
  .inquiry-panel { padding-inline: 18px; }
  .footer-upper .brand { font-size: 16px; }
}
@media print {
  html { scroll-behavior: auto; }
  body,.home-page { background: white; color: #111; }
  .site-header,.site-atmosphere,.network-flow,.hero-signals,.hero-visual,.hero-tools,.hero-bottom,.solutions-depth,.service-index,.motion-toggle,.back-top { display: none !important; }
  .section-wrap { width: 100%; }
  .hero,#solutions,.approach-layout,.about-section,.faq-section,.contact-grid { display: block; min-height: 0; padding-block: 24px; }
  .solutions-intro,.approach-intro,.contact-copy { position: static; }
  .home-page .hero::before,.home-page #main::before { display: none; }
  .home-page h1 { font-size: 42px; }
  .home-page h2 { font-size: 30px; }
  .home-page h1,.home-page h1 span,.home-page h2 span,.home-page .hero .eyebrow,.home-page .hero .hero-description,.service-row h3,.service-body>p,.about-copy>p,.process-list p,.process-list li.is-reached h3,.faq-list details p,.contact-copy>p,.contact-copy h2 span,.contact-links small,.eyebrow,.about-established { color: #111; }
  .service-row,.service-row:first-child { display: block; min-height: 0; padding-block: 22px; break-inside: avoid; }
  .solutions-enhanced .service-body { opacity: 1 !important; transform: none; }
  .service-row h3 { transform: none; font-size: 24px; margin-bottom: 12px; }
  .process-list li { min-height: 0; break-inside: avoid; }
  .inquiry-panel { display: none; }
  .hero-phone,.service-body .text-link,.footer-lower,.contact-links a,.full-footer { color: #111; }
}
