/* ============================================================
   RN COLLINS CURRICULUM — DESIGN SYSTEM  (aloha-ds.css)

   This began as the ecosystem's shared stylesheet, copied verbatim
   into thirteen sites, which is why this site and several others
   were indistinguishable. It is now this site's own.

   The object is a registrar's course catalogue: programs with
   codes, courses with codes, credit values, prerequisites and
   sequences. So the page is built as a catalogue is built —
   entries are ruled rows rather than floating cards, and the
   apparatus is split in two. Codes, credit values and column
   heads are catalogue keys, set in Azeret Mono with tabular
   figures. Navigation, buttons and form labels are interface,
   set in Urbanist. Alegreya carries everything a reader reads.

   Typefaces are self-hosted from /fonts (licences in that
   directory). font-src is 'self' here, so a Google Fonts link
   would be blocked in production and silently fall back.
   v2.0 · 2026-09
   ============================================================ */

@font-face{font-family:'Alegreya';font-style:italic;font-weight:400 600;font-display:swap;src:url('/fonts/alegreya-italic-400_600-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:'Alegreya';font-style:italic;font-weight:400 600;font-display:swap;src:url('/fonts/alegreya-italic-400_600-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:'Alegreya';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/alegreya-normal-400_700-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:'Alegreya';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/alegreya-normal-400_700-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:'Urbanist';font-style:italic;font-weight:400 600;font-display:swap;src:url('/fonts/urbanist-italic-400_600-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:'Urbanist';font-style:italic;font-weight:400 600;font-display:swap;src:url('/fonts/urbanist-italic-400_600-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:'Urbanist';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/urbanist-normal-400_700-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:'Urbanist';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/urbanist-normal-400_700-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:'Azeret Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url('/fonts/azeretmono-normal-400_600-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:'Azeret Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url('/fonts/azeretmono-normal-400_600-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;}

/* ---- 1. TOKENS ------------------------------------------- */
:root{
  /* Brand color */
  --teal:#1B7A68; --teal-d:#0F5343; --teal-l:#E9F3F0; --teal-mint:#7FE0C4;
  --ink:#14201C; --ink-2:#25332E; --ink-3:#3B4A44;
  --cream:#F7F4EC; --cream-2:#EFEAE0; --paper:#FCFAF5; --white:#FFFFFF;
  --muted:#4E5C56;            /* AA on cream */
  --muted-on-ink:#B7C7C0;     /* AA on ink */
  --line:#DAD3C5; --line-2:#C7BFAE;
  --amber:#8A5A08; --amber-l:#FBF4E6; --amber-bd:#E4CE9E;
  --red:#9C2F2F; --red-l:#FBF1F0; --red-bd:#E3B9B4;
  --green:#166A34; --green-l:#EFF7F1; --green-bd:#BEDFC9;
  /* Type */
  --serif:'Alegreya',Charter,"Bitstream Charter","Times New Roman",serif;
  --sans:'Urbanist','Helvetica Neue',Helvetica,sans-serif;
  --mono:'Azeret Mono',ui-monospace,Menlo,Consolas,monospace;
  --key:'Azeret Mono',ui-monospace,Menlo,Consolas,monospace;  /* catalogue keys: codes, credits, column heads */
  /* Type scale (fluid) */
  --fs-display:clamp(2.1rem,5.2vw,3.4rem);
  --fs-h1:clamp(1.9rem,4vw,2.7rem);
  --fs-h2:clamp(1.5rem,3vw,2rem);
  --fs-h3:1.18rem; --fs-body:1rem; --fs-sm:.875rem; --fs-xs:.75rem;
  --label:.68rem;               /* mono eyebrow/label size */
  /* Space scale */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px; --s9:96px;
  /* Radius + shadow + motion */
  --r-sm:3px; --r:0px; --r-lg:0px; --r-pill:2px;   /* a catalogue is ruled, not rounded */
  --sh-1:none; --sh-2:none; --sh-3:none;   /* entries sit on the page, not above it */
  --sh-focus:0 0 0 3px #0F5343,0 0 0 6px #7FE0C4;
  --sh-focus-mint:0 0 0 3px #7FE0C4,0 0 0 6px #0F5343;
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);      /* editorial ease-out for reveals */
  --dur:.22s; --dur-s:.14s;
  --maxw:1080px; --maxw-wide:1200px; --nav-h:64px;
  /* Editorial surfaces / gradients (within brand) */
  --grad-hero:radial-gradient(130% 120% at 82% -12%,#20362d 0%,#18271F 44%,var(--ink) 80%);
  --grad-ink:linear-gradient(180deg,#16241E 0%,var(--ink) 100%);
  --grad-mint-rule:linear-gradient(90deg,var(--teal) 0%,var(--teal-mint) 100%);
  --texture-dot:radial-gradient(rgba(27,122,104,.045) 1px,transparent 1px);
}

/* ---- 2. BASE / RESET ------------------------------------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--serif);
  font-size:1.06rem;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;letter-spacing:-.008em;line-height:1.14;margin:0;text-wrap:balance}
p{margin:0 0 1rem;text-wrap:pretty}
a{color:var(--teal-d);text-underline-offset:2px;text-decoration-thickness:from-font;transition:color var(--dur-s) var(--ease)}
a:hover{color:var(--teal)}
:focus-visible{outline:none;box-shadow:var(--sh-focus);border-radius:6px}
.section--ink :focus-visible{box-shadow:var(--sh-focus-mint)}
::selection{background:var(--teal-mint);color:var(--ink)}

/* ---- 3. LAYOUT ------------------------------------------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(18px,4vw,26px)}
.section{padding-block:clamp(56px,7.5vw,104px);position:relative}
.section + .section{border-top:1px solid var(--line)}
.section--ink{background:var(--grad-ink);color:var(--cream)}
.section--ink + .section,.section + .section--ink{border-top:0}
.section--paper{background:var(--paper)}
/* subtle dot texture, opt-in, brand-tinted */
.section--texture{background-image:var(--texture-dot);background-size:22px 22px}
.wrap--wide{max-width:var(--maxw-wide)}
/* accent rule system — an editorial hairline that reads intentional */
.rule{height:2px;width:56px;border:0;border-radius:2px;background:var(--grad-mint-rule);margin:0 0 var(--s5)}
.section--ink .rule{background:var(--grad-mint-rule);opacity:.9}
.stack>*+*{margin-top:var(--s4)}
.grid{display:grid;gap:var(--s5)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
@media(max-width:820px){.grid-4.keep-2,.grid-3.keep-2{grid-template-columns:1fr 1fr}}
.measure{max-width:64ch}

/* ---- 4. TYPOGRAPHY HELPERS ------------------------------- */
.eyebrow{font-family:var(--sans);font-weight:600;font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;color:var(--teal-d);margin:0 0 var(--s3);display:inline-flex;align-items:center;gap:.55rem}
.eyebrow::before{content:"";width:14px;height:2px;border-radius:2px;background:var(--grad-mint-rule);flex:none}
.section--ink .eyebrow::before{opacity:.95}
.section--ink .eyebrow{color:var(--teal-mint)}
.display{font-size:var(--fs-display);letter-spacing:-.02em;line-height:1.06}
.h1{font-size:var(--fs-h1)} .h2{font-size:var(--fs-h2)} .h3{font-size:var(--fs-h3)}
.lead{font-size:clamp(1.06rem,1.6vw,1.2rem);line-height:1.55;color:var(--muted);max-width:60ch}
.section--ink .lead{color:var(--muted-on-ink)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.small{font-size:var(--fs-sm)} .muted{color:var(--muted)}

/* ---- 5. BUTTONS ------------------------------------------ */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-size:.78rem;
  letter-spacing:.09em;text-transform:uppercase;font-weight:700;text-decoration:none;cursor:pointer;
  padding:.72rem 1.15rem;border-radius:var(--r-sm);border:1px solid transparent;transition:all var(--dur) var(--ease);
  min-height:44px;line-height:1}
.btn--primary{background:var(--teal-d);color:#fff;box-shadow:none}
.btn--primary:hover{background:var(--ink);color:#fff;transform:none;box-shadow:none}
.btn--primary:active{transform:translateY(0)}
.btn--outline{background:var(--white);border-color:var(--line-2);color:var(--ink)}
.btn--outline:hover{border-color:var(--ink);color:var(--ink);transform:none;box-shadow:none}
.btn--ghost{background:transparent;border-color:#3a564d;color:var(--cream)}
.btn--ghost:hover{border-color:var(--teal-mint);color:#fff}
.btn--sm{padding:.5rem .8rem;min-height:38px;font-size:.68rem}

/* ---- 6. CHIPS / TAGS ------------------------------------- */
.chip{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--key);font-size:var(--fs-xs);
  font-variant-numeric:tabular-nums;letter-spacing:.05em;text-transform:uppercase;padding:.24rem .55rem;border-radius:var(--r-pill);
  border:1px solid var(--line);background:#fff;color:var(--ink-2)}
.chip--hi{color:var(--green);border-color:var(--green-bd);background:var(--green-l)}
.chip--med{color:var(--amber);border-color:var(--amber-bd);background:var(--amber-l)}
.chip--src{color:var(--teal-d);border-color:#BADFD6;background:var(--teal-l)}
.chip .ic{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}

/* ---- 7. CARDS -------------------------------------------- */
.card{position:relative;background:transparent;border:0;border-top:2px solid var(--ink);border-radius:0;padding:var(--s4) 0 var(--s3);box-shadow:none;
  transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.card--hover{cursor:pointer}
.card--hover:hover{box-shadow:none;transform:none;border-top-color:var(--teal)}
/* an accent hairline that surfaces on hover — quiet until you touch it */
.card--hover::after{content:"";position:absolute;left:0;right:0;top:-2px;height:2px;border-radius:0;
  background:var(--grad-mint-rule);transform:scaleX(0);transform-origin:left;opacity:0;transition:transform var(--dur) var(--ease-out),opacity var(--dur) var(--ease)}
.card--hover:hover::after{transform:scaleX(1);opacity:1}
.card h3{font-size:var(--fs-h3);margin-bottom:var(--s2)}
.card__ic{width:38px;height:38px;border-radius:2px;background:var(--teal-l);color:var(--teal-d);
  display:grid;place-items:center;margin-bottom:var(--s3)}

/* ---- 8. TOOL PANEL (dark interactive) -------------------- */
.tool{background:var(--ink);color:var(--cream);border-radius:0;padding:var(--s6);box-shadow:none}
.tool h3{color:var(--cream)}
.field{margin-bottom:var(--s4)}
.field label{display:block;font-family:var(--sans);font-weight:700;font-size:.75rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted-on-ink);margin-bottom:.4rem}
.field select,.field input{width:100%;padding:.66rem .75rem;border-radius:2px;
  border:1px solid #33504f;background:#0E1815;color:var(--cream);font:inherit;font-size:.95rem;min-height:44px}
.field select:focus-visible,.field input:focus-visible{box-shadow:var(--sh-focus);border-color:var(--teal)}
.out{background:#0E1815;border:1px solid #2C463E;border-radius:0;padding:var(--s5)}
.out__lab{font-family:var(--sans);font-weight:700;font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted-on-ink);margin-bottom:.3rem}
.out__big{font-family:var(--serif);font-size:1.7rem;color:var(--teal-mint);line-height:1.1}
.out ul{margin:.7rem 0 0;padding-left:1.1rem;color:#D6E4DF;font-size:.9rem}
.out ul li{margin-bottom:.3rem}
.flag{font-family:var(--mono);font-size:.72rem;color:#E7B36B;margin-top:.7rem}

/* ---- 9. TABLE (provenance) ------------------------------- */
.table-wrap{overflow-x:auto;border:0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);border-radius:0;background:transparent}
table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm);min-width:560px}
.data th,.data td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}
.data th{background:var(--ink);color:var(--cream);font-family:var(--key);font-size:var(--fs-xs);letter-spacing:.09em;text-transform:uppercase;font-weight:500;position:sticky;top:0}
.data tr:last-child td{border-bottom:none}
.data .cite{font-family:var(--key);font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--teal-d)}

/* ---- 10. ACCORDION (FAQ) --------------------------------- */
.acc{border:0;border-top:1px solid var(--line-2);border-radius:0;background:transparent;overflow:hidden}
.acc+.acc{margin-top:var(--s3)}
.acc__btn{width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:1rem 0;
  font-family:var(--serif);font-size:1.05rem;color:var(--ink);display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:56px}
.acc__btn:hover{color:var(--teal-d)}
.acc__ic{flex:none;transition:transform var(--dur) var(--ease);color:var(--teal)}
.acc__btn[aria-expanded="true"] .acc__ic{transform:rotate(45deg)}
.acc__panel{max-height:0;overflow:hidden;transition:max-height var(--dur) var(--ease)}
.acc__panel-inner{padding:0 0 1.1rem;color:var(--muted)}

/* ---- 11. NAV --------------------------------------------- */
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.7rem 1.1rem;
  border-radius:0 0 3px 0;z-index:200;font-family:var(--sans);font-weight:700;font-size:.82rem;letter-spacing:.06em}
.skip:focus{left:0;color:#fff}
.nav{position:sticky;top:0;z-index:100;background:rgba(252,250,245,.82);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);height:var(--nav-h);transition:box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}
.nav.is-stuck{background:rgba(252,250,245,.94);box-shadow:0 1px 0 var(--line),0 8px 24px -14px rgba(20,32,28,.4)}
.nav__in{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(18px,4vw,26px);height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nav__brand{display:flex;align-items:center;gap:.55rem;font-family:var(--sans);font-size:.86rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink);text-decoration:none;font-weight:600}
.nav__brand svg{flex:none}
.nav__links{display:flex;align-items:center;gap:.3rem;list-style:none;margin:0;padding:0}
.nav__links a{font-family:var(--sans);font-weight:600;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-2);text-decoration:none;padding:.5rem .6rem;border-radius:8px}
.nav__links a:hover{color:var(--teal-d);background:var(--teal-l);border-radius:2px}
.nav__cta{margin-left:.4rem}
.nav__burger{display:none;background:none;border:1px solid var(--line-2);border-radius:2px;width:44px;height:44px;
  cursor:pointer;align-items:center;justify-content:center;color:var(--ink)}
@media(max-width:860px){
  .nav__links{position:fixed;inset:var(--nav-h) 0 auto 0;flex-direction:column;align-items:stretch;gap:0;
    background:var(--paper);border-bottom:1px solid var(--line);padding:var(--s3);transform:translateY(-8px);
    opacity:0;visibility:hidden;transition:all var(--dur) var(--ease);box-shadow:var(--sh-2)}
  .nav__links.open{opacity:1;visibility:visible;transform:translateY(0)}
  .nav__links a{padding:.85rem .8rem;font-size:.82rem}
  .nav__links .nav__cta{margin:.4rem 0 0}
  .nav__cta .btn{width:100%;justify-content:center}
  .nav__burger{display:inline-flex}
}

/* ---- 12. FOOTER ------------------------------------------ */
.footer{background:var(--ink);color:var(--muted-on-ink);padding-block:var(--s8) var(--s7);font-size:var(--fs-sm)}
.footer a{color:#CFDAD5}.footer a:hover{color:#fff}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--s6)}
@media(max-width:720px){.footer__grid{grid-template-columns:1fr}}
.footer h3,.footer h4{font-family:var(--sans);font-weight:700;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:#8FA69E;margin-bottom:var(--s3)}
.footer ul{list-style:none;margin:0;padding:0}.footer li{margin-bottom:.4rem}
.footer .disc{border-left:2px solid var(--teal);padding-left:.9rem;color:#9FB6AE;margin-top:var(--s4)}
.footer .fine{font-family:var(--key);font-size:.7rem;color:#93AAA2;margin-top:var(--s5);line-height:1.7}

/* ---- 13. UTIL / MOTION ----------------------------------- */
/* reveals only hide when JS is active (progressive enhancement) */
.js .reveal{opacity:0;transform:translateY(18px)}
.js .reveal.in{opacity:1;transform:none;transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.divider{height:1px;background:var(--line);border:0;margin-block:var(--s6)}
.divider--accent{height:2px;background:var(--grad-mint-rule);border-radius:2px;width:100%}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ---- 14. CATALOGUE KEYS + FIXES -----------------------------------------
   Course codes and credit values are catalogue keys: mono, tabular, aligned.
   They are how a registrar finds a row, so they are set as keys and not as
   decoration. Page stylesheets set .code and .cr; this makes them consistent.
   ------------------------------------------------------------------------- */
.courserow .code,.code{font-family:var(--key);font-variant-numeric:tabular-nums;
  letter-spacing:.04em;font-weight:600}
.courserow .cr,.cr,.kv,.p-num{font-family:var(--key);font-variant-numeric:tabular-nums;
  letter-spacing:.04em}
.num-stat{font-variant-numeric:tabular-nums}

/* `.nav__links a` (0,1,1) outranked `.btn--primary` (0,1,0), so the nav's
   primary call to action drew its label in --ink-2 on the teal ground:
   2.53:1. The button now states its own colour at matching specificity. */
.nav__links a.btn--primary{color:#fff}
.nav__links a.btn--primary:hover{color:#fff}
.nav__links a.btn--outline{color:var(--ink)}
.nav__links a.btn--ghost{color:var(--cream)}

/* ---- 15. FORCED COLORS + PRINT (absent before this pass) ---------------- */
@media(forced-colors:active){
  .card,.acc,.table-wrap{border-top:2px solid CanvasText}
  .btn,.chip{border:1px solid ButtonText}
  .rule,.divider--accent,.card--hover::after{background:CanvasText;forced-color-adjust:none}
  :focus-visible{outline:3px solid Highlight;outline-offset:2px}
}
@media print{
  .nav,.footer,.skip,.nav__burger,.btn{display:none!important}
  body{background:#fff;color:#000;font-size:10.5pt}
  .section{padding-block:14pt;border-top:1px solid #000}
  .section--ink,.tool,.out{background:#fff!important;color:#000!important}
  .section--ink h1,.section--ink h2,.section--ink h3,.section--ink h4,
  .section--ink .lead,.tool h3,.out__big{color:#000!important}
  .card,.acc,.data tr,.table-wrap{break-inside:avoid}
  .acc__panel{max-height:none!important;overflow:visible!important}
  .js .reveal{opacity:1!important;transform:none!important}
  .data th{background:#fff;color:#000;border-bottom:2px solid #000}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#333}
}
