@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Share+Tech+Mono&display=swap";:root{--font-body:"JetBrains Mono", "Cascadia Mono", "Consolas", monospace;--font-heading:"Share Tech Mono", "JetBrains Mono", monospace;--paper:#edf4e7;--paper-elevated:#f7fbf3;--ink:#10231b;--ink-soft:#355248;--line:#88a99a;--brand:#0b8f5d;--brand-deep:#066343;--accent:#0f5f87;--accent-soft:#d9edf9;--shadow:0 10px 28px #081c1424;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--site-max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(circle at 8% 10%, #0b8f5d1a, transparent 36%), radial-gradient(circle at 88% 6%, #0f5f8714, transparent 32%), linear-gradient(180deg, #f5fbf0 0%, var(--paper) 56%, #e7f0df 100%);margin:0;line-height:1.65}body:before{content:"";pointer-events:none;z-index:-4;opacity:.32;background-image:repeating-linear-gradient(0deg,#06634314 0 1px,#0000 1px 26px),repeating-linear-gradient(90deg,#0663430f 0 1px,#0000 1px 26px);position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:-3;opacity:.25;background:linear-gradient(#10231b00 0%,#10231b0d 50%,#10231b00 100%) 0 0/100% 4px;position:fixed;inset:0}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:.01em;margin:0;line-height:1.2}h1{font-size:clamp(2rem,3.8vw,3.4rem)}h2{font-size:clamp(1.6rem,2.8vw,2.45rem)}h3{font-size:clamp(1.08rem,1.6vw,1.4rem)}p{margin:0}a{color:var(--accent)}img{max-width:100%;display:block}.skip-link{z-index:40;border:1px solid var(--line);background:var(--brand-deep);color:#eafff6;border-radius:6px;padding:.55rem .75rem;text-decoration:none;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.container{width:min(var(--site-max), calc(100% - 3rem));margin:0 auto}.narrow{width:min(760px,100% - 3rem)}.page-shell{z-index:2;padding-top:3rem;padding-bottom:5rem;position:relative}.ambient-layer{pointer-events:none;z-index:-2;position:fixed;inset:0;overflow:hidden}.ambient{border:1px dashed color-mix(in srgb, var(--line) 80%, var(--brand));box-shadow:var(--shadow);position:absolute}.ambient-a{aspect-ratio:1;opacity:.42;background:radial-gradient(circle,#0b8f5d1f 0 34%,#0000 34% 100%),repeating-radial-gradient(circle,#0b8f5d3b 0 2px,#0000 2px 19px);border-radius:50%;width:min(34vw,360px);animation:28s linear infinite drift-a;top:7%;right:-8%}.ambient-b{opacity:.36;background:repeating-linear-gradient(135deg,#0f5f8724 0 10px,#0f5f870a 10px 20px),linear-gradient(160deg,#d9edf973,#edf4e766);border-radius:14px;width:min(44vw,520px);height:min(34vw,360px);animation:34s linear infinite drift-b;bottom:10%;left:-12%}.ambient-c{opacity:.3;background-image:linear-gradient(#0000 48%,#88a99a80 50%,#0000 52%),linear-gradient(90deg,#0000 48%,#88a99a80 50%,#0000 52%);background-size:22px 22px;border-radius:10px;width:min(30vw,300px);height:min(30vw,300px);animation:30s linear infinite drift-c;top:48%;right:18%}.site-header{z-index:20;border-bottom:1px solid color-mix(in srgb, var(--line) 72%, transparent);backdrop-filter:blur(8px);background:#f7fbf3e0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1rem;min-height:76px;display:flex}.brand-mark{align-items:center;gap:.7rem;text-decoration:none;display:inline-flex}.brand-mark span{letter-spacing:.06em;background:var(--ink);color:#d9fff0;border:1px solid color-mix(in srgb, var(--line) 45%, var(--ink));border-radius:6px;padding:.45rem .55rem;font-family:Share Tech Mono,monospace;font-weight:700;line-height:1}.brand-mark small{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:.84rem;font-weight:700}.primary-nav ul{align-items:center;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.primary-nav a{color:var(--ink-soft);border:1px dashed #0000;border-radius:6px;align-items:center;padding:.42rem .76rem;font-family:Share Tech Mono,monospace;font-size:.95rem;font-weight:400;text-decoration:none;display:inline-flex}.primary-nav a:hover,.primary-nav a:focus-visible,.primary-nav a.active{color:var(--brand-deep);border-color:color-mix(in srgb, var(--brand) 36%, var(--line));background:color-mix(in srgb, var(--brand) 9%, #fff);outline:none}.button{letter-spacing:.02em;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:.45rem;padding:.66rem 1rem;font-family:Share Tech Mono,monospace;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .18s,box-shadow .18s,background-color .18s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:focus-visible{outline:2px solid color-mix(in srgb, var(--brand) 58%, #fff);outline-offset:2px}.button--primary{background:var(--brand-deep);color:#e6fff4;box-shadow:0 8px 18px #06634338}.button--ghost{border-color:color-mix(in srgb, var(--line) 74%, var(--ink));color:var(--ink);background:#ffffffb3}.button--compact{background:var(--accent);color:#ebf7ff;padding:.5rem .9rem;box-shadow:0 8px 16px #0f5f8740}.hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:2.2rem;padding-top:1.2rem;display:grid}.hero-copy{gap:1.3rem;display:grid}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--brand-deep);align-items:center;gap:.4rem;font-family:Share Tech Mono,monospace;font-size:.8rem;display:inline-flex}.eyebrow:before{content:"";background:color-mix(in srgb, var(--brand) 70%, #fff);width:24px;height:1px}.hero-title{max-width:22ch}.hero-subtitle{color:var(--ink-soft);max-width:58ch;font-size:clamp(1.02rem,1.2vw,1.15rem)}.hero-actions{flex-wrap:wrap;gap:.85rem;display:flex}.profile-frame{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:linear-gradient(160deg,#f6fbf1 0%,#e4efdd 100%);padding:.85rem}.profile-image{aspect-ratio:3/4;object-fit:cover;object-position:center;border-radius:calc(var(--radius-lg) - 6px);width:100%}.profile-note{color:var(--ink-soft);margin-top:.8rem;font-size:.9rem}.section{gap:1.2rem;margin-top:4.2rem;display:grid}.section-heading{gap:.85rem;display:grid}.section-heading p{color:var(--ink-soft);max-width:64ch}.stat-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.stat-item{background:color-mix(in srgb, var(--paper-elevated) 84%, #fff);border:1px solid var(--line);border-radius:var(--radius-md);border-left:4px solid color-mix(in srgb, var(--accent) 68%, var(--brand));padding:1rem;box-shadow:0 8px 18px #0a1e1614}.stat-item strong{font-family:Share Tech Mono,monospace;font-size:1.3rem;display:block}.stat-item span{color:var(--ink-soft);font-size:.9rem}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.project-card,.post-card,.contact-card,.competency-card{border-radius:var(--radius-md);border:1px solid var(--line);background:color-mix(in srgb, var(--paper-elevated) 88%, #fff);gap:.9rem;padding:1.1rem;display:grid;box-shadow:0 7px 20px #0d1a1417}.project-card p,.post-card p,.contact-card p,.competency-card p{color:var(--ink-soft)}.chip-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.chip{border:1px solid color-mix(in srgb, var(--line) 84%, var(--ink));color:var(--ink-soft);letter-spacing:.04em;background:#f3f9ef;border-radius:6px;padding:.22rem .54rem;font-family:Share Tech Mono,monospace;font-size:.76rem}.text-link{color:var(--accent);text-underline-offset:3px;width:fit-content;font-weight:700;text-decoration:underline}.text-link:hover,.text-link:focus-visible{color:color-mix(in srgb, var(--accent) 72%, var(--brand-deep))}.post-date{color:color-mix(in srgb, var(--ink-soft) 90%, #fff);font-family:Share Tech Mono,monospace;font-size:.78rem}.post-card h3 a{color:var(--ink);text-decoration:none}.post-card h3 a:hover,.post-card h3 a:focus-visible{text-decoration:underline}.timeline{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.timeline li{border-left:2px dashed color-mix(in srgb, var(--brand) 38%, var(--line));padding-left:1rem}.timeline h3{margin-bottom:.3rem}.timeline .period{color:var(--ink-soft);margin-bottom:.6rem;font-family:Share Tech Mono,monospace;font-size:.8rem}.timeline ul{color:var(--ink-soft);margin:0;padding-left:1.2rem}.timeline ul li{border:none;padding:0}.blog-layout{gap:1.2rem;display:grid}.blog-layout .lede{color:var(--ink-soft);font-size:1.06rem}.blog-meta{color:var(--ink-soft);flex-wrap:wrap;gap:.8rem;font-family:Share Tech Mono,monospace;font-size:.8rem;display:flex}.prose{gap:1rem;margin-top:.6rem;display:grid}.prose h2,.prose h3{margin-top:1rem}.prose p,.prose li{color:#264238}.prose ul,.prose ol{margin:0;padding-left:1.2rem}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.prose th,.prose td{border-bottom:1px solid var(--line);vertical-align:top;padding:.65rem .4rem}.prose code{color:#0e3f2b;background:#e3f2e7;border:1px solid #84a898;border-radius:6px;padding:.1rem .3rem;font-family:JetBrains Mono,monospace}.prose pre{border:1px solid var(--line);background:#f3faf0;border-radius:10px;padding:1rem;overflow-x:auto}.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.notice{border:1px solid color-mix(in srgb, var(--brand) 28%, var(--line));background:color-mix(in srgb, var(--brand) 8%, #fff);border-radius:var(--radius-md);color:var(--ink-soft);padding:1rem}.site-footer{border-top:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:#f7fbf3e0}.footer-inner{min-height:74px;color:var(--ink-soft);justify-content:space-between;align-items:center;gap:1rem;font-size:.88rem;display:flex}.footer-links{align-items:center;gap:.9rem;display:flex}.footer-links a{color:var(--accent);text-decoration:none}.footer-links a:hover,.footer-links a:focus-visible{text-decoration:underline}.reveal{opacity:0;animation:.62s cubic-bezier(.18,.6,.25,1) forwards rise-in;animation-delay:var(--delay,0s);transform:translateY(14px)}@keyframes rise-in{to{opacity:1;transform:translateY(0)}}@keyframes drift-a{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(-10px,12px)rotate(2deg)}}@keyframes drift-b{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(12px,-10px)rotate(-1deg)}}@keyframes drift-c{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-7px,6px)scale(1.02)}}@media (width<=980px){.brand-mark small{display:none}.hero,.card-grid,.contact-grid{grid-template-columns:1fr}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.ambient-a,.ambient-b,.ambient-c{opacity:.24}}@media (width<=760px){.container,.narrow{width:min(100%,100% - 1.5rem)}.header-inner{flex-wrap:wrap;justify-content:space-between;padding:.7rem 0}.primary-nav{order:3;width:100%}.primary-nav ul{flex-wrap:wrap;justify-content:center}.hero-actions{width:100%}.hero-actions .button{flex:auto}.stat-strip{grid-template-columns:1fr}.footer-inner{text-align:center;flex-direction:column;justify-content:center;padding:1rem 0}.footer-links{flex-wrap:wrap;justify-content:center}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ambient,.reveal{opacity:1;animation:none;transform:none}}
