/* ── RESET ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
:root{
  --rust:#c94b2c;--gold:#d4a843;
  --steel:#8fa3b1;--steel-dark:#3d5a6b;
  --bg:#0a0c0e;--bg2:#0e1214;--bg3:#121820;
  --text:#c8d8e0;--text-dim:#5a7080;
  --w:1240px;
}
body{background:var(--bg);color:var(--text);font-family:'Space Mono',monospace;overflow-x:hidden}
@media(pointer:fine){body{cursor:none}}

/* ── CURSOR ── */
.cur,.cur-t{display:none;position:fixed;pointer-events:none;transform:translate(-50%,-50%);border-radius:50%;z-index:9999}
@media(pointer:fine){
  .cur{display:block;width:10px;height:10px;background:var(--rust)}
  .cur-t{display:block;width:34px;height:34px;border:1px solid rgba(141,180,210,.3);z-index:9998;transition:left .1s,top .1s}
}

/* ── PROGRESS ── */
.prog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--rust);z-index:300;transition:width .1s}

/* ── CONTAINER ── */
.wrap{max-width:var(--w);margin:0 auto;padding:0 clamp(20px,4vw,56px)}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:200;
  padding:18px 0;
  background:linear-gradient(to bottom,rgba(10,12,14,.97) 60%,transparent);
  backdrop-filter:blur(6px)}
.nav-inner{max-width:var(--w);margin:0 auto;padding:0 clamp(20px,4vw,56px);
  display:flex;justify-content:space-between;align-items:center}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:clamp(20px,3.5vw,26px);
  letter-spacing:4px;color:#fff;text-decoration:none}
.nav-logo span{color:var(--rust)}
.nav-links{display:flex;gap:32px}
.nav-links a{color:var(--text-dim);text-decoration:none;font-size:11px;
  letter-spacing:2px;text-transform:uppercase;transition:color .3s}
.nav-links a:hover{color:var(--gold)}
.burger{display:none;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;padding:4px}
.burger span{display:block;width:24px;height:2px;background:var(--text);
  border-radius:2px;transition:transform .3s,opacity .3s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mob-menu{display:none;position:fixed;inset:0;z-index:199;
  background:rgba(10,12,14,.97);flex-direction:column;
  align-items:center;justify-content:center;gap:36px}
.mob-menu.open{display:flex}
.mob-menu a{font-family:'Bebas Neue',sans-serif;font-size:40px;
  letter-spacing:4px;color:var(--text);text-decoration:none;transition:color .2s}
.mob-menu a:hover{color:var(--rust)}
@media(max-width:768px){.nav-links{display:none}.burger{display:flex}}

/* ── HERO ── */
#hero{min-height:100svh;display:flex;align-items:center;
  padding-top:80px;overflow:hidden;position:relative}
.hero-inner{max-width:var(--w);margin:0 auto;width:100%;
  padding:0 clamp(20px,4vw,56px);
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}

/* Bubble canvas */
.bubble-wrap{position:relative;width:100%;aspect-ratio:1/1;max-height:70vh;
  border:1px solid #1a2530;background:var(--bg2);overflow:hidden}
#bubble-canvas{display:block;width:100%;height:100%;cursor:crosshair}
.bubble-hint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);
  font-size:9px;letter-spacing:2px;text-transform:uppercase;
  color:var(--text-dim);pointer-events:none;white-space:nowrap;
  animation:fadeUp 1s 1.2s both}
.bubble-score{position:absolute;top:14px;right:16px;
  font-family:'Bebas Neue',sans-serif;font-size:28px;
  color:var(--rust);letter-spacing:2px;pointer-events:none}

/* Hero text */
.hero-text{padding:40px 0}
.hero-tag{display:inline-block;font-size:10px;letter-spacing:3px;text-transform:uppercase;
  color:var(--rust);border:1px solid var(--rust);padding:6px 14px;margin-bottom:28px;
  animation:fadeUp .7s ease both}
.hero-title{font-family:'Bebas Neue',sans-serif;
  font-size:clamp(52px,7.5vw,110px);line-height:.92;color:#fff;
  animation:fadeUp .7s .12s ease both}
