:root{
      --bg: #fff9f0;
      --card: #ffffff;
      
      --primary-2: #4f6cf0;
      --accent: #ffd166;
      --ink: #1f2937;
      --muted:#6b7280;
      --shadow: 0 10px 30px rgba(0,0,0,.08);
      --radius: 18px;
    }
      
    h1{font-size:clamp(22px,2.5vw,28px);margin:0}
    .controls{display:flex;gap:10px;flex-wrap:wrap}
    button,select{
      border:0; padding:10px 14px; border-radius:12px; background:var(--primary); color:white; font-weight:700; cursor:pointer; box-shadow:var(--shadow);
    }
    button.secondary{ background:#eef2ff; color:#374151 }
    button.ghost{ background:transparent; color:var(--primary); border:2px solid var(--primary)}

    .grid{display:grid; grid-template-columns: 1fr; gap:20px; margin-top:20px}
    @media(min-width:800px){.grid{grid-template-columns:1fr 1fr}}

    .card{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); padding:20px}

    .pairs{display:flex;justify-content:space-between;gap:30px;position:relative}
    .col{flex:1;display:flex;flex-direction:column;gap:14px}
    .item{
      background:#f3f4f6; padding:8px 12px; border-radius:12px; font-weight:600; cursor:pointer; position:relative;font-size:15px;
    }
    .item.selected{background:#c7d2fe}
    .item.matched{background:#bbf7d0;cursor:default}

    canvas{position:absolute;top:0;left:0;z-index:0;pointer-events:none}

    .helper{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
    .hint{background:#fff7ed;border:2px dashed #fdba74;color:#7c2d12;padding:8px 12px;border-radius:12px;font-weight:700}
    .small{font-size:14px;color:var(--muted);grid-template-columns:auto;margin-top:15px;}

    .hidden{display:none!important}