/* =========================================
   TERRINFX STYLESHEET
   PART 1
   RESET + ROOT + BACKGROUND + NAVBAR + HERO
========================================= */

:root {

    --bg-primary: #05070a;
    --bg-secondary: #0b1016;
    --bg-card: #101722;

    --border: rgba(255,255,255,0.08);

    --text-primary: #ffffff;
    --text-secondary: #9ba8b7;
    --text-muted: #6e7c8d;

    --accent-blue: #1aa8ff;
    --accent-cyan: #00d5ff;
    --accent-teal: #00cfa4;
    --accent-green: #19e68c;

    --shadow:
        0 10px 40px rgba(0,0,0,.45);

    --radius-sm: 12px;
    --radius-md: 18px;
    --radius-lg: 28px;

    --transition: .3s ease;
    --max-width: 1250px;
}

/* =========================================
   RESET
========================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:
        Inter,
        Segoe UI,
        Roboto,
        Arial,
        sans-serif;

    background:var(--bg-primary);
    color:var(--text-primary);

    overflow-x:hidden;
    line-height:1.7;
}

/* =========================================
   SELECTION
========================================= */

::selection{
    background:rgba(0,213,255,.25);
    color:#fff;
}

/* =========================================
   SCROLLBAR
========================================= */

::-webkit-scrollbar{
    width:10px;
}

::-webkit-scrollbar-track{
    background:#06080c;
}

::-webkit-scrollbar-thumb{
    background:linear-gradient(
        180deg,
        var(--accent-blue),
        var(--accent-teal)
    );
    border-radius:20px;
}

/* =========================================
   GLOBAL
========================================= */

.container{
    width:92%;
    max-width:var(--max-width);
    margin:auto;
}

.section{
    padding:110px 0;
}

.section-header{
    text-align:center;
    margin-bottom:70px;
}

.section-tag{

    display:inline-block;

    padding:8px 16px;

    border:1px solid rgba(0,213,255,.15);

    background:rgba(0,213,255,.05);

    border-radius:999px;

    color:var(--accent-cyan);

    font-size:.8rem;
    letter-spacing:2px;
    text-transform:uppercase;

    margin-bottom:18px;
}

.section-header h2{
    font-size:clamp(2rem,4vw,3.2rem);
    font-weight:700;
}

/* =========================================
   BACKGROUND EFFECTS
========================================= */

.background-grid{

    position:fixed;

    inset:0;

    background-image:

        linear-gradient(
            rgba(255,255,255,.02) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(255,255,255,.02) 1px,
            transparent 1px
        );

    background-size:60px 60px;

    z-index:-2;
}

.background-stars{

    position:fixed;
    inset:0;

    z-index:-3;

    background-image:

        radial-gradient(
            white 1px,
            transparent 1px
        ),

        radial-gradient(
            rgba(255,255,255,.7) 1px,
            transparent 1px
        ),

        radial-gradient(
            rgba(255,255,255,.3) 1px,
            transparent 1px
        );

    background-size:
        220px 220px,
        320px 320px,
        420px 420px;

    background-position:
        0 0,
        40px 90px,
        120px 60px;

    opacity:.2;
}

/* =========================================
   NAVBAR
========================================= */

.navbar{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    padding:18px 4%;

    display:flex;
    justify-content:space-between;
    align-items:center;

    backdrop-filter:blur(16px);

    background:
        rgba(5,7,10,.75);

    border-bottom:
        1px solid rgba(255,255,255,.05);

    z-index:1000;
}

.nav-left{
    display:flex;
    align-items:center;
    gap:15px;
}

.digitroms-logo{

    width:52px;
    height:52px;

    border-radius:50%;

    overflow:hidden;

    border:1px solid rgba(255,255,255,.08);

    background:#0f141c;
}

.digitroms-logo img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.brand-info h1{

    font-size:1.1rem;
    font-weight:700;

    margin-bottom:2px;
}

.brand-info span{

    color:var(--text-secondary);

    font-size:.8rem;
}

