  * { margin: 0; padding: 0; box-sizing: border-box; }
  body { background: #ffffff; color: #1a1916; font-family: sans-serif; overflow: hidden; }
  #container { display: flex; height: 100vh; }
  body.has-pair-banner #container { margin-top: 48px; height: calc(100vh - 48px); }
  @media (min-width: 1025px) { body.has-pair-banner #panel { top: 48px !important; } }
  body.has-pair-banner #priceBar { top: 48px !important; }
  #viewer { flex: 1; position: relative; min-width: 0; }
  #canvas { display: block; width: 100%; height: 100%; }
  #fadeOverlay {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: #ffffff; opacity: 0; pointer-events: none;
    transition: opacity 0.15s ease;
  }
  #loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: 14px; color: #999; }

  h1 { font-size: 15px; margin-bottom: 16px; color: #1a1916; }
  .section { margin-bottom: 20px; }
  .section h2 { font-size: 12px; color: #5a5750; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.05em; }
.section h2 .tt-badge { text-transform:none !important; letter-spacing:0 !important; color:#c9a84c !important; font-size:10px !important; }
  .btn-group { display: flex; flex-wrap: wrap; gap: 6px; }
  .btn {
    padding: 7px 12px; border: 1px solid #e0ddd6; background: #fff;
    color: #1a1916; border-radius: 4px; cursor: pointer; font-size: 12px;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    -webkit-tap-highlight-color: transparent;
  }
  .btn:hover, .btn.active { background: #2b5fd4; border-color: #2b5fd4; color: #fff; }
  select {
    width: 100%; padding: 8px 12px; border: 1px solid #e0ddd6;
    background: #fff; color: #1a1916; border-radius: 4px; font-size: 13px;
    cursor: pointer; appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235a5750' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center;
  }
  select:focus { outline: none; border-color: #2b5fd4; }
  .part-section { background: #ffffff; border: 1px solid #e0ddd6; border-radius: 6px; padding: 12px; margin-bottom: 10px; }
  .part-section h3 { font-size: 11px; color: #9a9590; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }
  #priceBox { margin-top: 16px; padding: 14px; background: #fff; border: 1px solid #e0ddd6; border-radius: 6px; }
  #priceBox h2 { font-size: 12px; color: #5a5750; margin-bottom: 10px; text-transform: uppercase; }
  #priceBar {
    position: fixed; top: 0; left: 0; right: 0; z-index: 999;
    background: rgba(255,255,255,0.75); backdrop-filter: blur(10px);
    padding: 8px 16px; display: none;
    border-bottom: 1px solid rgba(224,221,214,0.6);
  }
  @media (min-width: 768px) {
    #priceBar {
      right: 320px;
    }
  }
  #priceBar .pb-date { font-size: 11px; color: #5a5750; }
  #priceBar .pb-price { font-size: 13px; font-weight: normal; color: #9a9590; }
  .price-row { display: flex; justify-content: space-between; font-size: 12px; color: #5a5750; margin-bottom: 4px; }
  .price-row.total { font-size: 9px; font-weight: bold; color: #1a1916; margin-top: 8px; padding-top: 8px; border-top: 1px solid #e0ddd6; }
  #metalsBar { font-size: 12px; color: #5a5750; margin-bottom: 16px; padding: 8px 0; border-bottom: 1px solid #e0ddd6; }

  @media (min-width: 1025px) {
    #panel { width: 300px; background: #ffffff; padding: 20px; overflow-y: auto; border-left: 1px solid #e0ddd6; flex-shrink: 0; }
  }
  @media (max-width: 1024px) {
    #container { flex-direction: column; height: 100dvh; position: relative; }
    #viewer { flex: 1 1 0; min-height: 0; width: 100%; }
    #canvas { width: 100% !important; height: 100% !important; }
    #drawerBtn {
      display: flex; align-items: center; justify-content: center; gap: 6px;
      position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);
      background: #2b5fd4; color: #fff; border: none; border-radius: 24px;
      padding: 12px 28px; font-size: 14px; font-weight: bold;
      cursor: pointer; z-index: 100;
      box-shadow: 0 4px 16px rgba(43,95,212,0.35);
      transition: opacity 0.2s;
      -webkit-tap-highlight-color: transparent;
    }
    #drawerBtn.hidden { opacity: 0; pointer-events: none; }
    #panel {
      position: fixed; bottom: 0; left: 0; width: 100%;
      border-left: none; border-top: 1px solid rgba(224,221,214,0.6);
      padding: 0; overflow-y: auto; max-height: 50dvh;
      background: rgba(255,255,255,0.72);
      border-radius: 16px 16px 0 0;
      box-shadow: 0 -4px 24px rgba(0,0,0,0.12);
      transform: translateY(100%);
      transition: transform 0.3s cubic-bezier(0.32,0.72,0,1);
      z-index: 200;
    }
    #panel.open { transform: translateY(0); }
    #panelInner { padding: 16px 16px 32px; }
    #closeBtn {
      display: flex; align-items: center; justify-content: center; gap: 4px;
      width: 100%; padding: 12px; background: transparent; border: none;
      border-bottom: 1px solid rgba(224,221,214,0.5); border-radius: 16px 16px 0 0;
      font-size: 14px; color: #5a5750; cursor: pointer;
      -webkit-tap-highlight-color: transparent;
      position: sticky; top: 0; z-index: 2000;
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    .btn { padding: 9px 14px; font-size: 13px; min-height: 38px; }
    select { padding: 10px 12px; font-size: 14px; min-height: 40px; }
  }
  @media (min-width: 1025px) {
    #drawerBtn { display: none !important; }
    #closeBtn { display: none !important; }
    #panelInner { padding: 0; }
  }
  @media (min-width: 1025px) and (max-width: 1280px) {
  }

/* ---- animations (from inline style block 2) ---- */
    @keyframes pcFadeIn { from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);} }
    @keyframes pcGlowIn { from{opacity:0;transform:scale(0.75);}to{opacity:1;transform:scale(1);} }
    @keyframes pcPulse  { 0%,100%{transform:scale(1);opacity:.6;}50%{transform:scale(1.3);opacity:1;} }
