
:root {
  --blue:#1a3cdb; --blue-light:#3a5cf5; --blue-deep:#0d1f7a;
  --navy:#080f2e; --off-white:#f4f3f0; --warm-white:#fafaf8;
  --mid-grey:#8a8a95; --dark-grey:#2a2a35; --accent:#4a7cff;
  --pad: clamp(20px, 5vw, 56px);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:var(--warm-white);color:var(--navy);overflow-x:hidden;cursor:none;}

/* ── CURSOR (desktop only) ── */
#cursor{width:12px;height:12px;background:var(--blue);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .3s,height .3s;mix-blend-mode:multiply;}
#cursor-ring{width:40px;height:40px;border:1.5px solid var(--blue);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:left .15s ease,top .15s ease,width .3s,height .3s,opacity .3s;opacity:.5;}
body.hovering #cursor{width:20px;height:20px;}
body.hovering #cursor-ring{width:60px;height:60px;opacity:.8;}
@media(hover:none){#cursor,#cursor-ring{display:none;}body{cursor:auto;}}

/* ── PAGE TRANSITION ── */
#page-transition{position:fixed;inset:0;background:var(--navy);z-index:2000;transform:scaleY(1);transform-origin:bottom;transition:transform .8s cubic-bezier(.77,0,.175,1);pointer-events:none;}
#page-transition.done{transform:scaleY(0);}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:24px var(--pad);transition:all .4s ease;}
nav.scrolled{background:rgba(250,250,248,.95);backdrop-filter:blur(20px);border-bottom:1px solid rgba(26,60,219,.08);padding:16px var(--pad);}
.nav-logo img{height:clamp(28px,4vw,38px);}
.nav-links{display:flex;gap:clamp(20px,3vw,40px);list-style:none;}
.nav-links a{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--dark-grey);text-decoration:none;position:relative;transition:color .3s;}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--blue);transform:scaleX(0);transition:transform .3s ease;}
.nav-links a:hover{color:var(--blue);}
.nav-links a:hover::after{transform:scaleX(1);}
.nav-cta{background:var(--blue);color:white;border:none;padding:10px 22px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;border-radius:100px;cursor:pointer;transition:background .3s,transform .2s;}
.nav-cta:hover{background:var(--blue-light);transform:scale(1.04);}

/* hamburger */
.nav-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;z-index:1100;}
.nav-hamburger span{display:block;width:24px;height:2px;background:var(--navy);border-radius:2px;transition:transform .3s,opacity .3s;}
nav.scrolled .nav-hamburger span{background:var(--navy);}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{display:none;position:fixed;inset:0;background:rgba(8,15,46,.97);backdrop-filter:blur(20px);z-index:1050;flex-direction:column;align-items:center;justify-content:center;gap:36px;}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-family:'Syne',sans-serif;font-size:clamp(28px,8vw,40px);font-weight:800;color:rgba(255,255,255,.7);text-decoration:none;letter-spacing:-.02em;transition:color .2s;}
.mobile-menu a:hover{color:white;}
.mobile-menu .mob-cta{margin-top:8px;background:var(--blue);color:white;border:none;padding:14px 40px;border-radius:100px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;}

/* ── HERO ── */
#hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;background:var(--warm-white);padding:0 var(--pad);}
.hero-noise{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");pointer-events:none;z-index:0;}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(26,60,219,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(26,60,219,.04) 1px,transparent 1px);background-size:80px 80px;pointer-events:none;z-index:0;}
.hero-blob{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0;animation:blobFloat 8s ease-in-out infinite;}
.hero-blob-1{width:min(600px,80vw);height:min(600px,80vw);background:rgba(26,60,219,.07);top:-200px;right:-100px;}
.hero-blob-2{width:min(400px,60vw);height:min(400px,60vw);background:rgba(74,124,255,.06);bottom:-100px;left:-50px;animation-delay:-4s;}
@keyframes blobFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(20px,-30px) scale(1.03)}66%{transform:translate(-15px,20px) scale(.97)}}

