/* ============================================================ RESO — Landing styles Font: Uncut Sans (Fontsource CDN) Icons: Font Awesome Theme: Light, Sky Blue accent ============================================================ */ :root{ --ink:#09090B; --ink-2:#3F3F46; --muted:#71717A; --faint:#A1A1AA; --canvas:#FFFFFF; --soft:#F8F8FA; --soft-2:#F2F2F5; --line:#E4E4E7; --line-2:#D4D4D8; --indigo:#0EA5E9; --indigo-2:#38BDF8; --indigo-light:#E0F2FE; --indigo-border:#BAE6FD; --blue:#0284C7; --green:#16A34A; --green-light:#F0FDF4; --green-border:#BBF7D0; --radius:12px; --radius-lg:18px; --radius-sm:8px; --shadow-sm:0 1px 2px rgba(0,0,0,.05), 0 4px 12px rgba(0,0,0,.04); --shadow-md:0 2px 8px rgba(0,0,0,.06), 0 12px 32px rgba(0,0,0,.08); --ease:cubic-bezier(.22,.61,.36,1); } *{box-sizing:border-box;margin:0;padding:0} html{scroll-behavior:smooth} body{ font-family:'Uncut Sans',system-ui,-apple-system,sans-serif; color:var(--ink); background:var(--canvas); font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; } a{color:inherit; text-decoration:none} img,svg{display:block} .wrap{max-width:1160px; margin:0 auto; padding:0 24px} /* ---- BUTTONS ---- */ .btn{ display:inline-flex; align-items:center; gap:7px; font-weight:500; font-size:14.5px; padding:10px 18px; border-radius:var(--radius); cursor:pointer; border:1px solid transparent; transition:transform .25s var(--ease), background .2s, box-shadow .25s var(--ease), border-color .2s; white-space:nowrap; font-family:inherit; } .btn i{font-size:16px} .btn:active{transform:scale(.97)} .btn-primary{background:var(--ink); color:#fff; border-color:var(--ink)} .btn-primary:hover{transform:translateY(-2px); box-shadow:0 8px 20px -6px rgba(0,0,0,.4)} .btn-accent{background:var(--indigo); color:#fff; border-color:var(--indigo)} .btn-accent:hover{transform:translateY(-2px); box-shadow:0 10px 24px -6px rgba(14,165,233,.5); background:#0284C7} .btn-ghost{background:var(--canvas); color:var(--ink-2); border-color:var(--line-2)} .btn-ghost:hover{background:var(--soft); border-color:var(--line); transform:translateY(-1px)} .btn-white{background:#fff; color:var(--indigo); border-color:#fff; font-weight:600} .btn-white:hover{background:#F5F5FF; transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.15)} .btn-ghost-white{background:rgba(255,255,255,.1); color:#fff; border-color:rgba(255,255,255,.25)} .btn-ghost-white:hover{background:rgba(255,255,255,.18); transform:translateY(-1px)} .btn-lg{padding:13px 22px; font-size:15.5px; border-radius:13px} /* ---- NAV (iOS-style glass) ---- */ header{position:sticky; top:0; z-index:200; padding:14px 0; transition:padding .3s var(--ease)} header.scrolled{padding:10px 0} .nav{ position:relative; display:flex; align-items:center; justify-content:space-between; height:54px; padding:0 10px 0 18px; background:rgba(255,255,255,.38); backdrop-filter:blur(22px) saturate(1.8); -webkit-backdrop-filter:blur(22px) saturate(1.8); border:1px solid rgba(255,255,255,.55); border-radius:20px; box-shadow: 0 1px 1px rgba(255,255,255,.6) inset, 0 -1px 12px rgba(186,230,253,.35) inset, 0 12px 28px -12px rgba(2,132,199,.22), 0 2px 10px rgba(15,23,42,.05); transition:all .3s var(--ease); overflow:hidden; } .nav::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:linear-gradient(120deg, rgba(224,242,254,.45), rgba(255,255,255,0) 45%, rgba(255,255,255,0) 60%, rgba(186,230,253,.3)); } .nav > *{position:relative; z-index:1} header.scrolled .nav{ background:rgba(255,255,255,.55); border-color:rgba(255,255,255,.7); box-shadow: 0 1px 1px rgba(255,255,255,.7) inset, 0 -1px 14px rgba(186,230,253,.4) inset, 0 16px 34px -12px rgba(2,132,199,.26), 0 2px 10px rgba(15,23,42,.06); } .brand{ display:flex; align-items:center; gap:9px; font-weight:700; font-size:18px; letter-spacing:-.02em; transition:opacity .2s; } .brand:hover{opacity:.82} .brand .logo{ width:28px; height:28px; border-radius:8px; display:flex; align-items:center; justify-content:center; background:var(--indigo); color:#fff; transition:transform .3s var(--ease); } .brand:hover .logo{transform:rotate(-8deg) scale(1.07)} .brand .logo i{font-size:15px} .nav-links{ display:flex; gap:2px; background:rgba(255,255,255,.28); border:1px solid rgba(255,255,255,.5); border-radius:100px; padding:3px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); } .nav-links a{ color:var(--ink-2); font-size:13.5px; font-weight:500; padding:7px 13px; border-radius:100px; transition:background .2s, color .2s, box-shadow .2s; } .nav-links a:hover{background:rgba(255,255,255,.6); color:var(--ink)} .nav-links a.active{ background:rgba(255,255,255,.92); color:var(--indigo); font-weight:600; box-shadow:0 2px 8px rgba(15,23,42,.12), inset 0 0 0 1px rgba(14,165,233,.2); } .nav-cta{display:flex; align-items:center; gap:8px} .nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px; font-size:20px; color:var(--ink); border-radius:8px; transition:background .15s} .nav-toggle:hover{background:rgba(255,255,255,.6)} /* ---- HERO ---- */ .hero{ position:relative; padding:80px 0 48px; text-align:center; overflow:hidden; background:linear-gradient(180deg, #E4F3FF 0%, #EFF8FF 22%, #F8FCFF 45%, #FFFFFF 72%); } .grid-overlay{ position:absolute; inset:0; z-index:0; pointer-events:none; background-image: linear-gradient(var(--line) 1px,transparent 1px), linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:52px 52px; mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(0,0,0,.5) 0%,transparent 80%); -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(0,0,0,.5) 0%,transparent 80%); opacity:.6; } .hero .wrap{position:relative; z-index:1} .pill{ display:inline-flex; align-items:center; gap:8px; padding:5px 8px 5px 6px; margin-bottom:28px; background:var(--canvas); border:1px solid var(--line); border-radius:100px; font-size:13px; color:var(--ink-2); box-shadow:var(--shadow-sm); transition:box-shadow .2s; } .pill:hover{box-shadow:var(--shadow-md)} .pill .tag{ background:var(--indigo-light); color:var(--indigo); font-weight:600; font-size:11.5px; padding:3px 8px; border-radius:100px; } .pill i{font-size:14px; color:var(--indigo); transition:transform .2s} .pill:hover i{transform:translateX(3px)} h1.display{ font-size:clamp(36px,6vw,70px); line-height:1.03; letter-spacing:-.04em; font-weight:700; max-width:14ch; margin:0 auto 20px; color:var(--ink); } .hero-sub{ font-size:clamp(16px,2vw,19px); color:var(--muted); max-width:54ch; margin:0 auto 28px; line-height:1.6; } .hero-cta{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:20px} .hero-note{ font-size:13px; color:var(--faint); display:flex; gap:18px; justify-content:center; flex-wrap:wrap; } .hero-note span{display:inline-flex; align-items:center; gap:6px} .hero-note i{font-size:14px; color:var(--green)} /* ---- CONSOLE MOCKUP ---- */ .console{ max-width:920px; margin:52px auto 0; border-radius:var(--radius-lg); background:linear-gradient(180deg,#FFFFFF,#FBFDFF); border:1px solid rgba(228,228,231,.8); box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 24px 60px -20px rgba(15,23,42,.28), 0 10px 24px -12px rgba(2,132,199,.16), 0 2px 6px rgba(15,23,42,.06); overflow:hidden; text-align:left; transform:translateZ(0); } .console-bar{ display:flex; align-items:center; padding:11px 16px; border-bottom:1px solid var(--line); background:linear-gradient(180deg,#FCFCFD,#F5F5F7); gap:14px; box-shadow:0 1px 0 rgba(255,255,255,.8) inset; } .cb-left{display:flex; gap:6px; align-items:center} .cb-dot{width:10px; height:10px; border-radius:50%; display:block; box-shadow:0 1px 1px rgba(0,0,0,.15) inset, 0 0.5px 0 rgba(255,255,255,.4)} .d1{background:#FF5F57} .d2{background:#FEBC2E} .d3{background:#28C840} .addr{ flex:1; display:flex; align-items:center; gap:7px; background:var(--canvas); border:1px solid var(--line); border-radius:7px; padding:5px 12px; font-family:'Courier New',monospace; font-size:12px; color:var(--muted); max-width:280px; margin:0 auto; box-shadow:0 1px 2px rgba(15,23,42,.06) inset; } .addr i{font-size:13px; color:var(--green)} .cb-right{display:flex; align-items:center} .live-badge{ display:flex; align-items:center; gap:5px; font-size:11.5px; font-weight:500; color:var(--green); background:var(--green-light); border:1px solid var(--green-border); padding:3px 9px; border-radius:100px; box-shadow:0 1px 2px rgba(22,163,74,.08); } .live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2s infinite} @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.4)}70%{box-shadow:0 0 0 6px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}} .console-body{display:grid; grid-template-columns:180px 1fr; min-height:300px} .c-side{ border-right:1px solid var(--line); padding:14px 10px; display:flex; flex-direction:column; gap:2px; background:linear-gradient(180deg, rgba(248,248,250,.6), rgba(248,248,250,.15)); box-shadow:1px 0 0 rgba(255,255,255,.6) inset; } .s-label{ font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--faint); font-weight:600; padding:10px 10px 5px; } .s-item{ display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:7px; font-size:12.5px; color:var(--muted); cursor:pointer; transition:background .15s, color .15s, box-shadow .15s; } .s-item i{font-size:14px} .s-item:hover{background:var(--soft-2); color:var(--ink)} .s-item.active{ background:linear-gradient(180deg,#EAF7FF,#E0F2FE); color:var(--indigo); font-weight:500; box-shadow:0 2px 6px -2px rgba(14,165,233,.35), inset 0 0 0 1px rgba(14,165,233,.15); } .c-main{padding:20px 22px} .c-header{display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:16px; gap:12px} .c-main h4{font-size:14px; font-weight:600; color:var(--ink); margin-bottom:2px} .c-desc{font-size:12px; color:var(--muted)} .badge-ok{ display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600; color:var(--green); background:var(--green-light); border:1px solid var(--green-border); padding:3px 9px; border-radius:100px; white-space:nowrap; flex-shrink:0; box-shadow:0 1px 2px rgba(22,163,74,.08); } .badge-ok .dot{width:5px;height:5px;border-radius:50%;background:var(--green)} .proof-row{ display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line); border-radius:9px; margin-bottom:8px; background:linear-gradient(180deg,#FFFFFF,var(--soft)); box-shadow:0 1px 3px rgba(15,23,42,.05), 0 1px 0 rgba(255,255,255,.8) inset; opacity:0; transform:translateY(8px); } .proof-row.show{opacity:1; transform:none; transition:all .4s var(--ease)} .proof-ico{ width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 1px 2px rgba(15,23,42,.06); } .proof-ico i{font-size:16px} .pi-indigo{background:var(--indigo-light); color:var(--indigo)} .pi-blue{background:#E0F2FE; color:var(--blue)} .pi-green{background:var(--green-light); color:var(--green)} .proof-txt{flex:1} .proof-txt .t{color:var(--ink); font-size:12.5px; font-weight:500} .proof-txt .s{color:var(--muted); font-size:11px; font-family:'Courier New',monospace} .c-proofbar{ margin-top:8px; height:4px; border-radius:100px; background:var(--soft-2); overflow:hidden; box-shadow:0 1px 1px rgba(15,23,42,.05) inset; } .c-proofbar i{ display:block; height:100%; width:0; border-radius:100px; background:linear-gradient(90deg,var(--indigo),var(--indigo-2)); } /* ---- MARQUEE ---- */ .trust{padding:44px 0 12px; text-align:center} .trust p{ font-size:11.5px; text-transform:uppercase; letter-spacing:.13em; color:var(--faint); font-weight:600; margin-bottom:20px; } .marquee{ overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); } .marquee-track{display:flex; gap:44px; width:max-content; animation:scroll 32s linear infinite} .marquee:hover .marquee-track{animation-play-state:paused} @keyframes scroll{to{transform:translateX(-50%)}} .logo-item{ display:flex; align-items:center; gap:8px; color:var(--faint); font-weight:600; font-size:15px; transition:color .2s; white-space:nowrap; } .logo-item:hover{color:var(--ink)} .logo-item i{font-size:20px} /* ---- SECTIONS ---- */ section{position:relative} .sec{padding:96px 0} .sec-alt{background:var(--soft)} .eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.09em; color:var(--indigo); margin-bottom:14px; } .eyebrow::before{content:""; width:20px; height:1.5px; background:var(--indigo); display:inline-block; border-radius:2px} h2.sec-title{ font-size:clamp(28px,4vw,44px); line-height:1.07; letter-spacing:-.03em; font-weight:700; max-width:22ch; } .sec-lead{ font-size:17px; color:var(--muted); max-width:58ch; margin-top:16px; line-height:1.6; } .sec-head{margin-bottom:48px} .sec-head.center{text-align:center} .sec-head.center h2.sec-title, .sec-head.center .sec-lead{margin-left:auto; margin-right:auto} /* reveal animation */ .reveal{opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease), transform .6s var(--ease)} .reveal.in{opacity:1; transform:none} .reveal[data-d="1"]{transition-delay:.07s} .reveal[data-d="2"]{transition-delay:.14s} .reveal[data-d="3"]{transition-delay:.21s} .reveal[data-d="4"]{transition-delay:.28s} /* ---- STEPS ---- */ .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:20px} .step{ position:relative; padding:26px; border:1px solid var(--line); border-radius:var(--radius); background:var(--canvas); transition:transform .3s var(--ease), box-shadow .3s var(--ease); } .step:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)} .step .num{ font-family:'Courier New',monospace; font-size:12px; font-weight:600; color:var(--indigo); background:var(--indigo-light); width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; } .step .s-ic{ font-size:24px; color:var(--ink); display:block; margin-bottom:14px; } .step h3{font-size:18px; font-weight:600; letter-spacing:-.01em; margin-bottom:8px} .step p{color:var(--muted); font-size:14.5px; line-height:1.6} .step .connector{ position:absolute; top:40px; right:-18px; font-size:18px; color:var(--line-2); z-index:2; } /* ---- BENTO ---- */ .bento{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:16px} .card{ border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--canvas); padding:26px; transition:transform .3s var(--ease), box-shadow .3s var(--ease); } .card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)} .card .c-ic{ width:42px; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; background:var(--indigo-light); color:var(--indigo); margin-bottom:16px; } .card .c-ic i{font-size:20px} .card h3{font-size:19px; font-weight:600; letter-spacing:-.015em; margin-bottom:8px} .card p{color:var(--muted); font-size:14px; line-height:1.6} .card-hero{grid-row:span 2} .card-hero .mini-viz{ margin-top:22px; border:1px solid var(--line); border-radius:10px; padding:14px; background:var(--soft); } .viz-row{ display:flex; align-items:center; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--line); font-size:12.5px; } .viz-row:last-child{border-bottom:none} .viz-row .k{color:var(--muted); font-family:'Courier New',monospace; font-size:11.5px} .viz-row .v{display:flex; align-items:center; gap:4px; font-size:11.5px; font-weight:500; font-family:'Courier New',monospace} .viz-row .v i{font-size:12px} .v.locked{color:var(--indigo)} .v.proven{color:var(--green)} /* ---- FEATURES GRID ---- */ .feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; } .feat{ background:var(--canvas); padding:28px 26px; transition:background .2s; } .feat:hover{background:var(--soft)} .feat .f-ic{ width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:var(--indigo-light); color:var(--indigo); margin-bottom:16px; transition:transform .3s var(--ease); } .feat:hover .f-ic{transform:translateY(-2px)} .feat .f-ic i{font-size:19px} .feat .f-tag{ font-size:11px; color:var(--faint); text-transform:uppercase; letter-spacing:.08em; font-weight:600; margin-bottom:8px; } .feat h3{font-size:17px; font-weight:600; letter-spacing:-.01em; margin-bottom:7px} .feat p{color:var(--muted); font-size:13.5px; line-height:1.6} /* ---- INTEGRATIONS ---- */ .integ-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px} .integ{ display:flex; align-items:center; gap:12px; padding:18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--canvas); transition:transform .3s var(--ease), box-shadow .3s var(--ease); } .integ:hover{transform:translateY(-3px); box-shadow:var(--shadow-sm)} .integ .i-ic{ width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:var(--soft-2); color:var(--ink); flex-shrink:0; } .integ .i-ic i{font-size:20px} .integ .i-t{font-weight:600; font-size:14px} .integ .i-s{font-size:12px; color:var(--muted); margin-top:2px} /* ---- USE CASES ---- */ .uc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px} .uc{ border:1px solid var(--line); border-radius:var(--radius); padding:24px; background:var(--canvas); transition:transform .3s var(--ease), box-shadow .3s var(--ease); } .uc:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)} .uc .uc-ic{ width:42px; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; background:var(--indigo-light); color:var(--indigo); margin-bottom:14px; } .uc .uc-ic i{font-size:20px} .uc .uc-cat{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--indigo); font-weight:600; margin-bottom:8px; } .uc h3{font-size:16.5px; font-weight:600; margin-bottom:7px; letter-spacing:-.01em} .uc p{font-size:13.5px; color:var(--muted); line-height:1.55} /* ---- STATS ---- */ .stats{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center} .stat{ padding:28px 20px; border:1px solid var(--line); border-radius:var(--radius); background:var(--canvas); } .stat .n{ font-size:clamp(36px,5vw,52px); font-weight:700; letter-spacing:-.04em; line-height:1; color:var(--indigo); } .stat .l{color:var(--muted); font-size:14px; margin-top:10px} /* ---- TESTIMONIALS ---- */ .quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:18px} .quote{ border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px; background:var(--canvas); display:flex; flex-direction:column; transition:transform .3s var(--ease), box-shadow .3s var(--ease); } .quote:hover{transform:translateY(-3px); box-shadow:var(--shadow-md)} .quote .stars{display:flex; gap:3px; color:#FBBF24; margin-bottom:14px} .quote .stars i{font-size:14px} .quote blockquote{font-size:15px; line-height:1.65; color:var(--ink-2); flex:1} .quote .who{display:flex; align-items:center; gap:11px; margin-top:20px} .quote .av{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:600; font-size:14px; flex-shrink:0; } .quote .who .nm{font-weight:600; font-size:14px} .quote .who .rl{font-size:12px; color:var(--muted)} /* ---- CTA ---- */ .cta-wrap{ border-radius:22px; overflow:hidden; background:var(--indigo); padding:72px 40px; text-align:center; color:#fff; position:relative; } .cta-wrap::before{ content:""; position:absolute; inset:0; z-index:0; background-image: linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:48px 48px; } .cta-wrap .eyebrow{margin-bottom:12px; position:relative; z-index:1} .cta-wrap .eyebrow::before{background:rgba(255,255,255,.5)} .cta-wrap h2{ font-size:clamp(30px,4.5vw,50px); letter-spacing:-.03em; font-weight:700; line-height:1.05; margin-bottom:16px; position:relative; z-index:1; } .cta-wrap p{ color:rgba(255,255,255,.75); font-size:17px; max-width:50ch; margin:0 auto 28px; position:relative; z-index:1; line-height:1.6; } .cta-wrap .hero-cta{position:relative; z-index:1} .publish-bar{ display:inline-flex; align-items:center; gap:9px; margin-top:28px; padding:7px 7px 7px 14px; border-radius:10px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); position:relative; z-index:1; } .publish-bar i{font-size:14px} .publish-bar .u{font-family:'Courier New',monospace; font-size:12.5px; color:rgba(255,255,255,.75)} .publish-bar .pb-btn{background:#fff; color:var(--indigo); font-size:12px; font-weight:600; padding:5px 12px; border-radius:7px} /* ---- FOOTER ---- */ footer{border-top:1px solid var(--line); padding:60px 0 32px; background:var(--soft)} .foot-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr; gap:28px; margin-bottom:44px} .foot-brand p{color:var(--muted); font-size:13.5px; max-width:28ch; margin:14px 0 0; line-height:1.6} .foot-col h4{ font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--faint); margin-bottom:14px; font-weight:600; } .foot-col a{display:block; color:var(--ink-2); font-size:13.5px; padding:5px 0; transition:color .15s} .foot-col a:hover{color:var(--indigo)} .foot-bottom{ display:flex; align-items:center; justify-content:space-between; padding-top:22px; border-top:1px solid var(--line); flex-wrap:wrap; gap:14px; } .foot-bottom p{color:var(--faint); font-size:12.5px} .foot-social{display:flex; gap:8px} .foot-social a{ width:34px; height:34px; border-radius:8px; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--muted); background:var(--canvas); font-size:16px; transition:all .2s; } .foot-social a:hover{color:#fff; background:var(--ink); border-color:var(--ink); transform:translateY(-2px)} /* ---- GLOBAL 3D PROOF NETWORK ---- */ .globe-sec{overflow:hidden} .globe-stage{ position:relative; max-width:1160px; margin:0 auto; display:grid; grid-template-columns:1fr 300px; align-items:center; gap:24px; padding:0 24px 8px; } .globe-canvas-wrap{ position:relative; width:100%; aspect-ratio:1/1; max-width:520px; margin:0 auto; } #globeCanvas{width:100%; height:100%; display:block; cursor:grab; touch-action:none} #globeCanvas:active{cursor:grabbing} .globe-glow{ position:absolute; inset:-12%; z-index:-1; border-radius:50%; background:radial-gradient(circle, rgba(14,165,233,.2), transparent 70%); filter:blur(24px); animation:globePulse 4s ease-in-out infinite; } @keyframes globePulse{0%,100%{opacity:.55; transform:scale(1)}50%{opacity:1; transform:scale(1.07)}} .globe-feed{ border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--canvas); padding:16px; box-shadow:var(--shadow-sm); max-height:400px; display:flex; flex-direction:column; } .gf-label{ display:flex; align-items:center; gap:8px; font-size:11.5px; font-weight:600; color:var(--ink-2); text-transform:uppercase; letter-spacing:.07em; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--line); } .gf-label .live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2s infinite} .gf-list{display:flex; flex-direction:column; gap:8px; overflow:hidden; flex:1; min-height:220px} .gf-item{ display:flex; align-items:flex-start; gap:8px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:var(--soft); font-size:12px; line-height:1.5; color:var(--ink-2); opacity:0; transform:translateY(-6px); animation:gfIn .5s var(--ease) forwards; } @keyframes gfIn{to{opacity:1; transform:none}} .gf-item i{color:var(--green); font-size:14px; flex-shrink:0; margin-top:1px} .gf-item b{color:var(--ink); font-weight:600} .globe-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:12px} .gstat{text-align:center; padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:var(--canvas)} .gstat .gn{font-size:30px; font-weight:700; letter-spacing:-.03em; color:var(--indigo)} .gstat .gl{font-size:12.5px; color:var(--muted); margin-top:4px} @media(max-width:860px){ .globe-stage{grid-template-columns:1fr} .globe-feed{max-height:220px} .gf-list{min-height:120px} } /* ---- GRADIENT TEXT ---- */ .grad-text{ background:linear-gradient(90deg,var(--indigo),#7DD3FC,var(--blue),var(--indigo)); background-size:300% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:gradShift 5s linear infinite; } @keyframes gradShift{to{background-position:300% center}} /* ---- SCROLL PROGRESS BAR ---- */ .scroll-progress{ position:fixed; top:0; left:0; height:3px; width:0%; background:linear-gradient(90deg,var(--indigo),var(--indigo-2),#7DD3FC); z-index:999; transition:width .12s linear; } /* ---- CURSOR SPOTLIGHT ---- */ .spotlight{ position:fixed; width:440px; height:440px; border-radius:50%; pointer-events:none; z-index:1; background:radial-gradient(circle, rgba(14,165,233,.08), transparent 70%); transform:translate(-50%,-50%); left:0; top:0; opacity:0; transition:opacity .3s; } /* ---- RESPONSIVE ---- */ @media(max-width:920px){ .nav-links{display:none} .nav-toggle{display:block} .nav{overflow:visible} .steps,.integ-grid,.uc-grid,.stats,.quotes,.feat-grid{grid-template-columns:repeat(2,1fr)} .bento{grid-template-columns:1fr 1fr} .card-hero{grid-column:span 2; grid-row:auto} .console-body{grid-template-columns:1fr} .c-side{display:none} .foot-grid{grid-template-columns:1fr 1fr} .foot-brand{grid-column:span 2} .step .connector{display:none} } @media(max-width:560px){ .wrap{padding:0 16px} .steps,.integ-grid,.uc-grid,.stats,.quotes,.feat-grid,.bento{grid-template-columns:1fr} .card-hero{grid-column:auto} .sec{padding:68px 0} .hero{padding:56px 0 32px} .foot-grid{grid-template-columns:1fr} .foot-brand{grid-column:auto} .hero-note{gap:10px} .cta-wrap{padding:48px 20px} .nav{padding:0 8px 0 14px} .brand{font-size:16px} .nav-cta .btn{padding:9px 14px; font-size:13.5px} } @media(prefers-reduced-motion:reduce){ *{animation:none!important; transition:none!important} .reveal{opacity:1; transform:none} } /* ---- HERO ORBS (wow factor) ---- */ .orb{position:absolute; z-index:0; border-radius:50%; filter:blur(60px); opacity:.32; pointer-events:none} .orb-1{width:340px; height:340px; background:var(--indigo); top:-100px; left:-70px; animation:orbFloat1 15s ease-in-out infinite} .orb-2{width:260px; height:260px; background:#7DD3FC; top:20px; right:-50px; animation:orbFloat2 19s ease-in-out infinite} .orb-3{width:220px; height:220px; background:var(--blue); bottom:-70px; left:40%; animation:orbFloat3 17s ease-in-out infinite} @keyframes orbFloat1{0%,100%{transform:translate(0,0)}50%{transform:translate(34px,42px)}} @keyframes orbFloat2{0%,100%{transform:translate(0,0)}50%{transform:translate(-32px,30px)}} @keyframes orbFloat3{0%,100%{transform:translate(0,0)}50%{transform:translate(22px,-26px)}} /* ---- 3D TILT (JS-driven, desktop pointer only) ---- */ .card, .feat, .step, .uc, .integ, .quote, .gstat{transition:transform .18s ease-out, box-shadow .3s var(--ease)} /* ---- MOBILE / PERFORMANCE POLISH ---- */ #globeCanvas{touch-action:pan-y} @media(max-width:860px){ .globe-canvas-wrap{max-width:320px} } @media(max-width:560px){ .orb{display:none} }