/* ============================================================
   tokenim — Light Topology Style
   style.css  (亮色重构版)
   ============================================================ */

/* ── Variables ──────────────────────────────────────────── */
:root {
    /* Backgrounds */
    --bg0:      #f3f7ff;      /* 页面主背景 - 极浅蓝白 */
    --bg1:      #e8f0fd;      /* 交替区段背景 */
    --bg2:      #ffffff;      /* 卡片背景 - 纯白 */
    --bg3:      #edf4ff;      /* 悬停/强调元素背景 */
    --bgc:      #ddeaff;      /* 标签/徽章背景 */
    /* Accent */
    --blue:     #1471f4;      /* 主蓝 */
    --blue2:    #0a5cd8;      /* 深蓝 (hover) */
    --cyan:     #0094cc;      /* 青蓝 */
    --purple:   #5450d0;      /* 紫蓝 */
    /* Blue tints */
    --blue-d:   rgba(20,113,244,0.07);
    --blue-b:   rgba(20,113,244,0.14);
    --blue-b2:  rgba(20,113,244,0.4);
    --blue-g:   rgba(20,113,244,0.18);
    /* Shadows */
    --sd:       0 2px 18px rgba(20,113,244,0.08);
    --sd2:      0 6px 32px rgba(20,113,244,0.13);
    /* Text */
    --tx0:      #0b1d36;      /* 主文字 - 深海军蓝 */
    --tx1:      #2a446a;      /* 次文字 */
    --tx2:      #6282a4;      /* 浅文字 */
    --tx3:      #a0b4cc;      /* 极浅文字 */
    /* Fonts */
    --mono:     'Consolas','Courier New',monospace;
    --sans:     'Segoe UI',system-ui,-apple-system,sans-serif;
    /* Layout */
    --nav-h:    64px;
    --cont:     1200px;
    --r:        8px;
    --r2:       14px;
    --tr:       0.24s ease;
}

/* ── Reset ──────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{
    font-family:var(--sans);
    background:var(--bg0);
    color:var(--tx0);
    line-height:1.7;
    overflow-x:hidden;
}
/* Global topology dot grid - very subtle on light */
body::before{
    content:'';
    position:fixed;
    inset:0;
    background-image:radial-gradient(circle,rgba(20,113,244,0.06) 1.5px,transparent 1.5px);
    background-size:38px 38px;
    pointer-events:none;
    z-index:0;
}
a{color:var(--blue);text-decoration:none;transition:opacity var(--tr)}
a:hover{opacity:.75}
ul{list-style:none}
img{max-width:100%;display:block;object-fit:contain}
button{cursor:pointer;font-family:inherit;border:none;background:none}

/* ── Container ──────────────────────────────────────────── */
.container{
    position:relative;
    width:100%;
    max-width:var(--cont);
    margin:0 auto;
    padding:0 32px;
    z-index:1;
}

/* ── Section ────────────────────────────────────────────── */
.section{
    padding:92px 0;
    border-top:1px solid var(--blue-b);
}
.s-nodes   {background:var(--bg1)}
.s-links   {background:var(--bg0)}
.s-assets  {background:var(--bg1)}
.s-access  {background:var(--bg0)}
.s-security{background:var(--bg1)}
.s-support {background:var(--bg0)}
.s-faq     {background:var(--bg1)}
.s-terminal{background:var(--bg0)}

/* ── Node tag (section badge) ───────────────────────────── */
.node-tag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:40px;
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.12em;
    text-transform:uppercase;
    padding:5px 12px;
    background:var(--blue-d);
    border:1px solid var(--blue-b);
    border-radius:4px;
}
.nt-node{
    display:inline-block;
    width:7px;height:7px;
    border-radius:50%;
    background:var(--blue);
    box-shadow:0 0 6px rgba(20,113,244,.4);
    flex-shrink:0;
    animation:nodePulse 2.2s infinite;
}
@keyframes nodePulse{
    0%,100%{box-shadow:0 0 5px rgba(20,113,244,.3)}
    50%    {box-shadow:0 0 12px rgba(20,113,244,.6)}
}
.nt-ln{
    display:inline-block;
    width:24px;height:1px;
    background:linear-gradient(90deg,var(--blue),transparent);
    flex-shrink:0;
}
.nt-code{color:var(--blue);font-weight:700}
.nt-sep {color:var(--tx3)}
.nt-name{color:var(--tx1)}