.hero-content{position:relative;z-index:2;max-width:900px;padding-top:clamp(80px,10vh,120px);}
.hero-label{display:inline-flex;align-items:center;gap:8px;font-family:'Space Mono',monospace;font-size:clamp(9px,1.5vw,11px);letter-spacing:.15em;text-transform:uppercase;color:var(--blue);margin-bottom:clamp(16px,3vh,32px);}
.hero-label::before{content:'';width:24px;height:1px;background:var(--blue);}
.hero-tagline{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(44px,8vw,100px);line-height:.93;letter-spacing:-.03em;color:var(--navy);}
.hero-tagline .highlight{color:var(--blue);}
.hero-tagline .outline-text{-webkit-text-stroke:2px var(--navy);color:transparent;}
.hero-sub{margin-top:clamp(16px,3vh,32px);font-size:clamp(15px,2vw,17px);line-height:1.65;color:var(--mid-grey);max-width:480px;font-weight:300;}
.hero-actions{margin-top:clamp(24px,4vh,48px);display:flex;align-items:center;flex-wrap:wrap;gap:16px;}
.btn-primary{background:var(--navy);color:white;border:none;padding:clamp(12px,2vh,16px) clamp(24px,3vw,36px);font-family:'DM Sans',sans-serif;font-size:clamp(13px,1.5vw,14px);font-weight:500;border-radius:100px;cursor:pointer;transition:background .3s,transform .2s,box-shadow .3s;letter-spacing:.05em;}
.btn-primary:hover{background:var(--blue);transform:translateY(-2px);box-shadow:0 12px 32px rgba(26,60,219,.25);}
.btn-ghost{display:flex;align-items:center;gap:8px;font-family:'DM Sans',sans-serif;font-size:clamp(13px,1.5vw,14px);font-weight:500;color:var(--dark-grey);cursor:pointer;transition:color .3s,gap .3s;text-decoration:none;}
.btn-ghost:hover{color:var(--blue);gap:14px;}
.btn-ghost svg{transition:transform .3s;}
.btn-ghost:hover svg{transform:translateX(4px);}

.stats-bar{position:relative;border-top:1px solid rgba(26,60,219,.08);display:grid;grid-template-columns:repeat(4,1fr);z-index:2;margin-top:clamp(32px,5vh,60px);}
.stat-item{padding:clamp(16px,3vh,24px) clamp(12px,2vw,40px);border-right:1px solid rgba(26,60,219,.08);}
.stat-item:nth-child(1){}.stat-item:nth-child(2){}.stat-item:nth-child(3){}.stat-item:nth-child(4){border-right:none}
.stat-num{font-family:'Syne',sans-serif;font-size:clamp(22px,3vw,32px);font-weight:700;color:var(--navy);line-height:1;}
.stat-num span{color:var(--blue);}
.stat-label{font-size:clamp(9px,1vw,11px);letter-spacing:.1em;text-transform:uppercase;color:var(--mid-grey);margin-top:4px;}

.hero-orb-wrap{display:flex;justify-content:center;margin-top:clamp(40px,6vh,80px);}
.hero-orb{width:90px;height:90px;border-radius:50%;background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;animation:orbFloat 3s ease-in-out infinite;box-shadow:0 8px 40px rgba(26,60,219,.3);}
.hero-orb::before{content:'';position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(26,60,219,.2);animation:orbRipple 3s ease-in-out infinite;}
.hero-orb::after{content:'';position:absolute;inset:-18px;border-radius:50%;border:1px solid rgba(26,60,219,.1);animation:orbRipple 3s ease-in-out infinite .5s;}
.hero-orb span{font-family:'Space Mono',monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:4px;}
@keyframes orbFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes orbRipple{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.5}}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
  .reveal{transition:none!important;animation:none!important;}
}

/* ── EXPLORER ── */
#explorer{display:none;position:fixed;inset:0;background:var(--navy);z-index:1500;overflow:hidden;}
#explorer.active{display:block;}
#exp-bg-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;}
#exp-cards-layer{position:absolute;inset:0;pointer-events:none;z-index:1;}

/* Explorer nav bar */
.explorer-nav{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:16px clamp(16px,4vw,32px);background:rgba(8,15,46,.7);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.07);}
.explorer-nav-logo{font-family:'Syne',sans-serif;font-size:clamp(14px,2vw,18px);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.85);}
.explorer-close{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:white;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s,transform .2s,border-color .25s;flex-shrink:0;}
.explorer-close:hover{background:rgba(210,50,50,.75);border-color:rgba(210,50,50,.5);transform:scale(1.1);}

