/* Stylesheet of index.html, nastava.html, publications.html (since 2026-11-04; the old one is style.css). */

/* Open Sans (variable, weights 300-800), self-hosted from Google Fonts v44; licence: fonts/OFL.txt */
@font-face {
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 300 800;
    font-display: swap;
    src: url(../fonts/opensans-italic-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 300 800;
    font-display: swap;
    src: url(../fonts/opensans-italic-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: 'Open Sans';
    font-style: normal;
    font-weight: 300 800;
    font-display: swap;
    src: url(../fonts/opensans-normal-math.woff2) format('woff2');
    unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 300 800;
    font-display: swap;
    src: url(../fonts/opensans-normal-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 300 800;
    font-display: swap;
    src: url(../fonts/opensans-normal-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;
}

:root {
    --green: #1f5f3f;
    --green-dark: #184c32;
    --text: #1f2328;
    --muted: #5d6670;
    --rule: #dde3df;
    --bg: #eef1ef;
    --card: #ffffff;
    --link: #1d5ea8;
    --link-hover: #0f3f7a;
    --width: 960px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--text);
    background-color: var(--bg);
}

a { color: var(--link); text-decoration: none; }
a:hover, a:focus { color: var(--link-hover); text-decoration: underline; }

/* header */

.site-header {
    background-color: var(--green);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
    position: sticky;
    top: 0;
    z-index: 100;
}

.site-header-inner {
    width: min(var(--width), calc(100% - 32px));
    margin: 0 auto;
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px 24px;
    flex-wrap: wrap;
}

.site-name, .site-name:hover, .site-name:focus {
    color: #ffffff;
    font-size: 1.6rem;
    font-weight: 600;
    text-decoration: none;
    letter-spacing: 0.01em;
}

.site-nav { display: flex; gap: 4px; }

.site-nav a {
    color: rgba(255, 255, 255, 0.88);
    font-weight: 600;
    padding: 6px 16px;
    border-radius: 6px;
}

.site-nav a:hover, .site-nav a:focus {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.12);
    text-decoration: none;
}

.site-nav a.active {
    color: #ffffff;
    background-color: rgba(255, 255, 255, 0.2);
}

/* page */

.page {
    width: min(var(--width), calc(100% - 32px));
    margin: 32px auto 48px;
    padding: 40px 48px;
    background-color: var(--card);
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.page > :first-child { margin-top: 0; }
.page > :last-child { margin-bottom: 0; }

h1 {
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 0.75rem;
}

h2 {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--green);
    margin: 2rem 0 0.6rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--rule);
}

p { margin: 0 0 0.75rem; }

b, strong { font-weight: 700; }

/* super- and subscripts do not stretch the line */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }

ul.links { margin: 0; padding-left: 1.25rem; }
ul.links li { margin: 0.25rem 0; }
ul.links li::marker { color: #9aa79f; }

/* home page */

.role { color: var(--muted); margin-bottom: 1rem; }

.contact {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content));
    gap: 0 64px;
}

/* publications */

ol.pubs { margin: 0; padding-left: 2.6rem; }
ol.pubs li { margin: 0 0 0.75rem; padding-left: 0.25rem; }
ol.pubs li::marker { color: var(--muted); font-variant-numeric: tabular-nums; }

.m { white-space: nowrap; }

.ai-mark { cursor: help; color: var(--muted); }

.pubs-note { color: var(--muted); font-size: 0.9rem; margin-top: 1.5rem; }

/* phones */

@media (max-width: 640px) {
    body { font-size: 15px; }
    .site-header { position: static; }
    .site-header-inner {
        width: calc(100% - 32px);
        min-height: 0;
        padding: 10px 0 8px;
    }
    .site-name, .site-name:hover, .site-name:focus { font-size: 1.35rem; }
    .site-nav { width: 100%; margin-left: -8px; }
    .site-nav a { padding: 4px 8px; }
    .page {
        width: calc(100% - 16px);
        margin: 8px auto 24px;
        padding: 22px 18px;
    }
    h1 { font-size: 1.45rem; }
    .contact { grid-template-columns: minmax(0, 1fr); }
    ol.pubs { padding-left: 2.1rem; }
}
