/* ============================
   Artemiev — Software Dev
   Dark indigo + violet magenta
   ============================ */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Fira+Code:wght@400;500&display=swap');

:root {
  --bg: #0d0d1a; --bg2: #11112a; --card: #16162e;
  --acc: #7c3aed; --acc2: #d946ef;
  --grad: linear-gradient(135deg,#7c3aed,#d946ef);
  --glow: rgba(124,58,237,0.3);
  --text: #f0eeff; --muted: #7c7ca0; --sub: #a89fd0;
  --border: rgba(124,58,237,0.14);
  --r: 14px; --t: .3s cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
a{color:var(--acc2);text-decoration:none;transition:color var(--t);}
a:hover{color:#fff;}
.container{max-width:1140px;margin:0 auto;padding:0 28px;}

/* Nav */
.nav{position:fixed;top:0;left:0;width:100%;z-index:99;padding:18px 0;transition:background var(--t),padding var(--t);border-bottom:1px solid transparent;}
.nav.scrolled{background:rgba(13,13,26,.93);backdrop-filter:blur(16px);border-color:var(--border);padding:12px 0;}
.nav .container{display:flex;align-items:center;justify-content:space-between;}
.brand{font-weight:800;font-size:1.3rem;color:var(--text);letter-spacing:-0.5px;}
.brand span{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.nav-links{list-style:none;display:flex;gap:32px;}
.nav-links a{font-size:.87rem;font-weight:500;color:var(--muted);letter-spacing:.3px;transition:color var(--t);}
.nav-links a:hover{color:var(--text);}
.burger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:4px;}
.burger span{display:block;width:22px;height:2px;background:var(--muted);border-radius:2px;}

/* Hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--bg);}
#codeRain{position:absolute;inset:0;width:100%;height:100%;opacity:.6;}
.blob{position:absolute;border-radius:50%;filter:blur(110px);pointer-events:none;}
.b1{width:700px;height:700px;background:radial-gradient(circle,rgba(124,58,237,.18) 0%,transparent 70%);top:-20%;left:-15%;}
.b2{width:500px;height:500px;background:radial-gradient(circle,rgba(217,70,239,.12) 0%,transparent 70%);bottom:-10%;right:-5%;animation:pulse 9s ease-in-out infinite alternate;}
@keyframes pulse{from{transform:scale(1);}to{transform:scale(1.1);}}
.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-top:80px;}
.hero-text .tag{display:inline-block;padding:6px 14px;background:rgba(124,58,237,.15);border:1px solid rgba(124,58,237,.3);border-radius:50px;font-size:.75rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#a78bfa;margin-bottom:24px;}
.hero-text h1{font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800;line-height:1.06;letter-spacing:-1.5px;margin-bottom:20px;}
.hero-text h1 em{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-style:normal;}
.hero-text p{font-size:1.08rem;color:var(--sub);max-width:500px;margin-bottom:36px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.cta-main{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;background:var(--grad);color:#fff;font-weight:700;font-size:.9rem;border-radius:8px;border:none;cursor:pointer;box-shadow:0 0 28px var(--glow);transition:transform var(--t),box-shadow var(--t);}
.cta-main:hover{transform:translateY(-3px);box-shadow:0 0 48px var(--glow);color:#fff;}
.cta-main svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.cta-ghost{display:inline-flex;align-items:center;padding:13px 24px;border:1px solid var(--border);color:var(--sub);border-radius:8px;font-weight:600;font-size:.9rem;transition:border-color var(--t),color var(--t);}
.cta-ghost:hover{border-color:var(--acc);color:var(--text);}

/* Code window */
.code-window{background:#0a0a1e;border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.code-bar{display:flex;align-items:center;gap:7px;padding:12px 18px;background:#0e0e24;border-bottom:1px solid var(--border);}
.dot{width:11px;height:11px;border-radius:50%;}
.dot.r{background:#ff5f57;}.dot.y{background:#febc2e;}.dot.g{background:#28c840;}
.filename{font-family:'Fira Code',monospace;font-size:.75rem;color:var(--muted);margin-left:6px;}
.code-body{padding:22px 24px;font-family:'Fira Code',monospace;font-size:.82rem;line-height:1.9;overflow-x:auto;}
.code-body .kw{color:#a78bfa;}.code-body .fn{color:#38bdf8;}.code-body .arg{color:#fb923c;}.code-body .str{color:#4ade80;}

/* Services */
.services{padding:120px 0;background:var(--bg2);position:relative;}
.services::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:80px;background:linear-gradient(to bottom,transparent,var(--acc),transparent);}
.section-head{margin-bottom:56px;}
.label{font-family:'Fira Code',monospace;font-size:.72rem;color:var(--acc2);letter-spacing:2px;text-transform:uppercase;display:block;margin-bottom:12px;}
.section-head h2{font-size:clamp(2rem,4vw,2.8rem);font-weight:800;letter-spacing:-1px;line-height:1.15;}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.svc-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:34px;position:relative;overflow:hidden;transition:transform var(--t),border-color var(--t),box-shadow var(--t);opacity:0;transform:translateY(28px);}
.svc-card.visible{opacity:1;transform:translateY(0);transition:opacity .7s ease var(--d,0s),transform .7s ease var(--d,0s),border-color .35s,box-shadow .35s;}
.svc-card:hover{transform:translateY(-5px);border-color:rgba(124,58,237,.35);box-shadow:0 20px 50px rgba(0,0,0,.3),0 0 28px rgba(124,58,237,.1);}
.svc-num{font-family:'Fira Code',monospace;font-size:.75rem;color:var(--acc);font-weight:600;letter-spacing:2px;margin-bottom:16px;}
.svc-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(124,58,237,.12);border-radius:10px;color:var(--acc);margin-bottom:18px;}
.svc-icon svg{width:24px;height:24px;}
.svc-card h3{font-size:1.1rem;font-weight:700;margin-bottom:10px;}
.svc-card p{font-size:.9rem;color:var(--sub);line-height:1.72;}
.svc-card::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .5s ease;}
.svc-card:hover::after{transform:scaleX(1);}

/* About */
.about{padding:100px 0;background:var(--bg);}
.about-inner{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center;}
.about-stats{display:flex;flex-direction:column;gap:0;background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;}
.stat{padding:28px 36px;border-bottom:1px solid var(--border);}
.stat:last-child{border-bottom:none;}
.stat-n{font-size:2.2rem;font-weight:800;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block;}
.stat-l{font-size:.82rem;color:var(--muted);font-weight:500;letter-spacing:.5px;}
.about-text h2{font-size:clamp(1.8rem,3.5vw,2.5rem);font-weight:800;letter-spacing:-1px;margin-bottom:18px;line-height:1.15;}
.about-text p{color:var(--sub);font-size:.97rem;margin-bottom:14px;line-height:1.8;}

/* Contact */
.contact{padding:120px 0;background:var(--bg2);}
.contact-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:72px;align-items:start;}
.contact-info h2{font-size:clamp(1.9rem,3.5vw,2.5rem);font-weight:800;letter-spacing:-1px;margin-bottom:18px;line-height:1.2;}
.contact-info p{color:var(--sub);margin-bottom:32px;font-size:.97rem;}
.info-list{list-style:none;display:flex;flex-direction:column;gap:14px;}
.info-list li{display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--text);}
.info-list li a{color:var(--text);}
.info-list li a:hover{color:var(--acc2);}
.info-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:rgba(124,58,237,.12);border-radius:9px;color:var(--acc);flex-shrink:0;}
.info-icon svg{width:18px;height:18px;}
.contact-form{background:var(--card);padding:38px;border-radius:var(--r);border:1px solid var(--border);}
.fg{margin-bottom:17px;}
.fg label{display:block;font-size:.73rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:7px;}
.fg input,.fg textarea,.fg select{width:100%;padding:12px 14px;font-family:'DM Sans',sans-serif;font-size:.92rem;color:var(--text);background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:9px;outline:none;transition:border-color var(--t),box-shadow var(--t);}
.fg input::placeholder,.fg textarea::placeholder{color:var(--muted);}
.fg input:focus,.fg textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(124,58,237,.15);}
.fg textarea{resize:vertical;min-height:120px;}

/* Footer */
.footer{padding:40px 0;border-top:1px solid var(--border);background:var(--bg);}
.footer .container{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
.footer .brand{font-size:1.2rem;font-weight:800;}
.footer p{font-size:.83rem;color:var(--muted);}
.domain-hint{font-size:.82rem;color:var(--sub);}
.domain-hint strong{color:var(--acc2);}

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

/* Responsive */
@media(max-width:900px){
  .hero-inner,.contact-wrap,.about-inner{grid-template-columns:1fr;}
  .svc-grid{grid-template-columns:1fr;}
  .hero-code{display:none;}
  .nav-links{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:rgba(13,13,26,.97);padding:20px 28px;gap:4px;border-bottom:1px solid var(--border);}
  .nav-links.open{display:flex;}
  .burger{display:flex;}
}
@media(max-width:600px){
  .contact-form{padding:24px 18px;}
}
