/* School Launch reference sheets: one stylesheet for the printed PDF (US Letter) and the web page.
   Grayscale rules: never carry meaning by colour alone; every box type differs by border style
   and a text label; all text/background pairs are >= 7:1 contrast (WCAG AAA) in colour and in gray. */
/* Fonts: self-hosted WOFF2 subsets shared with the rest of the site (see /assets/fonts.css); replaced the 2.5 MB variable TTFs on 2026-10-23. */
@font-face{font-family:'SL Display';font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/fonts/cinzel-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'SL Display';font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/fonts/cinzel-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:'SL Sans';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-normal-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'SL Sans';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-normal-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'SL Sans';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-normal-greek-ext.woff2) format('woff2');unicode-range:U+1F00-1FFF}
@font-face{font-family:'SL Sans';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-normal-greek.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'SL Sans';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-normal-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'SL Sans';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'SL Sans';font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-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:'SL Sans';font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-italic-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'SL Sans';font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-italic-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'SL Sans';font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-italic-greek-ext.woff2) format('woff2');unicode-range:U+1F00-1FFF}
@font-face{font-family:'SL Sans';font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-italic-greek.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'SL Sans';font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-italic-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'SL Sans';font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'SL Sans';font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/fonts/sourcesans3-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}

:root{
  --ink:#1F1B16; --muted:#463F36; --accent:#76301A; --tint:#F4EFE6; --tint2:#E9E1D2; --line:#B9AE9B; --paper:#fff;
  --sans:'SL Sans','Source Sans 3','Source Sans Pro','Segoe UI',Arial,sans-serif;
  --display:'SL Display','Cinzel',Georgia,serif;
  --fs:10.5pt; --fs-small:10pt; --gap:0.14in;
}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;font-family:var(--sans);font-size:var(--fs);line-height:1.32;color:var(--ink);background:#EFE9DD;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;font-variant-numeric:lining-nums}
a{color:var(--ink)}
sup,sub{font-size:72%;line-height:0}
.page{background:var(--paper);position:relative;width:8.5in;margin:0 auto;padding:0.42in 0.5in 0.95in}
.page-body{display:flex;flex-direction:column;gap:var(--gap)}

/* ---------- header ---------- */
.sheet-head{position:relative;display:block;border-bottom:3px solid var(--ink);padding-bottom:.08in;margin-bottom:.14in}
.kicker{font-size:10pt;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 .02in}
h1{font-family:var(--display);font-weight:700;font-size:22pt;line-height:1.08;margin:0;letter-spacing:.01em}
.subtitle{margin:.04in 0 0;font-size:11pt;color:var(--muted)}
.badges{position:absolute;top:-.02in;right:0;display:flex;gap:.06in}
.badge{border:1.5px solid var(--ink);border-radius:999px;padding:.01in .1in;font-size:10pt;font-weight:700;white-space:nowrap}
.run-head{display:flex;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:.05in;margin-bottom:.14in;font-size:10pt;font-weight:700}
.run-head .t{font-family:var(--display);font-size:13pt}

/* ---------- layout ---------- */
.cols{display:grid;gap:var(--gap);align-items:start}
.col{display:flex;flex-direction:column;gap:var(--gap);min-width:0}
h2{font-size:12.5pt;font-weight:800;margin:0 0 .05in;line-height:1.15;display:flex;align-items:baseline;gap:.08in}
h2 .tag{font-size:10pt;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}
p{margin:0 0 .05in} p:last-child{margin-bottom:0}
ul,ol{margin:0;padding-left:1.15em} li{margin:0 0 .03in} li:last-child{margin-bottom:0}
code{font-family:inherit;font-weight:700;background:var(--tint2);padding:0 .04in;border-radius:2px}
mark.hl{background:none;color:inherit;font-weight:800;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px}
q.verse{font-style:italic;quotes:"“" "”"} cite{font-style:normal;font-weight:600;color:var(--muted);white-space:nowrap}
.frac{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;line-height:1.05;margin:0 .03em}
.frac .num{border-bottom:1.2px solid currentColor;padding:0 .12em}
.frac .den{padding:0 .12em}
.mat{display:inline-table;vertical-align:middle;border-left:1.3px solid currentColor;border-right:1.3px solid currentColor;padding:0 .18em;margin:0 .1em;line-height:1.12;background:linear-gradient(currentColor,currentColor) left top/.28em 1.2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/.28em 1.2px no-repeat,linear-gradient(currentColor,currentColor) right top/.28em 1.2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/.28em 1.2px no-repeat}.mat.det{background:none}
.mat .mr{display:table-row}.mat .mc{display:table-cell;text-align:right;padding:0 .2em}.mat .mc.aug{border-left:1px solid currentColor;padding-left:.3em}

