:root{
    --nfc-bg:#07141b;
    --nfc-bg-2:#0b1821;
    --nfc-surface:#102330;
    --nfc-surface-2:#153243;
    --nfc-line:rgba(255,255,255,.08);
    --nfc-text:#eefaff;
    --nfc-soft:rgba(255,255,255,.74);

    --nfc-cyan:#06b6d4;
    --nfc-blue:#38bdf8;
    --nfc-mint:#22d3ee;
    --nfc-green:#14f195;
}

body.nfc-page{
    background:#ffffff;
    color:#0f172a;
    overflow-x:hidden;
}

/* reveal */
.reveal-up,
.reveal-left,
.reveal-right{
    opacity:0;
    transition:opacity .8s ease, transform .8s ease;
    will-change:transform, opacity;
}

.reveal-up{ transform:translateY(38px); }
.reveal-left{ transform:translateX(-38px); }
.reveal-right{ transform:translateX(38px); }

.reveal-up.is-visible,
.reveal-left.is-visible,
.reveal-right.is-visible{
    opacity:1;
    transform:translate(0,0);
}

.delay-1{ transition-delay:.12s; }
.delay-2{ transition-delay:.22s; }
.delay-3{ transition-delay:.32s; }

/* hero */
.nfc-hero-ui{
    position:relative;
    min-height:100vh;
    padding:140px 0 70px;
    overflow:hidden;
    background:
        radial-gradient(circle at 15% 20%, rgba(6,182,212,.18), transparent 24%),
        radial-gradient(circle at 85% 18%, rgba(56,189,248,.12), transparent 28%),
        radial-gradient(circle at 70% 75%, rgba(20,241,149,.10), transparent 26%),
        linear-gradient(180deg, #07141b 0%, #081922 42%, #0b1720 100%);
    color:#fff;
}

.nfc-hero-bg{
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(8,14,20,.12), rgba(8,14,20,.32)),
        url('assets/img/rootix-nfc.jpg') center/cover no-repeat;
    opacity:.20;
    pointer-events:none;
}

.nfc-grid{
    position:absolute;
    inset:0;
    background-image:
        linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size:56px 56px;
    mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), rgba(0,0,0,.2));
    pointer-events:none;
}

.nfc-orb{
    position:absolute;
    width:420px;
    height:420px;
    border-radius:50%;
    filter:blur(80px);
    opacity:.18;
    pointer-events:none;
}

.orb-a{
    left:-80px;
    top:120px;
    background:#06b6d4;
}

.orb-b{
    right:-80px;
    top:60px;
    background:#38bdf8;
}

.nfc-hero-wrap{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:46px;
    align-items:center;
}

.nfc-badge,
.section-kicker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:12px 16px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.05);
    backdrop-filter:blur(12px);
    font-size:.78rem;
    letter-spacing:.16em;
    text-transform:uppercase;
    font-weight:800;
}

.section-kicker{
    padding:0;
    background:none;
    border:none;
    color:#0ea5c6;
}

.section-kicker.light{
    color:#bdf7ff;
}

.nfc-copy h1{
    margin:22px 0 18px;
    font-size:clamp(2.8rem, 5vw, 5.6rem);
    line-height:1.02;
    letter-spacing:-.045em;
    font-weight:900;
    color:#fff;
}

.nfc-copy h1 span{
    display:block;
    background:linear-gradient(90deg, #ffffff 0%, #9be9ff 35%, #5fd6ff 68%, #58f9c1 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:transparent;
}

.nfc-lead{
    max-width:760px;
    font-size:1.06rem;
    line-height:1.9;
    color:var(--nfc-soft);
    margin:0 0 28px;
}

.nfc-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:32px;
}

.btn-nfc{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:180px;
    padding:15px 24px;
    border-radius:16px;
    font-weight:700;
    text-decoration:none;
    transition:.3s ease;
}

.btn-nfc-primary{
    background:linear-gradient(135deg, var(--nfc-cyan), var(--nfc-blue));
    color:#fff;
    box-shadow:0 18px 45px rgba(6,182,212,.24);
}

