/* ============ MAGMA — BLACK / WHITE / RED ============ */
:root{
  --bg:#0b0b0b;
  --bg-soft:#101010;
  --border:rgba(255,255,255,.12);
  --text:#f2f2f0;
  --text-dim:#8d8d8d;
  --red:#e8232a;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  background:var(--bg);
  color:var(--text);
  font-family:'Manrope',sans-serif;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

.container{ max-width:1280px; margin:0 auto; padding:0 40px; }
a{ color:inherit; text-decoration:none; }

h1,h2{
  font-family:'Unbounded',sans-serif;
  font-weight:900;
  line-height:.98;
  letter-spacing:-1px;
  text-transform:uppercase;
}

.gradient-text{ color:var(--red); }

.eyebrow{
  display:flex; align-items:center; gap:9px;
  font-size:11px; font-weight:700; letter-spacing:2.2px;
  text-transform:uppercase; color:var(--text);
  margin-bottom:24px;
}
.eyebrow.center{ justify-content:center; }

.dot-red{
  width:8px; height:8px; border-radius:50%;
  background:var(--red); display:inline-block; flex-shrink:0;
}

.btn-primary{
  display:inline-flex; align-items:center; gap:16px;
  background:none; padding:0;
  font-size:11px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase;
}
.btn-primary .arrow{
  width:44px; height:44px; border-radius:50%;
  background:var(--red); color:#fff;
  display:grid; place-items:center; font-size:17px;
  transition:transform .25s ease;
}
.btn-primary:hover .arrow{ transform:translateX(6px); }

.section-title{ font-size:clamp(28px,3.4vw,46px); }

/* ================= HEADER ================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(11,11,11,.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:70px;
}
.logo{
  font-family:'Unbounded',sans-serif;
  font-weight:900; font-size:18px;
}
.logo .dot{ color:var(--red); }

.nav-links{ display:flex; gap:34px; }
.nav-links a{
  font-size:11px; font-weight:700; letter-spacing:1.6px;
  color:var(--text); transition:color .2s;
}
.nav-links a:hover{ color:var(--red); }

.tg-badge{
  display:flex; align-items:center; gap:8px;
  font-size:11px; font-weight:700; letter-spacing:1.4px;
  padding:10px 18px;
  border:1px solid var(--border); border-radius:999px;
  transition:.2s;
}
.tg-badge:hover{ border-color:var(--red); color:var(--red); }

/* ================= HERO ================= */
.hero{ position:relative; padding:60px 0 90px; overflow:hidden; }

.hero-inner{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:50px; align-items:center;
  position:relative; z-index:1;
}

.hero-title{ font-size:clamp(52px,7.4vw,104px); }

.hero-role{
  margin-top:20px;
  font-family:'Unbounded',sans-serif;
  font-size:clamp(16px,1.9vw,22px);
  font-weight:600; letter-spacing:5px;
  text-transform:uppercase;
  color:var(--red);
}

.hero-meta{
  display:flex; flex-wrap:wrap; gap:12px 26px;
  margin:32px 0 42px;
}
.hero-meta span{
  font-size:10.5px; font-weight:700; letter-spacing:1.6px;
  text-transform:uppercase; color:var(--text);
  position:relative; padding-left:16px;
}
.hero-meta span::before{
  content:""; position:absolute; left:0; top:50%;
  transform:translateY(-50%);
  width:6px; height:6px; border-radius:50%; background:var(--red);
}

/* ---------- ФОТО ВНУТРИ КРАСНОГО КРУГА ---------- */
.hero-photo-wrap{
  position:relative;
  display:flex; justify-content:center; align-items:center;
  min-height:600px;
}

.hero-photo-glow{
  position:absolute;
  width:460px; height:460px;
  border-radius:50%;
  background:var(--red);
  z-index:0;
}

.hero-photo{
  position:relative; z-index:1;
  width:440px;
  height:440px;
  object-fit:cover;
  object-position:center;
  border:none;
  border-radius:50%;
  display:block;
}

/* ================= ABOUT ================= */
.about{
  padding:90px 0;
  text-align:center;
  background:var(--bg-soft);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.about-title{ font-size:clamp(34px,5vw,60px); margin-bottom:26px; }
.about-text{
  max-width:600px; margin:0 auto;
  font-size:15px; line-height:1.85; color:var(--text-dim);
}

.about-stats{
  display:flex; justify-content:center; gap:70px;
  margin-top:56px; flex-wrap:wrap;
}
.stat{ display:flex; flex-direction:column; gap:6px; }
.stat-num{
  font-family:'Unbounded',sans-serif;
  font-weight:900; font-size:28px;
  background:none; color:var(--red);
}
.stat-label{ font-size:12px; color:var(--text-dim); letter-spacing:.4px; }
.stat-label a:hover{ color:var(--red); }

/* ================= CASES ================= */
.cases{ padding:100px 0; }
.cases-heading{ margin-bottom:36px; }

.cases-heading{
  text-align:center;
  margin-bottom:50px;
}

.folders-row{
  display:flex;
  gap:24px;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom:20px;
}
.folder{
  cursor:pointer;
  text-align:center;
  flex:1 1 160px;
  max-width:200px;
  min-width:130px;
  user-select:none;
}

.folder-icon{
  position:relative;
  width:100%;
  aspect-ratio:220/150;
  perspective:800px;
}

.folder-back{
  position:absolute;
  inset:0;
  background:linear-gradient(145deg, var(--red), #b8181d);
  border-radius:0 16px 16px 16px;
  box-shadow:0 20px 40px rgba(232,35,42,.25);
}

.folder-back::before{
  content:"";
  position:absolute;
  top:-18px; left:0;
  width:44px; height:18px;
  background:inherit;
  border-radius:10px 10px 0 0;
}

.folder-front{
  position:absolute;
  left:0; right:0; bottom:0;
  height:72%;
  background:linear-gradient(145deg, #ff444b, var(--red));
  border-radius:0 16px 16px 16px;
  transform-origin:bottom;
  transition:transform .45s cubic-bezier(.4,0,.2,1), box-shadow .3s;
  box-shadow:0 10px 25px rgba(0,0,0,.4);
}

.folder:hover .folder-front{
  transform:translateY(-6px) rotateX(-10deg);
}

.folder.open .folder-front{
  transform:rotateX(-58deg) translateY(-14px);
  box-shadow:0 30px 45px rgba(0,0,0,.45);
}

.folder-name{
  margin-top:20px;
  font-family:'Unbounded',sans-serif;
  font-weight:800;
  font-size:13px;
  letter-spacing:1px;
  text-transform:uppercase;
  transition:.2s;
}

.folder.open .folder-name,
.folder:hover .folder-name{
  color:var(--red);
}

.folder-panel{
  max-height:0;
  overflow:hidden;
  opacity:0;
  border:1px solid var(--border);
  border-radius:20px;
  background:var(--bg-soft);
  transition:max-height .55s ease, opacity .45s ease, padding .45s ease, margin .45s ease;
}

.folder-panel.active{
  max-height:20000px;
  opacity:1;
  margin-bottom:40px;
  padding:44px 32px 32px;
}

.folder-close{
  float:right;
  background:none;
  border:1px solid var(--border);
  color:var(--text);
  padding:8px 18px;
  border-radius:50px;
  cursor:pointer;
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  transition:.2s;
}

.folder-close:hover{
  border-color:var(--red);
  color:var(--red);
}

.case-title{
  font-family:'Unbounded',sans-serif;
  font-weight:800;
  font-size:20px;
  text-transform:uppercase;
  margin-bottom:8px;
  clear:both;
}

.case-desc{
  color:var(--text-dim);
  font-size:14px;
  margin-bottom:24px;
}
.case-videos{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
}

.case-videos video{
  width:100%;
  aspect-ratio:9/16;
  object-fit:cover;
  background:#000;
  border:1px solid var(--border);
  border-radius:12px;
}
#panel-creative .case-videos video{
  aspect-ratio:16/9;
  object-fit:contain;
}
.subfolder-row{
  margin-top:32px;
  display:flex;
  gap:40px;
  justify-content:flex-start;
  flex-wrap:wrap;
}
.subfolder{
  cursor:pointer;
  text-align:center;
  width:170px;
  user-select:none;
}
.subfolder-icon{
  width:170px;
  height:116px;
}
.subfolder .folder-name{
  font-size:12px;
  margin-top:16px;
}
.subfolder.open .folder-front{
  transform:rotateX(-58deg) translateY(-14px);
}

.subfolder.open .folder-name{
  color:var(--red);
}

.subfolder-panel{
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height .55s ease, opacity .45s ease, margin .45s ease;
}

.subfolder-panel.active{
  max-height:3000px;
  opacity:1;
  margin-top:28px;
}

.case-images{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
}

.case-images img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  background:#000;
  border:1px solid var(--border);
  border-radius:12px;
}

@media (max-width:700px){
  .case-images{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:700px){
  .case-videos{ grid-template-columns:repeat(2, 1fr); }
}

@media (max-width:560px){
  .folders-row{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:28px;
    flex-wrap:unset;
    overflow-x:visible;
  }
  .folder{
    flex:unset;
    max-width:none;
    min-width:0;
    width:100%;
  }
  .folder, .folder-icon{ width:100%; height:auto; }
  .folder-name{ font-size:11px; margin-top:14px; }
  .folder-panel.active{ padding:28px 16px 20px; }
}/* ================= CONTACT ================= */
.contact{
  padding:100px 0;
  background:var(--bg-soft);
  border-top:1px solid var(--border);
}
.contact-inner{
  display:grid; grid-template-columns:1.15fr .85fr;
  gap:56px; align-items:center;
}
.contact-text{
  margin:22px 0 34px;
  color:var(--text-dim); font-size:15px; line-height:1.8; max-width:400px;
}

.contact-right{ display:flex; flex-direction:column; gap:14px; }
.contact-pill{
  display:flex; align-items:center; gap:10px;
  padding:18px 24px;
  border:1px solid var(--border); border-radius:0;
  font-size:12px; font-weight:600; letter-spacing:1.2px;
  text-transform:uppercase;
  transition:.2s;
}
a.contact-pill:hover{
  background:var(--red); border-color:var(--red); color:#fff;
}
a.contact-pill:hover .dot-red{ background:#fff; }

/* ================= FOOTER ================= */
.site-footer{ padding:24px 0; border-top:1px solid var(--border); }
.footer-inner{
  display:flex; justify-content:space-between;
  font-size:10.5px; font-weight:600; letter-spacing:1.4px;
  text-transform:uppercase; color:var(--text-dim);
}
.footer-inner a:hover{ color:var(--red); }

/* ================= RESPONSIVE ================= */
@media (max-width:900px){
  .hero-inner{ grid-template-columns:1fr; gap:46px; }
  .hero-photo-wrap{ order:-1; min-height:400px; }
  .hero-photo-glow{ width:340px; height:340px; }
  .hero-photo{ width:320px; height:320px; }
  .nav-links{ display:none; }
  .contact-inner{ grid-template-columns:1fr; }
  .about-stats{ gap:40px; }
}

@media (max-width:560px){
  .container{ padding:0 22px; }
  .hero{ padding:40px 0 60px; }
  .hero-title{ font-size:44px; }
  .hero-photo-glow{ width:260px; height:260px; }
  .hero-photo{ width:240px; height:240px; }
  .hero-photo-wrap{ min-height:320px; }
  .about,.cases,.contact{ padding:64px 0; }
  .cases-grid{ min-height:300px; }
  .footer-inner{ flex-direction:column; gap:10px; text-align:center; }
}
.clients-label{
  font-size:11px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; color:var(--text-dim);
  text-align:center;
  margin-top:70px; margin-bottom:36px;
}

.clients-marquee{
  overflow:hidden;
  width:100%;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.clients-track{
  display:flex;
  align-items:center;
  gap:36px;
  width:max-content;
  animation:scroll-logos 26s linear infinite;
}

.clients-marquee:hover .clients-track{
  animation-play-state:paused;
}

.client-logo{
  background:#ffffff;
  border-radius:16px;
  padding:22px 34px;
  height:88px;
  min-width:170px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  transition:.3s;
}

.client-logo:hover{
  transform:translateY(-6px) scale(1.05);
  box-shadow:0 16px 40px rgba(232,35,42,.35);
}

.client-logo img{
  max-height:100%;
  max-width:150px;
  object-fit:contain;
  display:block;
}

@keyframes scroll-logos{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

@media (max-width:560px){
  .client-logo{ height:64px; min-width:130px; padding:14px 20px; }
  .client-logo img{ max-width:100px; }
  .clients-track{ gap:20px; }
}
.contact-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:32px;
  max-width:520px;
  margin:0 auto;
  padding:60px 20px 100px;
}

.contact-inner .section-title{
  line-height:1.15;
}

.contact{
  position:relative;
  overflow:hidden;
  padding:100px 0 120px;
}

.contact-glow{
  position:absolute;
  top:50%; left:50%;
  width:700px; height:700px;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(232,35,42,.22) 0%, rgba(232,35,42,0) 70%);
  pointer-events:none;
  z-index:0;
}

.contact-inner{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:26px;
  max-width:700px;
  margin:0 auto;
  padding:0 20px;
}

.contact-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--red, #e8232a);
  border:1px solid rgba(232,35,42,.4);
  border-radius:50px;
  padding:8px 18px;
}

.contact-title{
  line-height:1.12;
}

.contact-cta{
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:var(--red, #e8232a);
  color:#fff;
  font-weight:700;
  font-size:15px;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:20px 36px;
  border-radius:50px;
  text-decoration:none;
  transition:.25s;
  animation:pulse-glow 2.6s ease-in-out infinite;
}

.contact-cta:hover{
  transform:translateY(-3px) scale(1.03);
}

.contact-cta .dot-red{
  background:#fff;
}

.contact-cta .arrow{
  transition:.25s;
}

.contact-cta:hover .arrow{
  transform:translateX(4px);
}

@keyframes pulse-glow{
  0%, 100%{ box-shadow:0 0 0 0 rgba(232,35,42,.5); }
  50%{ box-shadow:0 0 0 14px rgba(232,35,42,0); }
}

.contact-text{
  font-size:16px;
  line-height:1.7;
  color:var(--text-dim);
  max-width:420px;
}

.contact-link{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:3px;
}

.contact-link:hover{
  color:var(--red, #e8232a);
}

.nowrap{
  white-space:nowrap;
}

@media (max-width:560px){
  .contact-cta{ padding:16px 26px; font-size:13px; }
  .contact-glow{ width:480px; height:480px; }
}
@media (max-width:900px) and (min-width:561px){
  .folders-row{
    flex-wrap:nowrap;
    overflow-x:auto;
    justify-content:flex-start;
    padding-bottom:14px;
    -webkit-overflow-scrolling:touch;
  }
  .folder{
    flex:0 0 auto;
  }
}
@media (max-width:560px){
  .folders-row{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:28px;
    overflow-x:visible;
  }
  .folder{
    flex:unset;
    max-width:none;
    min-width:0;
    width:100%;
  }
}