:root{
  color-scheme:dark;
  --bg:#07090d;
  --bg2:#0a0d12;
  --panel:#0e1219;
  --panel2:#11161f;
  --line:rgba(255,255,255,.085);
  --line2:rgba(255,255,255,.16);
  --text:#f5f7f9;
  --muted:#8c96a6;
  --muted2:#5e6979;
  --green:#5ce1a5;
  --green2:#2ec98b;
  --blue:#78aaff;
  --shell:1220px;
}

*{box-sizing:border-box}

html{
  background:var(--bg);
  scroll-behavior:smooth
}

body{
  margin:0;
  min-height:100vh;
  color:var(--text);
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  background:
    radial-gradient(circle at 75% -5%,rgba(67,102,255,.12),transparent 30%),
    radial-gradient(circle at -10% 45%,rgba(62,210,153,.06),transparent 27%),
    var(--bg);
  -webkit-font-smoothing:antialiased
}

a{
  color:inherit;
  text-decoration:none
}

button,input{
  font:inherit
}

.shell{
  width:min(calc(100% - 40px),var(--shell));
  margin-inline:auto
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid rgba(255,255,255,.055);
  background:rgba(7,9,13,.86);
  backdrop-filter:blur(20px)
}

.nav{
  min-height:74px;
  display:flex;
  align-items:center;
  gap:34px
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:11px;
  flex-shrink:0
}

.brand-mark{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  color:#06100b;
  font-size:18px;
  font-weight:900;
  background:linear-gradient(135deg,#dcfff1,#5ce1a5 48%,#7aafff)
}

.brand-copy{
  display:flex;
  flex-direction:column;
  line-height:1
}

.brand-copy strong{
  font-size:13px;
  letter-spacing:.13em
}

.brand-copy small{
  margin-top:6px;
  color:#697383;
  font-size:8px;
  letter-spacing:.11em;
  text-transform:uppercase
}

.main-nav{
  margin-left:auto;
  display:flex;
  gap:26px
}

.main-nav a{
  color:#8c96a5;
  font-size:11px
}

.main-nav a:hover,
.main-nav a.active{
  color:white
}

.page-hero{
  padding:82px 0 58px;
  border-bottom:1px solid var(--line)
}

.eyebrow{
  color:#68dcae;
  font-size:9px;
  font-weight:800;
  letter-spacing:.15em
}

.page-hero h1{
  max-width:900px;
  margin:13px 0 18px;
  font-size:clamp(48px,7vw,82px);
  line-height:.95;
  letter-spacing:-.06em
}

.hero-copy{
  max-width:730px;
  margin:0;
  color:#929cac;
  font-size:15px;
  line-height:1.8
}

.directory-stats{
  margin-top:34px;
  display:flex;
  flex-wrap:wrap;
  gap:9px
}

.directory-stats span{
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  color:#788393;
  background:rgba(255,255,255,.018);
  font-size:9px
}

.directory-section{
  padding:70px 0 100px
}

.toolbar{
  margin-bottom:31px;
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  gap:14px;
  align-items:center
}

.search{
  height:58px;
  padding:0 17px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--line2);
  border-radius:15px;
  background:#0d1117
}

.search svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:#788292;
  stroke-width:1.8
}

.search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:white;
  font-size:13px
}

.search input::placeholder{
  color:#5c6777
}

.result-count{
  min-width:120px;
  text-align:right;
  color:#667181;
  font-size:10px
}

.taxonomy{
  margin-bottom:38px
}

.taxonomy-label{
  display:block;
  margin-bottom:12px;
  color:#566171;
  font-size:8px;
  font-weight:800;
  letter-spacing:.13em
}

.taxonomy-row{
  display:flex;
  flex-wrap:wrap;
  gap:7px
}

.taxonomy-row a{
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:9px;
  color:#8993a3;
  background:rgba(255,255,255,.017);
  font-size:9px;
  transition:.18s ease
}

.taxonomy-row a:hover,
.taxonomy-row a.active{
  color:#07100c;
  border-color:var(--green);
  background:var(--green)
}

.directory-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px
}

.directory-card{
  min-width:0;
  padding:20px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:20px;
  background:
    linear-gradient(180deg,rgba(18,23,32,.93),rgba(11,14,20,.93));
  transition:
    transform .2s ease,
    border-color .2s ease,
    background .2s ease
}

