/* Карусель работ на главной (21.10 — вместо сетки .grid.grid-2).
   Приём из ролика «Glassy Carousel V2»: карточка в фокусе, соседи мельче и в темноте,
   стеклянная панель лежит на нижней кромке снимка и размывает её за собой.
   Файл один на все страницы: подключается ссылкой из головы главной, на остальных
   страницах ничего не делает (разметки .krab там нет). */

/* Боковые карточки нарочно выступают за контейнер, и без этого правила страница
   получает горизонтальную прокрутку (замер 21.10: 225 px лишних при 1440).
   Режем по краю секции — то есть по краю окна, как и задумано. */
#cases{overflow-x:clip}

.krab{position:relative;margin-top:26px}
.krab::before{
  content:"";position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);
  width:min(980px,94vw);height:430px;border-radius:50%;pointer-events:none;z-index:0;
  background:var(--krab-glow,radial-gradient(closest-side,rgba(214,222,255,.20),transparent 72%));
  filter:blur(40px);
}
.krab-stage{position:relative;height:470px;z-index:1;perspective:1700px;outline:none}
.krab-stage:focus-visible{outline:2px solid rgba(232,233,240,.6);outline-offset:6px;border-radius:24px}

.krab-card{
  position:absolute;top:50%;left:50%;width:520px;
  transform:translate(-50%,-50%) scale(1);
  transition:transform 400ms cubic-bezier(.16,1,.3,1),opacity 400ms cubic-bezier(.16,1,.3,1),filter 400ms cubic-bezier(.16,1,.3,1);
  will-change:transform,opacity,filter;
  opacity:0;pointer-events:none;
}
.krab-card .krab-poster{
  position:relative;margin:0;aspect-ratio:16/9;border-radius:20px;overflow:hidden;
  background:#0a0a12;border:1px solid rgba(255,255,255,.16);
  box-shadow:0 30px 70px rgba(0,0,0,.6);
}
.krab-card .krab-poster img{width:100%;height:100%;object-fit:cover;object-position:top center}
.krab-card .krab-poster::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,6,11,.22) 0%,rgba(6,6,11,0) 30%,rgba(6,6,11,.28) 100%);
}
.krab-card .krab-tag{
  position:absolute;left:13px;top:13px;z-index:3;
  font-size:14px;text-transform:uppercase;
  padding:5px 10px;border-radius:999px;
  background:rgba(10,10,18,.5);border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%);
  color:#f0f1f7;
}
.krab-card .krab-panel{
  position:relative;z-index:2;margin:-52px 11px 0;padding:14px 16px;border-radius:18px;overflow:hidden;
  background:
    linear-gradient(150deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.06) 42%,rgba(255,255,255,.045) 100%),
    rgba(9,9,15,.46);
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  box-shadow:0 24px 48px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(255,255,255,.08);
}
.krab-card .krab-panel::before{
  content:"";position:absolute;inset:-40% -10% auto -10%;height:150%;pointer-events:none;
  background:linear-gradient(112deg,rgba(255,255,255,.26) 0%,rgba(255,255,255,.05) 26%,transparent 44%);
}
.krab-card .krab-panel > *{position:relative}
.krab-card .krab-row{display:flex;align-items:baseline;gap:12px}
.krab-card h3{margin:0;font-size:18px;line-height:1.2;letter-spacing:-.01em;font-weight:650;flex:1;color:var(--text);text-shadow:0 1px 12px rgba(0,0,0,.35)}
.krab-card .krab-num{font-size:14px;color:#e6e8f2;font-variant-numeric:tabular-nums;letter-spacing:.05em;opacity:.85}
.krab-card .krab-who{
  margin:5px 0 0;font-size:14px;color:#dfe2ee;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.krab-card .krab-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(255,255,255,.19)}
.krab-card .krab-nums{display:flex;gap:20px}
.krab-card .krab-nums span{display:block;font-size:14px;color:#d6d9e6;letter-spacing:.03em}
.krab-card .krab-nums b{display:block;font-size:16px;font-weight:650;color:#fff;line-height:1.15;font-variant-numeric:tabular-nums;margin-bottom:1px;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.krab-card .krab-nums b.slovo{font-size:14px;padding-top:2px}
.krab-card .krab-go{
  display:inline-flex;align-items:center;gap:7px;flex-shrink:0;
  font-size:14px;font-weight:600;text-decoration:none;color:#0a0a12;
  background:#eef0f7;border-radius:999px;padding:8px 15px;
  visibility:hidden;
}
.krab-card .krab-go:hover{background:#fff}
.krab-card .krab-go:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* положения */
.krab-card[data-off="0"]{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto;z-index:5}
.krab-card[data-off="0"] .krab-go{visibility:visible}
.krab-card[data-off="0"] .krab-poster{border-color:rgba(255,255,255,.26)}
.krab-card[data-off="-1"]{transform:translate(calc(-50% - 476px),-50%) scale(.76) rotateY(18deg);opacity:.52;z-index:4;filter:grayscale(1) brightness(.5) contrast(1.05)}
.krab-card[data-off="1"]{transform:translate(calc(-50% + 476px),-50%) scale(.76) rotateY(-18deg);opacity:.52;z-index:4;filter:grayscale(1) brightness(.5) contrast(1.05)}
.krab-card[data-off="-2"]{transform:translate(calc(-50% - 800px),-50%) scale(.55) rotateY(26deg);opacity:.3;z-index:3;filter:grayscale(1) blur(3px) brightness(.45)}
.krab-card[data-off="2"]{transform:translate(calc(-50% + 800px),-50%) scale(.55) rotateY(-26deg);opacity:.3;z-index:3;filter:grayscale(1) blur(3px) brightness(.45)}
.krab-card[data-off="-1"],.krab-card[data-off="1"],
.krab-card[data-off="-2"],.krab-card[data-off="2"]{pointer-events:auto;cursor:pointer}
@media (hover:hover) and (pointer:fine){
  .krab-card[data-off="-1"]:hover,.krab-card[data-off="1"]:hover{opacity:.78;filter:grayscale(1) brightness(.72) contrast(1.05)}
  .krab-card[data-off="-2"]:hover,.krab-card[data-off="2"]:hover{opacity:.5;filter:grayscale(1) blur(1px) brightness(.62)}
}

.krab-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:8px}
.krab-btn{
  appearance:none;cursor:pointer;width:44px;height:44px;border-radius:999px;
  display:grid;place-items:center;color:var(--text);
  background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px);
  transition:background .2s ease,transform .2s ease,border-color .2s ease;
}
.krab-btn:hover{background:rgba(255,255,255,.085);border-color:rgba(255,255,255,.3)}
.krab-btn:active{transform:scale(.94)}
.krab-btn:focus-visible{outline:2px solid #e8e9f0;outline-offset:3px}
.krab-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.krab-counter{
  min-width:150px;text-align:center;font-size:14px;color:var(--muted);
  padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.055);
  border:1px solid var(--line);font-variant-numeric:tabular-nums;
}
.krab-counter b{color:var(--text);font-weight:600}

@media (max-width:1180px){
  .krab-card{width:460px}
  .krab-card[data-off="-1"]{transform:translate(calc(-50% - 420px),-50%) scale(.76) rotateY(18deg)}
  .krab-card[data-off="1"]{transform:translate(calc(-50% + 420px),-50%) scale(.76) rotateY(-18deg)}
  .krab-card[data-off="-2"]{transform:translate(calc(-50% - 700px),-50%) scale(.55) rotateY(26deg)}
  .krab-card[data-off="2"]{transform:translate(calc(-50% + 700px),-50%) scale(.55) rotateY(-26deg)}
  .krab-stage{height:430px}
}
@media (max-width:860px){
  .krab-card{width:min(calc(100vw - 44px),400px)}
  .krab-card[data-off="-1"],.krab-card[data-off="1"],
  .krab-card[data-off="-2"],.krab-card[data-off="2"]{opacity:0;pointer-events:none}
  .krab-stage{height:410px;perspective:none}
  .krab::before{height:340px}
}
@media (max-width:760px){
  .krab{margin-top:20px}
  .krab-stage{height:404px}
  .krab-card .krab-panel{margin:-40px 9px 0;padding:12px 13px}
  .krab-card h3{font-size:16px}
  .krab-card .krab-who{font-size:14px;-webkit-line-clamp:2}
  .krab-card .krab-foot{gap:10px;margin-top:9px;padding-top:8px}
  .krab-card .krab-nums{gap:12px}
  .krab-card .krab-nums b{font-size:16px}
  .krab-card .krab-nums span{font-size:14px}
  .krab-card .krab-go{font-size:14px;padding:7px 12px}
  .krab-controls{gap:10px;margin-top:6px}
  .krab-btn{width:40px;height:40px}
  .krab-counter{min-width:134px;font-size:14px;padding:8px 11px}
}
@media (prefers-reduced-motion:reduce){
  .krab-card,.krab::before{transition:none !important}
  .krab-card[data-off="-1"]{transform:translate(calc(-50% - 476px),-50%) scale(.8)}
  .krab-card[data-off="1"]{transform:translate(calc(-50% + 476px),-50%) scale(.8)}
  .krab-card[data-off="-2"],.krab-card[data-off="2"]{filter:grayscale(1) brightness(.6)}
}
