/* ============================================================
   Solarday — the inner pages: press.html, privacy.html and
   terms-of-use.html. Shared so they cannot drift apart. Tokens and
   type scale are copied from index.html; if they change there,
   change them here. The index keeps its CSS inline deliberately
   (it is the page people actually load); these two do not need
   that, and one file beats two copies of the same rules.
   ============================================================ */
/* ============================================================
   Self-hosted fonts. These are Google's own woff2 subsets,
   served from this domain so the page makes no third-party
   request. Variable files: one covers the whole weight range.
   ============================================================ */
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('fonts/newsreader-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('fonts/newsreader-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-weight:400 600;
  font-display:swap;
  src:url('fonts/newsreader-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-weight:400 600;
  font-display:swap;
  src:url('fonts/newsreader-italic-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Chivo Mono';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('fonts/chivo-mono-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Chivo Mono';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('fonts/chivo-mono-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root{
  color-scheme:light dark;

  --ground:#FDFBF7;
  --ink:#191919;
  --secondary:#767676;
  --accent:#2826C4;
  --rule:#E9E7E3;

  --body:'Newsreader', Georgia, 'Times New Roman', serif;
  --mono:'Chivo Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --t-label:0.6875rem;
  --t-small:0.9375rem;
  --t-body:1.1875rem;
  --t-wordmark:1.75rem;

  --band:44rem;
  --text:34rem;   /* wider than the letter's 30rem: legal prose is denser and
                     reads better without an unusually short line */
}

@media (prefers-color-scheme: dark){
  :root{
    --ground:#1C1C1C;
    --ink:#FFFCF7;
    --secondary:#B4B4B4;
    --accent:#9FA4FF;
    --rule:#272727;
  }
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--body);
  font-size:var(--t-body);
  line-height:1.65;
  font-synthesis-weight:none;
  -webkit-font-smoothing:antialiased;
}

/* Links carry a 1px rule under them rather than a text underline: it sits at a
   consistent distance from the baseline and never collides with descenders. */
a{color:inherit;text-decoration:none;}
.doc a,
.sec p a:not(.download),
.spec dd a{border-bottom:1px solid currentColor;}
a:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
  border-radius:2px;
}

.page{
  width:100%;
  max-width:var(--band);
  margin:0 auto;
  padding:0 1.5rem;
}
.page > *{max-width:var(--text);}

.label{
  font-family:var(--mono);
  font-size:var(--t-label);
  font-weight:400;
  line-height:1.4;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--secondary);
  margin:0;
}

/* ---------- Masthead ---------- */
.masthead{
  padding:3.5rem 0 2.5rem;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1rem;
}
.back{
  font-family:var(--mono);
  font-size:var(--t-label);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--secondary);
  text-decoration:none;
}
.back:hover{color:var(--ink);border-bottom:1px solid currentColor;}
.masthead h1{
  font-size:var(--t-wordmark);
  font-weight:600;
  line-height:1.15;
  letter-spacing:-0.01em;
  margin:0;
}

/* ---------- The document ---------- */
.doc{padding-bottom:4.5rem;}
.doc h2{
  font-size:var(--t-body);
  font-weight:600;
  line-height:1.35;
  margin:2.75rem 0 0.5rem;
  padding-top:1.5rem;
  border-top:1px solid var(--rule);
}
.doc h2:first-of-type{margin-top:1.5rem;}
.doc p{margin:0 0 1.125rem;color:var(--secondary);}
.doc ul{margin:0 0 1.125rem;padding-left:1.15rem;color:var(--secondary);}
.doc li{margin:0 0 0.5rem;}
.doc strong{color:var(--ink);font-weight:600;}
.doc em{font-style:italic;}

/* ---------- Footer ---------- */
.footer{
  padding:2rem 0 5.5rem;
  font-size:var(--t-small);
  line-height:1.75;
  color:var(--secondary);
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}
.footer p{margin:0;}
.footer .links{display:flex;flex-wrap:wrap;gap:0.5rem 1.25rem;}
.footer .links,
.footer .copyright{
  font-family:var(--mono);
  font-size:var(--t-label);
  line-height:1.4;
  letter-spacing:0.14em;
  text-transform:uppercase;
}
.footer a:hover{color:var(--ink);border-bottom:1px solid currentColor;}

@media (max-width:480px){
  .masthead{padding-top:2.5rem;}
}

/* ============================================================
   press.html only.
   ============================================================ */

/* Section headings take the same label treatment the home page uses,
   so a press section reads like a section of the site. */
