:root{--bg:#0c1712;--bg2:#12211a;--panel:#172b22;--panel2:#1e3529;--line:#25402f;--line2:#2f5039;--ink:#eef5f0;--ink2:#a7bdb1;--ink3:#6e877a;--green:#22c482;--green2:#1b9a67;--lime:#c9f25a;--amber:#f2b640;--red:#f06a5a;--ok:#173b2a;--rej:#3e2320;--warn:#3d3116;--r:16px;--r2:10px;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}*{box-sizing:border-box}html{scroll-padding-top:env(safe-area-inset-top,0);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Manrope,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;min-height:100%}a{color:var(--green);text-decoration:none}h1,h2,h3{margin:0;line-height:1.1;letter-spacing:-.02em}h1{font-size:32px}h1,h2{font-weight:800}h2{font-size:22px}h3{font-size:17px;font-weight:700}p{margin:0}img{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--ink2)}.tiny{font-size:12.5px;color:var(--ink3)}.small{font-size:14px}.wrap{max-width:800px;margin:0 auto;padding:20px 16px 72px}.stack>*+*{margin-top:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px}.card.tight{padding:14px 16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green);color:#06140d;border:0;border-radius:var(--r2);padding:11px 18px;font-weight:800;cursor:pointer;transition:transform .08s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:default}.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line2)}.btn.sm{padding:7px 12px;font-size:14px}.btn.danger{background:var(--red);color:#fff}.btn.lime{background:var(--lime)}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--lime);outline-offset:2px}input,select,textarea{background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r2);padding:11px 13px;width:100%}textarea{min-height:90px;resize:vertical}label.f{display:block;font-weight:700;font-size:14px;margin-bottom:6px}.badge,label.f{color:var(--ink2)}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--line2)}.badge.on{background:var(--ok);border-color:var(--green2);color:var(--green)}.badge.draft{color:var(--amber);border-color:var(--amber)}.note{background:var(--bg2);border-left:3px solid var(--amber);padding:10px 12px;border-radius:0 var(--r2) var(--r2) 0}.lock,.note{font-size:14px;color:var(--ink2)}.lock{border:1px dashed var(--line2);padding:14px}.err,.lock{border-radius:var(--r2)}.err{background:var(--rej);color:var(--red);padding:10px 12px;font-size:14px}.top{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:10;background:rgba(12,23,18,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.top .in{max-width:800px;margin:0 auto;padding:12px 16px;gap:14px}.logo,.top .in{display:flex;align-items:center}.logo{font-weight:800;font-size:18px;letter-spacing:-.02em;gap:8px}.logo i{width:10px;height:10px;border-radius:3px;background:var(--lime);display:inline-block;transform:rotate(45deg)}.navlinks{display:flex;gap:2px;margin-left:auto;overflow-x:auto;scrollbar-width:none}.navlinks::-webkit-scrollbar{display:none}.navlinks a{color:var(--ink2);padding:7px 11px;border-radius:8px;font-weight:700;font-size:14px;white-space:nowrap}.navlinks a.on{color:var(--ink)}.navlinks a.on,.ptspill{background:var(--panel2)}.ptspill{border:1px solid var(--line2);border-radius:999px;padding:6px 12px;font-weight:800;font-size:14px;white-space:nowrap}.ptspill b{color:var(--lime)}.hero{padding:22px 18px}.bignum{font-size:72px;font-weight:800;line-height:.95;letter-spacing:-.04em}.bignum small{font-size:18px;font-weight:700;color:var(--ink2);letter-spacing:0;margin-left:8px}.scale{margin-top:22px;position:relative}.scale .bar{height:16px;border-radius:999px;background:var(--bg2);border:1px solid var(--line2);position:relative}.scale .fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,var(--green2),var(--green) 60%,var(--lime));transition:width .6s cubic-bezier(.2,.8,.2,1)}.scale .mark{position:absolute;top:-8px;width:3px;height:32px;background:var(--ink3);border-radius:2px;transform:translateX(-50%)}.scale .mark.hit{background:var(--lime)}.scale .mark i{position:absolute;top:34px;left:50%;transform:translateX(-50%);font-style:normal;font-size:12px;font-weight:800;color:var(--ink3);white-space:nowrap}.scale .mark.hit i{color:var(--lime)}.scale .legend{display:flex;justify-content:space-between;margin-top:40px;font-size:13px;color:var(--ink2);gap:12px}@media (prefers-reduced-motion:reduce){.scale .fill{transition:none}}.mod{display:flex;gap:16px}.mod .n{flex:0 0 48px;height:48px;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:20px;background:var(--lime);color:#0c1712}.mod.locked .n{background:var(--panel2);color:var(--ink3);font-size:16px}.mod .body{flex:1 1;min-width:0}.lesson{display:flex;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line);color:inherit}.lesson:first-of-type{border-top:0}.lesson .st{flex:0 0 28px;height:28px;border-radius:50%;border:2px solid var(--line2);display:grid;place-items:center;font-size:13px;font-weight:800;color:var(--ink3)}.lesson .st.done{background:var(--green);border-color:var(--green);color:#06140d}.lesson .st.part{border-color:var(--green);color:var(--green)}.lesson .t{flex:1 1;min-width:0}.lesson .t b{display:block}.lesson .pts{font-weight:800;color:var(--ink2);white-space:nowrap;font-size:14px}.task{border-top:1px solid var(--line);padding:16px 0}.task:first-child{border-top:0;padding-top:0}.task .head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.task .head b{font-size:15.5px}.task .q{font-size:13px;color:var(--ink2);white-space:nowrap;font-weight:700}.entries{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.entry{border:1px solid var(--line2);border-radius:var(--r2);padding:8px;width:128px;font-size:12px;background:var(--bg2)}.entry img{width:100%;height:84px;object-fit:cover;border-radius:6px;display:block}.entry .txt{height:84px;overflow:hidden;color:var(--ink2)}.entry .tag{margin-top:6px;font-weight:800}.tag.ok{color:var(--green)}.tag.rej{color:var(--red)}.tag.warn{color:var(--amber)}.entry.rej{opacity:.6}.upl{gap:8px;flex-wrap:wrap;align-items:center}.chk,.upl{margin-top:10px;display:flex}.chk{gap:10px;align-items:flex-start;font-size:15px}.chk input{width:20px;height:20px;margin-top:3px}.ach{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:8px;gap:8px}.ach div{border:1px solid var(--line);border-radius:var(--r2);padding:10px 12px;font-size:13.5px;font-weight:700;color:var(--ink3);background:var(--bg2)}.ach div.on{border-color:var(--green2);color:var(--ink);background:var(--ok)}.ach div:before{content:"○ ";color:var(--ink3)}.ach div.on:before{content:"✓ ";color:var(--green)}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;color:var(--ink3);font-weight:800}.tbl{overflow-x:auto}tr.click{cursor:pointer}tr.click:hover{background:var(--panel2)}.who{display:flex;align-items:center;gap:10px}.who .av,.who img{width:30px;height:30px;border-radius:50%;background:var(--panel2);display:grid;place-items:center;font-weight:800;font-size:12px}.back{display:inline-block;color:var(--green);font-weight:800;margin-bottom:12px}.land{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.land .box{max-width:520px;width:100%}.land h1{font-size:44px;line-height:1;letter-spacing:-.04em}.land h1 span{color:var(--lime)}.land .steps{margin-top:26px;border-top:1px solid var(--line)}.land .steps div{padding:12px 0;border-bottom:1px solid var(--line);display:flex;gap:14px;align-items:baseline}.land .steps b{color:var(--lime);font-size:13px;flex:0 0 28px}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--lime);color:#0c1712;padding:10px 16px;border-radius:10px;font-weight:800;z-index:20}@media (max-width:520px){.bignum{font-size:56px}.land h1{font-size:36px}h1{font-size:26px}}