/* The portal's shared frame — linked by every page but the graph (an app with its own
   chrome). Type, colour tokens, the site bar and the footer live here and nowhere
   else; a page's own <style> comes after this file and adds only what that page needs.
   The markup of the bar and the footer is generated by aiact/web/nav.py. */
/* self-hosted Codex type system (variable woff2, same origin — CSP font-src 'self').
   Fraunces = display serif · Instrument Sans = body · Geist Mono = data. latin + latin-ext (Slovak, Czech). */
@font-face{font-family:'Fraunces';src:url('/fonts/fraunces.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Fraunces';src:url('/fonts/fraunces-ext.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Fraunces';src:url('/fonts/fraunces-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:'Fraunces';src:url('/fonts/fraunces-italic-ext.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap;
  unicode-range:U+0100-02BA,U+1E00-1EFF,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Instrument';src:url('/fonts/instrument.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212;}
@font-face{font-family:'Instrument';src:url('/fonts/instrument-ext.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA,U+1E00-1EFF,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Instrument';src:url('/fonts/instrument-italic.woff2') format('woff2');font-weight:400 700;font-style:italic;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:'GeistMono';src:url('/fonts/geist-mono.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+2000-206F,U+2212;}
@font-face{font-family:'GeistMono';src:url('/fonts/geist-mono-ext.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA,U+1E00-1EFF,U+2C60-2C7F,U+A720-A7FF;}
:root {
  --ground:#f4f1ea; --panel:#fdfbf6; --panel-2:#efeadd; --ink:#1b1a16; --ink-soft:#5c5647;
  --ink-faint:#6f6857; --line:#e2dccd; --line-soft:#ece7d9; --accent:#22409a; --accent-ink:#ffffff;
  --accent-soft:#e6e9f6; --prohibited:#b1302b; --high:#985812; --limited:#137468; --gpai:#5f3aa2;
  --neutral:#6c6555; --good:#137468; --code-bg:#201d16; --code-ink:#e7e0d2;
  --shadow:0 1px 2px rgba(43,36,20,.05),0 10px 30px rgba(43,36,20,.07);
  --shadow-sm:0 1px 2px rgba(43,36,20,.06);
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Instrument',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'GeistMono',ui-monospace,'SF Mono',Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root{
  --ground:#14120d; --panel:#1d1a14; --panel-2:#251f16; --ink:#ece6d8; --ink-soft:#a49c88;
  --ink-faint:#8b8474; --line:#2c271d; --line-soft:#211d15; --accent:#8ba6f5; --accent-ink:#12100b;
  --accent-soft:#1f2740; --prohibited:#e2726b; --high:#cf9a4a; --limited:#40b3a3; --gpai:#a98be0;
  --neutral:#938b78; --good:#40b3a3; --code-bg:#0e0c08; --code-ink:#d8d0c0;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 34px rgba(0,0,0,.45);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
}}
:root[data-theme="light"]{--ground:#f4f1ea;--panel:#fdfbf6;--panel-2:#efeadd;--ink:#1b1a16;--ink-soft:#5c5647;--ink-faint:#6f6857;--line:#e2dccd;--line-soft:#ece7d9;--accent:#22409a;--accent-ink:#ffffff;--accent-soft:#e6e9f6;--prohibited:#b1302b;--high:#985812;--limited:#137468;--gpai:#5f3aa2;--neutral:#6c6555;--good:#137468;--code-bg:#201d16;--code-ink:#e7e0d2;--shadow:0 1px 2px rgba(43,36,20,.05),0 10px 30px rgba(43,36,20,.07);--shadow-sm:0 1px 2px rgba(43,36,20,.06);}
:root[data-theme="dark"]{--ground:#14120d;--panel:#1d1a14;--panel-2:#251f16;--ink:#ece6d8;--ink-soft:#a49c88;--ink-faint:#8b8474;--line:#2c271d;--line-soft:#211d15;--accent:#8ba6f5;--accent-ink:#12100b;--accent-soft:#1f2740;--prohibited:#e2726b;--high:#cf9a4a;--limited:#40b3a3;--gpai:#a98be0;--neutral:#938b78;--good:#40b3a3;--code-bg:#0e0c08;--code-ink:#d8d0c0;--shadow:0 1px 2px rgba(0,0,0,.4),0 12px 34px rgba(0,0,0,.45);--shadow-sm:0 1px 2px rgba(0,0,0,.4);}

*{box-sizing:border-box;}
html{scroll-padding-top:72px;}   /* anchors land below the sticky bar */
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;}
a{color:var(--accent);}

/* site bar */
.sitebar{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--ground) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.sb-in{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;min-height:54px;padding-top:6px;padding-bottom:6px;}
.sb-brand{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:13px;letter-spacing:.01em;color:var(--ink);text-decoration:none;white-space:nowrap;}
.sb-glyph{font-family:var(--serif);font-size:21px;line-height:1;color:var(--accent);}
.sb-nav{display:flex;align-items:center;flex-wrap:wrap;gap:2px;margin-left:auto;}
.sb-top{display:block;font-size:13.5px;color:var(--ink-soft);text-decoration:none;padding:7px 9px;border-radius:8px;white-space:nowrap;cursor:pointer;list-style:none;}
summary.sb-top::-webkit-details-marker{display:none;}
summary.sb-top::after{content:"▾";font-size:10px;margin-left:5px;color:var(--ink-faint);}
.sb-top:hover,.sb-grp[open]>.sb-top{background:var(--accent-soft);color:var(--ink);}
.sb-top.on,.sb-grp.on>.sb-top{color:var(--ink);font-weight:600;}
.sb-grp{position:relative;}
.sb-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:50;min-width:250px;display:flex;flex-direction:column;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);}
.sb-menu a{padding:8px 10px;border-radius:7px;font-size:14px;color:var(--ink);text-decoration:none;}
.sb-menu a:hover{background:var(--accent-soft);}
.sb-menu a[aria-current="page"]{color:var(--accent);font-weight:600;}
.sb-ctl{display:flex;align-items:center;gap:8px;}
.sb-lang{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel);}
.sb-lang button{font-family:var(--mono);font-size:12px;letter-spacing:.04em;padding:5px 9px;border:0;background:transparent;color:var(--ink-soft);cursor:pointer;}
.sb-lang button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);}
.sb-icon{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:14px;}
/* narrow: the menus drop to their own row under the brand and the switches, and the
   bar scrolls away with the page — two or three sticky rows would eat a phone screen */
@media(max-width:900px){
  html{scroll-padding-top:12px;}
  .sitebar{position:static;}
  .sb-nav{order:3;width:100%;margin-left:-8px;}
  .sb-top{padding:6px 8px;}
  .sb-ctl{margin-left:auto;}
}
@media(max-width:560px){
  .sb-menu{position:fixed;left:12px;right:12px;top:auto;min-width:0;}
}

/* footer */
.sitefoot{margin-top:64px;padding:30px 0 56px;border-top:1px solid var(--line);color:var(--ink-faint);font-size:13px;}
.sf-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px 26px;}
.sf-h{margin:0 0 8px;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);}
.sf-col a{display:block;padding:3px 0;font-size:13.5px;color:var(--ink-soft);text-decoration:none;}
.sf-col a:hover,.sf-links a:hover{color:var(--ink);}
.sf-col a[aria-current="page"]{color:var(--accent);}
.sf-links{margin:24px 0 0;font-family:var(--mono);font-size:12.5px;}
.sf-links a{color:var(--ink-soft);text-decoration:none;}
.legal-note{margin:14px 0 0;max-width:70ch;font-size:12px;line-height:1.55;color:var(--ink-faint);}
.sf-imprint{margin:10px 0 0;font-size:12px;color:var(--ink-faint);}

/* national acts (web/national.py) — on the landing's country cards and on /national */
.state{display:inline-block;padding:1px 6px;border-radius:5px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;}
.state-draft{background:var(--panel-2);color:var(--ink-soft);border:1px solid var(--line);}
.state-law{background:var(--accent);color:var(--accent-ink);}
.nd{padding:7px 0;}
.nd + .nd{border-top:1px dashed var(--line);}
.nd-ref{font-family:var(--mono);font-size:12.5px;font-weight:600;text-decoration:none;}
.nd-st{margin-top:2px;font-size:13.5px;color:var(--ink-soft);}
.nd-map{margin-top:4px;font-size:12.5px;font-weight:400;color:var(--ink-faint);}
