{{/* The opening of every page: a full-bleed dark band. On the left, an optional note (the eyebrow), the statement, the dek, the actions; on the right, a terminal typing out an install (when `log:` is set), or the tiles โ€” a three-pane tiled desktop, CoreDesktop's default layout. `visual: false` drops the tiles; `tiles:` relabels the three panes. `video:` (a path without extension, with .webm, .mp4 and .jpg beside it) instead runs a looping screen recording full width under the copy; `videoTitle` sets its window bar and `videoLabel` its description. */}} {{ $s := . }} {{ $visual := and (not $s.video) (or $s.log (ne $s.visual false)) }}
{{ with $s.eyebrow }}

{{ . }}

{{ end }}

{{ $s.title | markdownify }}

{{ with $s.subhead }}

{{ . | markdownify }}

{{ end }} {{ if $s.ctas }}
{{ partial "sections/ctas.html" $s.ctas }}
{{ end }}
{{ if not $s.video }} {{ with $s.log }} {{/* A terminal, typed out line by line (see the script below). Lines take `tag` + `text`; `think: true` marks a waiting step (greyed, with a spinner); `done: true` closes the run. The window keeps a fixed height and scrolls as lines arrive. */}}
{{ $s.logTitle | default "~ $ install.sh" }} Running
    {{ range . }}
  1. {{ .tag | default (cond .done "Done" (cond (.think | default false) "Wait" "")) }} {{ .text }}
  2. {{ end }}
{{ else }} {{ if ne $s.visual false }} {{ $tiles := $s.tiles | default (slice "Editor" "Terminal" "Browser") }} {{ end }} {{ end }} {{ end }}
{{ with $s.video }} {{/* Muted, looping and inline, so it can autoplay. With reduced motion it stays on the poster, with controls to play it (see the script below). */}}
{{ $s.videoTitle | default "CoreDesktop" }}
{{ end }}