:root{
--bg:#0b0f16; --bg-2:#0d1220; --text:#e9eef7; --muted:#9fb0c6;
--line:rgba(255,255,255,.08);
--accent:#4da6ff; --accent-2:#7c5cff;
--radius:14px; --shadow:0 8px 30px rgba(0,0,0,.35);
--gap:18px;
} *,*::before,*::after{box-sizing:border-box;}
html,body{height:100%;}
body{
margin:0; font-family:'Raleway',Arial,system-ui,sans-serif; color:var(--text);
background:var(--bg); line-height:1.6; overflow-y:overlay;
scrollbar-width:thin; scrollbar-color:var(--accent) transparent;
}
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{
border-radius:999px; border:2px solid transparent;
background-clip:content-box;
background-image:linear-gradient(var(--accent),var(--accent-2));
}
::-webkit-scrollbar-thumb:hover{background-image:linear-gradient(var(--accent-2),var(--accent));}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3{font-family:'Playfair Display',serif; color:#fff; line-height:1.2; margin:0 0 .6rem;}
h1{font-size:clamp(2.4rem,1.6rem + 2.2vw,3.8rem);} 
h2{font-size:clamp(1.8rem,1.2rem + 1.2vw,2.4rem);}
.muted{color:var(--muted);}
.container{width:min(1120px,90%); margin-inline:auto;}
section{padding:96px 20px; scroll-margin-top:90px; border-top:1px solid var(--line);} #progress{
position:fixed; inset:0 auto auto 0; height:3px; width:0;
background:linear-gradient(90deg,var(--accent),var(--accent-2));
z-index:999991; transform-origin:left center;
} header{
position:fixed; top:0; left:0; right:0; height:72px; z-index:99999;
background:rgba(7,10,18,.92); backdrop-filter:blur(8px);
border-bottom:1px solid var(--line);
}
.nav-wrap{height:100%; display:flex; align-items:center; justify-content:space-between; width:min(1120px,90%); margin-inline:auto;}
.brand{display:flex; align-items:center; gap:.7rem; font-weight:700;}
.brand-dot{width:28px; height:28px; border-radius:8px; background:linear-gradient(135deg,var(--accent),var(--accent-2));}
nav.desktop{display:flex; gap:28px;}
nav.desktop a{color:var(--muted); font-weight:600;}
nav.desktop a:hover, nav.desktop a.active{color:var(--accent);} 
.cta-mini{
display:inline-flex; align-items:center; gap:.5rem; padding:.6rem 1rem; border-radius:10px; font-weight:700;
color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-2)); box-shadow:0 10px 30px rgba(76,162,255,.25);
} .hamburger{display:none; flex-direction:column; gap:6px; background:transparent; border:0; padding:8px; cursor:pointer;}
.hamburger span{
width:26px; height:3px; background:#e9eef7; border-radius:2px;
transition:transform .28s ease, opacity .28s ease;
}
.hamburger.is-open span:nth-child(1){transform:translateY(9px) rotate(45deg);}
.hamburger.is-open span:nth-child(2){opacity:0;}
.hamburger.is-open span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
.mobile-menu{
position:fixed; top:72px; left:0; right:0; bottom:0; z-index:2550;
background:#0f1626; border-top:1px solid var(--line);
transform:translateX(100%); transition:transform .32s ease;
display:flex; flex-direction:column; gap:6px; padding:18px 20px; overflow:auto;
height: 100vh;
}
.mobile-menu.open{transform:translateX(0);} 
.mobile-menu a{padding:14px; border-radius:10px; color:var(--muted); font-weight:600;}
.mobile-menu a:hover, .mobile-menu a.active{background:#0b1426; color:#fff;} .btn,
.btn.primary,
.cta-mini,
#toTop,
.t-btn {
transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
cursor:pointer;
}
.cta-mini:hover {
transform: translateY(-2px) scale(1.03);
box-shadow: 0 14px 36px rgba(76,162,255,.35);
}
.btn{
display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
padding:12px 18px; border-radius:12px; font-weight:700; border:1px solid var(--line);
background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03));
color:#fff;
}
.btn.primary{border:none; background:linear-gradient(135deg,var(--accent),var(--accent-2)); box-shadow:0 12px 32px rgba(76,162,255,.25);}
.btn:hover{transform:translateY(-2px); box-shadow:0 12px 28px rgba(76,162,255,.22);}
#toTop:hover {
transform: translateY(-2px) scale(1.05);
background: linear-gradient(135deg, var(--accent-2), var(--accent));
box-shadow: 0 18px 50px rgba(0,0,0,.55);
}
.t-btn:hover {
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(76,162,255,.22);
} #hero{padding-top:140px; background: linear-gradient(135deg, var(--bg-2), var(--bg));} 
.hero{display:grid; grid-template-columns:1.1fr .9fr; gap:42px; align-items:center;}
.eyebrow{display:inline-flex; align-items:center; gap:.6rem; font-size:.85rem; color:var(--muted);
background:rgba(255,255,255,.04); padding:.4rem .7rem; border:1px solid var(--line); border-radius:999px;}
.grad-text{background:linear-gradient(135deg,#d9e8ff 0%,#a8b8ff 40%,#c0a8ff 100%); -webkit-background-clip:text; background-clip:text; color:transparent;}
.cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:18px;}
.metrics{display:flex; gap:18px; flex-wrap:wrap; margin-top:18px;}
.metric{padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:#0f1626;}
.metric b{font-size:1.1rem;}
.hero-card{
padding:24px; border:1px solid var(--line); border-radius:var(--radius);
background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02)); box-shadow:var(--shadow);
}
.hero-img{border-radius:12px;max-width:100%;height:auto;} .about{display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center;}
.about-pic{padding:12px; height:100%; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(135deg,#0f1626,#0c1322);} 
.about-pic img{
border-radius:var(--radius);
object-fit:cover;
height:100%;
}
.list{display:grid; gap:10px; margin-top:14px;}
.list li{list-style:none; padding:10px 12px; border:1px dashed var(--line); border-radius:10px; color:var(--muted);} 
.list li::before{content:"✓"; color:var(--accent); margin-right:.6rem;} #services {
background: radial-gradient(800px 400px at center top, rgba(77,166,255,.12), transparent 70%), 
var(--bg-2);
}
.services-grid{display:grid; gap:var(--gap); grid-template-columns:repeat(3,1fr);} 
.card{
position:relative; isolation:isolate;
background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
border:1px solid var(--line); border-radius:var(--radius); padding:22px;
box-shadow:var(--shadow); overflow:hidden;
transition:transform .32s ease, box-shadow .32s ease, border-color .32s ease;
}
.card::after{
content:""; position:absolute; inset:-1px -1px auto -1px; height:3px; border-radius:12px 12px 0 0;
background:linear-gradient(90deg,var(--accent),var(--accent-2)); opacity:.65; transition:opacity .32s ease;
}
.card::before{
content:""; position:absolute; inset:-40% -40% auto -40%; height:120%;
background:radial-gradient(600px 200px at 50% -20%, rgba(125,92,255,.18), transparent 60%);
opacity:0; transition:opacity .32s ease; pointer-events:none; z-index:-1;
}
.card:hover{transform:translateY(-8px); box-shadow:0 16px 40px rgba(0,0,0,.45); border-color:rgba(125,92,255,.35);}
.card:hover::before{opacity:1;} 
.card:hover::after{opacity:1;}
.icon{
width:40px; height:40px; border-radius:10px; display:grid; place-items:center; margin-bottom:10px;
background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#0b0f16; font-weight:900; box-shadow:0 6px 20px rgba(76,162,255,.35);
} .t-viewport{
overflow:hidden;
border:1px solid var(--line);
border-radius:var(--radius);
background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));
padding:20px;
}
.t-track{
display:flex;
gap:var(--gap);
padding:0;
transition:transform .45s cubic-bezier(.22,.61,.36,1);
will-change:transform;
backface-visibility:hidden;
transform-style:preserve-3d;
} .t-slide{
flex:0 0 auto;
width:100%;
max-width:100%;
display:flex;
will-change:transform;
backface-visibility:hidden;
transform:translateZ(0);
} .t{
display:flex;
flex-direction:column;
height:100%;
min-height:220px; border:1px solid var(--line);
border-radius:16px;
padding:20px;
background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
box-shadow:0 8px 26px rgba(0,0,0,.35); } .t .star{
font-size:1.25rem;
color:#ffd166;
filter:drop-shadow(0 0 6px rgba(255,209,102,.45));
margin-bottom:.4rem;
} .t .quote{ line-height:1.55; }
.t .who{ margin-top:auto; color:var(--muted); font-weight:600; } .t-controls{margin-top:14px; display:flex; align-items:center; justify-content:space-between;}
.t-btn{
background:#0f1626; border:1px solid var(--line); color:#fff;
border-radius:10px; padding:10px 12px; cursor:pointer;
transition:transform .2s ease, box-shadow .2s ease;
}
.t-btn:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(76,162,255,.22); }
.t-dots{display:flex; gap:8px;}
.t-dot{width:8px; height:8px; border-radius:999px; background:#33425f; border:1px solid var(--line);}
.t-dot[aria-current="true"]{background:linear-gradient(135deg,var(--accent),var(--accent-2));} @media (min-width: 1024px){
.t{ min-height:260px; }
} #work {
background: linear-gradient(180deg, rgba(124,92,255,.08), rgba(77,166,255,.05)),
var(--bg);
}
.work-grid{display:grid; gap:18px; grid-template-columns:repeat(3,1fr);} 
.work{
position:relative; border-radius:14px; overflow:hidden;
border:1px solid var(--line); background:linear-gradient(180deg,#0f1626,#0c1424);
cursor:pointer; isolation:isolate; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
margin: 0;
}
.work:hover{transform:translateY(-6px); box-shadow:0 18px 50px rgba(0,0,0,.5); border-color:rgba(124,92,255,.35);}
.work .media{aspect-ratio:16/10; overflow:hidden; position:relative;}
.work img{width:100%; height:100%; object-fit:cover; transform:scale(1.03); transition:transform .45s ease; opacity:.95;}
.work:hover img{transform:scale(1.08);} 
.work .meta{
position:absolute; inset:auto 0 0 0; display:flex; align-items:center; justify-content:space-between; gap:10px;
padding:12px; color:#fff; background:linear-gradient(180deg,transparent,rgba(0,0,0,.55));
}
.chip{font-size:.75rem; padding:6px 10px; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.06); color:#e7e6ff;} .modal{position:fixed; inset:0; display:flex; align-items:center; justify-content:center; z-index:99999; visibility:hidden;}
.modal.open{visibility:visible;}
.modal-bg{position:absolute; inset:0; background:rgba(7,10,18,.58); backdrop-filter:blur(8px); opacity:0; transition:opacity .25s ease;}
.modal.open .modal-bg{opacity:1;}
.modal-content{
position:relative; z-index:1; max-width:860px; width:92%;
border:1px solid var(--line); border-radius:18px; padding:22px; color:var(--text);
background:
radial-gradient(1200px 600px at -10% -10%, rgba(125,92,255,.08), transparent 60%),
linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)), var(--bg-2);
box-shadow:0 40px 110px rgba(0,0,0,.65), inset 0 0 0 1px rgba(255,255,255,.02);
transform:translateY(8px) scale(.96); opacity:0; transition:transform .28s cubic-bezier(.2,.7,.2,1), opacity .22s ease;
height:85%;
overflow:auto;
}
.modal.open .modal-content{transform:translateY(0) scale(1); opacity:1;}
.modal-close {
position: absolute;
top: 12px;
right: 12px;
width: 38px;
height: 38px;
border-radius: 12px;
background: rgba(255,255,255,.06);
border: 1px solid var(--line);
color: #fff;
font-size: 1.1rem;
display: grid;
place-items: center;
cursor: pointer;
transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.modal-close:hover {
transform: rotate(90deg) scale(1.1);
background: rgba(255,255,255,.12);
box-shadow: 0 0 12px rgba(124,92,255,.4);
}
.modal-hero{border-radius:12px; overflow:hidden; border:1px solid var(--line); margin:12px 0;}
.modal-title{display:flex; align-items:center; gap:10px; margin:0 0 6px;}
.modal-title .pill{font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; padding:6px 10px; border-radius:999px; border:1px solid var(--line); color:var(--muted); background:rgba(255,255,255,.04);} 
.badge{display:inline-block; padding:6px 10px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:.85rem; margin-right:6px;} .contact{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start;}
.form{
background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
border:1px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow);
}
.field{display:flex; flex-direction:column; gap:8px; margin-bottom:14px;}
.field label{font-weight:600;}
.field input,.field textarea,.field select{
background:#0f1626; border:1px solid #1a2740; color:var(--text); padding:12px 14px; border-radius:10px; outline:none;
}
.field.error input,
.field.error textarea {
border-color: #e57373 !important;
box-shadow: 0 0 0 3px rgba(229,115,115,.15);
}
.field .err {
color: #e57373;
font-size: .9rem;
margin-top: 6px;
}
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
#contactStatus { transition: color .2s ease; }
.aside{
border:1px solid var(--line); border-radius:var(--radius);
background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.02)); padding:20px;
}
.kpi{display:flex; gap:10px; flex-wrap:wrap; margin-top:8px;}
.pill{border:1px solid var(--line); border-radius:999px; padding:6px 10px; color:var(--muted);} footer{border-top:1px solid var(--line); background:radial-gradient(1200px 600px at 20% -10%, #122038 0%, transparent 60%),
radial-gradient(1000px 500px at 100% 0%, #171e36 0%, transparent 60%),
var(--bg); color:var(--muted); padding:26px 20px;text-align:center;}
footer .f-wrap{display:flex; align-items:center; justify-content:space-between; gap:12px; width:min(1120px,90%); margin:0 auto; flex-wrap:wrap;justify-content:center;}
footer nav a{margin:0 8px;}
footer nav a:hover{color:var(--accent);} #toTop{
position:fixed; right:18px; bottom:18px; z-index:4100; width:42px; height:42px; border-radius:12px;
border:1px solid var(--line);
background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff;
display:grid; place-items:center; box-shadow:0 16px 40px rgba(0,0,0,.45);
transform:translateY(12px); opacity:0; pointer-events:none;
}
#toTop.visible{opacity:1; transform:translateY(0); pointer-events:auto;} .reveal{opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease;}
.reveal.show{opacity:1; transform:translateY(0);}
.stagger > *{opacity:0; transform:translateY(12px); transition:opacity .55s ease, transform .55s ease;}
.stagger.show > *{opacity:1; transform:translateY(0);} 
.stagger.show > *:nth-child(1){transition-delay:.05s;}
.stagger.show > *:nth-child(2){transition-delay:.1s;}
.stagger.show > *:nth-child(3){transition-delay:.15s;}
.stagger.show > *:nth-child(4){transition-delay:.2s;}
.stagger.show > *:nth-child(5){transition-delay:.25s;}
.stagger.show > *:nth-child(6){transition-delay:.3s;} @media (max-width:1200px){ .services-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:768px){
nav.desktop{display:none;}
.hamburger{display:flex;}
section{padding:64px 16px;}
.hero{grid-template-columns:1fr;}
.cta-row .btn{padding:10px 12px; font-size:.95rem;}
.metrics{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.metric b{font-size:.95rem;}
.metric:last-child{grid-column:1/-1;}
.about{grid-template-columns:1fr;}
.services-grid{grid-template-columns:1fr;}
.contact{grid-template-columns:1fr;}
.work-grid{grid-template-columns:1fr;}
footer{
font-size:14px;
}
}
@media (prefers-reduced-motion:reduce){
.t-track,.t-slide,.reveal,.stagger > *,.modal-content{transition:none !important;}
} @media (max-width: 768px){
.t-viewport{ padding:0; }
.t-track{ gap:0; }
.t-slide{ max-width:100%; }
}