:root {
  --ink: #1e232a;
  --ink-soft: #4f5968;
  --paper: #f8fafd;
  --white: #ffffff;
  --line: #cdd3dd;
  --line-strong: #a2aab7;
  --forest: #12161b;
  --forest-2: #5b35c8;
  --mint: #7046e8;
  --mint-soft: #eee8ff;
  --violet-wash: #f5f2ff;
  --shadow-soft: 0 1.2rem 3.5rem rgba(43, 30, 91, .09);
  --shadow-raised: 0 1.6rem 4.5rem rgba(43, 30, 91, .14);
  --max: 1240px;
  --radius: 2rem;
  --heading-hero: clamp(2.5rem, calc(2.8vw + .25rem), 2.75rem);
  --heading-section: clamp(1.875rem, calc(2.2vw + .25rem), 2.125rem);
  --heading-card: clamp(1.5rem, calc(1.8vw + .25rem), 1.75rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
.shell { width: min(calc(100% - 3rem), var(--max)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; top: 1rem; left: 1rem; transform: translateY(-160%); padding: .75rem 1rem; color: var(--white); background: var(--forest); }
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  border-bottom: 1px solid rgba(207, 215, 209, .86);
  background: rgba(244, 246, 243, .92);
  backdrop-filter: blur(18px);
}
.header-inner { display: flex; min-height: 5rem; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; }
.brand img { display: block; width: 9.55rem; height: 2rem; object-fit: contain; object-position: left center; }
.primary-nav { display: flex; align-items: center; gap: 1.65rem; font-size: .88rem; font-weight: 650; }
.primary-nav > a:not(.button) { position: relative; padding: .6rem 0; }
.primary-nav > a:not(.button)::after { position: absolute; right: 0; bottom: .35rem; left: 0; height: 1px; transform: scaleX(0); transform-origin: right; background: var(--ink); content: ""; transition: transform .2s ease; }
.primary-nav > a:not(.button):hover::after, .primary-nav > a:not(.button):focus-visible::after { transform: scaleX(1); transform-origin: left; }
.language-switch { display: inline-flex; align-items: center; gap: .4rem; color: var(--line-strong); }
.language-switch a { min-width: 2rem; padding: .45rem .15rem; color: inherit; text-align: center; font-size: .78rem; font-weight: 750; }
.language-switch a[aria-current="page"] { color: var(--ink); text-decoration: underline; text-underline-offset: .28rem; }
.button { display: inline-flex; min-height: 3.15rem; align-items: center; justify-content: center; padding: .75rem 1.3rem; border: 1px solid var(--forest); border-radius: 999px; color: var(--white); background: var(--forest); font-size: .88rem; font-weight: 700; transition: transform .2s ease, color .2s ease, background .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); color: var(--forest); background: var(--mint); }
.button-small { min-height: 2.6rem; padding: .55rem 1rem; }
.menu-toggle { display: none; width: 2.75rem; height: 2.75rem; padding: .75rem; border: 1px solid var(--line); border-radius: 50%; background: transparent; }
.menu-toggle span:not(.sr-only) { display: block; height: 1px; margin: .3rem 0; background: var(--ink); transition: transform .2s ease; }

.hero { position: relative; overflow: hidden; background: var(--paper); }
.hero-grid { position: absolute; inset: 0; background: radial-gradient(ellipse at 73% 79%, rgba(113, 70, 223, .08), transparent 55%); pointer-events: none; }
.hero-layout { position: relative; padding-block: 3.5rem 3rem; }
.hero-copy { width: 100%; max-width: 46rem; margin-inline: auto; text-align: center; }
.eyebrow { margin: 0 0 1.25rem; color: var(--forest-2); font-size: .875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
h1 { margin: 0; font-size: var(--heading-hero); font-weight: 500; letter-spacing: -.04em; line-height: 1.3; }
html:lang(ko) h1,
html:lang(ko) h2,
html:lang(ko) h3 {
  overflow-wrap: normal;
  word-break: keep-all;
}
.hero-lead { max-width: 42rem; margin: 1.15rem auto 0; color: var(--ink-soft); font-size: 1rem; line-height: 1.8; word-break: keep-all; }
.hero h1 { max-width: none; font-size: var(--heading-hero); font-weight: 500; line-height: 1.3; letter-spacing: -.04em; word-break: keep-all; }
.hero .eyebrow { margin-bottom: 1rem; font-weight: 500; letter-spacing: .06em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; justify-content: center; margin-top: 1.5rem; }
.text-link { display: inline-flex; align-items: center; gap: .55rem; border-bottom: 1px solid var(--ink); font-size: .9rem; font-weight: 700; }

.product-map { --op-white:var(--white); --op-text:var(--ink); --op-muted:#626c7c; --op-purple:#7146df; --op-mid:#b99ded; --op-faint:#ddd1f4; --op-soft:#eee8fa; --op-ink:#fff; --op-api:#663bcc; --op-shadow:#32214c0c; line-height:normal; }
.product-map {display:grid;grid-template-columns:minmax(0,.8fr) 24px minmax(0,.95fr) 24px minmax(0,3fr);align-items:center;max-width:960px;margin:42px auto 0}
.product-map .op-label {margin:0 0 15px;font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--op-muted)}
.product-map strong {font-size:14px;font-weight:500;display:block;word-break:keep-all}
.product-map small {display:block;font-size:12px;line-height:1.65;color:var(--op-muted);word-break:keep-all;margin-top:5px}
.product-map .op-customer {padding:14px;background:var(--op-white);border-radius:10px;box-shadow:0 8px 26px var(--op-shadow);align-self:stretch;display:flex;flex-direction:column}
.product-map .op-customer>.op-label,.product-map .op-interface>.op-label {margin-bottom:8px;flex-shrink:0}
.product-map .op-customer-body,.product-map .op-interface-body {flex:1;display:flex;flex-direction:column;justify-content:center}
.product-map .op-customer-node {display:block}
.product-map .op-down {height:18px;display:flex;align-items:center;justify-content:center;color:var(--op-mid)}
.product-map .op-down>svg {width:16px;height:16px}
.product-map .op-link {height:1px;position:relative;background:var(--op-mid);margin:0;align-self:center}
.product-map .op-link::after {content:"";position:absolute;right:0;top:-2px;width:5px;height:5px;border-top:1px solid var(--op-mid);border-right:1px solid var(--op-mid);transform:rotate(45deg)}
.product-map .op-interface {background:var(--op-api);color:var(--op-ink);padding:14px;border-radius:10px;box-shadow:0 12px 26px color-mix(in srgb,var(--op-api) 14%,transparent);align-self:stretch;display:flex;flex-direction:column}
.product-map .op-interface .op-label {color:var(--op-ink);opacity:.8}
.product-map .op-interface small {color:var(--op-ink);opacity:.85}
.product-map .op-api-row+.op-api-row {margin-top:16px}
.product-map .op-products {min-width:0;padding:14px;background:var(--op-soft);border-radius:14px}
.product-map .op-products>.op-label {color:var(--op-purple);margin-bottom:8px}
.product-map .op-product-row {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.product-map .op-product {min-width:0}
.product-map .op-drawing {width:100%;max-width:116px;aspect-ratio:150 / 108;position:relative;display:flex;align-items:center;justify-content:center;margin:0 auto 6px;color:var(--op-purple)}
.product-map .op-graph {width:100%;height:100%;display:block;overflow:visible}
.product-map .op-graph .op-stroke {fill:none;stroke:var(--op-mid);stroke-width:1.3}
.product-map .op-graph .op-sheet {fill:var(--op-white)}
.product-map .op-graph .op-soft-fill {fill:var(--op-faint)}
.product-map .op-graph .op-main-fill {fill:var(--op-purple)}
.product-map .op-graph .op-line-fill {fill:var(--op-mid)}
.product-map .op-graph .op-data-line {stroke:var(--op-faint);stroke-width:3;stroke-linecap:round}
.product-map .op-product-title {min-height:22px;line-height:1.35;text-align:center}
.product-map .op-product small {margin-top:3px;line-height:1.5;text-align:center}
.product-map .op-sign-symbol {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--op-ink)}
.product-map .op-sign-symbol>svg {width:20px;height:20px}
.product-map .op-mini-symbol {position:absolute;top:50%;transform:translateY(-50%);display:flex;color:var(--op-purple)}
.product-map .op-mini-symbol>svg {width:15px;height:15px}
.product-map .op-mini-left {left:calc(17% - 7px)}
.product-map .op-mini-right {right:calc(17% - 7px)}
.product-map .op-shared {margin-top:10px;padding:9px;background:var(--op-white);border-radius:8px}
.product-map .op-modules {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;font-size:12px;line-height:1.5;word-break:keep-all}
.product-map .op-module {display:flex;flex-direction:row;align-items:center;justify-content:center;gap:5px;min-height:36px;padding:8px 6px;background:var(--op-soft);border-radius:6px;text-align:center}
.product-map .op-module>svg {width:14px;height:14px;color:var(--op-purple);flex-shrink:0}
.product-map .op-blockchain {grid-column:5;display:flex;flex-direction:column;align-items:stretch}
.product-map .op-chain-interface,.product-map .op-network {display:flex;align-items:center;justify-content:center;min-height:32px;padding:7px 12px;border-radius:6px;font-size:12px;line-height:1.5;word-break:keep-all;text-align:center}
.product-map .op-chain-interface {margin-top:8px;background:var(--op-white);color:var(--op-purple)}
.product-map .op-chain-link {width:1px;height:8px;background:var(--op-mid);align-self:center}
.product-map .op-network {background:var(--op-white);color:var(--op-muted)}
@media(max-width:760px) {
  .product-map {grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);max-width:520px;margin-top:34px}
  .product-map .op-customer,.product-map .op-interface {min-height:180px}
  .product-map .op-to-products {grid-column:1 / -1;height:24px;width:1px;margin:0 auto}
  .product-map .op-to-products::after {right:-2px;top:auto;bottom:0;transform:rotate(135deg)}
  .product-map .op-products {grid-column:1 / -1;padding:14px}
  .product-map .op-blockchain {grid-column:1 / -1}
  .product-map .op-product-title {font-size:13px}
  .product-map .op-modules {gap:8px}
}
@media(max-width:420px) {
  .product-map .op-customer,.product-map .op-interface {padding:14px 12px}
  .product-map .op-product-row {grid-template-columns:1fr;gap:14px}
  .product-map .op-product {display:grid;grid-template-columns:106px minmax(0,1fr);column-gap:18px;align-items:center}
  .product-map .op-drawing {grid-row:1 / 3;margin:0}
  .product-map .op-product-title {min-height:0;align-self:end;text-align:left}
  .product-map .op-product small {grid-column:2;align-self:start;text-align:left}
  .product-map .op-shared {margin-top:12px}
  .product-map .op-modules {grid-template-columns:1fr;gap:8px}
  .product-map .op-module {min-height:36px;justify-content:flex-start;padding:8px 10px;text-align:left}
}

.section { padding-block: clamp(5rem, 8vw, 7.5rem); }
.section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 5rem; align-items: end; margin-bottom: 3rem; }
.section-heading .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
h2 { margin: 0; font-size: var(--heading-section); font-weight: 560; letter-spacing: -.03em; line-height: 1.25; }
html:lang(ko) h2 { letter-spacing: -.035em; }
.section-heading > p:last-child { max-width: 35rem; margin: 0; color: var(--ink-soft); font-size: 1.05rem; }

