:root { --ink:#111827; --muted:#5e6675; --paper:#f7f7f2; --line:#d2d7df; --blue:#2455c3; --orange:#e45b2c; --green:#16805b; --panel:#ffffff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:76px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color:inherit; text-decoration:none; }
a:hover { text-decoration:underline; text-decoration-color:var(--blue); text-underline-offset:.2em; }
nav {
  position:sticky;
  top:0;
  z-index:3;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.65rem;
  padding:.85rem clamp(.85rem,4vw,3rem);
  background:rgba(247,247,242,.94);
  border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
nav a {
  width:auto;
  background:rgba(255,255,255,.9);
  border:1px solid var(--line);
  border-radius:999px;
  padding:.5rem .7rem;
  font-size:.78rem;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(17,24,39,.08);
}
nav .brand { margin-right:auto; background:var(--ink); color:var(--paper); }
.hero {
  min-height:92vh;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,480px);
  gap:clamp(1.5rem,5vw,4rem);
  align-items:end;
  padding:clamp(5rem,8vw,7rem) clamp(1rem,5vw,4rem) clamp(2rem,5vw,4rem);
  background:
    linear-gradient(115deg, rgba(36,85,195,.14), transparent 42%),
    linear-gradient(25deg, transparent 55%, rgba(228,91,44,.18)),
    #fff;
  border-bottom:1px solid var(--line);
}
.eyebrow {
  margin:0 0 1rem;
  color:var(--orange);
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-size:.76rem;
}
h1 {
  margin:0;
  max-width:13ch;
  font-size:clamp(3rem,7.2vw,7rem);
  line-height:.9;
  letter-spacing:0;
}
.hero p { max-width:720px; color:var(--muted); line-height:1.78; font-size:1.1rem; }
.directory-visual {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.75rem;
  align-content:end;
}
.directory-visual button {
  min-height:92px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  font-weight:900;
  border-radius:999px;
  font-size:1rem;
  cursor:default;
  box-shadow:0 12px 28px rgba(17,24,39,.08);
}
.directory-visual button:nth-child(1){ background:#dbeafe; }
.directory-visual button:nth-child(2){ background:#ffedd5; border-radius:8px; }
.directory-visual button:nth-child(3){ background:#dcfce7; }
.directory-visual button:nth-child(4){ background:#fce7f3; border-radius:8px; }
.directory-visual button:nth-child(5){ background:#fef9c3; grid-column:span 2; }
main { max-width:1240px; margin:0 auto; padding:4rem clamp(1rem,4vw,3rem); }
.directory {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:1rem;
  align-items:start;
}
article {
  display:grid;
  grid-template-columns:62px 1fr;
  grid-column:span 6;
  min-height:210px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:18px;
  padding:1.15rem;
}
article span {
  display:inline-flex;
  width:40px;
  height:40px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#eef2ff;
  color:var(--blue);
  font-weight:900;
  margin-bottom:.75rem;
}
article h2 { margin:0 0 .35rem; font-size:1.35rem; line-height:1.05; letter-spacing:0; }
article h2 a { text-decoration:none; }
article h2 a:hover { text-decoration:underline; text-decoration-color:var(--blue); }
article p { color:var(--muted); line-height:1.65; margin:0; }
article b { display:block; margin-top:.75rem; font-size:.84rem; }
.guide {
  margin-top:3rem;
  max-width:860px;
  padding-top:1.5rem;
  border-top:1px solid var(--line);
}
.guide h2 { font-size:2rem; margin:0 0 .5rem; letter-spacing:0; }
.guide p { color:var(--muted); line-height:1.75; }
code { background:#e8eef6; padding:.12rem .35rem; border-radius:4px; }
@media (max-width:860px){
  nav{position:static; justify-content:flex-start; gap:.5rem;}
  nav .brand{width:100%; margin-right:0;}
  nav a{flex:1 1 auto; justify-content:center; text-align:center; min-width:min(100%,130px);}
  .hero{grid-template-columns:1fr; min-height:auto; padding-top:2rem;}
  h1{font-size:clamp(2.8rem,15vw,3.2rem);}
  article{grid-column:1 / -1; grid-template-columns:1fr;}
}
@media (max-width:520px){ main{padding-inline:.85rem;} .directory-visual{grid-template-columns:1fr;} .directory-visual button:nth-child(5){grid-column:auto;} }