/* ── Section header ─────────────────────────────────────── */
.sh{
    text-align:center;
    max-width:660px;
    margin:0 auto 60px;
}
.sh h2{
    font-size:clamp(1.9rem,3vw,2.7rem);
    font-weight:800;
    letter-spacing:-.025em;
    line-height:1.2;
    color:var(--tx0);
    margin-bottom:14px;
}
.sh h2 mark{background:none;color:var(--blue)}
.sh p{font-size:1.05rem;color:var(--tx1)}

/* ── Buttons ────────────────────────────────────────────── */
.btn-p{
    display:inline-flex;align-items:center;gap:8px;
    padding:13px 28px;
    background:var(--blue);
    color:#fff;
    font-weight:700;font-size:.95rem;
    border-radius:var(--r);
    box-shadow:0 4px 16px rgba(20,113,244,.3);
    transition:all var(--tr);
}
.btn-p:hover{background:var(--blue2);box-shadow:0 6px 24px rgba(20,113,244,.4);opacity:1;transform:translateY(-1px)}
.btn-g{
    display:inline-flex;align-items:center;
    padding:12px 24px;
    border:1.5px solid var(--blue-b2);
    color:var(--blue);
    font-size:.95rem;font-weight:600;
    border-radius:var(--r);
    background:var(--blue-d);
    transition:all var(--tr);
}
.btn-g:hover{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 4px 16px rgba(20,113,244,.25);opacity:1;transform:translateY(-1px)}

