@font-face{font-family:IBM Plex Sans Arabic;src:url(../media/IBMPlexSansArabic-Regular.38gliyhuoom0d.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(../media/IBMPlexSansArabic-Medium.0dxirb4e_jk-f.ttf)format("truetype");font-weight:500;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(../media/IBMPlexSansArabic-SemiBold.1kyqi0xep2t79.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:IBM Plex Sans Arabic;src:url(../media/IBMPlexSansArabic-Bold.44fyxjsdyy6ve.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Space Grotesk;src:url(../media/SpaceGrotesk.402qztxboi6p9.ttf)format("truetype");font-weight:300 700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(../media/JetBrainsMono.1v4j9e07zljy-.ttf)format("truetype");font-weight:100 800;font-display:swap}:root{--char:#111114;--iron:#26262b;--ash:#b4b4bd;--fog:#e7e7ea;--white:#fcfcfd;--spark-400:#9581ec;--spark-500:#6e56cf;--spark-600:#5e48be;--spark-700:#4c39a0;--success:#3fcf8e;--error:#e5484d;--warn:#e2a03f;--bg:var(--char);--bg-raised:var(--iron);--bg-code:#0b0b0e;--text:var(--white);--text-muted:var(--ash);--border:var(--iron);--accent:var(--spark-500);--accent-text:var(--spark-400);--on-accent:var(--white);--wire-off:#3a3a42;--tk-key:#9581ec;--tk-str:#7fdcae;--tk-num:#f0b86e;--tk-com:#6f6f7b;--tk-fn:#8cc8ff;--tk-tag:#ff9b8a;--font:"Space Grotesk", "IBM Plex Sans Arabic", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--ease:cubic-bezier(.22, .8, .24, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.7;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}a{color:var(--accent-text)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}.num{font-variant-numeric:tabular-nums}.accent{color:var(--accent-text)}.nosel{-webkit-user-select:none;user-select:none}.deck{position:fixed;inset:0 0 72px}.slide{opacity:0;visibility:hidden;transition:opacity .55s var(--ease), transform .7s var(--ease), visibility 0s linear .7s;justify-content:center;align-items:center;padding:48px 16px 24px;display:flex;position:absolute;inset:0;overflow-y:auto;transform:translate(-56px)}.slide.past{transform:translate(56px)}.slide.active{opacity:1;visibility:visible;transition:opacity .55s var(--ease) 80ms, transform .7s var(--ease) 80ms, visibility 0s;transform:none}.inner{width:100%;max-width:1080px;margin:auto}.inner.narrow{max-width:780px}.slide .r{opacity:0;transition:opacity .5s var(--ease), transform .6s var(--ease);transform:translateY(14px)}.slide.active .r{opacity:1;transform:none}.slide.active .r:first-child{transition-delay:.15s}.slide.active .r:nth-child(2){transition-delay:.24s}.slide.active .r:nth-child(3){transition-delay:.33s}.slide.active .r:nth-child(4){transition-delay:.42s}.slide.active .r:nth-child(5){transition-delay:.51s}.slide.active .r:nth-child(n+6){transition-delay:.6s}.eyebrow{letter-spacing:.02em;color:var(--accent-text);align-items:center;gap:10px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.eyebrow:before{content:"";background:var(--accent);border-radius:2px;width:22px;height:2px}h1{letter-spacing:-.02em;font-size:clamp(40px,7.5vw,84px);font-weight:700;line-height:1.15}h2{letter-spacing:-.01em;margin-bottom:16px;font-size:clamp(28px,4.2vw,44px);font-weight:700;line-height:1.25}h3{font-size:18px;font-weight:600;line-height:1.4}p.lead{color:var(--text-muted);max-width:60ch;font-size:clamp(17px,1.8vw,20px)}p.lead b.w,.w{color:var(--text);font-weight:600}p+p{margin-top:12px}.hint{color:var(--text-muted);margin-top:16px;font-size:13px}.card{background:var(--bg-raised);border-radius:20px;padding:24px}.rule{border:1px solid var(--border);border-inline-start:3px solid var(--accent);color:var(--text-muted);border-radius:14px;margin-top:20px;padding:16px 18px;font-size:15px}.rule b{color:var(--text);font-weight:600}.rule.warn{border-inline-start-color:var(--warn)}code{font-family:var(--mono);font-variant-ligatures:none;background:var(--bg-raised);color:var(--fog);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;border-radius:6px;max-width:100%;padding:1px 7px;font-size:.88em;line-height:1.5;display:inline-block}.card code,.rule code,.sum li code,.opt code{background:var(--bg)}.cover{text-align:center}.cover .brand{color:var(--text-muted);align-items:center;gap:10px;margin-bottom:28px;font-size:18px;text-decoration:none;display:inline-flex}.cover .brand img{border-radius:10px;display:block}.cover .brand:hover{color:var(--text)}.cover .meta{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.chip{background:var(--bg-raised);color:var(--text-muted);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500;text-decoration:none}a.chip:hover{color:var(--text)}.typer{background:var(--bg-raised);max-width:100%;font-family:var(--mono);text-align:left;white-space:pre;font-variant-ligatures:none;direction:ltr;border-radius:16px;align-items:center;min-height:58px;margin:0 auto 32px;padding:14px 22px;font-size:clamp(14px,2.2vw,20px);display:inline-flex;overflow:hidden}.typer:after{content:"";background:var(--accent);width:2px;height:1.2em;margin-left:2px;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.start{background:var(--accent);color:var(--on-accent);border-radius:999px;align-items:center;gap:10px;margin-top:40px;padding:14px 28px;font-weight:600;transition:background .2s,transform .2s;display:inline-flex}.start:hover{background:var(--spark-600)}.start:active{background:var(--spark-700);transform:scale(.97)}.goals{gap:12px;margin-top:24px;display:grid}.goal{background:var(--bg-raised);text-align:start;width:100%;transition:transform .3s var(--ease);border-radius:16px;align-items:flex-start;gap:16px;padding:18px 20px;display:flex}.goal:hover{transform:translate(-4px)}.goal .n{background:var(--bg);width:34px;height:34px;color:var(--accent-text);border-radius:10px;flex:none;place-items:center;font-size:15px;font-weight:600;transition:background .3s,color .3s;display:grid}.goal.done .n{background:var(--accent);color:var(--on-accent)}.goal .t{padding-top:3px}.split{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:40px;display:grid}.grid2,.grid3{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr);gap:24px}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.grid2,.grid3{grid-template-columns:minmax(0,1fr)}}.pick{text-align:start;background:var(--bg-raised);border:2px solid #0000;border-radius:16px;width:100%;padding:16px 18px;transition:border-color .25s,background .25s,transform .2s;display:block}.pick:hover{border-color:var(--wire-off)}.pick.on{border-color:var(--accent);background:#2b2840}.pick h3{margin-bottom:4px}.pick p{color:var(--text-muted);font-size:15px}.tabs{background:var(--bg-raised);border-radius:14px;flex-wrap:wrap;gap:6px;width:fit-content;max-width:100%;padding:5px;display:flex}.tabs button{color:var(--text-muted);border-radius:10px;padding:7px 14px;font-size:14px;font-weight:600;transition:background .2s,color .2s}.tabs button:hover{color:var(--text)}.tabs button[aria-selected=true]{background:var(--accent);color:var(--on-accent)}.steps{counter-reset:st;gap:10px;margin-top:18px;list-style:none;display:grid}.steps li{padding:12px 16px;background:var(--bg-raised);color:var(--text-muted);border-radius:14px;padding-inline-start:52px;transition:background .3s,color .3s;position:relative}.steps li:before{counter-increment:st;content:counter(st);inset-inline-start:14px;background:var(--bg);width:26px;height:26px;color:var(--accent-text);border-radius:8px;place-items:center;font-size:14px;font-weight:600;display:grid;position:absolute;top:12px}.steps li.on{color:var(--text);background:#2b2840}.steps li.on:before{background:var(--accent);color:var(--on-accent)}.btn{background:var(--bg-raised);border-radius:999px;align-items:center;gap:8px;padding:9px 18px;font-size:15px;font-weight:600;transition:background .2s,opacity .2s;display:inline-flex}.card .btn:not(.primary){background:var(--bg)}.btn:hover:not([disabled]){background:var(--wire-off)}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover:not([disabled]){background:var(--spark-600)}.btn[disabled]{opacity:.4;cursor:default}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}pre.code,.ed{font-family:var(--mono);text-align:left;tab-size:2;font-variant-ligatures:none;direction:ltr;font-size:15px;line-height:1.65}pre.code{background:var(--bg-code);border:1px solid var(--border);white-space:pre;border-radius:14px;padding:16px 18px;overflow-x:auto}.tk-key{color:var(--tk-key)}.tk-str{color:var(--tk-str);unicode-bidi:isolate}.tk-num{color:var(--tk-num)}.tk-com{color:var(--tk-com);font-style:italic}.tk-fn{color:var(--tk-fn)}.tk-tag{color:var(--tk-tag)}.play{background:var(--bg-code);border:1px solid var(--border);text-align:start;border-radius:16px;overflow:hidden}.play-head{border-bottom:1px solid var(--border);background:#16161a;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 14px;display:flex}.play-head .file{font-family:var(--mono);color:var(--text-muted);direction:ltr;font-size:13px}.play-head .row{gap:6px}.play-head .btn{padding:5px 12px;font-size:13px}.ed{max-height:340px;position:relative;overflow:auto}.ed-in{width:max-content;min-width:100%;position:relative}.ed pre,.ed textarea{font:inherit;line-height:inherit;white-space:pre;tab-size:2;border:0;margin:0;padding:14px 16px}.ed pre{pointer-events:none;min-height:3.6em}.ed textarea{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--white);background:0 0;outline:none;position:absolute;inset:0;overflow:hidden}.ed textarea::selection{background:#9581ec59}.out{border-top:1px solid var(--border);min-height:44px;max-height:180px;font-family:var(--mono);text-align:left;color:var(--fog);direction:ltr;padding:10px 16px;font-size:14px;overflow:auto}.out:empty:before{content:"▶ اضغط «تشغيل» لترى النتيجة";font-family:var(--font);color:var(--text-muted);text-align:right;direction:rtl;font-size:13px;display:block}.out .ln{white-space:pre-wrap;word-break:break-word;animation:rise .35s var(--ease);border-bottom:1px solid #1c1c21;padding:2px 0}.out .ln.err{color:#ff8a8d}.out .ln.info{color:var(--text-muted);font-family:var(--font);text-align:right;direction:rtl;font-size:13px}.view{border:0;border-top:1px solid var(--border);background:#fff;width:100%;height:200px;display:block}.view.tall{height:330px}.q{margin:8px 0 24px;font-size:clamp(20px,2.4vw,26px);font-weight:600}.opts{gap:12px;display:grid}.opt{text-align:start;background:var(--bg-raised);border:2px solid #0000;border-radius:16px;align-items:center;gap:16px;padding:16px 20px;transition:border-color .25s,background .25s,transform .2s;display:flex}.opt:hover:not([disabled]){border-color:var(--accent)}.opt:active:not([disabled]){transform:scale(.99)}.opt .k{background:var(--bg);border-radius:10px;flex:none;place-items:center;width:32px;height:32px;font-size:15px;font-weight:600;display:grid}.opt[disabled]{cursor:default}.opt.right{border-color:var(--success)}.opt.right .k{background:var(--success);color:var(--char)}.opt.wrong{border-color:var(--error);animation:.4s shake}.opt.wrong .k{background:var(--error);color:var(--white)}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.explain{background:var(--bg-raised);color:var(--text-muted);border-radius:16px;margin-top:20px;padding:18px 20px;font-size:15px;display:none}.explain.show{animation:rise .5s var(--ease);display:block}.explain b{color:var(--success)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.drill{text-align:center}.drill .score{justify-content:center;gap:10px;margin-bottom:16px;display:flex}.drill .q{margin-bottom:14px}.drill pre.code{max-width:560px;margin:0 auto 16px}.drill .opts{text-align:start}.drill .feedback{min-height:1.7em;color:var(--text-muted);margin-top:14px;font-size:15px}.drill .next-q{visibility:hidden;margin-top:8px}.drill .next-q.show{visibility:visible}.sum{gap:12px;margin-top:8px;display:grid}.sum li{background:var(--bg-raised);border-radius:14px;padding:14px 18px;padding-inline-start:40px;font-size:16px;list-style:none;position:relative}.sum li:before{content:"";inset-inline-start:18px;background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:24px}.tags{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.tag{border:1px solid var(--wire-off);color:var(--text);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .25s,border-color .25s,color .25s}.tag:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.bar{align-items:center;gap:16px;height:72px;padding:0 16px;display:flex;position:fixed;inset:auto 0 0}.bar .nav{background:var(--bg-raised);border-radius:12px;flex:none;place-items:center;width:44px;height:44px;transition:background .2s,opacity .2s;display:grid}.bar .nav:hover:not([disabled]){background:var(--accent)}.bar .nav[disabled]{opacity:.3;cursor:default}.bar .nav svg{width:20px;height:20px}.bar .home{width:44px;height:44px;color:var(--text-muted);border-radius:12px;flex:none;place-items:center;display:grid}.bar .home:hover{color:var(--text);background:var(--bg-raised)}.dots{flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.dot{box-sizing:content-box;background-clip:content-box;background-color:var(--wire-off);width:6px;height:6px;transition:width .45s var(--ease), background-color .3s;border:9px solid #0000;border-radius:999px;margin:0 -6px;padding:0}.dot.seen{background-color:var(--spark-700)}.dot.cur{background-color:var(--accent);width:28px}.count{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;direction:ltr;min-width:44px;font-size:13px}@media (max-width:520px){.count,.bar .home{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}}.dots,.split>*{min-width:0}@media (max-width:520px){.bar{gap:10px;padding:0 12px}.dots{gap:3px}.dot,.dot.cur{border-width:10px 0;border-radius:0;flex:1 1 0;width:auto;min-width:0;max-width:22px;height:4px;margin:0}.dot.cur{flex-grow:2.5;max-width:40px}pre.code,.ed{font-size:13px}}@media (max-height:820px) and (min-width:861px){.deck{bottom:60px}.bar{height:60px}.slide{padding-top:20px;padding-bottom:12px}.eyebrow{margin-bottom:8px}h2{margin-bottom:10px;font-size:clamp(26px,5vh,40px)}p.lead{font-size:min(clamp(17px,1.8vw,20px),2.6vh)}.rule{margin-top:14px;padding:12px 16px}.steps{gap:6px;margin-top:12px}.steps li{padding-top:8px;padding-bottom:8px}.steps li:before{top:8px}.ed{max-height:34vh}}@media (max-height:500px){.deck{bottom:56px}.bar{height:56px}.bar .nav{width:40px;height:40px}.slide{padding-top:16px;padding-bottom:12px}}.tbl-wrap{border:1px solid var(--border);border-radius:14px;overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:15px}.tbl th,.tbl td{text-align:start;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 14px}.tbl th{background:var(--bg-raised);color:var(--text);font-weight:600}.tbl td{color:var(--text-muted)}.tbl tr:last-child td{border-bottom:0}.tbl code{white-space:nowrap}.test .test-head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.test .test-bar{background:var(--bg-raised);border-radius:999px;flex:1;height:6px;overflow:hidden}.test .test-bar span{background:var(--accent);height:100%;transition:width .5s var(--ease);display:block}.test .q{margin:14px 0 16px}.test pre.code{margin-bottom:16px}.test .feedback{min-height:1.7em;color:var(--text-muted);margin-top:14px;font-size:15px}.test .next-q{visibility:hidden;margin-top:10px}.test .next-q.show{visibility:visible}.test-result{text-align:center;background:var(--bg-raised);border-radius:20px;justify-items:center;gap:12px;padding:28px 20px;display:grid}.test-score{color:var(--text-muted);font-size:22px}.test-score b{color:var(--accent-text);font-size:64px;line-height:1}.test-review{gap:10px;margin-top:18px;list-style:none;display:grid}.test-review li{border:1px solid var(--border);border-inline-start:3px solid var(--error);border-radius:14px;gap:4px;padding:14px 16px;font-size:15px;display:grid}.test-review .why{color:var(--text-muted)}
