:root{--navy:#0a192f;--light-navy:#112240;--lightest-navy:#233554;--slate:#8892b0;--light-slate:#a8b2d1;--lightest-slate:#ccd6f6;--white:#e6f1ff;--green:#64ffda;--rule:var(--lightest-navy);--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--mono:"JetBrains Mono", "SF Mono", "Fira Code", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--navy);color:var(--light-slate);font-family:var(--sans);-webkit-font-smoothing:antialiased;scroll-behavior:smooth;margin:0;padding:0;font-size:15px;line-height:1.55}::selection{background:var(--green);color:var(--navy)}a{color:var(--green);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .15s}a:hover{border-bottom-color:var(--green)}.layout{grid-template-columns:360px 1fr;gap:80px;max-width:1200px;margin:0 auto;padding:0 48px;display:grid}.sidebar{flex-direction:column;align-self:start;height:100vh;padding:80px 0 40px;display:flex;position:sticky;top:0}.avatar{object-fit:cover;border:1px solid var(--lightest-navy);border-radius:6px;width:300px;height:300px;margin-bottom:28px}.sidebar .name{letter-spacing:-.02em;color:var(--lightest-slate);margin:0 0 6px;font-size:32px;font-weight:700;line-height:1.1}.tagline{color:var(--lightest-slate);margin:0 0 22px;font-size:16px;font-weight:500}.contact{font-family:var(--mono);color:var(--slate);margin-bottom:36px;font-size:12.5px}.contact-line{align-items:center;gap:8px;margin:4px 0;display:flex}.contact-icon{color:var(--slate);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.brand-ms{letter-spacing:.01em;font-weight:600}.nav{flex-direction:column;gap:6px;display:flex}.nav-link{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--slate);border:none;align-items:center;gap:16px;padding:6px 0;font-size:12px;font-weight:600;transition:color .2s;display:flex}.nav-link:hover{color:var(--lightest-slate);border:none}.nav-link:hover .nav-indicator{background:var(--lightest-slate);width:64px}.nav-indicator{background:var(--slate);width:32px;height:1px;transition:width .2s,background .2s;display:inline-block}.nav-link.active{color:var(--lightest-slate)}.nav-link.active .nav-indicator{background:var(--lightest-slate);width:64px}.socials{flex-wrap:wrap;gap:10px;margin:-16px 0 36px;display:flex}.social-btn{border:1px solid var(--lightest-navy);width:40px;height:40px;color:var(--light-slate);background:#11224066;border-radius:8px;justify-content:center;align-items:center;transition:color .15s,border-color .15s,transform .15s,background .15s;display:inline-flex}.social-btn:hover{color:var(--green);border-color:var(--green);background:#64ffda0f;transform:translateY(-2px)}.social-btn svg{display:block}.main{min-width:0;padding:80px 0 120px}.section{margin:0 0 80px;scroll-margin-top:24px}.section:last-child{margin-bottom:0}.section-title{text-transform:uppercase;letter-spacing:.18em;color:var(--lightest-slate);align-items:center;gap:16px;margin:0 0 24px;font-size:18px;font-weight:600;display:flex}.section-title:after{content:"";background:var(--rule);flex:1;height:1px}.about-p{color:var(--light-slate);max-width:640px;margin:0 0 14px}.about-p:last-child{margin-bottom:0}.entry{margin:0 0 24px}.entry:last-child{margin-bottom:0}.entry-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:2px;display:flex}.entry-title{color:var(--lightest-slate);font-size:16px;font-weight:600}.entry-date{color:var(--slate);font-family:var(--mono);white-space:nowrap;letter-spacing:.02em;font-size:12px}.entry-sub{color:var(--green);font-family:var(--mono);margin-bottom:6px;font-size:13px}.entry-sub em{font-style:normal}.entry-detail-block{color:var(--light-slate);margin:4px 0 0}.bullets{margin:6px 0 0;padding:0;list-style:none}.bullets li{color:var(--light-slate);margin:6px 0;padding-left:22px;position:relative}.bullets li:before{content:"▹";color:var(--green);position:absolute;top:0;left:0}.project{margin:0 0 48px}.project:last-child{margin-bottom:0}.project-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.project-title{color:var(--lightest-slate);letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600;line-height:1.3}.project-desc{color:var(--light-slate);margin:0 0 12px}.project-stack{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.project-stack li{border:1px solid var(--green);color:var(--green);font-family:var(--mono);background:#64ffda0a;border-radius:4px;padding:5px 10px;font-size:12px}.project-link{color:var(--lightest-slate);border:none;flex-shrink:0;justify-content:center;align-items:center;margin-top:6px;transition:color .15s,transform .15s;display:inline-flex}.project-link:hover{color:var(--green);border:none;transform:translateY(-2px)}.skill-row{color:var(--light-slate);grid-template-columns:120px 1fr;align-items:baseline;gap:8px;margin:8px 0;display:grid}.skill-row strong{color:var(--green);font-family:var(--mono);font-size:13px;font-weight:500}.oss-intro{margin:0 0 12px}.oss-row{color:var(--light-slate);font-family:var(--mono);margin:8px 0;font-size:13px}.oss-row strong{color:var(--lightest-slate)}.oss-row em{color:var(--slate);font-style:italic}.contact-blurb{color:var(--light-slate);max-width:560px;margin:0 0 24px}.contact-form{flex-direction:column;gap:14px;max-width:520px;display:flex}.contact-form label{flex-direction:column;gap:6px;display:flex}.contact-form label span{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--slate);font-size:11px;font-weight:600}.contact-form input,.contact-form textarea{background:var(--light-navy);border:1px solid var(--lightest-navy);color:var(--lightest-slate);font-family:var(--sans);resize:vertical;border-radius:4px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px #64ffda26}.contact-form button{border:1px solid var(--green);color:var(--green);font-family:var(--mono);letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:4px;align-self:flex-start;margin-top:4px;padding:10px 22px;font-size:13px;font-weight:500;transition:background .15s}.contact-form button:hover:not(:disabled){background:#64ffda1a}.contact-form button:disabled{opacity:.5;cursor:not-allowed}.form-msg{font-size:13px;font-family:var(--mono);margin:4px 0 0}.form-msg.ok{color:var(--green)}.form-msg.err{color:#ff6b8b}@media print{html,body{color:#111;background:#fff}.sidebar{height:auto;padding:24px 0;position:static}.layout{padding:24px;display:block}.main{padding:0}.nav,.avatar,.contact-form,.contact-blurb{display:none}a{color:inherit;border:none}.section-title,.entry-title,.name{color:#000}.section-title:after{background:#ccc}.entry-date,.entry-sub,.skill-row strong,.oss-row strong,.bullets li:before{color:#555}}@media (width<=900px){.layout{grid-template-columns:1fr;gap:24px;padding:0 24px}.sidebar{text-align:center;align-items:center;height:auto;padding:56px 0 16px;position:static}.avatar{width:240px;height:240px;margin-bottom:20px}.sidebar .name{font-size:28px}.contact{text-align:center}.contact-line{justify-content:center}.nav,.nav-indicator{display:none}.socials{justify-content:center;margin:0 0 16px}.main{padding:24px 0 80px}.entry-head{flex-direction:column;gap:2px}.section{margin-bottom:56px}}