.btn-nfc-primary:hover{
    transform:translateY(-3px);
    box-shadow:0 24px 60px rgba(6,182,212,.32);
}

.btn-nfc-secondary{
    color:#fff;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.05);
}

.btn-nfc-secondary:hover{
    transform:translateY(-3px);
    background:rgba(255,255,255,.1);
}

.nfc-pills{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}

.nfc-pill{
    padding:18px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.04);
    backdrop-filter:blur(10px);
}

.nfc-pill strong{
    display:block;
    margin-bottom:6px;
    color:#fff;
    font-size:1rem;
}

.nfc-pill span{
    display:block;
    color:rgba(255,255,255,.68);
    line-height:1.6;
    font-size:.92rem;
}

/* scene */
.ui-scene{
    position:relative;
}

.scene-window{
    border-radius:30px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.08);
    background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
    backdrop-filter:blur(16px);
    box-shadow:0 30px 90px rgba(0,0,0,.36);
}

.scene-top{
    display:flex;
    gap:8px;
    padding:16px 20px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.scene-top span{
    width:10px;
    height:10px;
    border-radius:50%;
    background:rgba(255,255,255,.32);
}

.scene-body{
    position:relative;
    min-height:590px;
    padding:24px;
}

.scene-tag{
    display:inline-flex;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid rgba(6,182,212,.26);
    background:rgba(6,182,212,.12);
    color:#b8f7ff;
    font-size:.76rem;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
    margin-bottom:18px;
}

.phone-shell{
    position:absolute;
    right:34px;
    top:90px;
    width:230px;
    height:450px;
    border-radius:34px;
    padding:12px;
    background:linear-gradient(180deg, #111827, #0c1220);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 30px 70px rgba(0,0,0,.32);
    z-index:3;
}

.phone-screen{
    position:relative;
    width:100%;
    height:100%;
    border-radius:26px;
    overflow:hidden;
    background:
        radial-gradient(circle at 50% 35%, rgba(6,182,212,.14), transparent 28%),
        linear-gradient(180deg, #06131a 0%, #0a1f27 100%);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.scan-core{
    width:92px;
    height:92px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#baf9ff;
    font-size:1.5rem;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.18);
    position:relative;
    z-index:2;
    box-shadow:0 0 0 16px rgba(6,182,212,.06);
}

.scan-ring{
    position:absolute;
    width:150px;
    height:150px;
    border:1px solid rgba(6,182,212,.36);
    border-radius:50%;
    animation:nfcPulse 2.4s infinite;
}

.scan-ring.ring-2{
    width:210px;
    height:210px;
    animation-delay:1.1s;
}

@keyframes nfcPulse{
    0%{ transform:scale(.85); opacity:.75; }
    70%{ transform:scale(1.18); opacity:0; }
    100%{ opacity:0; }
}

.scan-label{
    position:absolute;
    bottom:42px;
    font-size:.95rem;
    color:#d7fbff;
    font-weight:700;
    letter-spacing:.06em;
}

.smart-card{
    position:absolute;
    left:20px;
    top:170px;
    width:310px;
    height:190px;
    border-radius:22px;
    padding:22px;
    background:linear-gradient(135deg, #0f1f2b 0%, #08131c 100%);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 30px 70px rgba(0,0,0,.26);
    z-index:2;
    overflow:hidden;
}

.shimmer-card::before{
    content:"";
    position:absolute;
    top:-50%;
    left:-35%;
    width:40%;
    height:200%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent);
    transform:rotate(20deg);
    animation:shimmerMove 4.2s linear infinite;
}

@keyframes shimmerMove{
    0%{ left:-45%; }
    100%{ left:120%; }
}

.smart-card-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#d6f9ff;
    font-size:.84rem;
    font-weight:800;
    letter-spacing:.12em;
}

.smart-card-top i{
    transform:rotate(90deg);
    color:var(--nfc-cyan);
}

.smart-card-user{
    margin-top:48px;
}

.smart-card-user strong{
    display:block;
    color:#fff;
    font-size:1.15rem;
    margin-bottom:6px;
}

.smart-card-user span{
    display:block;
    color:rgba(255,255,255,.6);
    font-size:.9rem;
}

.smart-card-line{
    width:100%;
    height:10px;
    margin-top:18px;
    border-radius:999px;
    background:rgba(255,255,255,.09);
}

.smart-card-line.short{
    width:68%;
}

.beam{
    position:absolute;
    height:2px;
    background:linear-gradient(90deg, transparent, #7ef9ff, transparent);
    box-shadow:0 0 18px rgba(6,182,212,.35);
    z-index:1;
}

.beam-1{
    left:190px;
    top:255px;
    width:180px;
    animation:beamPulse 2.8s infinite ease-in-out;
}

.beam-2{
    left:210px;
    top:290px;
    width:150px;
    animation:beamPulse 3.3s infinite ease-in-out;
}

@keyframes beamPulse{
    0%,100%{ opacity:.25; transform:scaleX(.9); }
    50%{ opacity:1; transform:scaleX(1.06); }
}

.mini-ui-card{
    position:absolute;
    padding:16px 18px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.05);
    backdrop-filter:blur(12px);
    box-shadow:0 20px 50px rgba(0,0,0,.18);
}

.mini-ui-card strong{
    display:block;
    color:#fff;
    margin-bottom:6px;
    font-size:.96rem;
}

.mini-ui-card span{
    display:block;
    color:rgba(255,255,255,.66);
    font-size:.88rem;
    line-height:1.55;
}

.status-card{
    left:18px;
    top:390px;
    width:220px;
}

.analytics-card{
    right:30px;
    top:38px;
    width:210px;
}

.float-soft{
    animation:floatSoft 4.2s ease-in-out infinite;
}

@keyframes floatSoft{
    0%,100%{ transform:translateY(0); }
    50%{ transform:translateY(-12px); }
}

/* marquee */
.nfc-marquee{
    position:relative;
    z-index:2;
    margin-top:70px;
    border-top:1px solid rgba(255,255,255,.08);
    border-bottom:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.03);
    overflow:hidden;
}

