@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_8685dfe-module__0-y4Aq__className{font-family:Newsreader,Newsreader Fallback;font-style:normal}.newsreader_8685dfe-module__0-y4Aq__variable{--font-display:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_eaa4bee4-module__dFVSAq__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_eaa4bee4-module__dFVSAq__variable{--font-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8fafc;--text:#0f172a;--muted:#64748b;--lead:#475569;--accent:#2563eb;--accent-soft:#eff6ff;--line:#e2e8f0;--card:#fff;--chip-text:#334155;--header-bg:#f8fafceb;--solid:#0f172a;--solid-fg:#fff;--solid-hover:#1e293b;--shadow:0 1px 2px #0f172a0a;--radius:14px;--max:1040px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1220;--text:#f8fafc;--muted:#94a3b8;--lead:#cbd5e1;--accent:#60a5fa;--accent-soft:#1e3a5f;--line:#1e293b;--card:#111827;--chip-text:#cbd5e1;--header-bg:#0b1220eb;--solid:#f8fafc;--solid-fg:#0b1220;--solid-hover:#e2e8f0;--shadow:0 1px 2px #00000040}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{max-width:100vw;overflow-x:hidden}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans), "Segoe UI", sans-serif;-webkit-font-smoothing:antialiased;flex-direction:column;font-size:1.02rem;line-height:1.65;display:flex}main{flex:1}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,.brand,.footer-name{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;color:var(--text);font-weight:500;line-height:1.18}h3{letter-spacing:-.02em;color:var(--text);font-weight:600;line-height:1.25}h1{font-size:clamp(2rem,4.4vw,3.15rem)}h2{font-size:clamp(1.4rem,2.4vw,1.85rem)}h3{font-size:1.15rem}p{color:var(--muted)}.skip-link{background:var(--text);color:var(--bg);z-index:20;padding:.7rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.wrap,.header-inner,.site-footer{width:min(var(--max), calc(100% - 2.4rem));margin-inline:auto}.site-header{z-index:10;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1rem;min-height:68px;display:flex}.brand{align-items:center;gap:.65rem;font-size:1.02rem;font-weight:650;display:inline-flex}.brand-photo,.profile-photo{object-fit:cover;border-radius:50%}.brand-photo{border:1px solid var(--line);width:36px;height:36px}.profile-photo{aspect-ratio:1;border:1px solid var(--line);border-radius:18px;width:100%;height:auto}.about-photo{margin-bottom:1.1rem}.hero-aside{align-content:start;gap:1.1rem;display:grid}.nav-desktop{color:var(--muted);align-items:center;gap:1.15rem;font-size:.88rem;display:flex}.nav-desktop a:not(.btn):hover,.text-link:hover,.site-footer a:hover,.case-study h3 a:hover{color:var(--accent)}.header-tools{align-items:center;gap:.55rem;display:flex}.nav-mobile{display:none}.theme-toggle{border:1px solid var(--line);background:var(--card);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{border-color:var(--text)}.btn,.menu-toggle{border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.92rem;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.btn-small{padding:.4rem .85rem}.btn-solid{background:var(--solid);color:var(--solid-fg);border-color:var(--solid)}.btn:hover,.btn-solid:hover{border-color:var(--solid);background:var(--solid);color:var(--solid-fg)}.btn-solid:hover{background:var(--solid-hover)}.hero{padding:6.2rem 0 4.5rem}.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(240px,.75fr);align-items:center;gap:3.5rem;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--accent);margin-bottom:1.1rem;font-size:.7rem;font-weight:650}.hero h1{letter-spacing:-.04em;max-width:16ch;font-size:clamp(2.05rem,4.8vw,3.35rem);font-weight:500;line-height:1.12}.hero .lead{max-width:34rem;color:var(--lead);margin:1.35rem 0;font-size:1.05rem;line-height:1.7}.tech-line{color:var(--muted);margin-bottom:1.75rem;font-size:.92rem}.hero-actions,.form-actions,.cta-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.text-link{color:var(--accent);font-size:.95rem;font-weight:600}.metrics{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;grid-template-columns:repeat(4,1fr);gap:1.5rem;padding:2.75rem 0;display:grid}.metrics div strong{letter-spacing:-.04em;color:var(--text);font-size:2rem;font-weight:600;display:block}.metrics div span{color:var(--muted);font-size:.88rem}.section{padding:5.5rem 0 0;scroll-margin-top:5rem}.section:last-child{padding-bottom:5.5rem}.section h2{max-width:22ch;margin-bottom:1.4rem}.about-copy{gap:1rem;max-width:40rem;margin-bottom:1.2rem;display:grid}.about-copy p{color:var(--lead)}.case-list{display:grid}.case-study{border-top:1px solid var(--line);grid-template-columns:3.2rem minmax(0,1fr) auto;align-items:start;gap:1.4rem;padding:2.6rem 0;display:grid}.case-study:last-child{border-bottom:1px solid var(--line)}.case-num,.capability-num{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.35rem;font-size:.92rem}.case-study h2,.case-study h3{font-family:var(--font-display), Georgia, serif;margin-bottom:.55rem;font-size:1.45rem;font-weight:500}.case-study p{max-width:40rem}.case-cta{white-space:nowrap;padding-top:.45rem}.architecture{border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:1.4rem 1.35rem 1.2rem}.architecture>p{text-transform:uppercase;letter-spacing:.14em;margin-bottom:1rem;font-size:.68rem;font-weight:650}.flow{gap:.55rem;list-style:none;display:grid}.flow-step{border-bottom:1px solid var(--line);color:var(--text);grid-template-columns:1.6rem 1fr auto;align-items:baseline;gap:.55rem;padding:.55rem 0;font-size:.95rem;display:grid}.flow-step:last-child{border-bottom:0}.flow-step span,.flow-step em{color:var(--muted);font-size:.78rem;font-style:normal}.capability-grid{grid-template-columns:repeat(4,1fr);gap:1.4rem;padding-top:.4rem;display:grid}.capability h3{text-transform:uppercase;letter-spacing:.08em;margin:.35rem 0 .55rem;font-size:.95rem}.capability p{font-size:.94rem;line-height:1.6}.other-block{margin-top:3.2rem}.other-block .eyebrow{margin-bottom:1rem}.differentiator{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:38rem;margin-top:5.5rem;padding:2.8rem 0}.differentiator h2{max-width:18ch;margin-bottom:1rem}.differentiator p{margin-bottom:1.5rem}.more-link{margin-top:1.4rem;display:inline-block}.home-experience{gap:1.75rem;max-width:40rem;display:grid}.home-experience h3{margin:.15rem 0}.skill-plain{padding:0 0 1.4rem}.skill-plain h3{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:.4rem;font-size:.82rem}.skill-plain p{color:var(--text);font-size:.98rem}.skill-plain-grid{grid-template-columns:1fr 1fr;gap:0 2rem;display:grid}.cert-plain{gap:1rem;max-width:40rem;display:grid}.cert-plain p{gap:.15rem;display:grid}.cert-plain strong{color:var(--text);font-weight:600}.contact-section{padding-bottom:5.5rem}.contact-section .contact-grid{margin-top:.5rem}.chips{flex-wrap:wrap;gap:.45rem;margin-top:1.2rem;display:flex}.chip{border:1px solid var(--line);background:var(--card);color:var(--chip-text);border-radius:999px;padding:.28rem .72rem;font-size:.86rem}.case-meta{color:var(--muted);margin-top:.55rem;font-size:.88rem}.other-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.other-card,.skill-block,.info-card,.cert-card,.contact-form,.timeline article{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.3rem}.page-wrap{width:min(var(--max), calc(100% - 2.4rem));margin-inline:auto;padding:2.2rem 0 4.5rem}.page-hero{max-width:44rem;margin-bottom:2.4rem}.page-hero p{margin-top:.9rem}.breadcrumbs ol{color:var(--muted);flex-wrap:wrap;gap:.4rem;margin-bottom:1.3rem;font-size:.86rem;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{content:"/";color:var(--line);margin-left:.4rem}.timeline{border-left:2px solid var(--line);gap:1rem;padding-left:1.2rem;display:grid}.timeline article{box-shadow:none}.timeline header{flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:.55rem;display:flex}.timeline header p,.timeline .dates{color:var(--muted);font-size:.92rem}.timeline ul,.prose ul{color:var(--chip-text);margin:.75rem 0 0 1.1rem}.timeline li,.prose li{margin:.35rem 0}.skill-grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.skill-block h2{margin-bottom:.8rem;font-size:.95rem}.skill-block ul{flex-wrap:wrap;gap:.4rem;list-style:none;display:flex}.cert-grid,.split,.contact-grid{grid-template-columns:1.1fr .9fr;gap:1.2rem;display:grid}.cert-card p{margin:.4rem 0 .8rem}.contact-form,.prose,.project-detail{gap:.95rem;display:grid}.form-grid{grid-template-columns:1fr 1fr;gap:.9rem;display:grid}label{gap:.4rem;font-size:.9rem;font-weight:600;display:grid}input,textarea{border:1px solid var(--line);background:var(--bg);width:100%;font:inherit;color:var(--text);border-radius:10px;padding:.75rem .85rem}input:focus,textarea:focus,.btn:focus-visible,.menu-toggle:focus-visible,.theme-toggle:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.honeypot{position:absolute;left:-9999px}.form-status{color:#065f46;background:#ecfdf5;border-radius:10px;padding:.8rem 1rem}.form-status.error{color:#991b1b;background:#fef2f2}.cta-band{background:var(--solid);color:var(--solid-fg);padding:3.4rem 0}.cta-band .wrap{gap:.9rem;max-width:40rem;display:grid}.cta-band h2,.cta-band p,.cta-band .eyebrow,.cta-band h2{color:var(--solid-fg)}.cta-band .btn{border-color:#0000;width:fit-content}.cta-band .btn-solid{background:var(--bg);color:var(--text)}.site-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:1.5rem;padding:2.2rem 0;font-size:.92rem;display:flex}.footer-name{margin-bottom:.2rem;font-size:1.05rem}.footer-links{flex-wrap:wrap;gap:1rem;display:flex}.mobile-panel{background:var(--bg);z-index:9;align-content:start;gap:.2rem;padding:1.2rem 1.2rem 2rem;display:grid;position:fixed;inset:68px 0 0}.mobile-panel a{border-bottom:1px solid var(--line);padding:.7rem 0;font-size:1.2rem}.hamburger{gap:4px;width:18px;display:grid}.hamburger i{background:var(--text);height:1.5px;display:block}.project-detail section h2{margin-bottom:.35rem;font-size:1.05rem}.related{flex-wrap:wrap;gap:.7rem;margin-top:.4rem;display:flex}@media (max-width:1100px){.capability-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.metrics,.skill-grid,.skill-plain-grid,.cert-grid,.split,.contact-grid,.other-grid,.form-grid,.hero-grid,.capability-grid,.case-study{grid-template-columns:1fr}.nav-desktop{display:none}.nav-mobile{display:block}.hero-aside{max-width:280px}.hero h1 br,.section h2 br{display:none}.metrics{grid-template-columns:1fr 1fr;gap:1.4rem;padding:2rem 0}.site-footer{padding-bottom:2.5rem}}@media (max-width:560px){h1{font-size:1.85rem}.metrics{grid-template-columns:1fr}.hero-actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