/* Explorer cards */
.exp-float-card{position:absolute;width:210px;pointer-events:all;cursor:pointer;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#090f2a;transition:box-shadow .25s,transform .25s;will-change:left,top;}
.exp-float-card:hover{box-shadow:0 0 0 2px rgba(74,124,255,.6),0 20px 50px rgba(0,0,0,.75);transform:scale(1.07);z-index:20;}
.exp-iframe-wrap{width:210px;height:126px;overflow:hidden;position:relative;background:#080f2e;}
.exp-iframe-wrap iframe{width:1280px;height:769px;transform:scale(0.164);transform-origin:0 0;border:none;pointer-events:none;}
.exp-no-url{width:210px;height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,rgba(26,60,219,.18),rgba(13,31,122,.32));}
.exp-no-url p{font-family:'Space Mono',monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.25);}
.exp-float-info{padding:9px 12px 10px;background:rgba(6,12,40,.97);border-top:1px solid rgba(255,255,255,.07);}
.exp-float-info h4{font-family:'Syne',sans-serif;font-size:12px;font-weight:700;color:rgba(255,255,255,.9);margin-bottom:3px;}
.exp-float-info .exp-tag{font-family:'Space Mono',monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}
.exp-hint{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.3);pointer-events:none;z-index:5;white-space:nowrap;text-align:center;}

/* Mobile explorer grid layout */
.exp-mobile-grid{display:none;position:absolute;inset:0;top:72px;overflow-y:auto;padding:20px clamp(12px,4vw,24px) 80px;z-index:2;}
.exp-mobile-grid-inner{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,42vw),1fr));gap:16px;}
.exp-mobile-card{border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#090f2a;cursor:pointer;transition:transform .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent;}
.exp-mobile-card:active{transform:scale(.97);}
.exp-mobile-thumb{height:100px;overflow:hidden;background:linear-gradient(135deg,rgba(26,60,219,.18),rgba(13,31,122,.32));display:flex;align-items:center;justify-content:center;}
.exp-mobile-thumb iframe{width:768px;height:460px;transform:scale(0.208);transform-origin:0 0;border:none;pointer-events:none;display:block;}
.exp-mobile-no-url{height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,rgba(26,60,219,.18),rgba(13,31,122,.32));}
.exp-mobile-no-url p{font-family:'Space Mono',monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.25);}
.exp-mobile-info{padding:10px 12px 12px;background:rgba(6,12,40,.97);border-top:1px solid rgba(255,255,255,.07);}
.exp-mobile-info h4{font-family:'Syne',sans-serif;font-size:12px;font-weight:700;color:rgba(255,255,255,.9);margin-bottom:3px;}
.exp-mobile-info .exp-tag{font-family:'Space Mono',monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}

/* ── SHARED SECTION STYLES ── */
section{padding:clamp(60px,10vh,120px) var(--pad);position:relative;}
.section-label{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--blue);margin-bottom:16px;display:flex;align-items:center;gap:12px;}
.section-label::before{content:'';width:24px;height:1px;background:var(--blue);}
.section-title{font-family:'Syne',sans-serif;font-size:clamp(28px,4.5vw,56px);font-weight:800;line-height:1.05;letter-spacing:-.02em;color:var(--navy);margin-bottom:24px;}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* ── MARQUEE ── */
.marquee-wrap{background:var(--navy);padding:18px 0;overflow:hidden;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);}
.marquee-track{display:flex;gap:60px;animation:marquee 25s linear infinite;white-space:nowrap;width:max-content;}
.marquee-item{font-family:'Syne',sans-serif;font-size:clamp(11px,1.5vw,14px);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.3);display:flex;align-items:center;gap:30px;}
.marquee-item .dot{width:4px;height:4px;border-radius:50%;background:var(--blue);}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── ABOUT ── */
#about{background:var(--warm-white);display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px);align-items:center;}
.about-visual{position:relative;height:clamp(280px,40vw,500px);}
.about-card{position:absolute;border-radius:20px;overflow:hidden;box-shadow:0 30px 80px rgba(8,15,46,.12);}
.about-card-main{width:min(320px,65%);height:80%;background:linear-gradient(135deg,var(--blue-deep),var(--blue));top:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(20px,3vw,32px);}
.about-card-main .big-num{font-family:'Syne',sans-serif;font-size:clamp(48px,7vw,80px);font-weight:800;color:rgba(255,255,255,.15);line-height:1;}
.about-card-main h3{font-family:'Syne',sans-serif;font-size:clamp(16px,2.5vw,22px);color:white;margin-top:8px;}
.about-card-main p{font-size:14px;color:rgba(255,255,255,.6);margin-top:8px;line-height:1.6;}
.about-card-accent{width:min(200px,42%);height:min(200px,42%);background:var(--off-white);bottom:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;}
.about-card-accent .num{font-family:'Syne',sans-serif;font-size:clamp(32px,5vw,48px);font-weight:800;color:var(--blue);line-height:1;}
.about-card-accent p{font-size:12px;color:var(--mid-grey);margin-top:6px;}
.about-float{position:absolute;top:50%;left:50%;transform:translate(-20px,-60px);width:clamp(120px,15vw,160px);height:70px;background:var(--navy);border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 20px 60px rgba(8,15,46,.3);animation:floatSlow 4s ease-in-out infinite;}
.about-float span{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);}
@keyframes floatSlow{0%,100%{transform:translate(-20px,-60px)}50%{transform:translate(-20px,-75px)}}
.about-text .mission{font-size:clamp(17px,2.5vw,22px);line-height:1.6;color:var(--dark-grey);font-weight:300;margin-bottom:32px;border-left:3px solid var(--blue);padding-left:24px;}
.about-text p{font-size:clamp(14px,1.8vw,16px);line-height:1.8;color:var(--mid-grey);margin-bottom:40px;}
.about-timeline{display:flex;flex-direction:column;position:relative;}
.about-timeline::before{content:'';position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,var(--blue),rgba(26,60,219,.1));}
.timeline-item{padding:16px 0 16px 24px;position:relative;}
.timeline-item::before{content:'';position:absolute;left:-4px;top:24px;width:9px;height:9px;border-radius:50%;background:var(--blue);border:2px solid var(--warm-white);box-shadow:0 0 0 3px rgba(26,60,219,.15);}
.timeline-item .year{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:4px;}
.timeline-item h4{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--navy);}
.timeline-item p{font-size:13px;color:var(--mid-grey);margin-top:2px;}

