:root{--course-accent: #c8322b;--paper: #fbfbf9;--ink: #111111;--muted: #6b6b68;--hair: #e3e3df;--accent: var(--course-accent);--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #121211;--ink: #ecebe6;--muted: #9a9a95;--hair: #2b2b29;--accent: color-mix(in oklab, var(--course-accent) 70%, #ffffff);color-scheme:dark}}:root[data-theme=dark]{--paper: #121211;--ink: #ecebe6;--muted: #9a9a95;--hair: #2b2b29;--accent: color-mix(in oklab, var(--course-accent) 70%, #ffffff);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}a{color:inherit;text-decoration:none}a:hover{color:var(--muted)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}h1,h2,h3{font-weight:500;letter-spacing:-.02em}.wrap{max-width:760px;margin:0 auto;padding:48px 24px 80px;display:flex;flex-direction:column;gap:56px}.wrap.wide{max-width:1088px}.wrap.narrow{max-width:728px;gap:48px}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.label{font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.crumbs{display:flex;flex-wrap:wrap;gap:8px;font:14px var(--mono);color:var(--muted)}.crumbs a:first-child{color:var(--ink);font-weight:500}.crumbs a:first-child:hover{color:var(--muted)}.hero{display:flex;flex-direction:column;gap:20px;margin-top:40px}.hero h1{margin:0;font-size:clamp(40px,8vw,56px);line-height:1.1}.hero p{margin:0;max-width:52ch;color:var(--muted);font-size:18px}.list .label{padding-bottom:12px;border-bottom:1px solid var(--ink)}.row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:8px 24px;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--hair)}.row:hover{color:inherit}.row:hover .row-title{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.row-month{font:14px var(--mono);color:var(--muted)}.row-main{display:flex;flex-direction:column;gap:4px;min-width:0}.row-title{font-size:24px;font-weight:500;line-height:1.25}.row-desc{color:var(--muted)}.row-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font:14px var(--mono)}.status{color:var(--muted)}[data-status=now] .status{color:var(--accent)}[data-status=now] .status:after{content:"идёт"}[data-status=soon] .status:after{content:"скоро"}[data-status=past] .status:after{content:"архив"}footer{font:12px var(--mono);color:var(--muted)}.course-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px}.course-head>div:first-child{display:flex;flex-direction:column;gap:12px;flex:1 1 480px}.course-head h1{margin:0;font-size:clamp(32px,6vw,48px);line-height:1.1}.course-head p{margin:0;max-width:58ch;color:var(--muted)}.progress{display:flex;flex-direction:column;align-items:flex-end;font-family:var(--mono)}.progress b{font-size:32px;font-weight:400;line-height:1.1;font-variant-numeric:tabular-nums}.progress span{font-size:12px;color:var(--muted)}.tabs{display:flex;flex-wrap:wrap;align-items:baseline;gap:24px;font:14px var(--mono);margin-top:-24px}.tabs a{color:var(--muted);padding-bottom:2px;border-bottom:1px solid transparent}.tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--ink)}.tabs .today-link{margin-left:auto;color:var(--accent);border:0}.cal-wrap{display:flex;flex-direction:column;gap:16px}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));column-gap:16px}.cal .dow{font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-bottom:8px;border-bottom:1px solid var(--ink);margin-bottom:-1px}.cal .blank{border-bottom:1px solid var(--hair)}.day{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:120px;padding:12px 0 16px;border-top:2px solid transparent;border-bottom:1px solid var(--hair)}.day:hover{color:inherit}.day:hover .t{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.day .top{display:flex;justify-content:space-between;align-items:baseline;font:14px var(--mono)}.day .n{font-weight:500}.day .marks{font-size:12px;color:var(--muted);letter-spacing:.1em}.day .t{font-size:14px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.day .s{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day.today{border-top-color:var(--accent)}.day.today .n{color:var(--accent)}.day.done .t{color:var(--muted)}.day.done .marks:before{content:"✓";color:var(--ink)}.legend{margin:8px 0 0;font:12px var(--mono);color:var(--muted)}.day-head{display:flex;flex-direction:column;gap:12px}.day-head .label{color:var(--accent)}.day-head h1{margin:0;font-size:clamp(30px,6vw,40px);line-height:1.15}.day-head p{margin:0;color:var(--muted)}.facts{display:flex;flex-wrap:wrap;gap:32px;margin-top:12px;font-family:var(--mono)}.facts span{display:flex;flex-direction:column}.facts small{font-size:12px;color:var(--muted)}.facts b{font-size:20px;font-weight:400}.conds{border-top:1px solid var(--ink)}.cond{display:grid;grid-template-columns:112px minmax(0,1fr);gap:4px 16px;padding:16px 0;border-bottom:1px solid var(--hair)}.cond .k{font:12px var(--mono);color:var(--muted);padding-top:4px}.cond .v{font-size:20px}.cond .en,.cond .note{font-size:14px;color:var(--muted)}.sheet{display:flex;flex-direction:column;gap:48px}.sheet>.mark-done{order:1;margin-top:-32px}.sheet>.part-review{order:2}.sheet>.gate{order:3;margin-top:-32px}.part{display:flex;flex-direction:column;gap:16px}.part-title{margin:0;font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.part-body{max-width:68ch}.part-body>:first-child{margin-top:0}.part-body>:last-child{margin-bottom:0}.part-body p{margin:0 0 12px}.part-body h2,.part-body h3{font-size:28px;line-height:1.2;margin:28px 0 4px}.part-body h3+p{color:var(--muted)}.part-body h4{font:12px var(--mono);color:var(--muted);margin:28px 0 8px;font-weight:400}.part-body blockquote{margin:12px 0;padding:0;color:var(--muted);font-size:14px}.part-body blockquote p{margin:0}.part-body ul{padding-left:18px;margin:0}.part-body a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.part-body img{max-width:100%;height:auto}.part-body .fine,.fine{font-size:14px;color:var(--muted)}.part-body .fine p,p.fine{margin:0 0 6px}.part-task .part-body>p:first-child{font-size:20px;line-height:1.5}.part-review{border-top:1px solid var(--ink);padding-top:16px}.part-theory .part-body{font-size:17px}.btn{min-height:44px;padding:0 20px;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:14px var(--mono);cursor:pointer}.btn:hover,.btn.done{background:var(--ink);color:var(--paper)}.textbtn{min-height:44px;padding:0;border:0;background:none;font:14px var(--mono);color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;cursor:pointer}.textbtn.muted{color:var(--muted)}.gate{display:none;flex-direction:column;gap:8px}.gate p{margin:0;color:var(--muted);max-width:68ch}.gate div{display:flex;flex-wrap:wrap;gap:24px}.js .gated:not(.unlocked) .part-review .part-body{display:none}.js .gated:not(.unlocked) .gate{display:flex}.pager{display:flex;justify-content:space-between;gap:16px;font:14px var(--mono);border-top:1px solid var(--hair);padding-top:16px}.pager a{color:var(--muted)}.pager a:hover{color:var(--ink)}.prose{max-width:70ch}.prose h2{font-size:24px;margin:40px 0 8px}.prose h2:first-child{margin-top:0}.prose a{text-decoration:underline;text-underline-offset:3px}.prose table{border-collapse:collapse;font-size:14px;width:100%}.prose td,.prose th{border-bottom:1px solid var(--hair);padding:8px 8px 8px 0;text-align:left;vertical-align:top}.prose th{font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:400;border-bottom-color:var(--ink)}.tablewrap{overflow-x:auto}@media(max-width:640px){.wrap{padding-top:32px;gap:40px}.row{grid-template-columns:minmax(0,1fr) auto}.row-month{grid-column:1 / -1}.cal{column-gap:6px}.day{min-height:56px;padding:8px 0}.day .t,.day .s{display:none}.day .top{flex-direction:column;gap:2px}.tabs{margin-top:-16px}.tabs .today-link{margin-left:0;flex-basis:100%}.progress{align-items:flex-start}.cond{grid-template-columns:1fr;gap:0}}