.nav-menu{

    display:flex;
    align-items:center;
    gap:30px;
}

.nav-menu a{

    text-decoration:none;
    color:var(--text-secondary);

    transition:var(--transition);
    font-size:.95rem;
}

.nav-menu a:hover{

    color:var(--accent-cyan);
}

.menu-toggle{

    display:none;

    border:none;
    cursor:pointer;

    background:none;

    color:white;

    font-size:1.8rem;
}

/* =========================================
   HERO
========================================= */

.hero{

    min-height:100vh;

    display:flex;
    align-items:center;
    justify-content:center;

    position:relative;

    text-align:center;

    padding:140px 20px 100px;
}

.hero-content{

    max-width:900px;
    position:relative;
    z-index:2;
}

.hero-logo{

    display:flex;
    justify-content:center;

    margin-bottom:30px;
}

.logo-placeholder{

    width:150px;
    height:150px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;

    font-size:.9rem;
    font-weight:700;

    color:white;

    border:1px solid rgba(255,255,255,.12);

    background:
        radial-gradient(
            circle at center,
            rgba(0,213,255,.15),
            rgba(0,0,0,0)
        );

    box-shadow:
        0 0 60px rgba(0,213,255,.15);
}

.powered-by{

    color:var(--accent-teal);

    letter-spacing:2px;
    text-transform:uppercase;

    font-size:.75rem;

    margin-bottom:20px;
}

.hero h1{

    font-size:
        clamp(
            3.5rem,
            10vw,
            7rem
        );

    font-weight:800;

    line-height:1;
}

.hero h2{

    margin-top:18px;

    font-size:
        clamp(
            1.2rem,
            3vw,
            2rem
        );

    color:var(--accent-cyan);

    font-weight:500;
}

.hero-description{

    margin:35px auto 0;

    max-width:700px;

    color:var(--text-secondary);

    font-size:1.05rem;
}

/* =========================================
   HERO BUTTONS
========================================= */

.hero-buttons{

    display:flex;
    justify-content:center;
    gap:20px;

    flex-wrap:wrap;

    margin-top:40px;
}

.btn{

    text-decoration:none;

    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:14px 28px;

    border-radius:999px;

    transition:var(--transition);

    font-weight:600;
}

.btn-primary{

    color:white;

    background:
        linear-gradient(
            135deg,
            var(--accent-blue),
            var(--accent-teal)
        );
}

.btn-primary:hover{

    transform:
        translateY(-3px);

    box-shadow:
        0 10px 30px
        rgba(0,213,255,.25);
}

.btn-secondary{

    color:white;

    border:
        1px solid rgba(255,255,255,.12);

    background:
        rgba(255,255,255,.03);
}

.btn-secondary:hover{

    border-color:
        rgba(0,213,255,.35);

    transform:
        translateY(-3px);
}

/* =========================================
   HERO ORBITS
========================================= */

.hero-orbit{

    position:absolute;

    inset:0;

    pointer-events:none;
}

.orbit-circle{

    position:absolute;

    border-radius:50%;

    border:
        1px solid rgba(0,213,255,.08);
}

.orbit-1{

    width:550px;
    height:550px;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%);
}

.orbit-2{

    width:750px;
    height:750px;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%);
}

.orbit-3{

    width:950px;
    height:950px;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%);
}

/* =========================================
   END OF PART 1
========================================= */



/* =========================================
   TERRINFX STYLESHEET
   PART 2
   ABOUT + DOMAINS + TIMELINE
   WORKFLOW + REPORTS + CUSTOM
========================================= */

/* =========================================
   ABOUT SECTION
========================================= */

.about-grid{

    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(260px,1fr)
        );

    gap:25px;
}

.about-card{

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.03),
            rgba(255,255,255,.01)
        );

    border:
        1px solid var(--border);

    border-radius:
        var(--radius-md);

    padding:30px;

    transition:
        var(--transition);

    box-shadow:
        var(--shadow);
}

