:root {
  --de-bg:#fff;
  --de-text:#111;
  --de-surface:#f7f7f7;
  --de-border:#dedede;
  --de-muted:#666;
}
html[data-theme="dark"] {
  --de-bg:#101010;
  --de-text:#fff;
  --de-surface:#1b1b1b;
  --de-border:#333;
  --de-muted:#aaa;
}
.de-page {
  background:var(--de-bg);
  color:var(--de-text);
  font-family:Montserrat,sans-serif;
  min-height:100vh;
}
.de-page * { box-sizing:border-box; }
.de-hero {
  padding:75px 0 65px;
  border-bottom:1px solid var(--de-border);
}
.de-eyebrow {
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
}
.de-hero h1 {
  font-size:clamp(40px,6vw,78px);
  line-height:1.06;
  letter-spacing:-.055em;
  margin:18px 0;
}
.de-hero p {
  max-width:650px;
  color:var(--de-muted);
  font-size:14px;
  line-height:1.8;
}
.de-directory { padding:55px 0 85px; }
.de-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px;
  margin-bottom:25px;
}
.de-toolbar h2 {
  font-size:clamp(25px,3vw,38px);
  margin:10px 0 0;
}
.de-count {
  font-size:12px;
  color:var(--de-muted);
}
.de-search {
  display:grid;
  grid-template-columns:2fr repeat(3,1fr);
  gap:12px;
}
.de-extra-filters {
  display:grid;
  grid-template-columns:repeat(3,1fr) auto;
  gap:12px;
  margin-top:12px;
}
.de-search label,
.de-extra-filters label {
  display:flex;
  flex-direction:column;
  gap:9px;
  min-width:0;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}
.de-search input,
.de-search select,
.de-extra-filters input {
  width:100%;
  height:46px;
  min-width:0;
  padding:0 12px;
  border:1px solid var(--de-border);
  border-radius:6px;
  background:var(--de-bg);
  color:var(--de-text);
  font:500 12px Montserrat,sans-serif;
}
#deReset {
  align-self:end;
  height:46px;
  padding:0 16px;
  border:1px solid var(--de-text);
  border-radius:6px;
  background:transparent;
  color:var(--de-text);
  cursor:pointer;
  font:700 11px Montserrat,sans-serif;
}
.de-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:30px;
}
.de-card {
  min-width:0;
  overflow:hidden;
  border:1px solid var(--de-border);
  border-radius:10px;
  background:var(--de-bg);
}
.de-image {
  position:relative;
  aspect-ratio:1.35;
  overflow:hidden;
}
.de-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s;
}
.de-card:hover img { transform:scale(1.04); }
.de-tag {
  position:absolute;
  top:12px;
  left:12px;
  padding:7px 10px;
  background:#fff;
  color:#111;
  border-radius:4px;
  font-size:10px;
  font-weight:800;
}
.de-content { padding:18px; }
.de-date {
  font-size:10px;
  font-weight:700;
  color:var(--de-muted);
}
.de-content h3 {
  min-height:46px;
  font-size:14px;
  line-height:1.55;
  margin:10px 0;
}
.de-content p {
  font-size:11px;
  color:var(--de-muted);
}
.de-card-bottom {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:10px;
  border-top:1px solid var(--de-border);
  margin-top:18px;
  padding-top:15px;
}
.de-card-bottom small {
  display:block;
  font-size:9px;
  color:var(--de-muted);
}
.de-card-bottom strong { font-size:13px; }
.de-demo-label {
  font-size:9px;
  font-weight:800;
  color:var(--de-muted);
}
.de-empty {
  text-align:center;
  padding:60px 20px;
}
.de-empty i { font-size:35px; }
.de-empty p { color:var(--de-muted); }
.de-pagination {
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:30px;
}
.de-pagination button {
  width:38px;
  height:38px;
  border:1px solid var(--de-border);
  border-radius:6px;
  background:var(--de-bg);
  color:var(--de-text);
  cursor:pointer;
}
.de-pagination button.active {
  background:var(--de-text);
  color:var(--de-bg);
}
@media(max-width:1100px) {
  .de-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .de-search { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .de-extra-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .de-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .de-hero { padding:45px 0; }
  .de-directory { padding:35px 0 55px; }
}
@media(max-width:520px) {
  .de-grid { grid-template-columns:1fr; gap:14px; }
  .de-search,
  .de-extra-filters { grid-template-columns:1fr; }
  .de-hero { padding:32px 0; }
  .de-hero h1 { font-size:36px; }
  .de-toolbar { align-items:start; flex-direction:column; }
  .de-content h3 { min-height:0; }
}
