/* iris-legal.css — IRIS Ultraviolet area styles. See docs/iris-ultraviolet.md.
 *
 * Reading styles for the legal pages (/privacy, /terms, /earn-privacy, /identity-privacy and the standalone
 * /device-privacy); /verify-email loads it too and is styled in account.css. Loaded after iris-theme.css.
 * The <article class="legal-card"> HTML in terms.html and privacy.html is hashed, so everything here is styling:
 * one comfortable measure, a glass article frame, and a header that floats while you read. Tokens only. */

/* ── Column: the glass frame uses the available width; the reading column inside it keeps a comfortable measure. ── */
.workspace-content > .legal-shell { width: calc(100% - 64px); max-width: 1440px; padding: 20px 0 88px; }

/* ── Header: a floating glass bar with a reading-progress hairline (desktop). ── */
.legal-page .legal-shell > .account-header {
  position: sticky;
  top: 14px;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  margin: 0 0 22px;
  padding: 5px 6px 5px 18px;
  border: 1px solid var(--i-line-2);
  border-radius: var(--i-r-pill);
  background: var(--i-bg-glass);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  backdrop-filter: blur(18px) saturate(1.2);
  box-shadow: var(--i-shadow-1), var(--i-halo);
}
.legal-page .legal-shell > .account-header .account-brand { display: inline-flex; min-height: 44px; }
.legal-page .legal-shell > .account-header .account-back { margin-left: 0; padding: 0 16px; }
@supports (animation-timeline: scroll()) {
  .legal-page .legal-shell > .account-header::after {
    content: '';
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: -1px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--i-violet), var(--i-lilac) 62%, var(--i-mint));
    box-shadow: 0 0 10px rgba(var(--i-violet-rgb), 0.7);
    transform: scaleX(0);
    transform-origin: left center;
    animation: legal-progress linear both;
    animation-timeline: scroll(root block);
    pointer-events: none;
  }
}
@keyframes legal-progress { to { transform: scaleX(1); } }

/* ── Article: one glass tile, IRIS type ── */
.legal-page .legal-card {
  --legal-measure: 720px;
  position: relative;
  min-width: 0;
  padding: clamp(28px, 6vw, 72px) clamp(22px, 6vw, 64px);
  border: 1px solid transparent;
  border-radius: var(--i-r-xl);
  background: var(--i-tile-bg);
  box-shadow: var(--i-tile-shadow);
}
/* Every block sits in one centred reading column (about 75 characters); rules below only set vertical margins. */
.legal-page .legal-card > * { box-sizing: border-box; max-width: var(--legal-measure); margin-left: max(0px, calc((100% - var(--legal-measure)) / 2)); margin-right: max(0px, calc((100% - var(--legal-measure)) / 2)); }
.legal-page .legal-card > .eyebrow { display: block; color: var(--i-text-3); }
.legal-page .legal-card h1 { margin-top: 14px; margin-bottom: 0; color: var(--i-text); font: 600 clamp(36px, 5.4vw, 58px)/1.03 var(--i-font-display); letter-spacing: -0.04em; text-wrap: balance; }
.legal-page .legal-card .legal-effective {
  display: flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin-top: 20px;
  margin-bottom: 34px;
  padding: 6px 12px;
  border: 1px solid var(--i-line-2);
  border-radius: var(--i-r-pill);
  background: var(--i-surface-2);
  color: var(--i-text-2);
  font: 500 10.5px/1.45 var(--i-font-mono);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.legal-page .legal-card .legal-effective::before { content: ''; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--i-lilac); box-shadow: 0 0 8px rgba(var(--i-violet-rgb), 0.8); }
.legal-page .legal-card p,
.legal-page .legal-card li { color: var(--i-text-2); font: 400 16px/1.75 var(--i-font); text-wrap: pretty; }
.legal-page .legal-card p { margin-top: 0; margin-bottom: 16px; }
.legal-page .legal-card > .legal-effective + p { color: var(--i-text); font-size: 17px; }
.legal-page .legal-card > p:last-child { margin-bottom: 0; }
.legal-page .legal-card section { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--i-line); }
.legal-page .legal-card section h2 { margin: 0 0 14px; color: var(--i-text); font: 600 clamp(20px, 2.2vw, 24px)/1.25 var(--i-font-display); letter-spacing: -0.025em; text-wrap: balance; }
.legal-page .legal-card h3 { margin: 26px 0 10px; color: var(--i-text); font: 600 17px/1.35 var(--i-font-display); letter-spacing: -0.015em; }
.legal-page .legal-card section > :last-child { margin-bottom: 0; }
.legal-page .legal-card > .legal-effective + section { margin-top: 0; padding-top: 0; border-top: 0; }
/* Closing notes after the last section read as their own block. */
.legal-page .legal-card > section + p { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--i-line); }
.legal-page .legal-card ul { margin: 0 0 16px; padding-left: 1.3em; }
.legal-page .legal-card li { padding-left: 4px; }
.legal-page .legal-card li + li { margin-top: 8px; }
.legal-page .legal-card li::marker { color: var(--i-violet); }
.legal-page .legal-card strong { color: var(--i-text); font-weight: 600; }
.legal-page .legal-card a { color: var(--i-lilac); text-decoration-color: rgba(var(--i-lilac-rgb), 0.45); text-underline-offset: 3px; transition: color var(--i-dur-2) var(--i-ease), text-decoration-color var(--i-dur-2) var(--i-ease); }
.legal-page .legal-card a:hover { color: var(--i-text); text-decoration-color: currentColor; }
.legal-page .account-legal-footer { margin-top: 32px; }

