  /* ─────────────────────────────────────────────────────────────
     SkillsAllYouNeed — Open AI Skills Registry
     ───────────────────────────────────────────────────────────── */

  :root{
    --paper:        #F2EFE6;   /* off-white, warm */
    --paper-rgb:    242, 239, 230;
    --paper-2:      #EAE6DA;
    --paper-edge:   #DCD7C7;
    --ink:          #15130E;   /* near-black, warm */
    --ink-2:        #2A2620;
    --ink-soft:     #5A5448;
    --ink-mute:     #8A8474;
    --rule:         #15130E;
    --rule-soft:    rgba(21,19,14,.18);
    --accent:       #C7401E;   /* vermillion ink */
    --accent-deep:  #9E2D11;
    --highlight:    #F5D77A;   /* archival manila tab */

    --serif-display: Georgia, "Source Serif 4", serif;
    --serif-body:    Georgia, "Source Serif 4", serif;
    --mono:          ui-monospace, "Menlo", monospace;

    --grid-max: 1320px;
    --gutter: clamp(20px, 3.2vw, 44px);

    /* Per-ecosystem brand colours */
    --eco-claude:       #d97757;
    --eco-claude-code:  #d97757;
    --eco-chatgpt:      #1A7A44;
    --eco-gemini:       #4527A0;
    --eco-perplexity:   #1B9E86;
    --eco-copilot:      #0078D4;
    --eco-opencode:     #14B85A;
    --eco-cursor:       #26251E;
    --eco-codex:        #19C37D;
    --eco-github-copilot: #24292F;
    --eco-antigravity: #4285F4;
    --eco-kiro: #993FF5;
    --eco-pi: #5B6470;

    --eco-cl: var(--eco-claude);
    --eco-cc: var(--eco-claude-code);
    --eco-gpt: var(--eco-chatgpt);
    --eco-cx: var(--eco-codex);
    --eco-oc: var(--eco-opencode);
    --eco-gm: var(--eco-gemini);
    --eco-pp: var(--eco-perplexity);
    --eco-mc: var(--eco-copilot);
    --eco-ghc: var(--eco-github-copilot);
    --eco-ag: var(--eco-antigravity);
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior: smooth; }
  html,body{ margin:0; padding:0; background:var(--paper); color:var(--ink); }
  .fonts-loaded{
    --serif-display: "Instrument Serif", "Source Serif 4", Georgia, serif;
    --serif-body:    "Newsreader", "Source Serif 4", Georgia, serif;
    --mono:          "JetBrains Mono", ui-monospace, "Menlo", monospace;
  }
  body{
    font-family:var(--serif-body);
    font-size:17px;
    line-height:1.5;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
    font-feature-settings:"ss01","ss02","onum","liga";
    background-image:
      radial-gradient(rgba(21,19,14,.035) 1px, transparent 1px);
    background-size: 3px 3px;
    background-position: 0 0;
  }

  /* paper grain — extremely subtle */
  body::before{
    content:""; position:fixed; inset:0; pointer-events:none; z-index:1;
    background:
      repeating-linear-gradient(0deg, rgba(21,19,14,.012) 0 1px, transparent 1px 3px),
      repeating-linear-gradient(90deg, rgba(21,19,14,.008) 0 1px, transparent 1px 4px);
    mix-blend-mode:multiply;
  }

  ::selection{ background:var(--accent); color:var(--paper); }

  a{ color:inherit; text-decoration:none; }
  button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; padding:0; }

  /* ── Layout shell ────────────────────────────────────────── */
  .shell{
    max-width:var(--grid-max);
    margin:0 auto;
    padding:0 var(--gutter);
    position:relative;
    z-index:2;
  }

  /* ── Hero / site header ──────────────────────────────────── */
  .hero{ border-bottom:1px solid var(--rule); }
  .hero-top{
    display:flex; justify-content:space-between; align-items:center;
    padding:14px 0 12px;
    border-bottom:1px solid var(--rule-soft);
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .hero-brand{ display:flex; align-items:center; gap:8px; font-weight:500; color:var(--ink); }
  .hero-dot{ width:8px; height:8px; background:var(--accent); display:inline-block; flex-shrink:0; }
  .hero-nav{ display:flex; gap:20px; align-items:center; }
  .hero-nav a{ color:var(--ink-soft); transition:color .12s ease; }
  .hero-nav a:hover{ color:var(--accent); }

  /* GitHub star button */
  .star-btn{
    display:inline-flex; align-items:center; gap:6px;
    font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
    padding:5px 10px 5px 9px;
    border:1px solid var(--rule); background:var(--paper-2);
    color:var(--ink-soft); cursor:pointer; text-decoration:none;
    transition: all .15s ease; white-space:nowrap;
    border-radius:2px;
  }
  .star-btn:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
  .star-btn svg{ width:13px; height:13px; flex-shrink:0; }
  .star-btn .star-icon{ color:var(--accent); font-size:13px; line-height:1; }
  .star-btn .star-count{
    font-size:10px; color:var(--ink-mute); padding-left:4px;
    border-left:1px solid var(--rule); margin-left:2px;
    transition: color .15s ease;
  }
  .star-btn:hover .star-count{ color:var(--paper); border-color:rgba(255,255,255,.2); }
  [data-theme="dark"] .star-btn{ background:rgba(255,255,255,.05); }

  .hero-body{ padding:56px 0 52px; position:relative; z-index:0; }
  /* blurred orange glow behind hero area */
  .hero-body::before{
    content:""; position:absolute; z-index:-1; pointer-events:none;
    left:-5%; top:10%; width:65%; height:80%;
    background: radial-gradient(ellipse at 30% 50%, rgba(217,119,87,.09) 0%, transparent 70%);
    filter: blur(48px);
  }
  .hero-body h1{
    font-family:var(--serif-display);
    font-weight:400;
    font-size: clamp(56px, 9vw, 130px);
    line-height:.9;
    letter-spacing:-.025em;
    margin:0 0 28px;
  }
  .hero-body h1 em{ font-style:italic; color:var(--accent); }
  .hero-body h1 .h1-sub{
    font-size: clamp(22px, 2.8vw, 44px);
    font-style: normal;
    color: var(--ink-soft);
    letter-spacing: -.01em;
  }
  .hero-sub{
    font-family:var(--serif-body);
    font-size: clamp(17px, 1.4vw, 21px);
    line-height:1.45;
    color:var(--ink-2);
    max-width:64ch;
    margin:0 0 40px;
    text-wrap:pretty;
  }
  .hero-stats{
    display:flex; gap:0; margin-bottom:36px; flex-wrap:wrap;
  }
  .hero-stats .stat{
    display:flex; flex-direction:column; gap:3px;
    padding:16px 32px 14px;
  }
  .hero-stats .stat:last-child{ }
  .hero-stats .stat b{
    font-family:var(--serif-display);
    font-size: clamp(32px, 3.8vw, 48px);
    font-style:italic;
    line-height:1;
    color:var(--accent);
    font-weight:400;
    letter-spacing:-.02em;
  }
  .hero-stats .stat span{
    font-family:var(--mono);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--ink-mute);
  }
  @media(max-width:540px){
    .hero-stats .stat{ padding:12px 20px 10px; }
  }
  .hero-cta{ display:flex; gap:10px; flex-wrap:wrap; }
  .cta-primary{
    font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
    padding:13px 26px; background:var(--ink); color:var(--paper); border:1px solid var(--ink);
    display:inline-block; position:relative;
    box-shadow: 4px 4px 0 var(--accent);
    transition: box-shadow .14s ease, transform .14s ease, background .12s ease, border-color .12s ease;
  }
  .cta-primary:hover{
    background:var(--accent); border-color:var(--accent);
    box-shadow: none; transform: translate(4px,4px);
  }
  .cta-ghost{
    font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
    padding:13px 26px; background:transparent; color:var(--ink-soft); border:1px solid var(--rule);
    display:inline-block;
    transition:background .12s ease, color .12s ease, border-color .12s ease;
  }
  .cta-ghost:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
  .star-cta{ gap:8px; }
  .star-count-cta{
    font-family:var(--mono); font-size:10px; letter-spacing:.04em;
    background:var(--paper-edge); color:var(--ink-mute);
    padding:1px 6px; border-radius:20px; display:none;
  }
  .star-count-cta.loaded{ display:inline; }
  .star-cta:hover .star-count-cta{ background:rgba(255,255,255,.15); color:var(--paper); }

  /* ── Section header ─────────────────────────────────────── */
  .section{ padding:80px 0 40px; border-bottom:1px solid var(--rule); }
  .section.tight{ padding-top:48px; }
  .section-head{
    display:grid;
    grid-template-columns: 1fr auto;
    gap:32px;
    align-items:baseline;
    margin-bottom:36px;
  }
  .section-head .label{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--ink-mute);
    margin-bottom:6px;
  }
  .section-head h2{
    font-family:var(--serif-display);
    font-weight:400;
    font-size: clamp(34px, 4.4vw, 56px);
    line-height:1;
    letter-spacing:-.01em;
    margin:0;
  }
  .section-head h2 .it{ font-style:italic; }
  .section-head .right{
    font-family:var(--mono);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:var(--ink-mute);
    text-align:right;
    line-height:1.6;
  }

  /* ── Filter bar ─────────────────────────────────────────── */
  .filters{
    display:grid;
    grid-template-columns: 1fr;
    gap:20px;
    margin-bottom:8px;
  }
  .filter-row{
    display:flex; gap:8px; align-items:center;
    flex-wrap:wrap;
  }
  .filter-row .lbl{
    font-family:var(--mono);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.14em;
    color:var(--ink-mute);
    margin-right:6px;
    min-width:80px;
    flex-shrink:0;
  }
  /* on narrow screens, chip rows scroll horizontally */
  @media(max-width:640px){
    .filter-row{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
    .filter-row::-webkit-scrollbar{ height:2px; }
    .filter-row::-webkit-scrollbar-thumb{ background:var(--rule-soft); }
  }

  .chip{
    font-family:var(--mono);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.08em;
    padding:6px 12px 5px;
    border:1px solid var(--rule-soft);
    background:var(--paper);
    color:var(--ink-soft);
    border-radius:0;
    cursor:pointer;
    position:relative;
    white-space:nowrap;
    flex-shrink:0;
    max-width:220px;
    overflow:hidden;
    text-overflow:ellipsis;
    transition:background .12s ease, color .12s ease, border-color .12s ease, box-shadow .12s ease;
    line-height:1;
  }
  .chip:hover{ background:var(--paper-2); color:var(--ink); border-color:var(--rule); }
  .chip[aria-pressed="true"]{
    background:var(--ink);
    color:var(--paper);
    border-color:var(--ink);
    box-shadow: inset 3px 0 0 var(--accent);
  }
  .chip .glyph-wrap{ display:inline-flex; align-items:center; gap:7px; }
  .chip svg{ width:11px; height:11px; }
  .chip[aria-pressed="true"] svg *{ stroke:var(--paper); fill:var(--paper); }
  .chip[data-eco="Claude"][aria-pressed="true"]{
    background:var(--accent); border-color:var(--accent); box-shadow:none;
  }
  .chip[data-eco="Claude"][aria-pressed="true"] svg *{ stroke:var(--paper); fill:var(--paper); }

  /* Search */
  .search-wrap{
    display:flex; align-items:center; gap:14px;
    min-width:0;
    border:1px solid var(--rule);
    padding:16px 20px;
    background:var(--paper);
    transition: border-color .15s ease, box-shadow .15s ease;
  }
  .search-wrap:focus-within{
    border-color:var(--accent);
    box-shadow: 0 0 0 3px rgba(199,64,30,.12), 4px 4px 0 var(--accent);
  }
  .search-wrap .lbl{
    min-width:auto; margin:0;
    color:var(--accent); font-size:12px; letter-spacing:.12em;
  }
  .search-wrap input{
    flex:1;
    min-width:0;
    font:inherit;
    font-family:var(--serif-body);
    font-size:21px;
    border:0;
    background:transparent;
    outline:0;
    color:var(--ink);
  }
  .search-wrap input::placeholder{ color:var(--ink-mute); font-style:italic; }
  .search-wrap .count{
    font-family:var(--mono);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:var(--ink-mute);
    white-space:nowrap;
  }
  .search-wrap .count b{ color:var(--accent); font-weight:600; }
  @media(max-width:640px){
    .hero-top{
      align-items:flex-start;
      flex-direction:column;
      gap:12px;
    }
    .hero-nav{
      width:100%;
      min-width:0;
      flex-wrap:wrap;
      justify-content:flex-start;
      gap:5px;
    }
    .hero-nav > a,
    .hero-nav > button{
      min-width:44px;
      min-height:44px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
    }
    .hero-nav > a:not(.star-btn),
    .hero-nav > .dark-toggle{
      padding:0 10px;
      border:1px solid var(--rule-soft);
    }
    .search-wrap{ gap:10px; padding:14px; }
    .search-wrap .count{ font-size:10px; }
    .contribute-grid{ grid-template-columns:1fr !important; }
    .contribute-grid > a:first-child{
      border-right:0 !important;
      border-bottom:1px solid var(--rule-soft);
    }
  }

  /* ── Skill grid (asymmetric) ────────────────────────────── */
  .grid{
    display:grid;
    grid-template-columns: repeat(12, 1fr);
    gap:0;
    border-top:1px solid var(--rule);
  }
  /* Per-ecosystem card accent colour — generated by data.js ECO registry */

  .card{
    grid-column: span 4;
    border-right:1px solid var(--rule-soft);
    border-bottom:1px solid var(--rule);
    padding:24px 24px 26px;
    background:var(--paper);
    position:relative;
    cursor:pointer;
    z-index:0;
    transition: background .15s ease, box-shadow .18s ease, z-index 0s;
    display:flex; flex-direction:column;
    min-height:248px;
  }
  .card:hover{
    background:var(--paper-2);
    box-shadow: inset 4px 0 0 var(--eco-color, var(--accent));
    z-index:1;
  }
  .card:focus-visible{ outline:2px solid var(--accent); outline-offset:-2px; }
  .card.span-6{ grid-column: span 6; }
  .card.span-8{ grid-column: span 8; }
  .card.span-12{ grid-column: span 12; }
  .card.featured{
    background: linear-gradient(150deg, var(--ink) 0%, #201C15 100%);
    color:var(--paper);
  }
  .card.featured .id, .card.featured .cat, .card.featured .status, .card.featured .desc, .card.featured .eco-label{ color:var(--paper); }
  .card.featured .id{ color:var(--paper); opacity:.5; }
  .card.featured .glyph svg *{ stroke:var(--paper); }
  .card.featured:hover{
    background: linear-gradient(150deg, #201C15 0%, #2A2418 100%);
    box-shadow: inset 4px 0 0 var(--highlight);
  }
  .card.featured .name .it{ color:var(--highlight); }

  .card:nth-child(12n+0){ border-right:0; }
  @media (max-width: 900px){
    .card, .card.span-6, .card.span-8, .card.span-12{ grid-column: span 12; border-right:0; }
  }

  .card .top{
    display:flex; justify-content:space-between; align-items:flex-start;
    gap:12px;
    margin-bottom:18px;
  }
  .card .glyph{
    width:32px; height:32px;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .card .glyph svg{ width:100%; height:100%; }
  .card .id{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.06em;
    color:var(--ink-mute);
    text-transform:uppercase;
  }
  .card .meta-top{
    text-align:right;
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-mute);
    line-height:1.5;
  }
  .card .meta-top .eco-label{ display:block; color:var(--ink-2); word-break:break-word; max-width:130px; }

  .card .name{
    font-family:var(--serif-display);
    font-weight:400;
    font-size: clamp(28px, 2.6vw, 38px);
    line-height:1;
    letter-spacing:-.01em;
    margin:0 0 14px;
    text-wrap:balance;
  }
  .card.span-8 .name, .card.span-12 .name{ font-size: clamp(40px, 4vw, 62px); }
  .card .name .it{ font-style:italic; color:var(--accent); }

  .card .desc{
    font-size: 16px;
    line-height:1.45;
    color:var(--ink-2);
    margin:0 0 18px;
    max-width:42ch;
    text-wrap:pretty;
  }
  .card.span-8 .desc, .card.span-12 .desc{ font-size:19px; max-width:58ch; }

  .card .bottom{
    margin-top:auto;
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:14px;
    padding-top:14px;
    border-top:1px dotted var(--rule-soft);
  }
  .card .cat{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .card .cat::before{ content:"# "; opacity:.4; }
  .card .status{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
    display:inline-flex; align-items:center; gap:6px;
  }
  .status-dot{
    width:6px; height:6px; display:inline-block;
    background:var(--accent);
  }
  .status[data-status="Stable"] .status-dot{ background:var(--ink); }
  .status[data-status="Beta"] .status-dot{
    background:transparent;
    border:1px solid var(--accent);
    box-shadow: inset 0 0 0 2px var(--paper);
    width:8px; height:8px;
    transform:translateY(1px);
  }
  .status[data-status="Deprecated"] .status-dot{ background:var(--ink-mute); }
  .card.featured .status-dot{ background:var(--paper); }

  /* fade-in stagger */
  .card{ opacity:0; transform:translateY(6px); transition: opacity .28s ease, transform .28s ease, background .15s ease, box-shadow .18s ease; }
  .card.in{ opacity:1; transform:none; }

  .no-results{
    grid-column: span 12;
    padding:80px 24px;
    text-align:center;
    font-family:var(--serif-display);
    font-style:italic;
    font-size:32px;
    color:var(--ink-mute);
    border-bottom:1px solid var(--rule);
  }
  .no-results small{
    display:block;
    font-family:var(--mono);
    font-style:normal;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.12em;
    margin-top:14px;
    color:var(--ink-mute);
  }

  /* ── Detail / modal ─────────────────────────────────────── */
  .scrim{
    position:fixed; inset:0; background:rgba(21,19,14,.62);
    z-index:50;
    display:none;
    align-items:flex-start;
    justify-content:center;
    padding:48px 24px;
    overflow-y:auto;
  }
  .scrim.open{
    display:flex;
    animation: scrim-in .22s ease-out both;
  }
  @keyframes scrim-in{ from{ opacity:0; } to{ opacity:1; } }

  .sheet{
    background:var(--paper);
    width:100%;
    max-width:880px;
    padding:48px 56px 48px;
    position:relative;
    border:1px solid var(--ink);
    box-shadow: 8px 8px 0 var(--accent), 16px 16px 0 -2px var(--ink);
    animation: sheet-in .26s cubic-bezier(0.16,1,0.3,1) both;
  }
  @keyframes sheet-in{
    from{ opacity:0; transform: translateY(-18px) scale(.975); }
    to{   opacity:1; transform: none; }
  }
  @media (max-width: 720px){
    .sheet{ padding:36px 24px; box-shadow: 4px 4px 0 var(--accent), 8px 8px 0 -2px var(--ink); }
  }
  .sheet .close{
    position:absolute; top:18px; right:18px;
    font-family:var(--mono);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.12em;
    border:1px solid var(--rule);
    padding:6px 10px;
  }
  .sheet .close:hover{ background:var(--ink); color:var(--paper); }
  .sheet .sheet-top{
    display:flex; align-items:flex-start; gap:18px; margin-bottom:24px;
    padding-bottom:18px; border-bottom:1px solid var(--rule);
  }
  .sheet .glyph-lg{ width:54px; height:54px; flex-shrink:0; border:1px solid var(--rule); display:flex; align-items:center; justify-content:center; }
  .sheet .glyph-lg svg{ width:32px; height:32px; }
  .sheet .top-meta{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-mute);
    line-height:1.7;
  }
  .sheet .top-meta b{ color:var(--ink); font-weight:500; }
  .sheet h3{
    font-family:var(--serif-display);
    font-weight:400;
    font-size:64px;
    line-height:1;
    letter-spacing:-.015em;
    margin:0 0 8px;
  }
  .sheet h3 .it{ font-style:italic; color:var(--accent); }
  .sheet .lede{
    font-family:var(--serif-body);
    font-size:21px;
    line-height:1.45;
    color:var(--ink-2);
    margin:0 0 28px;
    max-width:60ch;
  }
  .sheet h4{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--ink-mute);
    margin:28px 0 10px;
  }
  .sheet .field{
    border-left:1px solid var(--accent);
    padding:4px 0 4px 16px;
    margin:0;
    font-family:var(--mono);
    font-size:14px;
    line-height:1.55;
    color:var(--ink);
    background: linear-gradient(transparent, transparent);
    overflow-wrap:break-word;
    word-break:break-word;
  }
  .sheet .field.serif{
    font-family:var(--serif-body);
    font-size:18px;
    border-left-color:var(--ink);
  }
  .sheet .src{
    font-family:var(--mono);
    font-size:12px;
    border:1px solid var(--rule);
    padding:10px 14px;
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:6px;
  }
  .sheet .src:hover{ background:var(--ink); color:var(--paper); }
  .sheet .src::before{ content:"↗"; color:var(--accent); }
  .sheet .src:hover::before{ color:var(--highlight); }

  /* ── Comparison matrix ─────────────────────────────────── */
  .matrix-wrap{
    max-width:100%;
    border:1px solid var(--rule);
    background:var(--paper);
    overflow-x:auto;
  }
  table.matrix{
    width:100%;
    min-width:1680px;
    border-collapse:collapse;
    font-family:var(--serif-body);
  }
  table.matrix caption{
    text-align:left;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink-soft);
    padding:14px 18px;
    border-bottom:1px solid var(--rule);
    background:var(--paper-2);
  }
  table.matrix caption b{ color:var(--ink); font-weight:500; }
  table.matrix thead th{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink);
    text-align:center;
    padding:18px 14px 16px;
    border-bottom:1px solid var(--rule);
    background:var(--paper);
    vertical-align:bottom;
    font-weight:500;
  }
  table.matrix thead th:first-child,
  table.matrix tbody th{
    position:sticky;
    left:0;
    width:360px;
    min-width:360px;
    background:var(--paper);
    z-index:1;
  }
  table.matrix thead th:first-child{
    z-index:2;
    text-align:left;
    padding-left:22px;
  }
  table.matrix thead .head-glyph{
    display:flex; flex-direction:column; align-items:center; gap:8px;
  }
  table.matrix thead .head-glyph svg{ width:22px; height:22px; }
  table.matrix tbody td{
    font-size:16px;
    padding:16px 14px;
    text-align:center;
    border-bottom:1px solid var(--rule-soft);
    vertical-align:middle;
  }
  table.matrix tbody th{
    padding-left:22px;
    text-align:left;
    font-family:var(--serif-body);
    font-size:18px;
    font-weight:400;
    color:var(--ink);
    border-bottom:1px solid var(--rule-soft);
    vertical-align:middle;
  }
  table.matrix tbody th .row-num{
    display:inline-block;
    min-width:24px;
    margin-right:14px;
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.1em;
    color:var(--ink-soft);
  }
  table.matrix tbody tr:hover{ background:var(--paper-2); }
  table.matrix tbody tr:hover th{ background:var(--paper-2); }
  table.matrix tbody tr:last-child td,
  table.matrix tbody tr:last-child th{ border-bottom:0; }
  .mark{
    display:inline-flex; align-items:center; justify-content:center;
    width:34px; height:34px;
    font-family:var(--mono);
    font-size:14px;
    font-weight:500;
  }
  .mark.yes{ color:var(--accent-deep); font-size:22px; font-family:var(--serif-display); }
  .mark.no{ color:var(--ink-soft); font-size:18px; }
  .mark.partial{
    width:auto; height:auto;
    padding:4px 8px;
    border:1px solid var(--rule);
    background:var(--paper-2);
    color:var(--ink);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
  [data-theme="dark"] .mark.yes{ color:#F07855; }
  @media(max-width:700px){
    table.matrix thead th:first-child,
    table.matrix tbody th{
      width:210px;
      min-width:210px;
    }
  }

  /* ── Colophon / footer ──────────────────────────────────── */
  .colophon{
    padding:64px 0 80px;
    display:grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:48px;
    border-top:1px solid var(--rule);
    margin-top:0;
  }
  @media (max-width: 800px){ .colophon{ grid-template-columns:1fr; gap:32px; } }
  .colophon h5{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--ink-mute);
    margin:0 0 12px;
    font-weight:500;
  }
  .colophon p, .colophon ul{
    font-family:var(--serif-body);
    font-size:15px;
    line-height:1.55;
    color:var(--ink-2);
    margin:0;
    padding:0;
    list-style:none;
  }
  .colophon ul li{ padding:4px 0; }
  .colophon ul li a{ border-bottom:1px solid var(--rule-soft); }
  .colophon ul li a:hover{ color:var(--accent); border-bottom-color:var(--accent); }
  .colophon .end{
    grid-column:1/-1;
    margin-top:24px;
    padding-top:18px;
    border-top:1px solid var(--rule);
    display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap;
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-mute);
  }

  /* focus */
  :focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

  /* ── Card trigger line + deep-link anchor (v1.1) ─── */
  .card .trigger{
    font-family:var(--mono);
    font-size:11px;
    line-height:1.4;
    color:var(--ink-mute);
    margin:0 0 14px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
    padding:6px 10px;
    background: var(--paper-edge);
    margin-left:-4px;
    transition: background .14s ease, color .14s ease;
  }
  .card .trigger::before{ content:"→ "; color:var(--accent); }
  .card:hover .trigger{ background:var(--paper-2); }
  .card.featured .trigger{
    color:rgba(242,239,230,.55);
    background:rgba(255,255,255,.06);
  }
  .card.featured:hover .trigger{ background:rgba(255,255,255,.1); }

  /* Copy-hint badge that appears on trigger hover */
  .copy-hint{
    float:right; font-family:var(--mono); font-size:9px; letter-spacing:.06em;
    text-transform:uppercase; color:var(--accent); opacity:0;
    transition:opacity .15s ease; pointer-events:none; margin-left:8px;
    white-space:nowrap;
  }
  .card .trigger:hover .copy-hint{ opacity:1; }

  .card .top .id-wrap{ display:flex; align-items:baseline; gap:6px; }
  .card .anchor{
    font-family:var(--mono);
    font-size:13px;
    line-height:1;
    color:var(--ink-mute);
    padding:2px 4px;
    border:1px solid transparent;
    cursor:pointer;
    opacity:0;
    transition: opacity .14s ease, color .14s ease, background .14s ease;
  }
  .card:hover .anchor, .card:focus-within .anchor{ opacity:1; }
  .card .anchor:hover{ color:var(--accent); border-color:var(--rule-soft); }
  .card.featured .anchor{ color:rgba(242,239,230,.55); }
  .card.featured .anchor:hover{ color:var(--highlight); border-color:rgba(242,239,230,.25); }

  /* ── Toast (deep-link copied) ─── */
  .toast{
    position:fixed; left:50%; bottom:36px; transform:translateX(-50%) translateY(20px);
    background:var(--ink); color:var(--paper);
    font-family:var(--mono); font-size:11px;
    letter-spacing:.12em; text-transform:uppercase;
    padding:12px 18px;
    border:1px solid var(--ink);
    box-shadow: 6px 6px 0 -1px var(--accent);
    z-index:80;
    opacity:0;
    pointer-events:none;
    transition: opacity .2s ease, transform .25s ease;
  }
  .toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

  /* ── Ecosystem deep-dive strip (v1.1) ─── */
  .eco-strip{
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule);
    margin-bottom:0;
  }
  @media (max-width: 900px){ .eco-strip{ grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 540px){ .eco-strip{ grid-template-columns: 1fr; } }

  /* Per-ecosystem colours on cells — generated by data.js ECO registry */

  .eco-cell{
    padding:26px 22px 22px;
    border-right:1px solid var(--rule-soft);
    background:var(--paper);
    cursor:pointer;
    display:flex; flex-direction:column;
    min-height:200px;
    transition: background .15s ease, box-shadow .18s ease;
    position:relative;
    box-shadow: inset 0 3px 0 var(--eco-color, var(--rule-soft));
  }
  .eco-cell:last-child{ border-right:0; }
  .eco-cell:hover{
    background:var(--paper-2);
    box-shadow: inset 0 4px 0 var(--eco-color, var(--accent));
  }
  .eco-cell .eco-head{
    display:flex; justify-content:space-between; align-items:flex-start;
    margin-bottom:18px;
  }
  .eco-cell .eco-glyph{ width:44px; height:44px; }
  .eco-cell .eco-glyph svg{ width:100%; height:100%; }
  .eco-cell .eco-tag{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--ink-mute);
    text-align:right;
    line-height:1.5;
  }
  .eco-cell .eco-tag b{ color:var(--accent); font-weight:500; font-family:var(--serif-display); font-size:34px; letter-spacing:-.02em; display:block; line-height:.9; margin-bottom:4px; }
  .eco-cell .eco-name{
    font-family:var(--serif-display);
    font-weight:400;
    font-size: clamp(22px, 2.8vw, 34px);
    line-height:1.05;
    letter-spacing:-.01em;
    margin:0 0 8px;
    overflow-wrap:break-word;
    hyphens:auto;
  }
  .eco-cell .eco-name .it{ font-style:italic; color:var(--accent); }
  .eco-cell .eco-blurb{
    font-family:var(--serif-body);
    font-size:14.5px;
    line-height:1.45;
    color:var(--ink-2);
    margin:0 0 16px;
    text-wrap:pretty;
  }
  .eco-cell .eco-link{
    margin-top:auto;
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink);
    padding-top:12px;
    border-top:1px dotted var(--rule-soft);
  }
  .eco-cell:hover .eco-link{ color:var(--accent); }

  /* inline code / backtick styling */
  .inline-code{
    font-family:var(--mono);
    font-size:.88em;
    background:var(--paper-2);
    padding:1px 6px;
    border-radius:3px;
    color:var(--ink);
  }
  .trigger-sep{ color:var(--ink-mute); }

  /* ── Sort toggle (v1.1) ─── */
  .sort-toggle{
    display:inline-flex; gap:6px; align-items:center;
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-mute);
  }
  .sort-toggle a{
    padding:2px 6px;
    border:1px solid transparent;
    cursor:pointer;
    color:var(--ink-mute);
  }
  .sort-toggle a.on{
    color:var(--accent);
    border-color:var(--rule-soft);
  }
  .sort-toggle a:hover{ color:var(--ink); }
  .sort-toggle a.on:hover{ color:var(--accent); }

  /* ── Shortcut modal (v1.1) — styled like a footnote card ─── */
  .shortcuts{
    position:fixed; right:24px; bottom:60px;
    z-index:60;
    width:340px; max-width:calc(100vw - 48px);
    background:var(--paper);
    border:1px solid var(--ink);
    box-shadow: 6px 6px 0 var(--accent), 10px 10px 0 -2px var(--ink);
    padding:22px 24px 20px;
    display:none;
    transform-origin: bottom right;
  }
  .shortcuts.open{ display:block; animation: pop .2s cubic-bezier(0.16,1,0.3,1); }
  @keyframes pop{ from{ opacity:0; transform: translateY(10px) scale(.96); } to{ opacity:1; transform:none; } }
  .shortcuts h6{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--ink-mute);
    margin:0 0 4px;
    font-weight:500;
  }
  .shortcuts .ftitle{
    font-family:var(--serif-display);
    font-style:italic;
    font-size:24px;
    line-height:1;
    margin:0 0 16px;
    color:var(--ink);
    padding-bottom:12px;
    border-bottom:1px solid var(--rule);
  }
  .shortcuts .ftitle::before{ content:"¹ "; color:var(--accent); }
  .shortcuts dl{ margin:0; display:grid; grid-template-columns: auto 1fr; gap:10px 14px; font-family:var(--serif-body); font-size:14.5px; color:var(--ink-2); }
  .shortcuts dt{ font-family:var(--mono); font-size:11px; border:1px solid var(--rule); padding:2px 8px; color:var(--ink); align-self:start; white-space:nowrap; }
  .shortcuts dd{ margin:0; line-height:1.35; align-self:center; }
  .shortcuts .closeFn{
    position:absolute; top:8px; right:10px;
    font-family:var(--mono); font-size:11px;
    color:var(--ink-mute);
    padding:4px 6px;
  }
  .shortcuts .closeFn:hover{ color:var(--accent); }
  .hint-key{
    position:fixed; right:18px; bottom:18px;
    z-index:55;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-mute);
    border:1px solid var(--rule);
    background:var(--paper);
    padding:6px 10px;
    cursor:pointer;
  }
  .hint-key:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
  .hint-key kbd{
    font:inherit;
    color:var(--accent);
    margin-right:4px;
  }
  .hint-key:hover kbd{ color:var(--highlight); }

  /* ── Hash-targeted card highlight ─── */
  .card.hashed{
    outline:2px solid var(--accent);
    outline-offset:-2px;
  }

  /* ── Print stylesheet (v1.1) ─── */
  @media print {
    @page { size: A4; margin: 18mm 16mm 20mm; }
    @page :left  { @bottom-left  { content: "SkillsAllYouNeed"; font-family: "JetBrains Mono", monospace; font-size:9pt; color:#666; } @bottom-right { content: counter(page) " / " counter(pages); font-family: "JetBrains Mono", monospace; font-size:9pt; color:#666; } }
    @page :right { @bottom-left  { content: "kishormorol.github.io/SkillsAllYouNeed"; font-family: "JetBrains Mono", monospace; font-size:9pt; color:#666; } @bottom-right { content: counter(page) " / " counter(pages); font-family: "JetBrains Mono", monospace; font-size:9pt; color:#666; } }

    html, body{ background:#fff !important; color:#111 !important; }
    body::before, body{ background-image: none !important; }
    .hero-nav, .filters, .hint-key, .shortcuts, .scrim, .toast, .eco-strip, .sort-toggle, .grid-toolbar, .active-filters{ display:none !important; }
    .section{ border-bottom:1px solid #111 !important; padding:18pt 0 !important; }
    .section-head{ break-after:avoid; }
    .grid{ display:block !important; border:0 !important; }
    .card{
      grid-column: 1 / -1 !important;
      display:block !important;
      break-inside: avoid;
      page-break-inside: avoid;
      border:0 !important;
      border-bottom:1px solid #111 !important;
      padding:14pt 0 !important;
      background:#fff !important;
      color:#111 !important;
      min-height:0 !important;
      opacity:1 !important; transform:none !important;
    }
    .card.featured, .card.featured *{ background:#fff !important; color:#111 !important; }
    .card .top{ margin-bottom:8pt; }
    .card .name{ font-size:24pt !important; margin-bottom:6pt; }
    .card .desc{ font-size:11pt !important; max-width:none !important; color:#222 !important; }
    .card .trigger{ white-space:normal !important; overflow:visible !important; font-size:10pt !important; color:#444 !important; margin-bottom:8pt; }
    .card::after{
      content: "Trigger: " attr(data-trigger) "\A Example: " attr(data-example) "\A Source: " attr(data-source);
      white-space: pre-line;
      display:block;
      font-family:"JetBrains Mono", monospace;
      font-size:9pt;
      line-height:1.45;
      color:#222;
      margin-top:8pt;
      padding-top:6pt;
      border-top:1px dotted #999;
    }
    .card .anchor, .card .bottom .status-dot{ display:none !important; }
    table.matrix{ min-width:0; table-layout:fixed; break-inside:avoid; font-size:6pt; }
    table.matrix thead th:first-child,
    table.matrix tbody th{ position:static; width:28%; min-width:0; }
    table.matrix thead th{ padding:4pt 2pt !important; font-size:5pt !important; }
    table.matrix tbody td,
    table.matrix tbody th{ padding:4pt 2pt !important; font-size:6pt !important; }
    table.matrix .mark.partial{ padding:1pt 2pt; font-size:5pt; }
    a{ color:#111 !important; }
    a[href]:after{ content: " (" attr(href) ")"; font-family:"JetBrains Mono", monospace; font-size:8pt; color:#666; }
    .colophon{ break-before: page; }
  }

  @media (max-width: 800px){
    .section-head{ grid-template-columns: 1fr; }
    .section-head .right{ display:none; }
    .hero-stats{ gap:28px; }
  }

  /* ── v1.2: Favorites · Counts · Nav · Export · Scroll-top ─── */

  /* Chip count badge */
  .chip .badge{
    font-size:9px; font-family:var(--mono); color:var(--ink-mute);
    margin-left:5px; letter-spacing:0; vertical-align:middle; opacity:.75;
  }
  .chip[aria-pressed="true"] .badge{ color:rgba(242,239,230,.6); }

  /* Favorite button on card */
  .card .fav-btn{
    font-size:15px; color:var(--ink-mute); padding:0 2px; line-height:1;
    flex-shrink:0; background:none; border:0; cursor:pointer;
    transition: color .14s ease, transform .15s ease;
  }
  .card .fav-btn:hover{ color:var(--accent); transform:scale(1.2); }
  .card .fav-btn.saved{ color:var(--accent); }
  .card.featured .fav-btn{ color:rgba(242,239,230,.4); }
  .card.featured .fav-btn.saved{ color:var(--highlight); }

  /* Trigger line: click-to-copy hint */
  .card .trigger{ cursor:pointer; }
  .card .trigger:active{ opacity:.6; }

  /* Active filters bar */
  .active-filters{
    display:flex; flex-wrap:wrap; gap:6px; align-items:center;
    padding:10px 0 0; font-family:var(--mono); font-size:10.5px;
  }
  .active-filters .af-label{
    color:var(--ink-mute); text-transform:uppercase; letter-spacing:.1em;
    white-space:nowrap; flex-shrink:0;
  }
  .active-filter-tag{
    display:inline-flex; align-items:center; gap:4px;
    padding:3px 9px 3px 10px; border:1px solid var(--accent); color:var(--accent);
    font-family:var(--mono); font-size:10px; letter-spacing:.06em;
    text-transform:uppercase; cursor:pointer; background:transparent;
    transition: background .12s ease, color .12s ease;
  }
  .active-filter-tag:hover{ background:var(--accent); color:var(--paper); }

  /* Grid toolbar (surprise · saved · export) */
  .grid-toolbar{
    display:flex; gap:8px; align-items:center; flex-wrap:wrap;
    padding:14px 0; border-bottom:1px solid var(--rule-soft);
  }
  .grid-toolbar .spacer{ flex:1; min-width:8px; }

  /* Sheet action buttons */
  .sheet-actions{
    display:flex; gap:8px; flex-wrap:wrap; margin-top:8px;
  }
  .sheet-actions button{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.1em;
    text-transform:uppercase; border:1px solid var(--rule);
    padding:5px 11px; color:var(--ink-soft); cursor:pointer;
    background:transparent; transition: background .12s ease, color .12s ease;
  }
  .sheet-actions button:hover{ background:var(--ink); color:var(--paper); }
  .sheet-actions button.is-saved{ color:var(--accent); border-color:var(--accent); }
  .sheet-actions button.is-saved:hover{ background:var(--accent); color:var(--paper); }

  /* Sheet prev/next navigation */
  .sheet-nav{
    display:flex; gap:8px; align-items:center;
    margin-top:24px; padding-top:14px; border-top:1px solid var(--rule);
  }
  .sheet-nav button{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.1em;
    text-transform:uppercase; border:1px solid var(--rule);
    padding:5px 11px; color:var(--ink); cursor:pointer; background:transparent;
    transition: background .12s ease, color .12s ease;
  }
  .sheet-nav button:hover:not(:disabled){ background:var(--ink); color:var(--paper); }
  .sheet-nav button:disabled{ opacity:.25; cursor:not-allowed; }
  .sheet-nav .nav-pos{
    flex:1; text-align:center; font-family:var(--mono); font-size:10px;
    text-transform:uppercase; letter-spacing:.08em; color:var(--ink-mute);
  }

  /* Related skills chips */
  .related-list{
    display:flex; flex-wrap:wrap; gap:8px; margin-top:6px;
  }
  .related-chip{
    font-family:var(--mono); font-size:10px; text-transform:uppercase;
    letter-spacing:.06em; padding:5px 10px;
    border:1px solid var(--rule); background:transparent;
    color:var(--ink-mute); cursor:pointer; transition:all .15s ease;
    border-radius:2px;
  }
  .related-chip:hover{
    background:var(--ink); color:var(--paper); border-color:var(--ink);
  }

  /* Scroll-to-top (bottom-left, mirrors hint-key) */
  .scroll-top{
    position:fixed; left:18px; bottom:18px; z-index:55;
    font-family:var(--mono); font-size:11px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--ink-mute);
    border:1px solid var(--rule); background:var(--paper);
    padding:6px 10px; cursor:pointer;
    opacity:0; pointer-events:none; transition: opacity .2s ease;
  }
  .scroll-top.visible{ opacity:1; pointer-events:auto; }
  .scroll-top:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

  @media print{
    .grid-toolbar, .scroll-top, .active-filters,
    .sheet-nav, .sheet-actions{ display:none !important; }
  }

  /* ══════════════════════════════════════════════════════════
     DARK MODE
  ══════════════════════════════════════════════════════════ */
  [data-theme="dark"]{
    --paper:     #17140F;
    --paper-rgb: 23, 20, 15;
    --paper-2:   #1F1C14;
    --paper-edge:#252019;
    --ink:       #F0EDE3;
    --ink-2:     #D5D0C4;
    --ink-soft:  #A8A296;
    --ink-mute:  #6E6860;
    --rule:      rgba(240,237,227,.28);
    --rule-soft: rgba(240,237,227,.10);
    --accent:    #E05830;
    --highlight: #F5D77A;
    --eco-claude-code:  #d97757;
    --eco-chatgpt:      #3AAA6A;
    --eco-gemini:       #7A5AE0;
    --eco-perplexity:   #2DC4A8;
    --eco-copilot:      #3B9FE8;
    --eco-opencode:     #38C96E;
    --eco-cursor:       #EDECEC;
    --eco-codex:        #F59E0B;
    --eco-github-copilot: #8B949E;
    --eco-antigravity: #8AB4F8;
    --eco-kiro: #B76BFF;
    --eco-pi: #9BA4AE;
  }
  [data-theme="dark"] .card.featured{
    background: linear-gradient(150deg, #1F1C14 0%, #0D0B08 100%);
    color: var(--ink);
  }
  [data-theme="dark"] .card.featured .desc,
  [data-theme="dark"] .card.featured .id,
  [data-theme="dark"] .card.featured .eco-label{ color: var(--ink); }
  [data-theme="dark"] .card.featured .id{ opacity: .55; }
  [data-theme="dark"] .card.featured .trigger{ color: rgba(240,237,227,.55); }
  [data-theme="dark"] .card.featured .anchor{ color: rgba(240,237,227,.55); }
  [data-theme="dark"] .card.featured .meta-top{ color: var(--ink-soft); }
  [data-theme="dark"] .card.featured .cat{ color: rgba(240,237,227,.6); }
  [data-theme="dark"] .card.featured .status{ color: var(--ink-soft); }
  [data-theme="dark"] .card.featured .fav-btn{ color: rgba(240,237,227,.4); }
  [data-theme="dark"] .card.featured .glyph svg *{ stroke: var(--ink); }
  [data-theme="dark"] .search-wrap:focus-within{
    box-shadow: 0 0 0 3px rgba(224,88,48,.18), 4px 4px 0 var(--accent);
  }
  [data-theme="dark"] body{
    background-image: radial-gradient(rgba(240,237,227,.025) 1px, transparent 1px);
  }
  [data-theme="dark"] body::before{
    background:
      repeating-linear-gradient(0deg, rgba(240,237,227,.01) 0 1px, transparent 1px 3px),
      repeating-linear-gradient(90deg, rgba(240,237,227,.007) 0 1px, transparent 1px 4px);
  }
  [data-theme="dark"] .hero-body::before{
    background: radial-gradient(ellipse at 30% 50%, rgba(217,119,87,.12) 0%, transparent 70%);
  }
  /* dark-mode toggle button */
  .dark-toggle{
    font-size:15px; line-height:1; letter-spacing:0;
    color:var(--ink-soft); padding:1px 4px;
    border:none; background:none; cursor:pointer;
    transition:color .15s ease, transform .2s ease;
    font-family:inherit;
  }
  .dark-toggle:hover{ color:var(--accent); transform:rotate(18deg); }

  /* ══════════════════════════════════════════════════════════
     ONBOARDING STRIP
  ══════════════════════════════════════════════════════════ */
  .onboarding-strip{
    background:var(--ink); color:var(--paper);
    border-bottom:1px solid var(--rule);
    display:none; /* shown by JS the first visit */
    position:relative; overflow:hidden;
    transition: opacity 180ms cubic-bezier(0.4, 0, 0.2, 1);
  }
  .onboarding-strip.is-leaving{ opacity:0; }
  /* vermillion hairline on the top edge of the dark band */
  .onboarding-strip::before{
    content:""; position:absolute; inset:0 0 auto 0; height:2px;
    background:var(--accent); opacity:.9;
  }
  .onboarding-inner{
    display:flex; align-items:center; gap:28px; flex-wrap:wrap;
    max-width:var(--grid-max); margin:0 auto;
    padding:20px var(--gutter);
  }
  .onboarding-title{
    font-family:var(--serif-display); font-style:italic;
    font-size:19px; white-space:nowrap; flex-shrink:0; line-height:1;
  }
  .onboarding-steps{
    display:flex; gap:22px; flex-wrap:wrap; flex:1;
    align-items:flex-start; min-width:0;
  }
  .onboarding-step{
    display:flex; align-items:baseline; gap:8px;
    font-family:var(--serif-body); font-size:14px;
    line-height:1.5; max-width:340px;
    color:rgba(var(--paper-rgb), .74);
    animation: onboarding-fade-up 360ms cubic-bezier(0.22, 1, 0.36, 1) both;
  }
  .onboarding-step:nth-child(1){ animation-delay:60ms; }
  .onboarding-step:nth-child(2){ animation-delay:130ms; }
  .onboarding-step:nth-child(3){ animation-delay:200ms; }
  .step-num{
    font-family:var(--mono); font-size:10px; font-weight:600;
    background:var(--accent); color:var(--paper);
    width:18px; height:18px; flex-shrink:0;
    display:inline-flex; align-items:center; justify-content:center;
    transition: transform 220ms cubic-bezier(0.34, 1.45, 0.64, 1);
  }
  .onboarding-step:hover .step-num{ transform: scale(1.1) rotate(-4deg); }
  .onboarding-dismiss{
    font-family:var(--mono); font-size:10px; letter-spacing:.1em;
    text-transform:uppercase; color:rgba(var(--paper-rgb), .5);
    border:1px solid rgba(var(--paper-rgb), .22); padding:6px 12px;
    background:transparent; cursor:pointer; white-space:nowrap; flex-shrink:0;
    transition: color 180ms cubic-bezier(0.22, 1, 0.36, 1),
                border-color 180ms cubic-bezier(0.22, 1, 0.36, 1),
                background 180ms cubic-bezier(0.22, 1, 0.36, 1),
                transform 120ms cubic-bezier(0.22, 1, 0.36, 1);
  }
  .onboarding-dismiss:hover{
    color:rgba(var(--paper-rgb), .95);
    border-color:rgba(var(--paper-rgb), .55);
    background:rgba(var(--paper-rgb), .08);
  }
  .onboarding-dismiss:active{ transform: scale(0.96); }
  .onboarding-dismiss:focus-visible{
    outline:1px solid var(--accent); outline-offset:2px;
  }
  @keyframes onboarding-fade-up{
    from{ opacity:0; transform:translateY(6px); }
    to  { opacity:1; transform:translateY(0); }
  }
  @media (prefers-reduced-motion: reduce){
    .onboarding-strip{ transition:none; }
    .onboarding-step{ animation:none !important; }
    .onboarding-step:hover .step-num{ transform:none; }
    .onboarding-dismiss:active{ transform:none; }
  }
  @media(max-width:700px){
    .onboarding-inner{
      align-items:stretch;
      flex-direction:column;
      gap:16px;
    }
    .onboarding-steps{
      flex-direction:column;
      gap:12px;
    }
    .onboarding-step{ max-width:none; }
    .onboarding-steps .onboarding-step:last-child{ display:none; }
    .onboarding-dismiss{ align-self:flex-start; }
  }

  /* ══════════════════════════════════════════════════════════
     QUICK PRESET FILTERS
  ══════════════════════════════════════════════════════════ */
  .preset-row{
    padding-bottom:14px;
    border-bottom:1px solid var(--rule-soft);
  }
  .preset-btn{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.08em;
    text-transform:uppercase; padding:5px 13px;
    border:1px solid var(--accent); color:var(--accent);
    background:transparent; cursor:pointer; border-radius:0;
    transition:background .12s ease, color .12s ease;
  }
  .preset-btn:hover, .preset-btn.active{
    background:var(--accent); color:var(--paper);
  }
  .preset-btn.preset-clear{
    border-color:var(--rule); color:var(--ink-mute);
  }
  .preset-btn.preset-clear:hover{
    background:var(--ink); color:var(--paper); border-color:var(--ink);
  }

  /* ══════════════════════════════════════════════════════════
     NEW BADGE
  ══════════════════════════════════════════════════════════ */
  .new-badge{
    font-family:var(--mono); font-size:8.5px; text-transform:uppercase;
    letter-spacing:.05em; color:var(--paper); background:var(--accent);
    padding:1px 5px; margin-left:5px; vertical-align:middle;
    animation:pulse-new 2.6s ease-in-out infinite;
  }
  .card.featured .new-badge{ background:var(--highlight); color:var(--ink); }
  @keyframes pulse-new{
    0%,100%{ opacity:1; } 50%{ opacity:.6; }
  }

  /* ══════════════════════════════════════════════════════════
     CATEGORY COLOR ACCENTS
  ══════════════════════════════════════════════════════════ */
  .cat[data-cat="Code"]        { color:#2D7A4F; }
  .cat[data-cat="Web"]         { color:#1A5F96; }
  .cat[data-cat="Visual"]      { color:#7030A0; }
  .cat[data-cat="Agentic"]     { color:var(--accent); }
  .cat[data-cat="Integration"] { color:#A0600A; }
  .cat[data-cat="API"]         { color:#0A7A7A; }
  .cat[data-cat="Data"]        { color:#1A6090; }
  .card.featured .cat{ color:rgba(242,239,230,.6) !important; }
  [data-theme="dark"] .cat[data-cat="Code"]        { color:#5CB880; }
  [data-theme="dark"] .cat[data-cat="Web"]         { color:#5AA8DC; }
  [data-theme="dark"] .cat[data-cat="Visual"]      { color:#B07ACC; }
  [data-theme="dark"] .cat[data-cat="Integration"] { color:#CC9840; }
  [data-theme="dark"] .cat[data-cat="API"]         { color:#40C0C0; }
  [data-theme="dark"] .cat[data-cat="Data"]        { color:#5AAAD0; }

  /* ══════════════════════════════════════════════════════════
     IMPROVED EMPTY STATE
  ══════════════════════════════════════════════════════════ */
  .no-results{
    grid-column:span 12; padding:72px 24px;
    text-align:center;
    font-family:var(--serif-display); font-style:italic;
    font-size:32px; color:var(--ink-mute);
    border-bottom:1px solid var(--rule);
  }
  .no-results small{
    display:block; font-family:var(--mono); font-style:normal;
    font-size:11px; text-transform:uppercase; letter-spacing:.12em;
    margin-top:12px; color:var(--ink-mute);
  }
  .no-results .nr-reset{
    display:inline-block; margin-top:20px;
    font-family:var(--mono); font-size:11px; letter-spacing:.1em;
    text-transform:uppercase; padding:9px 18px;
    border:1px solid var(--rule); color:var(--ink-soft);
    background:transparent; cursor:pointer;
    transition:background .12s ease, color .12s ease;
  }
  .no-results .nr-reset:hover{ background:var(--ink); color:var(--paper); }

  /* ══════════════════════════════════════════════════════════
     CARD HOVER GLYPH ANIMATION
  ══════════════════════════════════════════════════════════ */
  .card .glyph{ transition: transform .18s ease; }
  .card:hover .glyph{ transform: scale(1.12); }
  .card.featured:hover .glyph{ transform: scale(1.12); }

  /* ── Add Skill form ─── */
  .add-scrim{
    position:fixed; inset:0; background:rgba(21,19,14,.62);
    z-index:50; display:none; align-items:flex-start;
    justify-content:center; padding:48px 24px; overflow-y:auto;
  }
  .add-scrim.open{
    display:flex;
    animation: scrim-in .22s ease-out both;
  }
  .add-sheet{
    background:var(--paper); width:100%; max-width:680px;
    padding:48px 56px 48px; position:relative;
    border:1px solid var(--ink);
    box-shadow:8px 8px 0 var(--accent), 16px 16px 0 -2px var(--ink);
    animation: sheet-in .26s cubic-bezier(0.16,1,0.3,1) both;
  }
  @media(max-width:720px){ .add-sheet{ padding:36px 24px; box-shadow:4px 4px 0 var(--accent), 8px 8px 0 -2px var(--ink); } }
  .add-sheet h3{
    font-family:var(--serif-display); font-weight:400;
    font-size:clamp(36px,4vw,56px); line-height:1; letter-spacing:-.015em;
    margin:0 0 6px;
  }
  .add-sheet h3 .it{ font-style:italic; color:var(--accent); }
  .add-sheet .form-sub{
    font-family:var(--mono); font-size:11px; text-transform:uppercase;
    letter-spacing:.1em; color:var(--ink-mute); margin-bottom:28px;
    padding-bottom:18px; border-bottom:1px solid var(--rule);
  }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
  .form-row.full{ grid-template-columns:1fr; }
  @media(max-width:540px){ .form-row{ grid-template-columns:1fr; } }
  .form-group{ display:flex; flex-direction:column; gap:5px; }
  .form-group label{
    font-family:var(--mono); font-size:10.5px; text-transform:uppercase;
    letter-spacing:.12em; color:var(--ink-mute);
  }
  .form-group input,.form-group select,.form-group textarea{
    font-family:var(--serif-body); font-size:16px;
    border:1px solid var(--rule); background:var(--paper);
    color:var(--ink); padding:10px 12px; outline:none;
    border-radius:0; -webkit-appearance:none; resize:vertical;
  }
  .form-group input:focus,.form-group select:focus,.form-group textarea:focus{
    border-color:var(--ink); box-shadow:3px 3px 0 -1px var(--ink);
  }
  .form-group .id-preview{
    font-family:var(--mono); font-size:11px; color:var(--ink-mute); margin-top:2px;
  }
  .form-group .id-preview b{ color:var(--accent); }
  .form-actions{ display:flex; gap:10px; margin-top:24px; padding-top:18px; border-top:1px solid var(--rule); flex-wrap:wrap; }
  .btn-primary{
    font-family:var(--mono); font-size:11px; letter-spacing:.1em;
    text-transform:uppercase; padding:10px 20px;
    background:var(--ink); color:var(--paper); border:1px solid var(--ink);
    cursor:pointer; transition:background .12s ease, border-color .12s ease;
  }
  .btn-primary:hover{ background:var(--accent); border-color:var(--accent); }
  .btn-ghost{
    font-family:var(--mono); font-size:11px; letter-spacing:.1em;
    text-transform:uppercase; padding:10px 20px;
    background:transparent; color:var(--ink-soft); border:1px solid var(--rule);
    cursor:pointer; transition:background .12s ease, color .12s ease;
  }
  .btn-ghost:hover{ background:var(--ink); color:var(--paper); }
  .custom-badge{
    font-family:var(--mono); font-size:9px; text-transform:uppercase;
    letter-spacing:.06em; color:var(--paper); background:var(--accent);
    padding:1px 5px; margin-left:6px; vertical-align:middle;
  }
  .card.featured .custom-badge{ background:var(--highlight); color:var(--ink); }
  .sheet-actions button.is-delete{ color:var(--ink-mute); }
  .sheet-actions button.is-delete:hover{ background:var(--accent); color:var(--paper); border-color:var(--accent); }
