
/* Skip link: off-screen until keyboard focus */
html body a.skip:not(:focus):not(:focus-visible){
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  border:0 !important;
  white-space:nowrap !important;
}
html body a.skip:focus,
html body a.skip:focus-visible{
  position:fixed !important;
  left:8px !important;
  top:8px !important;
  width:auto !important;
  height:auto !important;
  padding:10px 18px !important;
  margin:0 !important;
  overflow:visible !important;
  clip:auto !important;
  border:1px solid var(--line) !important;
  background:var(--paper) !important;
  color:var(--ink) !important;
  text-decoration:none !important;
  z-index:300 !important;
  white-space:normal !important;
  outline:2px solid var(--ink);
  outline-offset:2px;
}

/* Shared site header chrome — order: brand → nav → search → language → theme; mobile drawer */
.site-header{
  position:sticky;top:0;z-index:80;
  background:color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter:saturate(1.1) blur(10px);
  -webkit-backdrop-filter:saturate(1.1) blur(10px);
}
.site-header .header-inner{
  display:flex;align-items:center;gap:16px 20px;
  min-height:64px;padding:10px 0;
  border-bottom:1px solid var(--line);
}
.site-header .brand-lockup{
  display:inline-flex;align-items:center;flex-shrink:0;order:1;
}
.site-header .wordmark{
  font-size:17px;font-weight:600;letter-spacing:.025em;white-space:nowrap;
  color:var(--ink);text-decoration:none;
}
.site-header .wordmark span{margin-left:7px;font-size:12px;font-weight:400;color:var(--muted)}
.site-header .cover-sep{margin:0 8px;color:var(--line);font-weight:300}
.site-header .cover-link{
  font-size:13px;letter-spacing:.04em;color:var(--muted);text-decoration:none;flex-shrink:0;
}
.site-header .cover-link:hover{color:var(--ink)}
.site-header .desktop-nav{
  display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;
  margin-left:auto;order:2;font-size:14px;
}
.site-header .desktop-nav a{
  color:var(--muted);text-decoration:none;padding:6px 12px;border-radius:2px;line-height:1.2;
}
.site-header .desktop-nav a:hover{color:var(--ink)}
.site-header .desktop-nav a[aria-current="page"]{
  background:var(--ink);color:var(--inverse,#fff);
}
.site-header .header-controls{
  display:flex;align-items:center;gap:4px;flex-shrink:0;order:3;margin-left:4px;
}
.site-header .header-controls .icon-button,
.site-header .nav-menu-toggle{
  border:0;background:transparent;color:var(--ink);
  width:40px;height:40px;display:inline-grid;place-items:center;cursor:pointer;
}
.site-header .header-controls .icon-button:hover,
.site-header .nav-menu-toggle:hover{color:var(--accent)}
.site-header .language-control{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.site-header .language-select{
  border:0;background:transparent;color:var(--ink);font:inherit;font-size:13px;max-width:84px;cursor:pointer;
}
.site-header .nav-menu-toggle{display:none}
.site-header .nav-menu-toggle .icon-close{display:none}
.site-header .nav-menu-toggle[aria-expanded="true"] .icon-menu{display:none}
.site-header .nav-menu-toggle[aria-expanded="true"] .icon-close{display:block}

/* Drawer — must live outside .site-header (backdrop-filter creates containing block) */
.nav-drawer[hidden]{display:none !important}
.nav-drawer{
  position:fixed;
  inset:0;
  z-index:300;
  pointer-events:auto;
}
.nav-drawer-backdrop{
  position:absolute;inset:0;border:0;padding:0;cursor:pointer;
  background:color-mix(in srgb, var(--ink) 45%, transparent);
}
.nav-drawer-panel{
  position:absolute;top:0;right:0;height:100%;height:100dvh;
  width:min(320px,86vw);
  background:var(--paper);color:var(--ink);
  border-left:1px solid var(--line);
  box-shadow:-16px 0 40px color-mix(in srgb, var(--ink) 18%, transparent);
  display:flex;flex-direction:column;
  box-sizing:border-box;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
.nav-drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  min-height:64px;padding:0 16px;border-bottom:1px solid var(--line);
  flex:0 0 auto;
  background:var(--paper);
}
.nav-drawer-title{font-size:14px;letter-spacing:.08em;color:var(--soft)}
.nav-drawer .mobile-nav{
  display:flex;flex-direction:column;gap:0;
  padding:8px 0 24px;
  flex:1 1 auto;
}
.nav-drawer .mobile-nav a{
  display:flex;align-items:center;
  min-height:48px;padding:0 20px;
  color:var(--ink);text-decoration:none;font-size:16px;
  border-bottom:1px solid transparent;
}
.nav-drawer .mobile-nav a:hover{background:var(--wash)}
.nav-drawer .mobile-nav a[aria-current="page"]{
  background:var(--ink);color:var(--paper);
}
body.nav-drawer-open{overflow:hidden}

@media (max-width:900px){
  .site-header .desktop-nav{display:none}
  .site-header .nav-menu-toggle{display:inline-grid}
  .site-header .header-inner{gap:10px}
  .site-header .header-controls{margin-left:auto}
  .site-header .brand-lockup{min-width:0}
  .site-header .wordmark{font-size:15px}
}
@media (max-width:520px){
  .site-header .cover-sep,
  .site-header .cover-link{display:none}
  .site-header .translation-icon{display:none}
}


a.article.is-featured,
a.card-as-link{
  display:flex;flex-direction:column;align-items:stretch;
  text-decoration:none;color:inherit;cursor:pointer;
}
a.article.is-featured .article-action,
a.card-as-link .article-action{
  pointer-events:none;
}
a.article.is-featured:hover .article-action,
a.card-as-link:hover .article-action{
  text-decoration:underline;text-underline-offset:5px;
}
a.article.is-featured:focus-visible,
a.card-as-link:focus-visible{
  outline:2px solid var(--ink);outline-offset:3px;
}


/* Site search dialog results */
#search-dialog{
  padding:22px 24px;
  width:min(860px, calc(100% - 24px));
  max-height:calc(100dvh - 32px);
  overflow:auto;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
}
#search-dialog::backdrop{
  background:color-mix(in srgb, var(--ink) 45%, transparent);
}
.search-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.site-search{width:100%;margin:0;padding:16px 0 0;border:0}
.site-search label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}
.search-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
#site-search-input{
  flex:1 1 220px;min-height:42px;padding:0 14px;
  border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;
}
.search-controls button{
  min-height:42px;padding:0 14px;border:1px solid var(--line);
  background:var(--ink);color:var(--paper);font:inherit;font-size:13px;cursor:pointer;
}
#search-clear{background:transparent;color:var(--muted)}
.search-filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 8px}
.search-filter{
  border:1px solid var(--line);background:transparent;color:var(--muted);
  min-height:32px;padding:0 12px;font:inherit;font-size:13px;cursor:pointer;border-radius:999px;
}
.search-filter:hover{color:var(--ink);border-color:var(--ink)}
.search-filter.is-active{background:var(--ink);color:var(--inverse,#fff);border-color:var(--ink)}
#search-status{margin:8px 0 4px;font-size:13px;color:var(--muted)}
#search-matches{display:flex;flex-direction:column}
.search-result{border-top:1px solid var(--line);padding:16px 0;display:grid;gap:6px}
.search-result-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.search-result-date{font-size:12px;color:var(--soft);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.search-result-title{
  display:block;font:inherit;font-size:18px;line-height:1.55;text-align:left;
  color:var(--ink);text-decoration:none;padding:2px 0;
}
.search-result-title:hover{color:var(--accent,#2455a4)}
.search-result-summary{margin:0;font-size:14px;line-height:1.75;color:var(--muted)}
.search-tag{
  display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;
  font-size:12px;letter-spacing:.04em;border:1px solid var(--line);color:var(--muted);background:var(--wash,transparent);
}
.search-tag-journal{color:var(--accent,#2455a4);border-color:color-mix(in srgb,var(--accent,#2455a4) 35%, var(--line))}
.search-tag-papers{color:var(--ink)}
.search-tag-books{color:var(--ink)}
.search-tag-blog{color:var(--muted)}

/* Day/night brief fade — avoid hard flash */
html.theme-fade,
html.theme-fade body{
  transition: background-color .28s ease, color .28s ease;
}
html.theme-fade body,
html.theme-fade .site-header,
html.theme-fade .wrap,
html.theme-fade .article,
html.theme-fade .paper-card,
html.theme-fade .post-line{
  transition: background-color .28s ease, color .28s ease, border-color .28s ease;
}
@media (prefers-reduced-motion: reduce){
  html.theme-fade,
  html.theme-fade body,
  html.theme-fade .site-header,
  html.theme-fade .wrap,
  html.theme-fade .article,
  html.theme-fade .paper-card,
  html.theme-fade .post-line{ transition: none !important; }
}

/* —— Mobile polish (375 / 390 / 430) —— */
.floating-top,
#floating-top{
  position:fixed;
  right:max(16px, env(safe-area-inset-right, 0px));
  bottom:calc(16px + env(safe-area-inset-bottom, 0px));
  z-index:45;
  width:44px;height:44px;min-width:44px;min-height:44px;
  display:grid;place-items:center;
  padding:0;
  box-sizing:border-box;
}

@media (max-width:430px){
  .site-header .icon-button,
  .site-header .nav-menu-toggle,
  .site-header .appearance-toggle{
    width:44px;height:44px;min-width:44px;min-height:44px;
  }
  .site-header .language-select{
    min-height:44px;font-size:14px;max-width:96px;padding-inline:4px;
  }
  .site-header .language-control{
    min-height:44px;align-items:center;
  }
  .site-header .header-inner{
    min-height:56px;padding:6px 0;
  }
  .site-header .wordmark{font-size:14px}
  
  
  
  

  /* Common card grids across content pages */
  .article-grid,
  .featured-grid,
  .category-columns,
  .topic-columns,
  .eco-columns,
  .papers-featured-grid{
    grid-template-columns:1fr !important;
  }
  .article h3,
  .article-title,
  .post-line-title,
  .category-card h3,
  .topic-card h3,
  .eco-card h3{
    font-size:clamp(17px, 4.6vw, 20px);
    line-height:1.4;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
  }
  .solid-link,
  .hero-cta,
  .btn-read,
  .btn-download,
  .read-btn,
  .enter-site,
  .text-link.paper-list-enter,
  .filter-pill,
  .search-controls button,
  #site-search-input{
    min-height:44px;
  }
  .filter-pill{padding:10px 14px}
  .wrap{width:calc(100% - 32px)}
}

@media (max-width:900px){
  .site-header .header-controls .icon-button,
  .site-header .nav-menu-toggle,
  .site-header .appearance-toggle{
    min-width:44px;min-height:44px;width:44px;height:44px;
  }
}


/* ===== Canonical header (match /home; kill page-local double borders) ===== */
.site-header{
  position:sticky !important;
  top:0 !important;
  z-index:80 !important;
  border:0 !important;
  border-bottom:none !important;
  box-shadow:none !important;
  background:color-mix(in srgb, var(--paper) 92%, transparent) !important;
  backdrop-filter:saturate(1.1) blur(10px) !important;
  -webkit-backdrop-filter:saturate(1.1) blur(10px) !important;
}
.site-header .header-inner,
.journal-page .site-header .header-inner,
.papers-page .site-header .header-inner,
.books-page .site-header .header-inner{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:16px 20px !important;
  min-height:64px !important;
  padding:10px 0 !important;
  border:0 !important;
  border-bottom:1px solid var(--line) !important;
  box-sizing:border-box !important;
  width:100% !important;
}
.site-header .brand-lockup{order:1 !important;flex:0 0 auto !important}
.site-header .desktop-nav,
.journal-page .site-header .desktop-nav{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  width:auto !important;
  flex:0 1 auto !important;
  flex-basis:auto !important;
  order:2 !important;
  margin-left:auto !important;
  margin-right:0 !important;
  margin-top:0 !important;
  padding:0 !important;
  justify-content:flex-start !important;
  gap:8px 12px !important;
  font-size:14px !important;
}
.site-header .header-controls{
  order:3 !important;
  flex:0 0 auto !important;
  margin-left:4px !important;
  display:flex !important;
  align-items:center !important;
  gap:4px !important;
}
.site-header .nav-menu-toggle{display:none !important}
.site-header .desktop-nav a{
  color:var(--muted) !important;
  text-decoration:none !important;
  padding:6px 12px !important;
  border-radius:2px !important;
  line-height:1.2 !important;
  background:transparent !important;
}
.site-header .desktop-nav a:hover{color:var(--ink) !important}
.site-header .desktop-nav a[aria-current="page"]{
  background:var(--ink) !important;
  color:var(--inverse, #fff) !important;
}
@media (max-width:900px){
  .site-header .desktop-nav,
  .journal-page .site-header .desktop-nav{
    display:none !important;
  }
  .site-header .nav-menu-toggle{display:inline-grid !important}
  .site-header .header-controls{margin-left:auto !important}
  .site-header .header-inner{flex-wrap:nowrap !important;gap:10px !important}
}
