@import url("https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;0,6..72,500;1,6..72,300&family=Libre+Franklin:wght@400;500;600&display=swap");
/* No brand font binaries were supplied. Google Fonts substitutes are loaded above and
   aliased below, so swapping in licensed files is a change to this file alone. */
@font-face{font-family:"SafeNest Display";font-style:normal;font-weight:300 500;font-display:swap;src:url("https://fonts.gstatic.com/s/newsreader/v22/cY9qfjOCX1hbuyalUrK49dLac06G1ZGsZBtoBCzBDXXD8w.woff2") format("woff2")}
@font-face{font-family:"SafeNest Text";font-style:normal;font-weight:400 600;font-display:swap;src:url("https://fonts.gstatic.com/s/librefranklin/v18/jizDREVItHgc8qDIbSTKq4XkRiUf2zcZiVbJsNo.woff2") format("woff2")}
:root{
/* ---- warm neutral ramp: paper, not grey ---- */
--ink-900:#12150F;
--ink-800:#1F2320;
--ink-700:#31362F;
--ink-600:#5C635B;
--ink-500:#7E857C;
--ink-400:#9AA097;
--ink-300:#B7BBB2;
--ink-200:#D9DBD2;
--ink-150:#E3E5DC;
--ink-100:#EAEBE3;
--ink-050:#F3F2EB;
--paper:#FAF8F2;
--paper-warm:#F5F2E9;
--white:#FFFFFF;

/* ---- accent: pine. the one colour used with confidence ---- */
--pine-900:#12261F;
--pine-800:#173328;
--pine-700:#1E4034;
--pine-600:#2A5544;
--pine-500:#3E6E59;
--pine-400:#6B9584;
--pine-200:#BFD3C9;
--pine-100:#E6EDE7;
--pine-050:#F1F6F2;

/* ---- secondary: brass. figures under watch, warnings, quiet emphasis ---- */
--brass-700:#6E5424;
--brass-600:#8A6B2E;
--brass-500:#A5853F;
--brass-200:#DFCFA6;
--brass-100:#F1EADB;

/* ---- clay: errors and holds ---- */
--clay-700:#7A2A21;
--clay-600:#98392D;
--clay-100:#F4E5E2;

/* ---- surfaces ---- */
--surface-page:var(--paper);
--surface-card:var(--white);
--surface-sunken:var(--paper-warm);
--surface-raised:var(--white);
--surface-inverse:var(--pine-700);
--surface-inverse-deep:var(--pine-900);
--surface-accent-quiet:var(--pine-050);
--surface-overlay:rgba(18,21,15,0.5);

/* ---- text ---- */
--text-strong:var(--ink-900);
--text-body:var(--ink-800);
--text-muted:var(--ink-600);
--text-quiet:var(--ink-500);
--text-disabled:var(--ink-400);
--text-accent:var(--pine-700);
--text-inverse:var(--paper);
--text-inverse-muted:rgba(250,248,242,0.68);
--text-link:var(--pine-700);
--text-link-hover:var(--ink-900);

/* ---- lines ---- */
--line-hairline:var(--ink-200);
--line-default:var(--ink-200);
--line-strong:var(--ink-300);
--line-emphasis:var(--ink-800);
--line-inverse:rgba(250,248,242,0.20);
--line-focus:var(--pine-700);

/* ---- interactive ---- */
--action-solid:var(--pine-700);
--action-solid-hover:var(--pine-800);
--action-solid-active:var(--pine-900);
--action-quiet:transparent;
--action-quiet-hover:var(--pine-050);
--action-quiet-active:var(--pine-100);
--action-disabled:var(--ink-100);

/* ---- status ---- */
--status-ok-fg:var(--pine-700);
--status-ok-bg:var(--pine-100);
--status-warn-fg:var(--brass-700);
--status-warn-bg:var(--brass-100);
--status-error-fg:var(--clay-700);
--status-error-bg:var(--clay-100);
--status-info-fg:var(--ink-700);
--status-info-bg:var(--ink-100);
--status-neutral-fg:var(--ink-600);
--status-neutral-bg:var(--ink-100);

/* ---- paper grain: the only texture in the system ---- */
--grain-opacity:0.5; /* @kind other */
--texture-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23g)' opacity='0.055'/%3E%3C/svg%3E"); /* @kind other */
}

