:root{color-scheme:dark;--bg:#101512;--panel:#151d18;--panel-2:#1a241e;--line:#2b3930;--text:#edf2ec;--muted:#a4b0a6;--quiet:#78877c;--accent:#b5d5a5;--accent-strong:#d3e9c6;--ink:#142017;--max:1160px;--radius:4px;--font:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--accent-strong)}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.container{width:min(calc(100% - 3rem),var(--max));margin-inline:auto}.skip-link{position:absolute;left:1rem;top:-5rem;z-index:100;background:var(--accent);color:var(--ink);padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{border-bottom:1px solid var(--line);background:rgba(16,21,18,.96)}.nav-wrap{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.wordmark{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--text);font-size:.8rem;font-weight:800;letter-spacing:.11em;line-height:1.4}.wordmark-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--accent);color:var(--accent);font-family:var(--mono);font-size:.95rem;letter-spacing:-.1em}.wordmark small{display:block;margin-top:.25rem;color:var(--quiet);font-family:var(--mono);font-size:.58rem;font-weight:500;letter-spacing:.08em}.site-nav{display:flex;align-items:center;gap:clamp(.8rem,2vw,1.6rem);flex-wrap:wrap}.site-nav a{font-size:.83rem;color:var(--muted);text-decoration:none;white-space:nowrap}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--accent)}.site-nav .nav-contact{border:1px solid var(--line);padding:.55rem .8rem;color:var(--text)}.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:clamp(3rem,7vw,7rem);align-items:center;padding-block:clamp(5rem,10vw,8.5rem)}.eyebrow,.card-index{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;color:var(--accent);font-weight:600}.hero .eyebrow{display:flex;align-items:center;gap:.65rem}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}.hero h1{font-size:clamp(2.8rem,5.4vw,5rem);line-height:1.07;letter-spacing:-.065em;font-weight:650;margin:1.5rem 0 1.35rem}.hero h1 span{color:var(--accent)}.hero-lede{max-width:620px;color:#bdc7be;font-size:1.08rem;line-height:1.85}.hero-actions{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;margin-top:2rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.9rem;min-height:48px;padding:.7rem 1rem;border:1px solid var(--line);text-decoration:none;font-size:.86rem;font-weight:700}.button-primary{background:var(--accent);color:var(--ink);border-color:var(--accent)}.button-primary:hover{background:var(--accent-strong);color:var(--ink)}.text-link{display:inline-flex;gap:.7rem;align-items:center;font-size:.88rem;font-weight:650;text-decoration:none}.hero-note{font-family:var(--mono);font-size:.7rem;color:var(--quiet);margin-top:2.3rem;max-width:450px}.hero-aside{border:1px solid var(--line);background:var(--panel);padding:1.2rem 1.3rem 1.35rem;position:relative;overflow:hidden}.aside-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.aside-top .eyebrow{font-size:.62rem}.live-mark{font-family:var(--mono);font-size:.58rem;color:var(--quiet)}.signal-art{height:230px;position:relative;display:grid;place-items:center;border-bottom:1px solid var(--line);overflow:hidden}.signal-art:before,.signal-art:after{content:"";position:absolute;background:var(--line)}.signal-art:before{height:1px;left:0;right:0;top:50%}.signal-art:after{width:1px;top:0;bottom:0;left:50%}.signal-ring{position:absolute;aspect-ratio:1;border:1px solid #526a55;border-radius:50%}.ring-one{width:70px}.ring-two{width:140px;border-style:dashed;opacity:.8}.ring-three{width:210px;opacity:.55}.signal-core{width:10px;height:10px;background:var(--accent);border-radius:50%;z-index:1;box-shadow:0 0 24px #b5d5a555}.signal-label{position:absolute;font: .59rem var(--mono);letter-spacing:.08em;color:var(--quiet);background:var(--panel);padding:.15rem .35rem;z-index:2}.label-a{top:20%;left:14%}.label-b{top:64%;right:12%}.label-c{bottom:13%;left:26%}.principles>div{display:flex;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.principles>div:last-child{border-bottom:0;padding-bottom:0}.principles>div>span{font: .7rem var(--mono);color:var(--accent);padding-top:.2rem}.principles p{margin:0}.principles strong,.principles small{display:block}.principles strong{font-size:.83rem;font-weight:650}.principles small{color:var(--muted);font-size:.76rem;margin-top:.1rem}.section{padding-block:clamp(4rem,8vw,7rem)}.section-quiet{background:#131a15;border-block:1px solid #202a23}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem}.section-heading h2,.closing-band h2,.page-title{font-size:clamp(2rem,3.7vw,3.25rem);line-height:1.15;letter-spacing:-.05em;margin:.5rem 0 0;font-weight:620}.section-intro{max-width:460px;color:var(--muted);margin:0}.focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.focus-card{border:1px solid var(--line);padding:1.5rem;background:var(--bg);min-height:280px}.card-index{font-size:.62rem;color:var(--quiet)}.focus-icon{display:grid;place-items:center;width:42px;height:42px;margin:1.5rem 0 .9rem;border:1px solid var(--line);color:var(--accent);font:1.25rem var(--mono)}.focus-card h3{margin:0;font-size:1.1rem}.focus-card p{font-size:.88rem;color:var(--muted);margin:.6rem 0 1.2rem}.focus-card a{font-size:.8rem;text-decoration:none;font-weight:650}.pill{display:inline-flex;padding:.35rem .65rem;border:1px solid var(--line);font: .68rem var(--mono);white-space:nowrap}.pill-progress{color:var(--accent);border-color:#496347}.project-feature{display:grid;grid-template-columns:.8fr 1.2fr;border:1px solid var(--line);background:var(--panel)}.feature-index{display:flex;flex-direction:column;justify-content:space-between;min-height:320px;padding:1.5rem;background:#18221b;color:var(--quiet);font: .65rem var(--mono);letter-spacing:.08em}.feature-symbol{display:grid;grid-template-columns:repeat(3,38px);gap:8px;align-content:center;justify-content:center;flex:1}.feature-symbol span{width:38px;height:38px;border:1px solid #526b53;transform:rotate(45deg);opacity:.8}.feature-symbol span:nth-child(2n){border-color:var(--accent);background:#b5d5a50b}.feature-copy{padding:clamp(1.5rem,4vw,3rem)}.feature-copy h3{font-size:clamp(1.6rem,3vw,2.35rem);line-height:1.2;letter-spacing:-.04em;margin:.6rem 0 1rem;max-width:500px}.feature-copy>p:not(.eyebrow){color:var(--muted);max-width:580px}.tag-list{display:flex;gap:.5rem;flex-wrap:wrap;margin:1.3rem 0 1.6rem}.tag-list span{border:1px solid var(--line);padding:.25rem .55rem;color:var(--muted);font: .68rem var(--mono)}.closing-band{display:flex;justify-content:space-between;align-items:center;gap:3rem}.closing-band>div{max-width:700px}.closing-band p:not(.eyebrow){color:var(--muted);max-width:650px}.site-footer{border-top:1px solid var(--line);padding:1.7rem 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.footer-name{color:var(--text);text-decoration:none;font-size:.83rem;font-weight:700}.footer-name span{color:var(--accent)}.footer-inner p,.footer-links{color:var(--quiet);font-size:.75rem;margin:0}.footer-links{display:flex;gap:1rem;align-items:center}.footer-links a{color:var(--muted);text-decoration:none}.page-hero{padding-block:clamp(4rem,8vw,7rem) 3rem;border-bottom:1px solid var(--line)}.page-hero .eyebrow{margin:0}.page-title{max-width:850px;margin:.8rem 0 1.2rem;font-size:clamp(2.5rem,5.2vw,4.5rem)}.page-lede{font-size:1.05rem;max-width:760px;color:var(--muted);line-height:1.85}.breadcrumb{font: .7rem var(--mono);color:var(--quiet);margin-bottom:1.2rem}.breadcrumb a{color:var(--muted)}.content-section{padding-block:3rem 5rem}.content-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(230px,.7fr);gap:clamp(2rem,6vw,5rem)}.prose{max-width:760px}.prose h2{font-size:1.55rem;letter-spacing:-.035em;margin:2.5rem 0 .75rem}.prose h2:first-child{margin-top:0}.prose h3{font-size:1.1rem;margin:1.8rem 0 .5rem}.prose p,.prose li{color:#bac5bc}.prose ul,.prose ol{padding-left:1.3rem}.prose li{padding:.2rem 0}.prose strong{color:var(--text)}.note-box,.side-card{border:1px solid var(--line);background:var(--panel);padding:1.2rem}.note-box{border-left:2px solid var(--accent);margin:1.5rem 0}.note-box p{margin:.25rem 0;color:var(--muted);font-size:.9rem}.note-box strong{color:var(--text)}.side-card{margin-bottom:1rem}.side-card h3{font: .68rem var(--mono);letter-spacing:.1em;color:var(--accent);margin:0 0 .8rem}.side-card p,.side-card li{font-size:.84rem;color:var(--muted)}.side-card ul{padding-left:1.1rem;margin:.4rem 0}.side-card a{overflow-wrap:anywhere}.listing{display:grid;gap:1rem}.listing-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;padding:1.5rem;border:1px solid var(--line);background:var(--panel);align-items:start}.listing-card h2{font-size:1.25rem;letter-spacing:-.025em;margin:.35rem 0}.listing-card p{color:var(--muted);margin:.4rem 0 1rem;font-size:.9rem;max-width:720px}.listing-card .text-link{font-size:.8rem}.meta-line{font: .66rem var(--mono);letter-spacing:.06em;color:var(--quiet)}.status-note{font: .65rem var(--mono);color:var(--accent);border:1px solid #496347;padding:.3rem .5rem;white-space:nowrap}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.simple-card{padding:1.5rem;border:1px solid var(--line);background:var(--panel)}.simple-card h2,.simple-card h3{margin:.5rem 0;font-size:1.15rem}.simple-card p{font-size:.9rem;color:var(--muted)}.contact-list{display:grid;gap:.75rem;margin-top:2rem}.contact-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--line);background:var(--panel);text-decoration:none}.contact-row strong{color:var(--text)}.contact-row span{color:var(--quiet);font: .7rem var(--mono)}.contact-row:hover{border-color:var(--accent)}.plain-list{list-style:none;padding:0!important}.plain-list li{border-bottom:1px solid var(--line);padding:.75rem 0}.plain-list li:last-child{border:0}.muted{color:var(--muted)}.small-note{font-size:.8rem;color:var(--quiet)}.rule{border:0;border-top:1px solid var(--line);margin:2rem 0}.page-end{padding:2rem 0 4rem}.page-end a{font-size:.85rem}.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:900px){.nav-wrap{align-items:flex-start;padding-block:1rem;flex-direction:column;gap:.8rem}.site-nav{gap:.7rem 1.1rem}.hero{grid-template-columns:1fr;gap:2.5rem;padding-block:4.5rem}.hero-aside{max-width:600px}.section-heading{align-items:flex-start;flex-direction:column;gap:.8rem}.project-feature{grid-template-columns:.55fr 1fr}.feature-index{min-height:300px}.content-grid{grid-template-columns:1fr}.content-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.side-card{margin:0}}
@media(max-width:620px){.container{width:min(calc(100% - 2rem),var(--max))}.wordmark{font-size:.72rem}.wordmark small{font-size:.52rem}.site-nav{gap:.6rem .9rem}.site-nav a{font-size:.78rem}.site-nav .nav-contact{padding:.35rem .5rem}.hero{padding-block:3.5rem}.hero h1{font-size:clamp(2.45rem,11vw,3.7rem)}.hero-lede{font-size:1rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:1rem}.signal-art{height:200px}.focus-grid,.two-col{grid-template-columns:1fr}.focus-card{min-height:0}.project-feature{grid-template-columns:1fr}.feature-index{min-height:190px}.feature-symbol{grid-template-columns:repeat(3,28px);gap:7px}.feature-symbol span{width:28px;height:28px}.closing-band{align-items:flex-start;flex-direction:column;gap:1rem}.footer-inner{align-items:flex-start;flex-direction:column}.content-aside{grid-template-columns:1fr}.listing-card{grid-template-columns:1fr;gap:.7rem}.listing-card .status-note{justify-self:start}.page-title{font-size:clamp(2.4rem,10vw,3.5rem)}.contact-row{align-items:flex-start;flex-direction:column;gap:.3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(forced-colors:active){.button-primary{border:2px solid ButtonText}.signal-ring,.focus-icon,.wordmark-mark{border:1px solid CanvasText}}

/* CV page and clean print layout */
.resume-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.5rem 0 2rem}.resume-header{border-bottom:1px solid var(--line);padding-bottom:1.5rem;margin-bottom:1.5rem}.resume-header h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.05;letter-spacing:-.06em;margin:.4rem 0}.resume-subtitle{color:var(--accent);font-weight:600}.resume-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;color:var(--muted);font-size:.85rem}.resume-section{margin:2rem 0}.resume-section h2{font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:.55rem}.resume-item{margin:1rem 0}.resume-item h3{margin:0;font-size:1rem}.resume-item p{margin:.25rem 0;color:var(--muted)}.resume-tags{display:flex;flex-wrap:wrap;gap:.5rem}.resume-tags span{border:1px solid var(--line);padding:.25rem .55rem;font-size:.8rem;color:var(--muted)}.print-only{display:none}
@media print{ :root{color-scheme:light;--bg:#fff;--panel:#fff;--panel-2:#fff;--line:#cbd2cc;--text:#172019;--muted:#39453c;--quiet:#526056;--accent:#244b2c;--accent-strong:#244b2c;--ink:#fff}body{background:#fff;color:#172019;font-size:10.5pt;line-height:1.45;-webkit-print-color-adjust:exact;print-color-adjust:exact}.site-header,.site-footer,.skip-link,.resume-actions,.page-hero .eyebrow{display:none!important}.container{width:100%;max-width:none}.page-hero{padding:0;border:0}.page-title{font-size:24pt}.page-lede{font-size:10.5pt;color:#39453c}.content-section{padding:0}.content-grid{display:block}.resume-header{padding-bottom:.6rem;margin-bottom:.6rem}.resume-header h1{font-size:26pt}.resume-section{margin:1rem 0}.resume-section h2{font-size:10pt}.resume-item{margin:.6rem 0;break-inside:avoid}.resume-tags span{padding:.1rem .3rem}.print-only{display:block}a{color:#172019;text-decoration:none}a[href^="http"]:after{content:""}ul{margin:.35rem 0}.prose p,.prose li{color:#28332b}}