.about-card:hover{

    transform:
        translateY(-8px);

    border-color:
        rgba(0,213,255,.2);

    box-shadow:
        0 15px 40px rgba(0,213,255,.08);
}

.about-card h3{

    margin-bottom:15px;

    font-size:1.4rem;

    color:
        var(--accent-cyan);
}

.about-card p{

    color:
        var(--text-secondary);
}

/* =========================================
   DOMAINS SECTION
========================================= */

.domains-grid{

    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(280px,1fr)
        );

    gap:25px;
}

.domain-card{

    position:relative;

    overflow:hidden;

    background:
        linear-gradient(
            145deg,
            rgba(16,23,34,.9),
            rgba(9,13,19,.95)
        );

    border:
        1px solid rgba(255,255,255,.06);

    border-radius:
        var(--radius-md);

    padding:30px;

    transition:
        var(--transition);

    min-height:200px;
}

.domain-card::before{

    content:"";

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:3px;

    background:
        linear-gradient(
            90deg,
            var(--accent-blue),
            var(--accent-teal)
        );

    transform:
        scaleX(0);

    transform-origin:left;

    transition:
        .4s ease;
}

.domain-card:hover::before{

    transform:
        scaleX(1);
}

.domain-card:hover{

    transform:
        translateY(-8px);

    border-color:
        rgba(0,213,255,.18);

    box-shadow:
        0 15px 50px rgba(0,213,255,.1);
}

.domain-card h3{

    margin-bottom:15px;

    color:
        #fff;

    font-size:1.25rem;
}

.domain-card p{

    color:
        var(--text-secondary);
}

/* =========================================
   TIMELINE SECTION
========================================= */

.timeline{

    display:flex;

    justify-content:center;
    align-items:center;

    flex-wrap:wrap;

    gap:15px;
}

.timeline-item{

    padding:
        18px 24px;

    border-radius:
        999px;

    background:
        rgba(255,255,255,.03);

    border:
        1px solid rgba(255,255,255,.08);

    color:
        #fff;

    font-weight:600;

    transition:
        var(--transition);
}

.timeline-item:hover{

    background:
        rgba(0,213,255,.08);

    border-color:
        rgba(0,213,255,.25);

    transform:
        translateY(-4px);
}

.timeline-arrow{

    font-size:1.4rem;

    color:
        var(--accent-cyan);

    opacity:.8;
}

/* =========================================
   WORKFLOW SECTION
========================================= */

.workflow-grid{

    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(180px,1fr)
        );

    gap:20px;
}

.workflow-card{

    position:relative;

    text-align:center;

    padding:30px 20px;

    border-radius:
        var(--radius-md);

    background:
        rgba(255,255,255,.025);

    border:
        1px solid rgba(255,255,255,.06);

    transition:
        var(--transition);
}

.workflow-card:hover{

    transform:
        translateY(-8px);

    border-color:
        rgba(0,213,255,.18);

    box-shadow:
        0 12px 35px rgba(0,213,255,.08);
}

.workflow-card h3{

    width:60px;
    height:60px;

    margin:auto auto 15px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:
        linear-gradient(
            135deg,
            var(--accent-blue),
            var(--accent-teal)
        );

    color:#fff;

    font-size:1.2rem;
}

.workflow-card p{

    color:
        var(--text-secondary);

    font-weight:500;
}

/* =========================================
   REPORTS SECTION
========================================= */

.reports-grid{

    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(320px,1fr)
        );

    gap:28px;
}

.report-card{

    display:flex;
    flex-direction:column;

    background:
        linear-gradient(
            180deg,
            rgba(255,255,255,.03),
            rgba(255,255,255,.015)
        );

    border:
        1px solid rgba(255,255,255,.07);

    border-radius:
        var(--radius-lg);

    padding:32px;

    transition:
        var(--transition);

    overflow:hidden;
}

.report-card:hover{

    transform:
        translateY(-10px);

    border-color:
        rgba(0,213,255,.22);

    box-shadow:
        0 20px 50px rgba(0,213,255,.08);
}

