/*! normalize.css 2012-02-07T12:37 UTC - https://github.com/necolas/normalize.css */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:hover,a:active{outline:0}h1{font-size:2em;margin:0.67em 0}h2{font-size:1.5em;margin:0.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:0.83em;margin:1.67em 0}h6{font-size:0.75em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}mark{background:#ff0;color:#000}p,pre{margin:1em 0}pre,code,kbd,samp{font-family:monospace, serif;_font-family:'courier new', monospace;font-size:1em}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:75%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@font-face{font-family:'OpenSansLight';src:url("../fonts/OpenSans-Light-webfont.eot");src:url("../fonts/OpenSans-Light-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Light-webfont.woff") format("woff"),url("../fonts/OpenSans-Light-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Light-webfont.svg#OpenSansLight") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'OpenSansLightItalic';src:url("../fonts/OpenSans-LightItalic-webfont.eot");src:url("../fonts/OpenSans-LightItalic-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-LightItalic-webfont.woff") format("woff"),url("../fonts/OpenSans-LightItalic-webfont.ttf") format("truetype"),url("../fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'OpenSansRegular';src:url("../fonts/OpenSans-Regular-webfont.eot");src:url("../fonts/OpenSans-Regular-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Regular-webfont.woff") format("woff"),url("../fonts/OpenSans-Regular-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Regular-webfont.svg#OpenSansRegular") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansItalic';src:url("../fonts/OpenSans-Italic-webfont.eot");src:url("../fonts/OpenSans-Italic-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Italic-webfont.woff") format("woff"),url("../fonts/OpenSans-Italic-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Italic-webfont.svg#OpenSansItalic") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansSemibold';src:url("../fonts/OpenSans-Semibold-webfont.eot");src:url("../fonts/OpenSans-Semibold-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Semibold-webfont.woff") format("woff"),url("../fonts/OpenSans-Semibold-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansSemiboldItalic';src:url("../fonts/OpenSans-SemiboldItalic-webfont.eot");src:url("../fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-SemiboldItalic-webfont.woff") format("woff"),url("../fonts/OpenSans-SemiboldItalic-webfont.ttf") format("truetype"),url("../fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansBold';src:url("../fonts/OpenSans-Bold-webfont.eot");src:url("../fonts/OpenSans-Bold-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-Bold-webfont.woff") format("woff"),url("../fonts/OpenSans-Bold-webfont.ttf") format("truetype"),url("../fonts/OpenSans-Bold-webfont.svg#OpenSansBold") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}@font-face{font-family:'OpenSansBoldItalic';src:url("../fonts/OpenSans-BoldItalic-webfont.eot");src:url("../fonts/OpenSans-BoldItalic-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/OpenSans-BoldItalic-webfont.woff") format("woff"),url("../fonts/OpenSans-BoldItalic-webfont.ttf") format("truetype"),url("../fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic") format("svg");font-weight:normal;font-style:normal;-webkit-font-smoothing:antialiased}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight,.highlight .w{color:#d0d0d0}.highlight .err{color:#151515;background-color:#ac4142}.highlight .c,.highlight .cd,.highlight .cm,.highlight .c1,.highlight .cs{color:#888}.highlight .cp{color:#f4bf75}.highlight .nt{color:#f4bf75}.highlight .o,.highlight .ow{color:#d0d0d0}.highlight .p,.highlight .pi{color:#d0d0d0}.highlight .gi{color:#90a959}.highlight .gd{color:#ac4142}.highlight .gh{color:#6a9fb5;font-weight:bold}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kv{color:#aa759f}.highlight .kc{color:#d28445}.highlight .kt{color:#d28445}.highlight .kd{color:#d28445}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .sh,.highlight .sx,.highlight .s1{color:#90a959}.highlight .sr{color:#75b5aa}.highlight .si{color:#8f5536}.highlight .se{color:#8f5536}.highlight .nn{color:#f4bf75}.highlight .nc{color:#f4bf75}.highlight .no{color:#f4bf75}.highlight .na{color:#6a9fb5}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .il,.highlight .mo,.highlight .mb,.highlight .mx{color:#90a959}.highlight .ss{color:#90a959}body{padding:0px 0 20px 0px;margin:0px;font:14px/1.5 "OpenSansRegular", "Helvetica Neue", Helvetica, Arial, sans-serif;color:#f0e7d5;font-weight:normal;background:#252525;background-attachment:fixed !important;background:linear-gradient(#2a2a29, #1c1c1c)}h1,h2,h3,h4,h5,h6{color:#e8e8e8;margin:0 0 10px;font-family:'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal}p,ul,ol,table,pre,dl{margin:0 0 20px}h1,h2,h3{line-height:1.1}h1{font-size:28px}h2{font-size:24px}h4,h5,h6{color:#e8e8e8}h3{font-size:18px;line-height:24px;font-family:'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal;color:#b6b6b6}a{color:#ffcc00;font-weight:400;text-decoration:none}a:hover{color:#ffeb9b}a small{font-size:11px;color:#666;margin-top:-0.6em;display:block}ul{list-style-image:url("../images/bullet.png")}strong{font-family:'OpenSansBold', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal}.wrapper{max-width:650px;margin:0 auto;position:relative;padding:0 20px}section img{max-width:100%}blockquote{border-left:3px solid #ffcc00;margin:0;padding:0 0 0 20px;font-style:italic}code{font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, monospace;color:#efefef;font-size:13px;margin:0 4px;padding:4px 6px;border-radius:2px}pre{padding:8px 15px;background:#191919;border-radius:2px;border:1px solid #121212;box-shadow:inset 0 1px 3px rgba(0,0,0,0.3);overflow:auto;overflow-y:hidden}pre code{color:#efefef;text-shadow:0px 1px 0px #000;margin:0;padding:0}table{width:100%;border-collapse:collapse}th{text-align:left;padding:5px 10px;border-bottom:1px solid #434343;color:#b6b6b6;font-family:'OpenSansSemibold', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal}td{text-align:left;padding:5px 10px;border-bottom:1px solid #434343}hr{border:0;outline:none;height:3px;background:transparent url("../images/hr.gif") center center repeat-x;margin:0 0 20px}dt{color:#F0E7D5;font-family:'OpenSansSemibold', "Helvetica Neue", Helvetica, Arial, sans-serif !important;font-weight:normal}#header{z-index:100;left:0;top:0px;height:60px;width:100%;position:fixed;background:url(../images/nav-bg.gif) #353535;border-bottom:4px solid #434343;box-shadow:0px 1px 3px rgba(0,0,0,0.25)}#header nav{max-width:650px;margin:0 auto;padding:0 10px;background:blue;margin:6px auto}#header nav ul{list-style-type:none;margin:0;padding:0}#header nav ul li{font-family:'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;list-style:none;display:inline;color:white;line-height:50px;text-shadow:0px 1px 0px rgba(0,0,0,0.2);font-size:14px}#header nav ul li a{color:white;border:1px solid #5d910b;background:linear-gradient(#93bd20, #659e10);border-radius:2px;box-shadow:inset 0px 1px 0px rgba(255,255,255,0.3),0px 3px 7px rgba(0,0,0,0.7);background-color:#93bd20;padding:10px 12px;margin-top:6px;line-height:14px;font-size:14px;display:inline-block;text-align:center}#header nav ul li a:hover{background:linear-gradient(#749619, #527f0e);background-color:#659e10;border:1px solid #527f0e;box-shadow:inset 0px 1px 1px rgba(0,0,0,0.2),0px 1px 0px transparent}#header nav ul li.fork{float:left;margin-left:0px}#header nav ul li.downloads{float:right;margin-left:6px}#header nav ul li.title{float:right;margin-right:10px;font-size:11px}section{max-width:650px;padding:30px 0px 50px 0px;margin:20px 0;margin-top:70px}section #title{border:0;outline:none;margin:0 0 50px 0;padding:0 0 5px 0}section #title h1{font-family:'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;font-size:40px;text-align:center;line-height:36px}section #title p{color:#d7cfbe;font-family:'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;font-size:18px;text-align:center}section #title .credits{font-size:11px;font-family:'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:normal;color:#696969;margin-top:-10px}section #title .credits.left{float:left}section #title .credits.right{float:right}@media print, screen and (max-width: 720px){#title .credits{display:block;width:100%;line-height:30px;text-align:center}#title .credits .left{float:none;display:block}#title .credits .right{float:none;display:block}}@media print, screen and (max-width: 480px){#header{margin-top:-20px}section{margin-top:40px}nav{display:none}}:root{--sidebar-width: 250px;--mobile-breakpoint: 768px;--sidebar-bg: #1e1e1e;--sidebar-border: #292929;--nav-link-hover-bg: rgba(255, 255, 255, 0.1);--nav-link-gradient: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);--card-bg: var(--sidebar-bg);--card-hover-bg: var(--nav-link-hover-bg);--content-bg: #171718;--text-primary: rgba(242, 242, 242, 0.904);--text-secondary: rgba(255, 255, 255, 0.646);--transition-fast: 0.2s ease;--transition-medium: 0.3s ease;--shadow-light: rgba(0, 0, 0, 0.1);--shadow-medium: rgba(0, 0, 0, 0.3);--border-radius: 8px;--spacing-xs: 0.5rem;--spacing-sm: 1rem;--spacing-md: 1.3rem;--spacing-lg: 1.3rem}*,*::before,*::after{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--content-bg);color:var(--text-primary);line-height:1.6}.skip-link{position:absolute;top:-40px;left:6px;background:var(--sidebar-bg);color:var(--text-primary);padding:var(--spacing-xs) var(--spacing-sm);text-decoration:none;border-radius:var(--border-radius);z-index:9999;transition:top var(--transition-fast)}.skip-link:focus{top:6px}.layout-container{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:1000;transform:translateX(0);transition:transform var(--transition-medium);box-shadow:2px 0 10px var(--shadow-light)}.sidebar-content{padding:var(--spacing-md);height:100%;display:flex;flex-direction:column}.sidebar-header{margin-bottom:var(--spacing-lg)}.github-profile{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md) var(--spacing-sm);border-bottom:1px solid var(--sidebar-border);text-align:center}.github-avatar-link{display:inline-block;text-decoration:none;transition:transform var(--transition-medium),box-shadow var(--transition-medium);border-radius:50%;padding:2px}.github-avatar-link:hover,.github-avatar-link:focus{transform:scale(1.05);box-shadow:0 0 0 3px rgba(255,255,255,0.2);outline:none}.github-avatar{width:80px;height:80px;border-radius:50%;border:3px solid var(--sidebar-border);transition:border-color var(--transition-medium);display:block;object-fit:cover}.github-avatar:hover{border-color:var(--text-secondary)}.github-username{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin-top:var(--spacing-sm);margin-bottom:0}.sidebar-nav{flex:1}.sidebar-nav ul{list-style:none;margin:0;padding:0}.sidebar-nav li{margin-bottom:var(--spacing-xs)}.nav-link{display:flex;align-items:center;padding:var(--spacing-sm) var(--spacing-md);color:var(--text-secondary);text-decoration:none;border-radius:var(--border-radius);transition:all var(--transition-medium);font-size:0.9rem;font-weight:500;position:relative;overflow:hidden}.nav-link::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--nav-link-gradient);transition:left var(--transition-medium)}.nav-link:hover::before{left:100%}.nav-link i{margin-right:var(--spacing-sm);width:20px;text-align:center;color:inherit;transition:transform var(--transition-medium)}.nav-link:hover,.nav-link:focus{background:var(--nav-link-hover-bg);color:var(--text-primary);transform:translateX(4px);outline:none;box-shadow:0 2px 8px var(--shadow-medium)}.nav-link:hover i,.nav-link:focus i{transform:scale(1.1)}.nav-link.active,.nav-link[aria-current="page"]{background:rgba(255,255,255,0.15);color:var(--text-primary);box-shadow:0 2px 8px var(--shadow-medium)}.nav-link.active::after,.nav-link[aria-current="page"]::after{content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--text-primary);border-radius:2px}.sidebar-footer{margin-top:30px;padding-top:20px;border-top:1px solid #292929}.main-content{margin-left:var(--sidebar-width);flex:1;padding:var(--spacing-lg);min-height:100vh;width:calc(100% - var(--sidebar-width));background:var(--content-bg);display:flex;flex-direction:column}.content-wrapper{width:100%;max-width:900px;margin:0 auto;flex:1}.page-header{margin-bottom:var(--spacing-lg);text-align:center;padding-bottom:var(--spacing-md);border-bottom:2px solid var(--sidebar-border)}.page-title{font-size:2.5rem;font-weight:700;margin:0 0 var(--spacing-sm) 0;color:var(--text-primary);line-height:1.2}.page-description{font-size:1.1rem;color:var(--text-secondary);margin:0;max-width:600px;margin-left:auto;margin-right:auto}.page-content{flex:1}.hamburger-menu{display:none;position:fixed;top:var(--spacing-md);left:var(--spacing-md);z-index:1100;background:var(--sidebar-bg);border:2px solid var(--sidebar-border);border-radius:var(--border-radius);padding:var(--spacing-sm);cursor:pointer;flex-direction:column;width:48px;height:48px;justify-content:center;align-items:center;transition:all var(--transition-medium);box-shadow:0 4px 12px var(--shadow-medium);backdrop-filter:blur(10px)}.hamburger-menu:hover,.hamburger-menu:focus{background:rgba(255,255,255,0.1);transform:scale(1.05);outline:none;box-shadow:0 6px 20px var(--shadow-medium)}.hamburger-menu span{display:block;width:22px;height:3px;background:var(--text-secondary);margin:3px 0;transition:all var(--transition-medium);border-radius:2px}.hamburger-menu.active span:nth-child(1){transform:rotate(45deg) translate(6px, 6px);background:var(--text-primary)}.hamburger-menu.active span:nth-child(2){opacity:0;transform:scale(0)}.hamburger-menu.active span:nth-child(3){transform:rotate(-45deg) translate(8px, -7px);background:var(--text-primary)}.sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);z-index:999;transition:opacity var(--transition-medium);backdrop-filter:blur(2px)}.sidebar-overlay.overlay-active{display:block;opacity:1}.card-container{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg);margin:var(--spacing-lg) 0;justify-items:center}.card{background:var(--card-bg);border:2px solid var(--sidebar-border);border-radius:var(--border-radius);padding:var(--spacing-xs) var(--spacing-sm);transition:all var(--transition-medium);cursor:pointer;position:relative;overflow:hidden;text-decoration:none;color:inherit;display:flex;align-items:center;gap:var(--spacing-md);box-shadow:0 6px 12px var(--shadow-medium);width:100%;max-width:700px;justify-self:center}.card-content{flex:1;padding:var(--spacing-sm) 0;display:flex;flex-direction:column;justify-content:space-between}.card-image{flex-shrink:0;width:110px;height:135px;border-radius:var(--border-radius);object-fit:cover;border:2px solid var(--sidebar-border)}.card:hover,.card:focus{background:var(--card-hover-bg);transform:translateY(-2px) scale(1);box-shadow:0 12px 24px var(--shadow-medium);border-color:var(--text-primary);text-decoration:none;color:inherit;outline:none}.card::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:2px;background:linear-gradient(90deg, transparent, var(--text-primary), transparent);transition:left 0.35s ease}.card:hover::before,.card:focus::before{left:100%}.card h3{color:var(--text-primary);margin:0 0 var(--spacing-xs) 0;font-size:1.25rem;font-weight:550}.card p{color:var(--text-secondary);margin:0;font-size:0.95rem;line-height:1.5}.card small{color:var(--text-secondary);font-size:0.85rem;margin-top:var(--spacing-xs);opacity:0.8;display:flex;align-items:center;gap:0.3rem}.step h3{color:var(--text-secondary);font-size:1.7rem;font-weight:280;text-align:center;margin-top:2.7rem;margin-bottom:1.2rem}.copyright{display:block;width:100%;color:var(--text-secondary);font-size:0.8rem;margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg);letter-spacing:0.02em}.line{display:block;width:100%;height:0;border:none;border-top:1.5px solid var(--sidebar-border);opacity:0.7;margin:2.5rem 0 1rem 0;box-sizing:border-box}@media (max-width: 768px){:root{--sidebar-width: 280px;--spacing-sm: 0.75rem;--spacing-md: 1rem;--spacing-lg: 1.3rem}.layout-container{flex-direction:row}.sidebar{position:fixed;left:calc(-1 * var(--sidebar-width));width:var(--sidebar-width);height:100vh;transition:transform var(--transition-medium);z-index:1000;box-shadow:4px 0 20px var(--shadow-medium)}.sidebar.sidebar-open{transform:translateX(var(--sidebar-width))}.main-content{margin-left:0;width:100%;padding:calc(var(--spacing-lg) * 3) var(--spacing-md) var(--spacing-md)}.content-wrapper{max-width:100%}.page-title{font-size:2rem}.page-description{font-size:1rem}.hamburger-menu{display:flex}body.sidebar-open{overflow:hidden}}@media (min-width: 769px) and (max-width: 1024px){.card-container{grid-template-columns:1fr}.main-content{padding:var(--spacing-lg) var(--spacing-md)}}@media (min-width: 1200px){.content-wrapper{max-width:1000px}.page-title{font-size:3rem}.card-container{grid-template-columns:1fr}}@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){.github-avatar{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}.card::before{display:none}.nav-link::before{display:none}}@media (prefers-color-scheme: dark){:root{--shadow-light: rgba(0, 0, 0, 0.2);--shadow-medium: rgba(0, 0, 0, 0.4)}}@media print{.sidebar,.hamburger-menu,.sidebar-overlay{display:none !important}.main-content{margin-left:0 !important;width:100% !important;padding:0 !important}.card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}}
