{# Standalone like login.html, and for the same reason: it is one of the two
documents somebody sees before there is a session to build a header from. #}
Sign in · {{ brand_name | default('little sister') }}
{#- The browser's theme, not this session's — there is no session yet, and the look
should survive a logout and greet the next person the way it was left. Same as
login.html's, which is the page this one stands in for. -#}
{% include '_theme_bootstrap.html' %}
{# The brand introduces itself here exactly as it does on the login
form: this is the first thing a new user sees, so it says who is
watching before it asks anything of them. #}
{% set brand_figure = 'gaze' %}
{% include '_brand.html' %}
{#- One link per door and nothing else on the page. The default door
first and filled, because on an ordinary day it is the answer and
the others are not; the rest follow in the registry's own order,
which is by name. Links rather than buttons in a form: each one is
a different address, and a door takes a credential at its own
route (ADR-0069 §4). -#}
{% for door in doors %}
{{ door.label }}
{%- else %}
{#- Nothing to offer. Without this the page is a heading over an
empty list, which is what a locked-out operator was left with:
the brand, the tagline and no word about why there is no
button. The sentence is built in `identity._no_way_in`, where
the two states — nothing registered, versus everything
registered and none of it able to take a credential — can be
told apart. -#}