@font-face {
    font-family:Inter;
    src:url('/assets/inter-cyrillic.woff2') format('woff2');
    font-style:normal;
    font-weight:100 900;
    font-display:swap;
}
:root {
    --accent:#c93f0c;
    --ink:#000000;
    --page:#ffffff;
    --paper:#ffffff;
    --rule:#d9d9da;
    --soft:#f3f3f4;
    --muted:#525257;
    --accent-dark:#a9340a;
    --mono:ui-monospace,SFMono-Regular,Consolas,monospace;
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
}
body {
    margin:0;
    background:var(--page);
    color:var(--ink);
    font:16px/1.5 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
button,input,select,textarea {
    font:inherit;
}
button,a {
    touch-action:manipulation;
}
button {
    cursor:pointer;
}
button:disabled {
    opacity:.5;
    cursor:default;
}
a {
    color:var(--accent-dark);
    text-decoration-thickness:1px;
    text-underline-offset:.24em;
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
    outline:3px solid #c93f0c;
    outline-offset:3px;
}
.shell {
    width:min(1192px,calc(100% - 96px));
    margin:auto;
}
.site-head {
    border-bottom:1px solid var(--rule);
    background:var(--paper);
}
.head-inner {
    min-height:75px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.brand {
    display:inline-flex;
    gap:9px;
    align-items:center;
    text-decoration:none;
    color:var(--accent);
    font-weight:850;
    letter-spacing:-.075em;
    font-size:21px;
}
.brand picture,.brand img {
    display:block;
}
.brand img {
    width:auto;
    height:48px;
}
.head-inner nav {
    display:flex;
    align-self:stretch;
    gap:30px;
}
.head-inner nav a {
    display:flex;
    align-items:center;
    color:var(--muted);
    font-size:14px;
    font-weight:580;
    text-decoration:none;
    position:relative;
}
.head-inner nav a[aria-current] {
    color:var(--accent);
}
.head-inner nav a:hover {
    color:var(--accent);
}
.head-inner nav a[aria-current]:after {
    content:"";
    position:absolute;
    bottom:0;
    height:3px;
    left:0;
    right:0;
    background:var(--accent);
}
.hero {
    display:grid;
    grid-template-columns:1.04fr 1fr;
    gap:clamp(30px,5vw,85px);
    align-items:center;
    padding:clamp(40px,5.3vw,78px) 0;
}
.eyebrow,.kicker,.plate-top,.plate figcaption span:last-child,.card-top>span,.label {
    font:600 11px/1.5 var(--mono);
    letter-spacing:.1em;
    color:var(--muted);
}
.eyebrow,.plate-top span:first-child {
    display:flex;
    align-items:center;
    gap:10px;
}
.eyebrow i,.plate-top i {
    background:#c93f0c;
    width:21px;
    height:3px;
    display:inline-block;
}
.hero h1 {
    font-size:clamp(46px,5.55vw,80px);
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:-.067em;
    color:var(--ink);
    line-height:.96;
    margin:.27em 0 .22em;
}
.hero h1 em {
    font:inherit;
    letter-spacing:inherit;
    color:var(--accent);
}
.lead {
    font-size:clamp(16px,1.3vw,20px);
    line-height:1.5;
    max-width:475px;
    color:var(--muted);
    margin:22px 0 25px;
}
.actions,.row,.card-top,.card-end,.plate-top,.plate figcaption,.section-bar,.admin-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}
.actions {
    justify-content:flex-start;
    gap:22px;
    flex-wrap:wrap;
}
.actions form {
    margin:0;
}
.btn,.text-btn {
    font-weight:650;
    font-size:15px;
}
.btn {
    border:1px solid var(--rule);
    border-radius:999px;
    background:var(--paper);
    text-decoration:none;
    padding:12px 18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    color:var(--accent);
    line-height:1.35;
}
.btn:hover,.topic-card:hover,.review summary:hover {
    border-color:var(--accent);
}
.btn.primary {
    background:var(--accent);
    border-color:var(--accent);
    color:white;
}
.btn.primary:hover {
    background:#a9340a;
}
.hero .primary {
    padding:14px 22px;
    gap:30px;
}
.text-btn {
    text-decoration:none;
}
.text-btn:hover {
    text-decoration:underline;
}
.meta-line {
    font-size:13px;
    color:var(--muted);
    margin:20px 0 0;
}
.meta-line b {
    padding:0 5px;
}
.tick {
    color:var(--accent);
    font-weight:bold;
    margin-right:4px;
}
.resume {
    display:block;
    margin-top:12px;
    font-size:14px;
}
.plate {
    position:relative;
    margin:0;
    border:1px solid #d6d6d7;
    padding:15px 17px 11px;
    background:#fafafa;
    border-radius:5px;
    overflow:hidden;
}
.plate img {
    width:100%;
    height:auto;
    max-height:355px;
    display:block;
}
.plate-top,.plate figcaption {
    padding:0 1px;
}
.plate-top {
    padding-bottom:10px;
    border-bottom:1px solid #d4d4d5;
}
.plate-top i {
    width:7px;
    height:7px;
    background:var(--accent);
}
.plate figcaption {
    border-top:1px solid #d4d4d5;
    padding-top:9px;
    font:650 14px Inter,Arial,sans-serif;
}
.plate figcaption span:last-child {
    font-size:9px;
}
.topics {
    border-top:1px solid #c6c6c8;
    padding:28px 0 10px;
}
.section-bar {
    align-items:flex-end;
    margin-bottom:19px;
}
h1,h2,h3,p {
    overflow-wrap:anywhere;
}
h2,.section-bar h2 {
    font-size:clamp(25px,2.5vw,36px);
    font-weight:640;
    line-height:1.15;
    letter-spacing:-.045em;
    margin:8px 0 16px;
}
.section-bar h2,.section-title h2 {
    margin:5px 0 0;
}
.muted,.desc {
    color:var(--muted);
    font-size:14px;
}
.topic-grid,.metrics {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}
.topic-grid form {
    display:flex;
    min-width:0;
}
.topic-card {
    display:flex;
    text-align:left;
    flex-direction:column;
    align-items:stretch;
    width:100%;
    padding:19px 20px 12px;
    background:var(--paper);
    border:1px solid var(--rule);
    border-radius:7px;
    color:var(--ink);
    transition:border-color .15s,transform .15s;
}
.topic-card:hover {
    transform:translateY(-2px);
}
.topic-icon {
    width:26px;
    height:26px;
    color:var(--accent);
}
.card-top {
    margin:0 0 20px;
}
.card-top>span {
    font-size:10px;
}
.topic-card strong {
    font-size:21px;
    letter-spacing:-.035em;
}
.topic-card .desc {
    font-size:14px;
    line-height:1.45;
    margin:5px 0 18px;
}
.card-end {
    border-top:1px solid var(--rule);
    margin-top:auto;
    padding-top:10px;
    font:12px var(--mono);
    color:var(--muted);
}
.card-end b {
    font:20px/1 system-ui;
    color:var(--accent);
}
footer {
    margin:44px 0 20px;
    border-top:1px solid var(--rule);
    padding:15px 0;
    display:flex;
    justify-content:space-between;
    color:var(--muted);
    font-size:12px;
}
footer span:first-child {
    font-weight:bold;
}
.box,.review {
    background:var(--paper);
    border:1px solid var(--rule);
    border-radius:8px;
    padding:clamp(20px,3vw,35px);
}
.narrow {
    max-width:810px;
    margin:32px auto;
}
.box h1,.admin-top h1 {
    font-size:clamp(26px,3vw,45px);
    line-height:1.15;
    letter-spacing:-.05em;
    margin:.5em 0;
}
.box h2 {
    font-size:24px;
}
.box h3,.review h3 {
    font-size:18px;
    line-height:1.4;
    margin:12px 0;
}
.path {
    margin:28px 0 18px;
    font:13px var(--mono);
    color:var(--muted);
}
.path a {
    text-decoration:none;
}
.quiz-grid {
    display:grid;
    align-items:start;
    grid-template-columns:minmax(0,2fr) minmax(255px,1fr);
    gap:20px;
}
.side {
    margin-bottom:16px;
}
.side p {
    color:var(--muted);
}
.pill,.badge {
    border-radius:4px;
    background:var(--soft);
    padding:4px 7px;
    font:600 12px/1.4 var(--mono);
}
.good {
    background:#deeedd;
}
.bad,.warn {
    background:#f8e4cb;
}
.question .label {
    margin:20px 0 5px;
    color:var(--accent-dark);
}
.question h1 {
    margin:.25em 0 .8em;
    font-size:clamp(24px,2.5vw,36px);
}
progress {
    appearance:none;
    width:100%;
    height:4px;
    border:0;
    border-radius:3px;
    display:block;
    background:var(--soft);
    margin:18px 0;
}
progress::-webkit-progress-bar {
    background:var(--soft);
}
progress::-webkit-progress-value {
    background:var(--accent);
}
progress::-moz-progress-bar {
    background:var(--accent);
}
fieldset {
    border:0;
    margin:0;
    padding:0;
    min-width:0;
}
.answer {
    position:relative;
    display:flex;
    gap:14px;
    align-items:center;
    padding:14px;
    margin-bottom:10px;
    border:1px solid var(--rule);
    border-radius:6px;
}
.answer:has(input) {
    cursor:pointer;
}
.answer:has(input:hover),.answer:has(input:checked) {
    border-color:var(--accent);
    background:#fff3ed;
}
.answer:has(input:focus-visible) {
    outline:3px solid #c93f0c;
}
.answer input {
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
}
.letter {
    border:1px solid var(--rule);
    border-radius:4px;
    background:var(--paper);
    font:600 13px var(--mono);
    padding:5px 8px;
}
.answer:has(:checked) .letter {
    background:var(--accent);
    color:white;
}
.answer small {
    display:block;
    font-weight:bold;
}
.answer.right {
    background:#e4efde;
    border-color:#90ac87;
}
.answer.wrong {
    background:#faeae0;
    border-color:#d5a589;
}
.question .btn {
    margin-top:10px;
}
.explain {
    background:#f3f5f2;
    border-left:3px solid #54754e;
    margin:20px 0;
    padding:15px 18px;
}
.explain.mistake {
    background:#fff2eb;
    border-color:var(--accent-dark);
}
.explain p {
    margin:5px 0;
}
.source {
    font-size:14px;
    overflow-wrap:anywhere;
}
.rating label,.check {
    display:flex;
    align-items:center;
    gap:8px;
    margin:7px 0;
}
.rating,.check {
    font-size:15px;
}
.rating {
    padding-bottom:10px;
    border-bottom:1px solid var(--rule);
}
input[type=radio],input[type=checkbox] {
    width:17px;
    height:17px;
    accent-color:var(--accent);
    flex:none;
}
.stack {
    display:flex;
    flex-direction:column;
    gap:5px;
    font-weight:600;
    font-size:14px;
    margin:12px 0;
}
.stack input,.stack textarea,.stack select,.option-fields input[type=text],.filters select {
    width:100%;
    padding:10px 12px;
    border:1px solid #a3a3a8;
    border-radius:4px;
    color:var(--ink);
    background:white;
    font-weight:400;
    font-size:16px;
}
.stack textarea {
    resize:vertical;
}
.score {
    font:850 66px Inter,Arial,sans-serif;
    color:var(--accent);
}
.score small {
    font-size:30px;
    color:var(--muted);
}
.review {
    padding:17px 20px;
    margin:10px 0;
}
.review summary {
    cursor:pointer;
    font-weight:600;
}
.review p {
    margin:8px 0;
}
.summary p {
    margin-top:0;
}
.summary .actions {
    margin-top:20px;
}
.login,.editor {
    max-width:760px;
}
.login {
    max-width:460px;
    margin:60px auto;
}
.notice,.error {
    border-radius:5px;
    padding:10px 14px;
    font-size:14px;
}
.notice {
    background:#e1edd8;
}
.error {
    background:#f9e2d8;
    color:#7a311c;
}
.admin-top {
    margin:35px 0 20px;
}
.admin-top h1 {
    margin:.2em 0 0;
}
.tabs,.switch,.filters {
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
}
.tabs {
    border-bottom:1px solid var(--rule);
    gap:18px;
    margin-bottom:24px;
}
.tabs a,.switch a {
    font-size:14px;
    padding:7px 0;
    text-decoration:none;
}
.tabs a[aria-current] {
    border-bottom:3px solid var(--accent);
    font-weight:bold;
}
.switch {
    gap:1px;
    border:1px solid var(--rule);
    border-radius:5px;
    overflow:hidden;
}
.switch a {
    padding:6px 10px;
}
.switch a.on {
    background:var(--accent);
    color:white;
}
.section-title {
    margin-bottom:15px;
}
.metrics {
    margin-bottom:30px;
}
.metrics .box {
    padding:16px 20px;
}
.metrics strong {
    display:block;
    font-size:36px;
    color:var(--accent);
}
.table-wrap {
    overflow-x:auto;
    padding:0;
}
table {
    border-collapse:collapse;
    width:100%;
    text-align:left;
    font-size:14px;
}
th,td {
    border-bottom:1px solid var(--rule);
    padding:12px;
    vertical-align:top;
}
th {
    background:#f4f4f5;
    color:var(--muted);
    font-size:12px;
}
.empty {
    padding:10px 15px;
    color:var(--muted);
}
.filters {
    margin-bottom:15px;
}
.filters select {
    width:auto;
}
.small {
    padding:7px 12px;
    font-size:14px;
}
.twocol {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.option-fields legend {
    font-weight:650;
}
.option-fields>div {
    display:flex;
    align-items:center;
    gap:12px;
    margin:7px 0;
}
.editor .check {
    margin:17px 0;
}
.editor>a {
    font-size:14px;
}
.sr,.skip:not(:focus) {
    position:absolute;
    width:1px;
    height:1px;
    clip-path:inset(50%);
    overflow:hidden;
}
.skip:focus {
    position:fixed;
    top:4px;
    left:4px;
    background:white;
    z-index:5;
    padding:10px;
}
@media(max-width:940px) {
    .shell {
        width:calc(100% - 48px);
    }
    .hero {
        gap:28px;
    }
    .topic-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .plate {
        padding:12px;
    }
    .quiz-grid {
        grid-template-columns:minmax(0,1.6fr) minmax(230px,1fr);
    }
}
@media(max-width:700px) {
    .shell {
        width:calc(100% - 32px);
    }
    .head-inner {
        min-height:60px;
    }
    .head-inner nav {
        gap:15px;
    }
    .head-inner nav a {
        font-size:13px;
    }
    .brand {
        font-size:17px;
        gap:4px;
    }
    .brand img {
        height:35px;
    }
    .hero {
        grid-template-columns:1fr;
        padding:35px 0 27px;
        gap:24px;
    }
    .hero h1 {
        font-size:clamp(40px,10.5vw,68px);
    }
    .plate img {
        max-height:275px;
    }
    .hero-copy .lead {
        margin:15px 0 18px;
    }
    .eyebrow {
        font-size:10px;
    }
    .meta-line {
        margin-top:14px;
    }
    .topic-grid,.metrics {
        gap:9px;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .topic-card {
        padding:13px 12px 10px;
    }
    .topic-card strong {
        font-size:17px;
    }
    .topic-card .desc {
        font-size:13px;
    }
    .card-top {
        margin-bottom:10px;
    }
    .section-title,.admin-top {
        align-items:flex-start;
        flex-wrap:wrap;
    }
    .quiz-grid {
        grid-template-columns:1fr;
        gap:12px;
    }
    .path {
        margin:18px 0 12px;
    }
    .actions {
        gap:12px;
    }
    .box {
        padding:18px;
    }
    .table-wrap {
        padding:0;
    }
    .tabs {
        gap:10px;
    }
    .twocol {
        grid-template-columns:1fr;
        gap:0;
    }
    .lead {
        max-width:36em;
    }
    .card-top>span {
        font-size:9px;
    }
    footer {
        margin-top:28px;
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    .topic-card {
        transition:none;
    }
}
