:root {
    --navy:#061942;
    --deep:#020d27;
    --blue:#0878f9;
    --cyan:#17c8ef;
    --violet:#7145f5;
    --text:#10203d;
    --muted:#66758f;
    --surface:#f7f9fc;
    --border:#e4e9f1;
    --max:1180px;
}

* { box-sizing:border-box; }

html { scroll-behavior:smooth; }

body {
    margin:0;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,
        BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--text);
    background:#fff;
    line-height:1.6;
}

a {
    color:inherit;
    text-decoration:none;
}

.container {
    width:min(calc(100% - 40px),var(--max));
    margin:0 auto;
}

.site-header {
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--border);
}

.nav {
    min-height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
}

.brand img {
    display:block;
    width:180px;
    max-height:52px;
    object-fit:contain;
    object-position:left center;
}

.nav-links {
    display:flex;
    gap:30px;
    align-items:center;
    font-size:15px;
    font-weight:650;
    color:#34425d;
}

.nav-links a:hover {
    color:var(--blue);
}

.contact-link {
    font-weight:750;
    color:var(--blue);
}

.hero {
    padding:110px 0 100px;
    overflow:hidden;
    background:
        radial-gradient(circle at 81% 18%,rgba(23,200,239,.18),transparent 27%),
        radial-gradient(circle at 67% 88%,rgba(113,69,245,.10),transparent 30%),
        linear-gradient(180deg,#fff,#f8fbff);
}

.hero-grid {
    display:grid;
    grid-template-columns:1.08fr .92fr;
    align-items:center;
    gap:70px;
}

.eyebrow {
    color:var(--blue);
    font-size:12px;
    font-weight:850;
    letter-spacing:.16em;
    text-transform:uppercase;
}

h1 {
    margin:16px 0 23px;
    color:var(--deep);
    font-size:clamp(48px,6vw,76px);
    line-height:1.02;
    letter-spacing:-.045em;
}

.gradient-text {
    background:linear-gradient(90deg,var(--blue),var(--cyan),var(--violet));
    -webkit-background-clip:text;
    color:transparent;
}

.hero-copy {
    max-width:680px;
    margin:0 0 31px;
    font-size:19px;
    color:var(--muted);
}

.actions {
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}

.button-primary,
.button-secondary {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:0 21px;
    border-radius:10px;
    font-weight:750;
}

.button-primary {
    color:#fff;
    background:linear-gradient(135deg,var(--blue),var(--cyan));
    box-shadow:0 12px 32px rgba(8,120,249,.20);
}

.button-secondary {
    color:var(--navy);
    border:1px solid var(--border);
    background:#fff;
}

.hero-visual {
    min-height:400px;
    display:grid;
    place-items:center;
}

.tech-core {
    position:relative;
    width:min(360px,90%);
    aspect-ratio:1;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at 31% 27%,#28e8ff 0 4%,transparent 6%),
        radial-gradient(circle,#116ee8,#082e83 57%,#04163c 83%);
    box-shadow:
        0 35px 100px rgba(7,67,171,.27),
        inset 0 0 60px rgba(37,221,255,.25);
}

.tech-core::before,
.tech-core::after {
    content:"";
    position:absolute;
    border-radius:50%;
    border:1px solid rgba(77,220,255,.48);
}

.tech-core::before { inset:13%; }
.tech-core::after {
    inset:29%;
    border-color:rgba(149,102,255,.58);
}

.tech-core span {
    color:white;
    font-size:74px;
    font-weight:850;
}

.section {
    padding:88px 0;
}

.section-alt {
    background:var(--surface);
}

.section-head {
    max-width:760px;
    margin-bottom:44px;
}

.section-head h2 {
    margin:8px 0 14px;
    color:var(--deep);
    font-size:clamp(34px,4vw,50px);
    line-height:1.1;
    letter-spacing:-.035em;
}

.section-head p {
    margin:0;
    color:var(--muted);
    font-size:18px;
}

.cards {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.card,
.feature {
    padding:29px;
    border:1px solid var(--border);
    border-radius:18px;
    background:#fff;
    box-shadow:0 14px 42px rgba(16,32,61,.045);
}

.card h3,
.feature h2 {
    margin:0 0 10px;
    color:var(--navy);
}

.card p,
.feature p {
    margin:0;
    color:var(--muted);
}

.icon {
    width:44px;
    height:44px;
    margin-bottom:20px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:linear-gradient(135deg,#e9f4ff,#e3fbff);
    color:var(--blue);
    font-weight:850;
}

.dark-section {
    padding:88px 0;
    color:white;
    background:
        radial-gradient(circle at 85% 0%,rgba(20,194,238,.18),transparent 28%),
        linear-gradient(135deg,var(--deep),#093478);
}

.dark-section h2 {
    max-width:720px;
    margin:8px 0 18px;
    font-size:clamp(38px,5vw,60px);
    line-height:1.08;
    letter-spacing:-.04em;
}

.dark-section p {
    max-width:800px;
    color:rgba(255,255,255,.74);
    font-size:18px;
}

.process {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.step {
    padding:27px;
    border:1px solid var(--border);
    border-radius:18px;
    background:#fff;
}

.step-number {
    width:36px;
    height:36px;
    margin-bottom:18px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#fff;
    font-weight:800;
    background:linear-gradient(135deg,var(--blue),var(--cyan));
}

.step h3 {
    margin:0 0 8px;
    color:var(--navy);
}

.step p {
    margin:0;
    color:var(--muted);
}

.page-hero {
    padding:90px 0 72px;
    border-bottom:1px solid var(--border);
    background:
        radial-gradient(circle at 85% 15%,rgba(23,200,239,.15),transparent 30%),
        linear-gradient(#fff,#f8fbff);
}

.page-hero p {
    max-width:760px;
    margin:0;
    color:var(--muted);
    font-size:19px;
}

.page-grid {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:22px;
}

.feature p + p {
    margin-top:14px;
}

.feature ul {
    margin:18px 0 0;
    padding-left:20px;
    color:var(--muted);
}

.contact-panel {
    max-width:800px;
    padding:42px;
    color:#fff;
    border-radius:22px;
    background:
        radial-gradient(circle at 90% 5%,rgba(23,200,239,.22),transparent 35%),
        linear-gradient(135deg,var(--deep),#093478);
}

.contact-panel h2 {
    margin:5px 0 12px;
    font-size:36px;
}

.contact-panel p {
    color:rgba(255,255,255,.76);
}

.email {
    display:inline-block;
    margin-top:10px;
    color:#fff;
    font-size:26px;
    font-weight:850;
}

.site-footer {
    padding:40px 0;
    color:rgba(255,255,255,.62);
    background:#01091b;
}

.footer-inner {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
}

.footer-brand {
    color:#fff;
    font-weight:850;
    letter-spacing:.08em;
}

@media (max-width:900px) {
    .hero-grid {
        grid-template-columns:1fr;
    }

    .cards,
    .process,
    .page-grid {
        grid-template-columns:1fr 1fr;
    }

    .nav-links {
        display:none;
    }
}

@media (max-width:560px) {
    .hero {
        padding:75px 0;
    }

    .hero-visual {
        min-height:300px;
    }

    .cards,
    .process,
    .page-grid {
        grid-template-columns:1fr;
    }

    .footer-inner {
        flex-direction:column;
        align-items:flex-start;
    }

    .brand img {
        width:155px;
    }
}


/* ==========================================================
   TSOFT WEB-0008A DIGITAL INTELLIGENCE NETWORK
   ========================================================== */

.tsoft-intelligence {
    position:relative;
    min-height:470px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.intelligence-map {
    width:min(100%,600px);
    overflow:visible;
    filter:drop-shadow(0 30px 48px rgba(8,65,145,.10));
}

.network-lines path {
    fill:none;
    stroke:url(#networkGradient);
    stroke-width:1.7;
    stroke-linecap:round;
    opacity:.54;
}

.network-secondary {
    stroke-width:1 !important;
    stroke-dasharray:5 9;
    opacity:.20 !important;
}

.capability-node {
    transform-box:fill-box;
    transform-origin:center;
    animation:tsoft-node-breathe 4.8s ease-in-out infinite;
}

.capability-node circle {
    fill:#fff;
    stroke:#d5e8ff;
    stroke-width:1.4;
    filter:drop-shadow(0 9px 18px rgba(19,72,153,.11));
}

.capability-node text {
    fill:#0878f9;
    font-size:12px;
    font-weight:850;
    text-anchor:middle;
    dominant-baseline:middle;
}

.node-label {
    fill:#5a6a86;
    font-size:11px;
    font-weight:800;
    letter-spacing:1.2px;
    text-anchor:middle;
}

.core-circle {
    fill:url(#coreGradient);
    stroke:#37d5ff;
    stroke-width:1.3;
    filter:url(#softGlow);
}

.core-halo {
    fill:none;
    stroke:url(#networkGradient);
    transform-origin:310px 260px;
}

.halo-one {
    stroke-width:1;
    opacity:.23;
    stroke-dasharray:12 9;
    animation:tsoft-network-spin 28s linear infinite;
}

.halo-two {
    stroke-width:1.2;
    opacity:.30;
    stroke-dasharray:4 8;
    animation:tsoft-network-spin-reverse 20s linear infinite;
}

.core-letter {
    fill:#fff;
    font-size:74px;
    font-weight:900;
    font-style:italic;
    text-anchor:middle;
}

.signal {
    fill:#25dcff;
    filter:url(#softGlow);
}

.signal-purple {
    fill:#8d69ff;
}

.digital-fragments rect {
    fill:#169aff;
    opacity:.65;
    animation:tsoft-fragment-pulse 3.4s ease-in-out infinite alternate;
}

.intelligence-caption {
    margin-top:-8px;
    text-align:center;
}

.intelligence-caption span {
    display:block;
    margin-bottom:4px;
    color:var(--blue);
    font-size:10px;
    font-weight:850;
    letter-spacing:.16em;
}

.intelligence-caption strong {
    color:var(--navy);
    font-size:15px;
}

@keyframes tsoft-network-spin {
    to { transform:rotate(360deg); }
}

@keyframes tsoft-network-spin-reverse {
    to { transform:rotate(-360deg); }
}

@keyframes tsoft-node-breathe {
    0%,100% { transform:scale(1); }
    50% { transform:scale(1.04); }
}

@keyframes tsoft-fragment-pulse {
    from {
        opacity:.25;
        transform:translate(0,0);
    }

    to {
        opacity:.85;
        transform:translate(2px,-2px);
    }
}

@media (max-width:900px) {
    .tsoft-intelligence {
        min-height:420px;
    }

    .intelligence-map {
        width:min(100%,540px);
    }
}

@media (max-width:560px) {
    .tsoft-intelligence {
        min-height:340px;
    }

    .node-label {
        font-size:9px;
    }

    .intelligence-caption {
        margin-top:-18px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .core-halo,
    .capability-node,
    .digital-fragments rect {
        animation:none !important;
    }

    .network-signals {
        display:none;
    }
}


/* ==========================================================
   TSOFT WEB-0008A R1 VISUAL REFINEMENT
   ========================================================== */

.tsoft-intelligence {
    min-height:500px;
}

.intelligence-map-r1 {
    width:min(112%,680px);
    max-width:none;
    overflow:visible;
    filter:
        drop-shadow(
            0 34px 52px rgba(8,65,145,.10)
        );
}

.network-lines-r1 path {
    fill:none;
    stroke:url(#networkGradientR1);
    stroke-width:1.8;
    stroke-linecap:round;
    opacity:.55;
}

.network-secondary-r1 path {
    fill:none;
    stroke:url(#networkGradientR1);
    stroke-width:1;
    stroke-dasharray:5 10;
    opacity:.17;
}

.cap-chip {
    transform-box:fill-box;
    transform-origin:center;
    animation:
        tsoft-r1-chip-breathe
        5.4s
        ease-in-out
        infinite;
}

.cap-chip rect {
    fill:rgba(255,255,255,.96);
    stroke:#d9e9fb;
    stroke-width:1.4;
    filter:
        drop-shadow(
            0 10px 20px rgba(18,74,150,.10)
        );
}

.cap-chip text {
    fill:#185699;
    font-size:12px;
    font-weight:850;
    letter-spacing:.7px;
    text-anchor:middle;
    dominant-baseline:middle;
}

.core-circle-r1 {
    fill:url(#coreGradientR1);
    stroke:#40ddff;
    stroke-width:1.5;
    filter:url(#softGlowR1);
}

.core-halo-r1 {
    fill:none;
    stroke:url(#networkGradientR1);
    transform-origin:360px 252px;
}

.halo-r1-one {
    stroke-width:1;
    opacity:.22;
    stroke-dasharray:13 10;
    animation:
        tsoft-r1-spin
        30s
        linear
        infinite;
}

.halo-r1-two {
    stroke-width:1.2;
    opacity:.32;
    stroke-dasharray:4 8;
    animation:
        tsoft-r1-spin-reverse
        21s
        linear
        infinite;
}

.core-letter-r1 {
    fill:#fff;
    font-size:82px;
    font-weight:900;
    font-style:italic;
    text-anchor:middle;
}

.intelligence-caption-r1 {
    margin-top:-2px;
}

.intelligence-caption-r1 span {
    font-size:11px;
}

.intelligence-caption-r1 strong {
    font-size:16px;
}

@keyframes tsoft-r1-chip-breathe {

    0%,
    100% {
        transform:translateY(0);
    }

    50% {
        transform:translateY(-3px);
    }
}

@keyframes tsoft-r1-spin {
    to {
        transform:rotate(360deg);
    }
}

@keyframes tsoft-r1-spin-reverse {
    to {
        transform:rotate(-360deg);
    }
}

@media (max-width:1100px) {

    .intelligence-map-r1 {
        width:105%;
    }

}

@media (max-width:900px) {

    .tsoft-intelligence {
        min-height:450px;
    }

    .intelligence-map-r1 {
        width:min(100%,620px);
    }

}

@media (max-width:560px) {

    .tsoft-intelligence {
        min-height:360px;
    }

    .intelligence-map-r1 {
        width:100%;
    }

    .cap-chip text {
        font-size:10px;
    }

}

@media (prefers-reduced-motion:reduce) {

    .cap-chip,
    .core-halo-r1 {
        animation:none !important;
    }

}


/* ==========================================================
   TSOFT WEB-0008A R2 HERO OPTICAL ALIGNMENT
   ========================================================== */

.hero-grid {
    align-items:center;
}

.hero-grid > :first-child {
    align-self:center;
}

.tsoft-intelligence {
    min-height:500px;
    justify-content:center;
    transform:translateY(-10px);
}

.intelligence-map-r2 {
    width:min(118%,710px);
    max-width:none;
    margin-inline:auto;
    display:block;
}

.network-r2-shift {
    transform:translateY(-10px);
}

.cap-chip-engineering {
    transform:translateY(-24px);
}

.intelligence-caption-r2 {
    margin-top:-4px;
    transform:translateY(-4px);
    width:100%;
    text-align:center;
}

.intelligence-caption-r2 span,
.intelligence-caption-r2 strong {
    text-align:center;
}

.intelligence-caption-r2 span {
    margin-bottom:6px;
}

.intelligence-caption-r2 strong {
    display:block;
}

@media (min-width:901px) {

    .hero-grid {
        grid-template-columns:
            minmax(0,1.02fr)
            minmax(0,.98fr);
    }

    .tsoft-intelligence {
        padding-top:8px;
    }

}

@media (max-width:1100px) {

    .intelligence-map-r2 {
        width:110%;
    }

}

@media (max-width:900px) {

    .tsoft-intelligence {
        transform:none;
        min-height:440px;
    }

    .intelligence-map-r2 {
        width:min(100%,640px);
    }

    .network-r2-shift {
        transform:translateY(-4px);
    }

    .cap-chip-engineering {
        transform:translateY(-14px);
    }

}

@media (max-width:560px) {

    .tsoft-intelligence {
        min-height:350px;
    }

    .intelligence-map-r2 {
        width:100%;
    }

    .network-r2-shift,
    .cap-chip-engineering {
        transform:none;
    }

    .intelligence-caption-r2 {
        margin-top:-12px;
        transform:none;
    }

}

@media (prefers-reduced-motion:reduce) {

    .tsoft-intelligence,
    .network-r2-shift,
    .cap-chip-engineering,
    .intelligence-caption-r2 {
        transition:none !important;
    }

}
