/* ============================================================================
   Previously — /signin/ page styles (new static base, 2026-09-29)
   Production path: css/signin.css
   Tokens only. Dark-first noir cinematic. Zero emerald, zero gold.
   One H1 lives in the hero (the page HTML). No inline styles anywhere.
   ============================================================================ */

/* ---------- utility hero ---------- */
.pv-auth-hero{
  text-align:center;
  padding:clamp(56px, 10vw, 96px) var(--pv-gutter-sm) clamp(8px, 3vw, 24px);
  background:radial-gradient(60% 90% at 50% 0%, rgba(var(--brand-red-rgb),.10), transparent 70%),
    var(--pv-noir);
}.pv-auth-hero__title{
  font-family:var(--pv-serif);
  font-size:var(--pv-display);
  line-height:var(--pv-leading-display);
  letter-spacing:var(--pv-track-tight);
  color:var(--pv-ivory);
  margin:0;
}.pv-auth-hero__sub{
  color:var(--pv-ivory-dim);
  font-size:var(--pv-lede);
  line-height:var(--pv-leading-body);
  margin:12px auto 0;
  max-width:46ch;
}/* ---------- auth card ---------- */
#main{
  max-width:560px;
  margin:0 auto;
  padding:var(--pv-s8) var(--pv-gutter-sm) var(--pv-s24);
}.pv-auth-card{
  background:var(--pv-noir-2);
  border:1px solid var(--pv-rule);
  border-radius:var(--pv-r-card);
  box-shadow:var(--pv-shadow-card);
  padding:var(--pv-s8) var(--pv-s6);
}.pv-auth-card h2{
  font-family:var(--pv-serif);
  font-size:var(--pv-h3);
  font-weight:600;
  letter-spacing:var(--pv-track-tight);
  color:var(--pv-ivory);
  margin:0;
}.pv-sub{
  color:var(--pv-ivory-dim);
  font-size:var(--pv-body-sm);
  line-height:var(--pv-leading-ui);
  margin:8px 0 20px;
}.pv-center{ text-align:center; }/* ---------- save-moment title chip ---------- */
.pv-savetitle{
  display:flex; gap:12px; align-items:center;
  background:var(--pv-noir-3);
  border:1px solid var(--pv-rule);
  border-radius:12px;
  padding:10px; margin-bottom:18px;
}.pv-savetitle[hidden]{ display:none !important; }.pv-thumb{
  width:46px; height:66px; border-radius:8px; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:20px; color:var(--pv-ivory-dim);
  background:var(--pv-noir-3); position:relative; overflow:hidden;
}.pv-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; border:0; }.pv-thumb img[hidden]{ display:none !important; }.pv-st{ font-weight:700; font-size:15px; color:var(--pv-ivory); }.pv-sy{ color:var(--pv-ivory-dim); font-size:12.5px; margin-top:2px; }/* ---------- buttons ---------- */
.pv-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; min-height:var(--pv-target-min);
  padding:15px; border-radius:13px;
  font-size:16px; font-weight:700; font-family:var(--pv-sans);
  margin-bottom:10px; cursor:pointer; text-decoration:none;
  transition:transform .12s ease, background .18s ease, border-color .18s ease;
  box-sizing:border-box;
}.pv-btn:active{ transform:scale(.98); }.pv-btn:focus-visible{ outline:var(--pv-focus-outline); outline-offset:2px; }.pv-btn-primary{
  background:var(--pv-noir-3);
  color:var(--pv-ivory);
  border:1px solid rgba(var(--desert-ink-rgb), .14);
}.pv-btn-primary:hover{ background:var(--desert-pressed); }.pv-btn-primary:disabled{ opacity:.6; cursor:default; }.pv-btn-pearl{
  background:transparent; color:var(--pv-ivory);
  border:1px solid rgba(var(--desert-ink-rgb), .35);
}.pv-btn-pearl:hover{ border-color:rgba(var(--desert-ink-rgb), .7); }.pv-btn[hidden]{ display:none !important; }.pv-btn-text{
  color:var(--pv-ivory-dim); font-size:14.5px; font-weight:600;
  padding:10px; width:100%; border:none; background:none;
  cursor:pointer; font-family:var(--pv-sans);
}.pv-btn-text:hover{ color:var(--pv-ivory); }.pv-btn-text:disabled{ opacity:.55; cursor:default; }.pv-btn-text:disabled:hover{ color:var(--pv-ivory-dim); }.pv-fineprint{
  text-align:center; color:var(--pv-ivory-dim);
  font-size:12px; margin-top:8px; line-height:1.5;
}.pv-errortext{
  text-align:center; color:var(--pv-red-ember);
  font-size:13.5px; font-weight:600; margin:10px 0 4px; line-height:1.5;
}.pv-errortext[hidden]{ display:none !important; }/* ---------- email pane ---------- */
.pv-stepbar{ display:flex; gap:6px; margin:0 0 16px; }.pv-stepbar i{ flex:1; height:4px; border-radius:4px; background:rgba(var(--desert-ink-rgb), .14); }.pv-stepbar i.on{ background:var(--pv-ivory); }.pv-label{
  display:block; font-size:var(--pv-label);
  text-transform:uppercase; letter-spacing:var(--pv-track-md);
  color:var(--pv-ivory-dim); margin:0 0 8px;
}.pv-emailfield{
  width:100%; background:var(--pv-noir);
  border:1px solid var(--pv-rule); border-radius:12px;
  color:var(--pv-ivory); font-size:16px;
  padding:15px 14px; margin-bottom:12px; box-sizing:border-box;
  font-family:var(--pv-sans);
}.pv-emailfield:focus{ outline:var(--pv-focus-outline); outline-offset:-1px; }.pv-emailfield::placeholder{ color:var(--pv-ivory-dim); }/* ---------- wait pane ---------- */
.pv-mailart{
  width:64px; height:64px; border-radius:18px;
  background:var(--pv-noir-3); color:var(--pv-ivory);
  display:flex; align-items:center; justify-content:center;
  margin:6px auto 14px;
  border:1px solid var(--pv-rule);
}.pv-sentto{ color:var(--pv-ivory); }.pv-count{ color:var(--pv-ivory); font-weight:700; }/* ---------- busy pane ---------- */
.pv-busy{ text-align:center; padding:20px 0; }.pv-spinner{
  width:22px; height:22px; border-radius:50%;
  border:3px solid rgba(var(--desert-ink-rgb), .25); border-top-color:var(--pv-ivory);
  animation:pv-spin .8s linear infinite; margin:26px auto 12px;
}@keyframes pv-spin{to{ transform:rotate(360deg); } }@media (prefers-reduced-motion:reduce){.pv-btn, .pv-spinner{ transition:none; animation-duration:2s; }
}/* ---------- toast (shared auth module) ---------- */
.pv-auth-toast{
  position:fixed; z-index:var(--pv-z-toast);
  left:16px; right:16px; bottom:calc(20px + env(safe-area-inset-bottom));
  background:var(--pv-ivory); color:var(--pv-noir);
  border-radius:14px; padding:14px 16px;
  font-weight:700; font-size:14.5px; font-family:var(--pv-sans);
  transform:translateY(140%); transition:transform .35s var(--pv-ease);
  box-shadow:var(--pv-shadow-pop); pointer-events:none;
  box-sizing:border-box;
}.pv-auth-toast[data-kind="error"]{ background:var(--pv-red); color:var(--pv-on-red); }.pv-auth-toast.on{ transform:translateY(0); }@media (min-width:1024px){.pv-auth-toast{ left:auto; right:28px; width:360px; }
}/* ---------- phone ---------- */
@media (max-width:480px){
  .pv-auth-card { padding:var(--pv-s6) var(--pv-s4); }
  .pv-auth-hero__sub { font-size:var(--pv-body); }
}/* ---------- OAuth (Google/Apple) — James's order 2026-10-02 ---------- */
.pv-oauth-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:18px 0 14px;
  color:rgba(var(--desert-ink-rgb), .45);
  font-size:13px;
}.pv-oauth-divider::before,
.pv-oauth-divider::after{
  content:"";
  flex:1;
  height:1px;
  background:rgba(var(--desert-ink-rgb), .14);
}.pv-oauth-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  margin-top:10px;
}.pv-oauth-btn svg{ flex:none; }

