﻿*{margin:0;padding:0}*,*::before,*::after{box-sizing:border-box}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}:root{--sans-font: -apple-system, BlinkMacSystemFont, "Avenir Next", Avenir, "Nimbus Sans L", Roboto, Noto, "Segoe UI", Arial, Helvetica, "Helvetica Neue", sans-serif;--mono-font: "Input", "Input Mono", "JetBrains Mono", "Fira Code", "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Liberation Mono", Menlo, Consolas, monospace;--bg: #fff;--accent-bg: #f4f8f4;--text: #2d3436;--text-light: #636e72;--border: #e8efe8;--accent: #7ED321;--accent-hover: #6bb01a;--code: #d35c26;--preformatted: #2d3436;--marked: #fff3cd;--disabled: #f1f2f6;--vim-bg: #2e3440;--vim-fg: #d8dee9;--vim-comment: #616e88;--vim-keyword: #81a1c1;--vim-string: #a3be8c;--vim-number: #b48ead;--vim-function: #88c0d0;--vim-type: #8fbcbb;--vim-constant: #d08770;--vim-operator: #eceff4;--vim-punctuation: #d8dee9;--vim-line-number: #4c566a;--vim-cursor-line: #3b4252}@media(prefers-color-scheme: dark){:root{--bg: #1a1a1a;--accent-bg: #2a3f2a;--text: #e8e8e8;--text-light: #b8b8b8;--border: #4a5a4a;--accent: #9AE653;--accent-hover: #7ED321;--code: #ff7f50;--preformatted: #ddd;--disabled: #2a2a2a;--vim-bg: #1e2127;--vim-fg: #abb2bf;--vim-comment: #5c6370;--vim-keyword: #c678dd;--vim-string: #98c379;--vim-number: #d19a66;--vim-function: #61afef;--vim-type: #e06c75;--vim-constant: #56b6c2;--vim-operator: #abb2bf;--vim-punctuation: #abb2bf;--vim-line-number: #4b5263;--vim-cursor-line: #2c313c}body{color:#eee;background:#121212}a{color:#809fff}a:visited{color:#ffb300}img,video{opacity:.8}}html,body{height:100%;width:100%;margin:0;padding:0;left:0;top:0;font-size:100%;font-family:var(--mono-font);color:var(--text);background:var(--bg);line-height:1.6;font-feature-settings:"liga" 1,"calt" 1}body{min-height:100vh;display:flex;flex-direction:column}main{flex:1 0 auto}.container{max-width:1000px;margin:0 auto;padding:0 2rem}h1,h2,h3,h4,h5,h6{font-family:var(--mono-font);font-weight:bold;line-height:1.3;margin:2rem 0 1rem 0;letter-spacing:-0.01em}h1{font-size:2.2rem;border-bottom:3px solid var(--accent);padding-bottom:.5rem}h2{font-size:1.7rem;color:var(--accent)}h3{font-size:1.3rem;color:var(--text)}p{margin:1rem 0;line-height:1.7}a{color:var(--accent);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:.2em;transition:all .2s ease}a:hover{color:var(--accent-hover);text-decoration-style:solid;text-decoration-thickness:2px}a:visited{color:var(--text-light)}a:focus{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}a:focus:not(:focus-visible){outline:none}a:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:2px}hr{border:none;border-top:1px solid var(--border);margin:3rem auto}mark{padding:2px 5px;border-radius:4px;background:var(--marked)}main img,main video{max-width:100%;height:auto;border-radius:5px}figure{margin:0;text-align:center}figcaption{font-size:.9rem;color:var(--text-light);margin-bottom:1rem}blockquote{margin:2rem 0 2rem 2rem;padding:.4rem .8rem;border-left:.35rem solid var(--accent);color:var(--text-light);font-style:italic}cite{font-size:.9rem;color:var(--text-light);font-style:normal}code,pre,pre span,kbd,samp{font-family:var(--mono-font)}kbd{color:var(--preformatted);border:1px solid var(--preformatted);border-bottom:3px solid var(--preformatted);border-radius:5px;padding:.1rem .4rem}pre{background:var(--vim-bg);color:var(--vim-fg);border:1px solid #4c566a;border-radius:6px;margin:1.5rem 0;overflow:hidden;position:relative;font-size:.85rem;line-height:1.4;box-shadow:0 4px 16px rgba(0,0,0,.2)}pre::after{content:"1:bash*";display:block;background:var(--vim-bg);color:var(--vim-fg);border-top:1px solid var(--vim-line-number);padding:.5rem 1rem;font-family:var(--mono-font);font-size:.7rem;font-weight:normal}pre code{display:block;padding:1rem;background:none;color:inherit;overflow-x:auto;font-size:inherit;line-height:inherit}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt,.highlight .kd{color:var(--vim-keyword);font-weight:500}.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .sr,.highlight .ss{color:var(--vim-string)}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo,.highlight .il{color:var(--vim-number)}.highlight .nf,.highlight .nb,.highlight .fm{color:var(--vim-function);font-weight:500}.highlight .nc,.highlight .no,.highlight .nt,.highlight .kt,.highlight .nd{color:var(--vim-type);font-weight:500}.highlight .c,.highlight .c1,.highlight .cm,.highlight .cp,.highlight .cs{color:var(--vim-comment);font-style:italic}.highlight .o,.highlight .ow{color:var(--vim-operator)}.highlight .p{color:var(--vim-punctuation)}.highlight .n,.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--vim-constant)}.highlight .nx{color:var(--vim-fg)}.highlight .err{color:red;background:rgba(255,0,0,.1);border-radius:2px;padding:0 2px}code:not(pre code){background:var(--accent-bg);border:1px solid var(--border);border-radius:3px;padding:.1rem .4rem;font-size:.85em;color:var(--code);font-weight:500}.site-header{background:var(--bg);border-bottom:2px solid var(--border);position:sticky;top:0;z-index:1000;backdrop-filter:blur(10px);background:rgba(var(--bg-rgb, 255, 255, 255), 0.95)}@media(prefers-color-scheme: dark){.site-header{background:rgba(26,26,26,.95)}}.main-nav{max-width:1000px;margin:0 auto;padding:0 2rem}.nav-container{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem 0;font-family:var(--mono-font);font-size:.95rem}.nav-left{display:flex;align-items:center;gap:2rem;flex:1}.nav-prompt{color:var(--accent);font-weight:bold;white-space:nowrap}.nav-links{display:flex;list-style:none;margin:0;padding:0;gap:2rem;flex-wrap:wrap}.nav-links li{margin:0}.nav-links a{color:var(--text);text-decoration:none;padding:.4rem .8rem;border-radius:4px;transition:all .2s ease;position:relative}.nav-links a::before{content:"[";color:var(--text-light);margin-right:.2rem}.nav-links a::after{content:"]";color:var(--text-light);margin-left:.2rem}.nav-links a:hover{background:var(--accent-bg);color:var(--accent)}.nav-links a:hover::before,.nav-links a:hover::after{color:var(--accent)}.nav-links a.active{color:var(--accent);font-weight:bold}.nav-links a.active::before,.nav-links a.active::after{color:var(--accent)}.nav-links a:focus{outline:2px solid var(--accent);outline-offset:2px}.nav-social{display:flex;list-style:none;margin:0;padding:0;gap:1rem;flex-shrink:0}.nav-social li{margin:0}.nav-social a{color:var(--text-light);text-decoration:none;padding:.3rem .6rem;border-radius:3px;transition:all .2s ease;font-size:.85rem;font-weight:500}.nav-social a:hover{color:var(--accent);background:var(--accent-bg)}.nav-social a:focus{outline:2px solid var(--accent);outline-offset:2px}.site-footer{flex-shrink:0;background:var(--accent-bg);border-top:2px solid var(--border);font-size:.9rem}.footer-content{max-width:1000px;margin:0 auto;padding:0 2rem;display:grid;grid-template-columns:repeat(4, 1fr);gap:3rem}.footer-section h3{color:var(--text);font-size:1rem;font-weight:600;border-bottom:2px solid var(--accent);padding-bottom:.5rem}.footer-section p{color:var(--text-light);line-height:1.5}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{margin-bottom:.5rem}.footer-links a{color:var(--text-light);text-decoration:none;transition:color .2s ease}.footer-links a:hover{color:var(--accent-hover)}.footer-bottom{max-width:1000px;margin:0 auto;padding:2rem 1rem 0 1rem;border-top:1px solid var(--border)}.copyright{text-align:center;color:var(--text-light);font-size:.8rem;margin:0}.home-layout{max-width:1000px;margin:0 auto;padding:3rem 1.5rem;position:relative}.hero-section{text-align:center}.hero-content .avatar{border-radius:50%;margin:0 auto 2rem auto;display:block;border:4px solid var(--accent);transition:transform .3s ease,box-shadow .3s ease;object-fit:cover;box-shadow:0 4px 12px rgba(0,0,0,.1)}.hero-content .avatar:hover{transform:scale(1.05);box-shadow:0 6px 16px rgba(0,0,0,.15)}.hero-content h1{font-size:2.8rem;margin-bottom:1.5rem;font-weight:bold;letter-spacing:-0.02em}.hero-content .intro{font-size:1.3rem;color:var(--text-light);max-width:600px;margin:0 auto 2rem auto;line-height:1.7}.hero-content .bio{font-size:1.05rem;color:var(--text);max-width:700px;margin:0 auto 0 auto;line-height:1.8}.featured-section h2{font-size:2rem;text-align:center;color:var(--text);border-bottom:none}.featured-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:2rem;margin-bottom:2rem}@media(min-width: 768px){.featured-grid{grid-template-columns:repeat(2, 1fr)}}.featured-card{background:var(--accent-bg);border:2px solid var(--border);border-radius:6px;padding:2rem;transition:all .3s ease;position:relative}.featured-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.12);border-color:var(--accent)}.featured-card:focus-within{outline:3px solid var(--accent);outline-offset:3px;border-color:var(--accent)}.featured-card h3{margin:0 0 1rem 0;font-size:1.3rem}.featured-card h3 a{text-decoration:none;color:var(--accent);font-weight:bold}.featured-card h3 a:hover{text-decoration:underline}.featured-card h3 a:focus{outline:none}.featured-card p{margin:0;color:var(--text-light);font-size:1rem;line-height:1.7}.skills-section{margin-bottom:6rem}.skills-section h2{font-size:2rem;text-align:center;margin-bottom:3rem;color:var(--text);border-bottom:none}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:2rem;margin-bottom:2rem}.skill-category{background:var(--accent-bg);border-left:4px solid var(--accent);border-radius:4px;padding:1.5rem;transition:all .3s ease}.skill-category:hover{transform:translateX(4px);border-left-width:6px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.skill-category h3{margin:0 0 .8rem 0;font-size:1.1rem;color:var(--accent);font-weight:bold}.skill-category p{margin:0;color:var(--text);font-size:.95rem;line-height:1.8}.topics-section{margin-bottom:4rem}.topics-section h2{font-size:2rem;text-align:center;color:var(--text);border-bottom:none}.topics-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:2rem;margin-bottom:3rem}.topic-card{background:var(--accent-bg);border:2px solid var(--border);border-radius:6px;padding:1.8rem;transition:all .3s ease;position:relative}.topic-card::before{content:"❯ ls " attr(data-path);display:block;font-family:var(--mono-font);font-size:.8rem;color:var(--accent);margin-bottom:1rem;font-weight:bold;opacity:.8}.topic-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.12);border-color:var(--accent)}.topic-card:hover::before{color:var(--text);opacity:1}.topic-card:focus-within{outline:3px solid var(--accent);outline-offset:3px;border-color:var(--accent)}.topic-card:focus-within::before{color:var(--text);opacity:1}.topic-card h3{margin:0 0 .8rem 0;font-size:1.2rem;font-weight:bold}.topic-card h3 a{text-decoration:none;color:var(--text);font-family:var(--mono-font)}.topic-card h3 a:hover{color:var(--accent);text-decoration:underline;text-decoration-style:solid}.topic-card h3 a:focus{outline:none}.topic-card p{margin:0;color:var(--text-light);font-size:.95rem;line-height:1.7;font-style:italic}.terminal-container{width:100%;display:block}.terminal-header{background:var(--accent-bg);border:1px solid var(--border);border-radius:4px 4px 0 0;padding:.75rem 1rem;font-family:var(--mono-font);font-size:.85rem;margin-bottom:0}.terminal-header .path-line{color:var(--text-light);margin-bottom:.3rem}.terminal-header .prompt-line{display:flex;align-items:center}.terminal-header .prompt-char{color:var(--accent);font-weight:bold;margin-right:.5rem}.terminal-header .command{color:var(--text)}.ls-output{background:var(--bg);border:1px solid var(--border);border-top:none;border-radius:0 0 4px 4px;padding:1rem;font-family:var(--mono-font);font-size:.85rem}.ls-output .ls-summary{color:var(--text-light);margin-bottom:.5rem;font-style:italic}.ls-entry{display:grid;grid-template-columns:110px 30px 80px 60px 60px 120px 1fr;gap:.5rem;padding:.1rem 0;align-items:center;font-family:var(--mono-font)}.ls-entry:hover{background:var(--accent-bg);margin:0 -0.5rem;padding:.1rem .5rem;border-radius:2px}.ls-entry .permissions{color:var(--text-light);font-size:.8rem}.ls-entry .links,.ls-entry .size{color:var(--text-light);text-align:right;font-size:.8rem}.ls-entry .owner,.ls-entry .group{color:var(--text-light);font-size:.8rem}.ls-entry .date{color:var(--text-light);font-size:.8rem}.ls-entry .filename{text-decoration:none}.ls-entry .filename.directory{color:var(--accent);font-weight:bold}.ls-entry .filename.file{color:var(--text)}.ls-entry .filename.file:hover{text-decoration:underline}.ls-directory .permissions{color:var(--accent)}.file-content{background:var(--bg);border:1px solid var(--border);border-top:none;border-radius:0 0 4px 4px;padding:0;font-family:var(--mono-font)}.file-meta{background:var(--accent-bg);padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.8rem}.file-meta .file-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.file-meta .file-info .filename{color:var(--accent);font-weight:bold}.file-meta .file-info .file-stats{color:var(--text-light)}.file-meta .file-location{font-size:.75rem;color:var(--text-light)}.file-meta .file-location .path-label{font-style:italic;margin-right:.5rem}.file-meta .file-location .category-path{color:var(--accent);font-family:var(--mono-font)}.file-separator{height:1px;background:var(--border);margin:1.5rem 0}.article-title{margin:1.5rem 1rem 1rem 1rem !important;padding-bottom:.5rem;border-bottom:2px solid var(--accent);font-size:1.8rem}.article-content{padding:0 1rem 1rem 1rem;line-height:1.7}.article-content p{margin:1.2rem 0}.article-content h2{margin:2rem 0 1rem 0;color:var(--accent);font-size:1.3rem;border-left:3px solid var(--accent);padding-left:.8rem}.article-content h3{margin:1.5rem 0 .8rem 0;font-size:1.1rem}.article-content ul,.article-content ol{margin:1rem 0;padding-left:2rem}.article-content ul li,.article-content ol li{margin:.5rem 0;line-height:1.6}.article-content pre{margin:1.5rem 0;font-size:.85rem}.article-content pre code{line-height:1.5}.article-content code:not(pre code){font-size:.85em;padding:.2rem .4rem}.article-content blockquote{margin:1.5rem 0;padding:1rem;background:var(--accent-bg);border-left:4px solid var(--accent);border-radius:0 4px 4px 0}.file-footer{background:var(--accent-bg);padding:.75rem 1rem;border-top:1px solid var(--border)}.file-footer .file-stats-bottom{font-size:.75rem;color:var(--text-light);text-align:center}.text-center{text-align:center}@media(max-width: 900px){.footer-content{grid-template-columns:repeat(2, 1fr);gap:1.5rem}}@media(max-width: 768px){.nav-container{flex-direction:column;align-items:flex-start;gap:1rem;padding:.8rem 0}.nav-left{flex-direction:column;align-items:flex-start;gap:1rem;width:100%}.nav-links{gap:1rem}.nav-social{gap:1.5rem;margin-top:.5rem}.home-layout{padding:2rem 1rem}.hero-section{padding:2rem 0}.hero-content .avatar{width:110px;height:110px}.hero-content h1{font-size:2.2rem}.hero-content .intro{font-size:1.15rem}.hero-content .bio{font-size:1rem}.featured-section h2,.topics-section h2{font-size:1.7rem}.featured-grid,.skills-grid,.topics-grid{grid-template-columns:1fr;gap:1.5rem}.featured-card,.skill-category,.topic-card{padding:1.5rem}.ls-entry{grid-template-columns:1fr;gap:0}.ls-entry .permissions,.ls-entry .links,.ls-entry .owner,.ls-entry .group,.ls-entry .size,.ls-entry .date{display:none}.ls-entry .filename{padding:.5rem 0}.file-content{margin:0 .5rem;max-width:none}.file-meta .file-info{flex-direction:column;align-items:flex-start;gap:.3rem}.article-title{font-size:1.6rem;margin:1rem .5rem .5rem .5rem !important}.article-content{padding:0 .5rem .5rem .5rem}.footer-content{padding:0 1rem}}@media(max-width: 600px){.footer-content{grid-template-columns:1fr;gap:1.5rem}}.iframe-container{overflow:hidden;padding-top:56.25%;position:relative}.iframe-container iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}pre.language-go::after{content:"1:vim* 2:go"}pre.language-ruby::after{content:"1:vim* 2:ruby"}pre.language-javascript::after{content:"1:vim* 2:node"}pre.language-python::after{content:"1:vim* 2:python"}pre.language-bash::after,pre.language-shell::after{content:"1:bash* 2:ssh"}pre.language-sql::after{content:"1:psql* 2:vim"}pre.language-yaml::after,pre.language-yml::after{content:"1:vim* 2:kubectl"}pre.language-json::after{content:"1:vim* 2:jq"}pre.language-dockerfile::after{content:"1:vim* 2:docker"}pre.language-rust::after{content:"1:vim* 2:cargo"}pre.language-java::after{content:"1:vim* 2:java"}pre.language-php::after{content:"1:vim* 2:php"}pre.language-c::after,pre.language-cpp::after{content:"1:vim* 2:gcc"}pre.language-typescript::after{content:"1:vim* 2:ts-node"}pre.language-kotlin::after{content:"1:vim* 2:kotlin"}pre.language-swift::after{content:"1:vim* 2:swift"}pre.language-scala::after{content:"1:vim* 2:sbt"}pre.language-elixir::after{content:"1:vim* 2:iex"}pre.language-erlang::after{content:"1:vim* 2:erl"}pre.language-haskell::after{content:"1:vim* 2:ghci"}pre.language-clojure::after{content:"1:vim* 2:lein"}pre.language-perl::after{content:"1:vim* 2:perl"}pre.language-lua::after{content:"1:vim* 2:lua"}pre.language-vim::after{content:"1:vim* 2:shell"}pre.language-xml::after{content:"1:vim* 2:xmllint"}pre.language-html::after{content:"1:vim* 2:browser"}pre.language-css::after{content:"1:vim* 2:sass"}pre.language-scss::after{content:"1:vim* 2:sass"}pre.language-markdown::after{content:"1:vim* 2:pandoc"}pre.language-tex::after,pre.language-latex::after{content:"1:vim* 2:pdflatex"}pre.language-r::after{content:"1:vim* 2:R"}pre.language-matlab::after{content:"1:vim* 2:matlab"}pre.language-octave::after{content:"1:vim* 2:octave"}pre.language-ini::after{content:"1:vim* 2:config"}pre.language-toml::after{content:"1:vim* 2:config"}pre.language-conf::after{content:"1:vim* 2:config"}/*# sourceMappingURL=application.css.map */