/* Deoradh Labs: base, header, search home, article pages */
*{box-sizing:border-box}
body{margin:0;font-family:'Inter',Arial,sans-serif;line-height:1.7;color:#111;background:#fff}
h1,h2,h3{font-family:'Space Grotesk',Arial,sans-serif;line-height:1.2}
.wrap{max-width:860px;margin:0 auto;padding:0 1.5rem}

#site-header{display:contents}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);border-bottom:1px solid rgba(218,220,224,.7);transition:transform .3s ease,box-shadow .3s ease}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .site-header{background:rgba(255,255,255,.6);-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%)}
}
.site-header.scrolled{box-shadow:0 2px 14px rgba(0,0,0,.07)}
.site-header.hide{transform:translateY(-100%)}
@media (prefers-reduced-motion:reduce){.site-header{transition:none}}
.ribbon{display:flex;align-items:center;gap:1.25rem;max-width:1100px;margin:0 auto;padding:.6rem 1.5rem}
.ribbon .brand{flex:none}
.ribbon nav{margin-left:auto}
.ribbon-search{position:relative;flex:1;max-width:480px}
.ribbon-search form{display:flex;align-items:center;gap:.6rem;margin:0;border:1px solid #dadce0;border-radius:999px;padding:.05rem 1rem;background:rgba(255,255,255,.85)}
.ribbon-search form:focus-within,.ribbon-search.open form{box-shadow:0 1px 6px rgba(32,33,36,.28)}
.ribbon-search.open form{border-radius:20px 20px 0 0;border-bottom-color:transparent}
.ribbon-search{transition:opacity .2s}
.ribbon-search.away{opacity:0;pointer-events:none}
.ribbon-search svg{width:18px;height:18px;stroke:#5f6368;fill:none;stroke-width:2;flex:none}
.ribbon-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.95rem;padding:.5rem 0}
.suggest{position:absolute;left:0;right:0;top:100%;margin:0;padding:.25rem 0 .5rem;list-style:none;background:#fff;border:1px solid #dadce0;border-top:0;border-radius:0 0 20px 20px;box-shadow:0 4px 8px rgba(32,33,36,.2);overflow:hidden}
.suggest a{display:block;padding:.5rem 1rem;color:inherit;text-decoration:none}
.suggest li[aria-selected="true"] a,.suggest a:hover{background:#f1f3f4}
.s-title{display:block;font-weight:500;line-height:1.35}
.s-meta{display:block;font-size:.8rem;color:#70757a}
.s-all{padding:.5rem 1rem;font-size:.85rem;color:#5f6368;border-top:1px solid #eee;margin-top:.25rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;font:700 1.2rem 'Space Grotesk',Arial,sans-serif;color:inherit;text-decoration:none}
.site-header nav ul{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0}
.site-header nav a{color:inherit;text-decoration:none}
.site-header nav a:hover{text-decoration:underline;text-underline-offset:3px}

/* Home: Google-style search */
.search-hero{text-align:center;padding:3.5rem 1.5rem 1.5rem;max-width:760px;margin:0 auto}
.search-hero img{display:block;margin:0 auto 1rem}
.search-hero h1{font-size:clamp(2.2rem,6vw,3.4rem);margin:0}
.tagline{color:#5f6368;font-size:1.15rem;margin:.5rem 0 2rem}
.search-box{display:flex;align-items:center;gap:.75rem;border:1px solid #dadce0;border-radius:999px;padding:.3rem 1.25rem;box-shadow:0 1px 6px rgba(32,33,36,.12);background:#fff}
.search-box:hover,.search-box:focus-within{box-shadow:0 2px 10px rgba(32,33,36,.28)}
.search-box svg{width:20px;height:20px;stroke:#5f6368;fill:none;stroke-width:2;flex:none}
.search-box input{flex:1;border:0;outline:0;font:inherit;font-size:1.05rem;padding:.7rem 0;background:transparent;min-width:0}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1.25rem}
.chip{border:1px solid #dadce0;background:#fff;border-radius:999px;padding:.4rem 1rem;font:inherit;font-size:.9rem;cursor:pointer}
.chip:hover{background:#f1f3f4}
.chip[aria-pressed="true"]{background:#111;color:#fff;border-color:#111}

.result-count{color:#5f6368;font-size:.9rem;margin:2rem 0 .5rem}
.results{list-style:none;margin:0;padding:0}
.result{display:flex;gap:1.25rem;justify-content:space-between;padding:1.1rem 0}
.r-url{font-size:.85rem;color:#4d5156;text-decoration:none}
.r-title{display:block;font:500 1.25rem 'Space Grotesk',Arial,sans-serif;color:#1a0dab;text-decoration:none;margin:.15rem 0}
.r-title:hover{text-decoration:underline}
.r-snippet{margin:.2rem 0;color:#4d5156;font-size:.95rem;line-height:1.55}
.r-meta{font-size:.85rem;color:#70757a}
.r-thumb{width:112px;height:112px;object-fit:cover;border-radius:8px;flex:none}
.empty{color:#5f6368;padding:1.5rem 0}

.band{background:#f5f5f5;margin-top:3rem;padding:3.5rem 0}
.band h2,.about h2{margin:0 0 .5rem}
.lead{color:#5f6368;margin:0 0 2rem;max-width:60ch}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;padding:0;margin:0;list-style:none}
.step{background:#fff;border:1px solid #dadce0;border-radius:12px;padding:1.25rem}
.step b{display:block;font:700 1.6rem 'Space Grotesk',Arial,sans-serif;color:#9aa0a6}
.step h3{margin:.25rem 0}
.step p{margin:0;color:#5f6368;font-size:.95rem}
.about{padding:3.5rem 0 1rem}
.about p{max-width:65ch}

/* Article pages */
.essay{max-width:700px;margin:0 auto;padding:2rem 1.5rem}
.essay h2{margin-top:2.5rem}
.kicker{margin:0;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;color:#5f6368}
.article-header h1{font-size:clamp(2rem,5vw,2.8rem);margin:.4rem 0}
.byline,.reviewed{margin:0;color:#5f6368}
.essay figure{margin:2rem 0}
.essay img{max-width:100%;height:auto;border-radius:8px;display:block}
.essay figcaption{font-size:.85rem;color:#5f6368;margin-top:.5rem}
.video{aspect-ratio:16/9;margin:2rem 0}
.video iframe{width:100%;height:100%;border:0;border-radius:8px}
.stat{margin:2rem 0;padding:1rem 1.25rem;border-left:4px solid #333}
.stat-number{display:block;font:700 3rem 'Space Grotesk',Arial,sans-serif}
blockquote{margin:2rem 0;font:1.4rem 'Space Grotesk',Arial,sans-serif}

@media (max-width:700px){.ribbon{flex-wrap:wrap;gap:.5rem 1rem}.ribbon-search{order:3;flex-basis:100%;max-width:none}}
@media (max-width:600px){.r-thumb{width:80px;height:80px}.search-hero{padding-top:2rem}}

/* Sources (replaces the old `footer { ... }` rule) */
.sources-section {
  margin-top: 3rem;
  padding-top: 1rem;
  border-top: 2px solid #333;
}
.sources { list-style: none; padding: 0; margin: 0; }
.sources li { padding: 0.75rem 0; border-bottom: 1px solid #ddd; }
.sources li:last-child { border-bottom: none; }
.sources a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.sources a:hover { text-decoration-thickness: 2px; }

/* Site footer */
.site-footer {
  margin-top: 4rem;
  background: #f5f5f5;
  color: #222;
  font-size: 0.95rem;
}
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover,
.site-footer a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }

.site-footer__inner { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }

.site-footer__top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 2rem;
  padding: 3rem 0;
}

.site-footer__logo {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: 'Space Grotesk', Arial, sans-serif;
  font-weight: 700;
  font-size: 1.4rem;
}
.site-footer__logo:hover { text-decoration: none; }
.site-footer__brand p { margin: 0.75rem 0 0; color: #555; max-width: 28ch; }

.site-footer__col h2 {
  margin: 0 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px dotted #999;
  font-family: 'Space Grotesk', Arial, sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #444;
}
.site-footer__col li + li { margin-top: 0.7rem; }

.social a { display: inline-flex; align-items: center; gap: 0.65rem; }
.icon {
  width: 22px;
  height: 22px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.site-footer__bottom { background: #fff; border-top: 1px solid #ddd; }
.site-footer__bottom-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem 2rem;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.site-footer__bottom p { margin: 0; }
.site-footer__bottom ul { display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; }

@media (max-width: 800px) {
  .site-footer__top { grid-template-columns: 1fr 1fr; }
  .site-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .site-footer__top { grid-template-columns: 1fr; padding: 2rem 0; }
}

/* 404 page + shared button */
.btn{display:inline-block;padding:.8rem 1.4rem;background:#111;color:#fff;text-decoration:none;border-radius:6px;font-weight:500}
.btn:hover{background:#333}
.notfound{padding-top:4rem;padding-bottom:2rem}
.nf-code{margin:0;font:700 clamp(4rem,14vw,7rem)/1 'Space Grotesk',Arial,sans-serif;color:#dadce0}
.notfound h1{margin:.5rem 0 1rem;font-size:clamp(1.8rem,5vw,2.6rem)}
#nf-latest{margin-top:3rem}
#nf-latest[hidden]{display:none}

/* Educators page + forms */
.page-hero{padding-top:3.5rem;padding-bottom:2.5rem;max-width:760px;margin:0 auto}
.page-hero h1{font-size:clamp(2rem,5vw,3rem);margin:.4rem 0 1rem}
.signup{padding:3.5rem 1.5rem 2rem;max-width:640px}
.signup h2{margin:0 0 .5rem}
.signup-form{display:grid;gap:1.1rem}
.signup-form label{display:grid;gap:.35rem;font-weight:500}
.signup-form input[type=text],.signup-form input[type=email],.signup-form select,.signup-form textarea{font:inherit;font-weight:400;padding:.7rem .85rem;border:1px solid #dadce0;border-radius:8px;background:#fff;width:100%}
.signup-form input:focus,.signup-form select:focus,.signup-form textarea:focus{outline:2px solid #111;outline-offset:1px}
.signup-form .check{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;font-size:.95rem}
.signup-form .check input{margin-top:.35rem}
.fine{margin:0;font-size:.85rem;color:#5f6368}
.signup-form .btn{justify-self:start;border:0;font:inherit;font-weight:500;cursor:pointer}
.signup-form .btn:disabled{opacity:.6;cursor:default}
.form-status{margin:0;min-height:1.4em}
.form-status.ok{color:#137333}
.form-status.err{color:#b3261e}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}