/* Brume site: the SUB-PAGES of "The Cabin Window" (cabin-pages.css v153, 2026-09-13).
   Loaded straight after assets/cabin.css by privacy.html, terms.html, support.html,
   changelog.html, early-access.html and 404.html. cabin.css owns everything that carries a
   colour: the tokens, the six lampshades, the interior wall, the PANE scrim, the nav, the
   footer, the focus rings and the skip link. This file only lays the article out and sizes its
   type, so there is exactly ONE place in the site where a colour can be changed, and the
   contrast proof (tools/contrast.py in the site repo, all six lamps) covers both files at once.
   RUN IT, and it must exit 0, before any change here.

   These pages are static: no canvas, no GSAP, no script of any kind, readable with everything
   off. Two consequences are handled below. First, with no script there is no html.rm class, so
   the one animation cabin.css would bring with it (the lamp's 9 s breathe) is switched off here
   rather than left running for a reader who asked for reduced motion. Second, there is no
   sticky sill band under the fixed nav, so the anchor offset drops back to the nav's own height.

   The article sits on the same PANE scrim as every text block on the home page (class="page
   pane"), one column, about 65 characters wide, with the home's Fraunces display face for the
   headings and the home's lamp accent on links. Nothing here is an em dash, and no rule holds
   a double hyphen outside a custom property. */

/* no script on these pages, so nothing can ever add html.rm: the lamp wash is static, and the
   home page's smooth anchor scrolling answers the media query directly instead of the class */
.lampglow i{animation:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* no sticky band here: the fixed nav is the only thing an anchor has to clear */
[id]{scroll-margin-top:calc(var(--navh) + 14px)}

/* the footer sits at the bottom on a short page (the 404 and the retired stub) */
body{display:flex;flex-direction:column;min-height:100svh}
main{flex:1 0 auto;padding:calc(var(--navh) + 3.4svh) var(--pad) 4svh}

/* the article column */
article.page{max-width:34rem;margin:0 auto;padding:1.4rem 1.05rem 1.6rem;border-radius:22px}
article.page h1{font-size:clamp(1.85rem,6.4vw,2.5rem);margin:0}
article.page>h2{font-size:clamp(1.16rem,4.2vw,1.42rem);margin:1.9rem 0 .5rem}
article.page p{color:var(--text);font-size:1rem;line-height:1.66;margin-top:.8rem}
article.page>h2+p{margin-top:0}
article.page .updated{color:var(--dim);font-size:.84rem;line-height:1.55;margin:.55rem 0 1.6rem}
article.page ul{margin:.8rem 0;padding-left:1.2rem}
article.page li{color:var(--text);font-size:1rem;line-height:1.6;padding:.16em 0}
article.page li::marker{color:var(--lamp)}
article.page a{color:var(--lamp);border-bottom:1px solid rgba(var(--lampw),.6)}
article.page a:hover{color:var(--ink);border-bottom-color:var(--ink)}
article.page strong{color:var(--ink)}
article.page em{font-style:italic}

/* changelog: one release per card, on the card surface the home page's features use */
.log-entry{background:linear-gradient(165deg,rgba(17,20,26,.9),rgba(8,10,14,.9));border:1px solid var(--line);border-radius:18px;padding:1.1rem 1.2rem;margin-top:1rem}
.log-entry h2{margin:0;font-size:clamp(1.12rem,4vw,1.3rem)}
.log-entry .date{margin-top:.35rem;color:var(--faint);font-size:.64rem;letter-spacing:.28em;text-transform:uppercase}
.log-entry p{margin-top:.7rem}

/* the home footer, minus the deep gutter the home's two fixed chips need */
.foot{margin-top:4svh;padding-bottom:2.4rem}

@media (min-width:900px){
  main{padding-top:calc(var(--navh) + 4.6svh)}
  article.page{max-width:36rem;padding:2rem 1.9rem 2.2rem;border-radius:26px}
  article.page>h2{margin-top:2.1rem}
}