/* ── SERVICES ── */
#services{background:var(--navy);}
#services .section-label{color:var(--accent);}
#services .section-label::before{background:var(--accent);}
#services .section-title{color:white;}
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.06);border-radius:20px;overflow:hidden;margin-top:clamp(40px,6vh,64px);}
.service-card{background:var(--navy);padding:clamp(28px,4vw,48px) clamp(20px,3vw,36px);position:relative;overflow:hidden;transition:background .4s;}
.service-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(26,60,219,.15),transparent);opacity:0;transition:opacity .4s;}
.service-card:hover{background:#0d1538;}
.service-card:hover::before{opacity:1;}
.service-icon{width:48px;height:48px;border-radius:12px;background:rgba(26,60,219,.2);display:flex;align-items:center;justify-content:center;margin-bottom:28px;font-size:22px;transition:background .4s,transform .4s;}
.service-card:hover .service-icon{background:var(--blue);transform:scale(1.1) rotate(5deg);}
.service-card h3{font-family:'Syne',sans-serif;font-size:clamp(16px,2vw,20px);font-weight:700;color:white;margin-bottom:12px;}
.service-card p{font-size:clamp(13px,1.5vw,14px);line-height:1.7;color:rgba(255,255,255,.45);}
.service-card .service-arrow{position:absolute;bottom:28px;right:28px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.3);font-size:14px;transition:border-color .3s,color .3s,transform .3s;}
.service-card:hover .service-arrow{border-color:var(--blue);color:var(--accent);transform:rotate(45deg);}