/* ============================================================================
   BLACK CONVERSION — 2026-10-16 · Account & Library overhaul completion
   ----------------------------------------------------------------------------
   Scoped token override, in the pattern of the shipped account family
   (account.css, stamp 20261016ov1): the global token files keep their
   values for unconverted families; this page's own stylesheet loads after
   them and redefines the anchors to the house black scheme —
   #000000 ground · #101010/#1B1B1B surfaces · #2C2C2C lines · silver
   #A5ACAF · signal red #E10600 accents only · 'Previously Display'
   (Marathon) display type. Scheme + type only: no copy, layout, or
   function changes. The house scheme is dark in BOTH device schemes,
   so the values are mirrored under prefers-color-scheme: light.
   ========================================================================== */
:root {
  color-scheme: dark;
  --desert-bg: #000000;
  --desert-card: #101010;
  --desert-pressed: #2C2C2C;
  --desert-bg-rgb: 0, 0, 0;
  --desert-card-rgb: 16, 16, 16;
  --desert-pressed-rgb: 44, 44, 44;
  --desert-ink: #F5F5F5;
  --desert-ink-rgb: 245, 245, 245;
  --desert-ink-dim: rgba(245, 245, 245, .72);
  --desert-ink-faint: rgba(245, 245, 245, .55);
  --desert-rule: #2C2C2C;
  --desert-accent: #E10600;
  --desert-accent-deep: #A80400;
  --desert-accent-rgb: 225, 6, 0;
  --desert-accent-deep-rgb: 168, 4, 0;
  --desert-accent-soft: rgba(225, 6, 0, .14);
  --desert-accent-faint: rgba(225, 6, 0, .08);
  --desert-accent-glow: rgba(225, 6, 0, .35);
  --desert-accent-glow-lg: rgba(225, 6, 0, .55);
  --desert-accent-ember: #FF6B4A;
  --desert-accent-ember-rgb: 255, 107, 74;
  --desert-shadow-rgb: 0, 0, 0;
  --desert-glass: rgba(0, 0, 0, .88);
  --brand-red: #E10600;
  --brand-red-deep: #A80400;
  --brand-red-rgb: 225, 6, 0;
  --surface-cream: #000000;
  --pv-noir: #000000;
  --pv-noir-2: #101010;
  --pv-noir-3: #1B1B1B;
  --pv-ivory: #F5F5F5;
  --pv-ivory-dim: #A5ACAF;
  --pv-ivory-faint: rgba(245, 245, 245, .52);
  --pv-rule: #2C2C2C;
  --pv-glass: rgba(0, 0, 0, .88);
  --pv-red: #E10600;
  --pv-red-deep: #A80400;
  --pv-red-ink: #FF6B4A;
  --pv-red-glow: rgba(225, 6, 0, .35);
  --pv-red-glow-lg: rgba(225, 6, 0, .55);
  --pv-on-red: #FFFFFF;
  --pv-serif: 'Previously Display', Georgia, 'Times New Roman', serif;
  --pv-shadow-card: 0 18px 44px rgba(0, 0, 0, .5);
  --pv-shadow-pop: 0 40px 120px rgba(0, 0, 0, .6), 0 0 0 1px rgba(225, 6, 0, .28);
  --pv-shadow-bar: 0 8px 28px rgba(0, 0, 0, .45);
  --pv-shadow-btn: 0 10px 34px rgba(225, 6, 0, .35);
  --pv-shadow-btn-lg: 0 16px 44px rgba(225, 6, 0, .55);
  --pv-shadow-card-hover: 0 14px 34px rgba(0, 0, 0, .5);
  --pv-shadow-chip-hover: 0 8px 20px rgba(0, 0, 0, .4);
  --pv-focus-outline: 2px solid #E10600;
  --pv-focus-ring: 0 0 0 3px rgba(225, 6, 0, .35);
}
@media (prefers-color-scheme: light) {
  :root {
    color-scheme: dark;
    --desert-bg: #000000;
    --desert-card: #101010;
    --desert-pressed: #2C2C2C;
    --desert-bg-rgb: 0, 0, 0;
    --desert-card-rgb: 16, 16, 16;
    --desert-pressed-rgb: 44, 44, 44;
    --desert-ink: #F5F5F5;
    --desert-ink-rgb: 245, 245, 245;
    --desert-ink-dim: rgba(245, 245, 245, .72);
    --desert-ink-faint: rgba(245, 245, 245, .55);
    --desert-rule: #2C2C2C;
    --desert-accent: #E10600;
    --desert-accent-deep: #A80400;
    --desert-accent-rgb: 225, 6, 0;
    --desert-accent-deep-rgb: 168, 4, 0;
    --desert-accent-soft: rgba(225, 6, 0, .14);
    --desert-accent-faint: rgba(225, 6, 0, .08);
    --desert-accent-glow: rgba(225, 6, 0, .35);
    --desert-accent-glow-lg: rgba(225, 6, 0, .55);
    --desert-accent-ember: #FF6B4A;
    --desert-accent-ember-rgb: 255, 107, 74;
    --desert-shadow-rgb: 0, 0, 0;
    --desert-glass: rgba(0, 0, 0, .88);
    --brand-red: #E10600;
    --brand-red-deep: #A80400;
    --brand-red-rgb: 225, 6, 0;
    --surface-cream: #000000;
    --pv-noir: #000000;
    --pv-noir-2: #101010;
    --pv-noir-3: #1B1B1B;
    --pv-ivory: #F5F5F5;
    --pv-ivory-dim: #A5ACAF;
    --pv-ivory-faint: rgba(245, 245, 245, .52);
    --pv-rule: #2C2C2C;
    --pv-glass: rgba(0, 0, 0, .88);
    --pv-red: #E10600;
    --pv-red-deep: #A80400;
    --pv-red-ink: #FF6B4A;
    --pv-red-glow: rgba(225, 6, 0, .35);
    --pv-red-glow-lg: rgba(225, 6, 0, .55);
    --pv-on-red: #FFFFFF;
    --pv-serif: 'Previously Display', Georgia, 'Times New Roman', serif;
    --pv-shadow-card: 0 18px 44px rgba(0, 0, 0, .5);
    --pv-shadow-pop: 0 40px 120px rgba(0, 0, 0, .6), 0 0 0 1px rgba(225, 6, 0, .28);
    --pv-shadow-bar: 0 8px 28px rgba(0, 0, 0, .45);
    --pv-shadow-btn: 0 10px 34px rgba(225, 6, 0, .35);
    --pv-shadow-btn-lg: 0 16px 44px rgba(225, 6, 0, .55);
    --pv-shadow-card-hover: 0 14px 34px rgba(0, 0, 0, .5);
    --pv-shadow-chip-hover: 0 8px 20px rgba(0, 0, 0, .4);
    --pv-focus-outline: 2px solid #E10600;
    --pv-focus-ring: 0 0 0 3px rgba(225, 6, 0, .35);
  }
}

/* Page title in the house display face — the shared pvn-header component
   still sets retired Cormorant Garamond; scoped up-specificity here. */
.pvn-title-zone h1.pvn-page-title {
  font-family: 'Previously Display', Georgia, 'Times New Roman', serif;
}

/* Small red TEXT takes the in-system luminous red (7.1:1 on the card);
   signal red stays for fills, borders, and focus. */
.pv-gd p.pv-gd-kicker { color: var(--pv-red-ember); }

/* Body canvas stated outright (the fleet dark block otherwise paints the
   html canvas and leaves body transparent — same rendered black, but the
   ground belongs on body like the rest of the family). */
html body { background-color: #000000; }
