  /* app.pulse's presentation (#387 decision 13): today's app.pulse login
     page (the login/ folder on the FTP host: its own inline
     style over Bootstrap 2 and style.css), recreated as a look of this
     page, under body.app-pulse, which the script sets from the OAuth
     context's client_id. The markup, script, steps and messages are the
     page's own; this block and the class are all that differ.
     Carried over: the photograph behind everything (login/
     background_large.jpg, re-encoded at 1280 px), the logo
     (logo1-default.png) top left, the white card at 80% with its black
     shadow and square corners (style.css sets border-radius 0 on
     everything), the heading in Ubuntu at 18pt in #555, the inputs at
     14pt with Bootstrap 2's blue focus glow, the red Sign In button at the
     right with the small "forgot your password?" link at its left, and
     the error line in #c00. Changed on purpose: Email for Username, the
     passkey button (in the grey of the old HomeSeller button), and the
     line saying who resets a Pulse Research password (decision 9). Gone
     with HomeSeller: its form. Nothing from another host: the images and
     the one face are this site's files in crates/api/assets/app-pulse/,
     which bin/publish-asset.sh publishes immutable under /assets/app-pulse/
     by the hash of their bytes (#487), so a page without body.app-pulse
     never fetches them, and the page itself, which is no-store, stays
     small. A changed file is a new name: sign_in_page.rs names the URL
     to write here. The old page sets its text in Ubuntu
     Regular from Google Fonts; here that face is Ubuntu-Regular.ttf from
     the google/fonts repository (Ubuntu Font Licence 1.0), subset to
     Google's latin range as bin/subset-fonts.sh subsets, under a family
     name of its own so no other page's Ubuntu picks it up. Light in both
     themes, as the old page is. */
  @font-face {
    font-family: "App Pulse Ubuntu";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/assets/app-pulse/ubuntu.af251d5c708e.woff2") format("woff2");
  }
  body.app-pulse {
    background: #222 url("/assets/app-pulse/background.ab0a3bd155c8.jpg") top left / cover no-repeat;
    color: #333;
    font-family: "App Pulse Ubuntu", Ubuntu, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 14px;
    line-height: 20px;
  }
  body.app-pulse::before, body.app-pulse::after { display: none; }
  body.app-pulse header {
    box-sizing: border-box;
    width: 100%;
    max-width: 1210px;
    height: 90px;
    margin: 0 auto;
    padding: 35px 20px 0;
  }
  body.app-pulse .wordmark {
    display: block;
    width: 103px;
    height: 39px;
    background: url("/assets/app-pulse/logo.986df6119099.png") no-repeat;
    font-size: 0;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  body.app-pulse main { padding: 20px 20px 40px; }
  body.app-pulse .login-wrap { max-width: 720px; }
  body.app-pulse .card {
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.8);
    border: 0;
    border-radius: 0;
    box-shadow: 3px 3px 10px #000;
    -webkit-backdrop-filter: none;
            backdrop-filter: none;
    padding: 65px 55px 55px;
    color: #333;
    font-size: 14px;
    line-height: 20px;
    text-align: right;
  }
  @media (max-width: 500px) { body.app-pulse .card { padding: 40px 25px; } }
  body.app-pulse .card h1 {
    margin: 5px 0 10px;
    color: #555;
    font-family: "App Pulse Ubuntu", Ubuntu, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 18pt;
    font-weight: 400;
    line-height: 40px;
    text-align: left;
    text-shadow: 0 0 1px #f6f6f6;
  }
  body.app-pulse .card h2 { color: #555; font-weight: 400; text-align: left; }
  body.app-pulse .card p { color: #555; text-align: left; }
  body.app-pulse .card a { color: #555; text-decoration: none; }
  body.app-pulse .card a:hover { color: #cc2233; text-decoration: underline; }
  body.app-pulse .form-input {
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 12px;
    padding: 5px 10px;
    background: #fff;
    border: 1px solid #999;
    border-radius: 0;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    color: #555;
    font-family: "App Pulse Ubuntu", Ubuntu, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 14pt;
    line-height: 20px;
    text-align: left;
  }
  body.app-pulse .form-input::placeholder { color: #999; }
  body.app-pulse .form-input:focus {
    outline: 0;
    border-color: rgba(82, 168, 236, 0.8);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  }
  body.app-pulse .btn-primary, body.app-pulse .btn-secondary {
    display: inline-block;
    width: auto;
    margin: 0;
    padding: 5px 10px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: #fff;
    font-family: "App Pulse Ubuntu", Ubuntu, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 12pt;
    font-weight: 400;
    letter-spacing: normal;
    line-height: 20px;
    transform: none;
    transition: none;
  }
  body.app-pulse .btn-primary { background: #a00; }
  body.app-pulse .btn-primary::before { display: none; }
  body.app-pulse .btn-primary:hover { box-shadow: none; }
  body.app-pulse .btn-secondary { display: table; margin: 12px 0 0 auto; background: #777; }
  body.app-pulse .btn-secondary:hover { background: #777; }
  body.app-pulse .forgot { display: inline; float: left; font-size: 10pt; line-height: 30px; }
  body.app-pulse .forgot-help { display: block; clear: both; margin: 14px 0 0; font-size: 10pt; line-height: 1.4; }
  body.app-pulse .notice, body.app-pulse .notice:not(.notice--error) {
    margin: 0 0 10px;
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    color: #555;
    font-size: 14px;
    text-align: left;
  }
  body.app-pulse .notice.notice--error { color: #c00; }
  body.app-pulse .pw-field .form-input { padding-right: 40px; }
  body.app-pulse .pw-toggle { color: #555; border-radius: 0; }
  body.app-pulse .card .pw-rules { margin: -4px 0 12px; color: #555; font-size: 10pt; }
  body.app-pulse .pw-rules [data-met="true"] { color: #333; }
  body.app-pulse .pw-rules [data-met="true"] .mark { color: #555; }
  body.app-pulse footer { display: none; }
