/* Тефра — стили. Шрифты Geologica (интерфейс, заголовки) и Piazzolla (текст конспектов), OFL, лежат рядом. */
@font-face{font-family:"Geologica";font-weight:400;font-display:swap;src:url(fonts/geologica-cyrillic-400.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Geologica";font-weight:400;font-display:swap;src:url(fonts/geologica-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geologica";font-weight:600;font-display:swap;src:url(fonts/geologica-cyrillic-600.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Geologica";font-weight:600;font-display:swap;src:url(fonts/geologica-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geologica";font-weight:700;font-display:swap;src:url(fonts/geologica-cyrillic-700.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Geologica";font-weight:700;font-display:swap;src:url(fonts/geologica-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Piazzolla";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/piazzolla-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Piazzolla";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/piazzolla-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+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Piazzolla";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/piazzolla-cyrillic-400-italic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Piazzolla";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/piazzolla-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --ash:#EDEAE4; --ash2:#E2DED6; --card:#F7F5F1; --ink:#1E1D1B; --mute:#6A665E; --line:#CFC9BE;
  --basalt:#232527; --basalt2:#2E3134; --side-ink:#D9D5CD; --side-mute:#8F8B83;
  --lava:#C9411C; --lava2:#E25A2C; --sulfur:#DDB21C; --ok:#5E8C55;
  --sans:"Geologica",system-ui,sans-serif; --serif:"Piazzolla",Georgia,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ash);color:var(--ink);font:16px/1.55 var(--sans)}
a{color:var(--lava)}
a:hover{color:var(--ink)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-weight:700;line-height:1.2;letter-spacing:-.01em}
h1{font-size:2rem;margin:.2em 0 .4em}
h2{font-size:1.35rem;margin:1.8em 0 .6em}
h3{font-size:1.05rem;margin:1.2em 0 .4em}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:6px;z-index:9}

/* каркас: левая колонка-программа + содержимое */
.wrap{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:100vh}
.side{background:var(--basalt);color:var(--side-ink);position:sticky;top:0;height:100vh;overflow-y:auto;padding:22px 18px 30px;font-size:.92rem;scrollbar-width:thin;scrollbar-color:#555 transparent}
.side a{color:var(--side-ink);text-decoration:none}
.side a:hover{color:#fff}
.logo{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.logo svg{flex:none}
.logo b{font-size:1.45rem;letter-spacing:.02em;color:#fff}
.logo small{display:block;color:var(--side-mute);font-size:.78rem;line-height:1.3;font-weight:400}
.sumline{color:var(--side-mute);font-size:.8rem;margin:10px 0 4px}
.prog{height:6px;background:#3A3D40;border-radius:3px;overflow:hidden;margin:4px 0 2px}
.prog i{display:block;height:100%;width:0;background:var(--sulfur);transition:width .3s}
.progtxt{font-size:.78rem;color:var(--side-mute)}
.snav{list-style:none;margin:16px 0 0;padding:0}
.snav>li{border-top:1px solid #3A3D40}
.snav>li>a,.snav>li>details>summary{display:flex;gap:8px;align-items:baseline;padding:9px 0;cursor:pointer;list-style:none;font-weight:600}
.snav summary::-webkit-details-marker{display:none}
.snav .n{font-size:.75rem;color:var(--sulfur);min-width:1.4em;font-weight:700}
.snav summary .cnt{margin-left:auto;font-weight:400;font-size:.75rem;color:var(--side-mute);white-space:nowrap}
.snav ol{list-style:none;margin:0 0 10px;padding:0 0 0 1.9em}
.snav ol li{padding:3px 0;line-height:1.3;display:flex;gap:6px}
.snav ol li::before{content:"";flex:none;width:9px;height:9px;margin-top:5px;border:1.5px solid var(--side-mute);border-radius:50%}
.snav ol li.done::before{background:var(--sulfur);border-color:var(--sulfur)}
.snav ol li.cur a{color:#fff;font-weight:600}
.snav ol li .d{margin-left:auto;color:var(--side-mute);font-size:.75rem;white-space:nowrap;padding-left:6px}
.snav .plain{font-weight:400}
.side .foot{margin-top:22px;color:var(--side-mute);font-size:.78rem;line-height:1.4}

.main{min-width:0;padding:28px 44px 60px;max-width:980px}
.crumbs{font-size:.82rem;color:var(--mute);margin-bottom:6px}
.crumbs a{color:var(--mute)}
.lead{font-family:var(--serif);font-size:1.15rem;line-height:1.55;max-width:44em}
.prose{font-family:var(--serif);font-size:1.07rem;line-height:1.65;max-width:42em}
.prose p{margin:.7em 0}
.meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.85rem;color:var(--mute);margin:.2em 0 1em}
.meta b{color:var(--ink);font-weight:600}
.tag{display:inline-block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:3px;background:var(--ash2);color:var(--ink)}
.tag.lecture{background:var(--lava);color:#fff}.tag.film{background:var(--basalt2);color:#fff}.tag.record{background:var(--sulfur);color:var(--ink)}.tag.window{background:#7E8C8F;color:#fff}

/* плеер */
.stage{background:#0E0F10;border-radius:6px;overflow:hidden;margin:10px 0 0}
.stage video{display:block;width:100%;aspect-ratio:16/9;background:#000}
.pbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;background:#1A1B1D;color:#CFCAC0;padding:8px 12px;font-size:.82rem}
.pbar select,.pbar button{font:inherit;font-size:.8rem;background:#2B2D30;color:#EEE;border:1px solid #44474B;border-radius:4px;padding:4px 8px;cursor:pointer}
.pbar button:hover,.pbar select:hover{border-color:var(--sulfur)}
.pbar .grow{flex:1}
.pbar .lvl{color:var(--sulfur)}
.resume{display:none}
.mark.on{background:var(--sulfur);color:var(--ink);border-color:var(--sulfur)}
.noplay{padding:40px 20px;color:#ccc;text-align:center}

/* карточки и списки */
.mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;margin:12px 0}
.mod{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px 16px 12px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column}
.mod:hover{border-color:var(--lava)}
.mod .num{font-size:2.2rem;line-height:1;font-weight:700;color:var(--lava)}
.mod h3{margin:.3em 0 .3em}
.mod p{margin:0 0 .6em;font-size:.9rem;color:var(--mute);flex:1}
.mod .bar{height:4px;background:var(--ash2);border-radius:2px;overflow:hidden}
.mod .bar i{display:block;height:100%;width:0;background:var(--sulfur)}
.mod small{font-size:.78rem;color:var(--mute);margin-top:5px}
.lessons{list-style:none;padding:0;margin:10px 0;counter-reset:l}
.lessons li{display:grid;grid-template-columns:160px minmax(0,1fr);gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.lessons li:last-child{border-bottom:1px solid var(--line)}
.lessons .th{position:relative;display:block;border-radius:4px;overflow:hidden;background:#222;aspect-ratio:16/9}
.lessons .th img{width:100%;height:100%;object-fit:cover}
.lessons .th span{position:absolute;right:5px;bottom:5px;background:rgba(0,0,0,.75);color:#fff;font-size:.72rem;padding:1px 5px;border-radius:3px}
.lessons .th.done::after{content:"✓ просмотрено";position:absolute;left:5px;top:5px;background:var(--sulfur);color:var(--ink);font-size:.7rem;font-weight:600;padding:1px 6px;border-radius:3px}
.lessons h3{margin:.1em 0 .25em;font-size:1.02rem}
.lessons h3 a{color:var(--ink);text-decoration:none}
.lessons h3 a:hover{color:var(--lava)}
.lessons p{margin:0;font-size:.88rem;color:var(--mute)}
.lessons .k{font-size:.76rem;color:var(--mute);margin-bottom:2px}
table.t{border-collapse:collapse;width:100%;font-size:.88rem;margin:10px 0}
table.t th,table.t td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
table.t th{font-weight:600;background:var(--ash2)}
table.t td.r,table.t th.r{text-align:right;white-space:nowrap}
.tscroll{overflow-x:auto}
.qs{background:var(--card);border-left:4px solid var(--sulfur);padding:10px 18px;margin:14px 0;max-width:42em}
.qs ol{margin:.4em 0;padding-left:1.3em}
.qs li{margin:.35em 0;font-family:var(--serif)}
.terms{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.terms a{font-size:.82rem;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:3px 11px;text-decoration:none;color:var(--ink)}
.terms a:hover{border-color:var(--lava);color:var(--lava)}
dl.src{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 14px;font-size:.88rem;margin:8px 0;max-width:46em}
dl.src dt{color:var(--mute)}dl.src dd{margin:0;overflow-wrap:anywhere}
.pn{display:flex;justify-content:space-between;gap:14px;margin:30px 0 0;border-top:2px solid var(--ink);padding-top:12px}
.pn a{text-decoration:none;color:var(--ink);max-width:48%}
.pn a small{display:block;color:var(--mute);font-size:.78rem}
.pn a:hover b{color:var(--lava)}
.pn .nx{text-align:right;margin-left:auto}
.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start;margin:10px 0 6px}
.hero .stage{margin:0}
.hero h1{font-size:2.3rem}
.cta{display:inline-block;background:var(--lava);color:#fff;text-decoration:none;font-weight:600;padding:9px 16px;border-radius:4px;margin:6px 8px 0 0}
.cta:hover{background:var(--ink);color:#fff}
.cta.alt{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.facts{display:flex;flex-wrap:wrap;gap:8px 26px;margin:14px 0;font-size:.9rem;color:var(--mute)}
.facts b{display:block;font-size:1.5rem;color:var(--ink)}
.gl dt{font-weight:700;margin-top:1em;scroll-margin-top:16px}
.gl dt:target{color:var(--lava)}
.gl dd{margin:.2em 0 0;font-family:var(--serif);max-width:42em}
.gl dd small{font-family:var(--sans);color:var(--mute)}
.letters{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0}
.letters a{display:inline-block;min-width:28px;text-align:center;padding:3px 6px;background:var(--card);border:1px solid var(--line);border-radius:3px;text-decoration:none;color:var(--ink);font-weight:600}
.calc{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:16px 18px;margin:14px 0}
.calc label{display:block;font-size:.88rem;margin:.6em 0 .2em;font-weight:600}
.calc input[type=number],.calc input[type=range]{font:inherit;width:100%;max-width:340px}
.calc input[type=number]{padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:#fff}
input[type=range],input[type=checkbox]{accent-color:var(--lava)}
.calc output{display:block;font-size:1.05rem;margin-top:.6em}
.calc output b{color:var(--lava)}
form.f{max-width:560px}
form.f label{display:block;font-weight:600;font-size:.9rem;margin:14px 0 4px}
form.f input[type=text],form.f input[type=email],form.f select,form.f textarea{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#fff}
form.f textarea{min-height:150px}
form.f .chk{font-weight:400;display:flex;gap:8px;align-items:flex-start}
form.f button{margin-top:16px;font:inherit;font-weight:600;background:var(--lava);color:#fff;border:0;border-radius:4px;padding:10px 20px;cursor:pointer}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.note{font-size:.85rem;color:var(--mute);max-width:44em}
.mtop{display:none}
footer.ft{margin-top:50px;padding-top:14px;border-top:1px solid var(--line);font-size:.8rem;color:var(--mute);display:flex;flex-wrap:wrap;gap:6px 18px}
footer.ft a{color:var(--mute)}

@media (max-width:900px){
  .wrap{display:block}
  .mtop{display:flex;align-items:center;gap:10px;background:var(--basalt);color:#fff;padding:10px 16px;position:sticky;top:0;z-index:5}
  .mtop a{color:#fff;text-decoration:none;font-weight:700;font-size:1.15rem}
  .mtop button{margin-left:auto;font:inherit;font-size:.85rem;background:#3A3D40;color:#fff;border:0;border-radius:4px;padding:6px 10px}
  .side{position:fixed;inset:0 20% 0 0;height:auto;z-index:6;transform:translateX(-105%);transition:transform .2s;box-shadow:0 0 30px rgba(0,0,0,.5)}
  body.navopen .side{transform:none}
  .main{padding:16px 16px 40px}
  .hero{grid-template-columns:1fr}
  h1,.hero h1{font-size:1.6rem}
  .lessons li{grid-template-columns:110px minmax(0,1fr);gap:10px}
  dl.src{grid-template-columns:1fr}dl.src dt{margin-top:6px}
}
@media (max-width:520px){.side{inset:0 8% 0 0}.lessons li{grid-template-columns:1fr}.lessons .th{max-width:320px}}