.report-category{

    display:inline-block;

    width:max-content;

    padding:
        8px 14px;

    margin-bottom:18px;

    border-radius:
        999px;

    font-size:.75rem;

    letter-spacing:1px;

    text-transform:uppercase;

    color:
        var(--accent-cyan);

    background:
        rgba(0,213,255,.08);

    border:
        1px solid rgba(0,213,255,.12);
}

.report-card h3{

    margin-bottom:15px;

    font-size:1.4rem;

    line-height:1.4;
}

.report-card p{

    color:
        var(--text-secondary);

    margin-bottom:24px;
}

.report-price{

    margin-top:auto;

    font-size:2rem;

    font-weight:700;

    color:
        var(--accent-teal);

    margin-bottom:20px;
}

.report-btn{

    border:none;

    cursor:pointer;

    padding:
        14px 20px;

    border-radius:
        999px;

    color:#fff;

    font-weight:600;

    background:
        linear-gradient(
            135deg,
            var(--accent-blue),
            var(--accent-teal)
        );

    transition:
        var(--transition);
}

.report-btn:hover{

    transform:
        translateY(-3px);

    box-shadow:
        0 10px 30px rgba(0,213,255,.2);
}

/* =========================================
   CUSTOM RESEARCH
========================================= */

.custom-box{

    text-align:center;

    padding:
        70px 50px;

    border-radius:
        var(--radius-lg);

    background:
        linear-gradient(
            145deg,
            rgba(0,213,255,.05),
            rgba(0,207,164,.03)
        );

    border:
        1px solid rgba(0,213,255,.08);

    position:relative;

    overflow:hidden;
}

.custom-box::before{

    content:"";

    position:absolute;

    width:400px;
    height:400px;

    top:-200px;
    right:-120px;

    border-radius:50%;

    background:
        radial-gradient(
            rgba(0,213,255,.12),
            transparent 70%
        );

    pointer-events:none;
}

.custom-box h2{

    font-size:
        clamp(
            2rem,
            4vw,
            3rem
        );

    margin-bottom:20px;
}

.custom-box p{

    max-width:800px;

    margin:
        0 auto 35px;

    color:
        var(--text-secondary);

    font-size:1.05rem;
}

/* =========================================
   END OF PART 2
========================================= */


/* =========================================
   TERRINFX STYLESHEET
   PART 3
   CONTACT + LEGAL + FOOTER
   RESPONSIVE + ANIMATIONS
========================================= */

/* =========================================
   CONTACT FORM
========================================= */

.contact-form{

    max-width:800px;

    margin:auto;

    display:flex;
    flex-direction:column;

    gap:20px;
}

.contact-form input,
.contact-form textarea{

    width:100%;

    padding:18px 20px;

    border-radius:16px;

    border:1px solid rgba(255,255,255,.08);

    background:
        rgba(255,255,255,.03);

    color:#fff;

    outline:none;

    transition:
        var(--transition);

    font-size:1rem;
}

.contact-form textarea{

    resize:vertical;

    min-height:180px;
}

.contact-form input:focus,
.contact-form textarea:focus{

    border-color:
        rgba(0,213,255,.4);

    box-shadow:
        0 0 0 4px rgba(0,213,255,.08);
}

.contact-form input::placeholder,
.contact-form textarea::placeholder{

    color:
        var(--text-muted);
}

/* =========================================
   LEGAL SECTION
========================================= */

.legal-section{

    background:
        rgba(255,255,255,.015);

    border-top:
        1px solid rgba(255,255,255,.04);

    border-bottom:
        1px solid rgba(255,255,255,.04);
}

.legal-section h2{

    margin-top:40px;
    margin-bottom:15px;

    color:
        var(--accent-cyan);

    font-size:1.6rem;
}

.legal-section h2:first-child{

    margin-top:0;
}

.legal-section p{

    color:
        var(--text-secondary);

    max-width:900px;

    line-height:1.9;
}

