59 lines
2.7 KiB
HTML
59 lines
2.7 KiB
HTML
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="color-scheme" content="dark">
|
|
<title>
|
|
{{- if .IsHome -}}
|
|
{{ .Site.Title }}
|
|
{{- else -}}
|
|
{{ .Title }} · {{ .Site.Title }}
|
|
{{- end -}}
|
|
</title>
|
|
{{- with .Description }}<meta name="description" content="{{ . }}">{{- end }}
|
|
{{- if not .Description }}{{- with .Site.Params.description }}<meta name="description" content="{{ . }}">{{- end }}{{- end }}
|
|
|
|
{{- /* ── Meta partials ─────────────────────────────────────────── */}}
|
|
{{- partial "meta/seo.html" . -}}
|
|
{{- partial "meta/og.html" . -}}
|
|
{{- partial "meta/ai-disclosure.html" . -}}
|
|
{{- partial "meta/json-ld.html" . -}}
|
|
|
|
{{- /* ── CSS ────────────────────────────────────────────────────── */}}
|
|
{{- if hugo.IsDevelopment }}
|
|
<link rel="stylesheet" href="/vendor/open-props.min.css">
|
|
<link rel="stylesheet" href="/vendor/media.min.css">
|
|
<link rel="stylesheet" href="/css/layers/00-reset.css">
|
|
<link rel="stylesheet" href="/css/layers/01-tokens.css">
|
|
<link rel="stylesheet" href="/css/layers/02-typography.css">
|
|
<link rel="stylesheet" href="/css/layers/03-landmarks.css">
|
|
<link rel="stylesheet" href="/css/layers/04-forms.css">
|
|
<link rel="stylesheet" href="/css/layers/05-components.css">
|
|
<link rel="stylesheet" href="/css/layers/06-navigation.css">
|
|
<link rel="stylesheet" href="/css/layers/07-data-attrs.css">
|
|
<link rel="stylesheet" href="/css/layers/08-utilities.css">
|
|
<link rel="stylesheet" href="/css/layers/09-charts.css">
|
|
<link rel="stylesheet" href="/css/layers/10-chroma.css">
|
|
<link rel="stylesheet" href="/css/layers/11-layout.css">
|
|
<link rel="stylesheet" href="/css/layers/12-landing.css">
|
|
{{- else }}
|
|
<link rel="stylesheet" href="/asw.css">
|
|
{{- end }}
|
|
|
|
{{- range .AlternativeOutputFormats -}}
|
|
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}">
|
|
{{- end }}
|
|
<script>
|
|
// Theme toggle — respects OS preference, persists choice
|
|
(function(){
|
|
var s = localStorage.getItem('theme');
|
|
if (s) document.documentElement.setAttribute('data-theme', s);
|
|
document.addEventListener('click', function(e) {
|
|
var b = e.target.closest('[data-theme-toggle]');
|
|
if (!b) return;
|
|
var current = document.documentElement.getAttribute('data-theme')
|
|
|| (matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark');
|
|
var next = current === 'light' ? 'dark' : 'light';
|
|
document.documentElement.setAttribute('data-theme', next);
|
|
localStorage.setItem('theme', next);
|
|
});
|
|
})();
|
|
</script>
|