:root{
--bg:#050506;
  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.62);

  --line:rgba(255,255,255,.14);
  --shadow: 0 22px 80px rgba(0,0,0,.58);
  --radius: 26px;

  --pad: 34px;
  --gap: 18px;
  --maxw: 1220px;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }

body{
  margin:0;
  color:var(--text);
  background: var(--bg);
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  overflow:hidden; /* desktop-only */
}

/* Canvas behind everything */
#bg-canvas{
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.page{
  min-height:100vh;
  position:relative;
  z-index: 1;          /* контент выше canvas */
  background: transparent; /* НЕ перекрываем canvas */
}

/* мягкая подложка поверх canvas (чтобы было “дорого”), но с прозрачностью */
.page::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  background:
    radial-gradient(circle at 20% 18%, rgba(255,255,255,.035), transparent 55%),
    radial-gradient(circle at 84% 72%, rgba(255,255,255,.025), transparent 60%),
    radial-gradient(circle at 42% 98%, rgba(255,255,255,.02), transparent 55%),
    linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55));
}


.shell{
  height:100vh;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: var(--pad);
  display:flex;
  flex-direction:column;
  gap: 18px;
}

/* Cards grid */
.grid{
  flex:1;
  display:flex;
  flex-direction:column;
  gap: var(--gap);
}

/* Card */
.card{
  position:relative;
  flex:1;
  display:block;
  border-radius: var(--radius);
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  box-shadow: var(--shadow);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  isolation:isolate;
  transform: translateZ(0);
}

/* Glass-like outline (static) */
.card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.16), transparent 46%),
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.18), transparent 62%);
  opacity:.30;
  z-index:3;
}

/* Inner line */
.card::after{
  content:"";
  position:absolute;
  inset:10px;
  border-radius: calc(var(--radius) - 10px);
  border: 1px solid rgba(255,255,255,.08);
  pointer-events:none;
  z-index:3;
}

.card__media{
  position:absolute;
  inset:0;
  z-index:0;
}

.card__media img{
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.02);
  filter: saturate(.95) contrast(1.10);
  transition: transform .7s ease, filter .35s ease;
}

/* Premium dark veil */
.card__veil{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at 50% 35%, rgba(255,255,255,.08), transparent 55%),
    linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.46) 50%, rgba(0,0,0,.82)),
    linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.74));
}

.card__content{
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap: 14px;
  padding: 26px;
}

.kicker{
  font-size: 11px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
}

.title{
  font-family: "Cinzel", serif;
  font-size: 74px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 1.0;
}

.title--brand{
  font-size: 78px;
  letter-spacing: .20em;
}

/* === Premium button (NO glass) === */
.btn{
  display:inline-flex;
  align-items:center;
  gap: 12px;
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .24em;
  text-transform: uppercase;
  user-select: none;
}

.btn--premium{
  position: relative;
  color: rgba(255,255,255,.90);
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow:
    0 12px 35px rgba(0,0,0,.45),
    0 0 0 1px rgba(255,255,255,.06) inset;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, color .25s ease;
  overflow: hidden;
}

/* Shine sweep */
.btn--premium::before{
  content:"";
  position:absolute;
  inset:-2px;
  background: linear-gradient(110deg, transparent 0%, rgba(255,255,255,.16) 45%, transparent 70%);
  transform: translateX(-120%);
  transition: transform .55s ease;
  pointer-events:none;
  opacity: .9;
}

/* Soft glow */
.btn--premium::after{
  content:"";
  position:absolute;
  inset:-18px;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.18), transparent 55%);
  opacity: 0;
  transition: opacity .25s ease;
  pointer-events:none;
}

.arrow{
  display:inline-block;
  transform: translateX(0);
  transition: transform .25s ease;
  opacity:.95;
}

/* Hover effects */
.card:hover .card__media img{
  transform: scale(1.06);
  filter: saturate(1.00) contrast(1.16);
}

.card:hover .btn--premium{
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.30);
  box-shadow:
    0 16px 45px rgba(0,0,0,.55),
    0 0 22px rgba(255,255,255,.10),
    0 0 0 1px rgba(255,255,255,.08) inset;
}

.card:hover .btn--premium::before{
  transform: translateX(120%);
}
.card:hover .btn--premium::after{
  opacity: .35;
}
.card:hover .arrow{
  transform: translateX(3px);
}

.card:focus-visible{
  outline: 2px solid rgba(255,255,255,.22);
  outline-offset: 6px;
}

/* Footer */
.site-footer{
  text-align:center;
  padding: 6px 8px;
  color: rgba(255,255,255,.52);
  font-size: 12px;
  line-height: 1.55;
  letter-spacing: .04em;
}

.site-footer strong{
  color: rgba(255,255,255,.78);
  font-weight: 600;
}

.developer-line{
  margin: 6px 0 0;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 11px;
  color: rgba(255,255,255,.45);
}

.site-footer a{
  color: rgba(255,255,255,.78);
  text-decoration:none;
  border-bottom: 1px solid rgba(255,255,255,.18);
  padding-bottom: 2px;
}
.site-footer a:hover{
  border-bottom-color: rgba(255,255,255,.45);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .card__media img, .btn--premium, .btn--premium::before, .btn--premium::after, .arrow{
    transition:none !important;
  }
}


/* =========================
   MOBILE (centered like desktop)
   ========================= */
@media (max-width: 520px){
  /* возвращаем поведение как на ПК: 2 карточки делят экран */
  body{ overflow:hidden; }

  .shell{
    height: 100dvh;           /* фикс под мобилку */
    padding: 16px;
    gap: 14px;
  }

  .grid{
    flex: 1;
    min-height: 0;            /* важно для flex */
    gap: 12px;
  }

  .card{
    flex: 1;
    min-height: 0;            /* важно для flex */
    border-radius: 22px;
  }

  .card::after{
    inset: 8px;
    border-radius: calc(22px - 8px);
  }

  /* контент 100% высоты карточки и строго по центру */
  .card__content{
    height: 100%;
    justify-content: center;
    padding: 16px;
    gap: 12px;
  }

  .kicker{
    font-size: 10px;
    letter-spacing: .22em;
    padding: 7px 11px;
  }

  /* заголовки: меньше + меньше spacing, чтобы не резало */
  .title{
    font-size: clamp(34px, 10vw, 52px);
    letter-spacing: .11em;
    padding: 0 14px;
  }

  /* BARBERSHOP — отдельно чуть ужимаем */
  .card--barber .title{
    font-size: clamp(30px, 9.6vw, 48px);
    letter-spacing: .09em;
  }

  /* STUDIO — тоже аккуратно меньше */
  .card--studio .title{
    font-size: clamp(32px, 9.6vw, 48px);
    letter-spacing: .11em;
  }

  /* футер читаемее */
  .site-footer{
    font-size: 11px;
    color: rgba(255,255,255,.60);
    padding: 2px 6px;
  }

  .developer-line{
    color: rgba(255,255,255,.74);
  }

  .site-footer .developer-line a{
    color: rgba(255,255,255,.95);
    border-bottom: 1px solid rgba(255,255,255,.55);
  }
}
