@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-400-normal.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:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-ext-400-normal.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:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-500-normal.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:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-ext-500-normal.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:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-600-normal.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:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-ext-600-normal.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:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-400-normal.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:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-ext-400-normal.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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-500-normal.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:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin-700-normal.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}
/* fixli.eu — shared by every page: mobile menu, site footer, article prose, blog list. Generated pages inline the rest. */

/* mobile menu */
.nav .mnu{display:none;min-height:44px;padding:0 12px;background:none;border:1px solid var(--line2);color:var(--tx);font:500 14px var(--mono);cursor:pointer}
.nav .mnu:hover{border-color:var(--o)}
.nav .mnu .m2,.nav.open .mnu .m1{display:none}.nav.open .mnu .m2{display:inline}
@media (max-width:920px){
  .nav .mnu{display:inline-flex;align-items:center}
  .nav.open ul{display:flex;flex-direction:column;gap:0;position:absolute;top:68px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 16px 20px;font-size:17px}
  .nav.open ul a{padding:14px 4px;border-bottom:1px solid var(--line)}
  .nav.open .mnu{border-color:var(--o)}
}
.nav ul .mo{display:none}
@media (max-width:920px){.nav.open ul .mo{display:list-item}}
@media (max-width:480px){.nav .end .btn.pri{display:none}}

/* site footer */
footer.site{border-top:1px solid var(--line);padding:56px 0 28px;font-size:14px;color:var(--mut)}
footer.site .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px 24px;align-items:start}
footer.site .fb svg{height:24px;width:auto;display:block;margin-bottom:14px}
footer.site .fb p{max-width:34ch;margin-bottom:8px}
footer.site .fb a{color:var(--tx2);border-bottom:1px solid var(--line2)}
footer.site nav{display:flex;flex-direction:column;align-items:flex-start;gap:0}
footer.site nav b{font:400 12px var(--mono);letter-spacing:.06em;color:var(--o);margin-bottom:6px}
footer.site nav a,footer.site nav button{padding:7px 0;color:var(--tx2);background:none;border:0;font:inherit;cursor:pointer;text-align:left}
footer.site nav a:hover,footer.site nav button:hover{color:var(--tx)}
footer.site .copy{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;font:400 12px var(--mono)}
@media (max-width:820px){footer.site .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}footer.site .fb{grid-column:1/-1}}
@media (max-width:420px){footer.site .wrap{grid-template-columns:minmax(0,1fr)}}

/* page header for overview / text pages */
.ph{padding:clamp(40px,7vw,88px) 0 clamp(24px,4vw,40px)}
.ph h1{font-weight:600;font-size:clamp(40px,6vw,72px);line-height:1.02;letter-spacing:-.035em;max-width:16ch}
.ph .sub{margin-top:18px;max-width:60ch;color:var(--tx2);font-size:clamp(17px,1.6vw,19px)}
.ph .acts{margin-top:28px}

/* article */
.post{padding:0 0 clamp(56px,8vw,104px)}
.ph .meta,.post .meta{font:400 13px var(--mono);color:var(--mut);margin-top:18px;display:flex;flex-wrap:wrap;gap:6px 16px}
.prose{max-width:70ch;font-size:18px;line-height:1.7;color:var(--tx2)}
.prose>*+*{margin-top:1.1em}
.prose .lead{font-size:clamp(19px,1.8vw,21px);color:var(--tx);line-height:1.6}
.prose h2{color:var(--tx);font-weight:600;font-size:clamp(24px,2.6vw,30px);line-height:1.2;letter-spacing:-.02em;margin-top:2em}
.prose h3{color:var(--tx);font-weight:600;font-size:20px;margin-top:1.6em}
.prose strong{color:var(--tx);font-weight:600}
.prose a{color:var(--tx);border-bottom:1px solid var(--o)}
.prose a:hover{color:var(--o)}
.prose ul,.prose ol{padding-left:1.3em;display:grid;gap:.45em}
.prose li::marker{color:var(--o)}
.prose blockquote{border-left:2px solid var(--o);padding:2px 0 2px 18px;color:var(--tx)}
.prose aside.note{border:1px solid var(--line2);background:var(--bg2);padding:14px 18px;font-size:15px}
.prose code{font:400 .88em var(--mono);background:var(--bg2);padding:1px 6px}
.prose table{width:100%;border-collapse:collapse;font-size:15px;display:block;overflow-x:auto}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 12px 10px 0;text-align:left;vertical-align:top}
.prose th{color:var(--tx);font-weight:600}
.prose ol.src{font-size:14px;gap:.3em}
.prose ol.src a{border-bottom-color:var(--line2);word-break:break-word}

/* blog list */
.posts{display:grid;gap:0;border-top:1px solid var(--line)}
.posts a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 24px;padding:26px 0;border-bottom:1px solid var(--line)}
.posts a:hover h2{color:var(--o)}
.posts h2{font-weight:600;font-size:clamp(20px,2.2vw,26px);letter-spacing:-.02em;line-height:1.25;transition:color .2s}
.posts p{grid-column:1;color:var(--tx2);font-size:16px;max-width:70ch}
.posts .d{grid-row:1/span 2;grid-column:2;font:400 13px var(--mono);color:var(--mut);white-space:nowrap}
@media (max-width:640px){.posts a{grid-template-columns:minmax(0,1fr)}.posts .d{grid-row:auto;grid-column:1}}

/* related links at the end of a page */
.rel{display:flex;flex-wrap:wrap;gap:10px}
.rel a{border:1px solid var(--line2);padding:10px 14px;font-size:15px;color:var(--tx2)}
.rel a:hover{border-color:var(--o);color:var(--tx)}

/* legal text pages */
.legal-page{max-width:820px;padding-bottom:clamp(56px,8vw,104px)}
.legal-page h2{font-weight:600;font-size:22px;margin:40px 0 14px;display:flex;gap:12px;align-items:baseline}
.legal-page h2 .n{font:400 13px var(--mono);color:var(--o)}
.legal-page p,.legal-page li{color:var(--tx2);margin-top:10px}
.legal-page ul{padding-left:1.2em}
.legal-page a{border-bottom:1px solid var(--line2)}
.legal-page table{width:100%;border-collapse:collapse;font-size:15px;margin-top:8px}
.legal-page th,.legal-page td{border-bottom:1px solid var(--line);padding:10px 12px 10px 0;text-align:left;vertical-align:top}
.legal-page th{color:var(--mut);font-weight:400;width:34%}
