@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Syne:wght@400;600;700;800&display=swap";:root{--bg: #0a0c0f;--bg2: #0f1217;--bg3: #161b23;--border: #1e2530;--border2: #2a3545;--green: #00ff9d;--green-dim: #00cc7a;--green-dk: #003d25;--blue: #4fc3f7;--amber: #ffd166;--red: #ff6b6b;--purple: #bb86fc;--text: #e2e8f0;--text2: #8892a4;--text3: #4a5568;--mono: "JetBrains Mono", monospace;--sans: "Syne", sans-serif;--nav-h: 70px;--strip-h: 38px;--max-w: 1100px;--section-px: 2rem;--section-py: 6rem;--green-alpha: rgba(0, 255, 157, .4);--border-alpha: rgba(255, 255, 255, .1)}.light-mode{--bg: #f8fafc;--bg2: #ffffff;--bg3: #f1f5f9;--text: #0f172a;--text2: #334155;--text3: #64748b;--border: rgba(15, 23, 42, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--strip-h) + 1rem);font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--mono);overflow-x:hidden;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}input,textarea,button,select{font-family:var(--mono)}h1,h2,h3,h4,h5,h6{font-family:var(--sans);line-height:1.15}ul,ol{list-style:none}::selection{background:var(--green-dk);color:var(--green)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--green-dk)}:focus-visible{outline:2px solid var(--green);outline-offset:3px}.skip-link{position:absolute;left:-9999px;top:1rem;background:var(--green);color:var(--bg);padding:8px 16px;font-size:12px;font-family:var(--mono);z-index:9999;text-decoration:none;font-weight:600}.skip-link:focus{left:1rem}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.section-tag{font-size:11px;color:var(--green);font-family:var(--mono);text-transform:uppercase;letter-spacing:.2em;margin-bottom:6px;display:flex;align-items:center;gap:8px}.section-tag:before{content:"//";color:var(--text3)}.section-title{font-family:var(--sans);font-weight:800;font-size:clamp(26px,4vw,38px);letter-spacing:-1px;color:var(--text)}.section-line{width:40px;height:2px;background:var(--green);margin-top:10px}.skeleton{background:var(--bg3);border-radius:2px;animation:pulse 1.4s ease infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 768px){:root{--section-py: 3rem;--section-px: 1.25rem}}.route-fallback{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:var(--max-w);min-height:50vh;margin:0 auto;padding:var(--section-py) var(--section-px)}.route-error{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;width:100%;max-width:var(--max-w);min-height:50vh;margin:0 auto;padding:var(--section-py) var(--section-px)}.route-error__tag{font-family:var(--mono);font-size:11px;color:var(--red);text-transform:uppercase;letter-spacing:.2em}.route-error__title{font-family:var(--sans);font-size:clamp(24px,4vw,34px);color:var(--text)}.route-error__desc{font-size:14px;color:var(--text2);max-width:520px}.route-error__link{font-family:var(--mono);font-size:12px;color:var(--green);border-bottom:1px solid transparent;transition:border-color .2s}.route-error__link:hover{border-color:var(--green)}.contact-section{background:var(--bg2);border-top:1px solid var(--border);padding:var(--section-py) var(--section-px)}.contact-grid{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:4rem}.contact-accent{color:var(--green)}.contact-intro{font-size:14px;color:var(--text2);line-height:1.8;margin:1rem 0 2rem}.contact-rows{display:flex;flex-direction:column;gap:8px}.contact-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg3);border:1px solid var(--border);border-radius:2px;transition:all .2s}.contact-row:hover{border-color:var(--green);background:#00ff9d05}.contact-row__link{display:flex;align-items:center;gap:12px;flex:1;min-width:0;overflow:hidden}.contact-row__icon{color:var(--green);font-size:14px;flex-shrink:0}.contact-row__value{font-size:13px;font-family:var(--mono);color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-row__copy{font-size:10px;font-family:var(--mono);color:var(--text3);transition:color .2s;min-height:44px;padding:8px 10px;flex-shrink:0}.contact-row__copy.is-copied{color:var(--green)}.contact-socials{display:flex;gap:8px;flex-wrap:wrap;margin-top:1.25rem}.social-pill-link{font-size:11px;font-family:var(--mono);color:var(--text3);transition:color .2s}.social-pill-link:hover{color:var(--green)}.contact-availability{background:var(--bg3);border:1px solid var(--border);border-radius:2px;padding:1.5rem;margin-top:2rem}.contact-availability__label{font-size:10px;font-family:var(--mono);color:var(--text3);text-transform:uppercase;letter-spacing:.1em}.contact-availability__list{margin-top:1rem;display:flex;flex-direction:column;gap:12px}.contact-availability__row{display:flex;justify-content:space-between;gap:1rem;font-size:12px;font-family:var(--mono)}.contact-availability__key{color:var(--text3)}.contact-availability__value{color:var(--text2);text-align:right}.contact-resume{margin-top:1rem}.contact-resume>a{width:100%}.contact-form-col{margin-top:4.5rem}@media (max-width: 768px){.contact-grid{gap:2.5rem}.contact-form-col{margin-top:0}}@media (max-width: 480px){.contact-grid{grid-template-columns:1fr}}.post-body p{font-size:14px;line-height:1.9;color:var(--text2);margin-bottom:1.25rem}.post-body h2{font-family:var(--sans);font-weight:800;font-size:22px;color:var(--text);margin:2rem 0 .75rem;letter-spacing:-.5px}.post-body h3{font-family:var(--sans);font-weight:700;font-size:18px;color:var(--text);margin:1.5rem 0 .5rem}.post-body code{font-family:var(--mono);font-size:13px;background:var(--bg3);color:var(--green);padding:2px 6px;border-radius:2px}.post-body pre{background:var(--bg3);border:1px solid var(--border);padding:1.25rem;overflow-x:auto;margin-bottom:1.25rem;border-radius:2px}.post-body pre code{background:transparent;padding:0;color:var(--text)}.post-body strong{color:var(--text);font-weight:600}.post-body em{color:var(--text2)}.post-body ul,.post-body ol{padding-left:1.5rem;margin-bottom:1.25rem;list-style:initial}.post-body li{font-size:14px;line-height:1.9;color:var(--text2)}.post-body blockquote{border-left:3px solid var(--green);padding-left:1rem;margin-bottom:1.25rem;color:var(--text2);font-style:italic}.post-body a{color:var(--green);text-decoration:underline}.post-body hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.post-body img{width:100%;border:1px solid var(--border);margin:1.25rem 0}.post-body table{width:100%;border-collapse:collapse;margin-bottom:1.25rem;display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.post-body th,.post-body td{border:1px solid var(--border);padding:8px 12px;font-size:13px;text-align:left}.post-body th{background:var(--bg3);color:var(--text);font-weight:600}.post-body td{color:var(--text2)}@keyframes blink{50%{opacity:0}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{to{opacity:0;transform:translateY(10px)}}.animate-blink{animation:blink 1s steps(1) infinite}.animate-pulse{animation:pulse 1.4s ease infinite}.animate-fadeUp{animation:fadeUp .6s ease forwards}.animate-spin{animation:spin 1s linear infinite}.project-card:hover{border-color:var(--green)!important;box-shadow:0 0 20px #00ff9d0d}.contact-row:hover{border-color:var(--green)!important;background:#00ff9d05!important}.copy-btn:hover{border-color:var(--green)!important;color:var(--green)!important}