[data-theme="dark"]{
--surface-page:#191B17;
--surface-card:#20231E;
--surface-sunken:#151713;
--surface-raised:#262A24;
--surface-inverse:var(--pine-800);
--surface-inverse-deep:var(--pine-900);
--surface-accent-quiet:#1B2A23;
--surface-overlay:rgba(10,12,9,0.62);

--text-strong:#F2F1EA;
--text-body:#E4E4DB;
--text-muted:#A9AFA3;
--text-quiet:#8A9086;
--text-disabled:#5F655C;
--text-accent:#77B79A;
--text-inverse:var(--paper);
--text-inverse-muted:rgba(250,248,242,0.68);
--text-link:#77B79A;
--text-link-hover:#A6D4BE;

--line-hairline:#2E322A;
--line-default:#353A31;
--line-strong:#454B41;
--line-emphasis:#8A9086;
--line-inverse:rgba(250,248,242,0.20);
--line-focus:#77B79A;

--action-solid:#2E6650;
--action-solid-hover:#37795E;
--action-solid-active:#26543F;
--action-quiet:transparent;
--action-quiet-hover:#242821;
--action-quiet-active:#2B3028;
--action-disabled:#2A2E27;

--status-ok-fg:#8FCBAC;
--status-ok-bg:#1C3329;
--status-warn-fg:#D3B274;
--status-warn-bg:#332B18;
--status-error-fg:#DB9186;
--status-error-bg:#3A211C;
--status-info-fg:#B7BCB1;
--status-info-bg:#262A23;
--status-neutral-fg:#A9AFA3;
--status-neutral-bg:#242821;

--grain-opacity:0.32; /* @kind other */
}
:root{
--font-display:"SafeNest Display",Newsreader,"Iowan Old Style",Georgia,serif;
--font-text:"SafeNest Text","Libre Franklin",Helvetica Neue,Arial,sans-serif;
/* No monospace face in this system. Machine values are set in the text face with
   tabular figures (.sn-tnum); --font-mono is kept as an alias for compatibility. */
--font-mono:var(--font-text);

--size-display-1:64px;
--size-display-2:48px;
--size-title-1:38px;
--size-title-2:29px;
--size-title-3:21px;
--size-body-lg:19px;
--size-body:16px;
--size-body-sm:15px;
--size-caption:13px;
--size-micro:12px;

--leading-tight:1.1;
--leading-snug:1.18;
--leading-normal:1.55;
--leading-relaxed:1.7;

--weight-light:300;
--weight-regular:400;
--weight-medium:500;
--weight-semibold:600;
--weight-display:300;

--tracking-display:-0.015em;
--tracking-title:-0.01em;
--tracking-normal:0em;
--tracking-label:0.14em;
--tracking-eyebrow:0.18em;

/* semantic roles */
--text-display:var(--weight-light) var(--size-display-1)/var(--leading-tight) var(--font-display);
--text-title-1:var(--weight-light) var(--size-title-1)/var(--leading-snug) var(--font-display);
--text-title-2:var(--weight-light) var(--size-title-2)/1.22 var(--font-display);
--text-title-3:var(--weight-regular) var(--size-title-3)/1.32 var(--font-display);
--text-lead:var(--weight-regular) var(--size-body-lg)/var(--leading-relaxed) var(--font-text);
--text-default:var(--weight-regular) var(--size-body)/var(--leading-normal) var(--font-text);
--text-small:var(--weight-regular) var(--size-body-sm)/var(--leading-normal) var(--font-text);
--text-caption:var(--weight-regular) var(--size-caption)/1.5 var(--font-text);
--text-eyebrow:var(--weight-medium) var(--size-micro)/1.2 var(--font-text);
--text-label:var(--weight-medium) var(--size-caption)/1.2 var(--font-text);
--text-data:var(--weight-regular) var(--size-body-sm)/1.45 var(--font-text);
--text-figure:var(--weight-light) 44px/1 var(--font-display);
}
:root{
--space-0:0px;
--space-1:2px;
--space-2:4px;
--space-3:8px;
--space-4:12px;
--space-5:16px;
--space-6:20px;
--space-7:24px;
--space-8:32px;
--space-9:40px;
--space-10:48px;
--space-11:64px;
--space-12:80px;
--space-13:96px;
--space-14:128px;

--gutter:48px;
--section-y:96px;
--section-y-tight:64px;
--page-max:1080px;
--prose-max:64ch;
--control-h-sm:30px;
--control-h:38px;
--control-h-lg:46px;
--pad-card:24px;
--pad-card-tight:18px;
--pad-control-x:18px;
}
:root{
--radius-0:0px;
--radius-sm:1px;
--radius-md:2px;
--radius-lg:3px;
--radius-xl:4px;
--radius-pill:999px;

--border-hairline:1px solid var(--line-hairline);
--border-default:1px solid var(--line-default);
--border-strong:1px solid var(--line-strong);
--border-emphasis:1px solid var(--line-emphasis);
--border-inverse:1px solid var(--line-inverse);
--border-width:1px;

--shadow-0:none;
--shadow-1:0 1px 1px rgba(18,21,15,0.03);
--shadow-2:0 2px 8px -2px rgba(18,21,15,0.07),0 1px 2px rgba(18,21,15,0.04);
--shadow-3:0 18px 44px -14px rgba(18,21,15,0.24),0 2px 8px -3px rgba(18,21,15,0.10);
--ring-focus:0 0 0 2px var(--surface-page),0 0 0 3px var(--line-focus);
--ring-focus-inverse:0 0 0 2px var(--pine-800),0 0 0 3px var(--paper);
}
:root{
--dur-instant:80ms; /* @kind other */
--dur-fast:120ms; /* @kind other */
--dur-base:180ms; /* @kind other */
--dur-slow:240ms; /* @kind other */
--dur-deliberate:360ms; /* @kind other */
--ease-standard:cubic-bezier(0.2,0,0.2,1); /* @kind other */
--ease-out:cubic-bezier(0.16,1,0.3,1); /* @kind other */
--ease-in:cubic-bezier(0.4,0,1,1); /* @kind other */
--transition-control:background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard);
--transition-surface:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--text-default);-webkit-font-smoothing:antialiased;text-wrap:pretty;position:relative}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;background-image:var(--texture-grain);opacity:var(--grain-opacity);mix-blend-mode:multiply}
[data-theme="dark"] body::before,body[data-theme="dark"]::before{mix-blend-mode:screen}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-display)}
a{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--pine-200);transition:color var(--dur-fast) var(--ease-standard),text-decoration-color var(--dur-fast) var(--ease-standard)}
a:hover{color:var(--text-link-hover);text-decoration-color:currentColor}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:none;box-shadow:var(--ring-focus)}
table{border-collapse:collapse}
.sn-tnum{font-variant-numeric:tabular-nums}
.sn-eyebrow{font:var(--text-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-quiet)}
.sn-rule{border:0;border-top:1px solid var(--line-hairline);height:0}
.sn-rule-emphasis{border:0;border-top:1px solid var(--line-emphasis);height:0}
.sn-grain{background-image:var(--texture-grain)}
