@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:optional;font-weight:400 700;src:url(/fonts/instrument-sans-latin-wght-normal.woff2)format("woff2-variations")}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2)format("woff2-variations")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f4f7f8;--surface:#fff;--text:#172027;--muted:#5e6a73;--cobalt:#2457d6;--teal:#087c72;--on-accent:#fff;--interest-software:#a94b86;--interest-network:#315dc9;--interest-cloud:#087c72;--interest-security:#a45b18;--line:#d8e0e3;--line-strong:#b9c4c9;--control-border:#7a878f;--danger:#b42318;--font-display:"Instrument Sans Variable", sans-serif;--font-body:"IBM Plex Sans Variable", sans-serif;--font-mono:"IBM Plex Mono", monospace;--page-padding:clamp(1.25rem, 4vw, 4rem);--section-space:clamp(5rem, 10vw, 9rem);--radius:8px;--header-height:4.25rem}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0e1113;--surface:#171c20;--text:#f2f5f4;--muted:#a6b0b5;--cobalt:#82a3ff;--teal:#54d0c1;--on-accent:#0e1113;--interest-software:#df85bc;--interest-network:#82a3ff;--interest-cloud:#54d0c1;--interest-security:#e9a260;--line:#2c3439;--line-strong:#465159;--control-border:#73838d;--danger:#ff8a80}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-height) + 1rem);scroll-behavior:smooth;background:var(--background)}body{background:var(--background);min-width:320px;color:var(--text);font-family:var(--font-body);text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.6;transition:background-color .18s,color .18s}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,strong{font-family:var(--font-display)}::selection{background:var(--cobalt);color:var(--background)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.loading-spinner{align-items:center;gap:.75rem;font-size:.95rem;font-weight:560;display:inline-flex}.loading-spinner svg{color:var(--teal);flex:none}.site-shell{background:var(--background);min-height:100vh}.section-shell{width:min(100%,88rem);padding-inline:var(--page-padding);margin-inline:auto}.section-rule{border-top:1px solid var(--line)}.skip-link{z-index:100;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--text);color:var(--background);padding:.65rem .9rem;font-weight:600;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}:where(a,button,input,textarea):focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}#main-content:focus,section[tabindex="-1"]:focus{outline:0}.scroll-top-button{right:max(1.25rem, env(safe-area-inset-right));bottom:max(1.25rem, env(safe-area-inset-bottom));z-index:45;border:1px solid var(--cobalt);background:var(--cobalt);width:3.25rem;height:3.25rem;color:var(--background);cursor:pointer;border-radius:50%;place-items:center;transition:background-color .18s,color .18s;display:grid;position:fixed;box-shadow:0 8px 24px #00000029}.scroll-top-button:hover{background:var(--background);color:var(--cobalt)}.site-header{z-index:50;height:var(--header-height);border-bottom:1px solid var(--line);background:var(--background);position:sticky;top:0}.nav-shell{width:min(100%,88rem);height:100%;padding-inline:var(--page-padding);justify-content:space-between;align-items:center;margin-inline:auto;display:flex}.brand-mark{color:var(--text);font-family:var(--font-display);letter-spacing:-.04em;align-items:baseline;gap:.12rem;font-size:1.25rem;font-weight:760;display:inline-flex}.brand-mark span{color:var(--teal)}.desktop-nav{align-items:center;gap:.25rem;height:100%;display:flex}.nav-link,.icon-button,.mobile-menu-button,.mobile-menu-close,.nav-contact{border-radius:var(--radius);min-height:2.75rem;color:var(--muted);cursor:pointer;background:0 0;border:0}.nav-link{align-items:center;padding-inline:.8rem;font-size:.92rem;font-weight:560;display:inline-flex}.nav-link:hover,.icon-button:hover,.mobile-menu-button:hover,.mobile-menu-close:hover{background:var(--surface);color:var(--text)}.icon-button,.mobile-menu-button,.mobile-menu-close{place-items:center;width:2.75rem;display:grid}.icon-button{border-left:1px solid var(--line);border-radius:0;margin-left:.4rem}.nav-contact{background:var(--text);color:var(--background);margin-left:.5rem;padding-inline:1rem;font-weight:620}.nav-contact:hover{background:var(--cobalt);color:var(--on-accent)}.mobile-menu-button,.mobile-nav{display:none}.mobile-nav{background:var(--background);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--text);border:0;margin:0;padding:0;position:fixed;inset:0;overflow-y:auto}.mobile-nav[open]{display:block}.mobile-nav::backdrop{background:#05090cc7}.mobile-nav-header{min-height:var(--header-height);border-bottom:1px solid var(--line);padding:.625rem var(--page-padding);justify-content:space-between;align-items:center;gap:1rem;display:flex}.mobile-nav-title{font-size:1.25rem;font-weight:650}.section-kicker,.project-meta,.hero-signature,.experience-period,.skills-total,.skill-title>p,.case-image figcaption,.next-project span{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;font-size:.8rem;font-weight:500;line-height:1.5}.section-kicker{color:var(--teal)}.section-heading h2,.contact-copy h2,.case-block h2,.case-tech h2{letter-spacing:-.055em;max-width:14ch;margin-top:.85rem;font-size:clamp(2.35rem,5vw,4.8rem);font-weight:670;line-height:.98}.hero{padding-block:clamp(2.25rem,4vw,3.5rem)}.hero-copy{max-width:65rem}.hero-signature{color:var(--muted);margin-bottom:1.25rem}.hero h1{letter-spacing:-.055em;text-wrap:balance;overflow-wrap:normal;max-width:18ch;margin-top:.75rem;font-size:clamp(2.5rem,5.8vw,5.75rem);font-weight:670;line-height:1.04}.hero-description{max-width:45rem;color:var(--muted);margin-top:1.5rem;font-size:clamp(1.08rem,1.5vw,1.25rem);line-height:1.52}.hero-availability{max-width:45rem;color:var(--muted);margin-top:1rem;font-size:.9rem}.hero+.projects-section{padding-top:clamp(2.5rem,4vw,4rem)}.hero+.projects-section .projects-heading{margin-bottom:clamp(2rem,4vw,3rem)}.hero+.projects-section .projects-heading h2{max-width:none;font-size:clamp(2rem,3.8vw,3.75rem);line-height:1.08}.hero+.projects-section .featured-project .project-entry{align-items:start}.hero-actions,.case-actions{flex-wrap:wrap;gap:.75rem;margin-top:2.25rem;display:flex}.button{border-radius:var(--radius);min-height:3rem;font-family:var(--font-body);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.6rem;padding:.72rem 1.05rem;font-weight:620;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.button-primary{border-color:var(--cobalt);background:var(--cobalt);color:var(--on-accent)}.button-primary:hover{border-color:var(--teal);background:var(--teal)}.button-secondary{border-color:var(--line-strong);color:var(--text);background:0 0}.button-secondary:hover{border-color:var(--cobalt);color:var(--cobalt)}.interests-section{padding-top:clamp(5rem,9vw,8rem);padding-bottom:clamp(3.5rem,7vw,6rem)}.interests-heading{display:block}.interests-heading h2{max-width:15ch}.interests-heading>p{max-width:46rem;color:var(--muted);margin-top:1.4rem;font-size:1.05rem;line-height:1.65}.interests-atlas{border:1px solid var(--line-strong);border-radius:var(--radius);background:#11171b;margin-top:clamp(2.5rem,5vw,4.5rem);position:relative;overflow:hidden}.interests-atlas:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff14}.interests-atlas img{aspect-ratio:3;object-fit:cover;object-position:center 52%;width:100%;height:auto}.study-path{border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.study-path>li{--interest-accent:var(--interest-software);border-top:3px solid var(--interest-accent);grid-template-columns:minmax(10rem,.7fr) minmax(0,1.3fr);gap:clamp(1.25rem,3vw,3rem);min-width:0;padding:clamp(1.5rem,3vw,2.25rem);display:grid}.study-path>li:nth-child(2){--interest-accent:var(--interest-network)}.study-path>li:nth-child(3){--interest-accent:var(--interest-cloud)}.study-path>li:nth-child(4){--interest-accent:var(--interest-security)}.study-path>li:nth-child(2n){border-left:1px solid var(--line)}.study-path-title>div{justify-content:space-between;align-items:center;gap:1rem;display:flex}.study-action{color:var(--interest-accent);font-family:var(--font-mono);text-transform:uppercase;font-size:.8rem;font-weight:600}.study-path svg{color:var(--interest-accent);flex:none}.study-path h3{letter-spacing:0;margin-top:1rem;font-size:1.35rem;font-weight:650;line-height:1.15}.study-path-copy>p{color:var(--muted);line-height:1.6}.study-path-copy ul{color:var(--text);font-family:var(--font-mono);text-transform:uppercase;flex-wrap:wrap;margin-top:1.1rem;font-size:.8rem;display:flex}.study-path-copy li:not(:last-child):after{color:var(--line-strong);content:"/";margin-inline:.45rem}.projects-section,.profile-section,.skills-section,.contact-section{padding-block:var(--section-space)}.projects-heading{margin-bottom:clamp(3.5rem,7vw,6rem);display:block}.projects-heading h2{max-width:15ch}.projects-heading>p{max-width:40rem;color:var(--muted);margin-top:1.4rem;font-size:1.05rem;line-height:1.65}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3.5rem,7vw,7rem) clamp(1.5rem,4vw,4.5rem);display:grid}.project-entry{align-self:start}.projects-grid .project-entry:nth-child(2n){margin-top:clamp(1rem,5vw,5rem)}.project-media{isolation:isolate;position:relative}.project-image{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:block;position:relative;overflow:hidden}.project-image img{aspect-ratio:16/10;object-fit:cover;width:100%;transform-origin:var(--project-focus,50% 50%);transition:transform .62s cubic-bezier(.2,.7,.2,1),filter .62s}.project-image:after{background:radial-gradient(circle at var(--project-focus,50% 50%), transparent 32%, #080e1247 112%);content:"";opacity:0;pointer-events:none;transition:opacity .62s;position:absolute;inset:0}.project-media:hover .project-image img,.project-media:focus-within .project-image img{filter:saturate(1.06)contrast(1.025);transform:scale(1.055)}.project-media:hover .project-image:after,.project-media:focus-within .project-image:after{opacity:1}.project-demo-trigger{z-index:2;border-radius:var(--radius);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e1113e0;border:1px solid #ffffff6b;align-items:center;gap:.5rem;min-height:2.65rem;padding:.55rem .75rem;font-size:.78rem;font-weight:620;transition:background-color .16s,border-color .16s,transform .16s;display:inline-flex;position:absolute;bottom:.8rem;right:.8rem}.project-demo-trigger:hover{border-color:var(--teal);background:var(--teal);color:var(--on-accent);transform:translateY(-2px)}.featured-project .project-entry,.catalog-original .project-entry{grid-template-columns:minmax(0,1.3fr) minmax(18rem,.8fr);align-items:center;gap:clamp(2rem,5vw,6rem);display:grid}.featured-project .project-copy,.catalog-original .project-copy{padding-top:0}.all-projects-link{border:1px solid var(--cobalt);border-radius:var(--radius);background:var(--cobalt);min-height:3.5rem;color:var(--background);align-items:center;gap:1rem;margin-top:2rem;padding:.85rem 1.15rem;font-size:1rem;font-weight:650;transition:background-color .18s,color .18s;display:inline-flex}.all-projects-link:hover{color:var(--cobalt);background:0 0}.project-provenance,.case-provenance{color:var(--teal);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;margin-top:.85rem;font-size:.8rem;font-weight:600}.project-copy .project-provenance{margin-top:1.15rem}.catalog-header{padding-block:clamp(4rem,8vw,8rem)}.catalog-header .section-kicker{margin-top:clamp(3rem,6vw,6rem)}.catalog-header h1{letter-spacing:-.075em;margin-top:.6rem;font-size:clamp(4.5rem,12vw,11rem);line-height:.9}.catalog-header>p:last-child{max-width:46rem;color:var(--muted);margin-top:2rem;font-size:clamp(1.1rem,2vw,1.4rem)}.catalog-section{padding-block:var(--section-space)}.catalog-group-heading{margin-bottom:clamp(2.5rem,6vw,5rem)}.catalog-group-heading h2{margin-top:.5rem;font-size:clamp(2.5rem,5vw,5rem)}.catalog-group-heading>p:last-child:not(.section-kicker){max-width:45rem;color:var(--muted);margin-top:1rem}.catalog-section:last-child{background:var(--surface)}.project-copy{padding-top:1.4rem}.project-meta{color:var(--muted)}.project-meta span{color:var(--teal)}.project-copy h3{letter-spacing:-.045em;margin-top:.65rem;font-size:clamp(1.8rem,3.5vw,3.2rem);font-weight:650;line-height:1}.project-copy h3 a{align-items:center;gap:.4rem;display:inline-flex}.project-copy h3 a:hover,.project-links a:hover{color:var(--cobalt)}.project-description{max-width:42rem;color:var(--muted);margin-top:1rem;line-height:1.62}.tech-list,.skill-tags,.case-tech-list{flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;display:flex}.tech-list li,.skill-tags li,.case-tech-list li{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);border-radius:4px;padding:.3rem .55rem;font-size:.8rem}.project-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:1.2rem;margin-top:1.4rem;padding-top:1rem;display:flex}.project-links a{align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:inline-flex}.project-demo-dialog{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);width:min(72rem,100% - 2rem);max-width:none;max-height:calc(100dvh - 2rem);color:var(--text);padding:0;overflow:auto;box-shadow:0 1.5rem 5rem #00000059}.project-demo-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#05090cc7}.project-demo-panel{background:var(--surface)}.project-demo-header,.project-demo-footer{justify-content:space-between;align-items:flex-start;gap:2rem;padding:clamp(1rem,2.5vw,1.75rem);display:flex}.project-demo-header{border-bottom:1px solid var(--line)}.project-demo-header h2{margin-top:.3rem;font-size:clamp(1.65rem,3vw,2.5rem);font-weight:650;line-height:1.05}.project-demo-close{border:1px solid var(--line);border-radius:var(--radius);width:2.75rem;height:2.75rem;color:var(--muted);cursor:pointer;background:0 0;flex:none;place-items:center;display:grid}.project-demo-close:hover{border-color:var(--cobalt);color:var(--cobalt)}.project-demo-stage{background:#080c0f;place-items:center;min-height:min(62.5vw,44rem);display:grid;position:relative}.project-demo-loading{color:#f2f5f4;pointer-events:none;background:#080c0fa6;place-items:center;padding:1.5rem;display:grid;position:absolute;inset:0}.project-demo-loading .loading-spinner svg{color:#82a3ff}.project-demo-stage video{aspect-ratio:16/10;object-fit:contain;background:#080c0f;width:100%;max-height:min(62.5vw,44rem);display:block}.project-demo-error{color:#f2f5f4;text-align:center;justify-items:center;gap:1rem;max-width:28rem;padding:3rem 1.5rem;display:grid}.project-demo-error a{color:#82a3ff;align-items:center;gap:.45rem;font-weight:620;display:inline-flex}.project-demo-footer{border-top:1px solid var(--line);color:var(--muted)}.project-demo-footer p{max-width:48rem}.project-demo-footer span{color:var(--teal);font-family:var(--font-mono);text-transform:uppercase;flex:none;font-size:.68rem}.profile-grid,.skills-grid,.contact-grid{grid-template-columns:minmax(14rem,.65fr) minmax(0,1.35fr);gap:clamp(3rem,8vw,9rem);display:grid}.profile-grid .section-heading h2{font-size:clamp(2.8rem,5.5vw,5.3rem)}.profile-bio{max-width:52rem;color:var(--muted);gap:1.35rem;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.55;display:grid}.experience-list{border-top:1px solid var(--line-strong);margin-top:clamp(3rem,6vw,5.5rem)}.experience-list article{border-bottom:1px solid var(--line);grid-template-columns:minmax(8rem,.42fr) 1fr;gap:2rem;padding-block:1.6rem;display:grid}.experience-period{color:var(--teal)}.experience-list h3{letter-spacing:-.025em;font-size:1.35rem;font-weight:640}.experience-list h3+p{color:var(--text);margin-top:.15rem;font-weight:560}.experience-list article>div>p:last-of-type{color:var(--muted);margin-top:.55rem}.skills-heading{align-self:start}.skills-heading>p:not(.section-kicker,.skills-total){max-width:25rem;color:var(--muted);margin-top:1.5rem}.skills-total{color:var(--muted);margin-top:2rem}.skill-index{border-top:1px solid var(--line-strong)}.skill-row{border-bottom:1px solid var(--line);grid-template-columns:2.5rem minmax(8rem,.45fr) minmax(0,1fr);gap:1.2rem;padding-block:2rem;display:grid}.skill-marker{color:var(--cobalt);font-family:var(--font-mono);font-size:.7rem}.skill-title>p{color:var(--teal)}.skill-title h3{margin-top:.25rem;font-size:1.3rem;font-weight:640}.skill-description{color:var(--muted)}.contact-section{background:var(--surface)}.contact-copy h2{max-width:12ch}.contact-copy>p:not(.section-kicker){max-width:34rem;color:var(--muted);margin-top:1.75rem;font-size:1.1rem}.contact-links{border-top:1px solid var(--line-strong);margin-top:3rem}.contact-links a{border-bottom:1px solid var(--line);grid-template-columns:1.6rem minmax(0,1fr) 1.2rem;align-items:center;gap:.8rem;padding-block:1rem;display:grid}.contact-links a:hover{color:var(--cobalt)}.contact-links span{overflow-wrap:anywhere;min-width:0}.contact-links small{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;font-size:.8rem;display:block}.contact-form{border:1px solid var(--line);border-radius:var(--radius);background:var(--background);padding:clamp(1.25rem,4vw,2.5rem)}.honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form-field+.form-field{margin-top:1.1rem}.form-label{font-family:var(--font-mono);text-transform:uppercase;margin-bottom:.4rem;font-size:.8rem;font-weight:500;display:block}.form-control{border:1px solid var(--control-border);border-radius:var(--radius);background:var(--surface);width:100%;min-height:3rem;color:var(--text);padding:.72rem .85rem}textarea.form-control{resize:vertical;min-height:10rem}.form-control::placeholder{color:var(--muted);opacity:1}.form-control:focus{border-color:var(--cobalt)}.form-control:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}.form-control[aria-invalid=true]{border-color:var(--danger)}.form-error,.form-help,.form-privacy,.form-status{margin-top:.4rem;font-size:.78rem}.form-error{color:var(--danger)}.form-help,.form-privacy{color:var(--muted)}.form-status{border-left:3px solid var(--teal);background:var(--surface);color:var(--text);padding:.65rem .8rem}.form-status-error{border-left-color:var(--danger);color:var(--danger)}.contact-placeholder{border-top:1px solid var(--line);background:var(--surface);min-height:38rem;color:var(--muted);place-items:center;display:grid}.route-loading{min-height:calc(100vh - var(--header-height));color:var(--muted);place-items:center;display:grid}.not-found-page{min-height:calc(100svh - var(--header-height));align-items:center;padding-block:clamp(4rem,8vw,8rem);display:grid}.not-found-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,7vw,7rem);display:grid}.not-found-code{color:var(--teal);font-family:var(--font-display);letter-spacing:-.09em;font-size:clamp(7rem,22vw,22rem);font-weight:670;line-height:.85}.not-found-copy{border-top:1px solid var(--line-strong);max-width:36rem;padding-top:1.5rem}.not-found-copy h1{letter-spacing:-.055em;max-width:12ch;margin-top:1rem;font-size:clamp(2.35rem,4.5vw,4.5rem);font-weight:670;line-height:1.05}.not-found-description{color:var(--muted);margin-top:1.5rem;font-size:1.1rem}.form-submit{width:100%;margin-top:1.25rem}.form-submit>span{align-items:center;gap:.55rem;display:inline-flex}.form-submit:disabled{cursor:not-allowed;opacity:.6}.site-footer{border-top:1px solid var(--line);background:var(--surface)}.footer-inner{min-height:6.5rem;color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;grid-template-columns:1fr auto auto;align-items:center;gap:2rem;font-size:.68rem;display:grid}.case-header{padding-top:clamp(3.5rem,8vw,7rem);padding-bottom:clamp(4rem,7vw,6rem)}.back-link{color:var(--muted);align-items:center;gap:.45rem;font-size:.85rem;font-weight:600;display:inline-flex}.back-link:hover{color:var(--cobalt)}.case-title-grid{grid-template-columns:minmax(0,1fr) minmax(18rem,.75fr);align-items:end;gap:clamp(3rem,8vw,9rem);margin-top:clamp(4rem,8vw,8rem);display:grid}.case-title-grid h1{letter-spacing:-.075em;margin-top:.8rem;font-size:clamp(4rem,10vw,9.5rem);font-weight:670;line-height:1}.case-title-grid .case-provenance{margin-top:1.25rem}.case-intro>p{color:var(--muted);font-size:clamp(1.1rem,1.8vw,1.3rem)}.case-image{padding-bottom:clamp(4rem,8vw,7rem)}.case-image img{border:1px solid var(--line-strong);border-radius:var(--radius);aspect-ratio:16/10;object-fit:cover;width:100%}.case-image figcaption{color:var(--muted);margin-top:.7rem}.case-block,.case-tech{padding-block:var(--section-space)}.case-two-column{grid-template-columns:minmax(10rem,.4fr) minmax(0,1fr);gap:clamp(2rem,7vw,8rem);display:grid}.case-two-column h2,.case-section-heading h2,.case-evidence-grid h2{font-size:clamp(2.2rem,4.5vw,4rem)}.case-two-column div>p{max-width:50rem;color:var(--muted);margin-top:2rem;font-size:1.15rem}.case-decisions{background:var(--surface)}.decision-list{border-top:1px solid var(--line-strong);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4rem;display:grid}.decision-list li{border-bottom:1px solid var(--line);grid-template-columns:2rem 1fr;gap:1rem;padding:2rem;display:grid}.decision-list li:nth-child(odd){border-right:1px solid var(--line);padding-left:0}.decision-list span{color:var(--cobalt);font-family:var(--font-mono);font-size:.72rem}.decision-list p{color:var(--muted)}.case-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3rem,8vw,9rem);display:grid}.feature-list{gap:.85rem;margin-top:2.5rem;display:grid}.feature-list li{border-bottom:1px solid var(--line);color:var(--muted);align-items:flex-start;gap:.8rem;padding-bottom:.85rem;display:flex}.feature-list svg{color:var(--teal);flex:none;margin-top:.2rem}.evidence-copy{color:var(--muted);margin-top:2.5rem;font-size:1.08rem}.case-tech-list{margin-top:2rem}.case-tech-list li{color:var(--text);padding:.55rem .8rem}.next-project a{grid-template-columns:10rem minmax(0,1fr) auto;align-items:center;gap:2rem;min-height:11rem;display:grid}.next-project span{color:var(--muted)}.next-project strong{letter-spacing:-.05em;font-size:clamp(2.2rem,5vw,4.5rem);font-weight:660}.next-project a:hover strong,.next-project a:hover svg{color:var(--cobalt)}@media (width<=900px){.profile-grid,.skills-grid,.contact-grid,.case-title-grid{grid-template-columns:1fr}.case-title-grid{align-items:start}.profile-grid,.skills-grid,.contact-grid,.case-title-grid{gap:3.5rem}.study-path{grid-template-columns:1fr}.study-path>li:nth-child(2n){border-left:0}}@media (width<=720px){.not-found-grid{grid-template-columns:1fr}:root{--header-height:4rem}.desktop-nav{display:none}.mobile-menu-button{display:grid}.mobile-nav-inner{min-height:calc(100% - var(--header-height));padding:1.5rem var(--page-padding) 2.5rem;flex-direction:column;display:flex}.mobile-nav-link,.mobile-theme{border:0;border-bottom:1px solid var(--line);width:100%;min-height:4.3rem;color:var(--text);text-align:left;cursor:pointer;background:0 0;align-items:center;display:flex}.mobile-nav-link{font-family:var(--font-display);letter-spacing:-.04em;font-size:1.75rem;font-weight:620}.mobile-theme{border-top:1px solid var(--line);color:var(--muted);border-bottom:0;gap:.65rem;margin-top:auto;font-size:.9rem}.hero-actions .button{flex:10rem}.projects-grid,.decision-list,.case-evidence-grid{grid-template-columns:1fr}.project-entry,.projects-grid .project-entry:nth-child(2n){margin-top:0}.featured-project .project-entry,.catalog-original .project-entry{grid-template-columns:1fr}.experience-list article{grid-template-columns:1fr;gap:.75rem}.skill-row{grid-template-columns:2rem 1fr}.skill-row>div:last-child{grid-column:2}.footer-inner{grid-template-columns:1fr;gap:.5rem;padding-block:2rem}.case-two-column{grid-template-columns:1fr;gap:1.5rem}.decision-list li,.decision-list li:nth-child(odd){border-right:0;padding:1.5rem 0}.case-evidence-grid{gap:4rem}.next-project a{grid-template-columns:1fr auto;gap:.75rem;padding-block:2.5rem}.next-project span{grid-column:1/-1}}@media (width<=520px){.catalog-header h1{font-size:clamp(3.5rem,13vw,4.5rem)}.case-title-grid h1{overflow-wrap:anywhere;font-size:clamp(2.8rem,12vw,3.8rem)}.interests-atlas img{aspect-ratio:16/9}.study-path>li{grid-template-columns:1fr;gap:1rem}.project-demo-dialog{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem)}.project-demo-header,.project-demo-footer{gap:1rem}.project-demo-footer{display:grid}.project-demo-stage{min-height:62.5vw}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.project-media:hover .project-image img,.project-media:focus-within .project-image img,.project-demo-trigger:hover{filter:none;transform:none}.project-image:after{opacity:0}}.nav-contact{align-items:center;display:inline-flex}.footer-inner .brand-mark{justify-self:start;align-items:center;min-height:2.75rem}.nav-link[aria-current],.mobile-nav-link[aria-current],.nav-contact[aria-current]{text-underline-offset:.4em;text-decoration:underline;text-decoration-thickness:2px}.button:active,.icon-button:active,.mobile-menu-close:active,.mobile-menu-button:active{filter:brightness(.92)}.nav-link:active,.mobile-nav-link:active{background:var(--surface);color:var(--cobalt)}.evidence-link{min-height:2.75rem;color:var(--cobalt);text-underline-offset:.2em;align-items:center;text-decoration:underline;display:inline-flex}.skill-note{max-width:48rem;color:var(--muted);font-size:.9rem}.case-contact{background:var(--surface);padding-block:clamp(3rem,6vw,6rem)}.case-contact h2{letter-spacing:-.04em;margin-top:.75rem;font-size:clamp(2rem,4vw,3.5rem);line-height:1.1}.case-contact p:not(.section-kicker){color:var(--muted);margin-top:1rem}.architecture{margin-top:2rem}.architecture-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-block:1.5rem;display:grid}.architecture-node{border:1px solid var(--line-strong);border-top:3px solid var(--cobalt);border-radius:var(--radius);background:var(--surface);padding:1.25rem}.architecture-node h3{font-size:1.2rem}.architecture-node p{color:var(--muted);margin-top:.6rem}.architecture figcaption,.demo-guide{color:var(--muted);font-size:.95rem}.project-image picture{display:block}.project-image img,.case-image img{height:auto}.case-image img{aspect-ratio:auto;object-fit:contain}.project-links a,.back-link{min-height:2.75rem}.case-title-grid h1,.catalog-header h1{overflow-wrap:anywhere}@media (width<=900px){.featured-project .project-entry,.catalog-original .project-entry,.architecture-grid{grid-template-columns:1fr}}.selected-work-list{gap:clamp(2.5rem,5vw,4rem);display:grid}.laboratory-card{border:1px solid var(--line-strong);border-left:3px solid var(--teal);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,5rem);padding:clamp(1.25rem,3vw,2.5rem);display:grid}.laboratory-heading .project-meta{align-items:flex-start;gap:.6rem;display:flex}.laboratory-heading .project-meta svg{color:var(--teal);flex:none;margin-top:.1rem}.laboratory-heading h3{letter-spacing:-.045em;margin-top:1.25rem;font-size:clamp(1.8rem,3.5vw,3.2rem);font-weight:650;line-height:1.05}.laboratory-heading h3 a:hover{color:var(--cobalt)}.laboratory-status{border:1px solid var(--teal);color:var(--teal);border-radius:4px;margin-top:1.25rem;padding:.3rem .65rem;font-size:.85rem;font-weight:600;display:inline-block}.laboratory-copy .project-description{margin-top:.75rem}@media (width<=900px){.laboratory-card{grid-template-columns:1fr;gap:1.5rem}}
