:root {
    color-scheme:light;
    --ink:#152d39;
    --soft:#425761;
    --teal:#167c83;
    --bright:#35b9ad;
    --action:#f2b544;
    --action-hover:#e5a332;
    --pale:#e6f4f1;
    --paper:#f7f9f8;
    --white:#fff;
    --line:#dce5e3;
    --width:1160px;
    --radius:18px;
    --shadow:0 20px 60px rgba(20,48,57,.1)
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
@view-transition {
    navigation:auto
}
main {
    view-transition-name:site-main
}
::view-transition-old(site-main) {
    animation:site-main-exit .3s ease-in both
}
::view-transition-new(site-main) {
    animation:site-main-enter .42s ease-out both
}
@keyframes site-main-exit {
    to { opacity:0 }
}
@keyframes site-main-enter {
    from { opacity:0 }
    to { opacity:1 }
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    font-size:16px;
    line-height:1.65;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased
}
img {
    display:block;
    max-width:100%
}
a {
    color:inherit
}
button,a {
    -webkit-tap-highlight-color:transparent
}
:focus-visible {
    outline:3px solid #e7a841;
    outline-offset:4px
}
.skip-link {
    position:fixed;
    z-index:100;
    top:12px;
    left:12px;
    padding:10px 14px;
    transform:translateY(-160%);
    border-radius:6px;
    background:#fff;
    color:var(--ink);
    box-shadow:var(--shadow)
}
.skip-link:focus {
    transform:translateY(0)
}
.not-found-notice {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    gap:14px;
    width:100%;
    margin:0;
    padding:14px max(24px,calc((100% - var(--width))/2));
    border-top:1px solid #e9d9b0;
    border-bottom:1px solid #e9d9b0;
    background:linear-gradient(90deg,#fff9e9 0%,#fff4d8 50%,#fff9e9 100%);
    box-shadow:inset 4px 0 0 #e5b24a;
    color:var(--ink)
}
.not-found-notice[hidden] {
    display:none
}
.not-found-mark {
    display:grid;
    flex:0 0 26px;
    width:26px;
    height:26px;
    place-items:center;
    border:1px solid #e7cc8d;
    border-radius:50%;
    background:#faeccb;
    color:#76591d;
    font-size:.9rem;
    font-weight:800;
    line-height:1
}
.not-found-message {
    flex:1 1 auto
}
.not-found-message p {
    margin:0;
    font-size:.94rem
}
.not-found-actions {
    display:flex;
    flex-wrap:wrap;
    gap:8px 20px;
    margin-top:5px
}
.not-found-actions a {
    color:#116c71;
    font-size:.88rem;
    font-weight:700;
    text-decoration-thickness:1px;
    text-underline-offset:3px
}
.not-found-dismiss {
    flex:0 0 32px;
    width:32px;
    height:32px;
    margin:-4px -5px 0 0;
    border:1px solid #e5d6b5;
    border-radius:50%;
    background:rgba(255,255,255,.62);
    color:#52646b;
    cursor:pointer;
    font-size:1.5rem;
    line-height:1
}
.not-found-dismiss:hover {
    background:#fff;
    border-color:#c5a963;
    color:var(--ink)
}
.site-header {
    position:sticky;
    top:0;
    z-index:10;
    background:rgba(255,255,255,.78);
    border-bottom:1px solid rgba(21,45,57,.06);
    backdrop-filter:blur(16px) saturate(155%);
    -webkit-backdrop-filter:blur(16px) saturate(155%);
    transition:background-color .24s ease,border-color .24s ease,box-shadow .24s ease
}
.site-header.is-scrolled {
    background:rgba(255,255,255,.88);
    border-bottom-color:rgba(21,45,57,.1);
    box-shadow:0 8px 24px rgba(21,45,57,.08)
}
.header-inner {
    width:min(calc(100% - 48px),1280px);
    min-height:104px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    transition:min-height .28s ease
}
.site-header.is-scrolled .header-inner {
    min-height:76px
}
.brand {
    flex:0 1 268px;
    margin-left:-16px;
    padding:8px 16px;
    transition:flex-basis .28s ease,margin-left .28s ease,padding .28s ease
}
.site-header.is-scrolled .brand {
    flex-basis:236px;
    margin-left:-12px;
    padding:4px 12px
}
.brand img {
    width:100%;
    max-width:236px;
    height:auto;
    transition:max-width .28s ease,width .28s ease
}
.site-header.is-scrolled .brand img {
    max-width:200px
}
.primary-nav {
    display:flex;
    align-items:center;
    gap:clamp(16px,2.2vw,32px)
}
.primary-nav a {
    color:#3f525a;
    font-size:.87rem;
    font-weight:650;
    text-decoration:none;
    transition:color .18s ease
}
.primary-nav a:hover {
    color:var(--teal)
}
.primary-nav a.is-current:not(.nav-contact):not(.nav-support) {
    color:var(--teal);
    text-decoration:underline;
    text-decoration-color:var(--bright);
    text-decoration-thickness:2px;
    text-underline-offset:8px
}
.primary-nav .nav-contact {
    padding:10px 17px;
    border:1px solid #b7cfcb;
    border-radius:999px;
    color:var(--ink)
}
.primary-nav .nav-contact:hover {
    background:var(--pale);
    border-color:var(--pale)
}
.primary-nav .nav-contact.is-current {
    border-color:#b7cfcb;
    background:var(--pale);
    color:var(--teal)
}
.primary-nav .nav-support {
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-left:5px;
    padding:10px 15px;
    border:1px solid var(--action);
    border-radius:999px;
    background:var(--action);
    box-shadow:0 5px 14px rgba(229,163,50,.22);
    color:var(--ink);
    font-size:.83rem;
    font-weight:750;
    text-decoration:none;
    white-space:nowrap;
    transition:background .18s ease,border-color .18s ease,transform .18s ease
}
.primary-nav .nav-support:hover {
    transform:translateY(-1px);
    border-color:var(--action-hover);
    background:var(--action-hover);
    color:var(--ink)
}
.nav-support-icon {
    display:grid;
    width:21px;
    height:21px;
    place-items:center;
    border-radius:50%;
    background:rgba(21,45,57,.1)
}
.nav-support-icon svg {
    display:block;
    width:14px;
    height:14px;
    fill:none;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.6
}
.menu-toggle {
    display:none
}
.hero {
    position:relative;
    overflow:hidden;
    isolation:isolate;
    background:radial-gradient(ellipse at 77% 52%,rgba(33,120,128,.34),transparent 35%),linear-gradient(112deg,#102936 0%,#153d49 58%,#165e64 100%);
    color:#fff
}
.hero:before {
    position:absolute;
    z-index:-1;
    inset:0;
    background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
    background-size:52px 52px;
    content:"";
    mask-image:linear-gradient(90deg,transparent,#000 45%,#000)
}
.hero-inner {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1.02fr) minmax(340px,.98fr);
    align-items:center;
    gap:48px;
    width:min(calc(100% - 48px),var(--width));
    min-height:610px;
    margin:0 auto;
    padding:72px 0 82px
}
.hero-copy {
    position:relative;
    z-index:2;
    max-width:630px
}
.hero-copy > *,
.page-hero-inner > * {
    animation:hero-enter .75s cubic-bezier(.2,.7,.25,1) both
}
.hero-copy > :nth-child(1),
.page-hero-inner > :nth-child(1) { animation-delay:.04s }
.hero-copy > :nth-child(2),
.page-hero-inner > :nth-child(2) { animation-delay:.12s }
.hero-copy > :nth-child(3),
.page-hero-inner > :nth-child(3) { animation-delay:.2s }
.hero-copy > :nth-child(4),
.page-hero-inner > :nth-child(4) { animation-delay:.28s }
.hero-copy > :nth-child(5) { animation-delay:.36s }
.eyebrow {
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 17px;
    color:#9be0d6;
    font-size:.73rem;
    font-weight:750;
    letter-spacing:.14em;
    line-height:1.4;
    text-transform:uppercase
}
.eyebrow-dot {
    width:7px;
    height:7px;
    flex:0 0 7px;
    border-radius:50%;
    background:var(--bright);
    box-shadow:0 0 0 5px rgba(53,185,173,.14)
}
.eyebrow-dark {
    color:var(--teal)
}
.hero h1,.page-hero h1 {
    max-width:720px;
    margin:0;
    font-size:clamp(2.75rem,5.5vw,5.15rem);
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    font-weight:640;
    letter-spacing:-.055em;
    line-height:1.04
}
.hero-lead {
    max-width:570px;
    margin:25px 0 0;
    color:#d0e2e2;
    font-size:clamp(1.06rem,1.45vw,1.24rem);
    line-height:1.68
}
.hero-actions {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:11px;
    margin-top:31px
}
.hero-note {
    margin:19px 0 0;
    color:#a8c3c5;
    font-size:.85rem
}
.button {
    display:inline-flex;
    min-height:49px;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:12px 19px;
    border:1px solid transparent;
    border-radius:999px;
    font-size:.9rem;
    font-weight:700;
    line-height:1.2;
    text-align:center;
    text-decoration:none;
    transition:transform .18s ease,background-color .18s ease,border-color .18s ease
}
.button:hover {
    transform:translateY(-2px)
}
.button-primary {
    background:var(--action);
    color:var(--ink)
}
.button-primary:hover {
    background:var(--action-hover)
}
.button-quiet {
    border-color:rgba(255,255,255,.27);
    color:#fff
}
.button-quiet:hover {
    background:rgba(255,255,255,.09)
}
.button-dark {
    background:var(--action);
    color:var(--ink)
}
.button-dark:hover {
    background:var(--action-hover)
}
.button-outline {
    border-color:#bfd0cd;
    color:var(--ink);
    white-space:nowrap
}
.button-outline:hover {
    border-color:var(--teal);
    background:var(--pale)
}
.tech-visual {
    position:relative;
    min-height:430px;
    display:grid;
    place-items:center
}
.tech-orbit {
    position:absolute;
    width:min(34vw,400px);
    aspect-ratio:1;
    border:1px solid rgba(164,225,216,.31);
    border-radius:50%
}
.orbit-one {
    transform:rotateX(65deg) rotate(-27deg) scaleY(.76);
    animation:orbit-one-turn 54s linear infinite
}
.orbit-two {
    width:min(28vw,330px);
    border-color:rgba(164,225,216,.19);
    transform:rotateX(65deg) rotate(45deg) scaleY(.76);
    animation:orbit-two-turn 68s linear infinite
}
.flow-map {
    position:absolute;
    inset:0;
    z-index:1;
    width:100%;
    height:100%;
    overflow:visible;
    pointer-events:none
}
.flow-map-mobile {
    display:none
}
.flow-path {
    fill:none;
    stroke:rgba(133,226,209,.78);
    stroke-width:1.35;
    stroke-linecap:round;
    stroke-dasharray:1;
    stroke-dashoffset:1;
    filter:drop-shadow(0 0 4px rgba(109,228,207,.32));
    animation:flow-draw 1.35s cubic-bezier(.2,.75,.3,1) .7s forwards
}
.flow-path-web {
    animation-delay:1s
}
.flow-node {
    fill:#9df0dd;
    opacity:0;
    filter:drop-shadow(0 0 5px rgba(109,228,207,.72));
    transform-box:fill-box;
    transform-origin:center;
    animation:flow-node-in .45s ease 1.85s forwards
}
.flow-node-web {
    animation-delay:2.15s
}
.tech-core {
    position:relative;
    z-index:2;
    display:grid;
    width:220px;
    aspect-ratio:1;
    place-items:center;
    border-radius:50%;
    animation:core-breathe 6s ease-in-out infinite
}
.tech-core::after {
    position:absolute;
    inset:-12px;
    border:1px solid rgba(164,225,216,.5);
    border-top-color:#9be0d6;
    border-right-color:transparent;
    border-radius:50%;
    content:"";
    pointer-events:none;
    animation:emblem-halo-spin 18s linear infinite
}
.core-logo {
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    filter:drop-shadow(0 0 18px rgba(74,215,192,.32));
    transform-origin:center;
    animation:logo-counter-clockwise 48s linear infinite
}
.tech-node {
    position:absolute;
    width:9px;
    height:9px;
    border-radius:50%;
    background:#9df0dd;
    box-shadow:0 0 19px #6de4cf;
    animation:node-glow 4s ease-in-out infinite
}
.node-a {
    top:15%;
    right:21%;
    animation-delay:.3s
}
.node-b {
    right:14%;
    bottom:20%;
    width:6px;
    height:6px;
    animation-delay:1.5s
}
.node-c {
    bottom:25%;
    left:15%;
    width:7px;
    height:7px;
    animation-delay:2.6s
}
.tech-card {
    position:absolute;
    z-index:3;
    display:flex;
    width:174px;
    min-height:88px;
    flex-direction:column;
    justify-content:center;
    gap:13px;
    padding:15px 17px;
    border:1px solid rgba(210,245,238,.22);
    border-radius:12px;
    background:rgba(14,42,53,.76);
    box-shadow:0 15px 42px rgba(0,0,0,.13);
    backdrop-filter:blur(12px)
}
.card-top {
    top:13%;
    left:2%;
    animation:card-float 7s ease-in-out infinite
}
.card-bottom {
    right:-2%;
    bottom:10%;
    animation:card-float 8s ease-in-out -2s infinite reverse
}
.orbit-one,.orbit-two,.tech-core,.tech-node,.tech-card { transform-origin:center }
@keyframes hero-enter {
    from { opacity:0; transform:translateY(18px) }
    to { opacity:1; transform:translateY(0) }
}
@keyframes orbit-one-turn {
    to { transform:rotateX(65deg) rotate(333deg) scaleY(.76) }
}
@keyframes orbit-two-turn {
    to { transform:rotateX(65deg) rotate(-315deg) scaleY(.76) }
}
@keyframes core-breathe {
    0%,100% { transform:scale(.98) }
    50% { transform:scale(1.035) }
}
@keyframes emblem-halo-spin {
    to { transform:rotate(360deg) }
}
@keyframes logo-counter-clockwise {
    to { transform:rotate(-360deg) }
}
@keyframes node-glow {
    0%,100% { opacity:.65; transform:scale(.82) }
    50% { opacity:1; transform:scale(1.18) }
}
@keyframes flow-draw {
    to { stroke-dashoffset:0 }
}
@keyframes flow-node-in {
    from { opacity:0; transform:scale(.35) }
    to { opacity:1; transform:scale(1) }
}
@keyframes card-float {
    0%,100% { transform:translateY(0) }
    50% { transform:translateY(-7px) }
}
.card-kicker {
    color:#c3ddda;
    font-size:.58rem;
    font-weight:750;
    letter-spacing:.12em
}
.card-lines {
    display:grid;
    gap:5px
}
.card-lines i {
    display:block;
    width:88%;
    height:3px;
    border-radius:4px;
    background:linear-gradient(90deg,#74d7c7 0 37%,rgba(189,221,218,.25) 37%)
}
.card-lines i:nth-child(2) {
    width:70%;
    background:rgba(189,221,218,.25)
}
.card-lines i:nth-child(3) {
    width:52%;
    background:rgba(189,221,218,.18)
}
.card-dots {
    display:flex;
    gap:6px
}
.card-dots i {
    width:7px;
    height:7px;
    border-radius:50%;
    background:#72cdbd
}
.card-dots i:nth-child(2) {
    opacity:.64
}
.card-dots i:nth-child(3) {
    opacity:.35
}
.hero-gridline {
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(112,214,195,.66),transparent)
}
.section {
    width:min(calc(100% - 48px),var(--width));
    margin:0 auto;
    padding:106px 0
}
.section-heading {
    max-width:690px;
    margin-bottom:43px
}
.section-heading h2,.content-intro h2,.approach-inner h2,.feature-band h2,.contact-cta h2,.web-detail-inner h2 {
    margin:0;
    font-size:clamp(2rem,3.8vw,3.25rem);
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    font-weight:680;
    letter-spacing:-.035em;
    line-height:1.12
}
.section-heading>p:last-child,.content-intro>p:last-child {
    max-width:630px;
    margin:17px 0 0;
    color:var(--soft);
    font-size:1.05rem
}
.service-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px
}
.service-card {
    position:relative;
    min-height:338px;
    padding:31px;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
    box-shadow:0 5px 22px rgba(20,48,57,.035)
}
.service-card:after {
    position:absolute;
    right:-40px;
    bottom:-85px;
    width:220px;
    aspect-ratio:1;
    border:1px solid #dceae7;
    border-radius:50%;
    content:""
}
.service-card-web:after {
    right:-65px;
    bottom:-105px;
    width:260px;
    border-style:dashed
}
.service-icon {
    display:grid;
    width:50px;
    height:50px;
    place-items:center;
    border-radius:14px;
    background:var(--pale)
}
.icon-window {
    position:relative;
    display:flex;
    width:27px;
    height:21px;
    gap:3px;
    padding:5px 4px;
    border:1.5px solid var(--teal);
    border-radius:4px
}
.icon-window:after {
    position:absolute;
    right:4px;
    bottom:-5px;
    left:4px;
    height:2px;
    background:var(--teal);
    content:""
}
.icon-window i {
    width:3px;
    height:3px;
    border-radius:50%;
    background:var(--teal)
}
.icon-web {
    position:relative;
    display:block;
    width:27px;
    height:21px;
    border:1.5px solid var(--teal);
    border-radius:4px
}
.icon-web:before {
    position:absolute;
    top:5px;
    right:0;
    left:0;
    border-top:1px solid var(--teal);
    content:""
}
.icon-web i {
    position:absolute;
    top:2px;
    width:2px;
    height:2px;
    border-radius:50%;
    background:var(--teal)
}
.icon-web i:first-child {
    left:4px
}
.icon-web i:nth-child(2) {
    left:8px
}
.icon-web i:nth-child(3) {
    left:12px
}
.card-index {
    margin:21px 0 8px;
    color:#6d858b;
    font-size:.67rem;
    font-weight:750;
    letter-spacing:.13em
}
.service-card h3,.capability-card h3,.web-steps h3 {
    position:relative;
    z-index:1;
    margin:0;
    font-size:1.42rem;
    font-family:Inter,"Segoe UI",Arial,sans-serif;
    font-weight:680;
    letter-spacing:-.025em;
    line-height:1.25
}
.service-card>p:not(.card-index) {
    position:relative;
    z-index:1;
    max-width:450px;
    margin:13px 0 21px;
    color:var(--soft)
}
.text-link {
    position:relative;
    z-index:1;
    color:var(--teal);
    font-size:.9rem;
    font-weight:750;
    text-decoration:none
}
.text-link span {
    display:inline-block;
    margin-left:5px;
    transition:transform .18s ease
}
.text-link:hover span {
    transform:translateX(4px)
}
.approach-band,.feature-band,.web-detail-band {
    background:#eaf3f1
}
.approach-inner,.feature-band-inner {
    display:grid;
    grid-template-columns:1fr .78fr;
    align-items:center;
    gap:80px;
    width:min(calc(100% - 48px),var(--width));
    margin:0 auto;
    padding:79px 0
}
.approach-inner .eyebrow,.feature-band .eyebrow {
    color:var(--teal)
}
.approach-inner h2,.feature-band h2 {
    max-width:600px
}
.approach-inner>p {
    margin:0;
    color:var(--soft);
    font-size:1.04rem
}
.partner-strip {
    border-top:1px solid #e2e9e7;
    border-bottom:1px solid #e2e9e7;
    background:linear-gradient(105deg,#f7f9f8,#fff 52%,#f6f8f7)
}
.partner-strip-inner {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:30px;
    width:min(calc(100% - 48px),var(--width));
    margin:0 auto;
    padding:23px 0
}
.partner-logo-list {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:center;
    gap:14px;
    margin:0;
    padding:0;
    list-style:none
}
.partner-logo-list li {
    display:flex;
    min-width:0;
    min-height:54px;
    align-items:center;
    justify-content:center;
    padding:2px 8px
}
.partner-logo-iubenda {
    display:block;
    width:145px;
    max-width:100%;
    height:auto
}
.partner-logo-adobe {
    display:block;
    width:58px;
    max-width:100%;
    height:auto
}
.partner-logo-hp {
    display:block;
    width:70px;
    max-width:100%;
    height:auto
}
.partner-logo-dell {
    display:block;
    width:138px;
    max-width:100%;
    height:auto
}
.partner-logo-symantec {
    display:block;
    width:140px;
    max-width:100%;
    height:auto
}
.button.button-partners {
    border-color:#e0a42f;
    background:linear-gradient(135deg,#f8ca67,#edb341);
    color:#193944;
    box-shadow:0 7px 18px rgba(137,99,28,.13)
}
.button.button-partners:hover {
    background:linear-gradient(135deg,#ffda82,#f4bd50);
    box-shadow:0 10px 22px rgba(137,99,28,.19)
}
.button-partners span {
    transition:transform .18s ease
}
.button-partners:hover span {
    transform:translateX(3px)
}
.partner-details-section {
    padding-top:91px;
    padding-bottom:96px
}
.partner-details-intro {
    max-width:790px;
    margin:0 auto 39px;
    text-align:center
}
.partner-details-intro h2 {
    margin:0;
    font-size:clamp(1.9rem,3.5vw,2.8rem);
    font-weight:680;
    letter-spacing:-.035em;
    line-height:1.14
}
.partner-details-intro>p:last-child {
    max-width:680px;
    margin:16px auto 0;
    color:var(--soft);
    font-size:1.03rem
}
.partner-details-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:17px
}
@media(max-width:980px) {
    .partner-details-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}
.partner-detail-card {
    display:flex;
    min-height:286px;
    flex-direction:column;
    align-items:flex-start;
    padding:24px 25px 23px;
    border:1px solid #dfe7e5;
    border-radius:15px;
    background:linear-gradient(145deg,#fff,#fbfcfc);
    box-shadow:0 9px 25px rgba(20,48,57,.045)
}
.partner-detail-logo-area {
    display:flex;
    width:100%;
    min-height:96px;
    align-items:center;
    justify-content:center;
    margin-bottom:13px;
    border-bottom:1px solid #edf0ef
}
.partner-detail-logo-area .partner-logo-iubenda {
    width:153px
}
.partner-detail-logo-area .partner-logo-dell {
    width:170px
}
.partner-detail-logo-area .partner-logo-adobe {
    width:76px
}
.partner-detail-logo-area .partner-logo-symantec {
    width:176px
}
.partner-detail-logo-area .partner-logo-hp {
    width:118px
}
.partner-detail-status {
    margin:0 0 9px;
    color:#176f72;
    font-size:.83rem;
    font-weight:760;
    letter-spacing:.015em
}
.partner-detail-card>p:not(.partner-detail-status) {
    margin:0 0 16px;
    color:var(--soft);
    font-size:.93rem;
    line-height:1.55
}
.partner-card-link {
    position:relative;
    z-index:1;
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:auto;
    color:#116c71;
    font-size:.87rem;
    font-weight:750;
    text-decoration-thickness:1px;
    text-underline-offset:3px
}
.partner-card-link span {
    transition:transform .18s ease
}
.partner-card-link:hover span {
    transform:translate(2px,-1px)
}
.contact-cta {
    background:#fff
}
.contact-cta-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    width:min(calc(100% - 48px),var(--width));
    margin:0 auto;
    padding:78px 0
}
.contact-cta h2 {
    max-width:700px
}
.contact-cta .eyebrow {
    margin-bottom:12px
}
.page-hero {
    position:relative;
    overflow:hidden;
    background:#123440;
    color:#fff
}
.page-hero:after {
    position:absolute;
    top:-190px;
    right:-95px;
    width:490px;
    height:490px;
    border:1px solid rgba(166,222,215,.2);
    border-radius:50%;
    box-shadow:0 0 0 40px rgba(166,222,215,.035),0 0 0 90px rgba(166,222,215,.025);
    content:""
}
.page-hero-software {
    background:radial-gradient(ellipse at 90% 60%,rgba(38,131,131,.5),transparent 36%),#123440
}
.page-hero-web {
    background:radial-gradient(ellipse at 90% 60%,rgba(44,127,150,.48),transparent 36%),#123440
}
.page-hero-contact {
    background:radial-gradient(ellipse at 90% 60%,rgba(44,127,150,.42),transparent 36%),#123440
}
.page-hero-inner {
    position:relative;
    z-index:1;
    width:min(calc(100% - 48px),var(--width));
    margin:0 auto;
    padding:84px 0 92px
}
.page-hero h1 {
    max-width:860px;
    font-size:clamp(2.7rem,5vw,4.6rem)
}
.page-lead {
    max-width:710px;
    margin:21px 0 26px;
    color:#d0e2e2;
    font-size:clamp(1.06rem,1.5vw,1.22rem);
    line-height:1.7
}
.page-hero .button {
    margin-top:5px
}
.content-section {
    padding-top:94px;
    padding-bottom:96px
}
.content-intro {
    max-width:800px;
    margin-bottom:43px
}
.capability-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:13px
}
.capability-card {
    min-height:218px;
    padding:23px 20px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff
}
.capability-number {
    display:block;
    margin-bottom:26px;
    color:#5ca9a3;
    font-size:.74rem;
    font-weight:750;
    letter-spacing:.1em
}
.capability-card h3 {
    font-size:1.1rem
}
.capability-card p {
    margin:10px 0 0;
    color:var(--soft);
    font-size:.9rem;
    line-height:1.55
}
.feature-band-inner {
    align-items:start
}
.feature-band h2 {
    font-size:clamp(1.9rem,3.3vw,2.8rem)
}
.feature-list {
    display:grid;
    gap:15px;
    margin:8px 0 0;
    padding:0;
    list-style:none
}
.feature-list li {
    position:relative;
    padding:0 0 15px 27px;
    border-bottom:1px solid #d0e2de;
    color:var(--soft)
}
.feature-list li:before {
    position:absolute;
    top:7px;
    left:0;
    width:10px;
    height:10px;
    border:2px solid var(--teal);
    border-radius:50%;
    content:""
}
.web-steps {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px
}
.web-steps article {
    min-height:214px;
    padding:23px;
    border-top:2px solid #83c9bd;
    background:#fff
}
.web-steps article>span {
    display:block;
    margin-bottom:25px;
    color:var(--teal);
    font-size:.75rem;
    font-weight:800;
    letter-spacing:.1em
}
.web-steps h3 {
    font-size:1.16rem
}
.web-steps p {
    margin:9px 0 0;
    color:var(--soft);
    font-size:.91rem
}
.web-detail-inner {
    display:grid;
    grid-template-columns:.85fr 1fr;
    align-items:center;
    gap:76px;
    width:min(calc(100% - 48px),var(--width));
    margin:0 auto;
    padding:84px 0
}
.web-detail-inner>div:last-child>p:not(.eyebrow) {
    max-width:560px;
    margin:17px 0 20px;
    color:var(--soft)
}
.detail-visual {
    position:relative;
    min-height:270px;
    padding:0 28px 28px;
    border:1px solid #bfd7d2;
    border-radius:15px;
    background:rgba(255,255,255,.77);
    box-shadow:0 25px 45px rgba(30,73,78,.08);
    transform:rotate(-2deg)
}
.browser-top {
    display:flex;
    height:39px;
    align-items:center;
    gap:6px;
    border-bottom:1px solid #d8e6e2
}
.browser-top i {
    width:7px;
    height:7px;
    border-radius:50%;
    background:#a8c9c2
}
.browser-layout {
    display:grid;
    grid-template-columns:1fr 1.15fr;
    align-content:center;
    gap:13px 18px;
    height:210px;
    padding:27px 18px
}
.browser-block {
    grid-row:span 3;
    border-radius:9px;
    background:linear-gradient(145deg,#a6ded2,#317f83)
}
.browser-line {
    align-self:end;
    height:8px;
    border-radius:9px;
    background:#b7d1cc
}
.browser-line.short {
    width:66%;
    align-self:start
}
.browser-button {
    width:90px;
    height:25px;
    border-radius:20px;
    background:#1d6d75
}
.contact-section {
    padding-top:72px
}
.contact-card {
    max-width:760px;
    margin:0 auto;
    padding:clamp(25px,5vw,52px);
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fff;
    box-shadow:var(--shadow)
}
.contact-card h2 {
    margin:0 0 12px;
    font-size:clamp(1.8rem,3vw,2.5rem);
    letter-spacing:-.04em
}
.contact-card address {
    margin:25px 0 0;
    padding-top:18px;
    border-top:1px solid var(--line);
    color:var(--soft);
    font-size:.9rem;
    font-style:normal;
    line-height:1.65
}
.contact-methods {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-top:26px
}
.contact-methods a {
    position:relative;
    display:grid;
    gap:3px;
    min-height:76px;
    padding:14px 14px 14px 58px;
    border:1px solid #dce9e5;
    border-radius:10px;
    background:#f2f8f6;
    text-decoration:none;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease
}
.contact-methods a:hover {
    transform:translateY(-2px);
    border-color:#a8cbc3;
    box-shadow:0 8px 20px rgba(21,75,74,.1)
}
.contact-methods span {
    color:#71848a;
    font-size:.75rem
}
.contact-methods strong {
    font-size:1rem
}
.contact-methods .whatsapp-contact {
    border:1px solid rgba(37,211,102,.18);
    background:linear-gradient(135deg,#f1fbf4,#e8f7ed);
}
.contact-methods .whatsapp-contact:hover {
    border-color:rgba(37,211,102,.42);
    box-shadow:0 8px 20px rgba(37,211,102,.12)
}
.contact-methods .contact-method-icon {
    position:absolute;
    top:50%;
    left:16px;
    display:grid;
    width:30px;
    height:30px;
    place-items:center;
    transform:translateY(-50%);
    border-radius:50%;
    border:1px solid #c3ded7;
    background:#e0f0ec;
    color:#146c70
}
.contact-methods .whatsapp-contact .contact-method-icon {
    border-color:#25d366;
    background:#25d366;
    color:#fff
}
.contact-method-icon svg {
    width:19px;
    height:19px;
    fill:none;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.45
}
.vat-number {
    margin:24px 0 0;
    color:#71848a;
    font-size:.85rem
}
.site-footer {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:radial-gradient(ellipse at 76% 14%,rgba(40,124,127,.22),transparent 38%),#102c38;
    color:#dce9e8
}
.footer-watermark {
    position:absolute;
    z-index:0;
    top:22px;
    right:max(20px,calc((100% - var(--width))/2));
    width:clamp(300px,43vw,520px);
    opacity:.18;
    color:#9be0d6;
    filter:blur(1.8px);
    pointer-events:none;
    transform:rotate(-8deg);
    transform-origin:center;
    animation:footer-watermark-float 12s ease-in-out infinite
}
.footer-watermark svg {
    display:block;
    width:100%;
    height:auto;
    fill:rgba(155,224,214,.035);
    stroke:currentColor;
    stroke-width:1.4;
    stroke-linecap:round;
    stroke-linejoin:round
}
@keyframes footer-watermark-float {
    0%,100% { transform:translateY(0) rotate(-8deg) }
    50% { transform:translateY(8px) rotate(-5deg) }
}
.footer-grid {
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:1.25fr 1fr .7fr;
    gap:60px;
    width:min(calc(100% - 48px),var(--width));
    margin:0 auto;
    padding:55px 0 42px
}
.footer-brand {
    color:#fff;
    font-size:1.45rem;
    font-weight:800;
    letter-spacing:.14em;
    text-decoration:none
}
.footer-grid p {
    margin:10px 0 0;
    color:#aec3c4;
    font-size:.9rem
}
.footer-grid h2 {
    margin:2px 0 0;
    color:#fff;
    font-size:.87rem;
    letter-spacing:.03em
}
.footer-contact-list {
    display:grid;
    gap:11px;
    margin-top:13px
}
.footer-contact-item {
    display:grid;
    grid-template-columns:19px 1fr;
    align-items:start;
    gap:10px;
    margin:0!important;
    color:#aec3c4;
    font-size:.88rem
}
.footer-contact-item a {
    color:#dce9e8;
    text-decoration:none;
    text-decoration-color:rgba(220,233,232,.45);
    text-underline-offset:3px;
    transition:color .18s ease
}
.footer-contact-item a:hover {
    color:#9be0d6;
    text-decoration:underline
}
.footer-contact-icon {
    display:grid;
    width:19px;
    height:19px;
    margin-top:2px;
    place-items:center;
    color:#9be0d6
}
.footer-contact-icon svg {
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.6
}
.footer-grid a:not(.footer-brand),.footer-bottom a {
    color:#dce9e8;
    text-decoration-color:rgba(220,233,232,.45);
    text-underline-offset:3px
}
.footer-utilities {
    display:grid;
    gap:9px;
    margin-top:14px
}
.footer-utility-link {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:43px;
    padding:8px 11px;
    border:1px solid rgba(242,181,68,.78);
    border-radius:9px;
    background:linear-gradient(135deg,#f6c45d,#e8aa35);
    box-shadow:0 5px 14px rgba(0,0,0,.12);
    color:#183642!important;
    font-size:.82rem;
    font-weight:750;
    text-decoration:none!important;
    transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease
}
.footer-utility-link:hover {
    transform:translateY(-2px);
    background:linear-gradient(135deg,#ffd373,#f2b544);
    box-shadow:0 9px 20px rgba(0,0,0,.2)
}
.footer-utility-link--game {
    border-color:rgba(91,209,191,.85);
    background:linear-gradient(135deg,#b7eee4,#67cbbb)
}
.footer-utility-link--game:hover {
    background:linear-gradient(135deg,#d0f8f1,#83ddce)
}
.footer-utility-link:focus-visible {
    outline:2px solid #fff;
    outline-offset:3px
}
.footer-utility-icon {
    display:grid;
    flex:0 0 25px;
    width:25px;
    height:25px;
    place-items:center;
    border-radius:7px;
    background:rgba(16,44,56,.1)
}
.footer-utility-icon svg {
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:1.6
}
.footer-grid a:hover,.footer-bottom a:hover {
    color:#9be0d6
}
.footer-bottom {
    position:relative;
    z-index:1;
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:9px 24px;
    width:min(calc(100% - 48px),var(--width));
    margin:0 auto;
    padding:17px 0 21px;
    border-top:1px solid rgba(220,233,232,.15);
    color:#9fb4b6;
    font-size:.76rem
}
.page-hero-game {
    background:
        radial-gradient(circle at 82% 25%,rgba(68,190,174,.18),transparent 25%),
        linear-gradient(120deg,#102c3a,#174452 65%,#145c61)
}
.page-hero-iubenda {
    background:
        radial-gradient(circle at 83% 25%,rgba(68,190,174,.17),transparent 24%),
        linear-gradient(120deg,#102c3a,#174452 68%,#145c61)
}
.iubenda-section {
    padding-top:58px;
    padding-bottom:88px
}
.iubenda-content {
    max-width:900px;
    margin:0 auto;
    color:var(--soft)
}
.iubenda-content>p:first-child {
    margin:0 0 36px;
    padding:19px 22px;
    border-left:3px solid #70cbbd;
    border-radius:0 12px 12px 0;
    background:#edf7f4;
    color:var(--ink);
    font-size:1.05rem
}
.iubenda-content h2 {
    margin:48px 0 22px;
    color:var(--ink);
    font-size:clamp(1.75rem,3vw,2.3rem);
    line-height:1.2
}
.iubenda-content h2:first-of-type {
    margin-top:0
}
.iubenda-topic {
    margin:0 0 30px;
    padding:0 0 27px;
    border-bottom:1px solid var(--line)
}
.iubenda-topic h3 {
    margin:28px 0 13px;
    color:var(--teal);
    font-size:1.28rem;
    line-height:1.3
}
.iubenda-topic:first-of-type h3 {
    margin-top:0
}
.iubenda-content p {
    margin:0 0 14px
}
.iubenda-content ul {
    margin:10px 0 20px;
    padding-left:1.35rem
}
.iubenda-content li {
    margin:7px 0;
    padding-left:.2rem
}
.iubenda-question {
    margin:17px 0;
    padding:15px 18px;
    border-left:3px solid #90d5ca;
    border-radius:0 10px 10px 0;
    background:#f1f7f5
}
.iubenda-question h4 {
    margin:0 0 7px;
    color:var(--ink);
    font-size:.97rem;
    line-height:1.45
}
.iubenda-question p:last-child {
    margin-bottom:0
}
.game-section {
    padding-top:60px;
    padding-bottom:86px
}
.game-intro {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
    margin-bottom:25px
}
.game-intro h2 {
    margin:2px 0 8px;
    font-size:clamp(2rem,4vw,2.8rem);
    line-height:1.1
}
.game-intro p:not(.eyebrow) {
    max-width:650px;
    margin:0;
    color:var(--soft)
}
.game-card {
    padding:16px;
    border:1px solid var(--line);
    border-radius:20px;
    background:#fff;
    box-shadow:var(--shadow)
}
.game-screen {
    position:relative;
    height:260px;
    overflow:hidden;
    border:1px solid rgba(157,213,207,.25);
    border-radius:14px;
    background:
        radial-gradient(circle at 80% 18%,rgba(78,190,177,.12),transparent 24%),
        linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
        linear-gradient(135deg,#123442,#1a4851);
    background-size:auto,32px 32px,32px 32px,auto;
    touch-action:manipulation
}
.game-hud {
    position:absolute;
    z-index:3;
    top:18px;
    right:20px;
    display:flex;
    align-items:baseline;
    gap:8px;
    color:#d8ece9;
    font-size:.72rem;
    letter-spacing:.1em
}
.game-hud>strong {
    color:#fff;
    font-size:1.2rem;
    letter-spacing:0
}
.game-best-label {
    display:inline-flex;
    gap:6px;
    margin-left:9px;
    padding-left:12px;
    border-left:1px solid rgba(220,240,236,.3)
}
.game-best-label strong {
    color:#f2c05c;
    letter-spacing:0
}
.game-player {
    position:absolute;
    z-index:2;
    bottom:31px;
    left:62px;
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    appearance:none;
    -webkit-appearance:none;
    padding:0;
    border:4px solid #62d1c0;
    border-radius:50%;
    background:#173f4b;
    color:inherit;
    cursor:pointer;
    box-shadow:0 0 22px rgba(98,209,192,.28),inset 0 0 0 4px rgba(255,255,255,.06)
}
.game-player:hover {
    border-color:#9ce9db;
    box-shadow:0 0 27px rgba(98,209,192,.45),inset 0 0 0 4px rgba(255,255,255,.1)
}
.game-player span {
    width:10px;
    height:10px;
    border-radius:50%;
    background:#f2b544;
    box-shadow:0 0 12px rgba(242,181,68,.7)
}
.game-obstacle {
    position:absolute;
    z-index:2;
    bottom:31px;
    left:0;
    width:36px;
    height:30px;
    color:#f2b544;
    will-change:transform
}
.game-obstacle svg {
    width:100%;
    height:100%;
    fill:none;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:2.5
}
.game-ground {
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    height:32px;
    border-top:1px solid rgba(130,211,199,.48);
    background:linear-gradient(180deg,rgba(27,89,94,.45),rgba(10,39,50,.78))
}
.game-ground::after {
    position:absolute;
    top:12px;
    right:0;
    left:0;
    height:1px;
    background:repeating-linear-gradient(90deg,rgba(148,215,203,.28) 0 22px,transparent 22px 40px);
    content:""
}
.game-overlay {
    position:absolute;
    z-index:4;
    inset:0;
    display:grid;
    place-items:center;
    padding:28px;
    background:rgba(9,31,41,.38);
    text-align:center
}
.game-overlay[hidden] {
    display:none
}
.game-overlay p {
    max-width:390px;
    margin:0;
    padding:15px 20px;
    border:1px solid rgba(219,240,235,.24);
    border-radius:12px;
    background:rgba(15,45,56,.9);
    color:#fff;
    font-weight:650;
    box-shadow:0 12px 35px rgba(0,0,0,.2)
}
.game-controls {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:16px 4px 4px
}
.game-buttons {
    display:flex;
    flex-wrap:wrap;
    gap:10px
}
.game-jump {
    min-width:142px;
    min-height:54px;
    padding:14px 24px;
    font-size:1rem;
    font-weight:800;
    box-shadow:0 8px 18px rgba(21,45,57,.12)
}
.game-jump.button-primary {
    border-color:#df9d2d;
    background:linear-gradient(135deg,#ffd373,#f2b544);
    color:#183642;
    box-shadow:0 8px 18px rgba(242,181,68,.3)
}
.game-jump.button-primary:hover {
    transform:translateY(-2px);
    background:linear-gradient(135deg,#ffdc8e,#f7c35c);
    box-shadow:0 10px 22px rgba(242,181,68,.4)
}
.game-jump.button-quiet {
    border:1px solid #cadbd8;
    background:#f2f7f6;
    color:var(--ink);
    box-shadow:none
}
.game-start.button-quiet {
    border-color:#cadbd8;
    color:var(--ink)
}
.game-jump:disabled {
    cursor:not-allowed;
    opacity:.55;
    box-shadow:none
}
.game-status {
    margin:0;
    color:var(--soft);
    font-size:.88rem
}
.game-instructions {
    margin:14px 4px 2px;
    color:#64767c;
    font-size:.82rem
}
@media(max-width:980px) {
    .header-inner {
    min-height:96px;
    gap:16px
}
.brand {
    flex-basis:230px;
    margin-left:-12px;
    padding:8px 12px
}
.brand img {
    max-width:206px
}
.site-header.is-scrolled .header-inner {
    min-height:72px
}
.site-header.is-scrolled .brand {
    flex-basis:210px;
    margin-left:-8px;
    padding:4px 8px
}
.site-header.is-scrolled .brand img {
    max-width:180px
}
.primary-nav {
    gap:10px
}
.primary-nav a {
    font-size:.77rem
}
.primary-nav .nav-support {
    gap:7px;
    margin-left:0;
    padding:9px 11px;
    font-size:.75rem
}
.nav-support-icon {
    width:19px;
    height:19px
}
.hero-inner {
    grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);
    gap:22px
}
.tech-visual {
    min-height:370px
}
.tech-card {
    width:155px
}
.capability-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.approach-inner,.feature-band-inner {
    gap:42px
}
.web-detail-inner {
    gap:45px
}

}
@media(max-width:900px) {
    .header-inner {
    width:min(calc(100% - 40px),1280px);
    min-height:82px;
    gap:14px
}
.brand {
    flex:0 1 220px;
    margin-left:-10px;
    padding:6px 10px
}
.brand img {
    max-width:200px
}
.site-header.is-scrolled .header-inner {
    min-height:68px
}
.site-header.is-scrolled .brand {
    flex-basis:190px;
    margin-left:-8px;
    padding:4px 8px
}
.site-header.is-scrolled .brand img {
    max-width:174px
}
.menu-toggle {
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:10px 13px;
    border:1px solid #c7d8d5;
    border-radius:999px;
    background:#fff;
    color:var(--ink);
    font:inherit;
    font-size:.84rem;
    font-weight:700;
    cursor:pointer
}
.menu-icon {
    display:grid;
    width:17px;
    gap:4px
}
.menu-icon span {
    display:block;
    height:2px;
    border-radius:2px;
    background:var(--teal)
}
.primary-nav {
    display:flex;
    position:absolute;
    top:100%;
    right:0;
    left:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px 18px 18px;
    border-bottom:1px solid var(--line);
    background:#fff;
    box-shadow:0 15px 25px rgba(21,45,57,.08)
}
.has-js .primary-nav {
    display:none
}
.has-js .primary-nav.is-open {
    display:flex
}
.primary-nav a {
    padding:12px 9px;
    font-size:.93rem
}
.primary-nav a.is-current:not(.nav-contact):not(.nav-support) {
    padding-left:12px;
    border-radius:8px;
    background:var(--pale);
    text-decoration:none
}
.primary-nav .nav-contact {
    margin-top:7px;
    text-align:center
}
.primary-nav .nav-support {
    justify-content:center;
    margin:10px 0 0;
    padding:12px 15px;
    font-size:.93rem
}
}
@media(max-width:760px) {
    .header-inner {
    width:min(calc(100% - 36px),1280px);
    min-height:76px
}
.brand {
    flex-basis:205px;
    margin-left:0;
    padding:0
}
.brand img {
    width:205px
}
.site-header.is-scrolled .header-inner {
    min-height:64px
}
.site-header.is-scrolled .brand {
    flex-basis:175px;
    margin-left:0;
    padding:0
}
.site-header.is-scrolled .brand img {
    width:100%;
    max-width:175px
}
.menu-toggle {
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:10px 13px;
    border:1px solid #c7d8d5;
    border-radius:999px;
    background:#fff;
    color:var(--ink);
    font:inherit;
    font-size:.84rem;
    font-weight:700;
    cursor:pointer
}
.menu-icon {
    display:grid;
    width:17px;
    gap:4px
}
.menu-icon span {
    display:block;
    height:2px;
    border-radius:2px;
    background:var(--teal)
}
.primary-nav {
    display:flex;
    position:absolute;
    top:100%;
    right:0;
    left:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px 18px 18px;
    border-bottom:1px solid var(--line);
    background:#fff;
    box-shadow:0 15px 25px rgba(21,45,57,.08)
}
.has-js .primary-nav {
    display:none
}
.has-js .primary-nav.is-open {
    display:flex
}
.primary-nav a {
    padding:12px 9px;
    font-size:.93rem
}
.primary-nav .nav-contact {
    margin-top:7px;
    text-align:center
}
.hero-inner {
    grid-template-columns:1fr;
    gap:5px;
    width:min(calc(100% - 40px),var(--width));
    min-height:0;
    padding:65px 0 52px
}
.hero h1 {
    max-width:600px;
    font-size:clamp(2.7rem,11vw,4rem)
}
.hero-lead {
    font-size:1.04rem
}
.tech-visual {
    min-height:300px;
    margin-top:8px
}
.flow-map-desktop {
    display:none
}
.flow-map-mobile {
    display:inline
}
.tech-orbit {
    width:min(75vw,320px)
}
.orbit-two {
    width:min(62vw,265px)
}
.tech-core {
    width:184px
}
.tech-card {
    width:143px;
    min-height:74px;
    padding:12px
}
.card-top {
    top:8%;
    left:0
}
.card-bottom {
    right:0;
    bottom:8%
}
.section {
    width:min(calc(100% - 40px),var(--width));
    padding:76px 0
}
.service-grid {
    grid-template-columns:1fr
}
.service-card {
    min-height:0;
    padding:26px
}
.approach-inner,.feature-band-inner {
    grid-template-columns:1fr;
    gap:20px;
    width:min(calc(100% - 40px),var(--width));
    padding:61px 0
}
.partner-strip-inner {
    grid-template-columns:1fr;
    gap:15px;
    width:min(calc(100% - 40px),var(--width));
    padding:19px 0
}
.partner-logo-list {
    gap:7px
}
.partner-logo-list li {
    padding:2px 4px
}
.button.button-partners {
    justify-self:center
}
.partner-details-section {
    padding-top:66px;
    padding-bottom:70px
}
.partner-details-grid {
    grid-template-columns:1fr
}
.partner-detail-card {
    min-height:0
}
.partner-details-intro {
    margin-bottom:30px
}
.contact-cta-inner {
    align-items:flex-start;
    flex-direction:column;
    width:min(calc(100% - 40px),var(--width));
    padding:60px 0
}
.page-hero-inner {
    width:min(calc(100% - 40px),var(--width));
    padding:65px 0 70px
}
.page-hero h1 {
    font-size:clamp(2.6rem,10vw,4rem)
}
.content-section {
    padding-top:70px;
    padding-bottom:70px
}
.web-steps {
    grid-template-columns:1fr
}
.web-steps article {
    min-height:0
}
.web-steps article>span {
    margin-bottom:15px
}
.web-detail-inner {
    grid-template-columns:1fr;
    gap:36px;
    width:min(calc(100% - 40px),var(--width));
    padding:66px 0
}
.detail-visual {
    min-height:230px
}
.browser-layout {
    height:170px
}
.contact-section {
    padding-top:54px
}
.contact-methods {
    grid-template-columns:1fr
}
.footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px 20px;
    width:min(calc(100% - 40px),var(--width));
    padding:43px 0 33px
}
.footer-grid>div:first-child {
    grid-column:1/-1
}
.footer-bottom {
    width:min(calc(100% - 40px),var(--width))
}

}
@media(max-width:420px) {
    .partner-logo-list {
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.partner-logo-list li:last-child {
    grid-column:1/-1
}
    .header-inner {
    width:calc(100% - 28px)
}
.brand {
    flex-basis:175px
}
.brand img {
    width:175px
}
.site-header.is-scrolled .brand {
    flex-basis:158px
}
.site-header.is-scrolled .brand img {
    max-width:158px
}
.menu-toggle {
    padding:9px 11px
}
.hero-inner,.section,.page-hero-inner,.approach-inner,.feature-band-inner,.contact-cta-inner,.web-detail-inner {
    width:calc(100% - 32px)
}
.hero-actions {
    align-items:stretch;
    flex-direction:column
}
.hero-actions .button {
    width:100%
}
.tech-visual {
    min-height:260px
}
.tech-card {
    width:128px
}
.capability-grid {
    grid-template-columns:1fr
}
.capability-card {
    min-height:0
}
.capability-number {
    margin-bottom:15px
}
.footer-grid {
    grid-template-columns:1fr;
    gap:24px;
    width:calc(100% - 32px)
}
.footer-grid>div:first-child {
    grid-column:auto
}
.footer-bottom {
    flex-direction:column;
    width:calc(100% - 32px)
}

}
@media(max-width:760px) {
    .game-intro {
        align-items:flex-start;
        flex-direction:column;
        gap:14px
    }
    .game-controls {
        align-items:flex-start;
        flex-direction:column
    }
}
@media(max-width:420px) {
    .game-card {
        padding:10px
    }
    .game-screen {
        height:230px
    }
    .game-player {
        left:34px
    }
    .game-hud {
        right:12px;
        gap:5px;
        font-size:.64rem
    }
    .game-best-label {
        margin-left:4px;
        padding-left:7px
    }
}
@media(prefers-reduced-motion:reduce) {
    @view-transition {
        navigation:none
    }
    html {
    scroll-behavior:auto
}
*,*::before,*::after {
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important
}
.flow-path {
    animation:none!important;
    stroke-dashoffset:0
}
.flow-node {
    animation:none!important;
    opacity:1;
    transform:none
}

}