/* The press page carries a lot of information, so it runs a smaller scale
   than the reading pages. Set on the body so every rule below inherits it. */
body.press{
  --t-body:0.875rem;
  --t-wordmark:1.375rem;
}
.press .masthead{padding:3rem 0 1.75rem;}

.sec{padding-bottom:2rem;}
.sec > h2.label{
  padding-top:1.25rem;
  border-top:1px solid var(--rule);
  margin-bottom:0.875rem;
}
.sec p{margin:0 0 0.75rem;}
.sec p:last-child{margin-bottom:0;}

.summary{
  color:var(--ink);
  margin:0 0 2rem;
}

/* Key highlights. A label/value spec list rather than prose: a press kit is
   scanned, not read, so the labels stay in the mono voice and the values sit
   in one column the eye can run down. */
.spec{
  display:grid;
  grid-template-columns:7.5rem 1fr;
  gap:0.625rem 1.5rem;
  margin:0;
  line-height:1.45;
}
.spec dt{
  font-family:var(--mono);
  font-size:var(--t-label);
  line-height:1.4;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--secondary);
  padding-top:0.25em;
}
.spec dd{margin:0;color:var(--secondary);}

.featured{list-style:none;margin:0;padding:0;}
.featured li{padding-bottom:0.3125rem;}
.featured li:last-child{padding-bottom:0;}
.featured .title{color:var(--ink);}

.linkrow{display:flex;flex-wrap:wrap;gap:0.375rem 1.25rem;}

@media (max-width:34rem){
  .spec{grid-template-columns:1fr;gap:0.25rem;}
  .spec dt{padding-top:0.75rem;}
  .spec dt:first-child{padding-top:0;}
}

/* Rating. The stars are decorative; the sentence beside them carries the
   value, so a screen reader gets the number and not fifty glyph names. */
.rating{display:flex;align-items:baseline;gap:0.5rem 0.625rem;flex-wrap:wrap;}
/* The number leads and the stars support it. Stars cannot express a 4.9: at
   that value a partial fill is about 1.5px of grey, and a half star would
   claim 4.5. Set small, they read as "this is a star rating" rather than as a
   count of exactly five, and the figure carries the precision. */
.score{
  font-size:1.625rem;
  font-weight:600;
  line-height:1;
  letter-spacing:-0.01em;
  color:var(--ink);
}
.stars{
  font-size:0.8125rem;
  letter-spacing:0.08em;
  color:var(--ink);
  line-height:1;
}
/* Review quotes under the rating. Quiet on purpose: italic, a step down in
   size, secondary colour. They support the number rather than compete with it. */
.notes{
  list-style:none;
  margin:1.25rem 0 0;
  padding:0;
  display:grid;
  gap:1.125rem;
  font-size:0.8125rem;
  line-height:1.5;
  color:var(--secondary);
}
.notes q{font-style:italic;quotes:"\201C" "\201D";}
.notes .rtitle{
  display:block;
  color:var(--ink);
}
/* The source sits on its own line. Inline, it collided with the closing
   quote mark and landed at a different place on every row. */
.notes .who{
  display:block;
  margin-top:0.25rem;
  font-style:normal;
  font-family:var(--mono);
  /* below --t-label: uppercase mono at a shared size out-measures the serif
     it sits under, so the source was reading louder than the quote */
  font-size:0.625rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.sec p.permission{
  margin:1.75rem 0 0;
  font-size:var(--t-label);
  font-family:var(--mono);
  letter-spacing:0.06em;
  color:var(--secondary);
}

.rating .value{
  font-family:var(--mono);
  font-size:var(--t-label);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--secondary);
}


/* Coverage */
.coverage{
  list-style:none;
  margin:0;
  padding:0;
}
.coverage li{padding:0 0 0.4375rem;line-height:1.45;}
.coverage li:last-child{padding-bottom:0;}
.coverage a{
  text-decoration:none;
  color:var(--ink);
}
.coverage a:hover .title{border-bottom:1px solid currentColor;}
.coverage .pub,
.featured .pub{color:var(--secondary);}
.coverage .pub{margin-left:0.5rem;}

/* Download */
.download{
  display:inline-block;
  font-family:var(--mono);
  font-size:var(--t-label);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink);
  border:1px solid var(--rule);
  border-radius:6px;
  padding:0.75rem 1.125rem;
}
.download:hover{border-color:var(--accent);}
.download .meta{color:var(--secondary);}