/* ── /device-privacy: a standalone page (no workspace shell), framed the same way ── */
body:not(.account-page) { display: flow-root; overflow-x: hidden; overflow-y: auto; }
body:not(.account-page) > main {
  display: block;
  width: min(820px, calc(100% - 32px));
  max-width: none;
  margin: 40px auto 80px;
  padding: clamp(28px, 6vw, 64px) clamp(22px, 6vw, 64px);
  border: 1px solid transparent;
  border-radius: var(--i-r-xl);
  background: var(--i-tile-bg);
  box-shadow: var(--i-tile-shadow);
  color: var(--i-text-2);
  font: 400 16px/1.75 var(--i-font);
  overflow-wrap: break-word;
  animation: iris-rise var(--i-dur-3) var(--i-ease) both;
}
body:not(.account-page) > main > a:first-child {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: -10px 0 8px -12px;
  padding: 0 14px 0 12px;
  border-radius: var(--i-r-pill);
  color: var(--i-text-3);
  font: 500 11px/1 var(--i-font-mono);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color var(--i-dur-2) var(--i-ease), background var(--i-dur-2) var(--i-ease);
}
body:not(.account-page) > main > a:first-child:hover { background: var(--i-surface-2); color: var(--i-text); }
body:not(.account-page) > main h1 { max-width: none; margin: 14px 0 22px; color: var(--i-text); font: 600 clamp(36px, 5.4vw, 58px)/1.03 var(--i-font-display); letter-spacing: -0.04em; text-wrap: balance; }
body:not(.account-page) > main h2 { margin: 34px 0 12px; padding-top: 28px; border-top: 1px solid var(--i-line); color: var(--i-text); font: 600 clamp(20px, 2.2vw, 24px)/1.25 var(--i-font-display); letter-spacing: -0.025em; }
body:not(.account-page) > main h2 + h2 { margin-top: 0; padding-top: 0; border-top: 0; color: var(--i-text-2); font-size: 18px; }
body:not(.account-page) > main p,
body:not(.account-page) > main li { color: var(--i-text-2); font: 400 16px/1.75 var(--i-font); text-wrap: pretty; }
body:not(.account-page) > main h1 + p { color: var(--i-text); font-size: 17px; }
body:not(.account-page) > main ul { padding-left: 1.3em; }
body:not(.account-page) > main li + li { margin-top: 8px; }
body:not(.account-page) > main li::marker { color: var(--i-violet); }
body:not(.account-page) > main a { color: var(--i-lilac); text-decoration-color: rgba(var(--i-lilac-rgb), 0.45); text-underline-offset: 3px; }
body:not(.account-page) > main a:hover { color: var(--i-text); text-decoration-color: currentColor; }
body:not(.account-page) > main small { display: inline-flex; margin: 26px 0 4px; padding: 6px 12px; border: 1px solid var(--i-line-2); border-radius: var(--i-r-pill); background: var(--i-surface-2); color: var(--i-text-2); font: 500 10.5px/1.45 var(--i-font-mono); letter-spacing: 0.14em; text-transform: uppercase; }

/* ── Phones: the workspace menu bar is sticky here, so the page header stays in the flow. ── */
@media (max-width: 780px) {
  .workspace-content > .legal-shell { width: calc(100% - 32px); padding: 14px 0 64px; }
  .legal-page .legal-shell > .account-header { position: static; min-height: 0; margin-bottom: 14px; padding: 0; border: 0; border-radius: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; }
  .legal-page .legal-shell > .account-header::after { content: none; }
  .legal-page .legal-shell > .account-header .account-brand { display: none; }
  .legal-page .legal-shell > .account-header .account-back { margin-left: -12px; padding: 0 14px 0 12px; }
  .legal-page .legal-card { border-radius: var(--i-r-lg); }
  .legal-page .legal-card p, .legal-page .legal-card li, body:not(.account-page) > main p, body:not(.account-page) > main li { font-size: 15.5px; line-height: 1.7; }
  .legal-page .legal-card > .legal-effective + p, body:not(.account-page) > main h1 + p { font-size: 16.5px; }
  .legal-page .legal-card .legal-effective { margin-top: 16px; margin-bottom: 26px; border-radius: var(--i-r-sm); }
  body:not(.account-page) > main small { border-radius: var(--i-r-sm); }
  body:not(.account-page) > main { margin: 16px auto 56px; border-radius: var(--i-r-lg); }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.account-page) > main { animation: none; }
  .legal-page .legal-shell > .account-header::after { animation: none; transform: scaleX(0); opacity: 0; }
  .legal-page .legal-card a, body:not(.account-page) > main > a:first-child { transition: none; }
}
