
    :root{
      --bg:#f7f6f2;
      --paper:#fff;
      --ink:#1c1c1c;
      --muted:#77736b;
      --line:#ded9cf;
      --dark:#161616;
    }
    *{box-sizing:border-box}
    body{
      margin:0;
      background:var(--bg);
      color:var(--ink);
      font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
    }
    a{color:inherit;text-decoration:none}
    .site-header{
      height:86px;
      position:sticky;
      top:0;
      z-index:20;
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:0 48px;
      background:rgba(247,246,242,.9);
      backdrop-filter:blur(18px);
      border-bottom:1px solid rgba(0,0,0,.06);
    }
    .brand{display:flex;align-items:center;gap:16px}
    .brand-text{font-size:16px;letter-spacing:.34em;text-transform:uppercase;white-space:nowrap}
    .nav{display:flex;gap:24px;font-size:15px}
    .nav a{padding:8px 0;position:relative}
    .nav a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:1px;background:#111;transition:.24s}
    .nav a:hover::after{width:100%}
    .hero{
      padding:84px 48px 56px;
      max-width:1520px;
      margin:0 auto;
      display:grid;
      grid-template-columns:1fr .75fr;
      gap:56px;
      align-items:end;
    }
    .eyebrow{
      text-transform:uppercase;
      letter-spacing:.26em;
      color:var(--muted);
      font-size:13px;
      font-weight:700;
      margin-bottom:18px;
    }
    h1{
      margin:0;
      font-size:clamp(48px,7vw,96px);
      line-height:.95;
      letter-spacing:.02em;
    }
    .hero p{
      margin:24px 0 0;
      color:#4b4944;
      font-size:18px;
      line-height:1.75;
      max-width:720px;
    }
    .tabs{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      justify-content:flex-end;
    }
    .tab{
      border:1px solid var(--line);
      border-radius:999px;
      padding:11px 18px;
      background:#fff;
      cursor:pointer;
      transition:.25s;
    }
    .tab:hover,.tab.active{background:#111;color:#fff;border-color:#111}
    .masonry-wrap{
      padding:20px 48px 90px;
      max-width:1520px;
      margin:0 auto;
    }
    .masonry{
      columns:unset;
      column-gap:0;
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:22px;
      align-items:start;
    }
    .pin{
      break-inside:avoid;
      margin:0 0 22px;
      background:#fff;
      border:1px solid var(--line);
      overflow:hidden;
      cursor:pointer;
      transition:.25s ease;
    }
    .pin:hover{
      transform:translateY(-5px);
      box-shadow:0 18px 42px rgba(0,0,0,.11);
    }
    .pin-img{
      height:var(--h);
      background:var(--c);
      position:relative;
      overflow:hidden;
    }
    .pin-img::before{
      content:"";
      position:absolute;
      inset:18px;
      border:1px solid rgba(0,0,0,.16);
      background:
        linear-gradient(90deg, rgba(0,0,0,.045) 1px, transparent 1px),
        linear-gradient(rgba(0,0,0,.045) 1px, transparent 1px);
      background-size:14px 14px;
    }
    .pin-img::after{
      content:"";
      position:absolute;
      width:58%;
      height:34%;
      left:22%;
      top:30%;
      border:2px solid rgba(0,0,0,.22);
      transform:rotate(-18deg) skewX(20deg);
      background:rgba(255,255,255,.22);
    }
    .pin-body{padding:15px 16px 18px}
    .pin-body h3{margin:0 0 8px;font-size:18px;line-height:1.3}
    .pin-body p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
    .modal{
      position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:80;
      opacity:0;pointer-events:none;transition:.25s;display:grid;place-items:center;padding:24px;
    }
    .modal.open{opacity:1;pointer-events:auto}
    .modal-card{
      width:min(1040px,96vw);
      max-height:90vh;
      overflow:auto;
      background:#fff;
      display:grid;
      grid-template-columns:1.1fr .9fr;
      border-radius:28px;
    }
    .modal-img{min-height:560px;background:#e6e3dc;position:relative}
    .modal-img::before{
      content:"";position:absolute;inset:34px;border:1px solid rgba(0,0,0,.16);
      background:
        linear-gradient(90deg, rgba(0,0,0,.05) 1px, transparent 1px),
        linear-gradient(rgba(0,0,0,.05) 1px, transparent 1px);
      background-size:18px 18px;
    }
    .modal-img.has-image::before,.modal-img.has-image::after{display:none}
    .modal-img img{width:100%;height:100%;object-fit:contain;display:block;position:relative;z-index:2;background:#f7f6f2}

    .modal-copy{padding:42px}
    .modal-copy h2{font-size:42px;line-height:1.08;margin:10px 0 18px}
    .modal-copy p{line-height:1.8;color:#4d4943}
    .close{float:right;border:1px solid var(--line);background:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer}
    .footer{padding:50px 48px;border-top:1px solid rgba(0,0,0,.08);color:var(--muted)}
    @media(max-width:900px){
      .site-header{padding:18px 20px;height:auto}
      .nav{display:none}
      .hero{grid-template-columns:1fr;padding:58px 22px 36px}
      .tabs{justify-content:flex-start}
      .masonry-wrap{padding:10px 22px 70px}
      .modal-card{grid-template-columns:1fr}
      .modal-img{min-height:360px}
    }

  
    /* Unified BaoLong Lab header */
    .site-header{
      height:104px;
      position:sticky;
      top:0;
      z-index:100;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
      padding:0 48px;
      background:rgba(247,246,242,.94);
      backdrop-filter:blur(18px);
      border-bottom:1px solid rgba(0,0,0,.06);
    }
    .brand{
      display:flex;
      align-items:center;
      gap:18px;
      min-width:330px;
      color:inherit;
      text-decoration:none;
    }
    .brand-logo-img{
      width:108px !important;
      height:108px !important;
      max-width:108px !important;
      max-height:108px !important;
      object-fit:contain;
      flex:0 0 auto;
      display:block;
      background:transparent !important;
      border-radius:0 !important;
    }
    .brand-text{
      font-size:16px;
      letter-spacing:.34em;
      text-transform:uppercase;
      white-space:nowrap;
    }
    .nav{
      display:flex;
      align-items:center;
      gap:24px;
      font-size:15px;
      color:#2a2927;
      flex:1;
      justify-content:center;
    }
    .nav a{
      position:relative;
      padding:8px 0;
      white-space:nowrap;
      color:inherit;
      text-decoration:none;
    }
    .nav a::after{
      content:"";
      position:absolute;
      left:0;
      bottom:2px;
      width:0;
      height:1px;
      background:#111;
      transition:.24s ease;
    }
    .nav a:hover::after{width:100%}
    .nav-dropdown{position:relative;display:flex;align-items:center;}
    .dropdown-content{
      display:none;
      position:absolute;
      top:34px;
      left:50%;
      transform:translateX(-50%);
      min-width:210px;
      background:#fff;
      border:1px solid #ded9cf;
      border-radius:18px;
      padding:10px;
      box-shadow:0 18px 45px rgba(0,0,0,.10);
      z-index:200;
    }
    .nav-dropdown:hover .dropdown-content{display:block;}
    .dropdown-content a{
      display:block;
      padding:10px 12px;
      border-radius:12px;
      font-size:14px;
      color:#2a2927;
    }
    .dropdown-content a::after{display:none}
    .dropdown-content a:hover{background:#f7f6f2;}
    .header-actions{
      display:flex;
      align-items:center;
      gap:14px;
      min-width:260px;
      justify-content:flex-end;
    }
    .pill-btn{
      border:1px solid #ded9cf;
      border-radius:999px;
      padding:10px 18px;
      background:rgba(255,255,255,.6);
      cursor:pointer;
      transition:.25s ease;
      color:#1c1c1c;
    }
    .pill-btn:hover{
      background:#111;
      color:#fff;
      border-color:#111;
      transform:translateY(-1px);
    }
    @media (max-width:1200px){
      .site-header{padding:0 28px}
      .brand{min-width:auto}
      .brand-logo-img{width:55px !important;height:55px !important;max-width:55px !important;max-height:55px !important;}
      .nav{gap:16px;font-size:14px}
      .header-actions{min-width:auto}
    }
    @media (max-width:900px){
      .site-header{height:auto;align-items:flex-start;padding:18px 20px;flex-wrap:wrap;}
      .brand-logo-img{width:44px !important;height:44px !important;max-width:44px !important;max-height:44px !important;}
      .nav{order:3;width:100%;justify-content:flex-start;overflow-x:auto;gap:18px;padding-top:8px;}
      .header-actions{display:none}
      .dropdown-content{left:0;transform:none;}
    }


    /* Inspiration Board refinement: source-link cards, no download behavior */
    .hero .eyebrow{color:#8a8378;}
    .tabs .tab{font-size:14px;}
    .pin{
      border-radius:24px;
      background:rgba(255,255,255,.82);
      box-shadow:0 10px 30px rgba(35,32,28,.04);
      cursor:default;
    }
    .pin:hover{transform:translateY(-4px);box-shadow:0 20px 46px rgba(35,32,28,.10)}
    /* Color Board fix: keep palette images complete inside cards, no crop */
    .pin-img{border-bottom:1px solid rgba(222,217,207,.75)}
    .pin-img.has-image{height:auto !important;aspect-ratio:3 / 4;background:#f7f6f2;overflow:hidden;}
    .pin-img.has-image img{width:100%;height:100%;object-fit:contain;display:block;position:relative;z-index:2;background:#f7f6f2}
    .pin-img.has-image::before,.pin-img.has-image::after{display:none}
    .board-note{grid-column:1 / -1;}
    @media (max-width:1180px){.masonry{grid-template-columns:repeat(3,minmax(0,1fr));}}
    @media (max-width:760px){.masonry{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}}
    @media (max-width:520px){.masonry{grid-template-columns:1fr;}}
    .pin-body{padding:18px 18px 20px}
    .pin-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
    .pin-tag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid #ded9cf;border-radius:999px;padding:5px 8px;color:#6f685f;background:#faf9f6}
    .pin-body h3{font-size:19px;margin-bottom:9px;letter-spacing:.01em}
    .pin-desc{color:#5c5750;font-size:13px;line-height:1.7;margin-bottom:14px !important}
    .source-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid rgba(222,217,207,.78);padding-top:13px;margin-top:14px;color:#837b70;font-size:12px}
    .source-name{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .source-btn{border:1px solid #161616;border-radius:999px;padding:8px 12px;font-size:12px;background:#161616;color:#fff;text-decoration:none;white-space:nowrap;transition:.22s ease;}
    .source-btn:hover{transform:translateY(-1px);background:#3b3833;border-color:#3b3833}
    .source-btn.disabled{background:#f7f6f2;color:#9a9287;border-color:#ded9cf;pointer-events:none}
    .board-note{margin:28px 0 0;padding:18px 20px;border:1px solid #ded9cf;border-radius:20px;background:rgba(255,255,255,.62);color:#77736b;font-size:13px;line-height:1.75}
    .modal-card{border-radius:28px;overflow:hidden}
    .modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
    .modal-source-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:11px 16px;background:#111;color:#fff;font-size:14px;text-decoration:none}
    .modal-source-btn.disabled{background:#f1eee8;color:#9a9287;pointer-events:none}
    .modal-copy small{display:block;color:#8a8378;line-height:1.7;margin-top:18px}

  

    /* Mobile refinement: keep desktop unchanged, improve small-screen readability */
    @media (max-width:900px){
      body{
        overflow-x:hidden;
      }

      .site-header{
        height:auto !important;
        min-height:70px;
        padding:14px 16px !important;
        gap:12px;
        align-items:flex-start;
        flex-wrap:wrap;
      }

      .brand{
        min-width:0 !important;
        gap:10px;
      }

      .brand-logo-img{
        width:38px;
        height:auto;
      }

      .brand-text{
        font-size:13px !important;
        letter-spacing:.22em !important;
        white-space:nowrap;
      }

      .nav{
        display:flex !important;
        width:100%;
        gap:18px;
        overflow-x:auto;
        overflow-y:visible;
        padding:4px 0 8px;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
      }

      .nav::-webkit-scrollbar{
        display:none;
      }

      .nav a{
        font-size:14px;
        white-space:nowrap;
      }

      .nav-dropdown{
        flex:0 0 auto;
      }

      .dropdown-content{
        top:34px;
        left:0;
      }

      .header-actions{
        display:none !important;
      }

      .hero{
        min-height:auto !important;
        padding:48px 18px;
      }

      .section{
        padding:54px 18px !important;
      }

      .section-title{
        font-size:clamp(34px,11vw,54px) !important;
        line-height:1.02;
      }

      .section-desc{
        font-size:15px;
        line-height:1.75;
      }

      .tabs{
        display:flex;
        gap:10px;
        overflow-x:auto;
        flex-wrap:nowrap !important;
        justify-content:flex-start !important;
        padding-bottom:6px;
        -webkit-overflow-scrolling:touch;
      }

      .tabs::-webkit-scrollbar{
        display:none;
      }

      .tab{
        flex:0 0 auto;
        white-space:nowrap;
      }

      .masonry{
        grid-template-columns:1fr !important;
      }

      .pin{
        border-radius:24px !important;
      }

      .footer{
        display:block !important;
        padding:36px 18px !important;
        font-size:13px;
        line-height:1.7;
      }
    }



    /* Mobile horizontal scroll fix: only nav can scroll sideways, page content stays vertical */
    @media (max-width:900px){
      html,
      body{
        width:100%;
        max-width:100%;
        overflow-x:hidden !important;
      }

      body > *{
        max-width:100vw;
      }

      .site-header{
        max-width:100vw;
        overflow-x:hidden !important;
      }

      .nav{
        display:flex !important;
        width:100%;
        max-width:100%;
        min-width:0;
        overflow-x:auto !important;
        overflow-y:visible !important;
        flex-wrap:nowrap !important;
        justify-content:flex-start !important;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
      }

      .nav::-webkit-scrollbar{
        display:none;
      }

      main,
      .hero,
      .section,
      .masonry-wrap,
      .tool-band,
      .footer{
        max-width:100vw !important;
        overflow-x:hidden !important;
      }

      .masonry{
        max-width:100% !important;
      }

      img,
      video,
      canvas,
      svg{
        max-width:100%;
      }
    }



    /* Mobile dropdown menu: desktop navigation remains unchanged */
    .mobile-menu-toggle,
    .mobile-menu-panel{
      display:none;
    }

    @media (max-width:900px){
      .site-header{
        position:sticky;
        top:0;
        display:flex;
        align-items:center !important;
        justify-content:space-between;
        flex-wrap:nowrap !important;
        overflow:visible !important;
      }

      .brand{
        flex:1 1 auto;
        min-width:0 !important;
      }

      .brand-text{
        max-width:calc(100vw - 120px);
        overflow:hidden;
        text-overflow:ellipsis;
      }

      .nav,
      .header-actions{
        display:none !important;
      }

      .mobile-menu-toggle{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        flex:0 0 auto;
        border:1px solid var(--line);
        border-radius:999px;
        background:rgba(255,255,255,.76);
        padding:9px 14px;
        font-size:13px;
        color:#1c1c1c;
        cursor:pointer;
        letter-spacing:.04em;
      }

      .mobile-menu-panel{
        display:none;
        position:absolute;
        top:calc(100% + 8px);
        right:14px;
        left:14px;
        z-index:80;
        max-height:72vh;
        overflow-y:auto;
        background:rgba(255,255,255,.96);
        border:1px solid var(--line);
        border-radius:22px;
        box-shadow:0 20px 48px rgba(0,0,0,.14);
        padding:12px;
        backdrop-filter:blur(18px);
      }

      .mobile-menu-panel.open{
        display:block;
      }

      .mobile-menu-panel a{
        display:block;
        padding:12px 14px;
        border-radius:14px;
        color:#1c1c1c;
        font-size:15px;
        line-height:1.25;
      }

      .mobile-menu-panel a:hover{
        background:#f3f0e8;
      }

      .mobile-menu-group{
        margin:10px 8px 4px;
        color:var(--muted);
        font-size:11px;
        line-height:1;
        letter-spacing:.18em;
        text-transform:uppercase;
        font-weight:700;
      }

      html,
      body{
        overflow-x:hidden !important;
      }
    }


    /* Color wheel relationship filter */
    .color-filter-section{
      max-width:1520px;
      margin:0 auto;
      padding:0 48px 18px;
    }
    .color-filter-panel{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:26px;
      background:rgba(255,255,255,.68);
      box-shadow:0 10px 30px rgba(35,32,28,.04);
    }
    .color-filter-copy{
      min-width:220px;
      color:#5c5750;
      font-size:13px;
      line-height:1.65;
    }
    .color-filter-copy strong{
      display:block;
      color:#1c1c1c;
      font-size:15px;
      margin-bottom:3px;
    }
    .color-filter-tabs{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      justify-content:flex-end;
    }
    .color-filter-tab{
      border:1px solid var(--line);
      border-radius:999px;
      padding:10px 15px;
      background:#fff;
      color:#292724;
      cursor:pointer;
      font-size:13px;
      transition:.25s ease;
      white-space:nowrap;
    }
    .color-filter-tab:hover,
    .color-filter-tab.active{
      background:#111;
      color:#fff;
      border-color:#111;
      transform:translateY(-1px);
    }
    @media(max-width:900px){
      .color-filter-section{
        padding:0 18px 14px;
      }
      .color-filter-panel{
        display:block;
        padding:16px;
      }
      .color-filter-copy{
        margin-bottom:14px;
      }
      .color-filter-tabs{
        justify-content:flex-start;
        flex-wrap:nowrap;
        overflow-x:auto;
        padding-bottom:4px;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
      }
      .color-filter-tabs::-webkit-scrollbar{
        display:none;
      }
      .color-filter-tab{
        flex:0 0 auto;
      }
    }



/* v110 Color modal: centered below nav + copy color values */
.color-values-box{
  margin-top:18px;
  padding:14px 16px;
  border:1px solid rgba(222,217,207,.9);
  border-radius:18px;
  background:#faf8f4;
  color:#5f584f;
  font-size:13px;
  line-height:1.7;
  word-break:break-word;
}
.color-copy-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid #111;
  padding:11px 16px;
  background:#111;
  color:#fff;
  font-size:14px;
  cursor:pointer;
  transition:.22s ease;
}
.color-copy-btn:hover{transform:translateY(-1px);background:#3b3833;border-color:#3b3833}
.color-copy-btn.copied{background:#6f685f;border-color:#6f685f}
.modal{
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  padding:126px 24px 36px !important;
}
.modal-card{
  width:min(1120px, calc(100vw - 56px)) !important;
  height:min(680px, calc(100vh - 168px)) !important;
  max-height:calc(100vh - 168px) !important;
  margin:0 auto !important;
  overflow:hidden !important;
}
.modal-img{
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  background:#f4f1eb;
  padding:24px !important;
}
.modal-img.has-image img{
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  margin:auto !important;
}
.modal-copy{
  height:100% !important;
  overflow-y:auto !important;
}
@media (max-width:900px){
  .modal{
    align-items:center !important;
    overflow:hidden !important;
    padding:96px 14px 24px !important;
  }
  .modal-card{
    width:calc(100vw - 28px) !important;
    height:min(760px, calc(100vh - 120px)) !important;
    max-height:calc(100vh - 120px) !important;
    overflow:hidden !important;
  }
  .modal-img{
    height:50% !important;
    min-height:0 !important;
    padding:16px !important;
  }
  .modal-copy{
    height:50% !important;
    overflow-y:auto !important;
  }
}








/* v119 Color Board mobile modal: compact centered card with small palette image */
@media (max-width:900px){
  .modal{
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
    padding:84px 12px 22px !important;
  }

  .modal-card{
    width:min(92vw, 560px) !important;
    max-width:560px !important;
    height:auto !important;
    max-height:calc(100vh - 108px) !important;
    min-height:0 !important;
    margin:0 auto !important;
    border-radius:24px !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
  }

  .modal-img,
  .modal-img.has-image{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:220px !important;
    padding:16px 16px 8px !important;
    overflow:hidden !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:#f4f1eb !important;
    flex:0 0 auto !important;
  }

  .modal-img.has-image img{
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:190px !important;
    object-fit:contain !important;
    object-position:center center !important;
    display:block !important;
    margin:auto !important;
  }

}

@media (max-width:520px){
  .modal{
    padding:82px 10px 20px !important;
  }

  .modal-card{
    width:calc(100vw - 20px) !important;
    max-width:420px !important;
    max-height:calc(100vh - 102px) !important;
  }

  .modal-img,
  .modal-img.has-image{
    max-height:200px !important;
    padding:14px 14px 6px !important;
  }

  .modal-img.has-image img{
    max-height:172px !important;
  }

}


    /* Color Board JSON loading / load more */
    .load-more-wrap{
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:10px;
      margin:34px auto 0;
      text-align:center;
    }
    .load-more-btn{
      border:1px solid #111;
      border-radius:999px;
      background:#111;
      color:#fff;
      min-width:180px;
      min-height:48px;
      padding:12px 22px;
      cursor:pointer;
      transition:.25s ease;
      font-size:14px;
    }
    .load-more-btn:hover{
      transform:translateY(-2px);
      box-shadow:0 14px 34px rgba(0,0,0,.14);
    }
    .load-more-btn[hidden]{display:none;}
    .load-more-count{
      margin:0;
      color:var(--muted);
      font-size:13px;
      line-height:1.6;
    }


    /* v128 Color Extractor entry + modal: scoped to Color Board only */
    .color-tool-section{
      max-width:1520px;
      margin:0 auto;
      padding:0 48px 14px;
    }
    .color-tool-panel{
      position:relative;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:28px;
      padding:24px 26px;
      border:1px solid rgba(222,217,207,.96);
      border-radius:30px;
      background:
        radial-gradient(circle at 10% 0%, rgba(255,255,255,.98), rgba(255,255,255,0) 34%),
        linear-gradient(135deg, rgba(255,255,255,.78), rgba(250,248,243,.72));
      box-shadow:0 18px 46px rgba(35,32,28,.055);
      overflow:hidden;
    }
    .color-tool-panel::after{
      content:"";
      position:absolute;
      inset:auto 24px 18px auto;
      width:180px;
      height:180px;
      border-radius:999px;
      background:linear-gradient(135deg, rgba(223,174,161,.18), rgba(186,189,226,.16), rgba(150,144,68,.12));
      filter:blur(4px);
      opacity:.72;
      pointer-events:none;
    }
    .color-tool-copy{
      position:relative;
      z-index:2;
      display:grid;
      grid-template-columns:auto minmax(0,1fr);
      gap:18px;
      align-items:center;
    }
    .color-tool-mark{
      width:86px;
      height:86px;
      border-radius:24px;
      background:#f7f6f2;
      border:1px solid rgba(222,217,207,.92);
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:7px;
      padding:10px;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);
    }
    .color-tool-dot{
      border-radius:18px 20px 16px 22px;
      border:1px solid rgba(0,0,0,.045);
    }
    .color-tool-dot:nth-child(1){background:#374375;}
    .color-tool-dot:nth-child(2){background:#fffcf5;}
    .color-tool-dot:nth-child(3){background:#babde2;}
    .color-tool-dot:nth-child(4){background:#969044;}
    .color-tool-kicker{
      margin:0 0 7px;
      color:#8a8378;
      font-size:12px;
      line-height:1;
      letter-spacing:.16em;
      text-transform:uppercase;
      font-weight:700;
    }
    .color-tool-title{
      margin:0 0 8px;
      color:#1c1c1c;
      font-size:22px;
      line-height:1.22;
      letter-spacing:-.02em;
    }
    .color-tool-desc{
      margin:0;
      max-width:720px;
      color:#5c5750;
      font-size:14px;
      line-height:1.75;
    }
    .color-tool-actions{
      position:relative;
      z-index:2;
      display:flex;
      align-items:center;
      gap:10px;
      white-space:nowrap;
    }
    .color-tool-btn{
      border:1px solid #111;
      border-radius:999px;
      background:#111;
      color:#fff;
      min-height:48px;
      padding:0 22px;
      font-size:14px;
      cursor:pointer;
      transition:.25s ease;
    }
    .color-tool-btn:hover{
      transform:translateY(-2px);
      box-shadow:0 14px 30px rgba(0,0,0,.12);
    }
    .color-tool-note{
      color:#8a8378;
      font-size:12px;
      line-height:1.5;
    }
    html.color-extractor-scroll-lock,
    body.color-extractor-scroll-lock{
      overflow:hidden !important;
      overscroll-behavior:none;
    }
    body.color-extractor-scroll-lock{
      position:fixed !important;
      width:100% !important;
      left:0 !important;
      right:0 !important;
    }
    .color-extractor-modal{
      position:fixed;
      inset:0;
      z-index:160;
      display:grid;
      place-items:center;
      padding:120px 24px 32px;
      background:rgba(28,28,28,.42);
      backdrop-filter:blur(14px);
      opacity:0;
      pointer-events:none;
      transition:opacity .22s ease;
    }
    .color-extractor-modal.open{
      opacity:1;
      pointer-events:auto;
    }
    .color-extractor-card{
      width:min(1080px, calc(100vw - 48px));
      max-height:calc(100vh - 152px);
      overflow:hidden;
      border-radius:32px;
      background:#f7f6f2;
      border:1px solid rgba(222,217,207,.9);
      box-shadow:0 30px 90px rgba(0,0,0,.24);
      display:grid;
      grid-template-columns:.92fr 1.08fr;
    }
    .color-extractor-left{
      padding:34px;
      border-right:1px solid rgba(222,217,207,.82);
      background:
        radial-gradient(circle at 20% 8%, rgba(255,255,255,.95), rgba(255,255,255,0) 40%),
        #f2f0ea;
      min-height:560px;
      display:flex;
      flex-direction:column;
      gap:22px;
    }
    .color-extractor-head{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:18px;
    }
    .color-extractor-head h2{
      margin:6px 0 10px;
      color:#1c1c1c;
      font-size:34px;
      line-height:1.04;
      letter-spacing:-.03em;
    }
    .color-extractor-head p{
      margin:0;
      color:#5c5750;
      font-size:14px;
      line-height:1.75;
      max-width:420px;
    }
    .color-extractor-close{
      width:42px;
      height:42px;
      flex:0 0 auto;
      border:1px solid rgba(222,217,207,.9);
      border-radius:999px;
      background:rgba(255,255,255,.7);
      color:#1c1c1c;
      cursor:pointer;
      font-size:22px;
      line-height:1;
      transition:.22s ease;
    }
    .color-extractor-close:hover{
      background:#111;
      color:#fff;
      border-color:#111;
    }
    .color-upload-zone{
      position:relative;
      flex:1;
      min-height:280px;
      border:1.5px dashed #cfc8bb;
      border-radius:28px;
      background:rgba(255,255,255,.54);
      display:flex;
      align-items:center;
      justify-content:center;
      text-align:center;
      padding:30px;
      cursor:pointer;
      transition:.22s ease;
      overflow:hidden;
    }
    .color-upload-zone:hover,
    .color-upload-zone.drag-over{
      background:rgba(255,255,255,.86);
      border-color:#111;
      transform:translateY(-2px);
    }
    .color-upload-zone input{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      opacity:0;
      cursor:pointer;
    }
    .color-upload-icon{
      width:72px;
      height:72px;
      margin:0 auto 18px;
      border-radius:24px;
      background:#111;
      color:#fff;
      display:grid;
      place-items:center;
      font-size:28px;
      letter-spacing:-.04em;
    }
    .color-upload-zone strong{
      display:block;
      color:#1c1c1c;
      font-size:17px;
      margin-bottom:8px;
    }
    .color-upload-zone span{
      display:block;
      color:#8a8378;
      font-size:13px;
      line-height:1.7;
    }
    .color-extractor-preview{
      display:none;
      flex:1;
      min-height:280px;
      border-radius:28px;
      overflow:hidden;
      border:1px solid rgba(222,217,207,.88);
      background:#fff;
    }
    .color-extractor-preview img{
      width:100%;
      height:100%;
      min-height:280px;
      object-fit:cover;
      display:block;
    }
    .color-extractor-right{
      padding:34px;
      overflow:auto;
      background:#fffdf9;
    }
    .color-result-empty{
      height:100%;
      min-height:492px;
      display:flex;
      align-items:center;
      justify-content:center;
      border:1px solid rgba(222,217,207,.72);
      border-radius:28px;
      background:linear-gradient(135deg, rgba(247,246,242,.8), rgba(255,255,255,.7));
      color:#8a8378;
      text-align:center;
      padding:34px;
      font-size:14px;
      line-height:1.8;
    }
    .color-result-area{
      display:none;
    }
    .color-result-label{
      margin:0 0 12px;
      color:#8a8378;
      font-size:12px;
      letter-spacing:.15em;
      text-transform:uppercase;
      font-weight:700;
    }
    .color-main-swatches{
      display:grid;
      grid-template-columns:repeat(7,minmax(0,1fr));
      gap:10px;
      margin-bottom:28px;
    }
    .color-main-swatch{
      min-height:84px;
      border-radius:22px;
      border:1px solid rgba(0,0,0,.055);
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
      cursor:pointer;
      transition:.2s ease;
      position:relative;
      overflow:hidden;
    }
    .color-main-swatch:hover{
      transform:translateY(-3px);
      box-shadow:0 12px 24px rgba(0,0,0,.10);
    }
    .color-main-swatch span{
      position:absolute;
      left:8px;
      right:8px;
      bottom:8px;
      display:block;
      padding:5px 6px;
      border-radius:999px;
      background:rgba(255,255,255,.78);
      color:#333;
      font-size:10px;
      line-height:1;
      text-align:center;
      font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
    }
    .color-scheme-list{
      display:grid;
      gap:12px;
      margin-bottom:26px;
    }
    .color-scheme-row{
      display:grid;
      grid-template-columns:98px minmax(0,1fr);
      gap:12px;
      align-items:center;
    }
    .color-scheme-name{
      color:#5c5750;
      font-size:13px;
      line-height:1.35;
    }
    .color-scheme-chips{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:7px;
    }
    .color-scheme-chip{
      height:42px;
      border-radius:14px;
      border:1px solid rgba(0,0,0,.055);
      cursor:pointer;
      transition:.18s ease;
    }
    .color-scheme-chip:hover{
      transform:translateY(-2px);
      box-shadow:0 10px 20px rgba(0,0,0,.09);
    }
    .color-extractor-actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      padding-top:18px;
      border-top:1px solid rgba(222,217,207,.82);
    }
    .color-extractor-action{
      border:1px solid #111;
      border-radius:999px;
      background:#111;
      color:#fff;
      min-height:44px;
      padding:0 17px;
      cursor:pointer;
      font-size:13px;
      transition:.22s ease;
    }
    .color-extractor-action.secondary{
      background:#fff;
      color:#1c1c1c;
      border-color:#ded9cf;
    }
    .color-extractor-action:hover{
      transform:translateY(-2px);
    }
    .color-extractor-toast{
      position:fixed;
      left:50%;
      bottom:28px;
      transform:translateX(-50%);
      z-index:180;
      min-width:140px;
      text-align:center;
      background:#111;
      color:#fff;
      border-radius:999px;
      padding:11px 18px;
      font-size:13px;
      opacity:0;
      pointer-events:none;
      transition:.22s ease;
    }
    .color-extractor-toast.show{
      opacity:1;
      transform:translateX(-50%) translateY(-4px);
    }
    #colorExtractorCanvas{display:none;}
    @media(max-width:900px){
      .color-tool-section{
        padding:0 18px 12px;
      }
      .color-tool-panel{
        grid-template-columns:1fr;
        gap:18px;
        padding:18px;
        border-radius:24px;
      }
      .color-tool-copy{
        grid-template-columns:64px minmax(0,1fr);
        gap:14px;
      }
      .color-tool-mark{
        width:64px;
        height:64px;
        border-radius:20px;
        padding:8px;
        gap:5px;
      }
      .color-tool-title{
        font-size:19px;
      }
      .color-tool-actions{
        justify-content:space-between;
        align-items:center;
        white-space:normal;
      }
      .color-tool-note{
        max-width:160px;
      }
      .color-extractor-modal{
        padding:84px 12px 20px;
      }
      .color-extractor-card{
        width:calc(100vw - 24px);
        max-height:calc(100vh - 104px);
        grid-template-columns:1fr;
        border-radius:26px;
        overflow:auto;
      }
      .color-extractor-left{
        min-height:auto;
        padding:22px;
        border-right:0;
        border-bottom:1px solid rgba(222,217,207,.82);
      }
      .color-extractor-head h2{
        font-size:28px;
      }
      .color-upload-zone,
      .color-extractor-preview{
        min-height:220px;
      }
      .color-extractor-preview img{
        min-height:220px;
      }
      .color-extractor-right{
        padding:22px;
      }
      .color-result-empty{
        min-height:220px;
      }
      .color-main-swatches{
        grid-template-columns:repeat(4,minmax(0,1fr));
      }
      .color-scheme-row{
        grid-template-columns:1fr;
        gap:8px;
      }
    }
    @media(max-width:520px){
      .color-tool-copy{
        grid-template-columns:1fr;
      }
      .color-tool-actions{
        display:grid;
        grid-template-columns:1fr;
      }
      .color-tool-btn{
        width:100%;
      }
      .color-tool-note{
        max-width:none;
      }
      .color-main-swatches{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }
      .color-main-swatch{
        min-height:92px;
      }
      .color-scheme-chips{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }
    }

  