/* =========================================
   FOOTER
========================================= */

.footer{

    padding:
        80px 20px;

    text-align:center;

    background:
        #030507;

    border-top:
        1px solid rgba(255,255,255,.05);
}

.footer-logo{

    width:100px;
    height:100px;

    margin:0 auto 25px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    font-weight:700;

    color:#fff;

    border:
        1px solid rgba(255,255,255,.08);

    background:
        radial-gradient(
            circle,
            rgba(0,213,255,.12),
            transparent
        );
}

.footer h3{

    font-size:2rem;

    margin-bottom:10px;
}

.footer p{

    color:
        var(--text-secondary);

    margin-bottom:10px;
}

.footer span{

    display:block;

    color:
        var(--accent-teal);

    margin-bottom:20px;
}

.copyright{

    margin-top:30px;

    font-size:.9rem;

    color:
        var(--text-muted);
}

/* =========================================
   REVEAL ANIMATIONS
========================================= */

.about-card,
.domain-card,
.workflow-card,
.report-card,
.custom-box,
.contact-form{

    animation:
        fadeUp .8s ease both;
}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:
            translateY(40px);
    }

    to{

        opacity:1;

        transform:
            translateY(0);
    }
}

/* =========================================
   FLOATING ORBITS
========================================= */

.orbit-1{

    animation:
        rotateOrbit 40s linear infinite;
}

.orbit-2{

    animation:
        rotateOrbit 60s linear infinite reverse;
}

.orbit-3{

    animation:
        rotateOrbit 90s linear infinite;
}

@keyframes rotateOrbit{

    from{

        transform:
            translate(-50%,-50%)
            rotate(0deg);
    }

    to{

        transform:
            translate(-50%,-50%)
            rotate(360deg);
    }
}

/* =========================================
   HERO GLOW
========================================= */

.hero::before{

    content:"";

    position:absolute;

    width:700px;
    height:700px;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%);

    border-radius:50%;

    background:
        radial-gradient(
            rgba(0,213,255,.08),
            transparent 70%
        );

    z-index:0;
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1100px){

    .timeline{

        flex-direction:column;
    }

    .timeline-arrow{

        transform:
            rotate(90deg);
    }
}

@media (max-width: 900px){

    .menu-toggle{

        display:block;
    }

    .nav-menu{

        position:absolute;

        top:100%;
        right:0;

        width:260px;

        background:
            rgba(8,11,15,.98);

        backdrop-filter:
            blur(20px);

        border:
            1px solid rgba(255,255,255,.05);

        flex-direction:column;

        align-items:flex-start;

        padding:25px;

        gap:18px;

        display:none;
    }

    .nav-menu.active{

        display:flex;
    }

    .hero{

        padding-top:160px;
    }

    .hero h1{

        font-size:4rem;
    }

    .hero-description{

        font-size:1rem;
    }

    .custom-box{

        padding:
            50px 30px;
    }
}

@media (max-width: 768px){

    .section{

        padding:80px 0;
    }

    .hero-buttons{

        flex-direction:column;

        width:100%;
    }

    .hero-buttons .btn{

        width:100%;
    }

    .logo-placeholder{

        width:120px;
        height:120px;

        font-size:.8rem;
    }

    .workflow-grid,
    .reports-grid,
    .domains-grid,
    .about-grid{

        grid-template-columns:1fr;
    }

    .footer h3{

        font-size:1.6rem;
    }
}

@media (max-width: 500px){

    .navbar{

        padding:15px 5%;
    }

    .brand-info span{

        display:none;
    }

    .hero h1{

        font-size:3rem;
    }

    .hero h2{

        font-size:1.1rem;
    }

    .hero-description{

        font-size:.95rem;
    }

    .report-card{

        padding:25px;
    }

    .custom-box{

        padding:
            40px 20px;
    }

    .section-header h2{

        font-size:2rem;
    }
}

/* =========================================
   END OF FILE
========================================= */