:root{--course-accent: #2a3fd6;--paper: #f6f7fb;--sheet: #ffffff;--ink: #18203a;--muted: #5d6681;--rule: #dfe3ef;--accent: var(--course-accent);--accent-soft: color-mix(in oklab, var(--course-accent) 12%, var(--sheet));--margin: #d9485f;--done: #1f8a5b;--done-soft: #dcf2e7;--display: "Unbounded", system-ui, sans-serif;--body: "Literata", Georgia, serif;--mono: "JetBrains Mono", ui-monospace, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #0d1124;--sheet: #151a33;--ink: #e7e9f5;--muted: #99a1c0;--rule: #262d4f;--accent: color-mix(in oklab, var(--course-accent) 45%, #ffffff);--accent-soft: color-mix(in oklab, var(--course-accent) 25%, var(--sheet));--margin: #ff7d90;--done: #5fd39c;--done-soft: #173a2c;color-scheme:dark}}:root[data-theme=dark]{--paper: #0d1124;--sheet: #151a33;--ink: #e7e9f5;--muted: #99a1c0;--rule: #262d4f;--accent: color-mix(in oklab, var(--course-accent) 45%, #ffffff);--accent-soft: color-mix(in oklab, var(--course-accent) 25%, var(--sheet));--margin: #ff7d90;--done: #5fd39c;--done-soft: #173a2c;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--body)}a{color:var(--accent)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[hidden]{display:none!important}.wrap{max-width:1040px;margin:0 auto;padding-block:28px 64px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.crumbs{font:600 13px var(--mono);color:var(--muted);margin-bottom:18px;display:flex;gap:8px;flex-wrap:wrap}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--accent)}header.top{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:end;justify-content:space-between;margin-bottom:20px}h1{font:700 clamp(26px,5vw,40px)/1.1 var(--display);margin:0;letter-spacing:-.01em;text-wrap:balance}.sub{color:var(--muted);margin:6px 0 0;max-width:60ch}.progress{font:600 13px var(--mono);color:var(--muted);text-align:right}.progress b{font:700 28px var(--display);color:var(--ink);display:block;font-variant-numeric:tabular-nums}.label{font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}nav.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin-bottom:24px;overflow-x:auto}nav.tabs a{font:600 14px var(--mono);color:var(--muted);padding:10px 14px;border-bottom:2px solid transparent;text-decoration:none;white-space:nowrap}nav.tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.hero{margin:8px 0 36px}.hero h1{font-size:clamp(32px,7vw,56px)}.courses{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.course-card{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;background:var(--sheet);border:1px solid var(--rule);border-radius:8px;color:var(--ink);text-decoration:none;position:relative;overflow:hidden}.course-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--card-accent, var(--accent))}.course-card:hover{border-color:var(--card-accent, var(--accent))}.course-card h2{font:700 22px/1.2 var(--display);margin:0;text-wrap:balance}.course-card p{margin:0;color:var(--muted);font-size:15px}.course-card .foot{margin-top:auto;padding-top:8px;display:flex;justify-content:space-between;font:600 12px var(--mono);color:var(--muted)}.badge{font:600 11px var(--mono);border-radius:999px;padding:2px 9px;background:var(--rule);color:var(--muted)}[data-status=now] .badge{background:var(--margin);color:var(--sheet)}[data-status=now] .badge:after{content:"идёт сейчас"}[data-status=soon] .badge:after{content:"скоро"}[data-status=past] .badge:after{content:"архив"}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:20px}.cal .dow{font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;padding-bottom:2px}.day{position:relative;min-height:74px;border:1px solid var(--rule);background:var(--sheet);border-radius:6px;padding:7px 8px;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;gap:4px}.day:hover{border-color:var(--accent)}.day .n{font:700 18px var(--display)}.day .g{font:12px/1.2 var(--body);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day .gn{font:600 11px var(--mono);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day.today{border-color:var(--margin);box-shadow:inset 0 0 0 1px var(--margin)}.day.today .n{color:var(--margin)}.day.done{background:var(--done-soft);border-color:transparent}.day.done .n:after{content:" ✓";color:var(--done);font-size:14px}.day .marks{position:absolute;top:8px;right:8px;display:flex;gap:4px}.mark{display:inline-block;width:7px;height:7px;border-radius:50%}.mark.theory{background:var(--accent)}.mark.review{border:1.5px solid var(--accent)}.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font:12px var(--mono);color:var(--muted);margin:0 0 28px;align-items:center}.legend span{display:inline-flex;gap:6px;align-items:center}.today-link{margin:0 0 20px}.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:8px;position:relative;padding:28px max(20px,4vw) 28px calc(max(20px,4vw) + 18px);background-image:linear-gradient(to right,transparent calc(max(20px,4vw) + 4px),var(--margin) calc(max(20px,4vw) + 4px),var(--margin) calc(max(20px,4vw) + 5px),transparent calc(max(20px,4vw) + 5px))}.sheet{display:flex;flex-direction:column}.sheet>.mark-done{order:1}.sheet>.part-review{order:2}.sheet>.gate{order:3}.sheet>h1{font-size:clamp(22px,4vw,30px);margin:4px 0 2px}.meta{color:var(--muted);margin:0 0 20px}.stats{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0 0 20px}.stat b{font:700 22px var(--display);display:block;font-variant-numeric:tabular-nums}.conds{display:grid;gap:14px;margin:0 0 22px}.cond{display:grid;grid-template-columns:120px minmax(0,1fr);gap:4px 16px;padding-bottom:14px;border-bottom:1px dashed var(--rule)}.cond .val{font-size:22px;line-height:1.3}.cond .en{font:13px var(--mono);color:var(--muted)}.cond .note{font-size:14px;color:var(--muted);margin-top:2px}.part{margin:26px 0 0}.part:first-child{margin-top:8px}.part-title{font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.part-body{max-width:68ch}.part-body>:first-child{margin-top:0}.part-body h2,.part-body h3{font:700 20px/1.25 var(--display);margin:22px 0 6px}.part-body h4{font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:22px 0 6px}.part-body blockquote{margin:12px 0;border-left:3px solid var(--margin);padding:2px 0 2px 14px;color:var(--muted)}.part-body img{max-width:100%;height:auto;border-radius:6px}.part-theory{border-bottom:1px dashed var(--rule);padding-bottom:22px}.part-task .part-body>p:first-child{background:var(--accent-soft);border-radius:6px;padding:12px 14px}.part-body .fine,.fine{font-size:14px;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.btn{font:600 14px var(--mono);border-radius:6px;padding:10px 16px;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:var(--sheet);text-decoration:none}.btn.ghost{background:transparent;color:var(--accent)}.btn.done{background:var(--done);border-color:var(--done)}.part-review{border-top:1px solid var(--rule);padding-top:22px;margin-top:30px}.gate{display:none;border:1px dashed var(--rule);border-radius:6px;padding:14px;color:var(--muted)}.gate .actions{margin-top:10px}.js .gated:not(.unlocked) .part-review .part-body{display:none}.js .gated:not(.unlocked) .gate{display:block}.pager{display:flex;justify-content:space-between;gap:10px;margin-top:16px;font:600 13px var(--mono)}.pager a{color:var(--muted);text-decoration:none;padding:6px 0}.pager a:hover{color:var(--accent)}.prose{max-width:70ch}.prose h2{font:700 22px var(--display);margin:28px 0 8px}.prose table{border-collapse:collapse;font-size:14px;width:100%}.prose td,.prose th{border-bottom:1px solid var(--rule);padding:6px 8px;text-align:left;vertical-align:top}.prose th{font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.tablewrap{overflow-x:auto}@media(max-width:640px){.day{min-height:54px;padding:5px}.day .g,.day .gn,.day .marks,.legend{display:none}.progress{text-align:left}.day .n{font-size:15px}.cond{grid-template-columns:1fr}}
