/* NEMOSLAB — Connected possibilities. Shared visual system, September 2026. */
:root {
  --ink-0:#080f18;
  --ink-1:#101d28;
  --ink-2:#20313e;
  --ink:#12252c;
  --ink-soft:#506269;
  --ink-faint:#67767c;
  --paper:#f7f9f8;
  --line:#dde5e2;
  --violet:#087768;
  --violet-bright:#57e1c0;
  --violet-deep:#124e48;
  --violet-tint:#e8f4ef;
  --mint:#79edca;
  --mint-deep:#087362;
  --mint-tint:#e4f8ee;
  --grad-accent:linear-gradient(110deg,#a5f3df,#68d6d3);
  --maxw:1280px;
  --r-md:12px;
  --r-lg:18px;
  --dk-text-faint:#98aab5;
  --dk-text-soft:#bac7ce
}
body {
  word-break:keep-all;
  overflow-wrap:break-word
}
button,input,select,textarea {
  font:inherit
}
button,a {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  cursor:wait;
  opacity:.7
}
[hidden] {
  display:none!important
}
section[id] {
  scroll-margin-top:100px
}
.wrap {
  padding-left:40px;
  padding-right:40px
}
.site-header {
  background:rgba(8,15,24,.95);
  backdrop-filter:blur(18px)
}
.site-header .wrap {
  height:82px;
  gap:32px
}
.logo {
  font-size:20px;
  letter-spacing:.015em;
  gap:11px
}
.logo .mark {
  width:29px;
  height:29px;
  background:var(--mint)
}
.logo .lab {
  color:inherit;
  background:none
}
.gnb {
  margin-left:auto;
  gap:36px;
  color:#c4d0d6
}
.gnb a {
  font-size:14px
}
.gnb a.active {
  color:var(--mint)
}
.btn {
  border-radius:7px;
  font-size:14px;
  padding:12px 23px;
  transition:background .18s,transform .18s;
  line-height:1.5
}
.btn-primary {
  background:var(--mint);
  color:#08251e;
  box-shadow:none
}
.btn-primary:hover {
  background:#a0f5dc;
  color:#08251e;
  box-shadow:none
}
.btn-lg {
  padding:17px 25px;
  font-size:15px
}
.btn .arrow {
  margin-left:24px
}
.header-cta {
  font-size:13px
}
.nav-toggle {
  color:#fff;
  border-color:#45535e;
  flex:none
}
.section {
  padding:96px 0
}
.section-head h2 {
  font-weight:720;
  letter-spacing:-.045em
}
.eyebrow {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.15em;
  color:var(--violet);
  font-weight:500
}
.eyebrow:before {
  display:none
}
.page-hero {
  background:radial-gradient(ellipse at 90% 100%,#133633 0,transparent 58%),var(--ink-0);
  padding:70px 0 76px
}
.page-hero h1 {
  max-width:1000px;
  letter-spacing:-.04em
}
.page-hero .eyebrow {
  color:var(--mint)
}
.page-hero .lede {
  max-width:760px
}
.breadcrumb {
  color:#9eb3be
}
.card {
  box-shadow:none;
  border-color:var(--line)
}
a.card:hover {
  border-color:#78bba6;
  box-shadow:0 12px 32px #153a2c09
}
.card h3 {
  letter-spacing:-.025em
}
.tag {
  border-radius:4px
}
.surface {
  background:#edf3f0
}
.cta-block {
  background:radial-gradient(ellipse at 80% 0,#164d41,transparent 70%),var(--ink-0);
  border-radius:18px
}
.cta-block::before {
  opacity:.28
}
.site-footer {
  margin-top:0
}
.footer-grid {
  grid-template-columns:1.6fr 1fr 1fr .8fr;
  gap:36px
}
.footer-info {
  color:#a2b3bd
}
.footer-grid h4 {
  color:#829da9
}
.footer-grid ul a {
  font-size:13px
}
.footer-bottom {
  color:#91a5b0
}
.stat .num {
  letter-spacing:-.05em
}
.spec-table {
  width:100%
}
.table-scroll {
  overflow-x:auto;
  -webkit-overflow-scrolling:touch
}
.table-scroll .spec-table {
  min-width:600px
}
.skip-link {
  position:fixed;
  top:-80px;
  left:24px;
  padding:12px 20px;
  background:var(--mint);
  color:var(--ink-0);
  z-index:500;
  border-radius:5px
}
.skip-link:focus {
  top:12px
}
:focus-visible {
  outline:3px solid #178e7b;
  outline-offset:5px
}
.site-header :focus-visible,.site-footer :focus-visible,.home-hero :focus-visible {
  outline-color:var(--mint)
}
.field select {
  max-width:100%;
  width:100%;
  text-overflow:ellipsis
}
.consent input {
  flex:none
}
.form-panel .btn-primary {
  background:#087768;
  color:#fff
}
.privacy-details {
  font-size:13px;
  color:var(--ink-soft);
  grid-column:1/-1
}
.privacy-details summary {
  cursor:pointer;
  color:var(--violet);
  font-weight:600
}
.privacy-details p {
  padding-top:10px
}
/* Home */
.home-hero {
  background:#080f18;
  color:#f6fafb;
  position:relative;
  overflow:hidden
}
.hero-stage {
  position:relative;
  display:grid;
  grid-template-columns:1.05fr 1fr;
  align-items:center;
  min-height:650px;
  padding-top:68px;
  padding-bottom:70px
}
.hero-copy {
  position:relative;
  z-index:2
}
.hero-kicker {
  font:11px var(--font-mono);
  letter-spacing:.17em;
  color:#a5c9c5;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:30px
}
.hero-kicker:before {
  content:'';
  width:6px;
  height:6px;
  background:var(--mint);
  box-shadow:0 0 14px #79edca66
}
.home-hero h1 {
  font-size:clamp(42px,4.5vw,64px);
  font-weight:680;
  line-height:1.24;
  letter-spacing:-.055em;
  margin:0 0 25px
}
.home-hero h1 em {
  font-style:normal;
  color:var(--mint)
}
.home-hero .hero-description {
  font-size:16px;
  color:#aabdc5;
  line-height:1.9;
  max-width:460px;
  margin:0 0 32px
}
.hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px
}
.home-hero .btn-ghost {
  border-color:#41535e;
  color:#e2ebee
}
.home-hero .btn-ghost:hover {
  border-color:var(--mint);
  color:var(--mint)
}
.hero-caption {
  font-size:11px;
  letter-spacing:.07em;
  color:#819fa7;
  margin-top:28px;
  display:flex;
  align-items:center;
  gap:12px
}
.hero-caption:before {
  content:'';
  width:27px;
  height:1px;
  background:#577c77
}
.hero-art {
  position:relative;
  min-width:0;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center
}
.hero-art img {
  width:145%;
  max-width:none;
  position:absolute;
  left:-21%;
  height:100%;
  object-fit:contain;
  mix-blend-mode:screen;
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)
}
.art-label {
  position:absolute;
  border:1px solid #425b6480;
  background:#101e26d9;
  backdrop-filter:blur(8px);
  padding:9px 13px;
  border-radius:6px;
  display:flex;
  align-items:center;
  gap:9px;
  font:10px var(--font-mono);
  letter-spacing:.09em;
  color:#d4e7e7;
  box-shadow:0 5px 24px #0002
}
.art-label i {
  width:5px;
  height:5px;
  background:var(--mint);
  border-radius:50%
}
.art-label.messaging {
  top:16%;
  left:5%
}
.art-label.voice {
  top:42%;
  right:-1%
}
.art-label.ai {
  bottom:14%;
  left:23%
}
.hero-art-note {
  position:absolute;
  bottom:0;
  right:0;
  font:9px var(--font-mono);
  letter-spacing:.16em;
  color:#7f979f
}
.hero-metrics {
  border-top:1px solid #29363e;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:26px 0 30px
}
.hero-metrics>div {
  padding-left:32px;
  border-left:1px solid #29363e
}
.hero-metrics>div:first-child {
  padding-left:0;
  border:0
}
.hero-metrics strong {
  font-size:32px;
  font-weight:550;
  letter-spacing:-.045em;
  display:block;
  line-height:1.25
}
.hero-metrics strong small {
  font-size:16px;
  margin-left:4px;
  font-weight:400
}
.hero-metrics span {
  color:#97acb5;
  font-size:12px;
  display:block;
  margin-top:9px
}
.partners {
  background:#fff;
  border-bottom:1px solid var(--line);
  padding:31px 0
}
.partner-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  flex-wrap:wrap
}
.partner-row .label {
  font-size:10px;
  line-height:1.7;
  letter-spacing:.13em;
  color:#778880
}
.partner-row .partner {
  font-size:19px;
  font-weight:700;
  color:#5b6b68;
  letter-spacing:-.04em
}
.partner-row .partner:nth-child(3) {
  font-size:24px
}
.section-title-row {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:32px;
  margin-bottom:36px
}
.section-title-row h2,.split-heading h2 {
  font-size:clamp(28px,3.1vw,42px);
  font-weight:680;
  line-height:1.35;
  letter-spacing:-.045em;
  margin:15px 0 0
}
.section-title-row p {
  max-width:370px;
  font-size:14px;
  color:var(--ink-soft);
  line-height:1.9
}
.text-link {
  font-size:13px;
  font-weight:600;
  display:inline-flex;
  gap:24px;
  align-items:center;
  white-space:nowrap
}
.text-link:hover {
  color:var(--violet)
}
.solution-tabs {
  display:flex;
  gap:6px;
  padding:5px;
  background:#e8eeeb;
  border:1px solid #dce6e0;
  border-radius:10px;
  margin-bottom:20px
}
.solution-tabs button {
  border:0;
  background:none;
  color:#566860;
  padding:14px 12px;
  border-radius:6px;
  flex:1;
  white-space:nowrap;
  font-size:13px;
  font-weight:550
}
.solution-tabs button[aria-selected=true] {
  background:#fff;
  color:#143d30;
  box-shadow:0 2px 7px #18362e10
}
.solution-tabs button:hover {
  color:#087768
}
.solution-panel {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:390px;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  margin-bottom:20px
}
.solution-copy {
  padding:42px 44px
}
.product-label {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
  font:11px var(--font-mono);
  letter-spacing:.13em;
  color:var(--violet)
}
.product-label .index {
  color:#8b9b93
}
.solution-copy h3 {
  font-size:29px;
  letter-spacing:-.035em;
  line-height:1.4;
  font-weight:650;
  margin-bottom:16px
}
.solution-copy>p {
  font-size:14px;
  line-height:1.9;
  color:var(--ink-soft);
  max-width:450px
}
.solution-features {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin:23px 0 29px
}
.solution-features li {
  font-size:11px;
  background:#f0f5f2;
  color:#375c4d;
  padding:5px 9px;
  border-radius:4px
}
.solution-links {
  display:flex;
  align-items:center;
  gap:23px;
  flex-wrap:wrap
}
.solution-links .btn {
  background:#102d26;
  color:#fff
}
.product-visual {
  background:#eaf2ee;
  position:relative;
  padding:40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  border-left:1px solid var(--line)
}
.visual-topline {
  font:9px var(--font-mono);
  letter-spacing:.12em;
  display:flex;
  justify-content:space-between;
  color:#628375;
  margin-bottom:26px
}
.message-window {
  background:#fff;
  padding:23px;
  border-radius:10px;
  box-shadow:0 12px 32px #164b2c0c;
  max-width:390px;
  width:100%;
  margin:auto
}
.window-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:17px;
  border-bottom:1px solid #e7eeea;
  font-size:12px;
  font-weight:600
}
.window-head span {
  font-size:9px;
  color:#7b8c84;
  font-weight:400
}
.message-body {
  margin:18px 0;
  padding:16px;
  background:#f3f7f5;
  border-radius:7px;
  font-size:12px;
  line-height:1.9;
  color:#416054
}
.message-body strong {
  font-size:13px;
  color:#183e2e;
  display:block;
  margin-bottom:6px
}
.channel-flow {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  font-size:10px;
  color:#789286
}
.channel-flow span {
  background:#e9f6ef;
  color:#166048;
  border-radius:4px;
  padding:6px 11px
}
.visual-footnote {
  font-size:10px;
  color:#6c8278;
  text-align:right;
  margin-top:22px
}
.visual-phone {
  width:200px;
  background:#fff;
  border:6px solid #263f35;
  border-radius:26px;
  margin:auto;
  padding:15px 14px;
  box-shadow:15px 18px 0 #d5e3da;
  text-align:center
}
.phone-speaker {
  height:4px;
  width:36px;
  background:#c3d6cc;
  border-radius:4px;
  margin:0 auto 24px
}
.visual-phone small {
  font-size:10px;
  color:#6b8377
}
.visual-phone strong {
  display:block;
  font-size:20px;
  margin:10px 0 3px
}
.visual-phone p {
  font-size:11px;
  color:#688070
}
.phone-dial {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:11px;
  margin:22px 8px 17px;
  font:16px var(--font-mono);
  color:#456354
}
.phone-call {
  background:#23745a;
  color:#fff;
  border-radius:20px;
  padding:8px;
  font-size:10px
}
.voice-wave {
  display:flex;
  justify-content:center;
  gap:5px;
  align-items:center;
  height:72px;
  margin-bottom:20px
}
.voice-wave i {
  width:5px;
  height:var(--h);
  background:#399f7e;
  border-radius:3px
}
.ai-conversation {
  background:#fff;
  border-radius:12px;
  padding:23px;
  max-width:360px;
  margin:auto;
  box-shadow:0 16px 40px #1746330c
}
.ai-line {
  font-size:12px;
  padding:12px;
  margin-top:10px;
  border-radius:8px;
  background:#f0f6f2
}
.ai-line.reply {
  background:#d9f0e4;
  margin-left:24px
}
.ai-conversation>small {
  font:10px var(--font-mono);
  color:#59846d
}
.suite-stack {
  display:grid;
  gap:12px;
  width:100%;
  max-width:360px;
  margin:auto
}
.suite-stack>div {
  padding:18px 21px;
  border:1px solid #d9e6de;
  border-radius:9px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:15px;
  font-weight:650
}
.suite-stack small {
  font-size:11px;
  font-weight:400;
  color:#6a8376
}
.suite-stack .core {
  background:#173a2b;
  color:#d1f9e5
}
.suite-stack .core small {
  color:#b6d2c4
}
.solution-directory {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0 24px;
  margin-top:22px
}
.directory-item {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:17px 0;
  border-bottom:1px solid var(--line);
  gap:10px;
  font-size:13px
}
.directory-item span {
  color:#60716a;
  font-size:11px;
  margin-left:8px
}
.directory-item b {
  font-weight:580
}
.directory-item:hover {
  color:var(--violet)
}
.directory-item>i {
  font-style:normal;
  color:#82988b
}
.infrastructure {
  background:#0d1a22;
  color:#e9f1f1
}
.infrastructure .eyebrow {
  color:var(--mint)
}
.infrastructure-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center
}
.split-heading>p:not(.eyebrow) {
  color:#9bb2b9;
  font-size:14px;
  line-height:1.95;
  margin-top:24px
}
.infra-features {
  margin-top:30px;
  display:grid;
  gap:20px
}
.infra-features li {
  display:grid;
  grid-template-columns:30px 1fr;
  gap:12px
}
.infra-features .number {
  font:11px var(--font-mono);
  color:var(--mint);
  padding-top:4px
}
.infra-features h3 {
  font-size:15px;
  font-weight:550;
  margin-bottom:4px
}
.infra-features p {
  font-size:12px;
  color:#9cb1b9;
  line-height:1.8
}
.infra-diagram {
  border:1px solid #31424a;
  border-radius:12px;
  padding:30px;
  background:linear-gradient(140deg,#122c2e,#101a25);
  position:relative
}
.diagram-label {
  font:9px var(--font-mono);
  letter-spacing:.14em;
  color:#89aaa9;
  margin-bottom:26px
}
.infra-channels {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px
}
.infra-channels>div {
  border:1px solid #3a514e;
  border-radius:5px;
  text-align:center;
  padding:16px 6px;
  font-size:12px;
  background:#1c3334
}
.infra-connector {
  height:43px;
  position:relative;
  border-left:1px solid #609b8d;
  margin-left:50%
}
.infra-connector:after {
  content:'';
  position:absolute;
  bottom:-3px;
  left:-3.5px;
  width:6px;
  height:6px;
  background:var(--mint);
  border-radius:50%
}
.infra-core {
  border:1px solid #65c4a6;
  border-radius:9px;
  padding:25px 12px;
  background:#183c35;
  text-align:center;
  box-shadow:0 0 40px #70e7bd0a
}
.infra-core strong {
  font:16px var(--font-mono);
  letter-spacing:.08em;
  color:#b1f1d8
}
.infra-core span {
  display:block;
  font-size:11px;
  margin-top:9px;
  color:#add0c1
}
.infra-base {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:9px
}
.infra-base span {
  padding:14px 5px;
  text-align:center;
  background:#162931;
  border:1px solid #324952;
  border-radius:5px;
  font-size:11px;
  color:#b1c6c6
}
.diagram-caption {
  font-size:10px;
  color:#7f9c9e;
  margin-top:22px;
  text-align:center
}
.proof-row {
  border-top:1px solid #2b3c43;
  margin-top:64px;
  padding-top:26px;
  display:flex;
  gap:30px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap
}
.proof-row>p {
  font-size:12px;
  color:#adc2c3
}
.proof-row>p strong {
  color:var(--mint);
  font-size:20px;
  margin-right:8px
}
.proof-row .text-link {
  font-size:12px;
  color:var(--mint)
}
.cases-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.case-story {
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  overflow:hidden;
  transition:transform .2s,border-color .2s;
  display:grid;
  grid-template-columns:145px 1fr;
  min-height:223px
}
.case-story:hover {
  transform:translateY(-3px);
  border-color:#88bca2
}
.case-monogram {
  background:#e5efe9;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:20px;
  color:#41614b
}
.case-monogram strong {
  font-size:29px;
  letter-spacing:-.06em;
  font-weight:650
}
.case-monogram span {
  font:9px var(--font-mono);
  letter-spacing:.08em;
  margin-top:10px
}
.case-story:nth-child(2) .case-monogram {
  background:#e8edf3;
  color:#4a657b
}
.case-story:nth-child(3) .case-monogram {
  background:#f4efe4;
  color:#7a6a45
}
.case-story:nth-child(4) .case-monogram {
  background:#e8eef0;
  color:#456477
}
.case-body {
  padding:26px
}
.case-body .case-label {
  font-size:10px;
  color:#688073
}
.case-body h3 {
  font-size:18px;
  letter-spacing:-.035em;
  line-height:1.5;
  margin:9px 0 11px;
  font-weight:650
}
.case-body p {
  font-size:12px;
  color:#617169;
  line-height:1.8
}
.case-body .case-more {
  font-size:11px;
  display:block;
  margin-top:19px;
  font-weight:600;
  color:#24533d
}
.process-section {
  padding-top:0
}
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px
}
.process-step {
  border-top:1px solid #bdcfc4;
  padding-top:22px
}
.process-step .step-no {
  font:12px var(--font-mono);
  color:#087768;
  display:flex;
  justify-content:space-between
}
.process-step h3 {
  font-size:18px;
  margin:21px 0 10px;
  letter-spacing:-.03em
}
.process-step p {
  font-size:13px;
  line-height:1.9;
  color:#64766d
}
.faq-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:80px
}
.faq-list {
  border-top:1px solid #c8d7cf
}
.faq-list details {
  border-bottom:1px solid #c8d7cf;
  padding:0 3px
}
.faq-list summary {
  padding:23px 24px 23px 0;
  font-size:15px;
  font-weight:550;
  cursor:pointer;
  list-style:none;
  position:relative
}
.faq-list summary::-webkit-details-marker {
  display:none
}
.faq-list summary:after {
  content:'+';
  position:absolute;
  right:0;
  top:19px;
  font-size:23px;
  font-weight:300;
  color:#478469
}
.faq-list details[open] summary:after {
  content:'−'
}
.faq-list details p {
  padding:0 24px 22px 0;
  font-size:13px;
  color:#536f60;
  line-height:1.95
}
.home-contact {
  background:#dff2e9;
  padding:71px 0
}
.home-contact .wrap {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px
}
.home-contact h2 {
  font-size:clamp(27px,3vw,40px);
  font-weight:650;
  line-height:1.4;
  letter-spacing:-.04em;
  margin:12px 0
}
.home-contact p {
  font-size:14px;
  color:#4a6f5d
}
.home-contact .btn {
  background:#153e2d;
  color:#fff;
  white-space:nowrap
}
.contact-methods {
  display:flex;
  gap:20px;
  margin-top:16px;
  font-size:11px;
  color:#537562
}
.metrics-note {
  font-size:10px;
  color:#778d94;
  padding-bottom:13px;
  text-align:right
}
.home-page .site-footer {
  padding-top:66px
}
.home-page .footer-slogan {
  font-size:10px;
  letter-spacing:.16em
}
@media(min-width:921px) {
  .home-hero h1 {
    white-space:nowrap
  }
}
@media(max-width:1100px) {
  .hero-stage {
    min-height:590px
  }
  .infrastructure-layout {
    gap:50px
  }
  .case-story {
    grid-template-columns:110px 1fr
  }
  .case-body {
    padding:22px
  }
  .solution-copy {
    padding:32px
  }
  .product-visual {
    padding:28px
  }
  .solution-directory {
    grid-template-columns:repeat(2,1fr)
  }
  .footer-grid {
    gap:28px
  }
}
@media(max-width:920px) {
  .site-header .wrap {
    height:72px;
    gap:18px
  }
  .gnb.open {
    top:72px;
    padding:12px 28px 18px
  }
  .header-cta {
    display:inline-flex;
    margin-left:auto;
    padding:10px 15px;
    font-size:12px
  }
  .wrap {
    padding-left:28px;
    padding-right:28px
  }
  .hero-stage {
    grid-template-columns:1fr 1fr;
    min-height:570px;
    padding-top:62px;
    padding-bottom:55px
  }
  .home-hero h1 {
    font-size:43px
  }
  .home-hero .hero-description {
    font-size:14px
  }
  .hero-art img {
    width:165%;
    left:-37%
  }
  .art-label.messaging {
    left:0;
    top:10%
  }
  .art-label.voice {
    right:0;
    top:52%
  }
  .art-label.ai {
    bottom:10%;
    left:12%
  }
  .hero-art-note {
    display:none
  }
  .hero-metrics strong {
    font-size:27px
  }
  .hero-metrics>div {
    padding-left:20px
  }
  .hero-metrics span {
    font-size:11px
  }
  .section {
    padding:72px 0
  }
  .section-title-row p {
    max-width:270px;
    font-size:13px
  }
  .solution-copy h3 {
    font-size:25px
  }
  .solution-tabs {
    gap:2px
  }
  .solution-tabs button {
    font-size:12px;
    padding:13px 6px
  }
  .infrastructure-layout {
    gap:38px
  }
  .infra-diagram {
    padding:22px
  }
  .cases-grid {
    gap:16px
  }
  .case-story {
    display:block
  }
  .case-monogram {
    padding:25px;
    align-items:flex-start;
    min-height:108px
  }
  .case-monogram strong {
    font-size:24px
  }
  .case-monogram span {
    margin-top:4px
  }
  .faq-layout {
    gap:40px
  }
  .process-section {
    padding-top:0
  }
  .footer-grid {
    grid-template-columns:1.5fr 1fr
  }
  .footer-grid>div:first-child {
    grid-row:span 2
  }
  .cert-gallery {
    grid-template-columns:repeat(2,1fr)
  }
  .contact-layout,.contact-layout>* {
    min-width:0
  }
  .spec-table {
    font-size:12px
  }
}
@media(max-width:640px) {
  .wrap {
    padding-left:22px;
    padding-right:22px
  }
  .site-header .wrap {
    height:68px;
    gap:12px
  }
  .gnb.open {
    top:68px
  }
  .logo {
    font-size:17px;
    gap:8px
  }
  .logo .mark {
    width:25px;
    height:25px
  }
  .header-cta {
    font-size:11px;
    padding:9px 12px
  }
  .nav-toggle {
    width:34px;
    height:34px
  }
  .hero-stage {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    padding-top:44px;
    padding-bottom:28px;
    min-height:0
  }
  .hero-kicker {
    font-size:9px;
    margin-bottom:22px;
    letter-spacing:.13em
  }
  .home-hero h1 {
    font-size:42px;
    line-height:1.25;
    margin-bottom:20px
  }
  .home-hero .hero-description {
    font-size:14px;
    margin-bottom:25px;
    max-width:350px
  }
  .hero-actions {
    gap:10px
  }
  .hero-actions .btn-lg {
    padding:14px 18px;
    font-size:13px
  }
  .hero-caption {
    font-size:9px;
    margin-top:22px
  }
  .hero-art {
    height:310px;
    min-height:310px;
    margin-top:4px
  }
  .hero-art img {
    width:117%;
    height:120%;
    left:-8%;
    top:-10%;
    object-fit:contain
  }
  .art-label {
    font-size:9px;
    padding:8px 10px
  }
  .art-label.messaging {
    top:16%;
    left:4%
  }
  .art-label.voice {
    top:48%;
    right:1%
  }
  .art-label.ai {
    left:18%;
    bottom:8%
  }
  .hero-metrics {
    grid-template-columns:1fr 1fr;
    gap:24px 0;
    padding:26px 0
  }
  .hero-metrics>div {
    padding-left:22px
  }
  .hero-metrics>div:nth-child(3) {
    padding-left:0;
    border:0
  }
  .hero-metrics strong {
    font-size:28px
  }
  .metrics-note {
    text-align:left;
    font-size:9px
  }
  .partner-row {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px 12px;
    text-align:center
  }
  .partner-row .label {
    grid-column:1/-1;
    font-size:9px
  }
  .partner-row .label br {
    display:none
  }
  .partner-row .partner {
    font-size:16px
  }
  .partner-row .partner:nth-child(3) {
    font-size:20px
  }
  .partners {
    padding:25px 0 30px
  }
  .section {
    padding:59px 0
  }
  .section-title-row {
    display:block;
    margin-bottom:28px
  }
  .section-title-row h2,.split-heading h2 {
    font-size:29px
  }
  .section-title-row>p {
    max-width:100%;
    margin-top:20px
  }
  .section-title-row>.text-link {
    margin-top:20px
  }
  .solution-tabs {
    overflow-x:auto;
    justify-content:flex-start;
    gap:5px;
    padding:5px;
    margin-right:-2px
  }
  .solution-tabs button {
    flex:none;
    padding:12px 15px;
    font-size:12px
  }
  .solution-panel {
    grid-template-columns:1fr
  }
  .solution-copy {
    padding:28px 25px
  }
  .solution-copy h3 {
    font-size:25px
  }
  .solution-copy>p {
    font-size:13px
  }
  .solution-features {
    margin:20px 0 25px
  }
  .solution-links {
    gap:20px
  }
  .product-visual {
    border-left:0;
    border-top:1px solid var(--line);
    padding:24px;
    min-height:295px
  }
  .visual-topline {
    margin-bottom:20px
  }
  .solution-directory {
    grid-template-columns:1fr;
    gap:0;
    margin-top:8px
  }
  .directory-item {
    padding:16px 0
  }
  .infrastructure-layout {
    grid-template-columns:1fr;
    gap:35px
  }
  .infra-features {
    gap:20px
  }
  .infra-diagram {
    padding:24px 20px
  }
  .proof-row {
    margin-top:34px;
    padding-top:25px;
    gap:17px
  }
  .proof-row>p {
    font-size:11px
  }
  .proof-row>p strong {
    font-size:18px
  }
  .cases-grid {
    grid-template-columns:1fr;
    gap:15px
  }
  .case-story {
    display:grid;
    grid-template-columns:96px 1fr
  }
  .case-monogram {
    min-height:100%;
    align-items:center;
    padding:12px
  }
  .case-monogram strong {
    font-size:21px
  }
  .case-monogram span {
    font-size:8px
  }
  .case-body {
    padding:23px 20px
  }
  .case-body h3 {
    font-size:17px
  }
  .process-section {
    padding-top:0
  }
  .process-grid {
    grid-template-columns:1fr 1fr;
    gap:30px 22px
  }
  .process-step h3 {
    font-size:17px;
    margin-top:15px
  }
  .process-step p {
    font-size:12px
  }
  .faq-layout {
    grid-template-columns:1fr;
    gap:28px
  }
  .faq-list summary {
    font-size:14px
  }
  .home-contact {
    padding:47px 0
  }
  .home-contact .wrap {
    display:block
  }
  .home-contact h2 {
    font-size:29px
  }
  .home-contact p {
    font-size:13px
  }
  .home-contact .btn {
    margin-top:28px
  }
  .contact-methods {
    flex-wrap:wrap;
    gap:8px 18px
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:28px 24px
  }
  .footer-grid>div:first-child {
    grid-row:auto;
    grid-column:1/-1
  }
  .footer-grid>div:nth-child(3) {
    display:none
  }
  .footer-grid ul a {
    font-size:12px
  }
  .footer-bottom {
    font-size:10px;
    line-height:1.8
  }
  .home-page .site-footer {
    padding-top:44px
  }
  .page-hero {
    padding:43px 0 50px
  }
  .page-hero h1 {
    font-size:31px
  }
  .page-hero .lede {
    font-size:14px
  }
  .card {
    padding:25px
  }
  .case-meta>div {
    padding:18px 14px
  }
  .case-meta .v {
    font-size:13px
  }
  .cert-gallery {
    gap:12px
  }
  .cert-gallery .cap {
    font-size:11px
  }
  .cta-block {
    padding:38px 22px
  }
  .cta-block .btn-lg {
    font-size:12px;
    padding:13px 16px
  }
  .prose p {
    font-size:15px
  }
  .form-panel {
    padding:26px 20px
  }
  .field input,.field select,.field textarea {
    font-size:16px;
    min-width:0
  }
  .contact-side .card p {
    overflow-wrap:anywhere
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important
  }
}
/* Fade all edges of the editorial hero artwork into its surrounding canvas. */
.hero-art img {
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent),linear-gradient(0deg,transparent,#000 15%,#000 85%,transparent);
  mask-composite:intersect
}
.table-scroll .ref-table {
  min-width:650px;
  display:table
}
.table-scroll {
  max-width:100%
}
.section.surface {
  background:#eef4f0
}
.flow>.step {
  min-width:0
}
@media(max-width:920px) {
  .flow {
    grid-template-columns:repeat(2,minmax(0,1fr))!important
  }
}
@media(max-width:640px) {
  .flow {
    grid-template-columns:1fr!important
  }
  .flow .step {
    padding:24px
  }
  .home-hero h1 {
    font-size:clamp(34px,10.6vw,42px)
  }
}
.hero-art img {
  height:auto;
  top:50%;
  transform:translateY(-50%)
}
