Reso / dashboard /styles.css
sal
Fix mobile nav dropdown clipping and small-screen nav crowding
200e615
Raw
History Blame Contribute Delete
28.3 kB
/* ============================================================
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}
}