/* ── PROJECTS ── */
#projects{background:var(--off-white);}
.projects-filter{display:flex;gap:8px;margin-bottom:48px;flex-wrap:wrap;}
.filter-btn{padding:8px 20px;border-radius:100px;border:1px solid rgba(26,60,219,.15);background:transparent;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--mid-grey);cursor:pointer;transition:all .3s;}
.filter-btn.active,.filter-btn:hover{background:var(--navy);border-color:var(--navy);color:white;}
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,24px);transition:all .3s;}
.project-card{border-radius:20px;overflow:hidden;background:white;box-shadow:0 2px 20px rgba(8,15,46,.06);transition:transform .4s ease,box-shadow .4s ease,opacity .4s ease;cursor:pointer;}
.project-card.featured{grid-column:span 2;}
.project-card:hover{transform:translateY(-8px);box-shadow:0 20px 60px rgba(8,15,46,.14);}
.project-card.hidden{display:none;}
.project-thumb{height:clamp(160px,20vw,240px);position:relative;overflow:hidden;}
.project-card.featured .project-thumb{height:clamp(180px,22vw,320px);}
.project-thumb-bg{position:absolute;inset:0;transition:transform .5s ease;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.project-card:hover .project-thumb-bg{transform:scale(1.05);}
.thumb-1{background:linear-gradient(135deg,#1a3cdb,#6b8fff)}.thumb-2{background:linear-gradient(135deg,#0d1f7a,#3a5cf5)}.thumb-3{background:linear-gradient(135deg,#1a3cdb,#080f2e)}.thumb-4{background:linear-gradient(135deg,#3a5cf5,#80a0ff)}
.project-thumb-label{position:absolute;top:16px;left:16px;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6);background:rgba(0,0,0,.3);backdrop-filter:blur(10px);padding:5px 10px;border-radius:6px;}
.project-info{padding:clamp(16px,2.5vw,28px) clamp(16px,2.5vw,32px);}
.project-info h3{font-family:'Syne',sans-serif;font-size:clamp(17px,2vw,22px);font-weight:700;color:var(--navy);margin-bottom:8px;}
.project-info p{font-size:clamp(13px,1.4vw,14px);color:var(--mid-grey);line-height:1.6;}
.project-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.project-tag{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);border:1px solid rgba(26,60,219,.2);padding:4px 10px;border-radius:4px;}

/* No results message */
.no-results{text-align:center;padding:60px 20px;color:var(--mid-grey);font-size:16px;font-weight:300;}
.no-results p{font-family:'DM Sans',sans-serif;}

/* ── PROCESS ── */
#process{background:var(--warm-white);overflow:hidden;}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(40px,7vh,80px);position:relative;}
.process-steps::before{content:'';position:absolute;top:40px;left:40px;right:40px;height:1px;background:linear-gradient(to right,var(--blue),rgba(26,60,219,.1) 80%);z-index:0;}
.process-step{padding:0 clamp(12px,2vw,24px);position:relative;z-index:1;text-align:center;}
.step-num{width:80px;height:80px;border-radius:50%;background:white;border:2px solid rgba(26,60,219,.15);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-family:'Syne',sans-serif;font-size:24px;font-weight:800;color:var(--blue);position:relative;z-index:2;transition:background .4s,border-color .4s,transform .4s;box-shadow:0 4px 20px rgba(26,60,219,.08);}
.process-step:hover .step-num{background:var(--navy);border-color:var(--navy);color:white;transform:scale(1.1);}
.process-step h4{font-family:'Syne',sans-serif;font-size:clamp(15px,1.8vw,18px);font-weight:700;color:var(--navy);margin-bottom:8px;}
.process-step p{font-size:clamp(12px,1.4vw,13px);color:var(--mid-grey);line-height:1.7;max-width:180px;margin:0 auto;}

/* ── TESTIMONIALS ── */
#testimonials{background:var(--navy);overflow:hidden;}
#testimonials .section-title{color:white;}
#testimonials .section-label{color:var(--accent);}
#testimonials .section-label::before{background:var(--accent);}
.testimonials-track-wrap{overflow:hidden;margin-top:clamp(32px,5vh,64px);position:relative;}
.testimonials-track-wrap::before,.testimonials-track-wrap::after{content:'';position:absolute;top:0;bottom:0;width:clamp(40px,8vw,120px);z-index:2;pointer-events:none;}
.testimonials-track-wrap::before{left:0;background:linear-gradient(to right,var(--navy),transparent);}
.testimonials-track-wrap::after{right:0;background:linear-gradient(to left,var(--navy),transparent);}
.testimonials-track{display:flex;gap:24px;width:max-content;animation:testimonialScroll 30s linear infinite;}
.testimonials-track:hover{animation-play-state:paused;}
@keyframes testimonialScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.testimonial-card{width:clamp(280px,40vw,380px);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:20px;padding:clamp(20px,3vw,36px);flex-shrink:0;transition:background .3s,border-color .3s;}
.testimonial-card:hover{background:rgba(255,255,255,.07);border-color:rgba(74,124,255,.3);}
.testimonial-card .stars{display:flex;gap:4px;color:var(--accent);font-size:14px;margin-bottom:20px;}
.testimonial-card p{font-size:clamp(13px,1.5vw,15px);line-height:1.75;color:rgba(255,255,255,.65);font-style:italic;margin-bottom:24px;}
.testimonial-author{display:flex;align-items:center;gap:12px;}
.author-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--accent));display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:700;color:white;font-size:16px;}
.author-info h5{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:white;}
.author-info p{font-size:12px;color:rgba(255,255,255,.4);margin:0;font-style:normal;line-height:1.4;}

/* ── TECH ── */
#tech{background:var(--off-white);}
.tech-grid{display:flex;flex-wrap:wrap;gap:clamp(8px,1.2vw,12px);margin-top:clamp(32px,5vh,48px);justify-content:center;}
.tech-item{display:flex;align-items:center;gap:10px;padding:clamp(10px,1.5vh,14px) clamp(16px,2vw,24px);background:white;border-radius:100px;border:1px solid rgba(26,60,219,.08);font-family:'DM Sans',sans-serif;font-size:clamp(12px,1.5vw,14px);font-weight:500;color:var(--dark-grey);transition:all .3s;cursor:pointer;}
.tech-item:hover{background:var(--navy);color:white;border-color:var(--navy);transform:translateY(-3px);box-shadow:0 10px 30px rgba(8,15,46,.15);}
.tech-item .tech-icon{font-size:18px;}

