@font-face{font-family:"KBebas";src:url(/static/bebas.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:dark;--bg:#000;--fg:#fff;--y:#F7FB4B;--card:#161616;--card2:#242424;--line:#2b2b2b;--mute:#9a9a9a;--mute2:#c9c9c9;--red:#E35151;--green:#29BC26;--tg:#2AABEE;--ink:#111;
  --fd:"KBebas","Bebas Neue","Arial Narrow",Impact,sans-serif;--ft:"Inter Tight",Inter,"Helvetica Neue",Arial,sans-serif;--r:22px}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--fg);min-height:100%}
body{font-family:var(--ft);font-weight:500;line-height:1.45;-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,textarea,select{font:inherit}
:focus-visible{outline:2px solid var(--y);outline-offset:3px}
.h{font-family:var(--fd);font-weight:400;text-transform:uppercase;line-height:.98;letter-spacing:-.01em;text-wrap:balance}
.y{color:var(--y)}.num{font-variant-numeric:tabular-nums}.mute{color:var(--mute)}
.wrap{max-width:1040px;margin:0 auto;padding-inline:20px}
.kicker{font:600 12px/1 var(--ft);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
p{color:#dcdcdc;font-size:16px;max-width:700px}
b{color:#fff;font-weight:700}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* top */
.top{position:sticky;top:0;z-index:20;background:rgba(0,0,0,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.top .wrap{display:flex;align-items:center;gap:10px;height:62px}
.top .logo{display:flex;align-items:center;height:26px;margin-right:6px}.top .logo img{height:26px;width:auto;display:block}
.top nav{display:flex;gap:2px}.top nav a{padding:8px 12px;border-radius:999px;font-size:14px;color:var(--mute2);white-space:nowrap}
.top nav a.on{background:#1d1d1d;color:#fff}.top .sp{flex:1}
.ava{width:38px;height:38px;border-radius:50%;background:var(--y);color:#000;display:flex;align-items:center;justify-content:center;font:400 20px/1 var(--fd);border:2px solid #000;box-shadow:0 0 0 2px var(--y);overflow:hidden;flex:none}
.ava img{width:100%;height:100%;object-fit:cover}
.tabs{display:none;position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgba(0,0,0,.94);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabs a{flex:1;display:grid;justify-items:center;gap:3px;padding:10px 4px 9px;font-size:11px;color:var(--mute2)}.tabs a span{font-size:20px;line-height:1}.tabs a.on{color:var(--y)}
@media(max-width:640px){.top nav{display:none}.tabs{display:flex}body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 20px;border-radius:999px;font-weight:700;font-size:15px;transition:transform .12s,background .2s;white-space:nowrap}
.btn:active{transform:scale(.98)}.btn.y{background:var(--y);color:#000}.btn.y:hover{background:#fdff7a}.btn.w{background:#fff;color:#000}
.btn.o{border:2px solid #3a3a3a;color:#fff}.btn.o:hover{border-color:var(--y)}.btn.lg{height:56px;padding:0 28px;font-size:17px}.btn.sm{height:38px;padding:0 14px;font-size:13.5px}
.btn.full{width:100%}.btn[disabled]{opacity:.45;cursor:default}.btn.tg{background:#fff;color:#000}
/* login */
.login{min-height:calc(100vh - 20px);display:flex;align-items:center;justify-content:center;padding:40px 20px}
.login-card{width:100%;max-width:440px;background:var(--card);border-radius:30px;padding:36px 28px 28px;display:grid;gap:18px}
.login-card .logo img{height:30px;width:auto}.login-card h1{font-size:44px;margin-top:6px}.login-card p{font-size:15px;color:var(--mute2)}
.or{display:flex;align-items:center;gap:12px;color:var(--mute);font-size:13px}.or:before,.or:after{content:"";flex:1;border-top:1px solid var(--line)}
.field{display:grid;gap:6px;font-size:13px;color:var(--mute)}
.field input,.field textarea{height:48px;border-radius:14px;border:1.5px solid var(--line);background:#0d0d0d;color:#fff;padding:0 14px;font:500 16px var(--ft);width:100%}
.field textarea{height:auto;min-height:110px;padding:12px 14px;resize:vertical;line-height:1.45}
.field input:focus,.field textarea:focus{border-color:var(--y);outline:0}
form.stack{display:grid;gap:12px}.small{font-size:13px;color:var(--mute)}
.err{background:#2a1212;border:1px solid #5a2222;color:#ffb4b4;border-radius:14px;padding:10px 14px;font-size:14px}
.okmsg{background:#13240f;border:1px solid #2b5a22;color:#c6ffb8;border-radius:14px;padding:10px 14px;font-size:14px}
.tgw{display:flex;justify-content:center;min-height:40px}
/* home */
.hero{padding:34px 0 18px}.hero h1{font-size:clamp(46px,8.5vw,92px);margin-top:10px}
.stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.stat{display:flex;align-items:center;gap:14px;background:var(--card);border-radius:var(--r);padding:14px 18px 14px 14px;min-width:0}
.stat .lbl{font-size:12px;color:var(--mute);letter-spacing:.12em;text-transform:uppercase;font-weight:600}.stat .v{font:400 28px/1 var(--fd);margin-top:4px}
.ring .ring-t{font:400 16px var(--fd);fill:#fff}
.cont{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:var(--y);color:#000;border-radius:30px;padding:24px 26px;margin:16px 0 30px}
.cont .kicker{color:#4a4a00}.cont .t{font:400 clamp(26px,4.5vw,40px)/1 var(--fd);text-transform:uppercase;margin:8px 0 6px}.cont .m{font-size:15px;color:#333}.cont .btn{background:#000;color:#fff}
@media(max-width:560px){.cont{grid-template-columns:1fr}.cont .btn{width:100%}}
h2.sec{font-size:clamp(34px,6vw,54px);margin:14px 0 14px}
.courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px;margin-bottom:34px}
.cc{background:var(--card);border-radius:30px;padding:24px 22px 20px;display:grid;gap:10px;position:relative;overflow:hidden;transition:background .2s;align-content:start}
.cc:hover{background:#1c1c1c}.cc .em{font-size:58px;line-height:1;position:absolute;right:-4px;top:-8px;transform:rotate(8deg)}
.cc .tag{display:inline-block;font:600 11px/1 var(--ft);letter-spacing:.18em;text-transform:uppercase;color:var(--y);border:1.5px solid #3a3a3a;border-radius:999px;padding:7px 10px;width:max-content;max-width:100%}
.cc h3{font-size:36px;padding-right:56px}.cc p{font-size:14.5px;color:var(--mute2)}
.bar{height:8px;border-radius:99px;background:#2a2a2a;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:var(--y);border-radius:99px}
.cc .pr{display:flex;justify-content:space-between;font-size:13px;color:var(--mute);margin-top:2px}
.tcard{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:var(--card);border-radius:var(--r);padding:18px 20px;margin-bottom:30px}
.tcard .em{font-size:40px;line-height:1}.tcard b{font-size:17px;display:block}.tcard span{font-size:14px;color:var(--mute2)}
@media(max-width:560px){.tcard{grid-template-columns:auto 1fr}.tcard .btn{grid-column:1/-1;width:100%}}
/* course */
.crumb{display:flex;align-items:center;gap:10px;padding:18px 0 6px;font-size:14px;color:var(--mute);flex-wrap:wrap}.crumb a{color:var(--mute2)}.crumb a:hover{color:var(--y)}
.chead{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;padding:12px 0 24px;border-bottom:1px solid var(--line)}
.chead h1{font-size:clamp(42px,7.5vw,80px);margin:8px 0 10px}.chead .right{display:grid;gap:10px;justify-items:end}
.chead .pt{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--mute2)}
@media(max-width:640px){.chead{grid-template-columns:1fr}.chead .right{justify-items:start}}
.list{display:grid;gap:8px;padding:20px 0 50px}
.row{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;background:var(--card);border-radius:18px;padding:13px 16px;transition:background .15s;min-width:0}
.row:hover{background:#1f1f1f}.row .st{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:400 20px/1 var(--fd)}
.row.done .st{background:var(--y);color:#000}.row.cur .st{border:3px solid var(--y);color:var(--y)}.row.todo .st{border:2px solid #3a3a3a;color:var(--mute)}
.row .ti{min-width:0}.row .ti b{display:block;font-size:16px;line-height:1.25}.row.todo .ti b{color:#d8d8d8}.row .ti span{font-size:13px;color:var(--mute)}
.row .du{font-size:13px;color:var(--mute);white-space:nowrap;text-align:right}.row.cur{box-shadow:inset 0 0 0 1.5px var(--y)}
.pill{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 8px;background:#2a2a2a;color:var(--mute2);margin-left:6px;vertical-align:middle}
.pill.y{background:var(--y);color:#000}.pill.g{background:#1f3a1a;color:#9ef58f}
/* lesson */
.lhead{padding:8px 0 18px}.lhead h1{font-size:clamp(36px,6.5vw,70px);margin:8px 0 12px}
.meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:14px;color:var(--mute2)}.meta .ok{color:var(--y);font-weight:700}
.video{display:block;position:relative;width:100%;max-width:100%;aspect-ratio:16/9;background:#0b0b0b;border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video .cov{position:absolute;inset:0;padding:22px 24px;display:flex;flex-direction:column;justify-content:space-between}
.video .cov .big{font:400 clamp(26px,5vw,60px)/.95 var(--fd);text-transform:uppercase;max-width:72%;text-wrap:balance}.video .cov .big .y{display:block}
.video .cov .hint{font-size:13px;color:var(--mute2);max-width:70%}
.video .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:86px;height:86px;border-radius:50%;background:var(--y);display:flex;align-items:center;justify-content:center;transition:transform .15s}
.video .play:hover{transform:translate(-50%,-50%) scale(1.06)}.video .play svg{width:34px;height:34px;margin-left:5px}
.video .wm{position:absolute;right:18px;top:16px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#6a6a6a;font-weight:600}
.vnote{font-size:13px;color:var(--mute);margin-top:10px}
.locked{background:var(--card);border-radius:var(--r);padding:22px;margin:20px 0;display:grid;gap:8px}.locked .h{font-size:30px}
.konspekt{margin:26px -20px 0}.konspekt #kk{overflow:visible}.konspekt #kk .logo{display:none}.konspekt #kk .hero{padding-top:10px}
.ks{padding:26px 0 0}.ks section{padding:36px 0;border-top:1px solid var(--line)}.ks section:first-of-type{border-top:0;padding-top:16px}
.chap{display:flex;align-items:center;gap:14px;margin-bottom:16px}.chap .n{flex:none;width:48px;height:48px;border:3px solid var(--y);border-radius:50%;display:flex;align-items:center;justify-content:center;font:400 26px/1 var(--fd);color:var(--y)}
.chap .tag{font:600 12px/1 var(--ft);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.ks h2{font-size:clamp(32px,5.5vw,54px);margin-bottom:14px}.lead{font-size:18px;color:#e6e6e6;max-width:720px}.lead b{color:var(--y)}
.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.card{background:var(--card);border-radius:var(--r);padding:20px 20px 18px;min-width:0}.card.w{background:#fff;color:var(--ink)}.card.w p,.card.w b{color:var(--ink)}
.card.yb{background:var(--y);color:#000}.card.yb p,.card.yb b,.card.yb .h{color:#000}.card .h{font-size:28px;margin-bottom:8px}.card p{font-size:15px}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border-radius:16px;background:var(--y);color:#000;font:400 20px/1 var(--fd);margin-bottom:10px}
.road{display:grid}.road .st{display:flex;gap:14px;align-items:center;padding:9px 0;position:relative}
.road .st:before{content:"";position:absolute;left:19px;top:0;bottom:0;border-left:3px dashed var(--y);opacity:.55}.road .st:first-child:before{top:50%}.road .st:last-child:before{bottom:50%}
.road .n{position:relative;z-index:1;flex:none;width:40px;height:40px;border-radius:50%;background:var(--y);color:#000;display:flex;align-items:center;justify-content:center;font:400 24px/1 var(--fd)}
.road b{font-size:16px;display:block}.road span{font-size:14px;color:var(--mute2)}
.quote{border-left:4px solid var(--y);padding:4px 0 4px 16px;margin:18px 0;font-size:17px;color:#fff;max-width:720px}
.task{background:var(--y);color:#000;border-radius:30px;padding:26px 26px 24px}.task .kicker{color:#4a4a00}.task .h{font-size:clamp(28px,5vw,44px);margin:8px 0 10px;color:#000}.task p{color:#1a1a1a;font-size:16px}
.notes{margin-top:34px}.notes h3{font-size:30px;margin-bottom:10px}.notes .sv{font-size:12px;color:var(--mute);margin-top:6px}
.done-box{margin:30px 0 20px;background:var(--card);border-radius:30px;padding:26px;display:grid;gap:14px;justify-items:start}
.done-box.ok{background:#fff;color:#000}.done-box.ok p,.done-box.ok .kicker{color:#555}.done-box .h{font-size:clamp(28px,5vw,44px)}.done-box .row2{display:flex;flex-wrap:wrap;gap:10px}
.done-box .lnk{font-size:13px;color:var(--mute);text-decoration:underline;cursor:pointer}.done-box.ok .lnk{color:#666}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 0 60px}.pn a{background:var(--card);border-radius:18px;padding:14px 16px;display:grid;gap:3px;min-width:0}.pn a:hover{background:#1f1f1f}
.pn .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:600}.pn .t{font-size:14.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pn a.next{text-align:right}
@media(max-width:480px){.pn{grid-template-columns:1fr}.pn a.next{text-align:left}}
/* tracks */
.tracks{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin:14px 0 30px}
.tk{background:var(--card);border-radius:30px;padding:24px 22px 20px;display:grid;gap:10px;align-content:start;position:relative}
.tk .em{font-size:44px;line-height:1}.tk h3{font-size:34px}.tk .who{font-size:14.5px;color:var(--mute2)}.tk .idea{font-size:15px;color:#e8e8e8}
.tk .facts{display:flex;flex-wrap:wrap;gap:6px}.tk .facts span{font-size:12px;background:#262626;border-radius:999px;padding:5px 10px;color:var(--mute2)}
.tk.mine{box-shadow:inset 0 0 0 2px var(--y)}
.week{background:var(--card);border-radius:var(--r);padding:20px;margin-bottom:12px;display:grid;gap:12px}
.week.locked{opacity:.55}.week.cur{box-shadow:inset 0 0 0 2px var(--y)}
.week .wh{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.week .wn{flex:none;width:40px;height:40px;border-radius:50%;background:#2a2a2a;display:flex;align-items:center;justify-content:center;font:400 22px/1 var(--fd)}
.week.cur .wn,.week.reported .wn{background:var(--y);color:#000}.week .wt{font:400 26px/1 var(--fd);text-transform:uppercase}.week .wm{font-size:13px;color:var(--mute);margin-left:auto}
.week .ls{display:grid;gap:6px}.week .ls a{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;background:#0f0f0f;border-radius:14px;padding:10px 12px;font-size:14.5px}
.week .ls a .c{width:24px;height:24px;border-radius:50%;border:2px solid #3a3a3a;display:flex;align-items:center;justify-content:center;font-size:12px}.week .ls a.done .c{background:var(--y);border-color:var(--y);color:#000}
.week .ls a .d{font-size:12px;color:var(--mute)}.week .act{font-size:14.5px;color:#e4e4e4;background:#0f0f0f;border-radius:14px;padding:12px 14px}.week .act b{display:block;margin-bottom:3px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--y)}
.week .rep{background:#fff;color:#111;border-radius:14px;padding:12px 14px;font-size:14.5px}.week .rep b{display:block;color:#111;font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:3px}
.cp{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:10px 0 20px}.cp .card .big{font:400 44px/1 var(--fd);color:var(--y)}
/* modal quiz */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:40;display:flex;align-items:center;justify-content:center;padding:16px}
.qz{width:100%;max-width:520px;background:var(--card);border-radius:30px;padding:28px 24px;display:grid;gap:14px;max-height:92vh;overflow:auto}
.qz h3{font-size:30px}.qz .opts{display:grid;gap:8px}.qz .opts button{text-align:left;background:#0f0f0f;border-radius:14px;padding:13px 14px;font-size:15px;border:1.5px solid #2a2a2a}.qz .opts button:hover{border-color:var(--y)}
.qz .prog{font-size:12px;color:var(--mute)}.qz .x{justify-self:end;font-size:13px;color:var(--mute);text-decoration:underline}
/* profile / admin */
.kv{display:grid;gap:0}.kv div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:12px 0;font-size:15px;flex-wrap:wrap}.kv div span:first-child{color:var(--mute)}.kv .ok{color:var(--y);font-weight:700}
.sheet{background:var(--card);border-radius:30px;padding:24px;display:grid;gap:14px;margin-bottom:14px}
.tw{overflow-x:auto;border-radius:16px}table.adm{width:100%;border-collapse:collapse;font-size:13.5px;min-width:900px}
table.adm th{text-align:left;font:600 11px var(--ft);letter-spacing:.12em;text-transform:uppercase;color:var(--y);padding:10px 8px;border-bottom:1px solid var(--line)}
table.adm td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}table.adm input[type=text],table.adm input[type=number],table.adm textarea{width:100%;background:#0d0d0d;border:1px solid #2a2a2a;color:#fff;border-radius:8px;padding:6px 8px;font-size:13px}
table.adm input[type=file]{font-size:12px;color:var(--mute);max-width:160px}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.statrow .card .big{font:400 40px/1 var(--fd);color:var(--y)}.statrow .card .kicker{margin-bottom:6px}
.ev{font-size:13px;color:var(--mute2);display:grid;gap:4px}
#toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--y);color:#000;border-radius:999px;padding:12px 20px;font-weight:700;font-size:15px;opacity:0;transition:.25s;z-index:60;pointer-events:none;white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis}
#toast.on{opacity:1;transform:translate(-50%,0)}
@media(min-width:641px){#toast{bottom:24px}}
.foot{padding:20px 0 40px;font-size:12px;color:#5f5f5f;text-align:center}
