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

  :root {
    --red:  var(--in-accent, #e92038);
    --red2: var(--in-accent-2, #c8102e);
    --bg:   var(--in-bg, #020202);
    --hud:  var(--inlab-hud-h, 85px);
    --top:  52px;
    --sf:   var(--in-font-display, 'Steelfish', sans-serif);
    --pp:   var(--in-font-body, 'Poppins', sans-serif);
  }

  html, body {
    width: 100%; height: 100%;
    overflow: hidden;
    background: var(--bg);
    font-family: var(--pp);
    color: #fff;
    user-select: none;
  }

  #scanlines {
    position: fixed; inset: 0;
    background: repeating-linear-gradient(0deg, transparent 0px, transparent 3px, rgba(0,0,0,.05) 3px, rgba(0,0,0,.05) 4px);
    pointer-events: none; z-index: 5;
  }

  /* ── INTRO SCREEN ── */
  #pbIntro {
    position: fixed; top: var(--top); left: 0; right: 0; bottom: var(--hud);
    z-index: 35;
    background:
      radial-gradient(ellipse at 50% 45%, rgba(0,0,0,.55) 0%, rgba(0,0,0,.88) 60%, rgba(2,2,2,.96) 100%),
      url('../images/freewall-intro-bg.webp') center/cover no-repeat,
      #020202;
    animation: pbIntroBreath 18s ease-in-out infinite;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: 3rem 2rem 2rem;
    transition: opacity .7s ease, visibility .7s ease;
    overflow-y: auto;
  }
  @keyframes pbIntroBreath {
    0%, 100% { background-size: auto, 108% auto, auto; background-position: center, 50% 50%, center; }
    50%      { background-size: auto, 114% auto, auto; background-position: center, 52% 48%, center; }
  }
  #pbIntro.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
  #pbIntro::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: repeating-linear-gradient(0deg, rgba(255,255,255,.012) 0px 1px, transparent 1px 3px);
    mix-blend-mode: overlay; opacity: .6; z-index: 0;
  }
  #pbIntro > * { position: relative; z-index: 1; }

  @keyframes nmiDot { 0%,100%{opacity:.25} 50%{opacity:1} }

  /* ── CANVAS VIEWPORT ── */
  #pbViewport {
    position: fixed;
    top: var(--top); left: 0; right: 0; bottom: var(--hud);
    overflow: hidden;
    background: #030303;
    z-index: 1;
    cursor: crosshair;
    display: block;
  }
  #pbViewport::-webkit-scrollbar { width: 4px; height: 4px; }
  #pbViewport::-webkit-scrollbar-track { background: #070707; }
  #pbViewport::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); }
  #pbViewport::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.22); }

  #pbCanvasWrap {
    position: relative;
    display: block;
    line-height: 0;
    min-width: 100%;
    min-height: 100%;
  }
  #gridCanvas { display: block; image-rendering: pixelated; image-rendering: crisp-edges; }

  /* ── SOL NAV PAD ── */
  #pbNavPad {
    position: fixed; left: 16px; bottom: calc(var(--hud) + 16px);
    z-index: 180; display: flex; flex-direction: row; align-items: center; gap: 8px;
    user-select: none;
    background: rgba(14,14,16,.55);
    backdrop-filter: blur(16px) saturate(160%);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 3px; padding: 8px;
    box-shadow: 0 14px 40px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06);
  }
  /* D-pad */
  .navpad-dpad {
    display: grid;
    grid-template-columns: repeat(3, 24px);
    grid-template-rows: repeat(3, 24px);
    gap: 2px;
  }
  .navpad-dpad .nav-up     { grid-column: 2; grid-row: 1; }
  .navpad-dpad .nav-left   { grid-column: 1; grid-row: 2; }
  .navpad-dpad .nav-center { grid-column: 2; grid-row: 2; }
  .navpad-dpad .nav-right  { grid-column: 3; grid-row: 2; }
  .navpad-dpad .nav-down   { grid-column: 2; grid-row: 3; }
  #pbNavPad::before { content: none; }
  .navpad-sep {
    width: 1px; align-self: stretch; margin: 2px 0;
    background: rgba(255,255,255,.12);
  }
  .navpad-zoom {
    display: flex; flex-direction: column; align-items: center; gap: 2px;
  }
  .navpad-zoom-lvl {
    font-family: var(--pp); font-size: .42rem; letter-spacing: .03em;
    color: rgba(255,255,255,.65); padding: 1px 0; min-width: 30px; text-align: center;
  }
  .navpad-btn {
    width: 24px; height: 24px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.04); color: rgba(255,255,255,.78);
    border: 1px solid rgba(255,255,255,.08); border-radius: 2px;
    cursor: pointer; font-size: .58rem;
    transition: background .15s, color .15s, border-color .15s, transform .08s;
  }
  .navpad-btn:hover  { background: var(--red); color: #fff; border-color: var(--red); }
  .navpad-btn:active { transform: scale(.9); }
  .navpad-fit { color: rgba(255,255,255,.5); font-size: .52rem; }
  @media(max-width:700px) {
    #pbNavPad { left: 8px; transform: scale(.92); transform-origin: bottom left; }
  }
  #pbIntro:not(.hidden) ~ #pbNavPad { opacity: 0; visibility: hidden; pointer-events: none; }
  @media (pointer: coarse) {
    #pbNavPad { transform: none; padding: 6px; gap: 6px; }
    .navpad-dpad { grid-template-columns: repeat(3, 44px); grid-template-rows: repeat(3, 44px); }
    .navpad-btn { width: 44px; height: 44px; font-size: .8rem; }
    .navpad-btn:hover { background: rgba(255,255,255,.04); color: rgba(255,255,255,.78); border-color: rgba(255,255,255,.08); }
    .navpad-btn:active { background: var(--red); color: #fff; border-color: var(--red); }
  }

  /* ── HUD ── */
  #pbHud {
    position: fixed; bottom: 0; left: 0; right: 0; height: var(--hud);
    display: grid; grid-template-columns: auto 1fr auto;
    align-items: stretch;
    padding: 0 clamp(.7rem, 1.8vw, 1.8rem);
    background: linear-gradient(180deg, rgba(8,8,8,.99) 0%, rgba(2,2,2,1) 100%);
    border-top: 1px solid rgba(255,255,255,.08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
    backdrop-filter: blur(10px);
    z-index: 9100;
  }
  #pbHud::before, #pbHud::after { content: none; }

  .hud-seg.seg-zoom { min-width: 110px; border-left: 1px solid rgba(255,255,255,.06); }
  #btnZoomFit { margin-left: 2px; }
  #hudProgFill { width: 0; }
  .zoom-hud-row {
    display: flex; align-items: center; gap: 2px;
  }
  .zoom-hud-btn {
    width: 26px; height: 26px;
    background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09);
    color: rgba(255,255,255,.45); cursor: pointer; font-size: .55rem;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s, color .15s, border-color .15s;
    flex-shrink: 0;
  }
  .zoom-hud-btn:hover { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.22); }
  .zoom-hud-btn:active { background: rgba(233,32,56,.15); color: var(--red); }
  .zoom-hud-level {
    font-family: var(--sf); font-size: .82rem; color: rgba(255,255,255,.5);
    min-width: 38px; text-align: center; letter-spacing: .02em;
  }

  #hudClaimBtn {
    border-color: rgba(233,32,56,.5);
    background: rgba(233,32,56,.14);
    color: var(--red);
  }
  #hudClaimBtn:hover { background: var(--red); color: #fff; border-color: var(--red); }
  #hudClaimBtn i { font-size: .88rem; }

  /* Info */
  #hudInfoBtn {
    border-color: rgba(233,32,56,.35);
    background: rgba(233,32,56,.07);
    color: var(--red);
  }
  #hudInfoBtn:hover { background: var(--red); color: #fff; border-color: var(--red); }

  @media(max-width:960px) { .hud-seg.seg-zoom { display: none; } }
  @media(max-width:860px) { .hud-seg.seg-progress { display: none; } }
  @media(max-width:640px) { .hud-seg:nth-child(n+3) { display: none; } .nm-btn-lbl { display: none; } }

  /* ── SELECTION OVERLAY ── */
  #selectionRect {
    position: absolute; pointer-events: none; z-index: 10;
    border: 2px solid var(--red);
    background: rgba(233,32,56,.12);
    display: none;
    box-shadow: 0 0 0 1px rgba(233,32,56,.25), inset 0 0 0 1px rgba(233,32,56,.1);
  }

  #pbCursorPicker {
    position: fixed; z-index: 9000; pointer-events: none; display: none;
    border: 2px solid var(--red);
    background: rgba(233,32,56,.15);
    box-shadow: 0 0 0 1px rgba(0,0,0,.4), 0 0 8px rgba(233,32,56,.35);
  }

  /* ── "MESAJ EKLE" FLOATING ACTION BUTTON ── */
  #pbSelActionBar {
    position: fixed;
    z-index: 8000;
    display: none;
    flex-direction: column;
    gap: 4px;
    pointer-events: auto;
  }
  #pbSelActionBar.show { display: flex; }

  .sel-action-btn {
    display: inline-flex; align-items: center; gap: .55rem;
    padding: .6rem 1.2rem;
    font-family: var(--pp); font-size: .46rem; letter-spacing: .2em; text-transform: uppercase;
    cursor: pointer; white-space: nowrap;
    transition: background .18s, border-color .18s, color .18s;
    border: 1px solid;
  }
  .sel-action-btn.primary {
    background: var(--red); border-color: var(--red); color: #fff;
  }
  .sel-action-btn.primary:hover { background: var(--red2); border-color: var(--red2); }
  .sel-action-btn.secondary {
    background: rgba(4,4,4,.9); border-color: rgba(255,255,255,.18); color: rgba(255,255,255,.7);
    backdrop-filter: blur(10px);
  }
  .sel-action-btn.secondary:hover { border-color: rgba(255,255,255,.4); color: #fff; }
  .sel-action-btn i { font-size: .65rem; }

  .sel-size-badge {
    font-family: var(--sf); font-size: .9rem; letter-spacing: .04em;
    background: rgba(233,32,56,.12); border: 1px solid rgba(233,32,56,.3);
    color: var(--red); padding: .25rem .7rem;
    text-align: center;
  }

  /* ── TOOLTIP ── */
  #pbTooltip, #pbPixelPopup {
    background: #0e0e0e;
    border: 1px solid rgba(255,255,255,.13);
    box-shadow: 0 12px 40px rgba(0,0,0,.7);
  }
  /* ── E-MANTIĞI ── */
  #pbHiBox {
    position: fixed; z-index: 290; pointer-events: none;
    border: 2px solid var(--red); border-radius: 0;
    box-shadow: 0 0 0 1px rgba(0,0,0,.4),
                0 0 18px rgba(233,32,56,.55),
                inset 0 0 14px rgba(233,32,56,.25);
    opacity: 0; transform: scale(1.18); transform-origin: center;
    transition: opacity .14s ease, transform .22s cubic-bezier(.16,1,.3,1),
                left .12s ease, top .12s ease, width .12s ease, height .12s ease;
  }
  #pbHiBox.show { opacity: 1; transform: scale(1); }
  #pbHiBox::before, #pbHiBox::after {
    content: ''; position: absolute; width: 8px; height: 8px;
    border: 2px solid #fff;
  }
  #pbHiBox::before { top: -2px; left: -2px; border-right: none; border-bottom: none; }
  #pbHiBox::after  { bottom: -2px; right: -2px; border-left: none; border-top: none; }

  /* ── BILGI ETİKETİ ── */
  #pbTooltip {
    position: fixed; z-index: 300; padding: 0;
    pointer-events: none; opacity: 0;
    width: 230px; max-width: calc(100vw - 2rem);
    background: linear-gradient(160deg, rgba(22,22,26,.62), rgba(10,10,12,.7));
    backdrop-filter: blur(22px) saturate(160%);
    -webkit-backdrop-filter: blur(22px) saturate(160%);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 3px; overflow: hidden;
    box-shadow: 0 16px 50px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.08);
    transform: scale(.97); transform-origin: top left;
    transition: opacity .14s ease, transform .18s cubic-bezier(.16,1,.3,1);
  }
  #pbTooltip.show { opacity: 1; transform: scale(1); pointer-events: auto; }
  #pbTooltip .tt-scan {
    position: absolute; top: 0; left: 0; height: 2px; width: 100%;
    background: linear-gradient(90deg, transparent, var(--red), transparent);
    opacity: .9; transform: translateX(-100%);
  }
  #pbTooltip.show .tt-scan { animation: ttScan 1.6s ease-in-out infinite; }
  @keyframes ttScan { 0%{ transform: translateX(-100%); } 60%,100%{ transform: translateX(100%); } }
  #pbTooltip .tt-visual {
    position: relative; width: 100%; aspect-ratio: 1 / 1;
    background: #050505; overflow: hidden;
    display: none; align-items: center; justify-content: center;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
  #pbTooltip .tt-visual.has-img { display: flex; }
  #pbTooltip .tt-visual img {
    width: 100%; height: 100%; object-fit: cover; image-rendering: pixelated;
    display: none;
  }
  #pbTooltip .tt-visual.has-img img { display: block; }
  #pbTooltip .tt-body { padding: .9rem 1.05rem .95rem; display: flex; flex-direction: column; gap: .45rem; }
  #pbTooltip .pc-name {
    font-family: var(--pp); font-weight: 700; font-size: .78rem; letter-spacing: .01em;
    color: #fff; line-height: 1.15; margin: 0; word-break: break-word;
  }
  #pbTooltip .tt-owner {
    font-family: var(--pp); font-size: .6rem; letter-spacing: .02em;
    color: rgba(255,255,255,.74); line-height: 1.5; word-break: break-word;
  }
  #pbTooltip .tt-owner:empty { display: none; }
  #pbTooltip .tt-link {
    pointer-events: auto; cursor: pointer; text-decoration: none;
    display: inline-flex; align-items: center; gap: .5rem;
    font-family: var(--pp); font-size: .6rem; letter-spacing: .03em;
    color: var(--red); margin-top: .2rem;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    transition: color .2s;
  }
  #pbTooltip .tt-link i { font-size: .62rem; flex-shrink: 0; }
  #pbTooltip .tt-link:hover { color: #fff; }
  #pbTooltip .tt-link span { overflow: hidden; text-overflow: ellipsis; }
  #pbTooltip .tt-link.is-hidden { display: none; }
  #pbTooltip .tt-link.is-text { color: rgba(255,255,255,.5); cursor: default; pointer-events: none; }
  #pbTooltip .tt-link.is-text i { display: none; }
  #pbTooltip .pc-meta {
    border: none; padding: .4rem 0 0; margin: .2rem 0 0; font-size: .48rem;
    color: rgba(255,255,255,.32); border-top: 1px solid rgba(255,255,255,.07);
  }
  .pc-img-wrap { width: 100%; overflow: hidden; border-bottom: 1px solid rgba(255,255,255,.07); display: none; background: #050505; }
  .pc-img { width: 100%; display: block; object-fit: contain; background: #050505; }
  .pc-body { padding: .9rem 1.1rem; }
  .pc-eyebrow { font-family: var(--pp); font-size: .42rem; letter-spacing: .35em; text-transform: uppercase; color: var(--red); margin-bottom: .28rem; }
  .pc-name { font-family: var(--sf); font-size: 1.25rem; text-transform: uppercase; letter-spacing: -.01em; color: #fff; line-height: 1.1; margin-bottom: .4rem; }
  .pc-msg  { font-family: var(--pp); font-size: .54rem; color: rgba(255,255,255,.65); line-height: 1.6; margin-bottom: .5rem; }
  .pc-meta { font-family: var(--pp); font-size: .38rem; letter-spacing: .1em; color: rgba(255,255,255,.2); display: flex; gap: .5rem; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.06); padding-top: .45rem; margin-top: .2rem; }
  .pc-link-btn {
    display: inline-flex; align-items: center; gap: .45rem;
    padding: .55rem 1rem; width: 100%; margin-top: .55rem;
    font-family: var(--pp); font-size: .44rem; letter-spacing: .15em; text-transform: uppercase;
    color: #fff; border: 1px solid rgba(233,32,56,.4); background: rgba(233,32,56,.1);
    cursor: pointer; justify-content: center; transition: background .2s, border-color .2s;
  }
  .pc-link-btn:hover { background: var(--red); border-color: var(--red); }
  .pc-link-btn.is-hidden { display: none; }
  .pc-link-btn.is-text { cursor: default; color: rgba(255,255,255,.5); background: none; border-color: rgba(255,255,255,.08); text-transform: none; letter-spacing: .03em; }
  .pc-link-btn.is-text i { display: none; }

  /* ── PIXEL DETAIL POPUP ── */
  #pbPixelPopup {
    position: fixed; z-index: 600; width: 300px; max-width: calc(100vw - 2rem);
    transform: translateY(8px); opacity: 0; visibility: hidden;
    transition: transform .25s cubic-bezier(.22,1,.36,1), opacity .25s, visibility .25s;
    pointer-events: none;
  }
  #pbPixelPopup.open { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; }
  .pp-close {
    background: none; border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.3);
    cursor: pointer; font-size: .8rem; width: 28px; height: 28px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; transition: color .15s, border-color .15s;
    position: absolute; top: .6rem; right: .6rem;
  }
  .pp-close:hover { color: #fff; border-color: rgba(255,255,255,.3); }

  /* ── INFO MODAL ── */
  #pbInfoModal {
    position: fixed; inset: 0; z-index: 9200;
    display: flex; align-items: center; justify-content: center;
    background: rgba(0,0,0,.82); backdrop-filter: blur(10px);
    opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
  }
  #pbInfoModal.open { opacity: 1; visibility: visible; }
  .pb-info-panel {
    background: #0c0c0c; border: 1px solid rgba(255,255,255,.1);
    max-width: 620px; width: calc(100% - 2rem);
    padding: 2.6rem 2.8rem; position: relative; max-height: 88vh; overflow-y: auto;
  }
  .pb-info-panel::-webkit-scrollbar { width: 4px; }
  .pb-info-panel::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); }
  .pb-info-panel h3 { font-family: var(--sf); font-size: 1.75rem; text-transform: uppercase; letter-spacing: .04em; color: #fff; margin-bottom: 1.4rem; }
  .pb-info-panel h3 em { font-style: normal; color: var(--red); }
  .pb-info-close { position: absolute; top: 1rem; right: 1rem; background: none; border: none; color: rgba(255,255,255,.36); font-size: 1rem; cursor: pointer; padding: .35rem .55rem; transition: color .2s; }
  .pb-info-close:hover { color: #fff; }
  .pb-info-row { display: flex; align-items: flex-start; gap: .9rem; padding: .65rem 0; border-bottom: 1px solid rgba(255,255,255,.06); }
  .pb-info-row:last-child { border-bottom: none; }
  .pb-info-row .icon { font-size: 1.05rem; flex-shrink: 0; margin-top: .04rem; }
  .pb-info-row-body strong { display: block; font-family: var(--pp); font-size: .54rem; letter-spacing: .12em; text-transform: uppercase; color: #fff; margin-bottom: .18rem; }
  .pb-info-row-body span { font-family: var(--pp); font-size: .5rem; color: rgba(255,255,255,.44); line-height: 1.65; }
  .pb-info-row.highlight-row {
    padding: .9rem; margin-top: .6rem;
    background: linear-gradient(135deg, rgba(233,32,56,.1) 0%, rgba(180,10,30,.06) 100%);
    border: 1px solid rgba(233,32,56,.28);
    animation: hlGlow 3s ease-in-out infinite;
  }
  @keyframes hlGlow { 0%,100%{border-color:rgba(233,32,56,.28);box-shadow:none} 50%{border-color:rgba(233,32,56,.55);box-shadow:0 0 16px rgba(233,32,56,.12)} }
  .pb-info-row.highlight-row .icon { font-size: 1.4rem; }
  .pb-info-row.highlight-row strong { font-size: .58rem; color: var(--red) !important; }
  .pb-info-row.highlight-row span   { font-size: .52rem; color: rgba(255,255,255,.6) !important; }

  /* ── ARCHIVE MODAL ── */
  #pbArchiveModal {
    position: fixed; inset: 0; z-index: 9200;
    display: flex; align-items: center; justify-content: center;
    background: rgba(0,0,0,.9); backdrop-filter: blur(14px);
    opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s;
    padding: 1rem;
  }
  #pbArchiveModal.open { opacity: 1; visibility: visible; }
  .pb-archive-box {
    background: #090909; border: 1px solid rgba(255,255,255,.1);
    width: 100%; max-width: 960px; max-height: 92vh;
    overflow: hidden; position: relative;
    display: flex; flex-direction: column;
  }
  .pb-archive-head {
    padding: 1.6rem 2rem 1.2rem;
    border-bottom: 1px solid rgba(255,255,255,.07);
    display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
    flex-shrink: 0;
    background: linear-gradient(135deg, rgba(233,32,56,.07) 0%, transparent 60%);
  }
  .pb-archive-eyebrow { font-family: var(--pp); font-size: .44rem; letter-spacing: .45em; text-transform: uppercase; color: var(--red); margin-bottom: .4rem; }
  .pb-archive-title { font-family: var(--sf); font-size: 1.7rem; text-transform: uppercase; letter-spacing: -.02em; color: #fff; }
  .pb-archive-title em { font-style: normal; color: var(--red); }
  .pb-archive-close {
    background: none; border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.35);
    cursor: pointer; font-size: .9rem; width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; transition: color .2s, border-color .2s;
  }
  .pb-archive-close:hover { color: #fff; border-color: rgba(255,255,255,.35); }
  .pb-archive-content { flex: 1; overflow-y: auto; padding: 1.5rem 2rem 2rem; }
  .pb-archive-content::-webkit-scrollbar { width: 3px; }
  .pb-archive-content::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); }
  .pb-archive-panel { display: none; }
  .pb-archive-panel.active { display: block; }
  .pb-mypixel-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .7rem; }
  .pb-mypixel-card {
    background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07);
    cursor: pointer; transition: border-color .2s, background .2s; overflow: hidden;
  }
  .pb-mypixel-card:hover { border-color: rgba(233,32,56,.35); background: rgba(233,32,56,.04); }
  .pb-mypixel-swatch { width: 100%; height: 56px; display: flex; align-items: center; justify-content: center; font-family: var(--sf); font-size: .8rem; overflow: hidden; }
  .pb-mypixel-info { padding: .55rem .7rem; }
  .pb-mypixel-name { font-family: var(--sf); font-size: .85rem; text-transform: uppercase; color: #fff; letter-spacing: .02em; margin-bottom: .2rem; }
  .pb-mypixel-meta { font-family: var(--pp); font-size: .38rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.3); }
  .pb-mypixel-meta em { font-style: normal; color: rgba(233,32,56,.7); }
  .pb-archive-empty { font-family: var(--pp); font-size: .52rem; color: rgba(255,255,255,.25); text-align: center; padding: 3rem; letter-spacing: .08em; display: none; }
  .pb-archive-empty.show { display: block; }

  /* ── CLAIM MODAL ── */
  #pbModalBackdrop[hidden] { display: none; }
  .in-modal.fw-modal { max-width: 610px; max-height: 90vh; padding: 0; background: #0c0c0c; border-radius: 0; }
  .fw-modal h2.pb-modal__title { margin: 0; font-size: 1.3rem; font-weight: 700; line-height: 1.15; color: #fff; }
  .pb-modal__head { padding: 1rem 3.6rem .85rem 1.2rem; border-bottom: 1px solid rgba(255,255,255,.07); display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
  .pb-modal__eyebrow { font-family: var(--pp); font-size: .44rem; letter-spacing: .5em; text-transform: uppercase; color: var(--red); margin-bottom: .45rem; }
  .pb-modal__title { font-family: var(--sf); font-size: 1.3rem; text-transform: uppercase; letter-spacing: -.02em; line-height: 1.15; color: #fff; }
  .pb-modal__body { padding: .95rem 1.2rem; display: flex; flex-direction: column; gap: .8rem; }
  .pb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; align-items: start; }
  @media(max-width:600px) { .pb-grid { grid-template-columns: 1fr; } }
  .pb-preview-col, .pb-form-col { display: flex; flex-direction: column; gap: .7rem; }
  .pb-preview-col { background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07); border-radius: 8px; padding: .9rem; align-items: flex-start; }
  .pb-step { font-family: var(--pp); font-size: .42rem; letter-spacing: .35em; text-transform: uppercase; color: var(--red); align-self: flex-start; }
  .pb-form-col .pb-step { margin-bottom: .1rem; }
  .pb-preview-block { width: 100%; aspect-ratio: 1/1; max-width: 140px; align-self: center; display: flex; align-items: center; justify-content: center; font-family: var(--sf); font-size: 1.1rem; text-align: center; overflow: hidden; word-break: break-all; padding: 8px; transition: background .2s; }
  .pb-preview-info { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: .35rem; }
  .pb-preview-badge { font-family: var(--pp); font-size: .46rem; letter-spacing: .15em; color: rgba(255,255,255,.4); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); padding: .25rem .6rem; display: inline-block; border-radius: 4px; }
  .pb-field { display: flex; flex-direction: column; gap: .35rem; }
  .pb-label { font-family: var(--pp); font-size: .46rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.3); }
  .pb-label span { color: var(--red); }
  .pb-label .pb-opt { opacity: .4; }
  .pb-label--gap { margin-top: .6rem; }
  .pb-preview-badge--mono { font-family: monospace; }
  .pb-input, .pb-select { background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.12); border-radius: 8px; color: #fff; font-family: var(--pp); font-size: .72rem; padding: .6rem .7rem; outline: none; width: 100%; transition: border-color .25s, background .25s; }
  .pb-input:focus, .pb-select:focus { border-color: var(--red); background: rgba(233,32,56,.04); }
  .pb-input::placeholder { color: rgba(255,255,255,.18); }
  #inputMsg { padding-top: .85rem; padding-bottom: .85rem; }
  .pb-select { cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,.3)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 4px center; padding-right: 20px; }
  .pb-select option { background: #111; }
  .pb-colors { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: flex-start; align-self: stretch; }
  .pb-swatch { width: 26px; height: 26px; border: 2px solid transparent; cursor: pointer; transition: border-color .2s, transform .15s; flex-shrink: 0; }
  .pb-swatch:hover { transform: scale(1.15); }
  .pb-swatch.active { border-color: #fff; }
  .pb-color-custom { width: 26px; height: 26px; border: 1px solid rgba(255,255,255,.2); cursor: pointer; background: #1a1a1a; overflow: hidden; position: relative; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
  .pb-color-custom input[type="color"] { position: absolute; inset: -4px; width: calc(100% + 8px); height: calc(100% + 8px); border: none; padding: 0; cursor: pointer; opacity: 0; }
  .pb-color-custom i { font-size: .5rem; color: rgba(255,255,255,.4); pointer-events: none; }
  .pb-upload-area { border: 1px dashed rgba(255,255,255,.1); padding: 1.2rem; text-align: center; cursor: pointer; transition: border-color .25s; position: relative; overflow: hidden; }
  .pb-upload-area:hover { border-color: rgba(255,255,255,.3); }
  .pb-upload-area input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
  .pb-upload-text { font-family: var(--pp); font-size: .5rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.22); pointer-events: none; }
  .pb-upload-text i { display: block; font-size: 1.1rem; margin-bottom: .4rem; color: rgba(255,255,255,.15); }
  #uploadPreview { width: 100%; max-height: 90px; object-fit: cover; display: none; margin-top: .5rem; }
  #uploadPreview.is-shown { display: block; }
  .pb-upload-text.is-hidden { display: none; }
  .pb-field-row { display: flex; gap: 1.2rem; align-items: flex-start; }
  .pb-field-row .pb-field { flex: 1; }
  @media(max-width:560px) { .pb-field-row { flex-direction: column; } }
  .pb-field-error { font-family: var(--pp); font-size: .44rem; color: var(--red); display: none; padding-top: .3rem; letter-spacing: .05em; }
  .pb-field-error.show { display: block; }
  .pb-submit-wrap { border-top: 1px solid rgba(255,255,255,.06); padding: .95rem 1.4rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
  .pb-submit-note { font-family: var(--pp); font-size: .42rem; letter-spacing: .06em; color: rgba(255,255,255,.15); max-width: 190px; line-height: 1.7; }
  .pb-submit-btn { background: var(--red); border: none; color: #fff; font-family: var(--pp); font-weight: 700; font-size: .8rem; letter-spacing: .06em; padding: .9rem 1.9rem; cursor: pointer; transition: background .25s; display: inline-flex; align-items: center; gap: .55rem; white-space: nowrap; border-radius: 8px; }
  .pb-submit-btn:hover { background: #c8102e; }
  .pb-submit-btn:disabled { background: rgba(255,255,255,.08); color: rgba(255,255,255,.2); cursor: default; }
  .pb-success { padding: 3rem 2rem; text-align: center; display: none; flex-direction: column; align-items: center; gap: 1.2rem; }
  .pb-success.show { display: flex; }
  .pb-success__icon { font-size: 2.2rem; color: var(--red); }
  .pb-success__title { font-family: var(--sf); font-size: 1.8rem; text-transform: uppercase; letter-spacing: -.02em; color: #fff; }
  .pb-success__sub { font-family: var(--pp); font-size: .62rem; color: rgba(255,255,255,.35); line-height: 1.8; max-width: 300px; }
  .pb-success__btn { background: none; border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.4); font-family: var(--pp); font-size: .5rem; letter-spacing: .2em; text-transform: uppercase; padding: .7rem 1.5rem; cursor: pointer; transition: border-color .3s, color .3s; margin-top: .5rem; }
  .pb-success__btn:hover { border-color: var(--red); color: #fff; }

  /* LOADING */
  #pbLoading { position: fixed; inset: 0; z-index: 1000; background: var(--bg); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 1.5rem; transition: opacity .6s ease; }
  #pbLoading.done { opacity: 0; pointer-events: none; }
  .pb-loading-title { font-family: var(--sf); font-size: clamp(2rem, 6vw, 4.5rem); text-transform: uppercase; letter-spacing: -.03em; color: #fff; }
  .pb-loading-title em { font-style: normal; color: var(--red); }
  .pb-loading-bar { width: 200px; height: 2px; background: rgba(255,255,255,.06); position: relative; overflow: hidden; }
  .pb-loading-fill { position: absolute; left: 0; top: 0; bottom: 0; background: var(--red); width: 0%; transition: width .4s ease; }
  .pb-loading-text { font-family: var(--pp); font-size: .46rem; letter-spacing: .32em; text-transform: uppercase; color: rgba(255,255,255,.2); }

  