.directory-card:hover{
  transform:translateY(-3px);
  border-color:rgba(255,255,255,.18);
  background:
    linear-gradient(180deg,rgba(20,26,36,.96),rgba(12,16,22,.96))
}

.directory-card[hidden]{
  display:none!important
}

.card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px
}

.app-logo{
  width:47px;
  height:47px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#07100c;
  font-size:11px;
  font-weight:900;
  background:
    linear-gradient(135deg,#dcfff0,#5ce1a5 48%,#7aafff)
}

.verified{
  padding:5px 8px;
  display:flex;
  align-items:center;
  gap:5px;
  border:1px solid rgba(92,225,165,.17);
  border-radius:999px;
  color:#69d6aa;
  background:rgba(92,225,165,.045);
  font-size:7px;
  font-weight:800;
  letter-spacing:.09em
}

.card-body{
  padding:24px 0 17px
}

.card-category{
  color:#616c7c;
  font-size:8px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase
}

.card-body h2{
  margin:7px 0 3px;
  font-size:20px;
  letter-spacing:-.03em
}

.card-body h2 a:hover{
  color:#77e1b7
}

.publisher{
  margin:0;
  color:#697484;
  font-size:9px
}

.summary{
  min-height:70px;
  margin:16px 0 0;
  color:#8d97a6;
  font-size:10px;
  line-height:1.75
}

.platform-list{
  padding:12px 0;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}

.platform-list span{
  padding:4px 6px;
  border-radius:5px;
  color:#6d7888;
  background:rgba(255,255,255,.025);
  font-size:7px
}

.card-footer{
  padding-top:15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px
}

.card-footer>div{
  display:flex;
  flex-direction:column;
  gap:2px
}

.card-footer>div span{
  color:#555f6f;
  font-size:7px
}

.card-footer>div strong{
  color:#929baa;
  font-size:10px
}

.card-footer>a{
  display:flex;
  align-items:center;
  gap:6px;
  color:#c9d0d9;
  font-size:9px;
  font-weight:700
}

.card-footer>a:hover{
  color:var(--green)
}

.empty{
  padding:55px 30px;
  text-align:center;
  border:1px dashed var(--line2);
  border-radius:17px
}

.empty[hidden]{
  display:none
}

.empty strong{
  display:block;
  margin-bottom:7px;
  font-size:17px
}

.empty span{
  color:#6c7787;
  font-size:10px
}

.category-intro{
  margin-bottom:32px;
  padding:24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  border:1px solid var(--line);
  border-radius:17px;
  background:rgba(255,255,255,.018)
}

.category-intro p{
  max-width:720px;
  margin:6px 0 0;
  color:#7f8999;
  font-size:10px;
  line-height:1.7
}

.category-intro a{
  flex-shrink:0;
  padding:10px 13px;
  border:1px solid var(--line2);
  border-radius:9px;
  font-size:9px
}

.breadcrumbs{
  margin-bottom:38px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color:#596474;
  font-size:8px
}

.breadcrumbs strong{
  color:#929baa;
  font-weight:500
}

.site-footer{
  border-top:1px solid var(--line)
}

.footer{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  color:#505a69;
  font-size:8px
}

@media(max-width:960px){
  .directory-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}

@media(max-width:700px){
  .shell{
    width:min(calc(100% - 28px),var(--shell))
  }

  .main-nav{
    display:none
  }

  .page-hero{
    padding:62px 0 45px
  }

  .page-hero h1{
    font-size:50px
  }

  .toolbar{
    grid-template-columns:1fr
  }

  .result-count{
    text-align:left
  }

  .directory-grid{
    grid-template-columns:1fr
  }

  .summary{
    min-height:auto
  }

  .category-intro{
    align-items:flex-start;
    flex-direction:column
  }

  .footer{
    padding:20px 0;
    align-items:flex-start;
    flex-direction:column;
    gap:7px
  }
}

.version-line{
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:7px
}

.version-line span{
  color:#566171;
  font-size:7px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em
}

.version-line strong{
  color:#6edcaf;
  font-size:9px;
  font-weight:600
}
