/* Shotcrete: sprayed-concrete daylight palette, one safety-yellow marker, flat chamfered slabs. */
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 500 900; font-stretch: 75% 125%; font-display: swap; src: url(fonts/archivo.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/ibm-plex-sans.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

@font-face { font-family: 'Rubik'; font-style: normal; font-weight: 500 900; font-display: swap; src: url(fonts/rubik.woff2) format('woff2'); }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/public-sans.woff2) format('woff2'); }
@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 500 900; font-display: swap; src: url(fonts/source-serif-4.woff2) format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/source-sans-3.woff2) format('woff2'); }

:root {
  color-scheme: light;
  --bg: #c9c6be; --panel: #e4e1da; --ink: #23282b; --muted: #454d51; --edge: #77766f; --line: #b3b0a7;
  --mark: #e8b90c; --on-mark: #23282b; --link: #2f5d7c; --cut: 14px;
  --display: 'Archivo', 'Arial Narrow', sans-serif; --body: 'IBM Plex Sans', system-ui, sans-serif;
}
html[data-scheme="dark"] { color-scheme: dark; --bg: #1d2124; --panel: #2a2f32; --ink: #e4e1da; --muted: #aab0b2; --edge: #7e8689; --line: #3a4145; --link: #8fb8d6; }
* { box-sizing: border-box; margin: 0; }
html { scrollbar-color: var(--edge) var(--bg); }
body { background: var(--bg); color: var(--ink); font: 400 1rem/1.55 var(--body); accent-color: var(--mark); caret-color: var(--mark); }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: var(--tex, .5); mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"); }
html[data-scheme="dark"] body::before { mix-blend-mode: screen; opacity: var(--tex-dark, .18); }
h1, h2, h3, .display { font-family: var(--display); font-stretch: 112%; letter-spacing: -.02em; }
::selection { background: var(--mark); color: var(--on-mark); }
a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
html[data-scheme="dark"] :focus-visible { outline-color: var(--mark); }
[hidden] { display: none !important; }
.sr, .skip:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip:focus { position: fixed; top: .5rem; left: .5rem; z-index: 9; background: var(--mark); color: var(--on-mark); padding: .6rem 1rem; font-weight: 600; }
.wrap { position: relative; max-width: 72rem; margin: 0 auto; padding: 1.25rem 1.25rem 4rem; }
.bar { display: flex; align-items: center; gap: .75rem; min-height: 44px; }
.bar > a:first-child { margin-right: auto; }
.bar a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; text-decoration: none; }
.mk { display: inline-block; width: 1.1rem; height: .7rem; background: var(--mark); margin-right: .6rem; clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 4px, 100% 100%, 4px 100%, 0 calc(100% - 4px)); }
.btn { display: inline-flex; align-items: center; min-height: 44px; padding: .55rem 1.1rem; font: 600 1rem/1.4 var(--body); text-decoration: none; cursor: pointer;
  background: var(--ink); color: var(--panel); border: 0; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); }
.btn:hover { background: var(--mark); color: var(--on-mark); }
.btn.ghost { background: var(--panel); color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.btn.ghost:hover { background: var(--mark); }

.backbtn { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 1rem; font: 600 1rem/1.4 var(--body); text-decoration: none; background: var(--ink); color: var(--panel);
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); }
.backbtn::before { content: ""; width: .9rem; height: .55rem; background: var(--mark); margin-right: .6rem; }
.backbtn:hover { background: var(--mark); color: var(--on-mark); }
.site-foot { margin-top: 4rem; padding-top: 1rem; border-top: 6px solid var(--mark); color: var(--muted); font-size: .95rem; }
.site-foot p { max-width: none; }
.site-foot a.plain { display: inline; min-height: 0; margin: 0; font-weight: 600; }
.site-foot a { display: inline-flex; align-items: center; min-height: 44px; margin-right: 1.25rem; font-weight: 600; }
.schemebtn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; cursor: pointer; background: var(--panel); color: var(--ink); border: 0; box-shadow: inset 0 0 0 2px var(--ink);
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); }
.schemebtn:hover { background: var(--mark); color: var(--on-mark); }
.schemebtn svg { width: 22px; height: 22px; }
.schemebtn .moon { display: none; } html[data-scheme="dark"] .schemebtn .sun { display: none; } html[data-scheme="dark"] .schemebtn .moon { display: block; }
@media print { .backbtn, .schemebtn, .site-foot { display: none; } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
