:root{--ink:#10120f;--paper:#f2f0e8;--paper-deep:#e5e1d4;--acid:#c9ff3d;--blue:#6d7cff;--line:#10120f2e;--muted:#66695f;--mono:"DM Mono", monospace;--sans:"Manrope", sans-serif;--page:clamp(1.25rem, 4vw, 4rem)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}button{font:inherit}img{max-width:100%;display:block}[hidden]{display:none!important}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.skip-link{z-index:100;background:var(--acid);padding:.75rem 1rem;font-weight:800;position:fixed;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.site-header{min-height:84px;padding:0 var(--page);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:30;background:#f2f0e8e0;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;transition:min-height .2s,box-shadow .2s;display:grid;position:sticky;top:0}.brand{align-items:center;gap:.75rem;width:max-content;font-size:.83rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{background:var(--ink);width:2rem;height:2rem;color:var(--paper);font:500 .7rem/1 var(--mono);border-radius:50%;place-items:center;display:grid}.view-switch{border:1px solid var(--line);border-radius:999px;gap:.2rem;padding:.28rem;display:flex}.view-link{font:500 .69rem/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.55rem .9rem;text-decoration:none}.view-link.is-active{background:var(--ink);color:var(--paper)}.hero{min-height:calc(100vh - 84px);padding:clamp(4rem, 7vw, 7rem) var(--page) 2.5rem;border-bottom:1px solid var(--line);flex-direction:column;display:flex;position:relative;overflow:hidden}.hero-kicker,.eyebrow,.section-label{font:500 .7rem/1.45 var(--mono);letter-spacing:.08em;text-transform:uppercase}.hero-kicker{z-index:3;align-items:center;gap:.65rem;display:flex;position:relative}.availability-dot{background:var(--acid);border:1px solid var(--ink);border-radius:50%;width:.65rem;height:.65rem;box-shadow:0 0 0 4px #c9ff3d38}.hero-title{letter-spacing:-.075em;z-index:2;max-width:1200px;margin:auto 0;font-size:clamp(3.6rem,8.5vw,9rem);font-weight:700;line-height:.88;position:relative}.hero-title em{color:#0000;-webkit-text-stroke:2px var(--ink);font-style:normal}.hero-footer{z-index:3;grid-template-columns:minmax(0,42rem) auto;justify-content:space-between;align-items:end;gap:3rem;display:grid;position:relative}.hero-footer p{margin:0;font-size:clamp(1rem,1.45vw,1.25rem);line-height:1.62}.text-link{white-space:nowrap;font:500 .72rem/1 var(--mono);text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:.45rem;text-decoration:none}.filter-button{appearance:none;border:1px solid var(--line);color:var(--ink);cursor:pointer;font:500 .66rem/1 var(--mono);text-transform:uppercase;letter-spacing:.04em;background:#f2f0e8b8;border-radius:999px;padding:.66rem .9rem;transition:background .2s,color .2s,border-color .2s,transform .2s}.filter-button:hover{border-color:var(--ink);transform:translateY(-2px)}.filter-button.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.hero-orbit{aspect-ratio:1;opacity:.7;width:min(39vw,34rem);position:absolute;top:10%;right:-7vw}.orbit-ring{border:1px solid var(--line);border-radius:50%;animation:22s linear infinite spin;position:absolute;inset:0}.orbit-ring:after{content:"";background:var(--blue);border:1px solid var(--ink);border-radius:50%;width:1.1rem;height:1.1rem;position:absolute;top:15%;left:12%}.orbit-ring-two{animation-duration:15s;animation-direction:reverse;inset:16%}.orbit-ring-two:after{background:var(--acid);top:60%;left:auto;right:3%}.orbit-core{background:var(--ink);color:var(--paper);font:500 1rem/1 var(--mono);border-radius:50%;place-items:center;display:grid;position:absolute;inset:36%}@keyframes spin{to{transform:rotate(360deg)}}body[data-focus=cyber]{--accent:#c9ff3d}body[data-focus=it]{--accent:#79d8ff}body[data-focus=ot]{--accent:#ffb65c}body[data-focus=swe]{--accent:#9d89ff}.proof-strip{background:var(--ink);color:var(--paper);grid-template-columns:repeat(4,1fr);display:grid}.proof-strip>div{border-right:1px solid #f2f0e829;grid-template-columns:auto 1fr;align-content:center;gap:.5rem .9rem;min-height:10rem;padding:1.6rem clamp(1.25rem,2.7vw,2.5rem);display:grid}.proof-strip>div:last-child{border-right:0}.proof-strip span{color:var(--acid);font:500 .68rem/1 var(--mono)}.proof-strip strong{font-size:.98rem;line-height:1.35}.proof-strip small{color:#f2f0e89e;grid-column:2;line-height:1.5}.section-label{color:var(--muted);margin:0}.eyebrow{color:var(--muted);margin:0 0 1.1rem}.button{background:var(--ink);width:max-content;color:var(--paper);font:500 .68rem/1 var(--mono);text-transform:uppercase;align-items:center;gap:.8rem;padding:.9rem 1.1rem;text-decoration:none;transition:transform .2s,background .2s;display:inline-flex}.button:hover{background:#282b26;transform:translateY(-2px)}.resume-section{padding:clamp(5rem, 10vw, 10rem) var(--page);border-bottom:1px solid var(--line)}.section-heading{grid-template-columns:1fr minmax(17rem,.55fr);align-items:end;gap:4rem;margin-bottom:clamp(4rem,8vw,8rem);display:grid}.section-heading h2,.education-title-block h2,.credentials-section h2{letter-spacing:-.06em;max-width:52rem;margin:1.2rem 0 0;font-size:clamp(2.6rem,6.1vw,6.5rem);line-height:.95}.section-heading>p{color:var(--muted);margin:0;line-height:1.7}[data-type-heading] .type-heading-visual{display:inline-block;position:relative}.type-heading-cursor{opacity:0;pointer-events:none;background:currentColor;width:.025em;height:.78em;display:block;position:absolute;bottom:.08em;left:calc(100% + .055em)}[data-type-heading].is-typing .type-heading-cursor{opacity:.52}[data-type-heading].is-complete .type-heading-cursor{animation:1.6s linear forwards type-heading-cursor-finish}@keyframes type-heading-cursor-finish{0%,24%,48%,72%{opacity:.52}12%,36%,60%,to{opacity:0}}.timeline{border-top:1px solid var(--ink)}.timeline-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(13rem,.65fr) minmax(0,1.35fr);gap:clamp(2rem,6vw,8rem);padding:3rem 0;transition:opacity .25s;display:grid}.timeline-meta{font:500 .68rem/1.45 var(--mono);text-transform:uppercase;grid-template-columns:auto 1fr;align-content:start;gap:1rem;display:grid}.timeline-meta span:last-child{color:var(--muted);grid-column:2}.timeline-index{color:var(--blue)}.timeline-content h3{letter-spacing:-.04em;margin:0;font-size:clamp(1.75rem,3.2vw,3.2rem)}.timeline-content>p:not(.eyebrow){max-width:54rem;color:var(--muted);margin:1rem 0 0;line-height:1.7}.impact-list{gap:.65rem;margin:1.3rem 0 0;padding:0;list-style:none;display:grid}.impact-list li{padding-left:1.5rem;line-height:1.6;position:relative}.impact-list li:before{content:"↳";color:var(--blue);font-family:var(--mono);position:absolute;left:0}#experience .impact-list.is-impact-typing .impact-copy{color:#0000}#experience .impact-list.is-impact-typing .impact-typed{position:absolute;top:0;left:1.5rem;right:0}#experience .impact-list.is-impact-typing li:before{visibility:hidden}#experience .impact-list.is-impact-typing li.is-impact-started:before{visibility:visible}.experience-notes{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:3rem;display:grid}.experience-notes article{background:var(--paper);grid-template-columns:auto 1fr;gap:1.5rem;padding:1.6rem;display:grid}.experience-notes span{color:var(--muted);font:500 .64rem/1.4 var(--mono)}.experience-notes h3{margin:0;font-size:1rem}.experience-notes p{color:var(--muted);margin:.65rem 0 0;font-size:.88rem;line-height:1.6}.compact-heading{display:block}#skills.capabilities-section{--skills-accent:#67b1ff;--skills-muted:#a2a5ad;--skills-line:#ffffff1a;color:#f7f7fa;background-color:#0a0d11;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:36px 36px;padding:clamp(4rem,7vw,7rem) clamp(1.25rem,5.7vw,5rem)}#skills .skills-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1rem;display:flex}#skills .skills-heading-meta{color:#858995;font:500 .75rem/1.5 var(--mono);text-transform:uppercase;letter-spacing:.15em;flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}#skills .section-label{color:var(--skills-accent);font:inherit;letter-spacing:inherit;align-items:center;gap:.85rem;display:flex}#skills .section-label:after{content:"";background:#67b1ff59;width:2.5rem;height:1px}#skills .skills-heading h2{letter-spacing:-.045em;margin:.65rem 0 0;font-size:clamp(2.4rem,4vw,3.5rem);line-height:1.1}#skills .skills-selection{color:var(--skills-muted);font:400 .75rem/1.6 var(--mono);text-transform:uppercase;flex-shrink:0;margin:0 0 .15rem}#skills .skills-selection span{color:var(--skills-accent)}#skills .skills-intro{max-width:50rem;color:var(--skills-muted);margin:0 0 2.25rem;font-size:1rem;line-height:1.7}#skills .capability-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}#skills .capability-tab{appearance:none;text-align:left;min-width:0;min-height:10.5rem;color:inherit;border:1px solid var(--skills-line);cursor:pointer;background:#10141c;border-radius:8px;flex-direction:column;align-items:flex-start;padding:1.15rem;transition:background .2s,border-color .2s,box-shadow .2s;display:flex;position:relative}#skills .capability-tab:before{content:"";opacity:0;background:linear-gradient(90deg,#3b82f6,#38bdf8,#2563eb);border-radius:8px 8px 0 0;height:2px;position:absolute;top:-1px;left:0;right:0}#skills .capability-tab[aria-selected=true]{background:linear-gradient(135deg,#101c30,#10141c);border-color:#397fe1;box-shadow:0 6px 24px #2563eb14}#skills .capability-tab[aria-selected=true]:before{opacity:1}#skills .capability-number{color:#9296a1;font:500 .75rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.12em}#skills .capability-tab>.capability-number{justify-content:space-between;align-items:center;gap:.5rem;width:100%;display:flex}#skills .capability-tab>.capability-number:after{content:"";background:#676c78;border-radius:50%;flex:none;width:.4rem;height:.4rem}#skills .capability-tab[aria-selected=true] .capability-number{color:var(--skills-accent)}#skills .capability-tab[aria-selected=true] .capability-number:after{background:var(--skills-accent)}#skills .capability-tab:active{background:#172238}#skills .capability-tab:focus-visible,#skills .capability-panel:focus-visible,#skills a:focus-visible{outline:2px solid var(--skills-accent);outline-offset:4px}#skills .capability-tab-title{letter-spacing:-.025em;margin:.75rem 0 .35rem;font-size:1.125rem;font-weight:700;line-height:1.3}#skills .capability-tab-summary{color:var(--skills-muted);margin-bottom:.9rem;font-size:.875rem;line-height:1.5}#skills .capability-examples{border-top:1px solid #ffffff0f;flex-wrap:wrap;gap:.4rem;width:100%;margin-top:auto;padding-top:.6rem;display:flex}#skills .capability-examples span{color:#ccd0d7;font:400 .75rem/1.4 var(--mono);background:#ffffff0b;border:1px solid #0000;border-radius:3px;padding:.2rem .4rem}#skills .capability-examples .capability-example-featured{color:#93c5fd;background:#3b82f61a;border-color:#3b82f638}#skills .capability-detail{background:#0d1622;border:1px solid #2b3d52;border-radius:12px;min-height:35rem;margin-top:1.5rem;padding:clamp(1.5rem,2.7vw,2.5rem)}#skills .capability-panel{grid-template-columns:minmax(0,.95fr) minmax(0,2.05fr);align-items:start;gap:clamp(2rem,3.2vw,3.5rem);display:grid}#skills .capability-panel-heading .capability-number{color:var(--skills-accent);align-items:center;gap:.65rem;display:flex}#skills .capability-panel-heading .capability-number:after{content:"";background:#67b1ff59;width:1.5rem;height:1px}#skills .capability-panel-heading h3{letter-spacing:-.03em;margin:.9rem 0 .75rem;font-size:clamp(1.5rem,2vw,1.875rem);line-height:1.3}#skills .capability-panel-heading p{color:var(--skills-muted);margin:0;font-size:.875rem;line-height:1.65}#skills .capability-context{border-top:1px solid var(--skills-line);margin-top:1.75rem;padding-top:1.5rem}#skills .capability-context-label{color:var(--skills-muted);font:400 .75rem/1.5 var(--mono);text-transform:uppercase;letter-spacing:.12em;margin:0 0 1.25rem}#skills .capability-evidence{border-left:2px solid #393f4a;margin-top:1.25rem;padding-left:.85rem}#skills .capability-evidence:first-of-type{border-color:#326db6}#skills .capability-evidence p{color:#c7c9ce;margin:.4rem 0 0;font-size:.875rem;line-height:1.65}#skills .capability-evidence .capability-evidence-label{color:var(--skills-muted);font:400 .75rem/1.5 var(--mono);text-transform:uppercase;margin:0}#skills .capability-featured{color:var(--skills-muted);font:400 .75rem/1.6 var(--mono);justify-content:space-between;align-items:baseline;gap:1rem;margin:1.6rem 0 0;display:flex}#skills .capability-featured a{max-width:75%;color:var(--skills-accent);text-align:right;text-underline-offset:.25rem;text-decoration:none}#skills .capability-featured a:hover{text-decoration:underline}#skills .capability-group+.capability-group{border-top:1px solid var(--skills-line);margin-top:1.75rem;padding-top:1.5rem}#skills .capability-group h4{color:var(--skills-muted);font:400 .75rem/1.5 var(--mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .9rem}#skills .capability-group:first-child h4{color:var(--skills-accent)}#skills .capability-group ul{flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}#skills .capability-group li{color:#d8dae0;border:1px solid var(--skills-line);max-width:100%;font:400 .8125rem/1.5 var(--mono);overflow-wrap:anywhere;background:#ffffff06;border-radius:4px;padding:.5rem .75rem}#skills .skills-footer{color:#9296a1;font:400 .75rem/1.6 var(--mono);flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem;margin-top:1rem;display:flex}#skills .skills-footer p{margin:0}@media (hover:hover){#skills .capability-tab:hover{background-color:#151c29;border-color:#67b1ff99}}@media (width<=1050px){#skills .capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){#skills .skills-heading{flex-direction:column;align-items:flex-start;gap:1rem}#skills .capability-panel{grid-template-columns:1fr}#skills .capability-detail{min-height:0}}@media (width<=600px){#skills .capability-grid{grid-template-columns:1fr}#skills .capability-tab{min-height:0}#skills .capability-tab-title{margin-top:.5rem}#skills .capability-tab-summary{margin-bottom:.65rem}#skills .skills-footer p:last-child{display:none}}@media (prefers-reduced-motion:reduce){#skills .capability-tab{transition:none!important}}.education-section{padding:clamp(5rem, 10vw, 10rem) var(--page);border-bottom:1px solid var(--line);grid-template-columns:minmax(17rem,.62fr) minmax(0,1.38fr);gap:clamp(3rem,8vw,9rem);display:grid}.education-title-block h2{font-size:clamp(2.7rem,5.5vw,5.8rem)}.education-list{border-top:1px solid var(--ink)}.education-list article{border-bottom:1px solid var(--line);grid-template-columns:8rem 1fr auto;align-items:center;gap:2rem;min-height:14rem;padding:2rem 0;display:grid}.education-year{font:500 .68rem/1.4 var(--mono);color:var(--muted);text-transform:uppercase}.education-list h3{letter-spacing:-.04em;margin:0;font-size:clamp(1.6rem,3vw,3rem)}.education-list p:not(.eyebrow){max-width:45rem;color:var(--muted);margin:.7rem 0 0;line-height:1.65}.education-mark{font:800 clamp(2.5rem, 6vw, 6rem)/1 var(--sans);color:#0000;-webkit-text-stroke:1px var(--line)}#credentials{padding-left:var(--page);padding-right:var(--page);background:var(--paper-deep)}#credentials .credentials-heading{margin-bottom:clamp(2rem,4vw,3rem)}#credentials .credential-registry{color:var(--paper);background-color:#0e141d;background-image:linear-gradient(#8fb2ff06 1px,#0000 1px),linear-gradient(90deg,#8fb2ff06 1px,#0000 1px);background-size:44px 44px;border:1px solid #27394b;border-top:2px solid #467ab6;border-radius:4px;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(1.5rem,3vw,3rem);padding:clamp(1.1rem,2.5vw,2.5rem);display:grid}#credentials .credential-selector{min-width:0}#credentials .credential-column-label{color:#9fc5f8;font:500 .75rem/1.5 var(--mono);letter-spacing:.09em;text-transform:uppercase;margin:0 0 1rem}#credentials .credential-column-label span{color:#aab5c4;letter-spacing:0;text-transform:none;margin-left:.7rem}#credentials .credential-list{border-top:1px solid #344252;margin:0;padding:0;list-style:none}#credentials .credential-list li{margin:0}#credentials .credential-list button{color:#e8eef6;width:100%;min-height:5.2rem;font:inherit;text-align:left;cursor:pointer;background:#121923bf;border-top:0;border-bottom:1px solid #344252;border-left:2px solid #0000;border-right:0;border-radius:0;padding:.85rem 1rem;transition:background-color .18s,border-color .18s;display:block}#credentials .credential-list button[aria-pressed=true]{color:#fff;background:#172b41;border-left-color:#75b6ff}#credentials .credential-list button:focus-visible{z-index:1;outline-offset:-2px;outline:2px solid #9fc5f8;position:relative}#credentials .credential-item-meta{color:#9fc5f8;font:500 .75rem/1.4 var(--mono);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;display:flex}#credentials .credential-item-status{color:#b9c7d8}#credentials .credential-item-title{margin:.45rem 0 .2rem;font-size:1rem;font-weight:700;line-height:1.35;display:block}#credentials .credential-item-summary{color:#b7c1ce;font-size:.875rem;line-height:1.45;display:block}#credentials .credential-archive{opacity:.82;margin-top:1.5rem}#credentials .credential-archive .credential-column-label{color:#c3cbd5}#credentials .credential-archive .credential-list button{background:#1219238c}#credentials .credential-archive .credential-list button[aria-pressed=true]{background:#172b41}#credentials .credential-detail{background:#121d2b;border:1px solid #34475b;flex-direction:column;align-self:center;min-width:0;padding:clamp(1.5rem,2.5vw,2.25rem);display:flex}#credentials .credential-detail-top{color:#9fc5f8;font:500 .75rem/1.5 var(--mono);text-transform:uppercase;border-bottom:1px solid #34475b;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;padding-bottom:1.1rem;display:flex}#credentials .credential-detail-status{color:#d4dfec}#credentials .credential-detail-type{color:#9fc5f8;font:500 .75rem/1.5 var(--mono);text-transform:uppercase;letter-spacing:.08em;margin:clamp(1.5rem,2.5vw,2.25rem) 0 .65rem}#credentials .credential-detail h3{letter-spacing:-.045em;text-wrap:balance;overflow-wrap:anywhere;max-width:27rem;margin:0;font-size:clamp(1.9rem,3vw,3rem);line-height:1.1}#credentials .credential-facts{border-top:1px solid #34475b;border-bottom:1px solid #34475b;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin:2rem 0 0;padding:1.4rem 0;display:grid}#credentials .credential-facts dt{color:#9fc5f8;font:500 .75rem/1.5 var(--mono);text-transform:uppercase}#credentials .credential-facts dd{color:#e3eaf3;overflow-wrap:anywhere;margin:.4rem 0 0;font-size:.9375rem;line-height:1.5}#credentials .credential-scope{margin-top:2rem}#credentials .credential-scope .credential-column-label{margin-bottom:.55rem}#credentials .credential-scope p:last-child{color:#cbd6e3;max-width:38rem;margin:0;font-size:1rem;line-height:1.65}@media (hover:hover){#credentials .credential-list button:hover{background:#1a2635}#credentials .credential-list button[aria-pressed=true]:hover{background:#1b324b}}@media (width<=900px){#credentials .credential-registry{grid-template-columns:1fr}#credentials .credential-detail-type{margin-top:1.5rem}}@media (width<=540px){#credentials .credential-facts{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){#credentials .credential-list button{transition:none}}.site-footer{min-height:5rem;padding:1.5rem var(--page);background:var(--ink);color:#f2f0e8a8;font:500 .64rem/1.4 var(--mono);text-transform:uppercase;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.site-footer a{color:var(--paper)}.projects-hero{min-height:74vh;padding:clamp(5rem, 9vw, 9rem) var(--page) 3rem;border-bottom:1px solid var(--line);flex-direction:column;display:flex}.projects-hero h1{letter-spacing:-.08em;max-width:1100px;margin:auto 0;font-size:clamp(4rem,10vw,10.5rem);line-height:.86}.projects-hero h1 em{color:#0000;-webkit-text-stroke:2px var(--ink);font-style:normal}.projects-intro{justify-content:space-between;align-items:end;gap:3rem;display:flex}.projects-intro p{max-width:45rem;margin:0;font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.6}.projects-intro span{font:500 .68rem/1 var(--mono);text-transform:uppercase}.project-browser{padding:clamp(5rem, 8vw, 8rem) var(--page) clamp(6rem, 10vw, 11rem)}.browser-toolbar{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:3rem;display:flex}.browser-toolbar h2{letter-spacing:-.05em;margin:.8rem 0 0;font-size:clamp(2.2rem,4vw,4.5rem)}.filter-group{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.filter-button span{opacity:.55;margin-left:.35rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;display:grid}.project-card{border:1px solid var(--line);background:var(--paper-deep);min-width:0;overflow:hidden}.project-card-visual{aspect-ratio:3/2;background:var(--ink);position:relative;overflow:hidden}.project-card-visual img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.project-card-visual>span{color:#f2f0e8cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:500 .56rem/1 var(--mono);text-transform:uppercase;letter-spacing:.05em;background:#10120fc7;padding:.45rem .55rem;position:absolute;bottom:.75rem;left:.75rem}.project-card-visual-icon img{object-fit:contain;padding:clamp(3rem,7vw,7rem)}.project-card-visual-wide img{object-fit:cover}.grid-icon{background:#050914}.project-card-body{flex-direction:column;min-height:27rem;padding:1.6rem;display:flex}.project-card-body h2{letter-spacing:-.055em;max-width:36rem;margin:2rem 0 1rem;font-size:clamp(2rem,4vw,4rem);line-height:.95}.project-card-body>p{max-width:44rem;color:var(--muted);margin:0;line-height:1.65}.project-outcomes{gap:.55rem;margin:1.5rem 0 2.5rem;padding:0;list-style:none;display:grid}.project-outcomes li{color:var(--muted);padding-left:1.3rem;font-size:.85rem;line-height:1.45;position:relative}.project-outcomes li:before{content:"+";color:var(--blue);font-family:var(--mono);position:absolute;left:0}.project-card-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:end;gap:1rem;margin-top:auto;padding-top:1.2rem;display:flex}.project-tags{flex-wrap:wrap;gap:.4rem;display:flex}.project-tags span{border:1px solid var(--line);font:500 .58rem/1 var(--mono);text-transform:uppercase;border-radius:999px;padding:.45rem .55rem}.project-card-footer a{font:500 .66rem/1 var(--mono);text-transform:uppercase;text-underline-offset:.35rem;flex:none}.project-card.is-hidden{display:none}.project-note{padding:clamp(5rem, 10vw, 10rem) var(--page);background:var(--ink);color:var(--paper);grid-template-columns:minmax(10rem,.45fr) minmax(0,1.3fr);gap:clamp(3rem,8vw,9rem);display:grid}.project-note .section-label{color:#f2f0e880}.project-note h2{letter-spacing:-.07em;margin:0;font-size:clamp(3rem,7vw,7.5rem);line-height:.9}.project-note p{color:#f2f0e89e;max-width:42rem;margin:2rem 0;font-size:1.05rem;line-height:1.7}.compact-contact{padding-top:clamp(4rem,7vw,7rem);padding-bottom:clamp(4rem,7vw,7rem)}.js .reveal:nth-child(2){animation-delay:80ms}.js .reveal:nth-child(3){animation-delay:.16s}.scroll-reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(24px)}.scroll-reveal.in-view{opacity:1;transform:none}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}@media (width<=1050px){.proof-strip{grid-template-columns:repeat(2,1fr)}.proof-strip>div:nth-child(2){border-right:0}.proof-strip>div:nth-child(-n+2){border-bottom:1px solid #f2f0e829}}@media (width<=760px){.site-header{grid-template-columns:1fr auto;gap:1rem;min-height:72px}.brand-name{display:none}.view-switch{justify-self:end;max-width:calc(100vw - 5.5rem);overflow-x:auto}.view-link{padding:.5rem .7rem;font-size:.62rem}.hero{min-height:calc(100svh - 72px);padding-top:3rem}.hero-title{margin:auto 0 3rem;font-size:clamp(3.5rem,16vw,6.8rem)}.hero-footer{grid-template-columns:1fr;gap:1.5rem}.hero-footer .text-link{width:max-content}.hero-orbit{opacity:.42;width:80vw;top:16%;right:-36vw}.proof-strip{grid-template-columns:1fr}.proof-strip>div{border-bottom:1px solid #f2f0e829;border-right:0;min-height:8rem}.proof-strip>div:last-child{border-bottom:0}.education-section,.project-note{grid-template-columns:1fr}.section-heading{grid-template-columns:1fr;gap:2rem;margin-bottom:3.5rem}.timeline-item{grid-template-columns:1fr;gap:1.8rem;padding:2.4rem 0}.timeline-content h3{font-size:2rem}.experience-notes{grid-template-columns:1fr}.experience-notes article{grid-template-columns:1fr;gap:.7rem}.education-list article{grid-template-columns:1fr;gap:1.2rem}.education-mark{display:none}.site-footer{flex-direction:column;align-items:flex-start}.projects-hero{min-height:68vh}.projects-hero h1{margin:auto 0 3rem;font-size:clamp(4rem,19vw,7rem)}.projects-intro{flex-direction:column;align-items:flex-start;gap:1.5rem}.browser-toolbar{flex-direction:column;align-items:flex-start}.filter-group{justify-content:flex-start}.project-grid{grid-template-columns:1fr}.project-card-body{min-height:25rem}.project-card-footer{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.type-heading-cursor{display:none}}body{background-image:radial-gradient(circle at 82% 6%,#6d7cff14,#0000 24rem)}.site-header{border-bottom-color:#10120f1f}.site-header:after{content:"";width:var(--scroll-progress,0%);background:var(--blue);height:2px;transition:width 80ms linear;position:absolute;bottom:-1px;left:0}.brand-mark{box-shadow:0 0 0 1px #10120f1f,0 8px 24px #10120f24}.view-link,.filter-button{justify-content:center;align-items:center;min-height:40px;display:inline-flex}.hero{min-height:auto;color:var(--paper);background:var(--ink);isolation:isolate;border-bottom:0;padding-top:2rem}.hero:before{content:"";z-index:-2;background:radial-gradient(circle at 77% 29%,#6d7cff33,#0000 25%),radial-gradient(circle at 6% 85%,#c9ff3d14,#0000 24%),linear-gradient(135deg,#0b0d0b,#151814 62%,#0b0d0b);position:absolute;inset:0}.hero:after{content:"";z-index:-1;opacity:.11;background-image:linear-gradient(#f2f0e81c 1px,#0000 1px),linear-gradient(90deg,#f2f0e81c 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 80%);mask-image:linear-gradient(#000,#0000 80%)}.hero-topline{z-index:3;justify-content:space-between;align-items:center;gap:2rem;display:flex;position:relative}.hero-edition{color:#f2f0e875;font:500 .62rem/1 var(--mono);letter-spacing:.09em;text-transform:uppercase}.hero-stage{z-index:2;grid-template-columns:minmax(0,1.45fr) minmax(19rem,.55fr);align-items:end;gap:clamp(3rem,7vw,8rem);padding:clamp(4rem,8vw,8.5rem) 0 clamp(3.5rem,6vw,6rem);display:grid;position:relative}.hero-value{min-width:0}.hero-overline{color:var(--acid);font:500 .65rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 1.4rem}.hero .hero-title{max-width:970px;color:var(--paper);margin:0;font-size:clamp(3.8rem,7.2vw,8.2rem);line-height:.9}.hero .hero-title em{color:#0000;-webkit-text-stroke-color:var(--paper)}.hero-intro{color:#f2f0e8ad;max-width:48rem;margin:2rem 0 0;font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.72}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.button{border:1px solid #0000;border-radius:999px;min-height:46px}.button-quiet:hover{background:#f2f0e814}.recruiter-snapshot{color:var(--paper);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f2f0e811;border:1px solid #f2f0e829;border-radius:1.25rem;padding:clamp(1.4rem,2.5vw,2rem);box-shadow:0 28px 80px #0000003d}.snapshot-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.snapshot-heading .eyebrow{color:#f2f0e87a;margin:0}.snapshot-heading>span{color:var(--acid);font:500 .58rem/1.3 var(--mono);text-transform:uppercase;text-align:right}.recruiter-snapshot h2{letter-spacing:-.045em;margin:2.6rem 0 2rem;font-size:clamp(1.6rem,2.6vw,2.6rem);line-height:1.02}.recruiter-snapshot dl{margin:0}.recruiter-snapshot dl>div{border-top:1px solid #f2f0e821;grid-template-columns:5.5rem 1fr;gap:1rem;padding:.9rem 0;display:grid}.recruiter-snapshot dt{color:#f2f0e86b;font:500 .6rem/1.45 var(--mono);text-transform:uppercase}.recruiter-snapshot dd{margin:0;font-size:.76rem;line-height:1.5}.hero .hero-orbit{opacity:.17;z-index:-1;width:min(34vw,31rem);top:10%}.hero .orbit-ring{border-color:#f2f0e859}.proof-strip{z-index:2;position:relative;box-shadow:0 -1px #f2f0e81f}.proof-strip>div{transition:background .2s}.proof-strip>div:hover{background:#1a1d18}.proof-strip strong{letter-spacing:-.015em}.value-grid{background:var(--line);border:1px solid var(--line);grid-column:2/-1;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:1rem;display:grid}.value-grid article{background:var(--paper);flex-direction:column;min-height:13rem;padding:1.5rem;display:flex}.value-grid article>span{color:var(--blue);font:500 .62rem/1 var(--mono)}.value-grid h3{margin:auto 0 .75rem;font-size:1.1rem}.value-grid p{color:var(--muted);margin:0;font-size:.84rem;line-height:1.6}.section-context{grid-template-columns:1fr auto;align-items:end;gap:2rem;display:grid}.section-context>p{color:var(--muted);margin:0;line-height:1.7}.context-count{border-left:1px solid var(--line);min-width:6rem;padding-left:1.25rem}.context-count strong{letter-spacing:-.07em;font-size:2.6rem;line-height:1;display:block}.context-count span{color:var(--muted);font:500 .58rem/1.35 var(--mono);text-transform:uppercase;margin-top:.4rem;display:block}.timeline-item{margin:0 calc(var(--page) * -.25);padding-left:calc(var(--page) * .25);padding-right:calc(var(--page) * .25);position:relative}.timeline-item:after{content:"";z-index:-1;background:0 0;transition:background .2s;position:absolute;inset:0}.timeline-item:hover:after{background:#6d7cff0b}.timeline-content h3{text-wrap:balance}.project-card{border-radius:1.2rem;box-shadow:inset 0 1px #ffffff80}.projects-hero{min-height:auto;color:var(--paper);background:linear-gradient(140deg,#0b0d0b,#161916);border-bottom:0}.projects-hero .hero-topline{margin-bottom:clamp(4rem,8vw,8rem)}.projects-hero-stage{grid-template-columns:minmax(0,1.45fr) minmax(18rem,.55fr);align-items:end;gap:clamp(3rem,7vw,8rem);margin-bottom:clamp(4rem,8vw,7rem);display:grid}.projects-hero h1{color:var(--paper);margin:0;font-size:clamp(4rem,8.5vw,9rem)}.projects-hero h1 em{-webkit-text-stroke-color:var(--paper)}.project-hero-card{background:#f2f0e80e;border:1px solid #f2f0e829;border-radius:1.2rem;padding:1.7rem}.project-hero-card h2{letter-spacing:-.045em;margin:0;font-size:clamp(1.7rem,2.7vw,2.7rem);line-height:1.04}.project-hero-card>p:not(.eyebrow){color:#f2f0e899;margin:1.3rem 0 1.6rem;font-size:.9rem;line-height:1.65}.projects-intro p{color:#f2f0e8a3}.projects-intro span{color:var(--acid)}.project-browser{position:relative}.browser-toolbar{z-index:15;margin-left:calc(var(--page) * -.3);margin-right:calc(var(--page) * -.3);padding:1.2rem calc(var(--page) * .3);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#f2f0e8f0;position:sticky;top:68px}.filter-status{color:var(--muted);font:500 .6rem/1.4 var(--mono);margin:.6rem 0 0}.project-grid{margin-top:1rem}.project-card{background:#e5e1d499;transition:transform .25s,box-shadow .25s}.project-card:hover{transform:translateY(-5px);box-shadow:0 20px 55px #10120f21}.project-fit{font:500 .62rem/1.5 var(--mono);color:var(--ink)!important;margin:1.1rem 0 0!important}.project-fit span{color:var(--blue);text-transform:uppercase;margin-right:.55rem}.project-card-body h2{text-wrap:balance;margin-top:1.2rem}.project-card-footer a{align-items:center;min-height:38px;display:inline-flex}@media (width<=1100px){.hero-stage,.projects-hero-stage{grid-template-columns:1fr;gap:3rem}.recruiter-snapshot{max-width:none}.recruiter-snapshot dl{grid-template-columns:1fr 1fr;gap:0 2rem;display:grid}.project-hero-card{max-width:44rem}.value-grid{grid-column:1/-1}}@media (width<=760px){.hero{min-height:auto;padding-top:1.5rem}.hero-topline{align-items:flex-start}.hero-edition{display:none}.hero-stage{padding:4rem 0 3rem}.hero .hero-title{margin:0;font-size:clamp(3.45rem,15vw,6.5rem)}.hero-intro{margin-top:1.5rem}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{justify-content:space-between;width:100%}.recruiter-snapshot dl,.value-grid{grid-template-columns:1fr}.value-grid article{min-height:10rem}.section-context{grid-template-columns:1fr}.context-count{border-left:0;border-top:1px solid var(--line);padding-top:1rem;padding-left:0}.projects-hero .hero-topline{margin-bottom:4rem}.projects-hero h1{margin:0;font-size:clamp(3.9rem,18vw,7rem)}.projects-hero-stage{margin-bottom:4rem}.browser-toolbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;margin-left:0;margin-right:0;padding:0 0 1.5rem;position:static}.filter-group{width:calc(100vw - (var(--page) * 2));scrollbar-width:none;flex-wrap:nowrap;padding-bottom:.5rem;overflow-x:auto}.filter-group::-webkit-scrollbar{display:none}.filter-button{flex:none;min-height:44px}.project-fit{font-size:.58rem}}:root{--ink:#111315;--paper:#f7f7f4;--paper-deep:#eceeea;--acid:#2563eb;--blue:#2563eb;--line:#11131529;--muted:#5d646a}body,body[data-focus=cyber],body[data-focus=it],body[data-focus=ot],body[data-focus=swe]{--accent:var(--blue);background:var(--paper);background-image:none}.site-header{border-bottom:1px solid var(--line);min-height:68px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7f7f4f7}.site-header.is-scrolled{min-height:68px;box-shadow:none}.brand-mark{box-shadow:none;border-radius:4px}.view-switch{background:var(--paper-deep);border:0;border-radius:4px}.view-link{border-radius:3px}.button,.filter-button{border-radius:4px;transform:none!important}.button{padding:.85rem 1rem}.hero{color:var(--paper);background:var(--ink);border-bottom:1px solid #f7f7f424;padding-top:2rem}.hero:before,.hero:after,.hero-orbit{display:none}.hero-stage{grid-template-columns:minmax(0,1.5fr) minmax(20rem,.6fr);align-items:center;gap:clamp(2.5rem,6vw,6rem);padding:clamp(2rem,4vw,4rem) 0 clamp(2.7rem,4.5vw,4.5rem)}.hero-overline{color:#8fb2ff}.hero .hero-title{letter-spacing:-.055em;max-width:920px;font-size:clamp(2.75rem,5.4vw,5.8rem);line-height:.96}.hero .hero-title em{color:#8fb2ff;-webkit-text-stroke:0}.hero-intro{color:#f7f7f4b3;max-width:47rem}.button-acid{background:var(--blue);color:#fff}.button-acid:hover{background:#1d4ed8}.button-quiet{color:var(--paper);background:0 0;border-color:#f7f7f44d}.button-quiet:hover{border-color:var(--paper);background:0 0}.availability-dot{box-shadow:none;border:0;background:#43b96e!important}.recruiter-snapshot{color:var(--paper);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7f7f408;border:1px solid #f7f7f447;border-radius:4px;padding:1.5rem}.snapshot-heading{border-bottom:1px solid #f7f7f42e;padding-bottom:1rem}.snapshot-heading .eyebrow{color:#f7f7f499}.recruiter-snapshot h2{display:none}.recruiter-snapshot dl>div{border-color:#f7f7f426;padding:.85rem 0}.recruiter-snapshot dt{color:#f7f7f480;font-size:.65rem}.recruiter-snapshot dd{font-size:.88rem;line-height:1.55}.proof-strip{box-shadow:none}.proof-strip>div,.proof-strip>div:hover{background:var(--ink)}.proof-strip span{color:#8fb2ff}.value-grid{display:none}.resume-section,.capabilities-section,.education-section,.credentials-section,.contact-section,.project-browser,.project-note{padding-top:clamp(4rem,7vw,7rem);padding-bottom:clamp(4rem,7vw,7rem)}.section-heading{margin-bottom:clamp(3rem,6vw,5rem)}.section-heading h2,.education-title-block h2,.credentials-section h2{letter-spacing:-.05em;font-size:clamp(2.4rem,4.7vw,4.9rem);line-height:1}.timeline-item{margin:0;padding-left:0;padding-right:0}.timeline-item:after{display:none}.timeline-content h3{font-size:clamp(1.55rem,2.5vw,2.6rem)}.impact-list li{color:var(--ink)}.experience-notes{background:var(--line)}.project-card{box-shadow:none;border-radius:4px}.project-card,.project-card:hover{box-shadow:none;transform:none}.project-card:hover .project-card-visual img{transform:none}.project-card-visual{border-radius:2px}.projects-hero{color:var(--paper);background:var(--ink)}.projects-hero h1{font-size:clamp(3.5rem,7vw,7.2rem);line-height:.94}.projects-hero h1 em{color:#8fb2ff;-webkit-text-stroke:0}.project-hero-card{box-shadow:none;background:0 0;border-radius:4px}.project-hero-card .eyebrow{color:#8fb2ff}.project-hero-card h2{font-size:clamp(1.45rem,2.2vw,2.2rem)}.browser-toolbar{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7f7f4fa}.project-card{background:var(--paper)}.project-card-body{min-height:25rem}.project-fit span{color:var(--blue)}.project-note{color:var(--paper);background:var(--ink)}.project-note h2{letter-spacing:-.05em;font-size:clamp(2.4rem,4.7vw,4.9rem);line-height:1}.project-note .button{background:var(--blue);color:#fff}.js .reveal{animation:none}.scroll-reveal,.scroll-reveal.in-view{opacity:1;transition:none;transform:none}.education-mark{display:none}.education-list article{grid-template-columns:8rem 1fr}@media (width>1100px){.hero-stage{grid-template-columns:minmax(0,1.6fr) minmax(24rem,.85fr);gap:clamp(2rem,3vw,3.25rem)}.hero .hero-title{text-wrap:balance;max-width:12em;font-size:clamp(2.75rem,4.6vw,4.95rem);line-height:.94}.hero .recruiter-snapshot{padding:1.75rem 2rem}.hero .snapshot-heading .eyebrow{font-size:.75rem}.hero .recruiter-snapshot dl>div{gap:.85rem;padding:1rem 0}.hero .recruiter-snapshot dt{font-size:.75rem}.hero .recruiter-snapshot dd{font-size:.95rem;line-height:1.5}}@media (width<=1100px){.hero-stage,.projects-hero-stage{grid-template-columns:1fr}}@media (width<=760px){.hero .hero-title{font-size:clamp(2.55rem,11vw,4.4rem);line-height:.98}.hero-stage{padding-top:2.25rem;padding-bottom:2.7rem}.projects-hero h1{font-size:clamp(3.1rem,14vw,5.8rem)}}.projects-page{color:var(--paper);background:var(--ink);overflow-x:clip}.projects-page main{min-width:0}.projects-page .site-header{color:var(--ink)}.projects-index-header{padding:clamp(4rem, 7vw, 7rem) var(--page);border-bottom:1px solid #f7f7f429;grid-template-columns:minmax(10rem,.38fr) minmax(0,1fr);align-items:start;gap:clamp(2rem,6vw,7rem);display:grid}.projects-index-header .section-label{color:#8fb2ff}.projects-index-copy{min-width:0;max-width:76rem}.projects-index-copy h1{letter-spacing:-.06em;text-wrap:balance;margin:0;font-size:clamp(2.8rem,6vw,6.4rem);line-height:.96}.projects-index-copy h1 em{color:#8fb2ff;font-style:normal}.projects-index-copy>p{color:#f7f7f4a3;max-width:48rem;margin:2rem 0 0;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.7}.project-filter-panel{z-index:20;padding:1rem var(--page);background:#181b1ff7;border-bottom:1px solid #f7f7f429;justify-content:space-between;align-items:center;gap:1.5rem;display:flex;position:sticky;top:68px}.project-filter-heading{flex:none}.project-filter-heading .section-label{color:#f7f7f4b8}.project-filter-heading .filter-status{color:#f7f7f466;margin:.35rem 0 0}.projects-page .filter-group{justify-content:flex-end}.projects-page .filter-button{color:#f7f7f4b8;background:0 0;border-color:#f7f7f43d;border-radius:3px;min-height:44px;padding:.7rem .85rem}.projects-page .filter-button:hover{color:var(--paper);border-color:#f7f7f4a6;transform:none}.projects-page .filter-button.is-active{color:#fff;background:var(--blue);border-color:var(--blue)}.project-filter-clear{color:#8fb2ff;cursor:pointer;min-height:44px;font:500 .61rem/1 var(--mono);letter-spacing:.05em;background:0 0;border:0;border-bottom:1px solid;flex:none;padding:.7rem 0}.project-filter-clear:hover{color:var(--paper)}.featured-projects,.project-directory{padding:clamp(4rem, 7vw, 7rem) var(--page);border-bottom:1px solid #f7f7f429}.project-directory{background:#15181b}.project-section-heading{grid-template-columns:minmax(10rem,.38fr) minmax(0,1fr);align-items:start;gap:clamp(2rem,6vw,7rem);margin-bottom:clamp(2.5rem,5vw,4.5rem);display:grid}.project-section-heading .section-label{color:#8fb2ff}.project-section-heading h2{letter-spacing:-.05em;margin:0;font-size:clamp(2.2rem,4vw,4.2rem);line-height:1}.project-section-heading div>p{color:#f7f7f480;max-width:45rem;margin:1rem 0 0;font-size:.92rem;line-height:1.65}.featured-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.projects-page .project-card{min-width:0;color:var(--paper);box-shadow:none;background:#181b1f;border:1px solid #f7f7f433;border-radius:3px}.projects-page .project-card:hover{box-shadow:inset 0 3px var(--blue);transform:none}.projects-page .project-card-visual{aspect-ratio:16/9;border-bottom:1px solid #f7f7f429;border-radius:0}.projects-page .project-card-visual img,.projects-page .project-card:hover .project-card-visual img{object-fit:cover;width:100%;height:100%;transform:none}.projects-page .project-card-visual>span{color:#f7f7f4b3;-webkit-backdrop-filter:none;backdrop-filter:none;background:#111315e6;border:1px solid #f7f7f42e}.projects-page .project-card-body{min-height:0;padding:clamp(1.35rem,2.4vw,2rem)}.project-card-meta{color:#8fb2ff;font:500 .61rem/1.45 var(--mono);letter-spacing:.045em;text-transform:uppercase;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.project-card-meta strong{color:#f7f7f4b8;font:inherit;flex:none}.projects-page .project-card h3{letter-spacing:-.045em;text-wrap:balance;max-width:45rem;margin:clamp(2.5rem,5vw,4.5rem) 0 1.25rem;font-size:clamp(1.65rem,3vw,3rem);line-height:1.02}.projects-page .project-description{color:#f7f7f4d1;margin:0;font-size:.96rem;line-height:1.68}.projects-page .project-contribution{color:#f7f7f494;border-top:1px solid #f7f7f426;margin:1.4rem 0 0;padding-top:1.4rem;font-size:.88rem;line-height:1.68}.projects-page .project-contribution>span{color:#8fb2ff;font:500 .58rem/1 var(--mono);letter-spacing:.06em;margin-bottom:.65rem;display:block}.projects-page .project-card-footer{border-top-color:#f7f7f426;align-items:flex-end;margin-top:2rem}.projects-page .project-tags{margin-top:2rem}.projects-page .project-card-footer .project-tags{margin-top:0}.projects-page .project-tags span{color:#f7f7f4a6;border-color:#f7f7f433;border-radius:2px}.project-actions{font:500 .61rem/1.4 var(--mono);text-transform:uppercase;flex-wrap:wrap;justify-content:flex-end;gap:1rem;margin-top:auto;padding-top:1.5rem;display:flex}.project-card-footer .project-actions{padding-top:0}.project-actions a{color:#8fb2ff;text-underline-offset:.35rem;align-items:center;min-height:44px;display:inline-flex}.project-action-muted{color:#f7f7f461;align-items:center;min-height:44px;display:inline-flex}.project-directory-grid{background:#f7f7f429;border:1px solid #f7f7f429;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.projects-page .project-card-standard{border:0;border-radius:0}.projects-page .project-card-standard .project-card-body{flex-direction:column;min-height:32rem;display:flex}.projects-page .project-card-standard h3{margin-top:3rem;font-size:clamp(1.55rem,2.5vw,2.5rem)}.projects-page .project-card-standard .project-tags{margin-top:auto;padding-top:2rem}.projects-bottom-directory{padding:clamp(4rem, 7vw, 7rem) var(--page);color:var(--paper);background:var(--ink);border-bottom:1px solid #f7f7f429}.projects-bottom-directory>.section-label{color:#8fb2ff;text-align:center}.projects-bottom-directory>h2{letter-spacing:-.06em;text-align:center;margin:1.25rem 0 clamp(2.5rem,5vw,4.5rem);font-size:clamp(2.6rem,6vw,6.5rem);line-height:.95}.project-directory-list{border-top:1px solid #f7f7f438}.project-directory-list a{min-height:6.25rem;color:var(--paper);border-bottom:1px solid #f7f7f438;grid-template-columns:3rem minmax(12rem,.55fr) minmax(0,1fr) 2rem;align-items:center;gap:1rem;padding:1.1rem 0;text-decoration:none;transition:color .2s,background-color .2s,box-shadow .2s;display:grid}.project-directory-list a:hover,.project-directory-list a:focus-visible{color:#8fb2ff;box-shadow:inset 3px 0 var(--blue);background:#20242a}.project-directory-list a:focus-visible{outline-offset:-3px}.project-directory-list span{color:#8fb2ff;font:500 .62rem/1 var(--mono)}.project-directory-list strong{letter-spacing:-.035em;font-size:clamp(1.6rem,3vw,3rem);font-weight:600}.project-directory-list small{color:#f7f7f47a;min-width:0;font:500 .62rem/1.5 var(--mono);letter-spacing:.05em;overflow-wrap:anywhere}.project-directory-list b{font:500 1rem/1 var(--mono);justify-self:end}@media (width<=1050px){.project-filter-panel{flex-direction:column;align-items:flex-start}.projects-page .filter-group{justify-content:flex-start}.featured-project-grid{grid-template-columns:1fr}}@media (width<=760px){.projects-page .view-link{min-height:44px}.projects-index-header,.project-section-heading{grid-template-columns:1fr}.projects-index-copy h1{font-size:clamp(2.5rem,12vw,4.6rem)}.project-filter-panel{position:static}.projects-page .filter-group{flex-wrap:wrap;width:100%;padding-bottom:0;overflow:visible}.projects-page .filter-button{white-space:normal;flex:auto;line-height:1.35}.project-card-meta{flex-direction:column;align-items:flex-start;gap:.5rem}.projects-page .project-card h3{margin-top:2.5rem}.projects-page .project-card-footer{flex-direction:column;align-items:flex-start}.project-card-footer .project-actions,.project-actions{justify-content:flex-start;width:100%}.project-directory-grid{grid-template-columns:1fr}.projects-page .project-card-standard .project-card-body{min-height:0}.projects-page .project-card-standard .project-tags{margin-top:2rem}.project-directory-list a{grid-template-columns:2rem minmax(0,1fr) 1.5rem;gap:.8rem}.project-directory-list strong{grid-column:2;font-size:clamp(1.4rem,7vw,2rem)}.project-directory-list small{grid-column:2}.project-directory-list b{grid-area:1/3/span 2}}@media (prefers-reduced-motion:reduce){.projects-page .project-card,.projects-page .project-card:hover{transition:none;transform:none}}.contact-section{padding:clamp(2.25rem, 3.5vw, 3.5rem) var(--page);color:var(--ink);background:var(--paper);border-top:1px solid var(--line);grid-template-columns:minmax(9rem,.42fr) minmax(0,1fr) auto;align-items:center;gap:clamp(1.25rem,3vw,3rem);display:grid}.contact-section .section-label{margin:0}.contact-section h2{letter-spacing:-.045em;margin:0;font-size:clamp(1.7rem,2.7vw,2.8rem);line-height:1.05}.contact-meta{font:500 .68rem/1.4 var(--mono);text-transform:uppercase;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem 1.5rem;display:flex}.contact-meta a{text-underline-offset:.35rem;align-items:center;min-height:44px;display:inline-flex}.contact-meta span{color:var(--muted)}@media (width<=1050px){.contact-section{grid-template-columns:9rem minmax(0,1fr)}.contact-meta{grid-column:2;justify-content:flex-start}}@media (width<=760px){.contact-section{grid-template-columns:1fr;gap:.65rem}.contact-meta{grid-column:1}.contact-meta span{flex-basis:100%}}
