@font-face{font-family:"Roboto";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/roboto-400-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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Roboto";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/roboto-400-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:"Roboto";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/fonts/roboto-500-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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Roboto";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/fonts/roboto-500-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:"Roboto";font-style:normal;font-weight:600;font-display:swap;src:url("../assets/fonts/roboto-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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Roboto";font-style:normal;font-weight:600;font-display:swap;src:url("../assets/fonts/roboto-600-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:"Roboto";font-style:normal;font-weight:700;font-display:swap;src:url("../assets/fonts/roboto-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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Roboto";font-style:normal;font-weight:700;font-display:swap;src:url("../assets/fonts/roboto-700-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:"Roboto";font-style:normal;font-weight:800;font-display:swap;src:url("../assets/fonts/roboto-800-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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Roboto";font-style:normal;font-weight:800;font-display:swap;src:url("../assets/fonts/roboto-800-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:"Roboto Fallback";src:local("Arial"),local("Helvetica Neue"),local("Liberation Sans");size-adjust:100.06%;ascent-override:92.67%;descent-override:24.39%;line-gap-override:0%}
@font-face{font-family:"Michroma";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/michroma-400-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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Michroma";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/fonts/michroma-400-latinext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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}
:root{--sans:"Roboto","Roboto Fallback",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;--mono:var(--sans);--code:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--bg:#FFFFFF;--surface:#FFFFFF;--surface2:#F5F5F5;--surface3:#EEEEEE;--line:#E5E5E5;--line2:#CFCFCF;--text:#1C1C1C;--muted:#5A5A5A;--faint:#696969;--accent-fill:#E5A82A;--accent-fill-hover:#F0B429;--accent-fill-pressed:#C99317;--accent-ink:#1A1505;--accent-text:#E5A82A;--accent-bg:#FCF3D6;--accent:var(--accent-text);--amber:#D98A00;--green:#2F7613;--green-strong:#28650F;--green-bg:#EAF6E2;--red:#BB3A2E;--red-strong:#9B2C20;--red-bg:#FBE7E4;--info:#1E6BAC;--info-bg:#E0EDF8;--shadow:0 0 2px rgba(0,0,0,.08), 0 0 20px rgba(0,0,0,.04);--shadow-sm:var(--shadow);--shadow-md:0 0 2px rgba(0,0,0,.12), 0 0 20px rgba(0,0,0,.06);--shadow-lg:0 0 8px rgba(0,0,0,.12), 0 0 20px rgba(0,0,0,.08);--chart-grid:rgba(20,28,38,.06);--chart-win:#4FA873;--chart-loss:#D9566F;--chart-tick:#6E757F;--chart-axis-title:#4A515B;--fs-2xs:9.5px;--fs-xs:11px;--fs-sm:12.5px;--fs-md:14px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:21px;--fs-3xl:25px;--lh-normal:1.45;--r-4:4px;--r-8:8px;--r-pill:100px;--gap:13px;--d1:#E5A82A;--d2:#1F6FB2;--d3:#0E8345;--d4:#A256C9;--d5:#F26A3D;--t-fast:120ms;--t-med:200ms;--ease-out:cubic-bezier(.2,.7,.2,1);color-scheme:light}
[data-theme="dark"]{--bg:#0B0E13;--surface:#13171F;--surface2:#1A1F2A;--surface3:#222836;--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.14);--text:#E5E8ED;--muted:#9098A4;--faint:#8A95A4;--accent-fill:#E5A82A;--accent-fill-hover:#F0B429;--accent-fill-pressed:#C99317;--accent-ink:#1A1505;--accent-text:#E5A82A;--accent-bg:rgba(229,168,42,.14);--amber:#E5A82A;--green:#3FBD78;--green-strong:#5DD191;--green-bg:rgba(63,189,120,.14);--red:#EA6E64;--red-strong:#F08075;--red-bg:rgba(226,96,86,.14);--info:#4EA1E5;--info-bg:rgba(78,161,229,.14);--shadow:0 0 2px rgba(0,0,0,.5), 0 0 20px rgba(0,0,0,.3);--shadow-sm:var(--shadow);--shadow-md:0 0 2px rgba(0,0,0,.55), 0 0 20px rgba(0,0,0,.35);--shadow-lg:0 0 8px rgba(0,0,0,.6), 0 0 24px rgba(0,0,0,.4);--chart-grid:rgba(255,255,255,.07);--chart-win:#6FBF8A;--chart-loss:#E86F86;--chart-tick:#7F8896;--chart-axis-title:#B3BBC6;color-scheme:dark}
*{box-sizing:border-box}
:root{--z-chrome:100;--z-drop:1000;--z-tip:1100;--z-modal:2000;--z-toast:3000}
/* uiLayer popups: zero-specificity reset of the UA popover box, so each popup's own rules still win */
:where([data-layer]){inset:auto;margin:0;border:0;padding:0;width:auto;height:auto;overflow:visible;color:inherit;background:transparent}
:where([data-layer="drop"],[data-layer="tip"]){max-width:calc(100vw - 16px)}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:400 var(--fs-sm)/var(--lh-normal) var(--sans);font-feature-settings:"tnum" 0, "lnum" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent-text)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "lnum" 1;letter-spacing:-0.01em}
:root{--ctl-h:32px;--ctl-h-sm:26px;--ctl-px:16px;--ctl-px-sm:12px;--ctl-fs:13px;--ctl-fs-sm:12px;--ctl-tab-h:32px;--ctl-tab-fs:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--ctl-h);padding:4px var(--ctl-px);background:var(--surface);color:var(--text);border:1px solid var(--line2);border-radius:var(--r-8);font:600 var(--ctl-fs) var(--sans);cursor:pointer;letter-spacing:0;line-height:1.15;transition:background var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out)}
.btn:hover{border-color:var(--text);background:var(--surface2)}
.btn:focus-visible{outline:2px solid var(--accent-fill);outline-offset:2px}
.btn-p{background:var(--accent-fill);color:var(--accent-ink);border-color:var(--accent-fill)}
.btn-p:hover{background:var(--accent-fill-hover);border-color:var(--accent-fill-hover)}
.btn-p:active{background:var(--accent-fill-pressed);border-color:var(--accent-fill-pressed)}
.btn-sm{min-height:var(--ctl-h-sm);padding:2px var(--ctl-px-sm);font-size:var(--ctl-fs-sm)}
.btn-ghost{background:transparent;border-color:transparent}
.btn-ghost:hover{background:var(--surface2);border-color:var(--line2)}
.label{display:block;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface2);color:var(--text);font:500 var(--fs-xs) var(--sans);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast)}
.chip:hover{background:var(--surface3);border-color:var(--line2)}
.chip.on{background:#1C1C1C;color:#fff;border-color:#1C1C1C}
[data-theme="dark"] .chip.on{background:var(--accent-fill);color:var(--accent-ink);border-color:var(--accent-fill)}
.badge{display:inline-flex;align-items:center;gap:4px;background:var(--surface2);color:var(--muted);border-radius:var(--r-4);padding:2px 7px;font:600 var(--fs-2xs) var(--mono);letter-spacing:0}
.theme-toggle{background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-8);color:var(--muted);padding:6px 8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font:600 var(--fs-xs) var(--sans)}
.theme-toggle:hover{color:var(--text);border-color:var(--text)}
.theme-toggle svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html:not([data-theme="dark"]) [data-theme-toggle] .tt-sun,[data-theme="dark"] [data-theme-toggle] .tt-moon{display:none}
h1{font:800 var(--fs-3xl)/1.12 var(--sans);letter-spacing:-.015em;margin:0}
h2{font:800 var(--fs-2xl)/1.18 var(--sans);letter-spacing:-.01em;margin:0}
h3{font:800 var(--fs-lg)/1.25 var(--sans);letter-spacing:-.005em;margin:0}
h4{font:700 var(--fs-md)/1.3 var(--sans);margin:0}
.flag{display:inline-block;width:16px;height:12px;border-radius:1px;background:var(--surface2);border:1px solid var(--line);vertical-align:middle;margin-right:6px;font-size:0;line-height:0}
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{position:fixed;left:8px;top:8px;width:auto;height:auto;background:var(--text);color:var(--bg);padding:8px 14px;border-radius:var(--r-4);font:600 var(--fs-sm) var(--sans);z-index:9999}
:focus-visible:not(main):not(body){outline:2px solid var(--accent-text) !important}
.tab:focus-visible{outline-offset:-2px !important}
/* the yellow ring is about 2:1 on white, so light theme adds a dark ring beside it rather than changing the yellow */
html:not([data-theme="dark"]) :focus-visible:not(main,body,textarea,select,[contenteditable="true"],input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=file],[type=button],[type=submit])){box-shadow:inset 0 0 0 2px var(--text) !important}
html:not([data-theme="dark"]) .tab:focus-visible{box-shadow:inset 0 0 0 4px var(--text) !important}
/* a field you type in takes one ring, its own border made 2px: the text colour on light, where the yellow is too faint, the yellow on dark */
:root{--field-ring:var(--text)}
[data-theme="dark"]{--field-ring:var(--accent-text)}
:is(input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=file],[type=button],[type=submit]),textarea,select,[contenteditable="true"]):focus{outline:none !important;border-color:var(--field-ring) !important;box-shadow:0 0 0 1px var(--field-ring) !important}
main[tabindex="-1"]:focus{outline:none}