/* ── TEAM INTRO ── */
#team-intro-phase{height:100svh;display:flex;align-items:center;justify-content:center;position:relative;background:var(--navy);overflow:hidden;padding:var(--pad);}
.team-intro-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(26,60,219,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(26,60,219,.06) 1px,transparent 1px);background-size:80px 80px;}
.team-intro-content{position:relative;z-index:2;text-align:center;}
.team-intro-label{font-family:'Space Mono',monospace;font-size:clamp(9px,1.5vw,11px);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;display:flex;align-items:center;justify-content:center;gap:12px;}
.team-intro-label::before,.team-intro-label::after{content:'';width:32px;height:1px;background:var(--accent);}
.team-intro-title{font-family:'Syne',sans-serif;font-size:clamp(40px,8vw,96px);font-weight:800;color:white;line-height:.95;letter-spacing:-.03em;margin-bottom:24px;}
.team-intro-title .outline{-webkit-text-stroke:2px rgba(255,255,255,.3);color:transparent;}
.team-scroll-hint{margin-top:48px;display:flex;flex-direction:column;align-items:center;gap:12px;animation:hintPulse 2s ease-in-out infinite;}
.team-scroll-hint span{font-family:'Space Mono',monospace;font-size:clamp(8px,1.2vw,10px);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.3);}
.team-scroll-arrow{width:1px;height:48px;background:linear-gradient(to bottom,rgba(74,124,255,.6),transparent);animation:scrollLine 1.8s ease-in-out infinite;}
@keyframes hintPulse{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ── TEAM DECK ── */
#team-deck-phase{height:300vh;position:relative;background:var(--navy);}
#team-deck-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--navy);}
.team-deck-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(26,60,219,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(26,60,219,.05) 1px,transparent 1px);background-size:80px 80px;}
.team-deck-label{position:absolute;top:40px;left:50%;transform:translateX(-50%);font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.25);z-index:10;transition:opacity .5s;white-space:nowrap;}
#card-stage{position:relative;width:900px;height:520px;perspective:1400px;}
.team-card{position:absolute;width:148px;height:210px;transform-style:preserve-3d;cursor:pointer;}
.card-face,.card-back{position:absolute;inset:0;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;}
.card-back{background:#1e2d5a;border:1px solid rgba(120,160,255,.35);}
.card-back-pattern{position:absolute;inset:0;border-radius:16px;background-image:repeating-linear-gradient(45deg,rgba(74,124,255,.1) 0px,rgba(74,124,255,.1) 1px,transparent 1px,transparent 8px),repeating-linear-gradient(-45deg,rgba(74,124,255,.1) 0px,rgba(74,124,255,.1) 1px,transparent 1px,transparent 8px);}
.card-back-border{position:absolute;inset:7px;border-radius:11px;border:1px solid rgba(120,160,255,.2);}
.card-back-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.card-back-diamond{width:72px;height:72px;border:1.5px solid rgba(120,160,255,.45);transform:rotate(45deg);display:flex;align-items:center;justify-content:center;position:relative;}
.card-back-diamond::before{content:'';position:absolute;width:46px;height:46px;border:1px solid rgba(120,160,255,.25);}
.card-back-dot{width:10px;height:10px;border-radius:50%;background:rgba(120,160,255,.55);}
.card-face{transform:rotateY(180deg);background:linear-gradient(160deg,#2a3a6e,#1a2550);border:1px solid rgba(120,160,255,.3);display:flex;flex-direction:column;}
.card-face-top{height:90px;flex-shrink:0;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(135deg,rgba(74,124,255,.2),rgba(26,60,219,.1));}
.card-avatar{width:64px;height:64px;border-radius:50%;border:2px solid rgba(150,190,255,.5);display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:20px;color:white;position:relative;z-index:1;margin-bottom:-20px;}
.card-face-body{flex:1;padding:28px 14px 14px;display:flex;flex-direction:column;align-items:center;gap:5px;}
.card-name{font-family:'Syne',sans-serif;font-weight:700;font-size:12.5px;color:#e8eeff;text-align:center;line-height:1.25;}
.card-role{font-family:'Space Mono',monospace;font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;color:#7aadff;text-align:center;line-height:1.4;}
.card-divider{width:24px;height:1px;background:rgba(120,160,255,.35);margin:3px 0;}
.card-skill-row{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;margin-top:2px;}
.card-skill{font-size:7.5px;font-family:'Space Mono',monospace;letter-spacing:.04em;color:#aac4ff;background:rgba(74,124,255,.18);border:1px solid rgba(120,160,255,.25);padding:2px 6px;border-radius:3px;}
.card-click-hint{font-size:7.5px;font-family:'Space Mono',monospace;color:rgba(200,215,255,.35);letter-spacing:.07em;text-transform:uppercase;margin-top:auto;padding-top:6px;}

/* ── TEAM MODAL ── */
#team-modal{position:fixed;inset:0;background:rgba(5,8,25,.88);z-index:2000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s ease;backdrop-filter:blur(12px);padding:20px;}
#team-modal.open{opacity:1;pointer-events:all;}
.modal-box{background:#16213a;border:1px solid rgba(100,150,255,.2);border-radius:24px;width:100%;max-width:520px;padding:clamp(24px,4vw,48px);position:relative;transform:translateY(24px) scale(.97);transition:transform .4s cubic-bezier(.34,1.56,.64,1);max-height:90vh;overflow-y:auto;}
#team-modal.open .modal-box{transform:translateY(0) scale(1);}
.modal-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:transparent;color:rgba(255,255,255,.5);font-size:16px;cursor:pointer;transition:background .2s,color .2s;display:flex;align-items:center;justify-content:center;}
.modal-close:hover{background:rgba(255,255,255,.1);color:white;}
.modal-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap;}
.modal-avatar{width:clamp(56px,8vw,72px);height:clamp(56px,8vw,72px);border-radius:50%;border:2px solid rgba(120,160,255,.4);display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(18px,3vw,24px);color:white;flex-shrink:0;}
.modal-name{font-family:'Syne',sans-serif;font-size:clamp(20px,3vw,26px);font-weight:800;color:white;line-height:1.1;}
.modal-role{font-family:'Space Mono',monospace;font-size:clamp(9px,1.2vw,11px);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-top:4px;}
.modal-divider{width:100%;height:1px;background:rgba(100,150,255,.12);margin:0 0 20px;}
.modal-bio{font-size:clamp(13px,1.5vw,15px);line-height:1.75;color:rgba(255,255,255,.6);font-weight:300;margin-bottom:24px;}
.modal-skills-label{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:12px;}
.modal-skills{display:flex;gap:8px;flex-wrap:wrap;}
.modal-skill{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.06em;color:var(--accent);background:rgba(74,124,255,.1);border:1px solid rgba(74,124,255,.2);padding:6px 14px;border-radius:6px;}
.modal-meta{display:flex;gap:clamp(16px,3vw,32px);flex-wrap:wrap;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.06);}
.modal-meta-item .m-label{font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.25);margin-bottom:4px;}
.modal-meta-item .m-val{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:white;}

/* ── CONTACT ── */
#contact{background:var(--navy);text-align:center;}
#contact .section-title{color:white;font-size:clamp(36px,6vw,80px);}
#contact .section-label{color:var(--accent);justify-content:center;}
#contact .section-label::before{background:var(--accent);}
.contact-sub{font-size:clamp(15px,2vw,18px);color:rgba(255,255,255,.45);max-width:480px;margin:0 auto 48px;line-height:1.7;font-weight:300;}
.contact-form{max-width:560px;margin:0 auto;text-align:left;display:flex;flex-direction:column;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{display:flex;flex-direction:column;gap:8px;}
.form-group label{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.4);}
.form-group input,.form-group textarea,.form-group select{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px 20px;color:white;font-family:'DM Sans',sans-serif;font-size:15px;transition:border-color .3s,background .3s;resize:none;outline:none;cursor:text;}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--blue);background:rgba(26,60,219,.08);}
.form-group textarea{min-height:120px;}
.form-group select{cursor:pointer;}
.form-group select option{background:var(--navy);}
.form-submit{background:var(--blue);color:white;border:none;padding:18px 48px;font-family:'Syne',sans-serif;font-size:16px;font-weight:700;border-radius:100px;cursor:pointer;transition:background .3s,transform .2s,box-shadow .3s;align-self:flex-start;letter-spacing:.03em;}
.form-submit:hover{background:var(--blue-light);transform:translateY(-2px);box-shadow:0 12px 40px rgba(26,60,219,.4);}
.contact-info-row{display:flex;justify-content:center;gap:clamp(24px,5vw,56px);flex-wrap:wrap;margin-top:clamp(48px,7vh,80px);padding-top:clamp(32px,5vh,48px);border-top:1px solid rgba(255,255,255,.07);}
.contact-info-item{text-align:center;}
.contact-info-item .ci-label{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:8px;}
.contact-info-item a{font-size:15px;color:rgba(255,255,255,.7);text-decoration:none;transition:color .3s;}
.contact-info-item a:hover{color:var(--accent);}

/* ── FOOTER ── */
footer{background:var(--navy);border-top:1px solid rgba(255,255,255,.05);padding:clamp(24px,4vh,32px) var(--pad);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;}
footer .footer-logo img{height:28px;filter:brightness(0) invert(1);opacity:.6;}
footer p{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.05em;color:rgba(255,255,255,.25);}
.footer-socials{display:flex;gap:20px;flex-wrap:wrap;}
.footer-socials a{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.3);text-decoration:none;transition:color .3s;}
.footer-socials a:hover{color:var(--accent);}