.hero-title .accent{color:var(--rust)}
.hero-sub{margin-top:22px;font-size:clamp(11px,1.3vw,13px);line-height:1.95;
  color:var(--text-dim);animation:fadeUp .7s .24s ease both}
.hero-cta{margin-top:40px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;
  animation:fadeUp .7s .36s ease both}
.btn-pri{background:var(--rust);color:#fff;border:none;
  padding:14px 32px;font-family:'Space Mono',monospace;
  font-size:11px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
  transition:background .3s,transform .2s}
.btn-pri:hover{background:#e05830;transform:translateY(-2px)}
.btn-sec{color:var(--steel);font-size:11px;letter-spacing:2px;text-transform:uppercase;
  text-decoration:none;border-bottom:1px solid var(--steel-dark);padding-bottom:2px;
  transition:color .3s,border-color .3s}
.btn-sec:hover{color:var(--gold);border-color:var(--gold)}

@media(max-width:860px){
  .hero-inner{grid-template-columns:1fr}
  .bubble-wrap{aspect-ratio:4/3;max-height:50vh}
}
@media(max-width:520px){
  .bubble-wrap{aspect-ratio:3/2;max-height:42vh}
  .hero-text{padding:0}
}

/* ── STATS ── */
#stats{background:var(--bg2);border-top:1px solid #1a2530;border-bottom:1px solid #1a2530}
.stats-inner{max-width:var(--w);margin:0 auto;padding:44px clamp(20px,4vw,56px);
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:640px){.stats-inner{grid-template-columns:repeat(2,1fr);gap:28px}}
.stat-item{text-align:center}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:clamp(40px,7vw,62px);line-height:1;color:#fff}
.stat-num span{color:var(--rust)}
.stat-label{font-size:10px;letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-top:6px}

/* ── SHARED SECTION ── */
.section{padding:90px 0}
.section-bg{background:var(--bg2)}
.sec-inner{max-width:var(--w);margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.sec-label{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--rust);margin-bottom:12px}
.sec-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(36px,5.5vw,68px);line-height:1;color:#fff}

/* ── ABOUT ── */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-top:0}
@media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:36px}}
.about-visual{position:relative;height:380px}
@media(max-width:860px){.about-visual{height:200px}}
.circuit-bg{position:absolute;inset:0;
  background-image:linear-gradient(rgba(141,180,210,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(141,180,210,.05) 1px,transparent 1px);
  background-size:40px 40px;border:1px solid #1a2530}
.about-badge{position:absolute;top:28px;left:28px;background:var(--rust);
  padding:10px 16px;font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:2px;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px))}
.dot-bg{position:absolute;inset:0;
  background-image:radial-gradient(circle,rgba(141,180,210,.08) 1px,transparent 1px);
  background-size:30px 30px}
.about-text-wrap{font-size:clamp(12px,1.5vw,14px);line-height:2;color:var(--text-dim)}
.about-text-wrap p+p{margin-top:16px}
.about-text-wrap strong{color:var(--text)}
.tech-stack{margin-top:36px;display:flex;flex-wrap:wrap;gap:7px}
.tech-tag{font-size:10px;letter-spacing:1px;text-transform:uppercase;
  border:1px solid #1a2530;padding:7px 12px;color:var(--steel-dark);
  transition:border-color .3s,color .3s;cursor:default}
.tech-tag:hover{border-color:var(--steel);color:var(--steel)}

/* ── SERVICES ── */
.srv-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px;flex-wrap:wrap;gap:16px}
.srv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
@media(max-width:860px){.srv-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.srv-grid{grid-template-columns:1fr}}
.srv-card{background:var(--bg3);padding:36px 28px;border:1px solid #141e26;
  position:relative;overflow:hidden;transition:transform .3s}
.srv-card::before{content:'';position:absolute;top:0;left:0;
  width:3px;height:0;background:var(--rust);transition:height .4s}
