@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url("fonts/atkinson-hyperlegible-next-normal.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url("fonts/atkinson-hyperlegible-next-italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
}

/* Neutral text stays readable; teal is reserved for emphasis and links. */
:root,
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #EDF1F3;
  --panel: #F7F9FA;
  --text: #202A30;
  --muted: #52616B;
  --accent: #006B63;
  --line: #C7D1D8;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #080C11;
    --panel: #141B22;
    --text: #E6EDF0;
    --muted: #B6C2C9;
    --accent: #70DED0;
    --line: #28343E;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #080C11;
  --panel: #141B22;
  --text: #E6EDF0;
  --muted: #B6C2C9;
  --accent: #70DED0;
  --line: #28343E;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:"Atkinson Hyperlegible Next",Arial,sans-serif; font-size:1.0625rem; line-height:1.75; overflow-wrap:break-word; }
a { color:var(--accent); text-underline-offset:.24em; text-decoration-thickness:1px; }
a:hover { text-decoration-thickness:2px; }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
.wrap { width:min(100% - 3rem, 58rem); margin-inline:auto; }
.site-header { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; padding-block:2rem; }
.wordmark { color:var(--text); text-decoration:none; font-weight:650;  font-size:1.25rem; margin-right:auto; }
.wordmark span,.accent { color:var(--accent); }
nav { display:flex; gap:1.4rem; flex-wrap:wrap; }
nav a { color:var(--muted); display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
nav a[aria-current] { color:var(--accent); text-decoration-thickness:2px; }
button { font:inherit; font-size:.875rem; color:var(--text); border:1px solid var(--muted); background:transparent; padding:.5rem .75rem; border-radius:.3rem; cursor:pointer; min-height:44px; }
#theme-toggle { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; flex-shrink:0; }
.theme-icon { pointer-events:none; }
.theme-icon-sun { display:none; }
:root[data-theme="dark"] .theme-icon-sun { display:block; }
:root[data-theme="dark"] .theme-icon-moon { display:none; }
[hidden] { display:none !important; }
.skip-link { position:absolute; top:-6rem; left:1rem; background:var(--bg); padding:.6rem 1rem; z-index:2; }
.skip-link:focus { top:1rem; }
.hero { padding-block:5.5rem 4.5rem; max-width:48rem; }
.eyebrow { color:var(--accent); text-transform:uppercase; letter-spacing:.14em; font-size:.8rem; font-weight:600; }
h1,h2,h3 { line-height:1.2;  font-weight:600; }
h1 { font-size:clamp(2.6rem,7vw,4.5rem); margin:.4em 0; }
h2 { font-size:1.6rem; }
h3 { font-size:1.2rem; }
.lede { font-size:clamp(1.35rem,3.4vw,1.85rem); line-height:1.5;  }
.intro { max-width:41rem; color:var(--muted); }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem 1.5rem; margin-top:1.5rem; }
.hero-actions a { display:inline-flex; align-items:center; gap:.35rem; min-height:44px; }
.hero-primary { font-weight:600; }
.hero-secondary { color:var(--muted); font-size:.95rem; }
.contact-address { overflow-wrap:anywhere; }
.home-section { padding-block:2rem 3rem; border-top:1px solid var(--line); }
.section-heading { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.section-heading h2 { margin:0; }
.section-heading a { font-size:.95rem; }
.muted { color:var(--muted); }
.entry { padding-block:1.5rem; border-bottom:1px solid var(--line); }
.entry h2,.entry h3 { margin:.4rem 0; }
.entry p { margin:.5rem 0; }
.page-heading { padding-block:3.5rem 2rem; }
.prose { max-width:44rem; }
.prose h2 { margin-top:2.5rem; }
pre { overflow-x:auto; background:var(--panel); padding:1.2rem; border:1px solid var(--line); border-radius:.3rem; }
code { font-family:ui-monospace,monospace; font-size:.9em; }
:not(pre)>code { background:var(--panel); padding:.1em .3em; }
blockquote { margin-inline:0; padding-left:1.5rem; border-left:3px solid var(--accent); }
img { max-width:100%; height:auto; }
.site-footer { display:flex; gap:1.5rem; flex-wrap:wrap; margin-top:5rem; padding-block:2rem; border-top:1px solid var(--line); font-size:.9rem; color:var(--muted); }
.site-footer span { margin-right:auto; }
.site-footer a { min-width:0; max-width:100%; overflow-wrap:anywhere; }
@media (max-width:600px) { .site-header { gap:1rem; padding-block:1.4rem; } .wordmark { flex-basis:100%; } nav { gap:1rem; } #theme-toggle { margin-left:auto; } .hero { padding-block:3rem; } .wrap { width:calc(100% - 2rem); } .page-heading { padding-top:2rem; } }

.about-portrait { float:right; width:15rem; max-width:42%; height:auto; margin:.5rem 0 1.5rem 2rem; border:1px solid var(--line); border-radius:.5rem; image-orientation:from-image; }
.prose::after { content:""; display:block; clear:both; }
@media (max-width:600px) { .about-portrait { float:none; display:block; width:15rem; max-width:100%; margin:0 0 2rem; } }
