/*
  Carrd artist drawer styles.
  This file is loaded by artiststaketwo.html; edit colours and layout here.
*/
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Russo+One&display=swap');

/* Booyah Artist Widget styles */
    .booyah-artist-widget, 
    .booyah-artist-widget *, 
    .booyah-artist-widget *::before, 
    .booyah-artist-widget *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    .booyah-artist-widget {
      --accent: #4a90d9;
      --accent-drk: #2c6fad;
      --accent-lt: #ddeeff;
      --soft-pink: #c8dff5;
      --warm-cream: #f0f7ff;
      --card-bg: #f7fbff;
      --text-main: #1a2e3a;
      --text-muted: #5a7a9a;

      font-family: 'Nunito', sans-serif;
      background: transparent;
      padding: 2rem 1rem;
      color: var(--text-main);
    }

    .controls {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      justify-content: center;
      margin-bottom: 1.2rem;
    }

    .search-wrap {
      width: 100%;
      max-width: 360px;
      position: relative;
    }

    .search-wrap input {
      width: 100%;
      padding: 10px 16px 10px 40px;
      border-radius: 50px;
      border: 4px solid #fff;
      font-family: 'Nunito', sans-serif;
      font-size: 0.95rem;
      outline: none;
      background: transparent;
      color: #fff;
      transition: border-color 0.2s;
    }

    .search-wrap input::placeholder { color: rgba(255,255,255,0.6); }
    .search-wrap input:focus { border-color: #fff; }

    .search-icon {
      position: absolute;
      left: 13px;
      top: 50%;
      transform: translateY(-50%);
      font-size: 16px;
      pointer-events: none;
    }

    .filter-bar {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      justify-content: center;
      margin-bottom: 1.8rem;
    }

    .filter-btn {
      font-family: 'Russo One', sans-serif;
      font-size: 0.65rem;
      padding: 5px 13px;
      border-radius: 50px;
      border: 2px solid #fff;
      background: transparent;
      color: #fff;
      cursor: pointer;
      transition: background 0.15s, color 0.15s, transform 0.1s;
    }

    .filter-btn:hover { background: rgba(255,255,255,0.15); transform: scale(1.05); }
    .filter-btn.active { background: #fff; color: #000; }

    .trading-toggle {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 0.9rem;
      font-weight: 600;
      color: #fff;
      cursor: pointer;
      user-select: none;
    }

    .toggle-box {
      width: 44px; height: 24px;
      background: #ccc;
      border-radius: 50px;
      position: relative;
      transition: background 0.2s;
      flex-shrink: 0;
      border: 2px solid #000;
    }

    .toggle-box::after {
      content: '';
      position: absolute;
      width: 16px; height: 16px;
      background: #fff;
      border-radius: 50%;
      top: 2px; left: 2px;
      transition: left 0.2s;
    }

    .toggle-box.on { background: #000; }
    .toggle-box.on::after { left: 22px; }

    .grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
      gap: 16px;
    }

    .artist-card {
      background: #fff;
      border-radius: 16px;
      border: 4px solid #000;
      overflow: hidden;
      cursor: pointer;
      pointer-events: auto;
      transition: transform 0.2s ease, box-shadow 0.2s ease;
      text-decoration: none;
      display: block;
      animation: fadeIn 0.3s ease both;
      will-change: transform;
    }

    .artist-card:hover {
      transform: scale(1.06) !important;
      box-shadow: 0 10px 28px rgba(0,0,0,0.2);
    }

    .card-img {
      width: 100%;
      aspect-ratio: 1;
      object-fit: cover;
      display: block;
      background: var(--accent-lt);
    }

    .card-body {
      padding: 10px 12px;
    }

    .card-name {
      font-family: 'Russo One', sans-serif;
      font-size: 0.9rem;
      color: var(--text-main);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .card-meta {
      display: flex;
      align-items: center;
      gap: 5px;
      margin-top: 4px;
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--text-muted);
    }

    .trade-dot {
      width: 8px; height: 8px;
      border-radius: 50%;
      flex-shrink: 0;
    }

    .trade-dot.yes { background: #7ec8a0; }
    .trade-dot.no { background: #d4a0b0; }

    @keyframes fadeIn {
      from { opacity: 0; transform: translateY(8px); }
      to { opacity: 1; transform: translateY(0); }
    }

    @media (max-width: 480px) {
      .grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
      .section-title { font-size: 1.8rem; }
      .empty-msg { font-size: 1.6rem; }
    }

    /* -------------------------------------------------------------
       DRAWER, BACKDROP & LIGHTBOX CSS
       ------------------------------------------------------------- */
    .backdrop {
      position: fixed;
      inset: 0;
      background: rgba(8,8,14,0.72);
      backdrop-filter: blur(5px);
      opacity: 0;
      pointer-events: none;
      transition: opacity .28s ease;
      z-index: 100;
    }

    .backdrop.open {
      opacity: 1;
      pointer-events: auto;
    }

    .drawer, .lightbox {
      --bg-panel: #2b2b35;
      --bg-panel-hover: #353545;
      --purple-light: #7c5fd4;
      --accent-gold: #ffd54f;
      --drawer-text: #f5f5f7;
      --drawer-muted: #a8a8b8;
      --border: rgba(255,255,255,0.08);
      --shadow: 0 12px 40px rgba(0,0,0,0.45);
      --radius: 16px;
      --radius-sm: 12px;
      
      font-family: 'Nunito', sans-serif;
    }

    /* Mobile & Base: bottom drawer opens entirely */
    .drawer {
      position: fixed;
      top: auto;
      bottom: 0;
      left: 0;
      right: 0;
      width: 100vw;
      height: 94vh;
      max-height: 94dvh;
      background: linear-gradient(180deg, #323242 0%, var(--bg-panel) 120px);
      border-top: 1px solid var(--border);
      border-radius: 24px 24px 0 0;
      box-shadow: 0 -12px 60px rgba(0,0,0,0.7);
      transform: translateY(105%);
      transition: transform .32s cubic-bezier(.4,0,.2,1);
      z-index: 101;
      display: flex;
      flex-direction: column;
      color: var(--drawer-text);
    }

    .drawer.open { transform: translateY(0); }

    /* Draggable header styling */
    .drawer-header {
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      padding: 1.6rem 1.4rem 1.1rem;
      border-bottom: 1px solid var(--border);
      cursor: grab;
      user-select: none;
      position: relative;
    }

    .drawer-header::before {
      content: "";
      position: absolute;
      top: 9px;
      left: 50%;
      transform: translateX(-50%);
      width: 44px;
      height: 5px;
      border-radius: 999px;
      background: rgba(255,255,255,0.3);
    }

    .drawer-header:active {
      cursor: grabbing;
    }

    .drawer-artist-info {
      display: flex;
      align-items: center;
      gap: 1rem;
      min-width: 0;
    }

    .drawer-avatar {
      width: 68px;
      height: 68px;
      border-radius: 14px;
      object-fit: cover;
      border: 2px solid var(--border);
      flex-shrink: 0;
      box-shadow: 0 4px 16px rgba(0,0,0,0.3);
      pointer-events: none;
    }

    .drawer-meta { flex: 1; min-width: 0; }

    .drawer-meta h2 {
      font-size: 1.85rem;
      font-weight: 800;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      line-height: 1.15;
      color: #fff;
      user-select: none;
    }

    /* Check Artist Profile Button */
    .profile-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: .5rem 1.1rem;
      border-radius: 999px;
      background: rgba(124, 95, 212, 0.2);
      border: 1px solid rgba(124, 95, 212, 0.45);
      color: var(--accent-gold);
      font-size: .84rem;
      font-weight: 700;
      text-decoration: none;
      white-space: nowrap;
      transition: all .2s ease;
      box-shadow: 0 4px 14px rgba(124,95,212,0.15);
    }

    .profile-btn:hover {
      background: rgba(124, 95, 212, 0.4);
      border-color: var(--purple-light);
      transform: translateY(-1px);
      color: #fff;
      box-shadow: 0 6px 20px rgba(124,95,212,0.35);
    }

    .profile-btn svg { width: 14px; height: 14px; }

    .drawer-body {
      flex: 1;
      overflow-y: auto;
      padding: 1.6rem 1.4rem 2rem;
      overscroll-behavior: contain;
      position: relative;
    }

    /* Shown only while an artist's cards are loading after their drawer opens. */
    .drawer-loading {
      position: absolute;
      inset: 0;
      z-index: 20;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: .9rem;
      background: var(--bg-panel);
      transition: opacity .2s ease;
    }

    .drawer-loading.is-hidden {
      opacity: 0;
      pointer-events: none;
    }

    .drawer-loading img {
      width: 72px;
      height: 72px;
      object-fit: contain;
      animation: booyah-loader-bounce 1s ease-in-out infinite;
    }

    .drawer-loading span {
      color: var(--accent-gold);
      font-size: .82rem;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
    }

    @keyframes booyah-loader-bounce {
      50% { transform: scale(1.1) rotate(4deg); }
    }

    .coming-soon-block {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 4rem 1.5rem;
      border-radius: var(--radius);
      background: rgba(255,255,255,0.02);
      border: 1px dashed rgba(255,255,255,0.12);
      margin-top: 1.5rem;
    }

    .coming-soon-badge {
      font-size: 1.7rem;
      font-weight: 900;
      color: var(--accent-gold);
      letter-spacing: .04em;
      text-transform: uppercase;
      margin-bottom: .5rem;
      text-shadow: 0 0 24px rgba(255,213,79,0.3);
    }

    .coming-soon-text {
      font-size: .9rem;
      color: var(--drawer-muted);
      max-width: 340px;
      line-height: 1.5;
    }

    .volume-block + .volume-block {
      margin-top: 1.75rem;
      padding-top: .5rem;
    }

    .volume-divider {
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      margin-bottom: 1.1rem;
      font-size: .84rem;
      font-weight: 800;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--accent-gold);
    }

    .card-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
      gap: 12px;
    }

    .card-slot {
      position: relative;
      aspect-ratio: 0.73 / 1;
      border-radius: 10px;
      overflow: hidden;
      background: #1e1e28;
      border: 1px solid var(--border);
      cursor: zoom-in;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .card-slot:hover {
      transform: translateY(-4px) scale(1.03);
      box-shadow: 0 12px 28px rgba(0,0,0,0.45);
      z-index: 1;
    }

    .card-slot img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .card-slot.is-missing {
      opacity: .35;
      cursor: default;
      pointer-events: none;
    }

    /* Lightbox overlay with navigation arrows */
    .lightbox {
      position: fixed;
      inset: 0;
      z-index: 200;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 1.5rem;
      background: rgba(0,0,0,0.88);
      backdrop-filter: blur(8px);
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s ease;
      user-select: none;
    }

    .lightbox.open {
      opacity: 1;
      pointer-events: auto;
    }

    .lightbox-content-wrap {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      max-width: 100%;
    }

    .lightbox img {
      max-width: min(500px, 86vw);
      max-height: 82vh;
      border-radius: 16px;
      box-shadow: 0 24px 75px rgba(0,0,0,0.85);
      transition: transform .22s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.2s ease;
    }

    .lightbox-nav-btn {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 48px;
      height: 48px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.2);
      background: rgba(20,20,30,0.75);
      color: var(--drawer-text);
      cursor: pointer;
      display: grid;
      place-items: center;
      transition: background .2s, border-color .2s, transform .2s;
      z-index: 210;
      backdrop-filter: blur(6px);
    }

    .lightbox-nav-btn:hover {
      background: rgba(124, 95, 212, 0.7);
      border-color: var(--purple-light);
      transform: translateY(-50%) scale(1.1);
      color: #fff;
    }

    .lightbox-nav-btn.prev { left: -64px; }
    .lightbox-nav-btn.next { right: -64px; }

    .lightbox-counter {
      margin-top: 1rem;
      font-size: .85rem;
      font-weight: 700;
      color: var(--accent-gold);
      letter-spacing: .05em;
      background: rgba(0,0,0,0.5);
      padding: 4px 12px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,0.1);
    }

    .lightbox-close {
      position: absolute;
      top: 1.25rem;
      right: 1.25rem;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.2);
      background: rgba(255,255,255,0.1);
      color: #fff;
      cursor: pointer;
      font-size: 1.4rem;
      line-height: 1;
      display: grid;
      place-items: center;
      transition: background .2s;
    }

    .lightbox-close:hover { background: rgba(255,255,255,0.25); }

    /* DRM Protection Overlay / Blur & Drag Prevention rules */
    #booyah-artists-embed .card-slot,
    #booyah-artists-embed .lightbox,
    #booyah-artists-embed .lightbox-content-wrap,
    #booyah-artists-embed img {
      -webkit-touch-callout: none !important;
      -webkit-user-select: none !important;
      -khtml-user-select: none !important;
      -moz-user-select: none !important;
      -ms-user-select: none !important;
      user-select: none !important;
    }

    .card-slot img, .lightbox img {
      -webkit-user-drag: none !important;
      -khtml-user-drag: none !important;
      -moz-user-drag: none !important;
      -o-user-drag: none !important;
      user-drag: none !important;
      pointer-events: none !important;
    }

    .card-shield {
      position: absolute;
      inset: 0;
      z-index: 10;
      background: transparent;
      pointer-events: auto;
    }

    /* DESKTOP MODIFICATIONS */
    @media (min-width: 601px) {
      .drawer {
        left: 50%;
        right: auto;
        width: min(880px, 94vw);
        border-left: 1px solid var(--border);
        border-right: 1px solid var(--border);
        transform: translate(-50%, 105%);
      }

      .drawer.open { transform: translate(-50%, 0); }

      .drawer-header {
        padding-left: 1.75rem;
        padding-right: 1.75rem;
      }

      .drawer-body {
        padding-left: 1.75rem;
        padding-right: 1.75rem;
      }

      .card-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 18px;
      }

      .lightbox img {
        max-width: min(640px, 85vw);
        max-height: 86vh;
      }
    }

    @media (max-width: 600px) {
      .card-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
      }

      .drawer-header {
        flex-wrap: wrap;
      }

      .profile-btn {
        order: 3;
        width: 100%;
        justify-content: center;
        margin-top: .5rem;
      }

      .lightbox-nav-btn.prev { left: 10px; }
      .lightbox-nav-btn.next { right: 10px; }
    }
