:root { --light-surface: #e9ebee; }
main { overflow: clip; }
section { scroll-margin-top: 2rem; }
.section-frame { width: 100%; padding-inline: clamp(1.25rem, 3.65vw, 5rem); }
.section-light { --ink: #111318; --muted: #585e67; --rule: rgba(17, 19, 24, .21); --accent: #4e5bd1; color: var(--ink); background: var(--light-surface); }
.section-label { display: flex; justify-content: space-between; gap: 2rem; margin: 0; padding-top: 1rem; border-top: 1px solid var(--rule); color: var(--muted); font-size: .68rem; line-height: 1.4; font-weight: 600; letter-spacing: .1em; }
.section-label span:last-child { text-align: right; }
section h2, section h3, .site-footer p { letter-spacing: -.075em; }
section h2 em { font-family: var(--serif); font-weight: 400; letter-spacing: -.07em; }
.section-light h2 em { color: var(--accent); }

.positioning { min-height: 93svh; }
.positioning .section-frame { display: flex; flex-direction: column; min-height: inherit; padding-top: clamp(5rem, 8vw, 9rem); padding-bottom: clamp(3rem, 5vw, 5rem); }
.positioning__content { display: flex; flex: 1; flex-direction: column; justify-content: center; padding: 3rem 0; }
.positioning__title { max-width: 1550px; margin: 0; font-size: clamp(4.3rem, 8.3vw, 10rem); font-weight: 600; line-height: .89; }
.positioning__aside { display: grid; grid-template-columns: 4.5rem 1fr; gap: 1.5rem; align-items: start; max-width: 39rem; margin: clamp(3rem, 6vw, 7rem) 4vw 0 auto; }
.positioning__mark { color: var(--accent); font-size: 4.2rem; line-height: .8; font-weight: 400; }
.positioning__aside p { margin: 0; font-size: clamp(1.35rem, 1.8vw, 2.1rem); line-height: 1.13; font-weight: 500; letter-spacing: -.04em; }
.positioning__foot { margin: 0; padding-top: 1rem; border-top: 1px solid var(--rule); color: var(--muted); font-size: .75rem; }

.services { padding: clamp(3rem, 5vw, 7rem) 0 clamp(8rem, 11vw, 14rem); }
.section-heading { display: grid; grid-template-columns: 1.5fr .8fr; gap: 2rem; align-items: end; padding-bottom: clamp(5rem, 9vw, 10rem); }
.section-heading .section-label { grid-column: 1 / -1; margin-bottom: clamp(4rem, 8vw, 9rem); }
.section-heading h2 { margin: 0; font-size: clamp(4.5rem, 7.5vw, 9rem); line-height: .9; font-weight: 600; }
.section-heading > p:last-child { max-width: 27rem; margin: 0 0 .5rem auto; font-size: clamp(1.25rem, 1.6vw, 1.9rem); line-height: 1.2; letter-spacing: -.035em; }
.service-list { border-bottom: 1px solid var(--rule); }
.service-row { display: grid; grid-template-columns: 5% minmax(0, 43%) minmax(0, 1fr) 3.6rem; gap: 1.4rem; align-items: start; padding: clamp(2rem, 4vw, 4.5rem) 0; border-top: 1px solid var(--rule); transition: padding .3s, background .3s; }
.service-row:hover, .service-row:focus-within { padding-inline: 1rem; background: rgba(104, 117, 245, .065); }
.service-row__number { padding-top: .7rem; color: var(--muted); font-size: .72rem; font-weight: 600; }
.service-row__main h3 { margin: 0; font-size: clamp(2.7rem, 4.5vw, 5.5rem); line-height: .93; font-weight: 600; }
.service-row__main p { margin: 1rem 0 0; color: var(--muted); font-size: .77rem; text-transform: uppercase; letter-spacing: .06em; }
.service-row__description { max-width: 25rem; margin: .5rem 0 0; font-size: clamp(1.05rem, 1.25vw, 1.45rem); line-height: 1.24; letter-spacing: -.02em; }
.service-row__link { display: grid; place-items: center; width: 3.6rem; height: 3.6rem; border: 1px solid var(--ink); font-size: 2rem; line-height: 1; transition: color .25s, background .25s, transform .25s; }
.service-row:hover .service-row__link, .service-row__link:focus-visible { color: var(--light-surface); background: var(--ink); transform: translate(2px, -2px); }

.projects { color: #f4f5f7; background: #08090b; padding: clamp(7rem, 11vw, 14rem) 0 clamp(8rem, 11vw, 14rem); }
.projects__intro { display: flex; justify-content: space-between; align-items: end; gap: 4rem; padding: clamp(5rem, 8vw, 9rem) 0 clamp(4rem, 6vw, 7rem); }
.projects__intro h2 { margin: 0; font-size: clamp(4.2rem, 7.4vw, 9rem); line-height: .89; font-weight: 600; }
.projects__intro h2 em { color: var(--accent); }
.projects__intro p { max-width: 23rem; margin: 0 0 .7rem; font-size: clamp(1.15rem, 1.4vw, 1.6rem); line-height: 1.23; letter-spacing: -.025em; }
.project-case { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); min-height: clamp(32rem, 49vw, 47rem); border: 1px solid var(--rule); }
.project-case__visual { position: relative; isolation: isolate; min-height: 32rem; overflow: hidden; background: #6875f5; color: #08090b; }
.project-case__stamp { position: absolute; z-index: 3; top: 2rem; left: 2rem; font-size: .7rem; font-weight: 700; letter-spacing: .13em; line-height: 1.35; }
.project-case__letter { position: absolute; z-index: 1; left: -3%; bottom: -12%; font-size: clamp(31rem, 45vw, 52rem); font-weight: 700; line-height: .78; letter-spacing: -.14em; }
.project-case__orbit { position: absolute; z-index: 2; top: 11%; right: -3%; display: grid; place-items: center; width: clamp(16rem, 26vw, 30rem); aspect-ratio: 1; }
.project-case__orbit i { position: absolute; width: 100%; aspect-ratio: 1; border: 1px solid rgba(244, 245, 247, .78); border-radius: 50%; }
.project-case__orbit i:nth-child(2) { width: 64%; }
.project-case__orbit i:nth-child(3) { width: 26%; background: #f4f5f7; }
.project-case__visual-name { position: absolute; z-index: 4; right: 2rem; bottom: 3rem; color: #f4f5f7; font-size: clamp(4rem, 8vw, 9rem); font-weight: 600; line-height: .8; text-align: right; letter-spacing: -.09em; }
.project-case__visual-foot { position: absolute; z-index: 3; left: 2rem; bottom: 2rem; font-size: .64rem; letter-spacing: .12em; font-weight: 700; }
.project-case__info { display: flex; flex-direction: column; padding: clamp(1.5rem, 3.4vw, 4rem); background: #161920; }
.project-case__meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .67rem; font-weight: 600; letter-spacing: .1em; }
.project-case__copy { margin: auto 0; padding: 4rem 0; }
.project-case__copy h3 { margin: 0 0 2rem; font-size: clamp(3.8rem, 6.5vw, 8rem); line-height: .85; font-weight: 600; }
.project-case__dot { color: var(--accent); }
.project-case__copy p { max-width: 30rem; margin: 0; font-size: clamp(1.2rem, 1.5vw, 1.8rem); line-height: 1.2; letter-spacing: -.03em; }
.project-case__copy .project-case__scope { margin-top: 2.4rem; color: var(--muted); font-size: .88rem; line-height: 1.35; letter-spacing: 0; }
.project-case__link { display: flex; justify-content: space-between; align-items: center; padding: 1.3rem 0 0; border-top: 1px solid var(--rule); font-size: .9rem; font-weight: 600; }
.project-case__link span { font-size: 2rem; transition: transform .25s; }
.project-case__link:hover span { transform: translate(4px, -4px); }
.project-case--real { grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); min-height: 0; }
.project-case--real .product-proof { display: flex; flex-direction: column; justify-content: center; gap: clamp(.85rem, 1.3vw, 1.4rem); min-height: 0; padding: clamp(1.25rem, 2.3vw, 2.5rem); background: #101319; color: var(--ink); }
.product-proof__top, .product-proof__bottom { display: flex; justify-content: space-between; gap: 1rem; font-size: .63rem; font-weight: 600; letter-spacing: .1em; line-height: 1.35; }
.product-proof__top span:last-child, .product-proof__bottom > span { color: var(--muted); }
.product-proof__top span:last-child { text-align: right; }
.product-proof__bottom { align-items: center; }
.product-proof__bottom a { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; white-space: nowrap; text-align: right; transition: color .25s ease; }
.product-proof__bottom a span { color: var(--accent); font-size: 1.35rem; line-height: 1; transition: transform .25s ease; }
.product-proof__bottom a:hover, .product-proof__bottom a:focus-visible { color: var(--accent); }
.product-proof__bottom a:hover span, .product-proof__bottom a:focus-visible span { transform: translate(3px, -3px); }
.product-proof__viewport { width: 100%; aspect-ratio: 2.08 / 1; overflow: hidden; border: 1px solid var(--rule); background: #0e121d; transition: border-color .3s ease; }
.product-proof__viewport img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.project-case--real:hover .product-proof__viewport { border-color: var(--accent); }
.project-case--real .project-case__info { min-width: 0; min-height: 0; gap: 1.5rem; padding: clamp(1.5rem, 2.8vw, 3rem); }
.project-case--real .project-case__copy { margin: auto 0; padding: 0; }
.project-case--real .project-case__copy h3 { margin-bottom: 1.25rem; font-size: clamp(3.2rem, 4.1vw, 5.5rem); }
.project-case--real .project-case__copy p { font-size: clamp(1.12rem, 1.38vw, 1.45rem); line-height: 1.25; }
.project-case--real .project-case__copy .project-case__scope { margin-top: 1.4rem; font-size: .86rem; line-height: 1.4; }
.project-case--real .project-case__link { min-height: 44px; padding-top: .75rem; }

.method { padding: clamp(7rem, 10vw, 13rem) 0 clamp(8rem, 12vw, 14rem); }
.method__intro { display: flex; justify-content: space-between; align-items: end; gap: 4rem; padding: clamp(5rem, 8vw, 9rem) 0 clamp(6rem, 9vw, 10rem); }
.method__intro h2 { margin: 0; font-size: clamp(4.2rem, 8vw, 9.5rem); line-height: .87; font-weight: 600; }
.method__intro p { max-width: 23rem; margin: 0 .5rem .4rem 0; font-size: clamp(1.25rem, 1.6vw, 1.9rem); line-height: 1.18; letter-spacing: -.03em; }
.method__list { list-style: none; padding: 0; margin: 0; border-bottom: 1px solid var(--rule); }
.method__list li { display: grid; grid-template-columns: 11% 51% 1fr; gap: 1rem; align-items: center; min-height: clamp(7rem, 11vw, 12rem); padding: 1.5rem 0; border-top: 1px solid var(--rule); }
.method__list li:nth-child(even) { padding-left: min(9vw, 10rem); }
.method__list li > span { color: var(--accent); font-size: .82rem; font-weight: 700; }
.method__list h3 { margin: 0; font-size: clamp(3.2rem, 6.1vw, 7.1rem); line-height: .9; font-weight: 600; }
.method__list p { max-width: 23rem; margin: 0; font-size: clamp(1.05rem, 1.3vw, 1.5rem); line-height: 1.25; letter-spacing: -.02em; }

.technology { padding: clamp(7rem, 10vw, 13rem) 0 clamp(8rem, 10vw, 13rem); background: #08090b; color: #f4f5f7; }
.technology__intro { display: grid; grid-template-columns: 1.5fr .65fr; gap: 3rem; align-items: end; padding: clamp(5rem, 8vw, 9rem) 0 clamp(6rem, 10vw, 11rem); }
.technology__intro h2 { margin: 0; font-size: clamp(4.2rem, 7.5vw, 9rem); line-height: .9; font-weight: 600; }
.technology__intro h2 em { color: var(--accent); }
.technology__intro p { max-width: 27rem; margin: 0 0 .5rem auto; font-size: clamp(1.2rem, 1.5vw, 1.8rem); line-height: 1.22; letter-spacing: -.03em; }
.technology__flow { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.technology__flow-head { display: flex; justify-content: space-between; gap: 2rem; padding: 1.15rem 0; border-bottom: 1px solid var(--rule); color: var(--muted); font-size: .67rem; font-weight: 600; letter-spacing: .1em; }
.technology__flow-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.technology__flow-grid > div { display: flex; flex-direction: column; min-height: clamp(17rem, 24vw, 24rem); padding: clamp(1.5rem, 2.5vw, 3rem); border-right: 1px solid var(--rule); }
.technology__flow-grid > div:first-child { padding-left: 0; }
.technology__flow-grid > div:last-child { border-right: 0; }
.technology__flow-grid span { color: var(--accent); font-size: .7rem; font-weight: 600; letter-spacing: .1em; }
.technology__flow-grid strong { max-width: 22rem; margin-top: auto; font-size: clamp(1.8rem, 2.7vw, 3.2rem); line-height: 1.02; letter-spacing: -.055em; font-weight: 500; }
.technology__flow-grid p { max-width: 18rem; margin: 1.5rem 0 0; color: var(--muted); font-size: 1rem; line-height: 1.35; }
.technology__flow-grid--connected { position: relative; }
.technology__flow-grid--connected::before { content: ''; position: absolute; top: 4.55rem; left: 0; right: 0; height: 1px; background: var(--accent); }
.technology__flow-grid--connected > div, .technology__flow-grid--connected > div:first-child { position: relative; min-height: 19rem; padding: 1.1rem 2rem 2.4rem; border: 0; }
.technology__flow-grid--connected > div:first-child { padding-left: 0; }
.technology__flow-grid--connected > div::before { content: ''; position: absolute; top: 4.17rem; left: 2rem; width: 13px; height: 13px; border: 3px solid var(--accent); border-radius: 50%; background: var(--paper); transition: background .3s ease, transform .3s ease; }
.technology__flow-grid--connected > div:first-child::before { left: 0; }
.technology__flow-grid--connected > div:hover::before { background: var(--accent); transform: scale(1.2); }
.technology__flow-grid--connected strong { max-width: 18rem; margin-top: auto; }
.technology__flow-grid--connected p { margin-top: 1rem; }
.technology__capabilities { display: grid; grid-template-columns: 1fr 3fr; gap: 3rem; padding-top: clamp(4rem, 7vw, 8rem); }
.technology__capabilities > p { margin: .5rem 0 0; color: var(--muted); font-size: .68rem; font-weight: 600; letter-spacing: .1em; }
.technology__capabilities ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 3rem; list-style: none; padding: 0; margin: 0; }
.technology__capabilities li { padding: 1.25rem 0; border-top: 1px solid var(--rule); font-size: clamp(1.4rem, 2vw, 2.2rem); letter-spacing: -.045em; }

.end-cta { min-height: 90svh; padding: clamp(6rem, 9vw, 11rem) 0 clamp(4rem, 6vw, 7rem); background: var(--accent); color: #08090b; }
.end-cta .section-label { color: rgba(8, 9, 11, .7); border-color: rgba(8, 9, 11, .45); }
.end-cta .section-frame { display: flex; flex-direction: column; min-height: calc(90svh - clamp(10rem, 15vw, 18rem)); }
.end-cta h2 { margin: auto 0 clamp(5rem, 8vw, 9rem); font-size: clamp(5rem, 9.2vw, 11rem); line-height: .86; font-weight: 600; }
.end-cta h2 em { color: #f4f5f7; }
.end-cta__bottom { display: flex; justify-content: space-between; align-items: end; gap: 4rem; }
.end-cta__bottom p { max-width: 27rem; margin: 0; font-size: clamp(1.2rem, 1.7vw, 2rem); line-height: 1.2; letter-spacing: -.03em; }
.end-cta__bottom a { display: flex; justify-content: space-between; align-items: center; gap: 5rem; min-width: clamp(19rem, 26vw, 30rem); padding: 1.1rem 0; border-top: 1px solid #08090b; border-bottom: 1px solid #08090b; font-size: clamp(1.4rem, 2vw, 2.4rem); font-weight: 500; letter-spacing: -.04em; }
.end-cta__bottom a span { font-size: 3.1rem; line-height: 1; transition: transform .25s; }
.end-cta__bottom a:hover span { transform: translate(5px, -5px); }

.site-footer { background: #08090b; color: #f4f5f7; }
.site-footer .section-frame { padding-top: clamp(5rem, 7vw, 9rem); padding-bottom: 1.5rem; }
.site-footer__top { display: flex; justify-content: space-between; gap: 3rem; align-items: start; min-height: clamp(12rem, 18vw, 22rem); }
.site-footer__top p { margin: 0; font-size: clamp(2.6rem, 4vw, 5rem); line-height: .95; font-weight: 500; }
.site-footer__middle { display: flex; justify-content: space-between; gap: 4rem; padding: 2rem 0 5rem; border-top: 1px solid var(--rule); }
.site-footer__middle nav { display: flex; gap: clamp(1.5rem, 3vw, 3.5rem); }
.site-footer__middle a { font-size: .9rem; }
.site-footer__middle a:hover, .site-footer__bottom a:hover { color: var(--accent); }
.site-footer__middle > div { display: flex; flex-direction: column; gap: .75rem; }
.site-footer__middle > div span { color: var(--muted); font-size: .65rem; letter-spacing: .1em; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--rule); color: var(--muted); font-size: .69rem; letter-spacing: .02em; }
.site-footer__bottom div { display: flex; gap: 2rem; }

@media (prefers-reduced-motion: no-preference) {
  .motion-ready .reveal { transform: translateY(22px); transition: transform .8s cubic-bezier(.2,.8,.2,1); }
  .motion-ready .reveal.is-visible { transform: translateY(0); }
  .project-case__orbit { transition: transform .8s cubic-bezier(.2,.8,.2,1); }
  .project-case:hover .project-case__orbit { transform: scale(1.06) rotate(8deg); }
  .motion-ready .technology__flow.is-visible .technology__flow-grid--connected::before { animation: flow-draw .8s cubic-bezier(.2,.8,.2,1) .1s both; transform-origin: left; }
  @keyframes flow-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
}

@media (max-width: 979px) {
  .project-case--real { grid-template-columns: minmax(0, 1fr); }
  .project-case--real .project-case__info { gap: 2rem; }
  .project-case--real .project-case__copy { margin: 0; }
}

@media (max-width: 1100px) {
  .positioning__title { font-size: 8vw; }
  .service-row { grid-template-columns: 4% minmax(0, 43%) minmax(0, 1fr) 3.2rem; gap: 1rem; }
  .service-row__main h3 { font-size: 4.3vw; }
  .service-row__description { font-size: 1.05rem; }
  .projects__intro, .method__intro { align-items: start; }
  .projects__intro p, .method__intro p { max-width: 18rem; }
  .project-case__copy h3 { font-size: 5vw; }
  .technology__intro { grid-template-columns: 1.3fr .7fr; }
}

@media (max-width: 700px) {
  .section-frame { padding-inline: 1.15rem; }
  .section-label { font-size: .57rem; gap: 1rem; }
  .section-label span:last-child { max-width: 45%; }
  .positioning { min-height: auto; }
  .positioning .section-frame { padding-top: 5rem; padding-bottom: 3rem; }
  .positioning__content { padding: 5rem 0 7rem; }
  .positioning__title { font-size: clamp(2.7rem, 9.4vw, 5rem); line-height: .94; }
  .positioning__aside { grid-template-columns: 2.5rem 1fr; gap: 1rem; margin: 4rem 0 0 7vw; }
  .positioning__mark { font-size: 2.8rem; }
  .positioning__aside p { font-size: clamp(1.3rem, 5vw, 1.7rem); }
  .positioning__foot { font-size: .7rem; }
  .services { padding: 2rem 0 7rem; }
  .section-heading { grid-template-columns: 1fr; gap: 2rem; padding-bottom: 5rem; }
  .section-heading .section-label { margin-bottom: 3rem; }
  .section-heading h2 { font-size: clamp(3.5rem, 12vw, 6rem); }
  .section-heading > p:last-child { margin: 0; max-width: 22rem; font-size: 1.25rem; }
  .service-row { grid-template-columns: 2rem 1fr 2.8rem; gap: .7rem; padding: 1.8rem 0 2.2rem; }
  .service-row:hover, .service-row:focus-within { padding-inline: .3rem; }
  .service-row__number { padding-top: .35rem; }
  .service-row__main { grid-column: 2; }
  .service-row__main h3 { font-size: clamp(2.35rem, 10vw, 4rem); }
  .service-row__main p { margin-top: .6rem; font-size: .67rem; }
  .service-row__description { grid-column: 2 / 4; grid-row: 2; margin: .5rem 0 0; max-width: 21rem; font-size: 1rem; }
  .service-row__link { grid-column: 3; grid-row: 1; width: 2.8rem; height: 2.8rem; font-size: 1.65rem; }
  .projects { padding: 6rem 0 7rem; }
  .projects__intro { display: block; padding: 5rem 0 4rem; }
  .projects__intro h2 { font-size: clamp(2.65rem, 9.2vw, 5rem); }
  .projects__intro p { max-width: 23rem; margin-top: 2.5rem; font-size: 1.15rem; }
  .project-case { display: block; min-height: 0; }
  .project-case__visual { min-height: 27rem; }
  .project-case__letter { font-size: 28rem; left: -6%; bottom: -8%; }
  .project-case__orbit { width: 16rem; top: 10%; right: -16%; }
  .project-case__visual-name { right: 1.4rem; bottom: 2.7rem; font-size: 4rem; }
  .project-case__stamp { top: 1.4rem; left: 1.4rem; }
  .project-case__visual-foot { left: 1.4rem; bottom: 1.2rem; }
  .project-case__info { min-height: 28rem; padding: 1.4rem; }
  .project-case__copy { padding: 4rem 0; }
  .project-case__copy h3 { font-size: clamp(3.4rem, 14vw, 5rem); }
  .project-case__copy p { font-size: 1.15rem; }
  .project-case--real .product-proof { gap: .6rem; min-height: 0; padding: .9rem; }
  .product-proof__top { flex-direction: column; gap: .15rem; font-size: .6875rem; letter-spacing: .04em; }
  .product-proof__top span:last-child { align-self: flex-end; }
  .product-proof__viewport { position: relative; aspect-ratio: 7 / 5; }
  .product-proof__viewport img { position: absolute; top: 0; left: -19.2%; width: 160%; max-width: none; height: auto; object-fit: unset; }
  .product-proof__bottom { flex-direction: column; align-items: stretch; gap: 0; font-size: .6875rem; letter-spacing: .04em; }
  .product-proof__bottom a { align-self: flex-end; }
  .project-case--real .project-case__info { min-height: 0; padding: 1.4rem; }
  .project-case--real .project-case__copy h3 { font-size: clamp(3.2rem, 12vw, 4.6rem); }
  .project-case--real .project-case__copy p { font-size: 1.15rem; }
  .method { padding: 6rem 0 7rem; }
  .method__intro { display: block; padding: 5rem 0 5rem; }
  .method__intro h2 { font-size: clamp(3.5rem, 12vw, 6rem); }
  .method__intro p { margin: 2.5rem 0 0; max-width: 20rem; font-size: 1.22rem; }
  .method__list li, .method__list li:nth-child(even) { grid-template-columns: 2rem 1fr; gap: .7rem 1rem; min-height: 0; padding: 1.8rem 0; }
  .method__list h3 { font-size: clamp(3rem, 11vw, 5rem); }
  .method__list p { grid-column: 2; font-size: 1rem; }
  .technology { padding: 6rem 0 7rem; }
  .technology__intro { display: block; padding: 5rem 0 5rem; }
  .technology__intro h2 { font-size: clamp(2.8rem, 9.8vw, 5rem); }
  .technology__intro p { margin: 2.7rem 0 0; max-width: 24rem; font-size: 1.2rem; }
  .technology__flow-head { font-size: .56rem; }
  .technology__flow-grid { grid-template-columns: 1fr; }
  .technology__flow-grid > div, .technology__flow-grid > div:first-child { min-height: 0; padding: 2rem 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .technology__flow-grid > div:last-child { border-bottom: 0; }
  .technology__flow-grid strong { margin-top: 1.8rem; font-size: 2rem; }
  .technology__flow-grid p { margin-top: .6rem; }
  .technology__flow-grid--connected::before { top: 2rem; bottom: 2rem; left: 6px; right: auto; width: 1px; height: auto; }
  .technology__flow-grid--connected > div, .technology__flow-grid--connected > div:first-child { min-height: 0; padding: 1.65rem 0 2.2rem 2.2rem; border-bottom: 1px solid var(--rule); }
  .technology__flow-grid--connected > div:last-child { border-bottom: 0; }
  .technology__flow-grid--connected > div::before, .technology__flow-grid--connected > div:first-child::before { top: 1.85rem; left: 0; }
  .technology__flow-grid--connected strong { margin-top: 2.2rem; }
  .motion-ready .technology__flow.is-visible .technology__flow-grid--connected::before { animation-name: flow-draw-mobile; transform-origin: top; }
  @keyframes flow-draw-mobile { from { transform: scaleY(0); } to { transform: scaleY(1); } }
  .technology__capabilities { display: block; padding-top: 5rem; }
  .technology__capabilities ul { grid-template-columns: 1fr; margin-top: 2rem; }
  .technology__capabilities li { font-size: 1.6rem; }
  .end-cta { min-height: 80svh; padding: 5rem 0 4rem; }
  .end-cta .section-frame { min-height: calc(80svh - 9rem); }
  .end-cta h2 { margin: 6rem 0 5rem; font-size: clamp(3.8rem, 12vw, 6.5rem); }
  .end-cta__bottom { display: block; }
  .end-cta__bottom p { font-size: 1.23rem; }
  .end-cta__bottom a { min-width: 0; margin-top: 3.5rem; font-size: 1.65rem; }
  .site-footer .section-frame { padding-top: 5rem; }
  .site-footer__top { display: block; min-height: 18rem; }
  .site-footer__top p { margin-top: 4rem; font-size: 2.4rem; }
  .site-footer__middle { display: block; padding-bottom: 4rem; }
  .site-footer__middle nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 1.3rem; }
  .site-footer__middle > div { margin-top: 3rem; }
  .site-footer__bottom { flex-wrap: wrap; line-height: 1.6; }
  .site-footer__bottom div { order: 3; width: 100%; flex-wrap: wrap; gap: 0 1.5rem; }
  .site-footer__middle a, .site-footer__bottom a { display: inline-flex; align-items: center; min-height: 44px; }
}

@media (max-width: 380px) {
  .positioning__title { font-size: 9vw; }
  .projects__intro h2 { font-size: 8.8vw; }
  .technology__intro h2 { font-size: 9.1vw; }
  .end-cta h2 { font-size: 11.2vw; }
  .site-footer__top p { margin-top: 3.2rem; }
}
