@font-face{font-family:"Source Serif 4";src:url("../fonts/source-serif-4-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("../fonts/source-serif-4-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("../fonts/source-serif-4-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrains-mono-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{--ink:#16181c;--muted:#5a5e66;--paper:#f7f5f0;--cyan:#0aa3b5;--rule:#0aa3b5}
*{box-sizing:border-box}
html{background:#e4e2db;color:var(--ink);font-size:17px}
body{margin:0;font-family:"Source Serif 4",serif;line-height:1.55;background:
  linear-gradient(to right, transparent 0, transparent calc(50% - 26rem), #0aa3b514 calc(50% - 26rem), #0aa3b514 calc(50% - 26rem + 1px), transparent calc(50% - 26rem + 1px)),
  #e4e2db}
img,picture{max-width:100%;height:auto}
a{color:#075e6a;text-underline-offset:.14em}
h1,h2,h3{font-weight:400;line-height:1.2;margin:0 0 .55rem}
h1{font-size:clamp(1.9rem,4.6vw,2.9rem)}
h2{font-size:clamp(1.25rem,2.2vw,1.65rem);margin-top:1.5rem}
p,ul,ol{margin:0 0 1rem}
li{margin:0 0 .35rem}
figure{margin:1.15rem 0}
.grid-page{max-width:52rem;margin:0 auto;background:var(--paper);min-height:100vh;padding:0 1.15rem 2rem;border-left:1px solid var(--cyan);border-right:1px solid var(--cyan);box-shadow:0 0 0 1px #0aa3b522}
.mast{padding:1rem 0 .85rem;border-bottom:1px solid var(--cyan)}
.rule{height:0;border-top:2px solid var(--cyan);margin:0 0 .55rem}
.iss{font-family:"JetBrains Mono",monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin:0 0 .45rem;display:flex;justify-content:space-between;gap:1rem}
.brand{text-decoration:none;color:var(--ink);display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem}
.name{font-family:"JetBrains Mono",monospace;font-weight:700;font-size:1.7rem;letter-spacing:.08em}
.sub{font-style:italic;color:var(--muted)}
.nav{display:flex;flex-wrap:wrap;gap:.15rem .85rem;margin-top:.7rem;font-family:"JetBrains Mono",monospace;font-size:.78rem;letter-spacing:.04em}
.nav a{text-decoration:none;color:var(--ink);border-bottom:1px solid transparent}
.nav a[aria-current="page"],.nav a:hover{color:#075e6a;border-bottom-color:var(--cyan)}
.main{padding:1.2rem 0 0}
/* Hide Joomla's duplicate page header when the article already has a heading in the body. */
.page-header,.item-title,h1[itemprop="headline"]{display:none}
.kicker{font-family:"JetBrains Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-weight:700;margin:0 0 .3rem}
.dek{font-size:1.05rem;color:var(--muted);margin:0 0 1rem}
.mod-grid{display:grid;gap:.7rem;margin:1rem 0 1.4rem}
@media(min-width:700px){.mod-grid{grid-template-columns:1fr 1fr}}
.mod-grid a{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--cyan);padding:.7rem .8rem}
.mod-grid a h2{font-size:1.25rem;margin:0 0 .2rem}
.mod-grid a p{margin:0;color:var(--muted);font-size:.95rem}
.mono{font-family:"JetBrains Mono",monospace}
.site-foot{margin-top:1.8rem;padding-top:.85rem;border-top:1px solid var(--cyan);font-size:.84rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.4rem 1rem;justify-content:space-between}
.site-foot a{color:var(--muted)}
form.contact label{display:block;font-size:.85rem;font-weight:700;font-family:"JetBrains Mono",monospace;margin:.7rem 0 .25rem}
form.contact input,form.contact textarea{width:100%;max-width:32rem;font:inherit;padding:.45rem .5rem;border:1px solid var(--ink);background:#fff;color:var(--ink)}
form.contact textarea{min-height:9rem}
.hp{position:absolute;left:-8000px;height:1px;width:1px;overflow:hidden}
form.contact button{margin-top:1rem;font-family:"JetBrains Mono",monospace;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;background:var(--ink);color:var(--paper);border:0;padding:.6rem 1rem;cursor:pointer}
.form-errors{border:1px solid #a33;color:#a33;padding:.6rem .8rem;margin:0 0 1rem}
