
  :root{
    --dm-bg-main:#012127;
    --dm-bg-card:#0f2a30;
    --dm-accent:#00e2e2;
    --dm-text:#ffffff;
    --dm-muted:#94a3b8;
  }

  /* --- Controls (separate module) --- */
  .dm-gallery-controls-wrap{
    width:100%;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:14px;
  }

  .dm-gallery-btn{
    width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(0,226,226,.35);
    background:transparent;
    color:var(--dm-accent);
    cursor:pointer;
    transition:background .25s, color .25s, border-color .25s, transform .25s;
    padding:0;
  }

  .dm-gallery-btn:hover{
    background:var(--dm-accent);
    color:var(--dm-bg-main);
    border-color:rgba(0,226,226,.9);
    transform:translateY(-1px);
  }

  .dm-gallery-btn svg{
    width:20px;
    height:20px;
    display:block;
  }

  /* --- Carousel module --- */
  .dm-gallery{
    --per-view: 3;
    --gap: 56px;
    width:100%;
    box-sizing:border-box;
  }

  .dm-gallery *{ box-sizing:border-box; }

  .dm-gallery-viewport{
    width:100%;
    overflow:hidden;
  }

  .dm-gallery-track{
    display:flex;
    gap:var(--gap);
    will-change:transform;
    transition:transform 450ms ease;
  }

  .dm-gallery-slide{
    flex: 0 0 calc((100% - (var(--gap) * (var(--per-view) - 1))) / var(--per-view));
  }

  .dm-split{
    position:relative;
    width:100%;
    aspect-ratio: 4 / 3;
    background:#000;
    overflow:hidden;
  }

  .dm-split-inner{
    position:absolute;
    inset:0;
    display:flex;
  }

  .dm-half{
    width:50%;
    position:relative;
    overflow:hidden;
  }

  .dm-half + .dm-half{
    border-left:1px solid rgba(255,255,255,.35);
  }

  .dm-half img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }

  .dm-before img{
    filter:grayscale(1);
    opacity:.75;
  }

  .dm-tag{
    position:absolute;
    top:14px;
    left:14px;
    padding:6px 10px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
    z-index:2;
  }

  .dm-tag-before{
    background:rgba(0,0,0,.55);
    color:#fff;
  }

  .dm-tag-after{
    right:14px;
    left:auto;
    background:var(--dm-accent);
    color:var(--dm-bg-main);
  }

  .dm-caption{
    margin-top:18px;
    padding-left:16px;
    border-left:2px solid var(--dm-accent);
  }

  .dm-caption h4{
    margin:0;
    color:var(--dm-text);
    font-weight:900;
    font-size:14px;
    letter-spacing:.12em;
    text-transform:uppercase;
  }

  .dm-caption p{
    margin:6px 0 0;
    color:rgba(255,255,255,.60);
    font-size:13px;
    line-height:1.55;
  }

  /* Responsive */
  @media (max-width: 980px){
    .dm-gallery{ --per-view: 2; --gap: 36px; }
  }
  @media (max-width: 767px){
    .dm-gallery{ --per-view: 1; --gap: 22px; }
  }