.solutions { background: var(--white); }
.solution-list { display: grid; gap: .9rem; }
.solution-card { position: relative; display: grid; overflow: hidden; grid-template-columns: 3.25rem minmax(0, 1fr) 5rem; gap: clamp(1rem, 3vw, 3rem); align-items: start; padding: 2rem; border: 1px solid var(--line); border-radius: 1.5rem; background: linear-gradient(120deg, var(--white), #faf9ff); box-shadow: 0 .45rem 1.8rem rgba(43, 30, 91, .04); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.solution-card:nth-child(2) { background: linear-gradient(120deg, #fff, #f7f5ff); }
.solution-card:nth-child(3) { background: linear-gradient(120deg, #fff, #f3f0ff); }
.solution-number { padding-top: .45rem; color: var(--ink-soft); font-size: .72rem; font-weight: 800; letter-spacing: .15em; }
.solution-content { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(250px, 1.2fr); gap: .4rem 3rem; }
.solution-audience { grid-column: 1 / -1; margin: 0 0 .7rem; color: var(--forest-2); font-size: .74rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.solution-content h3 { margin: 0; font-size: var(--heading-card); font-weight: 580; letter-spacing: -.03em; line-height: 1.25; }
.solution-content > p:not(.solution-audience) { margin: 0; color: var(--ink-soft); }
.solution-content ul { grid-column: 2; margin: 1rem 0 0; padding: 0; list-style: none; }
.solution-content li { padding: .55rem 0; border-top: 1px solid var(--line); font-size: .86rem; font-weight: 650; }
.solution-symbol { display: grid; width: 4.2rem; height: 4.2rem; place-items: center; justify-self: end; border: 1px solid #d3c8f4; border-radius: 1.2rem; color: #43258f; background: linear-gradient(145deg, #f6f3ff, #e5dcff); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .85); font-size: 1.15rem; font-weight: 800; }

.platform { position: relative; overflow: hidden; color: var(--white); background: radial-gradient(circle at 11% 16%, rgba(112, 70, 232, .26), transparent 34%), radial-gradient(circle at 86% 80%, rgba(112, 70, 232, .12), transparent 32%), var(--forest); }
.platform .eyebrow { color: var(--mint); }
.platform-layout { display: grid; grid-template-columns: minmax(340px, .86fr) minmax(440px, 1.14fr); gap: clamp(3.5rem, 7vw, 7rem); align-items: center; }
.platform-intro { position: sticky; top: 8rem; }
.platform-intro h2 { max-width: none; }
.platform-intro > p:last-child { max-width: 30rem; margin-top: 2rem; color: #a2aab7; }
.control-flow { position: relative; display: grid; }
.flow-step { position: relative; z-index: 1; padding: 2rem; border: 1px solid rgba(211, 200, 244, .62); border-radius: 1.5rem; color: var(--ink); background: linear-gradient(135deg, #f5f1ff, #e8e0ff); box-shadow: 0 1.2rem 3.5rem rgba(0, 0, 0, .14); transition: transform .22s ease, border-color .22s ease; }
.flow-step.is-dark { color: var(--white); border-color: rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .085); backdrop-filter: blur(12px); }
.flow-step > span { color: inherit; font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.flow-step h3 { margin: 1.25rem 0 .55rem; font-size: var(--heading-card); font-weight: 600; letter-spacing: -.03em; line-height: 1.25; }
.flow-step p { max-width: 34rem; margin: 0; opacity: .72; }
.flow-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.flow-tags span { padding: .45rem .7rem; border: 1px solid currentColor; border-radius: 999px; font-size: .68rem; font-weight: 700; opacity: .76; }
.flow-arrow { position: relative; display: grid; width: 2rem; height: 3.4rem; place-items: center; justify-self: center; color: transparent; font-size: 0; }
.flow-arrow::before { position: absolute; top: 0; bottom: .3rem; left: 50%; width: 2px; transform: translateX(-50%); background: linear-gradient(var(--mint), #a98bff); content: ""; }
.flow-arrow::after { position: absolute; bottom: .12rem; left: 50%; width: .58rem; height: .58rem; transform: translateX(-50%) rotate(45deg); border-right: 2px solid #a98bff; border-bottom: 2px solid #a98bff; content: ""; }

.capabilities { background: var(--paper); }
.section-heading.compact { display: block; max-width: 52rem; }
.section-heading.compact .eyebrow { margin-bottom: 1.25rem; }
.capability-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem; }
.capability-grid article { position: relative; overflow: hidden; min-height: 15.5rem; padding: 2rem; border: 1px solid var(--line); border-radius: 1.4rem; background: linear-gradient(145deg, var(--white), var(--violet-wash)); box-shadow: 0 .7rem 2.2rem rgba(43, 30, 91, .045); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.capability-grid article::after { position: absolute; top: -2rem; right: -2rem; width: 7.5rem; height: 7.5rem; border: 1.25rem solid rgba(112, 70, 232, .065); border-radius: 50%; content: ""; }
.capability-grid article > span { display: inline-grid; min-width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid #d3c8f4; border-radius: .7rem; color: var(--forest-2); background: #f0ebff; font-size: .7rem; font-weight: 800; }
.capability-grid h3 { margin: 2.9rem 0 .8rem; font-size: var(--heading-card); font-weight: 580; letter-spacing: -.03em; line-height: 1.25; }
.capability-grid p { max-width: 31rem; margin: 0; color: var(--ink-soft); }

.deployment { position: relative; overflow: hidden; background: radial-gradient(circle at 78% 16%, rgba(255, 255, 255, .5), transparent 27%), linear-gradient(135deg, #f0ecff 0%, #d8ccfb 55%, #a98bff 145%); }
.deployment-intro { max-width: 55rem; margin-inline: auto; text-align: center; }
.deployment-intro .eyebrow { margin-bottom: 1.25rem; }
.deployment h2 { max-width: 48rem; margin-inline: auto; }
.deployment-lead { max-width: 46rem; margin: 2rem auto 0; color: #443174; font-size: 1.08rem; }
.deployment-options { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 3.25rem; }
.deployment-card { display: flex; min-height: 25rem; flex-direction: column; padding: clamp(1.7rem, 3vw, 2.5rem); border: 1px solid rgba(70, 47, 137, .2); border-radius: 1.5rem; background: rgba(255, 255, 255, .7); box-shadow: var(--shadow-soft); backdrop-filter: blur(12px); transition: transform .22s ease, box-shadow .22s ease; }
.deployment-card-cloud { color: var(--white); border-color: rgba(255, 255, 255, .18); background: linear-gradient(145deg, rgba(35, 22, 74, .94), rgba(75, 45, 155, .9)); }
.deployment-card-label { font-size: .75rem; font-weight: 800; letter-spacing: .1em; }
.deployment-card h3 { max-width: none; margin: 2.5rem 0 1rem; font-size: var(--heading-card); font-weight: 580; line-height: 1.25; letter-spacing: -.03em; }
.deployment-card > p { max-width: 35rem; margin: 0; color: #352176; line-height: 1.65; }
.deployment-card-cloud > p { color: #d9d0f6; }
.deployment-card ul { display: grid; gap: .75rem; margin: auto 0 0; padding: 2.5rem 0 0; list-style: none; }
.deployment-card li { position: relative; padding-left: 1.3rem; font-size: .87rem; font-weight: 700; line-height: 1.45; }
.deployment-card li::before { position: absolute; top: .55em; left: 0; width: .42rem; height: .42rem; border-radius: 50%; background: currentColor; content: ""; }
.deployment-shared { display: grid; grid-template-columns: minmax(9rem, .3fr) 1fr; gap: 1.5rem; align-items: center; margin-top: 1rem; padding: 1.4rem 1.6rem; border: 1px solid rgba(70, 47, 137, .2); border-radius: 1.1rem; background: rgba(255, 255, 255, .58); box-shadow: 0 .7rem 2rem rgba(43, 30, 91, .06); }
.deployment-shared span { font-size: .67rem; font-weight: 800; letter-spacing: .12em; }
.deployment-shared p { margin: 0; color: #352176; font-weight: 650; }
.journey-block { margin-top: clamp(3.5rem, 6vw, 5.5rem); }
.journey-block > .eyebrow { margin-bottom: 1.4rem; }
.journey { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; border-top: 1px solid rgba(8, 39, 31, .4); list-style: none; }
.journey li { display: flex; min-height: 11rem; flex-direction: column; gap: 2.5rem; padding: 1.35rem 1.1rem 1.35rem 0; border-bottom: 1px solid rgba(8, 39, 31, .35); }
.journey li:not(:last-child) { border-right: 1px solid rgba(8, 39, 31, .25); }
.journey li:not(:first-child) { padding-left: 1.1rem; }
.journey li > span { font-size: .75rem; font-weight: 800; }
.journey div { display: flex; flex-direction: column; gap: .25rem; }
.journey strong { font-size: 1rem; }
.journey small { color: #47299f; font-size: .83rem; }

.contact { padding-block: clamp(5.5rem, 9vw, 8.5rem); color: var(--white); background: radial-gradient(circle at 50% 120%, rgba(112, 70, 232, .38), transparent 43%), var(--forest); }
.contact-inner { text-align: center; }
.contact .eyebrow { color: var(--mint); }
.contact h2 { max-width: 48rem; margin-inline: auto; }
.contact p:not(.eyebrow) { max-width: 42rem; margin: 2rem auto 0; color: #a2aab7; font-size: 1.08rem; }
.button-light { margin-top: 2.4rem; border-color: var(--mint); color: var(--forest); background: var(--mint); }
.button-light:hover, .button-light:focus-visible { color: var(--white); background: transparent; }

@media (hover: hover) {
  .solution-card:hover,
  .capability-grid article:hover,
  .deployment-card:hover { transform: translateY(-4px); border-color: #b8a5eb; box-shadow: var(--shadow-raised); }
  .flow-step:hover { transform: translateX(-4px); border-color: rgba(169, 139, 255, .75); }
}

.site-footer { color: var(--white); background: #12161b; }
.footer-inner { display: grid; grid-template-columns: 1fr auto auto; gap: 2rem 4rem; align-items: center; min-height: 8rem; }
.footer-brand img { width: 9.55rem; height: 2rem; }
.footer-company { display: grid; justify-items: start; gap: .65rem; padding-block: 1.5rem; }
.footer-company p { max-width: 31rem; margin: 0; color: #a2aab7; font-size: .78rem; line-height: 1.55; }
.footer-company-link { display: inline-flex; gap: .4rem; align-items: center; border-bottom: 1px solid #667084; color: #d9dce3; font-size: .78rem; font-weight: 700; }
.footer-company-link:hover { border-color: var(--white); color: var(--white); }
.footer-links { display: flex; gap: 1.5rem; color: #a2aab7; font-size: .82rem; }
.footer-inner > p { margin: 0; color: #7f948b; font-size: .75rem; }

:focus-visible { outline: 3px solid #a98bff; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }

@media (max-width: 900px) {
  .shell { width: min(calc(100% - 2rem), var(--max)); }
  .menu-toggle { display: block; }
  .primary-nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 1rem; border-bottom: 1px solid var(--line); background: var(--paper); }
  .primary-nav.is-open { display: flex; }
  .primary-nav > a:not(.button) { padding: 1rem .5rem; border-bottom: 1px solid var(--line); }
  .primary-nav > a:not(.button)::after { display: none; }
  .primary-nav .language-switch { order: -1; padding: .5rem; }
  .primary-nav .button { margin-top: 1rem; }
  .hero-layout { min-height: auto; grid-template-columns: 1fr; padding-block: 5rem; }
  .hero-copy { max-width: 46rem; }
  .section-heading { grid-template-columns: 1fr; }
  .solution-card { grid-template-columns: 3rem 1fr 4rem; gap: 1.5rem; }
  .solution-content { grid-template-columns: 1fr; }
  .solution-content ul { grid-column: auto; }
  .solution-symbol { width: 3.5rem; height: 3.5rem; }
  .platform-layout { grid-template-columns: 1fr; }
  .platform-intro { position: static; }
  .journey { grid-template-columns: repeat(2, 1fr); }
  .journey li { border-right: 1px solid rgba(8, 39, 31, .25); }
  .journey li:nth-child(even) { border-right: 0; }
  .journey li:nth-child(odd) { padding-left: 0; }
  .journey li:nth-child(even) { padding-left: 1.1rem; }
  .footer-inner { grid-template-columns: 1fr auto; }
  .footer-inner > p { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  :root { --heading-hero: 2rem; --heading-section: 1.75rem; --heading-card: 1.5rem; }
  .header-inner { min-height: 4.4rem; }
  .hero { min-height: 0; }
  .hero-layout { padding-block: 3.8rem; }
  .section { padding-block: 4.5rem; }
  .section-heading { margin-bottom: 2.5rem; }
  .solution-list { gap: .75rem; }
  .solution-card { grid-template-columns: 2.2rem 1fr; gap: .9rem; padding: 1.6rem 1.25rem; border-radius: 1.2rem; }
  .solution-symbol { display: none; }
  .capability-grid { grid-template-columns: 1fr; }
  .capability-grid article { min-height: 14rem; padding: 1.5rem; }
  .capability-grid h3 { margin-top: 2.5rem; }
  .deployment-options { grid-template-columns: 1fr; }
  .deployment-card { min-height: 0; }
  .deployment-card ul { margin-top: 1.2rem; }
  .deployment-shared { grid-template-columns: 1fr; gap: .75rem; }
  .journey { grid-template-columns: 1fr; }
  .journey li, .journey li:nth-child(even), .journey li:nth-child(odd) { min-height: 0; flex-direction: row; gap: 1.2rem; padding: 1.25rem 0; border-right: 0; }
  .journey li > span { width: 2rem; flex: 0 0 auto; }
  .footer-inner { display: flex; flex-direction: column; align-items: flex-start; padding-block: 2.3rem; }
  .footer-links { flex-wrap: wrap; }
}
