/* Вынесено из collection.html 2026-07-22. Содержимое перенесено дословно:
   блок стоял в <head> на том же месте, где теперь <link>, поэтому порядок
   каскада не изменился. Относительных url() и @import в блоке не было. */
    .ks-builds .ks-lead{max-width:58ch;}

    .ks-series{margin-top:26px;}
    .ks-series:first-of-type{margin-top:18px;}
    .ks-series-title{
      margin:0 0 12px 0;
      font-size:13px;
      letter-spacing:.18em;
      text-transform:uppercase;
      color:rgba(255,255,255,.72);
    }

    .ks-series-scrollwrap{position:relative;}
    .ks-series-scrollwrap::before,
    .ks-series-scrollwrap::after{
      content:"";
      position:absolute;
      top:0;
      bottom:14px;
      width:18px;
      z-index:3;
      pointer-events:none;
      opacity:0;
      transition:opacity .18s ease;
    }
    .ks-series-scrollwrap::before{
      left:0;
      background:linear-gradient(to right, rgba(5,8,14,.40), rgba(5,8,14,0));
      border-top-left-radius:18px;
      border-bottom-left-radius:18px;
    }
    .ks-series-scrollwrap::after{
      right:0;
      background:linear-gradient(to left, rgba(5,8,14,.40), rgba(5,8,14,0));
      border-top-right-radius:18px;
      border-bottom-right-radius:18px;
    }
    .ks-series-scrollwrap.can-left::before{opacity:1;}
    .ks-series-scrollwrap.can-right::after{opacity:1;}

    .ks-series-scroll{
      --card-w:min(520px, 86%);
      display:flex;
      gap:16px;
      overflow-x:auto;
      padding:2px 0 14px 0;
      scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch;

      scrollbar-width:thin;
      scrollbar-color:rgba(255,255,255,.36) rgba(255,255,255,.08);
    }
    @media (min-width:520px){ .ks-series-scroll{--card-w:420px;} }
    @media (min-width:900px){ .ks-series-scroll{--card-w:380px;} }

    .ks-series-scroll::-webkit-scrollbar{height:9px;}
    .ks-series-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.08);border-radius:999px;}
    .ks-series-scroll::-webkit-scrollbar-thumb{
      background:rgba(255,255,255,.34);
      border-radius:999px;
    }
    .ks-series-scroll::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.28);}

    .ks-series-spacer{
      flex:0 0 max(12px, calc((100% - var(--card-w)) / 2));
      height:1px;
    }

    .ks-build-card{
      flex:0 0 var(--card-w);
      scroll-snap-align:center;
      scroll-snap-stop:always;

      background:rgba(255,255,255,.05);
      border:1px solid rgba(255,255,255,.10);
      border-radius:26px;
      padding:14px;
      /* backdrop-filter убран: под панелями только плавный градиент фона.
         Размытие ничего не давало, но держало композиторный слой, читавший
         подложку вместе с зерном — источник полос. */
      box-shadow:0 18px 40px rgba(0,0,0,.28);
      position:relative;
      overflow:hidden;
    }

    .ks-build-card::before,
    .ks-build-card::after,
    .ks-build-media::before,
    .ks-build-media::after{
      content:none !important;
      display:none !important;
    }

    .ks-build-media{
      border-radius:18px;
      overflow:hidden;
      aspect-ratio:4 / 3;
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.08);
    }
    .ks-build-media img,
    .ks-build-media video{
      width:100%;
      height:100%;
      display:block;
      object-fit:cover;
      transform:scale(1.001);
      opacity:1 !important;
      filter:none !important;
    }

    .ks-build-body{padding:14px 2px 2px 2px;}
    .ks-build-title{margin:8px 0 8px 0;}
    .ks-build-desc{margin:0 0 14px 0;}

    .ks-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
    .ks-tag{white-space:nowrap;}
    .ks-build-actions{display:flex;gap:12px;flex-wrap:wrap;}

    .ks-btn-sound.is-active{
      border-color:rgba(255,255,255,.55) !important;
      box-shadow:0 0 0 1px rgba(255,255,255,.45), 0 18px 40px rgba(0,0,0,.25);
    }

    /* Sound button: keep capsule shape on desktop + mobile in all states */
    .ks-btn-sound{
      -webkit-appearance:none;
      appearance:none;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:40px;
      padding:10px 16px;
      border-radius:999px !important;
      line-height:1;
      white-space:nowrap;
      flex:0 0 auto;
      transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
    }
    .ks-btn-sound:hover{
      transform:translateY(-1px);
    }
    .ks-btn-sound:focus,
    .ks-btn-sound:focus-visible,
    .ks-btn-sound:active,
    .ks-btn-sound.is-active{
      border-radius:999px !important;
      outline:none;
    }

    /* Sanspooll card: keep More on the left and Sound on the right */
    #project-sanspooll-e61-535d .ks-build-actions{
      align-items:center;
    }
    #project-sanspooll-e61-sound{
      margin-left:auto;
    }

    /* Desktop only: start O / E series from the left edge, not from centered spacer */
    @media (min-width: 901px){
      .ks-series-scroll[data-series="O"] > .ks-series-spacer:first-child,
      .ks-series-scroll[data-series="E"] > .ks-series-spacer:first-child{
        flex-basis:0 !important;
        width:0 !important;
      }

      .ks-series-scroll[data-series="O"] > .ks-series-spacer:last-child,
      .ks-series-scroll[data-series="E"] > .ks-series-spacer:last-child{
        flex-basis:24px !important;
      }
    }

    /* Karelisen card image: slightly taller frame + image lifted upward */
    #project-karelisen-e60-535d .ks-build-media{
      aspect-ratio:5 / 4;
    }
    #project-karelisen-e60-535d .ks-build-media img{
      object-position:50% 72%;
    }


    /* Desktop only: force identical media window size for all cards */
    @media (min-width: 901px){
      .ks-build-media{
        aspect-ratio:auto;
        height:312px;
      }
    }

    /* Karelisen card: same window size, only a small crop adjustment */
    #project-karelisen-e60-535d .ks-build-media img{
      object-position:50% 60%;
    }
