/* Shared header appearance on all public pages. */
.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:var(--header);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(18px)
}
.header-inner {
  height:85px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  white-space:nowrap
}
.brand-mark {
  font-size:30px;
  font-weight:700;
  line-height:1;
  letter-spacing:-.1em
}
.brand-mark span {
  color:var(--accent)
}
[data-theme=light] .brand-mark span {
  color:#000;
  text-shadow:3px 2px var(--accent)
}
.brand-word {
  font-family:Code,monospace;
  font-size:12px;
  line-height:1.25;
  text-transform:uppercase;
  letter-spacing:.06em;
  border-left:1px solid var(--line);
  padding-left:14px;
  margin-left:6px
}
.main-nav {
  display:flex;
  gap:27px;
  align-items:center
}
.main-nav a {
  font-size:14px;
  position:relative;
  color:var(--muted);
  padding-block:30px
}
.main-nav a:hover,.main-nav a[aria-current=page] {
  color:var(--ink)
}
.main-nav a::after {
  position:absolute;
  content:'';
  height:2px;
  background:var(--accent);
  bottom:20px;
  inset-inline:0;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s
}
.main-nav a:hover::after,.main-nav a[aria-current=page]::after {
  transform:scaleX(1)
}
.header-actions {
  display:flex;
  align-items:center;
  gap:10px
}
.site-header .icon-btn {
  width:43px;
  height:43px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  background:transparent;
  border-radius:50%;
  transition:background .2s,border-color .2s
}
.site-header .icon-btn:hover {
  background:var(--surface-2);
  border-color:var(--muted)
}
.theme-sun {
  display:block
}
.theme-moon {
  display:none
}
[data-theme=light] .theme-sun {
  display:none
}
[data-theme=light] .theme-moon {
  display:block
}
.menu-toggle {
  display:none
}
.scroll-progress {
  position:absolute;
  inset:auto 0 -1px;
  height:2px;
  background:var(--accent);
  transform-origin:left;
  transform:scaleX(var(--scroll-progress,0));
  pointer-events:none
}

@media(max-width:1100px) { .main-nav { gap:19px } .brand-word { display:none } .header-inner { gap:15px } }
@media(max-width:850px) {
.header-inner { height:72px } .menu-toggle { display:flex }
.main-nav { display:none; position:absolute; top:72px; left:0; right:0; background:var(--bg); border-bottom:1px solid var(--line); padding:16px var(--gutter) 28px; flex-direction:column; align-items:stretch; gap:0; max-height:calc(100dvh - 72px); overflow-y:auto }
.main-nav.is-open { display:flex } .main-nav a { padding:13px 0; font-size:22px } .main-nav a::after { bottom:5px; right:auto; width:25px }
.header-contact { display:none } .brand-word { display:block }
}
@media(max-width:600px) { .brand-word { font-size:10px } .header-actions { gap:7px } .site-header .icon-btn { width:41px; height:41px } }
