
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

    :root {
      --bg:      #0d1117;
      --surface: #161b22;
      --card:    #1c2128;
      --border:  #30363d;
      --accent:  #f7df1e;
      --text:    #e6edf3;
      --muted:   #8b949e;
      --radius:  14px;
    }

    body {
      font-family: 'Outfit', sans-serif;
      background: var(--bg);
      color: var(--text);
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

    .wrapper {
      width: 100%;
      max-width: 560px;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }

    .header .tag {
      font-family: 'Space Mono', monospace;
      font-size: 0.62rem;
      color: var(--accent);
      letter-spacing: 0.18em;
      text-transform: uppercase;
      display: block;
      margin-bottom: 6px;
    }
    .header h1 { font-size: 1.5rem; font-weight: 700; }

    /* ── GALLERY CARD ── */
    .gallery-card {
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      overflow: hidden;
    }

    .img-wrap {
      position: relative;
      width: 100%;
      height: 320px;
      background: var(--surface);
      overflow: hidden;
    }

    #mainImage {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: opacity 0.25s ease, transform 0.25s ease;
    }

    #mainImage.fade { opacity: 0; transform: scale(0.97); }

    /* gradient overlay for caption */
    .img-wrap::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 90px;
      background: linear-gradient(to top, rgba(0,0,0,0.72), transparent);
      pointer-events: none;
    }

    .img-caption {
      position: absolute;
      bottom: 14px; left: 18px;
      z-index: 2;
      font-size: 0.9rem;
      font-weight: 600;
      color: #fff;
    }

    /* Arrow buttons */
    .arrow-btn {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      z-index: 3;
      width: 40px; height: 40px;
      background: rgba(0,0,0,0.5);
      backdrop-filter: blur(4px);
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 50%;
      color: #fff;
      font-size: 1rem;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all 0.2s;
    }
    .arrow-btn:hover:not(:disabled) {
      background: rgba(247,223,30,0.22);
      border-color: var(--accent);
      color: var(--accent);
    }
    .arrow-btn:disabled { opacity: 0.2; cursor: not-allowed; }
    .arrow-btn.prev { left: 14px; }
    .arrow-btn.next { right: 14px; }

    /* ── BOTTOM BAR ── */
    .bottom-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 18px;
      border-top: 1px solid var(--border);
    }

    .position-text {
      font-family: 'Space Mono', monospace;
      font-size: 0.72rem;
      color: var(--muted);
    }

    .dots { display: flex; gap: 6px; }

    .dot {
      width: 7px; height: 7px;
      border-radius: 50%;
      background: var(--border);
      cursor: pointer;
      border: none;
      padding: 0;
      transition: all 0.2s;
    }
    .dot.active { background: var(--accent); transform: scale(1.35); }
    .dot:hover:not(.active) { background: var(--muted); }

    .hint {
      font-family: 'Space Mono', monospace;
      font-size: 0.62rem;
      color: var(--muted);
    }

    .kbd {
      display: inline-block;
      padding: 1px 5px;
      border: 1px solid var(--border);
      border-radius: 4px;
      font-size: 0.6rem;
    }