/* ════════════════════════════════════
   RESPONSIVE BREAKPOINTS
════════════════════════════════════ */

@media(max-width:1280px){
  #card-stage{width:800px;}
}

@media(max-width:1024px){
  .nav-links{display:none;}
  .nav-cta{display:none;}
  .nav-hamburger{display:flex;}
  .hero-orb-wrap{display:none;}
  .about-float{display:none;}
  #about{grid-template-columns:1fr;gap:40px;}
  .about-visual{height:320px;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .projects-grid{grid-template-columns:1fr 1fr;}
  .project-card.featured{grid-column:span 2;}
  .process-steps{grid-template-columns:1fr 1fr;gap:40px 0;}
  .process-steps::before{display:none;}
  .process-step{padding-bottom:0;}
  #card-stage{width:700px;height:460px;}
  footer{justify-content:center;text-align:center;}
}

@media(max-width:768px){
  /* Explorer: hide float canvas, show mobile grid */
  #exp-bg-canvas{display:none;}
  #exp-cards-layer{display:none;}
  .exp-hint{display:none;}
  .exp-mobile-grid{display:block;}

  .stats-bar{grid-template-columns:1fr 1fr;}
  .stat-item:nth-child(2){border-right:none;}
  .stat-item:nth-child(3){border-bottom:none;}
  .stat-item:nth-child(4){border-right:none;border-bottom:none;}
  .services-grid{grid-template-columns:1fr;}
  .projects-grid{grid-template-columns:1fr;}
  .project-card.featured{grid-column:span 1;}
  .form-row{grid-template-columns:1fr;}
  #team-intro-phase .team-scroll-hint{display:none;}
  #team-deck-phase{height:auto !important;}
  #team-deck-sticky{position:static !important;height:auto !important;padding:48px var(--pad);align-items:flex-start;overflow:visible;}
  .team-deck-label{position:static !important;transform:none !important;opacity:1 !important;margin-bottom:32px;font-size:11px;text-align:center;width:100%;display:block;}
  #card-stage{position:static !important;width:100% !important;height:auto !important;perspective:none !important;display:grid !important;grid-template-columns:repeat(3,1fr);gap:16px;justify-content:center !important;}
  .team-card{position:relative !important;width:100% !important;height:220px !important;transform:none !important;transition:transform .3s ease,box-shadow .3s ease !important;transform-style:flat !important;cursor:pointer !important;}
  .team-card:hover{transform:translateY(-4px) !important;box-shadow:0 16px 40px rgba(0,0,0,.3) !important;}
  .card-back{display:none !important;}
  .card-face{transform:none !important;backface-visibility:visible !important;-webkit-backface-visibility:visible !important;position:absolute;inset:0;}
}

@media(max-width:480px){
  .hero-tagline{font-size:clamp(38px,11vw,54px);}
  .hero-actions{flex-direction:column;align-items:flex-start;}
  .btn-primary,.btn-ghost{width:100%;justify-content:center;}
  .stats-bar{grid-template-columns:1fr 1fr;}
  #about{gap:32px;}
  .about-visual{height:260px;}
  .about-card-main{width:60%;height:78%;}
  .about-card-accent{width:44%;height:44%;}
  .service-card .service-arrow{display:none;}
  .process-steps{grid-template-columns:1fr;}
  .projects-filter{gap:6px;}
  .filter-btn{padding:7px 14px;font-size:12px;}
  #card-stage{grid-template-columns:1fr 1fr;}
  .team-card{height:200px !important;}
  .form-submit{width:100%;text-align:center;}
  .contact-info-row{flex-direction:column;align-items:center;gap:20px;}
  footer{flex-direction:column;align-items:center;text-align:center;}
  .footer-socials{justify-content:center;}
  .exp-mobile-grid-inner{grid-template-columns:repeat(2,1fr);}
}

@media(max-width:360px){
  #card-stage{grid-template-columns:1fr;}
  .team-card{height:180px !important;}
  .modal-box{padding:20px 16px;}
  .exp-mobile-grid-inner{grid-template-columns:1fr 1fr;}
}