.nfc-marquee-track{
    display:flex;
    gap:60px;
    width:max-content;
    padding:18px 0;
    animation:nfcMarquee 28s linear infinite;
}

.nfc-marquee-track span{
    color:rgba(255,255,255,.84);
    font-size:.88rem;
    font-weight:800;
    letter-spacing:.18em;
    text-transform:uppercase;
    white-space:nowrap;
}

@keyframes nfcMarquee{
    from{ transform:translateX(0); }
    to{ transform:translateX(-50%); }
}

/* intro */
.nfc-intro{
    padding:90px 0 40px;
    background:linear-gradient(180deg, #f1fbff 0%, #ffffff 100%);
}

.nfc-intro-box{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:28px;
    padding:34px;
    border-radius:30px;
    border:1px solid rgba(15,23,42,.08);
    background:#fff;
    box-shadow:0 24px 70px rgba(15,23,42,.06);
}

.intro-left h2{
    margin:14px 0 14px;
    font-size:clamp(2rem,3vw,3.2rem);
    line-height:1.08;
    letter-spacing:-.03em;
    color:#0f172a;
}

.intro-left p{
    margin:0;
    color:#667085;
    line-height:1.85;
}

.intro-right{
    display:grid;
    gap:14px;
}

.intro-item{
    padding:22px;
    border-radius:22px;
    border:1px solid rgba(15,23,42,.08);
    background:linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.intro-item strong{
    display:block;
    margin-bottom:8px;
    color:#111827;
}

.intro-item span{
    display:block;
    color:#667085;
    line-height:1.7;
    font-size:.95rem;
}

/* headings */
.section-heading{
    max-width:760px;
    margin-bottom:36px;
}

.section-heading.center{
    text-align:center;
    margin-left:auto;
    margin-right:auto;
}

.section-heading h2{
    margin:14px 0 14px;
    font-size:clamp(2.1rem,3vw,3.4rem);
    line-height:1.08;
    letter-spacing:-.03em;
    color:#0f172a;
}

.section-heading p{
    margin:0;
    color:#667085;
    line-height:1.8;
    font-size:1.02rem;
}

/* ui grid */
.nfc-ui-blocks{
    padding:70px 0 110px;
    background:#fff;
}

.ui-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-top:34px;
}

.ui-card{
    position:relative;
    overflow:hidden;
    padding:28px;
    border-radius:26px;
    border:1px solid rgba(15,23,42,.08);
    background:linear-gradient(180deg, #ffffff 0%, #f7fcff 100%);
    box-shadow:0 18px 50px rgba(15,23,42,.05);
    transition:.3s ease;
}

.ui-card:hover{
    transform:translateY(-6px);
    box-shadow:0 24px 60px rgba(6,182,212,.12);
}

.ui-card::before{
    content:"";
    position:absolute;
    top:-36px;
    right:-36px;
    width:130px;
    height:130px;
    border-radius:50%;
    background:rgba(6,182,212,.12);
}

.ui-card-top{
    position:relative;
    z-index:2;
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:18px;
}

.ui-card-top span{
    font-size:.8rem;
    font-weight:800;
    letter-spacing:.16em;
    color:#334155;
}

.ui-card-top i{
    width:44px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:#0f172a;
    color:#fff;
}

.ui-card h3{
    position:relative;
    z-index:2;
    margin:0 0 12px;
    font-size:1.22rem;
    line-height:1.25;
    color:#0f172a;
}

.ui-card p{
    position:relative;
    z-index:2;
    margin:0 0 16px;
    color:#667085;
    line-height:1.8;
}

.ui-tags{
    position:relative;
    z-index:2;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.ui-tags span{
    display:inline-flex;
    padding:9px 13px;
    border-radius:999px;
    border:1px solid rgba(15,23,42,.08);
    background:#fff;
    font-size:.82rem;
    font-weight:700;
    color:#0f172a;
}

/* showcase */
.nfc-showcase{
    padding:110px 0;
    background:
        radial-gradient(circle at 15% 20%, rgba(6,182,212,.08), transparent 24%),
        radial-gradient(circle at 85% 75%, rgba(56,189,248,.08), transparent 24%),
        linear-gradient(180deg, #f4fcff 0%, #ffffff 100%);
}

.showcase-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:34px;
    align-items:center;
}

.showcase-copy h2{
    margin:14px 0 14px;
    font-size:clamp(2.1rem,3vw,3.5rem);
    line-height:1.08;
    letter-spacing:-.03em;
    color:#0f172a;
}

.showcase-copy p{
    margin:0 0 24px;
    color:#667085;
    line-height:1.85;
}

.showcase-list{
    display:grid;
    gap:14px;
}

.showcase-item{
    padding:20px;
    border-radius:20px;
    border:1px solid rgba(15,23,42,.08);
    background:#fff;
    box-shadow:0 16px 40px rgba(15,23,42,.04);
}

.showcase-item strong{
    display:block;
    margin-bottom:7px;
    color:#111827;
}

.showcase-item span{
    display:block;
    color:#667085;
    line-height:1.7;
    font-size:.95rem;
}

.dashboard-shell{
    border-radius:30px;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    background:linear-gradient(180deg, #0d1722 0%, #112230 100%);
    box-shadow:0 30px 80px rgba(15,23,42,.12);
}

.dashboard-head{
    display:flex;
    gap:8px;
    padding:16px 20px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.dashboard-head span{
    width:10px;
    height:10px;
    border-radius:50%;
    background:rgba(255,255,255,.32);
}

.dashboard-body{
    padding:24px;
}

.dashboard-status{
    display:flex;
    align-items:center;
    gap:10px;
    color:#fff;
    margin-bottom:18px;
    font-weight:700;
}

.status-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:#14f195;
    box-shadow:0 0 14px rgba(20,241,149,.7);
}

.interface-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-bottom:16px;
}

.if-card{
    padding:18px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.04);
}

.if-card strong{
    display:block;
    color:#fff;
    margin-bottom:6px;
    font-size:1rem;
}

.if-card span{
    display:block;
    color:rgba(255,255,255,.68);
    line-height:1.6;
    font-size:.92rem;
}

.activity-lines{
    position:relative;
    height:120px;
    border-radius:20px;
    border:1px solid rgba(255,255,255,.07);
    background:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(180deg, rgba(10,17,27,.45), rgba(10,17,27,.85));
    background-size:24px 24px, 24px 24px, auto;
    overflow:hidden;
    margin-bottom:16px;
}

.activity-line{
    position:absolute;
    left:0;
    right:0;
    height:2px;
    border-radius:999px;
    background:linear-gradient(90deg, transparent 0%, #5be5ff 30%, #12f3a1 70%, transparent 100%);
}

.l1{ top:28px; animation:nfcLine 3.2s linear infinite; }
.l2{ top:58px; animation:nfcLine 4.1s linear infinite; }
.l3{ top:88px; animation:nfcLine 5s linear infinite; }

@keyframes nfcLine{
    0%{ transform:translateX(-28%); opacity:.35; }
    50%{ opacity:1; }
    100%{ transform:translateX(28%); opacity:.35; }
}

.log-box{
    padding:18px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.04);
}

.log-box code{
    color:#95ffd9;
    font-size:.88rem;
    line-height:1.8;
    font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* process */
.nfc-process{
    padding:110px 0;
    background:#fff;
}

.process-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    margin-top:30px;
}

.process-card{
    padding:28px 24px;
    border-radius:24px;
    border:1px solid rgba(15,23,42,.08);
    background:linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow:0 18px 50px rgba(15,23,42,.04);
}

.process-card span{
    width:52px;
    height:52px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:linear-gradient(135deg, var(--nfc-cyan), var(--nfc-blue));
    color:#fff;
    font-weight:800;
    margin-bottom:18px;
}

.process-card h3{
    margin:0 0 10px;
    font-size:1.12rem;
    color:#0f172a;
}

.process-card p{
    margin:0;
    color:#667085;
    line-height:1.8;
}

/* cta */
.nfc-cta{
    padding:0 0 120px;
    background:#fff;
}

.nfc-cta-box{
    position:relative;
    overflow:hidden;
    padding:54px;
    border-radius:34px;
    background:
        radial-gradient(circle at 15% 20%, rgba(6,182,212,.18), transparent 24%),
        radial-gradient(circle at 85% 75%, rgba(20,241,149,.14), transparent 28%),
        linear-gradient(135deg, #08141b 0%, #0e1e29 100%);
    color:#fff;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 36px 90px rgba(15,23,42,.16);
}

.nfc-cta-box h2{
    margin:14px 0 14px;
    max-width:920px;
    font-size:clamp(2rem,3vw,3.3rem);
    line-height:1.08;
    letter-spacing:-.03em;
}

.nfc-cta-box p{
    margin:0 0 28px;
    max-width:760px;
    color:rgba(255,255,255,.76);
    line-height:1.85;
}

/* responsive */
@media (max-width: 1200px){
    .nfc-hero-wrap,
    .nfc-intro-box,
    .showcase-grid{
        grid-template-columns:1fr;
    }

    .ui-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .process-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .scene-body{
        min-height:640px;
    }
}

@media (max-width: 992px){
    .nfc-pills{
        grid-template-columns:1fr;
    }

    .interface-cards{
        grid-template-columns:1fr;
    }
}

@media (max-width: 768px){
    .nfc-hero-ui{
        padding:120px 0 60px;
    }

    .ui-grid,
    .process-grid{
        grid-template-columns:1fr;
    }

    .nfc-copy h1{
        font-size:2.45rem;
    }

    .intro-left h2,
    .section-heading h2,
    .showcase-copy h2,
    .nfc-cta-box h2{
        font-size:2rem;
    }

    .nfc-actions{
        flex-direction:column;
    }

    .btn-nfc{
        width:100%;
    }

    .nfc-intro-box,
    .dashboard-body,
    .nfc-cta-box{
        padding:24px;
    }

    .scene-body{
        min-height:640px;
        padding:18px;
    }

    .smart-card{
        position:relative;
        left:auto;
        top:auto;
        width:100%;
        margin-top:18px;
    }

    .phone-shell{
        position:relative;
        right:auto;
        top:auto;
        width:100%;
        max-width:260px;
        height:430px;
        margin:16px auto 0;
    }

    .beam,
    .mini-ui-card{
        display:none;
    }
}