/* Mini license shell + variant modifiers for shop previews (sync with viewer-profile.html). */
    .scc-mini-license-wrap {
      width: 100%;
      margin-bottom: 8px;
      position: relative;
      aspect-ratio: 900 / 570;
      overflow: hidden;
    }
    .scc-mini-license-scale {
      position: absolute;
      left: 50%;
      top: 0;
      width: 900px;
      height: 570px;
      transform: translateX(-50%) scale(0.4);
      transform-origin: top center;
    }
    @supports (container-type: inline-size) {
      .scc-mini-license-wrap {
        container-type: inline-size;
      }
      .scc-mini-license-scale {
        transform: translateX(-50%) scale(min(1, calc(100cqw / 900px)));
      }
    }
    .scc-mini-license {
      width: 900px;
      height: 570px;
      border-radius: 18px;
      background: linear-gradient(135deg, #0c1426, #060b16);
      border: 1px solid rgba(255,255,255,0.1);
      position: relative;
      overflow: hidden;
      box-shadow: 0 30px 80px rgba(0,0,0,0.6);
      display: flex;
      flex-direction: column;
    }
    .scc-mini-license::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.05) 30%, rgba(34,211,238,.08) 45%, rgba(139,92,246,.10) 55%, transparent 70%);
      pointer-events: none;
    }
    .scc-mini-header { height: 60px; flex-shrink: 0; padding: 0 20px; border-bottom: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 3; }
    .scc-mini-main { height: calc(100% - 60px); display: flex; position: relative; z-index: 3; }
    .scc-mini-license > .scc-mini-main { flex: 1; min-height: 0; height: auto !important; }
    .scc-mini-photo { width: 260px; flex-shrink: 0; padding: 20px; display: flex; flex-direction: column; gap: 14px; }
    .scc-mini-photo-box { width: 220px; height: 220px; align-self: center; border-radius: 50%; overflow: hidden; border: 1px solid rgba(255,255,255,.1); background: #0f172a; flex-shrink: 0; }
    .scc-mini-photo-box img { width: 100%; height: 100%; object-fit: cover; }
    .scc-mini-badges-block { margin-top: auto; }
    .scc-mini-badges { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
    .scc-mini-badge { width: 60px; height: 60px; border-radius: 12px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.05); display: flex; align-items: center; justify-content: center; overflow: hidden; }
    .scc-mini-badge img { width: 100%; height: 100%; object-fit: contain; }
    .scc-mini-info { flex: 1 1 0%; padding: 10px; display: flex; flex-direction: column; gap: 10px; min-width: 0; overflow: visible; }
    .scc-mini-name { font-size: 30px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .scc-mini-role { font-size: 12px; color: #22c55e; text-transform: uppercase; letter-spacing: 1px; }
    .scc-mini-grid { display: grid; grid-template-columns: 120px 1fr; gap: 8px; font-size: 13px; }
    .scc-mini-label { color: #9ca3af; }
    .scc-mini-value { font-weight: 700; }
    .scc-mini-value.code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; color: #c4b5fd; }
    .scc-mini-stats-block { margin-top: 6px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.08); }
    .scc-mini-stats-title { font-size: 11px; letter-spacing: 1px; color: #9ca3af; text-transform: uppercase; margin-bottom: 6px; }
    /* License cosmetic modifiers â€” each finish reads distinctly (additive on .scc-profile-license / .scc-mini-license; z-index 2 under content). */
    /* Holo: slow rotating conic spectrum (card â€œrainbowâ€) */
    .scc-profile-license.is-holo::after,
    .scc-mini-license.is-holo::after {
      content: "";
      position: absolute;
      inset: -45%;
      z-index: 2;
      pointer-events: none;
      background: conic-gradient(
        from 200deg at 50% 45%,
        transparent 0deg,
        rgba(0, 255, 200, 0.11) 55deg,
        rgba(255, 80, 220, 0.12) 130deg,
        rgba(120, 200, 255, 0.14) 210deg,
        rgba(255, 220, 120, 0.08) 280deg,
        transparent 340deg
      );
      mix-blend-mode: screen;
      opacity: 0.85;
      animation: scc-license-holo-spin 20s linear infinite;
    }
    /* Foil: vertical silver band sweeps horizontally */
    .scc-profile-license.is-foil::after,
    .scc-mini-license.is-foil::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 2;
      pointer-events: none;
      background: linear-gradient(
        90deg,
        transparent 0%,
        transparent 40%,
        rgba(255, 255, 255, 0.06) 46%,
        rgba(255, 255, 255, 0.38) 50%,
        rgba(255, 255, 255, 0.06) 54%,
        transparent 60%,
        transparent 100%
      );
      background-size: 260% 100%;
      animation: scc-license-foil-sweep 3.8s ease-in-out infinite alternate;
    }
    .scc-profile-license.is-rare-foil,
    .scc-mini-license.is-rare-foil {
      border-color: rgba(251, 191, 36, 0.42);
      box-shadow: 0 30px 90px rgba(251, 191, 36, 0.18), 0 0 0 1px rgba(251, 191, 36, 0.38) inset;
    }
    /* Rare foil: warm diagonal gold beam (not the same motion as foil) */
    .scc-profile-license.is-rare-foil::after,
    .scc-mini-license.is-rare-foil::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 2;
      pointer-events: none;
      background: linear-gradient(
        128deg,
        transparent 30%,
        rgba(255, 200, 100, 0.12) 44%,
        rgba(255, 230, 160, 0.42) 49.5%,
        rgba(255, 180, 60, 0.5) 50.5%,
        rgba(255, 230, 160, 0.38) 52%,
        transparent 66%
      );
      background-size: 180% 180%;
      mix-blend-mode: screen;
      animation: scc-license-rare-gold-shift 6s ease-in-out infinite;
    }
    /* Prismatic: saturated traveling patch + hue cycle */
    .scc-profile-license.is-prismatic::after,
    .scc-mini-license.is-prismatic::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 2;
      pointer-events: none;
      background: linear-gradient(
        125deg,
        rgba(255, 0, 140, 0.12),
        rgba(0, 220, 255, 0.14),
        rgba(180, 255, 80, 0.11),
        rgba(160, 100, 255, 0.13)
      );
      background-size: 320% 320%;
      mix-blend-mode: screen;
      animation: scc-license-prism-flow 9s ease-in-out infinite;
    }
    /* Aurora: drifting mist bands (background-position), not prism */
    .scc-profile-license.is-aurora::before,
    .scc-mini-license.is-aurora::before {
      z-index: 2;
      opacity: 0.88;
      background: radial-gradient(ellipse 120% 80% at 20% 30%, rgba(34, 211, 238, 0.22), transparent 55%),
        radial-gradient(ellipse 100% 70% at 85% 70%, rgba(139, 92, 246, 0.2), transparent 50%),
        radial-gradient(ellipse 90% 60% at 50% 100%, rgba(52, 211, 153, 0.16), transparent 45%) !important;
      background-size: 180% 180%, 160% 160%, 200% 200% !important;
      animation: scc-license-aurora-drift 24s ease-in-out infinite !important;
    }
    .scc-profile-license.is-gold,
    .scc-mini-license.is-gold {
      border-color: rgba(251, 191, 36, 0.5);
      box-shadow: 0 28px 70px rgba(40, 25, 0, 0.45), 0 0 0 1px rgba(251, 191, 36, 0.32) inset,
        inset 0 1px 0 rgba(255, 248, 220, 0.12);
    }
    /* Gold: single sharp highlight travels (metallic), separate from rare foilâ€™s warm wash */
    .scc-profile-license.is-gold::after,
    .scc-mini-license.is-gold::after {
      content: "";
      position: absolute;
      inset: -25%;
      z-index: 2;
      pointer-events: none;
      background: linear-gradient(
        102deg,
        transparent 44%,
        rgba(255, 252, 235, 0.15) 49.2%,
        rgba(255, 215, 120, 0.55) 50%,
        rgba(255, 252, 235, 0.15) 50.8%,
        transparent 56%
      );
      mix-blend-mode: screen;
      animation: scc-license-gold-gleam 7s ease-in-out infinite;
    }
    /* Corrupted: chroma tear layer (::before) + heavy CRT static (::after) + aggressive card glitch */
    .scc-profile-license.is-corrupted,
    .scc-mini-license.is-corrupted {
      animation: scc-license-corrupt-body 1.15s step-end infinite;
      border-color: rgba(34, 197, 94, 0.35);
      box-shadow: 0 20px 50px rgba(0, 0, 0, 0.65), inset 0 0 0 1px rgba(239, 68, 68, 0.35),
        inset 0 0 24px rgba(255, 0, 100, 0.08);
    }
    .scc-profile-license.is-corrupted::before,
    .scc-mini-license.is-corrupted::before {
      z-index: 1;
      opacity: 1 !important;
      mix-blend-mode: hard-light;
      background: repeating-linear-gradient(
          90deg,
          rgba(255, 0, 90, 0) 0px,
          rgba(255, 0, 90, 0) 11px,
          rgba(255, 0, 90, 0.22) 11px,
          rgba(255, 0, 90, 0.22) 12px
        ),
        repeating-linear-gradient(
          -88deg,
          rgba(0, 255, 220, 0) 0px,
          rgba(0, 255, 220, 0) 15px,
          rgba(0, 255, 220, 0.18) 15px,
          rgba(0, 255, 220, 0.18) 16px
        ),
        linear-gradient(105deg, transparent 15%, rgba(255, 255, 255, 0.07) 48%, transparent 82%) !important;
      background-size: 36px 100%, 48px 100%, 120% 100%;
      animation: scc-license-corrupt-rgb-drift 0.95s linear infinite;
    }
    .scc-profile-license.is-corrupted::after,
    .scc-mini-license.is-corrupted::after {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      z-index: 2;
      pointer-events: none;
      opacity: 0.72;
      mix-blend-mode: overlay;
      background-image: repeating-linear-gradient(
          0deg,
          rgba(0, 0, 0, 0),
          rgba(0, 0, 0, 0) 1px,
          rgba(0, 0, 0, 0.62) 1px,
          rgba(0, 0, 0, 0.62) 2px,
          rgba(0, 0, 0, 0) 2px,
          rgba(0, 0, 0, 0) 4px
        ),
        repeating-linear-gradient(
          90deg,
          transparent 0px,
          transparent 6px,
          rgba(255, 255, 255, 0.11) 6px,
          rgba(255, 255, 255, 0.11) 7px,
          transparent 7px,
          transparent 14px,
          rgba(0, 0, 0, 0.35) 14px,
          rgba(0, 0, 0, 0.35) 15px
        );
      background-size: 100% 4px, 21px 100%;
      animation: scc-license-corrupt-static 1.05s linear infinite;
    }
    /* Certified: seal + fine hatch + calm pulse (not foil sweep, not holo spin) */
    .scc-profile-license.is-premium-certified::after,
    .scc-mini-license.is-premium-certified::after {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: 18px;
      z-index: 2;
      pointer-events: none;
      box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.45) inset, 0 0 48px rgba(56, 189, 248, 0.12) inset;
      background: repeating-linear-gradient(
          -42deg,
          transparent,
          transparent 7px,
          rgba(120, 200, 255, 0.055) 7px,
          rgba(120, 200, 255, 0.055) 8px
        )
        border-box;
      animation: scc-license-certified-pulse 3.2s ease-in-out infinite;
    }
    @keyframes scc-license-holo-spin {
      from {
        transform: rotate(0deg);
      }
      to {
        transform: rotate(360deg);
      }
    }
    @keyframes scc-license-foil-sweep {
      0% {
        background-position: 92% 0;
        opacity: 0.55;
      }
      100% {
        background-position: 8% 0;
        opacity: 0.98;
      }
    }
    @keyframes scc-license-rare-gold-shift {
      0%,
      100% {
        background-position: 0% 0%;
        opacity: 0.75;
      }
      50% {
        background-position: 100% 40%;
        opacity: 1;
      }
    }
    @keyframes scc-license-prism-flow {
      0%,
      100% {
        background-position: 0% 40%;
        filter: hue-rotate(0deg) saturate(1.15);
      }
      50% {
        background-position: 100% 60%;
        filter: hue-rotate(180deg) saturate(1.35);
      }
    }
    @keyframes scc-license-aurora-drift {
      0%,
      100% {
        background-position: 0% 30%, 100% 60%, 50% 100%;
        opacity: 0.78;
      }
      33% {
        background-position: 80% 10%, 20% 80%, 90% 40%;
        opacity: 0.95;
      }
      66% {
        background-position: 30% 70%, 70% 20%, 10% 90%;
        opacity: 0.88;
      }
    }
    @keyframes scc-license-gold-gleam {
      0%,
      100% {
        transform: translate(-14%, -10%) rotate(2deg);
        opacity: 0.35;
      }
      50% {
        transform: translate(16%, 8%) rotate(2deg);
        opacity: 0.95;
      }
    }
    @keyframes scc-license-corrupt-static {
      0% {
        background-position: 0 0, 0 0;
        opacity: 0.62;
      }
      17% {
        background-position: 0 22px, 18px 0;
        opacity: 0.78;
      }
      49% {
        background-position: 0 56px, 52px 0;
        opacity: 0.55;
      }
      71% {
        background-position: 0 12px, -12px 0;
        opacity: 0.85;
      }
      100% {
        background-position: 0 72px, 63px 0;
        opacity: 0.68;
      }
    }
    @keyframes scc-license-corrupt-rgb-drift {
      0% {
        background-position: 0 0, 0 0, 0% 0%;
      }
      100% {
        background-position: 72px 0, -56px 0, 40% 20%;
      }
    }
    @keyframes scc-license-corrupt-body {
      0%,
      100% {
        transform: translate(0, 0) skew(0deg);
        filter: none;
      }
      8% {
        transform: translate(-4px, 2px) skew(-0.8deg);
        filter: contrast(1.22) hue-rotate(14deg) saturate(1.35);
      }
      9% {
        transform: translate(5px, -3px) skew(1deg);
        filter: contrast(0.82) hue-rotate(-28deg) saturate(1.5) brightness(1.08);
      }
      10% {
        transform: translate(-2px, 1px);
        filter: invert(0.07) contrast(1.1);
      }
      11% {
        transform: translate(0, 0);
        filter: none;
      }
      35% {
        transform: translate(1px, 0);
        filter: brightness(1.06);
      }
      36% {
        transform: translate(-5px, 2px) skewX(-2deg);
        filter: contrast(1.18) brightness(0.9);
      }
      37% {
        transform: translate(3px, -2px) skewX(1.5deg);
        filter: hue-rotate(90deg) saturate(1.4);
      }
      38% {
        transform: translate(0, 0) skew(0deg);
        filter: none;
      }
      62% {
        transform: skewY(0.6deg);
        filter: contrast(1.08);
      }
      63% {
        transform: skewY(-1deg) translate(2px, -1px);
        filter: contrast(0.9) hue-rotate(-40deg);
      }
      64% {
        transform: none;
        filter: none;
      }
      78% {
        transform: translate(-3px, 0);
        filter: drop-shadow(2px 0 0 rgba(255, 0, 100, 0.35)) drop-shadow(-2px 0 0 rgba(0, 255, 220, 0.28));
      }
      79% {
        transform: translate(4px, 1px);
        filter: drop-shadow(-3px 0 0 rgba(255, 0, 100, 0.4)) drop-shadow(3px 0 0 rgba(0, 200, 255, 0.32));
      }
      80% {
        transform: translate(0, 0);
        filter: none;
      }
    }
    @keyframes scc-license-certified-pulse {
      0%,
      100% {
        opacity: 0.92;
        box-shadow: 0 0 0 1px rgba(120, 200, 255, 0.42) inset, 0 0 40px rgba(56, 189, 248, 0.1) inset;
      }
      50% {
        opacity: 1;
        box-shadow: 0 0 0 2px rgba(120, 220, 255, 0.55) inset, 0 0 56px rgba(56, 189, 248, 0.16) inset;
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .scc-profile-license.is-holo::after,
      .scc-mini-license.is-holo::after,
      .scc-profile-license.is-foil::after,
      .scc-mini-license.is-foil::after,
      .scc-profile-license.is-rare-foil::after,
      .scc-mini-license.is-rare-foil::after,
      .scc-profile-license.is-prismatic::after,
      .scc-mini-license.is-prismatic::after,
      .scc-profile-license.is-aurora::before,
      .scc-mini-license.is-aurora::before,
      .scc-profile-license.is-gold::after,
      .scc-mini-license.is-gold::after,
      .scc-profile-license.is-corrupted::before,
      .scc-mini-license.is-corrupted::before,
      .scc-profile-license.is-corrupted::after,
      .scc-mini-license.is-corrupted::after,
      .scc-profile-license.is-premium-certified::after,
      .scc-mini-license.is-premium-certified::after {
        animation: none !important;
      }
      .scc-profile-license.is-corrupted,
      .scc-mini-license.is-corrupted {
        animation: none !important;
        transform: none !important;
        filter: none !important;
      }
    }

.scc-license-shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-top: 12px; }
.scc-license-shop-card { border-radius: 12px; border: 1px solid rgba(120,200,255,0.25); background: rgba(0,0,0,0.2); padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.scc-license-shop-card h3 { margin: 0; font-size: 1rem; }
.scc-license-shop-preview { width: 100%; position: relative; aspect-ratio: 900 / 570; overflow: hidden; border-radius: 10px; }
.scc-license-shop-preview .scc-mini-license-scale { transform: translateX(-50%) scale(0.22); }
