    .casecard {
      padding:15px;
      border-radius:10px;
      background:#b4e2ff;
      margin:20px;
    }
    .backlnk {
      font-size:2em;
      display:block;
    }
    .imgthumb {
      width:200px;
      height:200px;
      background-color:grey;
      background-size:contain;
      background-repeat: no-repeat;
      background-position:center;
      display:inline-block;
      margin:10px;
      cursor:pointer;
    }
    .lp-galdiv {
      background:#808080;
      padding:10px;
      border-radius:10px;
    }
    /* ── Full-viewport image modal ── */
    #imgmodal {
      display:none;
      position:fixed;
      inset:0;
      background:rgba(0,0,0,0.88);
      z-index:9000;
      justify-content:flex-start;
      align-items:center;
      flex-direction:column;
      overflow-y:auto;
    }
    #imgmodal-inner {
      position:relative;
      max-width:92vw;
      width:100%;
      margin:40px auto;
      text-align:center;
      color:#ffffff;
    }
    #imgmodal-close,
    #imgmodal-download {
      position:fixed;
      right:20px;
      width:44px;
      height:44px;
      background:rgba(255,255,255,0.15);
      border:none;
      border-radius:4px;
      color:#ffffff;
      font-size:1.6em;
      line-height:44px;
      text-align:center;
      text-decoration:none;
      cursor:pointer;
      z-index:1001;
      display:block;
      box-sizing:border-box;
    }
    #imgmodal-close        { top:16px; }
    #imgmodal-download     { top:68px; } /* 16px + 44px + 8px gap */
    #imgmodal-close:hover,
    #imgmodal-download:hover { background:rgba(255,255,255,0.30); color:#ffffff; }
    #imgmodal-img {
      max-width:100%;
      max-height:80vh;
      display:block;
      margin:0 auto 16px;
      border-radius:4px;
    }
    #imgmodal-name {
      font-size:1.2em;
      font-weight:bold;
      margin:0 0 8px;
    }
    #imgmodal-desc {
      font-size:1em;
      white-space:pre-wrap;
      text-align:left;
      max-width:700px;
      margin:0 auto 40px;
    }
