@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-700-normal-D8_1Nw6V.woff2)format("woff2"),url(/assets/caveat-latin-700-normal-cPyBTTZN.woff)format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-ext-700-normal-DFbRgDry.woff2)format("woff2"),url(/assets/caveat-latin-ext-700-normal-DjJQd59I.woff)format("woff")}:root{--paper:#f5f6fa;--surface:#fff;--ink:#1b2440;--ink-2:#4a5375;--ink-3:#7d86a5;--line:#dde1ec;--line-2:#c9cfe0;--pen:#233bb0;--pen-hover:#1a2d8f;--pen-soft:#e9edfb;--marker:#ffe14d;--row-current:#ffe14d6b;--red:#c8233a;--red-soft:#fdecee;--green:#17824f;--green-soft:#e7f5ee;--bench:#121a33;--bench-2:#19223f;--bench-line:#27315a;--bench-ink:#e8ecff;--bench-ink-2:#8d97c2;--sans:"Schibsted Grotesk Variable", system-ui, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, Menlo, monospace;--hand:"Caveat", "Segoe Print", cursive;--top:56px;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0e1324;--surface:#151b30;--ink:#e6e9f5;--ink-2:#aab1cd;--ink-3:#7c84a3;--line:#262e4a;--line-2:#333c5e;--pen:#93a5ff;--pen-hover:#b3c0ff;--pen-soft:#1d2647;--row-current:#93a5ff24;--red:#ff7385;--red-soft:#3a1823;--green:#5fd39b;--green-soft:#143327;--bench:#0a0f1f;--bench-2:#10172c;--bench-line:#222b4c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#0e1324;--surface:#151b30;--ink:#e6e9f5;--ink-2:#aab1cd;--ink-3:#7c84a3;--line:#262e4a;--line-2:#333c5e;--pen:#93a5ff;--pen-hover:#b3c0ff;--pen-soft:#1d2647;--row-current:#93a5ff24;--red:#ff7385;--red-soft:#3a1823;--green:#5fd39b;--green-soft:#143327;--bench:#0a0f1f;--bench-2:#10172c;--bench-line:#222b4c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}a{color:var(--pen)}button{font:inherit;color:inherit}:focus-visible{outline:2.5px solid var(--pen);outline-offset:2px;border-radius:6px}.skip{background:var(--surface);z-index:50;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.topbar{height:var(--top);border-bottom:1px solid var(--line);background:var(--surface);z-index:20;justify-content:space-between;align-items:center;padding:0 20px;display:flex;position:sticky;top:0}.logo{letter-spacing:-.02em;color:var(--ink);align-items:center;gap:10px;font-size:19px;font-weight:750;text-decoration:none;display:inline-flex}.logo-mark{width:30px;height:30px;color:var(--marker);font-family:var(--mono);background:#233bb0;border-radius:8px;place-items:center;font-size:13px;font-weight:700;display:grid}.logo-dot{color:var(--pen)}.py-status{color:var(--ink-3);align-items:center;gap:8px;font-size:13px;display:inline-flex}.py-status i{background:var(--green);border-radius:50%;width:8px;height:8px}.py-status.loading i{background:var(--marker);animation:1s ease-in-out infinite alternate pulse}.py-status.failed i{background:var(--red)}@keyframes pulse{to{opacity:.3}}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:38px;padding:0 16px;font-size:15px;font-weight:600;text-decoration:none;transition:background-color .12s,border-color .12s,transform 80ms;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--pen);color:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.primary{color:#0e1324}}:root[data-theme=dark] .btn.primary{color:#0e1324}.btn.primary:hover:not(:disabled){background:var(--pen-hover)}.btn.big{height:48px;padding:0 24px;font-size:17px}.btn.ghost{border-color:var(--line-2);color:var(--ink);background:0 0}.btn.ghost:hover{border-color:var(--ink-3);background:var(--surface)}.btn.tiny{background:var(--bench-line);height:28px;color:var(--bench-ink);padding:0 10px;font-size:13px}.home{max-width:1080px;margin:0 auto;padding:56px 24px 96px}.hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:48px;margin-bottom:72px;display:grid}.hero h1{text-wrap:balance;letter-spacing:-.035em;margin:0 0 20px;font-size:clamp(36px,5vw,56px);font-weight:800;line-height:1.05}.hero-sub{color:var(--ink-2);max-width:34em;margin:0 0 28px;font-size:18px}.hero-cta{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.hero-next{color:var(--ink-2);font-size:15px}.hero-code{border:1px solid var(--bench-line);background:var(--bench);border-radius:14px;margin:0;overflow:hidden;transform:rotate(1.2deg);box-shadow:0 30px 60px -30px #121a338c}.hero-code pre{font-family:var(--mono);color:var(--bench-ink);margin:0;padding:22px 24px;font-size:14px;line-height:1.7;overflow-x:auto}.hero-code figcaption{border-top:1px solid var(--bench-line);font-family:var(--mono);color:var(--bench-ink-2);background:var(--bench-2);padding:14px 24px 18px;font-size:13px;line-height:1.7}.hero-code .prompt{color:var(--bench-ink)}.hero-code .typed{color:var(--marker)}.section-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px;padding-bottom:10px;display:flex}.section-head h2{letter-spacing:-.02em;margin:0;font-size:26px}.section-note{color:var(--ink-2);margin:12px 0 20px}.overall{color:var(--ink-2);font-variant-numeric:tabular-nums;align-items:center;gap:12px;font-size:14px;display:inline-flex}.overall-bar{background:var(--line);border-radius:3px;width:120px;height:6px;overflow:hidden}.overall-bar span{background:var(--pen);height:100%;display:block}.units{margin:0 0 64px;padding:0;list-style:none}.unit-row{border-bottom:1px solid var(--line);color:var(--ink);grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 8px;text-decoration:none;display:grid}.unit-row:hover{background:var(--surface)}.unit-row:hover .unit-title{color:var(--pen)}.unit-week{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:14px}.unit-main{flex-direction:column;gap:2px;display:flex}.unit-title{letter-spacing:-.01em;font-size:19px;font-weight:650}.unit-blurb{color:var(--ink-2);font-size:15px}.unit-cases{color:var(--pen);font-size:13px;font-weight:600}.unit-progress{align-items:center;gap:12px;display:flex}.unit-ticks{gap:3px;display:flex}.unit-ticks i{background:var(--line);border-radius:2px;width:6px;height:18px}.unit-ticks i.on{background:var(--pen)}.unit-frac{text-align:right;width:44px;color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:14px}.unit-row.next{background:var(--surface);box-shadow:inset 4px 0 var(--marker)}.unit-row.next .unit-frac{color:var(--pen);font-weight:700}.unit-row.complete .unit-frac{font-family:var(--hand);color:var(--green);font-size:22px;transform:rotate(-4deg)}.exam-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.exam-card{border:1.5px solid var(--ink);border-radius:var(--radius);background:var(--surface);color:var(--ink);flex-direction:column;gap:4px;padding:20px 22px;text-decoration:none;display:flex}.exam-card:hover{border-color:var(--pen)}.exam-name{font-size:20px;font-weight:700}.exam-meta,.exam-score{color:var(--ink-2);font-size:14px}.exam-foot{border-top:1px dashed var(--line-2);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;display:flex}.exam-go{color:var(--pen);font-size:15px;font-weight:650}.exam-card:hover .exam-go{text-underline-offset:3px;text-decoration:underline}.stamp.small{padding:0 10px 3px;font-size:24px;animation:none}.learn{height:calc(100dvh - var(--top));grid-template-columns:252px minmax(0,1fr) minmax(440px,1.1fr);display:grid}.learn.exam-mode{grid-template-columns:minmax(0,1fr) minmax(440px,1.15fr)}.learn-rail{border-right:1px solid var(--line);background:var(--surface);overflow-y:auto}.lesson{padding:24px clamp(20px,3vw,44px) 64px;overflow-y:auto}.lesson>*{max-width:680px}.rail{padding:14px 10px 40px}.rail-units,.rail-steps{margin:0;padding:0;list-style:none}.rail-unit{color:var(--ink);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.rail-unit:hover{background:var(--paper)}.rail-unit-title{flex-direction:column;line-height:1.3;display:flex}.rail-week{color:var(--ink-3);font-size:11.5px;font-weight:500}.open>.rail-unit{color:var(--pen)}.rail-count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.rail-count.full{color:var(--green)}.rail-steps{border-left:1.5px solid var(--line);margin:2px 0 10px 14px}.rail-step{color:var(--ink-2);border-radius:0 6px 6px 0;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:9px;margin-left:-8.5px;padding:6px 8px 6px 0;font-size:14px;line-height:1.35;text-decoration:none;display:grid}a.rail-step:hover .rail-step-title{color:var(--ink)}.rail-step .dot{border:1.5px solid var(--line-2);background:var(--surface);width:16px;height:16px;color:var(--ink-3);border-radius:50%;place-items:center;display:grid}.rail-step.done .dot{background:var(--pen);border-color:var(--pen);color:var(--surface)}.rail-step.current{background:linear-gradient(90deg, transparent 8px, var(--row-current) 8px)}.rail-step.current .dot{border:2px solid var(--pen);box-shadow:0 0 0 3px var(--surface)}.rail-step.current:not(.done) .dot:after{content:"";background:var(--pen);border-radius:50%;width:6px;height:6px}.rail-step.current .rail-step-title{color:var(--ink);font-weight:650}.rail-step.locked{color:var(--ink-3);cursor:not-allowed}.rail-step.locked .dot{border-style:dashed}.rail-kind{color:var(--ink-3);font-size:11px}.lesson-top{align-items:center;gap:12px;margin-bottom:10px;display:flex}.lesson-crumb{color:var(--ink-3);font-size:14px}.lesson-crumb .sep{color:var(--line-2);margin:0 4px}.rail-toggle{height:32px;font-size:14px;display:none}.unit-meter{gap:4px;margin-bottom:28px;display:flex}.unit-meter>*{background:var(--line);border-radius:2px;flex:1;height:4px;position:relative}.unit-meter a:before{content:"";position:absolute;inset:-8px 0}.unit-meter a:hover{background:var(--line-2)}.unit-meter .done,.unit-meter a.done:hover{background:var(--pen)}.unit-meter .current{background:var(--marker);box-shadow:0 0 0 1px var(--ink-3) inset}.unit-meter .current.done{background:linear-gradient(var(--pen) 0 0) bottom / 100% 2px no-repeat, var(--marker)}.unit-done{border:1.5px dashed var(--green);border-radius:var(--radius);background:var(--green-soft);align-items:center;gap:18px;margin-top:28px;padding:16px 18px;display:flex}.unit-done p{color:var(--ink-2);margin:0}.step-title{text-wrap:balance;letter-spacing:-.025em;margin:0 0 18px;font-size:clamp(26px,2.6vw,34px);font-weight:780;line-height:1.2}.hl{background:linear-gradient(transparent 60%, var(--marker) 60%, var(--marker) 94%, transparent 94%);-webkit-box-decoration-break:clone;box-decoration-break:clone;margin:0 -4px;padding:0 4px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .hl{background:linear-gradient(#0000 62%,#ffe14d59 62% 94%,#0000 94%)}}:root[data-theme=dark] .hl{background:linear-gradient(#0000 62%,#ffe14d59 62% 94%,#0000 94%)}.exam-flag{color:var(--ink-2);border-left:3px solid var(--red);margin:-6px 0 16px;padding:2px 0 2px 10px;font-size:14px;display:inline-block}.lesson-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:36px;padding-top:20px;display:flex}.foot-hint{color:var(--ink-3);text-align:right;font-size:14px}.locked p{color:var(--ink-2)}.md{font-size:16.5px;line-height:1.68}.md p{margin:0 0 14px}.md ul,.md ol{margin:0 0 14px;padding-left:22px}.md li{margin-bottom:4px}.md strong{font-weight:700}.md :not(pre)>code{white-space:pre-wrap;font-family:var(--mono);background:var(--pen-soft);color:var(--pen);border-radius:4px;padding:1px 5px;font-size:.86em}.md table{border-collapse:collapse;width:100%;margin:4px 0 18px;font-size:15px}.md th{text-align:left;border-bottom:1.5px solid var(--ink);padding:6px 12px 6px 0;font-weight:650}.md td{border-bottom:1px solid var(--line);vertical-align:top;padding:7px 12px 7px 0}.md blockquote{border-left:4px solid var(--marker);background:var(--surface);color:var(--ink-2);border-radius:0 8px 8px 0;margin:0 0 16px;padding:10px 14px;font-size:15px}.md blockquote p:last-child{margin:0}.md pre.plain{background:var(--surface);border:1px dashed var(--line-2);font-family:var(--mono);border-radius:8px;margin:0 0 16px;padding:12px 16px;font-size:14px;line-height:1.6;overflow-x:auto}.snip{margin:0 0 18px;position:relative}.snip pre{border:1px solid var(--bench-line);background:var(--bench);color:var(--bench-ink);font-family:var(--mono);border-radius:10px;margin:0;padding:14px 18px;font-size:14px;line-height:1.65;overflow-x:auto}.snip-open{border:1px solid var(--bench-line);background:var(--bench-2);height:26px;color:var(--bench-ink-2);cursor:pointer;opacity:0;border-radius:6px;padding:0 10px;font-size:12px;font-weight:600;transition:opacity .12s;position:absolute;top:8px;right:8px}.snip:hover .snip-open,.snip-open:focus-visible{opacity:1}.snip-open:hover{color:var(--marker);border-color:var(--marker)}@media (hover:none){.snip-open{opacity:1}}.tok-keyword{color:#ff9db5;font-weight:600}.tok-string,.tok-string2{color:#ffe14d}.tok-comment{color:#7d88b3;font-style:italic}.tok-number,.tok-bool,.tok-atom{color:#7ee0c3}.tok-definition{color:#fff}.tok-fn{color:#9cc0ff}.tok-propertyName{color:#c8d4ff}.tok-operator{color:#c9d1f2}.options{flex-direction:column;gap:10px;margin:8px 0 18px;display:flex}.option{text-align:left;border-radius:var(--radius);border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;align-items:center;gap:14px;padding:12px 14px;transition:border-color .12s,background-color .12s;display:flex}.option:hover:not(:disabled){border-color:var(--pen)}.option:disabled{opacity:.45;cursor:default}.option-key{border:1.5px solid var(--line-2);width:28px;height:28px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.option-text{font-family:var(--mono);white-space:pre-wrap;font-size:15px}.option.right{border-color:var(--green);background:var(--green-soft)}.option.right .option-key{background:var(--green);border-color:var(--green);color:#fff}.option.wrong{border-color:var(--red);background:var(--red-soft);text-decoration:line-through;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red)}.option.picked{border-color:var(--pen);box-shadow:0 0 0 1px var(--pen) inset;background:var(--pen-soft)}.option.picked .option-key{background:var(--pen);border-color:var(--pen);color:#fff}.verdict{align-items:center;gap:16px;padding:6px 0;display:flex}.verdict p{color:var(--ink-2);margin:0;font-size:15px}.stamp{font-family:var(--hand);border:2.5px solid;border-radius:10px 14px 9px 12px;flex:none;padding:4px 12px 6px;font-size:28px;font-weight:700;line-height:1;animation:.28s cubic-bezier(.2,1.6,.4,1) stamp;display:inline-block;transform:rotate(-5deg)}.stamp.ok{color:var(--green)}.stamp.bad{color:var(--red)}.stamp.big{padding:6px 20px 10px;font-size:56px}@keyframes stamp{0%{opacity:0;transform:rotate(-12deg)scale(1.6)}}.help{margin-top:8px}.help-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.help-note{color:var(--ink-3);font-size:13px}.hint{border-left:3px solid var(--marker);background:var(--surface);border-radius:0 8px 8px 0;margin-bottom:10px;padding:10px 14px 2px}.hint-n{color:var(--ink-2);margin-bottom:4px;font-size:13px;font-weight:700;display:block}.hint .md{font-size:15px}.solution{margin-top:14px}.bench{background:var(--bench);min-height:0;color:var(--bench-ink);border-left:1px solid var(--bench-line);flex-direction:column;display:flex}.bench-bar{border-bottom:1px solid var(--bench-line);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px 10px 18px;display:flex}.bench-file{font-family:var(--mono);color:var(--bench-ink-2);font-size:13px}.bench-actions{gap:8px;display:flex}.bench .btn{height:34px;padding:0 14px;font-size:14px}.btn.ghost-dark{color:var(--bench-ink-2);border-color:var(--bench-line);background:0 0}.btn.ghost-dark:hover:not(:disabled){color:var(--bench-ink);border-color:var(--bench-ink-2)}.btn.run{background:var(--bench-line);color:var(--bench-ink)}.btn.run:hover:not(:disabled){background:#34407a}.btn.stop{color:#1b0b10;background:#ff5a6e}.btn.check{background:var(--marker);color:#1b2440}.btn.check:hover:not(:disabled){background:#ffea80}.bench-body{flex-direction:column;flex:1;min-height:0;display:flex}.editor-wrap{flex-grow:0;flex-shrink:0;min-height:80px;overflow:hidden}.editor{height:100%;overflow:hidden}.bench-split{z-index:2;cursor:row-resize;touch-action:none;flex:none;height:9px;margin:-4px 0;position:relative}.bench-split:after{content:"";background:var(--bench-line);border-radius:2px;width:36px;height:3px;margin-left:-18px;transition:background-color .12s;position:absolute;top:3px;left:50%}.bench-split:hover:after,.bench-split:focus-visible:after,.dragging .bench-split:after{background:var(--marker)}.dragging{cursor:row-resize;-webkit-user-select:none;user-select:none}.kbd{font-family:var(--sans);opacity:.75;background:#0000002e;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:600}@media (hover:none),(width<=860px){.kbd{display:none}}.editor .cm-editor{height:100%}.bench-bottom{border-top:1px solid var(--bench-line);background:var(--bench-2);flex-direction:column;flex:1 1 0;min-height:90px;display:flex}.tabs{border-bottom:1px solid var(--bench-line);align-items:center;gap:2px;padding:0 10px;display:flex}.tabs button{color:var(--bench-ink-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:10px 10px 9px;font-size:13px;font-weight:600;display:inline-flex}.tabs button.on{color:var(--bench-ink);border-bottom-color:var(--marker)}.tab-badge{font-variant-numeric:tabular-nums;border-radius:10px;padding:1px 6px;font-size:11px}.tab-badge.ok{color:#d8ffe9;background:#1e6b48}.tab-badge.bad{color:#ffe1e6;background:#7a2232}.tabs-status{color:var(--bench-ink-2);margin-left:auto;font-size:12px}.console{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;flex:1;padding:12px 18px 20px;font-size:14px;line-height:1.6;overflow-y:auto}.console-empty{color:var(--bench-ink-2);font-family:var(--sans);white-space:normal;margin:0}.c-out{color:var(--bench-ink)}.c-in{color:var(--marker)}.c-info.quiet{color:#5d6898;margin-top:10px;font-size:12.5px}.c-info{font-family:var(--sans);color:var(--bench-ink-2);white-space:normal;margin-top:6px;font-size:14px}.c-input{vertical-align:baseline;align-items:center;gap:8px;display:inline-flex}.c-input input{border:none;border-bottom:2px solid var(--marker);width:min(260px,50vw);color:var(--marker);font:inherit;background:0 0;outline:none;padding:0 2px}.c-err{white-space:normal;background:#ff5a6e1a;border:1px solid #ff5a6e59;border-radius:8px;margin-top:8px;padding:10px 14px}.c-err-head{color:#ff8a99;font-size:13.5px}.c-err-src{color:var(--bench-ink);white-space:pre-wrap;margin-top:6px;font-size:13.5px;display:block}.c-err-why{font-family:var(--sans);color:var(--bench-ink);margin:8px 0 0;font-size:14.5px;line-height:1.5}.console.tests{font-family:var(--sans);white-space:normal}.console .verdict p{color:var(--bench-ink)}.console .stamp.ok{color:#5fd39b}.console .stamp.bad{color:#ff7385}.test-list{margin:12px 0 0;padding:0;list-style:none}.test-list li{border-top:1px solid var(--bench-line);padding:8px 0}.test-head{width:100%;color:var(--bench-ink);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:2px 0;font-size:14px;font-weight:600;display:flex}.test-head:disabled{cursor:default}.test-list .bad:not(.open) .test-head:hover{color:#fff}.test-list .bad .test-head:after{content:"";border-right:1.5px solid var(--bench-ink-2);border-bottom:1.5px solid var(--bench-ink-2);width:7px;height:7px;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}.test-list .bad.open .test-head:after{transform:rotate(225deg)}.test-why{color:#ff9aa8;font-size:12px;font-weight:500}.diff-line{display:block}.diff-line.bad{background:#ff738529;margin:0 -10px;padding:0 10px}.diff-hint{color:var(--marker);margin:2px 0 0 88px;font-size:13.5px}.diff-hint.muted{color:var(--bench-ink-2)}.test-list .mark{width:18px;font-weight:800}.test-list .ok .mark{color:#5fd39b}.test-list .bad .mark{color:#ff7385}.test-tag{color:var(--bench-ink-2);border:1px solid var(--bench-line);border-radius:10px;padding:0 7px;font-size:11px;font-weight:600}.test-body{flex-direction:column;gap:6px;margin:8px 0 4px 28px;display:flex}.row{grid-template-columns:78px minmax(0,1fr);align-items:start;gap:10px;display:grid}.row-label{color:var(--bench-ink-2);padding-top:3px;font-size:12.5px}.row-val{background:var(--bench);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--bench-ink);border-radius:6px;margin:0;padding:4px 10px;font-size:13.5px;line-height:1.55}.row-val.bad{overflow:hidden;box-shadow:inset 3px 0 #ff7385}.exam-intro,.exam-result{max-width:760px;margin:0 auto;padding:40px 24px 96px}.back{margin-bottom:20px;font-size:14px;text-decoration:none;display:inline-block}.back:before{content:"‹ "}.exam-facts{gap:40px;margin:0 0 24px;display:flex}.exam-facts div{flex-direction:column-reverse;display:flex}.exam-facts dt{color:var(--ink-3);font-size:14px}.exam-facts dd{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0;font-size:32px;font-weight:750}.exam-history{margin-top:40px}.exam-history h2{font-size:18px}.exam-history ol{color:var(--ink-2);padding-left:20px}.exam-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.timer{font-family:var(--mono);font-variant-numeric:tabular-nums;border:1.5px solid var(--line-2);border-radius:8px;padding:2px 12px;font-size:22px;font-weight:700}.timer.low{color:var(--red);border-color:var(--red)}.qnav{flex-wrap:wrap;gap:6px;margin-bottom:26px;display:flex}.qnav button{border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;border-radius:8px;width:36px;height:36px;font-weight:650}.qnav button.answered{background:var(--pen-soft);border-color:var(--pen);color:var(--pen)}.qnav button.current{outline:2.5px solid var(--ink);outline-offset:1px}.points{color:var(--ink-3);margin:-10px 0 16px;font-size:14px}.result-head{justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.result-head p{color:var(--ink-2);margin:0}.result-score{align-items:center;gap:18px;display:flex}.result-num{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:800}.result-num small{color:var(--ink-3);font-size:20px;font-weight:600}.result-list{border-top:2px solid var(--ink);margin:0;padding:0;list-style:none}.result-list>li{border-bottom:1px solid var(--line)}.result-row{text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:14px 4px;display:grid}.result-row:hover .result-q{color:var(--pen)}.result-list .mark{font-weight:800}.result-list .ok .mark{color:var(--green)}.result-list .bad .mark{color:var(--red)}.result-list .part .mark{color:#b7791f}.result-q{font-weight:600}.result-pts{font-variant-numeric:tabular-nums;color:var(--ink-2)}.result-detail{padding:4px 4px 20px 40px}.result-detail .explain{color:var(--ink-2)}.compare{grid-template-columns:1fr 1fr;gap:16px;display:grid}.compare h3{color:var(--ink-2);margin:0 0 6px;font-size:14px}.empty-page{max-width:560px;margin:80px auto;padding:0 24px}@media (width<=1180px){.learn{grid-template-columns:minmax(0,1fr) minmax(400px,1fr)}.learn-rail{top:var(--top);z-index:15;visibility:hidden;width:300px;transition:transform .2s,visibility .2s;position:fixed;bottom:0;left:0;transform:translate(-100%)}.learn.rail-visible .learn-rail{visibility:visible;transform:none;box-shadow:0 0 40px #0003}.rail-toggle{display:inline-flex}}@media (width<=860px){.hero{grid-template-columns:1fr;gap:32px}.hero-code{transform:none}.learn,.learn.exam-mode{height:auto;display:block}.lesson{padding:20px 16px 32px;overflow:visible}.bench{border-left:none;height:78dvh}.unit-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px}.unit-week{grid-column:1/-1}.unit-ticks{display:none}.compare{grid-template-columns:1fr}.result-head{flex-direction:column;align-items:flex-start}.home{padding:32px 16px 72px}.topbar{padding:0 16px}.py-status{font-size:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}code,pre,.cm-editor,.console,.option-text,.timer{font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}.confirm{border:1.5px solid var(--ink);border-radius:var(--radius);background:var(--surface);margin-top:16px;padding:14px 16px}.confirm p{margin:0 0 12px}.confirm div{gap:10px;display:flex}.top-right{align-items:center;gap:16px;display:flex}.theme-btn{border:1px solid var(--line-2);height:32px;color:var(--ink-2);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.theme-btn:hover{color:var(--ink);border-color:var(--ink-3)}@media (width<=860px){.theme-btn{gap:0;font-size:0}}.pane-switch,.phone-only{display:none}@media (width<=860px){.learn:not(.exam-mode) .phone-only{display:inline-flex}:is(.learn:not(.exam-mode) .phone-only~*,.learn:not(.exam-mode) .foot-hint:has(+.phone-only)){display:none}.pane-switch{top:var(--top);z-index:12;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:8px 16px;display:flex;position:sticky}.pane-switch button{height:34px;color:var(--ink-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:0 16px;font-size:15px;font-weight:650}.pane-switch button.on{background:var(--pen-soft);color:var(--pen)}.pane-next{height:34px;margin-left:auto;font-size:14px}.learn.pane-code .lesson,.learn.pane-lesson .bench{display:none}.learn.pane-code .bench{height:calc(100dvh - var(--top) - 51px)}.learn.exam-mode .bench{display:flex}}.sheet{background:var(--surface);border:1px solid var(--line);box-shadow:0 1px 0 var(--line), 0 24px 48px -32px #1b244059;border-radius:14px;padding:32px 36px 28px}.sheet-head{border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;padding-bottom:18px;display:flex}.sheet-head .step-title{margin:0}.sheet-head .exam-facts{gap:28px;margin:0}.sheet-head .exam-facts dd{font-size:26px}.sheet-questions{counter-reset:q;margin:18px 0 24px;padding:0;list-style:none}.sheet-questions li{counter-increment:q;border-bottom:1px dashed var(--line-2);grid-template-columns:30px minmax(0,1fr) auto 56px;align-items:baseline;gap:12px;padding:9px 0;display:grid}.sheet-questions li:before{content:counter(q) ".";color:var(--ink-3);font-variant-numeric:tabular-nums}.sq-title{font-weight:600}.sq-kind{color:var(--ink-3);font-size:13px}.sq-pts{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-2)}.sheet-foot{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.exam-history ol{padding:0;list-style:none}.exam-history li{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;justify-content:space-between;max-width:360px;padding:6px 0;display:flex}@media (width<=860px){.sheet{padding:22px 18px}.sheet-questions li{grid-template-columns:24px minmax(0,1fr) 44px}.sq-kind{display:none}}.lang-switch{border:1px solid var(--line-2);border-radius:8px;padding:2px;display:inline-flex}.lang-switch button{letter-spacing:.02em;height:26px;color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0 8px;font-size:12.5px;font-weight:700}.lang-switch button.on{background:var(--pen-soft);color:var(--pen)}.welcome-backdrop{z-index:40;background:color-mix(in srgb, var(--paper) 70%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.welcome{border:1px solid var(--line);background:var(--surface);border-radius:16px;flex-direction:column;gap:10px;width:min(420px,100%);padding:28px 28px 22px;display:flex;box-shadow:0 30px 60px -30px #1b244073}.welcome h1{letter-spacing:-.02em;margin:6px 0 0;font-size:28px}.welcome p{color:var(--ink-2);margin:0}.welcome label{margin-top:6px;font-size:14px;font-weight:650}.welcome input{border:1.5px solid var(--line-2);background:var(--paper);height:46px;color:var(--ink);font:inherit;border-radius:10px;padding:0 14px;font-size:17px}.welcome input:focus{border-color:var(--pen);box-shadow:0 0 0 3px var(--pen-soft);outline:none}.welcome .btn{margin-top:6px}.welcome-note{font-size:13px;color:var(--ink-3)!important}.welcome-error{font-size:14px;color:var(--red)!important}.logo-mark.big{width:44px;height:44px;color:var(--marker);font-size:18px;font-family:var(--mono);background:#233bb0;border-radius:12px;place-items:center;font-weight:700;display:grid}