/* ---------- boxes: each style differs by border + label, not colour ---------- */
.box{border:1.5px solid var(--ink);border-radius:6px;padding:.09in .12in;break-inside:avoid;background:var(--paper)}
.box.rule{border-left:6px solid var(--ink);background:var(--tint)}
.box.key{border-width:2.5px}
.box.example{border-style:solid;padding-top:0}
.box.example>h2{background:var(--ink);color:#fff;margin:0 -.12in .07in;padding:.04in .12in;border-radius:4px 4px 0 0}
.box.example>h2 .tag{color:#fff}
.box.warn{border:2px dashed var(--ink)}
.box.warn>h2::before{content:"⚠";font-size:12pt}
.box.tip{border:1.5px dotted var(--ink);background:var(--tint)}
.box.note{border:none;border-top:2px solid var(--ink);border-radius:0;padding:.06in 0 0}
.box.verse{border:none;border-left:3px double var(--ink);border-radius:0;padding:.02in .12in;background:var(--tint)}
.box.plain{border:none;padding:0}
dl.defs{display:grid;grid-template-columns:max-content 1fr;gap:.03in .1in;margin:0}
dl.defs dt{font-weight:800} dl.defs dd{margin:0}
ol.steps{list-style:none;padding:0;counter-reset:s}
ol.steps>li{counter-increment:s;position:relative;padding-left:.3in;margin-bottom:.05in}
ol.steps>li::before{content:counter(s);position:absolute;left:0;top:-.01in;width:.21in;height:.21in;border-radius:50%;background:var(--ink);color:#fff;font-weight:800;font-size:10pt;display:flex;align-items:center;justify-content:center}
.work{font-variant-numeric:tabular-nums}
.work .line{display:flex;gap:.1in;justify-content:space-between;border-bottom:1px solid var(--tint2);padding:.015in 0}
.work .line:last-child{border-bottom:none}
.work .why{color:var(--muted);text-align:right}

/* ---------- tables ---------- */
table{border-collapse:collapse;width:100%;font-size:var(--fs-small);break-inside:avoid}
caption{caption-side:top;text-align:left;font-weight:800;font-size:12pt;margin-bottom:.04in}
th,td{border:1px solid var(--line);padding:.025in .06in;text-align:left;vertical-align:top}
thead th{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:700}
tbody tr:nth-child(even) td{background:var(--tint)}
td.rowhead,th[scope=row]{font-weight:800}
table.center td,table.center th{text-align:center}
.tnote{font-size:10pt;color:var(--muted);margin-top:.03in}

/* ---------- cards ---------- */
.cards{display:grid;gap:var(--gap)}
.card{border:1.5px solid var(--ink);border-radius:6px;padding:.08in .11in;break-inside:avoid;display:flex;flex-direction:column;gap:.035in}
.card .head{display:flex;flex-direction:column;gap:.01in;border-bottom:1.5px solid var(--ink);padding-bottom:.03in}
.card .term{font-size:12.5pt;font-weight:800}
.card .ctag{font-size:10pt;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}
.card .def{font-weight:600}
.card .lab{font-weight:800}
.card .fig{display:flex;justify-content:center}
.card .ex{margin:0;padding-left:1em}

/* ---------- figures ---------- */
figure{margin:0;break-inside:avoid;display:flex;flex-direction:column;align-items:center;gap:.03in}
figure svg{max-width:100%;height:auto}
figcaption{font-size:10pt;color:var(--muted);text-align:center}
.tagged{display:flex;flex-wrap:wrap;gap:.06in .05in;justify-content:center;padding:.04in 0}
.tagged .w{display:flex;flex-direction:column;align-items:center;border-bottom:none}
.tagged .w b{font-size:13pt;border-bottom:2px solid var(--ink);padding:0 .03in}
.tagged .w i{font-style:normal;font-size:10pt;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.03em}

/* ---------- footer ---------- */
.sheet-foot{position:absolute;left:.5in;right:.5in;bottom:.28in;height:.56in;border-top:1.5px solid var(--ink);padding-top:.05in;
  display:grid;grid-template-columns:auto 1fr auto;gap:.14in;align-items:center;font-size:9pt;line-height:1.25;color:var(--ink)}
.brand{display:flex;align-items:center;gap:.06in}
.brand img,.brand svg{width:.36in;height:.36in}
.brand .wm{font-family:var(--display);font-weight:700;font-size:10pt;letter-spacing:.04em}
.foot-mid b{font-weight:800}
.foot-mid a{text-decoration:underline}
.foot-right{display:flex;align-items:center;gap:.08in;text-align:right}
.foot-right .qr{width:.5in;height:.5in}

/* ---------- web page (screen) ---------- */
.toolbar{max-width:8.5in;margin:.2in auto .12in;display:flex;flex-wrap:wrap;gap:.1in;align-items:center;font-size:12pt;padding:0 .1in}
.toolbar a,.toolbar button{font:inherit;font-weight:700;border:2px solid var(--ink);border-radius:999px;padding:.04in .16in;background:#fff;color:var(--ink);text-decoration:none;cursor:pointer}
.toolbar a:focus-visible,.toolbar button:focus-visible{outline:3px solid #1F4E5A;outline-offset:2px}
.toolbar .crumbs{flex:1 1 100%;font-weight:600;color:var(--muted)}
@media screen{
  .page{box-shadow:0 1px 3px rgba(0,0,0,.18);margin-bottom:.3in;min-height:11in}
}
@media screen and (max-width:820px){
  .page{width:auto;min-height:0;padding:.25in .18in 1.4in;margin:0 .06in .2in}
  .cols{grid-template-columns:1fr !important}
  .cards{grid-template-columns:1fr !important}
  .badges{position:static;flex-wrap:wrap;margin-top:.06in}
  .sheet-foot{left:.18in;right:.18in;grid-template-columns:1fr;height:auto;bottom:.15in}
  .foot-right .qr{display:none}
  table{display:block;overflow-x:auto}
}

/* ---------- print ---------- */
@page{size:letter;margin:0}
@media print{
  body{background:#fff}
  .web-only{display:none !important}
  .page{width:8.5in;height:11in;overflow:hidden;margin:0;break-after:page;box-shadow:none}
  .page:last-child{break-after:auto}
  a{text-decoration:none}
}

.box figure{margin:.04in 0}
.cards.side .card{display:grid;grid-template-columns:minmax(0,46%) minmax(0,1fr);grid-auto-rows:min-content;column-gap:.1in;align-items:start}
.cards.side .card .head{grid-column:1 / -1}
.cards.side .card .fig{grid-row:2 / span 4;align-self:center}
.box.answers{border:none;border-top:2px dashed var(--ink);border-radius:0;padding:.08in 0 0;position:relative}
.box.answers>h2::before{content:"✂";font-size:12pt}
.box.answers p{font-variant-numeric:tabular-nums}

.card .fig svg{max-width:100%;height:auto}

/* geometry notation from markup {seg:AB} {ray:AB} {line:AB} (added 2026-10-20) */
.nt{position:relative;display:inline-block;line-height:1;padding-top:.08em}
.nt.seg{border-top:1.1px solid currentColor;padding-top:.05em}
.nt.ray::before,.nt.line::before{position:absolute;left:-.05em;right:-.05em;top:-.55em;text-align:center;font-size:.85em;line-height:1;font-weight:700}
.nt.ray::before{content:"\2192"} .nt.line::before{content:"\2194"}
