:root{--paper:#f2f2ee;--paper-bright:#f7f7f4;--ink:#17181a;--muted:#55584f;--line:#dcdcd5;--dark:#0b0c0b;--dark-panel:#101210;--dark-line:#23251f;--accent:oklch(72% .16 148);--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--sans:"IBM Plex Sans", system-ui, "Segoe UI", Roboto, sans-serif;font-family:var(--sans);letter-spacing:.18px;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:18px;line-height:145%}@media (width<=1024px){:root{font-size:16px}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);min-width:320px;margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}p,h1,h2,h3{margin:0}.container{width:min(1180px,100%);margin:0 auto;padding-inline:40px}h1,h2,h3,.wordmark,.nav-links,.button,.impact-log,.section-label,.work-meta,.metric,.stack-group h3,.education span,.writing-item>span,.contact-links,.footer-line{font-family:var(--mono)}.hero-band{color:#e9eae6;background:var(--dark);min-height:100vh}.hero-band .container{flex-direction:column;min-height:100vh;display:flex}.nav{font:13px var(--mono);border-bottom:1px solid #1b1d18;justify-content:space-between;align-items:center;padding:22px 0;display:flex}.wordmark{letter-spacing:.02em}.nav-links{color:#8e918c;gap:28px;display:flex}.nav-links a{border-bottom:1px solid #0000;padding-bottom:2px}.nav-links a:hover{border-color:var(--accent)}.accent-link,.availability,.work-meta span,.writing-item>span{color:var(--accent)}.hero-grid{flex:1;grid-template-columns:1.35fr 1fr;align-items:end;gap:64px;padding:92px 0 104px;display:grid}.availability,.section-label{font:12px var(--mono);letter-spacing:.14em;text-transform:uppercase}.availability{align-items:center;gap:12px;margin-bottom:32px;display:flex}.availability span{background:var(--accent);border-radius:50%;width:7px;height:7px}h1{letter-spacing:-.03em;margin-bottom:28px;font-size:clamp(2.8rem,5.2vw,3.875rem);line-height:1.04}.hero-description{color:#a9aca7;max-width:46ch;font-size:19px;line-height:1.6}.hero-actions{gap:14px;margin-top:40px;display:flex}.button{padding:15px 26px;font-size:13px;font-weight:500;transition:background .2s,border-color .2s,color .2s;display:inline-block}.button-primary{background:var(--accent);color:var(--dark)}.button-primary:hover{color:var(--dark);background:oklch(79% .16 148)}.button-secondary{color:#e9eae6;border:1px solid #33362f}.button-secondary:hover{border-color:var(--accent)}.impact-log{border:1px solid var(--dark-line);background:var(--dark-panel);font-size:13px}.window-bar{border-bottom:1px solid var(--dark-line);gap:7px;padding:13px 16px;display:flex}.window-bar span{background:#3a3d36;border-radius:50%;width:9px;height:9px}.window-bar small{color:#6e716b;margin-left:10px;font-size:11px}.impact-body{gap:18px;padding:22px 20px;display:grid}.impact-row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.impact-row span{color:#7f827c}.impact-row strong{color:#e9eae6;font-size:22px}.impact-row:first-child strong{color:var(--accent)}.impact-footer{border-top:1px solid var(--dark-line);color:#55584f;padding:14px 20px;font-size:11px}.client-strip{background:var(--dark);color:#55584f;font:11px var(--mono);letter-spacing:.16em;text-transform:uppercase;border-top:1px solid #1b1d18}.client-list{flex-wrap:wrap;gap:18px 40px;padding-block:18px;display:flex}.section{padding-top:100px}.section-label{color:#8a8d84;margin-bottom:40px}.service-grid,.writing-grid{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.service,.writing-item{background:var(--paper);padding:34px 30px}.service h3{margin-bottom:14px;font-size:17px}.service p,.work-item p,.experience-item p,.writing-item p,.education p{color:var(--muted);font-size:15px;line-height:1.65}.section-heading{justify-content:space-between;align-items:baseline;margin-bottom:40px;display:flex}.section-heading .section-label{margin-bottom:0}.section-heading>a{color:var(--muted);font:13px var(--mono)}.work-list{gap:20px;display:grid}.work-item{border:1px solid var(--line);background:var(--paper-bright);grid-template-columns:200px 1fr 220px;align-items:start;gap:40px;padding:32px;transition:border-color .2s,background .2s;display:grid}.work-item:hover,.writing-item:hover{color:var(--ink);border-color:var(--ink);background:#fff}.work-meta{color:#8a8d84;font-size:12px;line-height:1.7}.work-item h3{letter-spacing:-.02em;margin-bottom:12px;font-size:25px}.work-item p{max-width:60ch;font-size:16px}.metric{text-align:right}.metric strong{color:var(--dark);letter-spacing:-.03em;font-size:42px;display:block}.metric span{color:#8a8d84;letter-spacing:.12em;text-transform:uppercase;margin-top:4px;font-size:11px;display:block}.experience-list{border-top:1px solid var(--line)}.experience-item{border-bottom:1px solid var(--line);grid-template-columns:240px 1fr;gap:40px;padding:28px 0;display:grid}.experience-item h3{font:600 19px var(--sans);margin-bottom:8px}.stack-grid{grid-template-columns:1.6fr 1fr;gap:64px;display:grid}.stack-groups{gap:30px;display:grid}.stack-group h3{margin-bottom:14px;font-size:13px}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.tag-list span{color:#46493f;font:13px var(--mono);border:1px solid #cfcfc7;padding:7px 12px}.education{border-left:1px solid var(--line);align-content:start;gap:28px;padding-left:32px;display:grid}.education span{color:#8a8d84;margin-bottom:8px;font-size:12px;display:block}.education h3{font:600 17px var(--sans);margin-bottom:4px}.education p{font-size:14px}.off-clock{border-top:1px solid var(--line);padding-top:24px}.writing-grid{background:0 0;border:0;gap:20px}.writing-item{border:1px solid var(--line)}.writing-item>span{letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;font-size:11px;display:block}.writing-item h3{font:600 19px/1.35 var(--sans);margin-bottom:10px}.writing-item p{font-size:14px}.contact-band{color:#e9eae6;background:var(--dark);margin-top:100px}.contact-grid{grid-template-columns:1.3fr 1fr;gap:64px;padding-top:96px;padding-bottom:96px;display:grid}.contact-grid h2{letter-spacing:-.03em;margin-bottom:20px;font-size:44px;line-height:1.1}.contact-grid p{color:#a9aca7;max-width:46ch;font-size:18px;line-height:1.6}.contact-grid .button{margin-top:36px}.contact-links{border:1px solid var(--dark-line);background:var(--dark-line);align-self:start;gap:1px;font-size:14px;display:grid}.contact-links a,.contact-links div{background:var(--dark-panel);justify-content:space-between;padding:18px 22px;display:flex}.contact-links a:hover{color:var(--accent);background:#161815}.contact-links span:first-child{color:#6e716b}.footer-line{color:#55584f;border-top:1px solid #1b1d18;justify-content:space-between;padding-block:22px;font-size:11px;display:flex}@media (width<=800px){.container{padding-inline:22px}.nav{align-items:flex-start;gap:20px}.nav-links{flex-wrap:wrap;justify-content:flex-end;gap:10px 16px}.hero-grid,.contact-grid,.stack-grid{grid-template-columns:1fr;gap:48px}.hero-grid{align-items:start;padding:68px 0 76px}.hero-band,.hero-band .container{min-height:100svh}.service-grid,.writing-grid{grid-template-columns:1fr}.work-item{grid-template-columns:1fr;gap:22px}.metric{text-align:left}.metric strong{font-size:34px}.experience-item{grid-template-columns:1fr;gap:10px}.education{border-top:1px solid var(--line);border-left:0;padding:28px 0 0}.contact-grid h2{font-size:36px}.footer-line{flex-direction:column;gap:8px}}@media (width<=520px){.nav{display:block}.nav-links{justify-content:flex-start;margin-top:16px}h1{font-size:2.6rem}.hero-actions{flex-direction:column;align-items:stretch}.button{text-align:center}.impact-row{align-items:flex-start}.impact-row strong{text-align:right;font-size:18px}}.admin-login-shell,.admin-shell{color:#17181a;background:#f2f2ee;min-height:100vh;font-family:IBM Plex Sans,system-ui,sans-serif}.admin-login-shell{justify-content:center;align-items:center;display:flex}.admin-login{background:#fff;border:1px solid #dcdcd5;gap:16px;width:min(360px,90vw);padding:32px;display:grid}.admin-login h1{margin:0 0 8px;font-size:20px}.admin-topbar{background:#fff;border-bottom:1px solid #dcdcd5;justify-content:space-between;align-items:center;padding:16px 24px;font-size:14px;display:flex}.admin-body{max-width:900px;margin:0 auto;padding:32px 24px 80px}.admin-tabs{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.admin-tab{color:#55584f;cursor:pointer;background:#fff;border:1px solid #dcdcd5;padding:8px 14px;font:13px JetBrains Mono,monospace}.admin-tab.active{color:#17181a;background:oklch(72% .16 148/.12);border-color:oklch(72% .16 148)}.admin-panel h3{margin:28px 0 12px;font-size:15px}.admin-panel>h3:first-child{margin-top:0}.admin-field{gap:6px;margin-bottom:16px;font-size:14px;display:grid}.admin-field span{color:#55584f;text-transform:uppercase;letter-spacing:.08em;font-size:12px}.admin-field input,.admin-field textarea{color:#17181a;resize:vertical;background:#fff;border:1px solid #dcdcd5;padding:10px 12px;font:14px/1.5 inherit}.admin-field input:focus,.admin-field textarea:focus{outline-offset:-1px;outline:2px solid oklch(72% .16 148)}.admin-array{gap:16px;margin-bottom:12px;display:grid}.admin-card{background:#fff;border:1px solid #dcdcd5;padding:18px}.admin-card-head{justify-content:space-between;align-items:center;margin-bottom:14px;font-size:13px;display:flex}.admin-card-actions{gap:6px;display:flex}.admin-card-actions button{cursor:pointer;background:#f7f7f4;border:1px solid #dcdcd5;padding:4px 10px;font-size:12px}.admin-danger{color:#b3261e}.admin-add{color:#55584f;cursor:pointer;background:0 0;border:1px dashed #b8b8ae;align-self:start;padding:10px 16px;font-size:13px}.admin-primary{color:#0b0c0b;cursor:pointer;background:oklch(72% .16 148);border:none;padding:12px 22px;font-weight:600}.admin-link{color:#55584f;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.admin-error{color:#b3261e;font-size:13px}.admin-notice{color:#2a6b3a;font-size:13px}.admin-savebar{background:#f2f2ee;border-top:1px solid #dcdcd5;align-items:center;gap:16px;margin-top:24px;padding:16px 0;display:flex;position:sticky;bottom:0}.admin-status{color:#55584f;font-size:13px}@media (width<=640px){.admin-card-head{flex-direction:column;align-items:flex-start;gap:10px}}