/* ── Reveal ─────────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .5s ease,transform .5s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ══════════════════════════════════════════════════════════
   NAVIGATION  (亮色顶部导航)
══════════════════════════════════════════════════════════ */
.nav{
    position:fixed;top:0;left:0;right:0;
    z-index:900;
    height:var(--nav-h);
    background:rgba(243,247,255,.96);
    border-bottom:1px solid var(--blue-b);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    box-shadow:0 2px 20px rgba(20,113,244,.06);
    transition:background var(--tr),box-shadow var(--tr);
}
.nav.scrolled{
    background:rgba(255,255,255,.98);
    box-shadow:0 4px 28px rgba(20,113,244,.1);
}
.nav-wrap{
    max-width:var(--cont);
    margin:0 auto;
    padding:0 32px;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.nav-logo{
    display:flex;align-items:center;
    color:var(--tx0);
    font-weight:800;font-size:1.1rem;
    letter-spacing:.04em;
    flex-shrink:0;
}
.nav-logo:hover{color:var(--blue);opacity:1}
.logo-node{
    display:inline-block;
    width:10px;height:10px;
    border-radius:50%;
    background:var(--blue);
    box-shadow:0 0 8px rgba(20,113,244,.5);
    margin-right:6px;
}
.logo-line{
    display:inline-block;
    width:16px;height:2px;
    background:linear-gradient(90deg,var(--blue),rgba(20,113,244,.2));
    margin-right:8px;
    border-radius:1px;
}
.nav-list{display:flex;align-items:center;gap:2px}
.nlink{
    display:flex;align-items:center;gap:5px;
    padding:7px 11px;
    font-size:.84rem;font-weight:500;
    color:var(--tx1);
    border-radius:6px;
    transition:all var(--tr);
    white-space:nowrap;
}
.nlink:hover,.nlink.active{
    color:var(--blue);
    background:var(--blue-d);
    opacity:1;
}
.nd{
    display:inline-block;
    width:4px;height:4px;
    border-radius:50%;
    background:var(--tx3);
    flex-shrink:0;
    transition:all var(--tr);
}
.nlink:hover .nd,.nlink.active .nd{background:var(--blue);box-shadow:0 0 5px rgba(20,113,244,.5)}
.nlink-cta{
    border:1.5px solid var(--blue-b2);
    color:var(--blue)!important;
    margin-left:6px;
    font-weight:600;
}
.nlink-cta:hover{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
.nlink-cta:hover .nd{background:#fff!important;box-shadow:none!important}
.nav-toggle{display:none;flex-direction:column;gap:5px;padding:8px}
.nav-toggle span{
    display:block;width:22px;height:2px;
    background:var(--tx0);border-radius:2px;
    transition:all var(--tr);
}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ══════════════════════════════════════════════════════════
   §01  OVERVIEW / HERO  (亮色英雄区)
══════════════════════════════════════════════════════════ */
.s-overview{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    padding-top:var(--nav-h);
    overflow:hidden;
    background:linear-gradient(135deg,#f0f6ff 0%,#e6f0ff 40%,#f4f9ff 100%);
}
#topoCanvas{
    position:absolute;
    inset:0;
    width:100%;height:100%;
}
/* 亮色渐变遮罩 - 左侧文字区保持清晰，右侧显示canvas网络 */
.hero-grad{
    position:absolute;
    inset:0;
    background:linear-gradient(
        105deg,
        rgba(240,246,255,1) 28%,
        rgba(240,246,255,.92) 44%,
        rgba(240,246,255,.45) 65%,
        rgba(240,246,255,.05) 100%
    );
    pointer-events:none;
}
.hero-body{
    position:relative;
    z-index:1;
    padding:60px 0;
}
.hero-left{max-width:580px}
.hero-eyebrow{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.18em;
    color:var(--blue);
    margin-bottom:18px;
    font-weight:600;
}
.hero-h1{
    font-size:clamp(2.4rem,5vw,4.2rem);
    font-weight:800;
    line-height:1.1;
    letter-spacing:-.03em;
    margin-bottom:22px;
    color:var(--tx0);
}
.hero-h1 em{
    font-style:normal;
    color:var(--blue);
    position:relative;
}
.hero-h1 span{
    display:block;
    font-size:.52em;
    font-weight:500;
    color:var(--tx1);
    letter-spacing:0;
    margin-top:10px;
}
.hero-desc{
    font-size:1.05rem;
    color:var(--tx1);
    max-width:500px;
    margin-bottom:34px;
    line-height:1.8;
}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px}
.hero-stats{
    display:flex;align-items:center;
    gap:20px;flex-wrap:wrap;
    padding:18px 22px;
    background:rgba(255,255,255,.7);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    backdrop-filter:blur(8px);
    box-shadow:var(--sd);
    width:fit-content;
}
.hs{display:flex;flex-direction:column;gap:3px}
.hs-v{font-size:1.5rem;font-weight:800;color:var(--blue);line-height:1}
.hs-v small{font-size:.6em}
.hs-k{font-family:var(--mono);font-size:9.5px;color:var(--tx2);letter-spacing:.05em}
.hs-div{width:1px;height:34px;background:var(--blue-b);flex-shrink:0}

/* ══════════════════════════════════════════════════════════
   §02  NODE ARCHITECTURE
══════════════════════════════════════════════════════════ */
.arch-diagram{
    position:relative;
    width:400px;height:400px;
    margin:0 auto 52px;
}
.arch-center{
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
}
.arch-hub{position:relative;z-index:2}
.ah-ring{
    position:absolute;
    border-radius:50%;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    animation:ringPulse 3s ease-in-out infinite;
}
.ah-r1{
    width:108px;height:108px;
    border:1.5px solid rgba(20,113,244,.18);
    animation-delay:0s;
}
.ah-r2{
    width:80px;height:80px;
    border:1.5px solid rgba(20,113,244,.3);
    animation-delay:.9s;
}
@keyframes ringPulse{
    0%,100%{opacity:.7;transform:translate(-50%,-50%) scale(1)}
    50%    {opacity:1;transform:translate(-50%,-50%) scale(1.06)}
}
.ah-core{
    width:58px;height:58px;
    border-radius:50%;
    background:linear-gradient(135deg,rgba(20,113,244,.12),rgba(20,113,244,.06));
    border:2px solid var(--blue);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    box-shadow:0 0 24px rgba(20,113,244,.2),inset 0 0 16px rgba(20,113,244,.06);
}
.ah-label{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--blue)}
.ah-sub  {font-family:var(--mono);font-size:7px;color:var(--tx2);letter-spacing:.08em}
.arch-lines{
    position:absolute;inset:0;
    width:100%;height:100%;z-index:1;
}
.arch-node{
    position:absolute;
    width:64px;height:64px;
    background:#fff;
    border:1.5px solid var(--blue-b);
    border-radius:50%;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    z-index:3;
    box-shadow:var(--sd);
    transition:all var(--tr);
    cursor:default;
}
.arch-node:hover{
    border-color:var(--blue-b2);
    background:var(--blue-d);
    box-shadow:var(--sd2);
    transform:scale(1.08);
}
.arch-node span{font-family:var(--mono);font-size:8px;color:var(--tx2);letter-spacing:.05em}
.an-icon{width:22px;height:22px;color:var(--blue)}
.an-top{top:0;left:50%;transform:translateX(-50%)}
.an-tr {top:11%;right:2%}
.an-br {bottom:11%;right:2%}
.an-bl {bottom:11%;left:2%}
.an-tl {top:11%;left:2%}
.an-top:hover{transform:translateX(-50%) scale(1.08)}
/* Node detail cards */
.node-cards{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:14px;
}
.nc{
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r);
    padding:22px;
    box-shadow:var(--sd);
    transition:all var(--tr);
    cursor:default;
}
.nc:hover{
    border-color:var(--blue-b2);
    box-shadow:var(--sd2);
    transform:translateY(-3px);
    background:var(--bg3);
}
.nc-head{
    display:flex;justify-content:space-between;align-items:center;
    margin-bottom:10px;
}
.nc-idx{font-family:var(--mono);font-size:9px;color:var(--blue);letter-spacing:.1em;font-weight:600}
.nc-dot{
    width:7px;height:7px;border-radius:50%;
    background:var(--blue);box-shadow:0 0 5px rgba(20,113,244,.4);
}
.nc h3{font-size:.93rem;font-weight:700;color:var(--tx0);margin-bottom:8px}
.nc p {font-size:.82rem;color:var(--tx1);line-height:1.7;margin-bottom:10px}
.nc-tags{display:flex;flex-wrap:wrap;gap:5px}
.nc-tags span{
    font-family:var(--mono);font-size:8.5px;letter-spacing:.05em;
    padding:2px 7px;
    border:1px solid var(--blue-b);border-radius:3px;
    color:var(--blue);background:var(--blue-d);
    font-weight:600;
}