.srv-card:hover::before{height:100%}
.srv-card:hover{transform:translateY(-3px)}
.srv-num{font-family:'Bebas Neue',sans-serif;font-size:58px;color:#1a2530;line-height:1;margin-bottom:12px}
.srv-icon{font-size:26px;margin-bottom:12px;display:block}
.srv-name{font-family:'Tektur',sans-serif;font-size:17px;font-weight:600;color:#fff;margin-bottom:8px}
.srv-desc{font-size:11px;line-height:1.8;color:var(--text-dim)}

/* ── PROJECTS ── */
.proj-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;flex-wrap:wrap;gap:16px}
.proj-filter{display:flex;gap:4px;flex-wrap:wrap}
.f-btn{background:none;border:1px solid #1a2530;color:var(--text-dim);
  padding:7px 16px;font-family:'Space Mono',monospace;font-size:10px;
  letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .3s}
.f-btn.active,.f-btn:hover{background:var(--rust);border-color:var(--rust);color:#fff}
.proj-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.p1{grid-column:span 7;grid-row:span 2}
.p2{grid-column:span 5}
.p3{grid-column:span 5}
.p4{grid-column:span 4}
.p5{grid-column:span 4}
.p6{grid-column:span 4}
@media(max-width:860px){
  .proj-grid{grid-template-columns:repeat(6,1fr);gap:8px}
  .p1{grid-column:span 6;grid-row:span 1}
  .p2,.p3{grid-column:span 3}
  .p4,.p5,.p6{grid-column:span 2}
}
@media(max-width:520px){
  .proj-grid{grid-template-columns:1fr 1fr;gap:7px}
  .p1{grid-column:span 2}
  .p2,.p3,.p4,.p5,.p6{grid-column:span 1}
}
.proj{position:relative;overflow:hidden;background:var(--bg2);cursor:pointer}
.proj-inner{height:100%;min-height:240px;position:relative;overflow:hidden}
.p1 .proj-inner{min-height:480px}
@media(max-width:860px){.p1 .proj-inner{min-height:260px}.proj-inner{min-height:180px}}
@media(max-width:520px){.p1 .proj-inner{min-height:200px}.proj-inner{min-height:150px}}
.proj-bg{position:absolute;inset:0;transition:transform .6s}
.proj:hover .proj-bg{transform:scale(1.05)}
.p1 .proj-bg{background:linear-gradient(135deg,#0d1f2d,#1a3348 50%,#0a1520)}
.p2 .proj-bg{background:linear-gradient(135deg,#1a0d0a,#331a15)}
.p3 .proj-bg{background:linear-gradient(135deg,#0d1a0d,#1a3320)}
.p4 .proj-bg{background:linear-gradient(135deg,#1a1a0d,#33300d)}
.p5 .proj-bg{background:linear-gradient(135deg,#0d0d1a,#1a1a33)}
.p6 .proj-bg{background:linear-gradient(135deg,#1a0d1a,#2d1a2d)}
.proj-overlay{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,12,14,.95),transparent 65%);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(14px,3vw,26px);transform:translateY(6px);transition:transform .4s}
.proj:hover .proj-overlay{transform:none}
.proj-tags{display:flex;gap:5px;margin-bottom:8px;flex-wrap:wrap}
.proj-tag{font-size:9px;letter-spacing:1px;text-transform:uppercase;
  border:1px solid rgba(201,75,44,.5);color:var(--rust);padding:3px 7px}
.proj-name{font-family:'Tektur',sans-serif;font-size:clamp(13px,2vw,19px);
  font-weight:700;color:#fff;line-height:1.2}
.p1 .proj-name{font-size:clamp(16px,2.8vw,26px)}
.proj-deco{position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);
  font-family:'Bebas Neue',sans-serif;font-size:clamp(44px,9vw,100px);
  color:rgba(255,255,255,.04);white-space:nowrap;pointer-events:none}
.proj-arrow{position:absolute;top:14px;right:14px;width:34px;height:34px;
  border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;
  justify-content:center;color:rgba(255,255,255,.2);font-size:16px;
  opacity:0;transform:rotate(-45deg);transition:all .3s}
.proj:hover .proj-arrow{opacity:1;transform:none;border-color:var(--rust);color:var(--rust)}

/* ── PROCESS ── */
.proc-timeline{margin-top:52px;position:relative}
.proc-timeline::before{content:'';position:absolute;top:20px;left:20px;
  width:1px;height:calc(100% - 40px);
  background:linear-gradient(to bottom,var(--rust),transparent)}
@media(max-width:520px){.proc-timeline::before{display:none}}
.proc-item{display:flex;gap:clamp(18px,4vw,52px);padding:30px 0;
  border-bottom:1px solid #141e26;flex-wrap:wrap}
.proc-num{font-family:'Bebas Neue',sans-serif;font-size:42px;color:var(--rust);min-width:48px;line-height:1}
.proc-content{flex:1;min-width:180px}
.proc-name{font-family:'Tektur',sans-serif;font-size:16px;font-weight:600;color:#fff;margin-bottom:6px}
.proc-text{font-size:11px;line-height:1.8;color:var(--text-dim)}
.proc-dur{font-size:10px;letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;align-self:center;min-width:80px;text-align:right}

/* ── CTA ── */
#cta{padding:100px 0;text-align:center;position:relative;overflow:hidden;background:var(--bg2);border-top:1px solid #1a2530}
.cta-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:'Bebas Neue',sans-serif;font-size:clamp(56px,12vw,180px);
  color:rgba(255,255,255,.015);white-space:nowrap;pointer-events:none;letter-spacing:20px}
.cta-inner{position:relative;max-width:var(--w);margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.cta-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(40px,7.5vw,92px);
  color:#fff;line-height:.95;margin-bottom:24px}
.cta-title span{color:var(--rust)}
.cta-sub{font-size:clamp(11px,1.4vw,13px);color:var(--text-dim);
  margin-bottom:48px;max-width:400px;margin-left:auto;margin-right:auto;line-height:1.9}
.cta-contacts{display:flex;justify-content:center;align-items:center;gap:36px;flex-wrap:wrap}
.c-item .c-label{font-size:9px;letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-bottom:4px}
.c-item .c-val{font-family:'Tektur',sans-serif;font-size:clamp(13px,1.8vw,15px);
  color:var(--steel);text-decoration:none;transition:color .3s}
.c-item .c-val:hover{color:var(--gold)}
.c-div{width:1px;height:44px;background:#1a2530}
@media(max-width:460px){.c-div{display:none}.cta-contacts{gap:22px}}

/* ── FOOTER ── */
footer{border-top:1px solid #141e26;background:var(--bg)}
.footer-inner{max-width:var(--w);margin:0 auto;padding:26px clamp(20px,4vw,56px);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.footer-logo{font-family:'Bebas Neue',sans-serif;font-size:17px;letter-spacing:3px;color:var(--text-dim)}
.footer-logo span{color:var(--rust)}
.footer-copy{font-size:10px;letter-spacing:1px;color:var(--text-dim)}
@media(max-width:520px){.footer-inner{justify-content:center;text-align:center}}

/* ── HELPERS ── */
.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s,transform .7s}
.reveal.visible{opacity:1;transform:none}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes glitch1{0%,90%,100%{transform:none;opacity:0}91%{transform:translate(-3px,0);opacity:.7}93%{transform:translate(3px,0);opacity:.7}95%{transform:none;opacity:0}}
@keyframes glitch2{0%,92%,100%{transform:none;opacity:0}93%{transform:translate(3px,0);opacity:.7}95%{transform:translate(-3px,0);opacity:.7}97%{transform:none;opacity:0}}
.glitch{position:relative}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;top:0;left:0;font-family:inherit;font-size:inherit;color:inherit}
.glitch::before{color:var(--rust);animation:glitch1 4s infinite;clip-path:polygon(0 0,100% 0,100% 35%,0 35%)}
.glitch::after{color:#4af;animation:glitch2 4s infinite;clip-path:polygon(0 65%,100% 65%,100% 100%,0 100%)}
body::after{content:'';position:fixed;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='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  pointer-events:none;z-index:1000;opacity:.35}