:root{
  --bg-a:#0b0022;
  --bg-b:#2b004e;
  --accent:#9b59ff;
  --glass: rgba(255,255,255,0.04);
  --muted: rgba(255,255,255,0.68);
  --card: rgba(255,255,255,0.03);
}
*{box-sizing:border-box}
html,body,#bg{height:100%}
body{
  margin:0;
  font-family:Inter, Roboto, system-ui, -apple-system, 'Segoe UI', Arial;
  background: linear-gradient(180deg,var(--bg-a), var(--bg-b));
  color: #fff;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
.site{position:relative;min-height:100vh;}

/* canvas background sits under everything */
#bg{position:fixed;inset:0;z-index:0;display:block}

/* top */
.top{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:22px 28px}
.brand{display:flex;align-items:center;gap:12px}
.logo{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,0.06);background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01))}
.brand-name{font-weight:700;letter-spacing:0.6px}
.brand-sub{font-size:12px;color:var(--muted)}

/* layout */
.main{position:relative;z-index:5;display:flex;flex-direction:column;gap:20px;padding:18px 28px 120px;max-width:1100px;margin:0 auto}
.card{background:var(--card);border-radius:14px;padding:20px;box-shadow:0 10px 30px rgba(0,0,0,0.45);backdrop-filter: blur(6px)}

/* hero */
.hero{display:flex;flex-direction:column;gap:12px;padding:36px 24px}
.hero h1{font-size:28px;margin:0}
.lead{color:var(--muted);margin:0 0 8px 0}
.actions{display:flex;gap:10px;margin-top:8px}

/* кнопки — белый текст */
.btn,
.social,
.contact-btn {
  color: #fff;
  padding:10px 16px;
  border-radius:12px;
  border:0;
  cursor:pointer;
  background:linear-gradient(90deg, rgba(155,89,255,0.12), rgba(98,0,150,0.06));
  font-weight:700;
  min-width:120px;
  transition:all .25s ease;
}

.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.06)}
.btn.small{padding:8px 10px;min-width:unset}

/* подсветка при наведении */
.btn:hover,
.social:hover,
.contact-btn:hover {
  color:#fff;
  text-shadow:0 0 6px rgba(255,255,255,0.6);
  background:linear-gradient(90deg, rgba(155,89,255,0.18), rgba(98,0,150,0.12));
  transform:translateY(-1px);
}

/* projects grid */
.projects .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.proj{padding:12px;border-radius:10px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));min-height:96px}

/* about */
.about p{color:var(--muted)}

/* contact panel */
.contact-panel{position:fixed;right:28px;top:86px;width:320px;padding:18px;border-radius:14px;background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));backdrop-filter: blur(8px);box-shadow:0 20px 40px rgba(0,0,0,0.5);transform-origin:top right;transition:transform .36s cubic-bezier(.2,.9,.2,1),opacity .22s;opacity:0;transform:translateY(-8px) scale(.98);z-index:6;pointer-events:none}
.contact-panel[aria-hidden="false"]{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.panel-inner{display:flex;flex-direction:column;gap:12px}
.socials{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.social{position:relative;overflow:hidden;min-width:120px;text-align:left}
.social::after{content:'';position:absolute;inset:0;border-radius:10px;box-shadow:0 0 24px rgba(155,89,255,0.06);opacity:0;transition:opacity .28s, transform .28s}
.social.pressed::after{opacity:1;transform:scale(1.06)}

/* плавающая анимация кнопок — сохраняется после клика */
.social{animation:float 3.5s ease-in-out infinite}
@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-7px)}100%{transform:translateY(0)}}

/* footer */
.footer{position:fixed;left:20px;right:20px;bottom:18px;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border-radius:12px;z-index:5}

/* адаптация */
@media (max-width:900px){
  .projects .grid{grid-template-columns:repeat(2,1fr)}
  .contact-panel{right:16px;left:16px;top:auto;bottom:120px;width:auto}
}
@media (max-width:520px){
  .projects .grid{grid-template-columns:1fr}
  .top{padding:14px}
  .hero{padding:20px}
  .logo{width:48px;height:48px}
}

/* утилиты */
.muted{color:var(--muted);font-size:13px}
code{background:rgba(0,0,0,0.15);padding:2px 6px;border-radius:6px}