/* ══════════════════════════════════════════════════════════
   §03  LINK CAPABILITIES
══════════════════════════════════════════════════════════ */
.links-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--blue-b);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    overflow:hidden;
    box-shadow:var(--sd);
}
.link-item{
    background:var(--bg2);
    padding:28px 22px;
    position:relative;
    transition:all var(--tr);
    cursor:default;
}
.link-item:hover{background:var(--bg3)}
.li-num{
    position:absolute;top:16px;right:16px;
    font-family:var(--mono);font-size:9.5px;
    color:var(--tx3);letter-spacing:.1em;
}
.li-icon{width:42px;height:42px;color:var(--blue);margin-bottom:14px}
.link-item h3{font-size:1rem;font-weight:700;color:var(--tx0);margin-bottom:7px}
.link-item p {font-size:.85rem;color:var(--tx1);line-height:1.7;margin-bottom:12px}
.li-tags{display:flex;flex-wrap:wrap;gap:5px}
.li-tags span{
    font-family:var(--mono);font-size:9px;letter-spacing:.05em;
    padding:2px 8px;
    border:1px solid var(--blue-b);border-radius:3px;
    color:var(--tx1);background:var(--bgc);
}

/* ══════════════════════════════════════════════════════════
   §04  ASSET INTERACTION
══════════════════════════════════════════════════════════ */
.flow-diagram{
    display:flex;align-items:center;gap:0;
    margin-bottom:32px;
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    overflow:hidden;
    padding:28px 20px;
    box-shadow:var(--sd);
}
.flow-col{display:flex;flex-direction:column;gap:8px;min-width:140px}
.fc-head{
    font-family:var(--mono);font-size:9px;
    letter-spacing:.12em;color:var(--tx2);
    margin-bottom:4px;text-transform:uppercase;font-weight:600;
}
.flow-item{
    display:flex;align-items:center;gap:10px;
    padding:9px 12px;
    background:var(--bg3);
    border:1px solid var(--blue-b);
    border-radius:var(--r);
    transition:border-color var(--tr),box-shadow var(--tr);
}
.flow-item:hover{border-color:var(--blue-b2);box-shadow:var(--sd)}
.fi-sym{
    width:28px;height:28px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:12px;font-weight:700;flex-shrink:0;
}
.fi-sym.btc{background:rgba(247,147,26,.12);color:#d4820f}
.fi-sym.eth{background:rgba(98,126,234,.12);color:#4a66d0}
.fi-sym.sol{background:rgba(20,180,130,.12);color:#0e9068}
.fi-sym.bnb{background:rgba(200,150,10,.12);color:#b08800}
.fi-name{font-size:.83rem;color:var(--tx1);font-weight:500}
.fi-more{
    padding:7px 12px;
    font-family:var(--mono);font-size:9px;
    color:var(--tx2);letter-spacing:.07em;text-align:center;
}
.fi-in svg,.fi-out svg{color:var(--blue);flex-shrink:0}
.flow-arrow{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    position:relative;min-width:60px;gap:6px;color:var(--blue);
}
.fa-line{
    width:100%;height:2px;
    background:linear-gradient(90deg,rgba(20,113,244,.15),rgba(20,113,244,.5));
    border-radius:1px;position:relative;overflow:hidden;
}
.fa-line::after{
    content:'';
    position:absolute;top:0;left:-100%;
    width:50%;height:100%;
    background:linear-gradient(90deg,transparent,var(--blue),transparent);
    animation:lineFlow 2s linear infinite;
}
@keyframes lineFlow{from{left:-50%}to{left:100%}}
.fa-particles{position:absolute;width:100%;display:flex;justify-content:space-around}
.fap{
    display:inline-block;
    width:5px;height:5px;border-radius:50%;
    background:var(--blue);box-shadow:0 0 5px rgba(20,113,244,.5);
    animation:particleFlow 2s linear infinite;opacity:0;
}
.fap1{animation-delay:0s}.fap2{animation-delay:.7s}.fap3{animation-delay:1.4s}
@keyframes particleFlow{
    0%  {transform:translateX(-30px);opacity:0}
    20% {opacity:.8}
    80% {opacity:.8}
    100%{transform:translateX(30px);opacity:0}
}
.flow-hub{
    display:flex;flex-direction:column;align-items:center;gap:12px;
    padding:0 20px;flex-shrink:0;
}
.fh-outer{
    width:96px;height:96px;border-radius:50%;
    border:1px solid rgba(20,113,244,.2);
    position:absolute;
    animation:ringPulse 3s ease-in-out infinite;
    pointer-events:none;
}
.fh-inner{
    width:78px;height:78px;border-radius:50%;
    background:linear-gradient(135deg,rgba(20,113,244,.1),rgba(20,113,244,.05));
    border:2px solid var(--blue);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    box-shadow:0 0 22px rgba(20,113,244,.15);
    position:relative;z-index:1;
}
.fh-name{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--blue)}
.fh-sub {font-family:var(--mono);font-size:8px;color:var(--tx2)}
.fh-actions{
    display:flex;gap:5px;flex-wrap:wrap;justify-content:center;
    position:relative;z-index:1;
}
.fh-actions span{
    font-family:var(--mono);font-size:9px;
    padding:3px 8px;border:1px solid var(--blue-b);border-radius:3px;
    color:var(--blue);background:var(--blue-d);font-weight:600;
}
/* Transaction record */
.tx-record{
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    overflow:hidden;
    box-shadow:var(--sd);
}
.tr-head{
    display:flex;justify-content:space-between;align-items:center;
    padding:13px 20px;
    border-bottom:1px solid var(--blue-b);
    background:var(--bg3);
}
.trh-title{font-family:var(--mono);font-size:10px;color:var(--tx2);letter-spacing:.1em;font-weight:600}
.trh-live{
    display:flex;align-items:center;gap:5px;
    font-family:var(--mono);font-size:9px;color:#0a8040;letter-spacing:.1em;
}
.trh-live i{
    display:inline-block;width:5px;height:5px;border-radius:50%;
    background:#12a050;box-shadow:0 0 5px rgba(18,160,80,.4);
    animation:nodePulse 1.2s infinite;
}
.tr-rows{display:flex;flex-direction:column}
.tr-row{
    display:grid;
    grid-template-columns:60px 130px 60px 1fr 90px;
    gap:12px;align-items:center;
    padding:12px 20px;
    border-bottom:1px solid rgba(20,113,244,.06);
    font-size:.84rem;transition:background var(--tr);
}
.tr-row:hover{background:var(--bg3)}
.tr-row:last-child{border-bottom:none}
.tr-type{
    font-family:var(--mono);font-size:9px;letter-spacing:.08em;
    padding:3px 7px;border-radius:3px;text-align:center;font-weight:700;
}
.tr-type.send{background:rgba(220,50,50,.08);color:#c03030;border:1px solid rgba(220,50,50,.15)}
.tr-type.recv{background:rgba(12,160,80,.08);color:#0a8040;border:1px solid rgba(12,160,80,.15)}
.tr-type.swap{background:rgba(0,148,204,.08);color:var(--cyan);border:1px solid rgba(0,148,204,.2)}
.tr-type.dapp{background:rgba(84,80,208,.08);color:var(--purple);border:1px solid rgba(84,80,208,.18)}
.tr-addr{font-family:var(--mono);font-size:.79rem;color:var(--tx1)}
.tr-chain{
    font-family:var(--mono);font-size:9px;
    color:var(--blue);background:var(--blue-d);
    padding:2px 7px;border-radius:2px;text-align:center;font-weight:600;
}
.tr-amt{font-size:.85rem;color:var(--tx0);font-weight:600}
.tr-status{font-family:var(--mono);font-size:9px;text-align:right;letter-spacing:.05em;font-weight:600}
.tr-status.ok  {color:#0a8040}
.tr-status.pend{color:#d09010}

/* ══════════════════════════════════════════════════════════
   §05  ACCESS METHODS
══════════════════════════════════════════════════════════ */
.access-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;margin-bottom:20px;
}
.ac-web{grid-column:1/-1;display:grid;grid-template-columns:80px auto 1fr auto;gap:16px;align-items:center;text-align:left}
.ac-web .ac-icon{margin:0}
.ac-card{
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    padding:22px;text-align:center;
    box-shadow:var(--sd);
    transition:all var(--tr);cursor:default;
}
.ac-card:hover{border-color:var(--blue-b2);box-shadow:var(--sd2);transform:translateY(-3px)}
.ac-icon{
    width:52px;height:52px;border-radius:var(--r);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 12px;
}
.ac-icon svg{width:28px;height:28px}
.ac-icon.android{background:rgba(61,220,132,.1);color:#2a9960}
.ac-icon.ios    {background:rgba(10,132,255,.1); color:#0a84ff}
.ac-icon.windows{background:rgba(0,120,212,.1);  color:#0060a8}
.ac-icon.mac    {background:rgba(100,100,120,.08);color:#404060}
.ac-icon.web    {background:var(--blue-d);        color:var(--blue)}
.ac-os{
    display:inline-block;
    font-family:var(--mono);font-size:9px;letter-spacing:.1em;
    color:var(--blue);background:var(--bgc);
    padding:2px 8px;border-radius:3px;
    margin-bottom:8px;font-weight:600;
}
.ac-card h3{font-size:.9rem;font-weight:700;color:var(--tx0);margin-bottom:6px}
.ac-card p {font-size:.8rem;color:var(--tx1);line-height:1.65;margin-bottom:10px}
.ac-meta{display:flex;gap:8px;justify-content:center;margin-bottom:14px}
.ac-meta span{font-family:var(--mono);font-size:9px;color:var(--tx2)}
.ac-btn{
    display:inline-block;padding:9px 18px;
    background:var(--blue);color:#fff;
    font-size:.8rem;font-weight:700;
    border-radius:var(--r);
    box-shadow:0 3px 12px rgba(20,113,244,.25);
    transition:all var(--tr);
}
.ac-btn:hover{background:var(--blue2);box-shadow:0 5px 18px rgba(20,113,244,.35);opacity:1;transform:translateY(-1px)}
.access-warn{
    display:flex;align-items:flex-start;gap:10px;
    padding:14px 18px;
    background:rgba(20,113,244,.04);
    border:1px solid var(--blue-b);
    border-radius:var(--r);
    font-size:.84rem;color:var(--tx1);
}
.access-warn svg{flex-shrink:0;color:var(--blue);margin-top:1px}
.access-warn strong{color:var(--tx0)}

/* ══════════════════════════════════════════════════════════
   §06  SECURITY NODES
══════════════════════════════════════════════════════════ */
.sec-net{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}
.sn-card{
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    padding:24px;
    box-shadow:var(--sd);
    transition:all var(--tr);cursor:default;
    position:relative;overflow:hidden;
}
.sn-card::after{
    content:'';
    position:absolute;
    top:0;left:0;right:0;
    height:3px;
    background:linear-gradient(90deg,var(--blue),var(--cyan));
    opacity:0;
    transition:opacity var(--tr);
}
.sn-card:hover{border-color:var(--blue-b2);box-shadow:var(--sd2);transform:translateY(-2px)}
.sn-card:hover::after{opacity:1}
.sn-head{
    display:flex;justify-content:space-between;align-items:flex-start;
    margin-bottom:12px;
}
.sn-icon{width:38px;height:38px;color:var(--blue)}
.sn-status{
    font-family:var(--mono);font-size:9px;
    color:#0a8040;letter-spacing:.08em;font-weight:600;
    background:rgba(12,160,80,.1);
    padding:2px 7px;border-radius:3px;
    border:1px solid rgba(12,160,80,.2);
}
.sn-code{font-family:var(--mono);font-size:9px;color:var(--blue);letter-spacing:.1em;margin-bottom:7px;font-weight:600}
.sn-card h3{font-size:1rem;font-weight:700;color:var(--tx0);margin-bottom:8px}
.sn-card p {font-size:.85rem;color:var(--tx1);line-height:1.7;margin-bottom:12px}
.sn-card ul{display:flex;flex-direction:column;gap:5px}
.sn-card li{
    font-family:var(--mono);font-size:10.5px;
    color:var(--tx2);padding-left:14px;
    position:relative;letter-spacing:.03em;
}
.sn-card li::before{content:'›';position:absolute;left:0;color:var(--blue)}

/* ══════════════════════════════════════════════════════════
   §07  SUPPORT
══════════════════════════════════════════════════════════ */
.sup-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px;
}
.sup-card{
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    padding:28px;
    box-shadow:var(--sd);
    transition:all var(--tr);cursor:default;
}
.sup-card:hover{border-color:var(--blue-b2);box-shadow:var(--sd2);transform:translateY(-2px)}
.sc-num{
    font-family:var(--mono);font-size:10px;
    color:var(--blue);letter-spacing:.1em;
    margin-bottom:10px;font-weight:600;
}
.sup-card h3{font-size:1.05rem;font-weight:700;color:var(--tx0);margin-bottom:12px}
.sup-card p {font-size:.86rem;color:var(--tx1);line-height:1.75;margin-bottom:10px}
.sup-card p:last-child{margin-bottom:0}
.sup-card strong{color:var(--tx0);font-weight:600}

/* ══════════════════════════════════════════════════════════
   §08  FAQ
══════════════════════════════════════════════════════════ */
.faq-list{display:flex;flex-direction:column;gap:8px}
.faq-item{
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r);
    overflow:hidden;
    box-shadow:var(--sd);
    transition:border-color var(--tr),box-shadow var(--tr);
}
.faq-item.open{
    border-color:var(--blue-b2);
    box-shadow:var(--sd2);
}
.fq{
    width:100%;display:flex;align-items:center;gap:14px;
    padding:17px 20px;text-align:left;cursor:pointer;
    transition:background var(--tr);
}
.fq:hover{background:var(--bg3)}
.fq-n{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--blue);flex-shrink:0;font-weight:700}
.fq-t{flex:1;font-size:.93rem;font-weight:600;color:var(--tx0)}
.fq-x{
    width:20px;height:20px;
    border:1.5px solid var(--blue-b2);border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:14px;color:var(--blue);flex-shrink:0;
    transition:transform var(--tr),background var(--tr);line-height:1;
}
.faq-item.open .fq-x{transform:rotate(45deg);background:var(--blue-d)}
.fa{max-height:0;overflow:hidden;transition:max-height .4s ease}
.fa.open{max-height:260px}
.fa p{
    padding:0 20px 18px;
    padding-left:calc(20px + 10px + 14px);
    font-size:.88rem;color:var(--tx1);line-height:1.75;
}

/* ══════════════════════════════════════════════════════════
   §09  TERMINAL
══════════════════════════════════════════════════════════ */
.term-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;margin-bottom:22px;
}
.term-card{
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    padding:22px;text-align:center;
    position:relative;
    box-shadow:var(--sd);
    transition:all var(--tr);cursor:default;
}
.term-card:hover{border-color:var(--blue-b2);box-shadow:var(--sd2);transform:translateY(-2px)}
.tc-node{
    position:absolute;top:-5px;left:50%;
    transform:translateX(-50%);
    width:10px;height:10px;border-radius:50%;
    background:#fff;
    border:2px solid var(--blue);
    box-shadow:0 0 8px rgba(20,113,244,.3);
}
.tc-icon{width:38px;height:38px;color:var(--blue);margin:12px auto 14px}
.term-card h3{font-size:.95rem;font-weight:700;color:var(--tx0);margin-bottom:6px}
.term-card p {font-size:.8rem;color:var(--tx1);line-height:1.6;margin-bottom:12px}
.tc-link{font-family:var(--mono);font-size:.78rem;color:var(--blue);word-break:break-all;font-weight:500}
.term-brand{
    background:var(--bg2);
    border:1px solid var(--blue-b);
    border-radius:var(--r2);
    padding:24px 30px;
    box-shadow:var(--sd);
}
.tb-logo{
    display:flex;align-items:center;
    margin-bottom:14px;
    font-weight:800;font-size:1.1rem;letter-spacing:.05em;color:var(--tx0);
}
.tbl-node{
    display:inline-block;width:10px;height:10px;border-radius:50%;
    background:var(--blue);box-shadow:0 0 7px rgba(20,113,244,.4);
    margin-right:6px;
}
.tbl-line{
    display:inline-block;width:16px;height:2px;
    background:linear-gradient(90deg,var(--blue),rgba(20,113,244,.2));
    margin-right:8px;border-radius:1px;
}
.term-brand p{font-size:.88rem;color:var(--tx1);line-height:1.75}
.term-brand strong{color:var(--tx0);font-weight:600}
.term-brand a{font-family:var(--mono);color:var(--blue);font-weight:500}

/* ══════════════════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════════════════ */
.footer{
    background:var(--bg1);
    border-top:1px solid var(--blue-b);
    padding:56px 0 28px;
}
.ft-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr;
    gap:40px;margin-bottom:36px;
    padding-bottom:36px;
    border-bottom:1px solid var(--blue-b);
}
.ft-logo{
    display:flex;align-items:center;
    font-weight:800;font-size:1.05rem;letter-spacing:.05em;
    color:var(--tx0);margin-bottom:12px;
}
.ftl-node{
    display:inline-block;width:9px;height:9px;border-radius:50%;
    background:var(--blue);box-shadow:0 0 6px rgba(20,113,244,.4);
    margin-right:6px;
}
.ftl-line{
    display:inline-block;width:14px;height:2px;
    background:linear-gradient(90deg,var(--blue),rgba(20,113,244,.2));
    margin-right:8px;border-radius:1px;
}
.ft-brand p{font-size:.84rem;color:var(--tx2);line-height:1.7;margin-bottom:5px}
.ft-domain{font-family:var(--mono);font-size:10.5px;color:var(--blue)!important;margin-top:8px!important;font-weight:600}
.ft-copy{font-size:.76rem!important;color:var(--tx2)!important;margin-top:10px!important}
.ft-col h4{
    font-family:var(--mono);font-size:.8rem;font-weight:700;
    color:var(--tx0);letter-spacing:.07em;text-transform:uppercase;
    margin-bottom:14px;
}
.ft-col ul{display:flex;flex-direction:column;gap:9px}
.ft-col a{font-size:.84rem;color:var(--tx2);transition:color var(--tr)}
.ft-col a:hover{color:var(--blue);opacity:1}
.ft-bottom{
    text-align:center;
    font-family:var(--mono);font-size:10.5px;
    color:var(--tx2);letter-spacing:.05em;
}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════════ */
@media(max-width:1100px){
    .node-cards{grid-template-columns:repeat(3,1fr)}
    .access-grid{grid-template-columns:repeat(2,1fr)}
    .ac-web{grid-template-columns:60px auto 1fr auto;grid-column:1/-1}
    .term-grid{grid-template-columns:repeat(2,1fr)}
    .ft-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
    .links-grid{grid-template-columns:1fr 1fr}
    .sec-net{grid-template-columns:1fr 1fr}
    .arch-diagram{width:320px;height:320px}
    .flow-diagram{flex-direction:column;gap:14px;padding:18px}
    .flow-arrow{transform:rotate(90deg);width:60px;height:40px;min-width:0}
    .fh-outer{width:80px;height:80px}
    .fh-inner{width:62px;height:62px}
}
@media(max-width:768px){
    .container{padding:0 20px}
    .section{padding:60px 0}
    .nav-list{
        display:none;flex-direction:column;
        position:absolute;top:var(--nav-h);left:0;right:0;
        background:rgba(255,255,255,.98);
        padding:14px;gap:2px;
        border-bottom:1px solid var(--blue-b);
        box-shadow:0 8px 24px rgba(20,113,244,.08);
    }
    .nav-list.open{display:flex}
    .nlink{padding:10px 14px}
    .nav-toggle{display:flex}
    .hero-h1{font-size:2rem}
    .hero-grad{background:linear-gradient(105deg,rgba(240,246,255,.98) 50%,rgba(240,246,255,.75))}
    .node-cards{grid-template-columns:1fr 1fr}
    .arch-diagram{width:280px;height:280px}
    .links-grid{grid-template-columns:1fr}
    .sup-grid{grid-template-columns:1fr}
    .sec-net{grid-template-columns:1fr}
    .term-grid{grid-template-columns:1fr 1fr}
    .ft-grid{grid-template-columns:1fr}
    .tr-row{grid-template-columns:56px 1fr 50px}
    .tr-chain,.tr-status{display:none}
    .ac-web{grid-template-columns:1fr;text-align:center}
    .ac-web .ac-icon{margin:0 auto 10px}
}
@media(max-width:520px){
    .hero-btns{flex-direction:column}
    .btn-p,.btn-g{text-align:center;justify-content:center}
    .node-cards{grid-template-columns:1fr}
    .term-grid{grid-template-columns:1fr}
    .access-grid{grid-template-columns:1fr}
    .ac-web{grid-column:1/-1}
    .hero-stats{gap:12px;padding:14px 16px}
    .hs-div{height:24px}
}
