@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--sap-primary: #0a6ed1;--sap-primary-dark: #0854a0;--sap-bg: #f7faff;--sap-surface: #ffffff;--sap-text: #0b1f33;--sap-muted: #4b647a;--sap-border: #d8e2ef;--accent: var(--sap-primary);--accent-strong: var(--sap-primary-dark);--bg: var(--sap-bg);--ink: var(--sap-text);--muted: var(--sap-muted);--card: var(--sap-surface);--border: var(--sap-border);--shadow: 0 10px 30px rgba(11, 31, 51, .1);--radius: 18px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:IBM Plex Sans,Segoe UI,sans-serif;color:var(--ink);background-color:var(--sap-bg);min-height:100vh;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--accent-strong)}img{max-width:100%;display:block}.site{position:relative;min-height:100vh;display:flex;flex-direction:column}.sap-bg{min-height:100vh;background-color:var(--sap-bg)}.main{flex:1;padding:32px 0 64px}.container{width:min(1120px,92vw);margin:0 auto}.bg-wash,.bg-orbit{display:none}.site-header{padding:26px 0;border-bottom:1px solid var(--sap-border);background:var(--sap-surface)}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;flex-direction:column;gap:2px}.brand-title{font-weight:700;letter-spacing:.02em;text-transform:uppercase}.brand-sub{font-size:.85rem;color:var(--sap-muted)}.nav-links{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.nav-links a{font-weight:500}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav-cta{padding:8px 16px;border-radius:999px;border:1px solid var(--sap-primary);background:var(--sap-primary);color:#fff}.nav-cta.secondary{border-color:var(--sap-border);background:var(--sap-surface);color:var(--sap-primary)}.nav-cta.secondary:hover{background:#eef4fb}.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;align-items:center}.hero-banner{position:relative;padding:28px;border-radius:20px;background:linear-gradient(90deg,#0a6ed1,#0854a0 55%,#0a6ed1);overflow:hidden}.hero-banner:after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.12),rgba(255,255,255,.12) 1px,transparent 1px,transparent 18px);opacity:.12;pointer-events:none}.hero-banner>*{position:relative;z-index:1}.hero h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.15;margin:0 0 16px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:var(--sap-primary);margin:0 0 10px}.badge-list{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#0a6ed11f;border:1px solid rgba(10,110,209,.2);color:var(--sap-primary-dark);font-weight:600;font-size:.85rem}.lead{font-size:1.1rem;color:var(--sap-muted);margin:0 0 16px}.note{margin:0 0 24px;font-weight:600;color:var(--sap-primary-dark)}.actions{display:flex;flex-wrap:wrap;gap:14px}.button{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:999px;font-weight:600;border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.button.primary{background:var(--sap-primary);color:#fff;box-shadow:var(--shadow)}.button.primary:hover{background:var(--sap-primary-dark)}.button.ghost{border-color:var(--sap-border);background:var(--sap-surface);color:var(--sap-text)}.button:hover{transform:translateY(-2px)}.welcome-section{padding:32px 0 16px}.welcome-section h1{margin-top:0}.welcome-grid{display:grid;grid-template-columns:minmax(0,3fr) 1px minmax(0,2fr);gap:32px;align-items:center}.welcome-divider{width:1px;height:75%;background:#d8e2ef;justify-self:center}.welcome-photo{display:flex;justify-content:center;align-items:center}.profile-photo{width:300px;height:auto;border-radius:6px;object-fit:cover;border:1px solid #0a6ed1;box-shadow:0 8px 16px #0b1f3314}.info-row{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}.logo-slot{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:14px;border:1px solid var(--sap-border);background:#0a6ed10f;overflow:hidden}.logo-image{width:100%;height:100%;object-fit:contain}.logo-fallback{display:inline-flex;align-items:center;justify-content:center;font-weight:600;color:var(--sap-muted)}.info-title{margin:0 0 6px;font-weight:700}.info-note{margin:0;color:var(--sap-muted)}.contact-form{display:grid;gap:16px;margin-top:16px}.form-status{margin:0;font-weight:500;color:var(--sap-muted)}.form-field{display:grid;gap:8px}.form-field label{font-weight:600;color:var(--sap-muted)}.form-field input,.form-field textarea{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:10px;padding:12px 14px;color:var(--sap-text);font:inherit}.form-field input:focus,.form-field textarea:focus{outline:2px solid rgba(10,110,209,.3);border-color:#0a6ed180}.skill-bars{display:grid;gap:16px;margin-top:16px}.skill-bar{display:grid;gap:8px}.skill-bar__label{display:flex;justify-content:space-between;gap:16px;color:var(--sap-muted);font-weight:600;font-size:.95rem}.skill-bar__track{width:100%;height:10px;border-radius:999px;background:#0a6ed114;border:1px solid rgba(10,110,209,.2);overflow:hidden}.skill-bar__fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0a6ed1,#38a0ff)}.card{background:var(--sap-surface);border-radius:var(--radius);border:1px solid var(--sap-border);padding:24px;box-shadow:var(--shadow)}.card.featured{border-color:#0a6ed159;box-shadow:0 12px 30px #0a6ed12e}.hero-card h2{margin-top:0}.checklist{list-style:none;padding:0;margin:16px 0 0}.checklist li{padding-left:26px;position:relative;margin-bottom:12px}.checklist li:before{content:">";position:absolute;left:0;color:var(--sap-primary);font-weight:700}.expertise-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:14px}.icon-bullet{display:inline-flex;align-items:flex-start;gap:12px}.icon-bullet__icon{color:var(--sap-primary);width:18px;height:18px;flex-shrink:0}.icon-bullet__icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.icon-bullet__content{display:inline}.icon-bullet__title{font-weight:600;color:var(--sap-text)}.icon-bullet__text{color:var(--sap-muted)}.section{margin-top:48px}.section h2{margin-bottom:16px}.about-page{padding-bottom:32px}.about-hero{display:grid;gap:16px}.subtitle{margin:6px 0 0;color:var(--sap-muted);font-weight:500}.section-title{display:flex;align-items:center;gap:12px}.section-icon{width:36px;height:36px;border-radius:10px;border:1px solid var(--sap-border);background:#0a6ed114;display:inline-flex;align-items:center;justify-content:center;color:var(--sap-primary)}.section-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.section-divider{height:1px;background:var(--sap-border);margin:24px 0}.timeline{position:relative;margin-top:16px;padding-left:24px}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:8px;width:2px;background:#0a6ed14d}.timeline-item{position:relative;padding-bottom:24px}.timeline-marker{position:absolute;left:0;top:4px;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--sap-primary)}.timeline-content{margin-left:28px}.timeline-header{display:grid;gap:4px}.timeline-date{font-size:.9rem;color:var(--sap-muted);font-weight:600}.timeline-role{font-weight:600;color:var(--sap-text)}.timeline-body{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.timeline-chip{padding:4px 10px;border-radius:999px;border:1px solid rgba(10,110,209,.25);background:#0a6ed114;font-size:.85rem;color:var(--sap-text)}.skills-table{display:grid;gap:12px}.skills-row{display:grid;grid-template-columns:1fr 2fr 1fr 1.4fr;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--sap-border)}.skills-row:last-child{border-bottom:none}.skills-header{font-weight:700;color:var(--sap-text);text-transform:uppercase;font-size:.75rem;letter-spacing:.06em}.skills-row span{color:var(--sap-text)}.skills-row .badge{justify-self:start}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.stack{display:grid;gap:16px}.cert-card{display:grid;gap:8px}.cert-title{font-weight:700;color:var(--sap-text)}.muted{color:var(--sap-muted);margin:0}.card-title{font-weight:700;color:var(--sap-text);margin-bottom:10px}.chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.chip-row{display:flex;flex-wrap:wrap;gap:10px}.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--sap-border);background:#fff;color:var(--sap-text);font-size:.9rem}.chip-icon{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.cta-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.tag{display:inline-flex;padding:4px 10px;border-radius:999px;background:#0a6ed114;border:1px solid rgba(10,110,209,.15);font-size:.8rem;margin-right:8px}.tag-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:8px}.tag-label{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--sap-muted);font-size:.85rem}.status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid var(--sap-border)}.status.wip{background:#f59f002e;color:#8b5b00}.status.planned{background:#0a6ed129;color:#0a6ed1}.list{margin:0;padding-left:18px}.case-diagram{background:#f0f4fb;color:var(--sap-text);padding:16px;border-radius:16px;overflow-x:auto;font-family:IBM Plex Mono,ui-monospace,Consolas,monospace}.site-footer{border-top:1px solid var(--sap-border);padding:32px 0 40px;background:var(--sap-surface)}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.footer-title{font-weight:700;margin:0 0 6px}.footer-label{font-weight:600;margin:0 0 6px}.footer-note{margin:0 0 6px;color:var(--sap-muted)}.footer-item{display:flex;align-items:center;gap:8px}.footer-icon{display:inline-flex;width:16px;height:16px;color:var(--sap-primary);flex-shrink:0}.footer-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon{display:inline-flex;width:1em;height:1em;color:var(--sap-primary);flex-shrink:0}@media(max-width:720px){.nav{flex-direction:column;align-items:flex-start}.nav-links{width:100%;justify-content:flex-start}.main{padding:20px 0 48px}.info-row{grid-template-columns:1fr;align-items:start}.welcome-grid{grid-template-columns:1fr;text-align:left}.profile-photo{width:210px;height:auto}}@media(max-width:768px){.welcome-grid{grid-template-columns:1fr;text-align:left}.welcome-divider{display:none}.welcome-photo{justify-content:center}.profile-photo{width:240px}}@media(max-width:900px){.skills-row{grid-template-columns:1fr 1.3fr 1fr}.skills-row span:nth-child(4){grid-column:1 / -1}.two-col{grid-template-columns:1fr}.cta-card{flex-direction:column;align-items:flex-start}}@media(max-width:640px){.skills-row{grid-template-columns:1fr}.skills-header{display:none}}.case-hero{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}.case-hero__intro{display:grid;gap:16px}.case-hero__toc{position:sticky;top:24px;align-self:start}.blog-hero{display:grid;gap:20px;padding:16px 0 8px}.blog-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.blog-input,.blog-select{padding:10px 14px;border-radius:999px;border:1px solid var(--sap-border);background:var(--sap-surface);color:var(--sap-text);min-width:200px}.blog-input:focus-visible,.blog-select:focus-visible,.button:focus-visible,.nav-cta:focus-visible{outline:2px solid var(--sap-primary);outline-offset:2px}.blog-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.blog-card{display:flex;flex-direction:column;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.blog-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #0b1f331f}.blog-cover{position:relative;height:180px;overflow:hidden}.blog-cover img{width:100%;height:100%;object-fit:cover}.blog-cover-fallback{width:100%;height:100%;background:linear-gradient(135deg,#0a6ed1,#e6f0fb 55%,#fff)}.blog-card-body{display:grid;gap:12px;padding:18px}.blog-tags{display:flex;flex-wrap:wrap;gap:8px}.blog-meta{display:flex;gap:16px;color:var(--sap-muted);font-size:.9rem}.is-hidden{display:none}.blog-article-hero{display:grid;gap:12px;padding:8px 0 4px}.article-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:start}.toc-card{position:sticky;top:110px;display:grid;gap:12px}.toc a{color:var(--sap-muted);font-size:.95rem}.toc a:hover{color:var(--sap-primary)}.article-content{display:grid;gap:24px}.article-cover{border-radius:16px;border:1px solid var(--sap-border);overflow:hidden;background:var(--sap-surface)}.article-cover img{width:100%;display:block}.article-section h2{margin-bottom:10px}.article-meta{display:flex;gap:16px;color:var(--sap-muted);font-size:.95rem}.copy-status{color:var(--sap-muted);font-size:.85rem}.recent-posts{padding-top:12px}@media(max-width:1024px){.article-layout{grid-template-columns:1fr}.toc-card{position:static}}.toc-card{border:1px solid var(--sap-border)}.toc{display:grid;gap:8px}.toc a{color:var(--sap-text);font-weight:600;padding:6px 8px;border-radius:8px}.toc a:hover{background:#0a6ed114}.case-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.case-main{display:grid;gap:32px}.table-card{margin-top:16px}.table{display:grid;gap:10px}.table-row{display:grid;grid-template-columns:1.2fr 1fr 1.5fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--sap-border)}.table-row:last-child{border-bottom:none}.table-header{font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.06em}.diagram-card{display:grid;gap:12px}.diagram-placeholder{width:100%;height:220px;border-radius:16px;border:1px dashed var(--sap-border);background:linear-gradient(180deg,#0a6ed10a,#0a6ed114)}.screens-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.screen-card{display:grid;gap:8px;align-items:start}.screen-placeholder{width:100%;height:160px;border-radius:12px;border:1px dashed var(--sap-border);background:#f0f4fb}.screen-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:12px}.code-block{background:#f0f4fb;border-radius:12px;padding:12px;font-size:.85rem;color:var(--sap-text);overflow-x:auto}.resources-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.resource-item{color:var(--sap-muted);padding:6px 0;border-bottom:1px dashed var(--sap-border)}.resource-item:last-child{border-bottom:none}.incident-card{display:grid;gap:6px}@media(max-width:900px){.case-hero{grid-template-columns:1fr}.case-hero__toc{position:static}.table-row{grid-template-columns:1fr}.table-header{display:none}}.case-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:start}.case-sidebar{position:relative}.case-nav{position:sticky;top:24px}.case-nav nav{display:grid;gap:8px}.case-nav a{color:var(--sap-text);font-weight:600;padding:6px 8px;border-radius:8px}.case-nav a:hover{background:#0a6ed114}.case-nav-mobile{display:none;border:1px solid var(--sap-border);border-radius:12px;padding:12px 14px;background:#fff}.case-nav-mobile summary{font-weight:700;cursor:pointer}.case-nav-mobile nav{display:grid;gap:8px;margin-top:12px}.case-summary{display:grid;gap:12px}.image-placeholder{width:100%;min-height:220px;border-radius:16px;border:1px dashed var(--sap-border);background:linear-gradient(180deg,#0a6ed10a,#0a6ed114);display:flex;align-items:center;justify-content:center;color:var(--sap-muted);font-weight:600}.carousel{position:relative;border-radius:16px;border:1px solid var(--sap-border);background:#fff;box-shadow:var(--shadow);padding:12px 40px;overflow:hidden}.carousel__track{position:relative;min-height:220px;z-index:1}.carousel__slide{position:absolute;inset:0;opacity:0;transition:opacity .3s ease;display:flex;align-items:center;justify-content:center}.carousel__slide.is-active{opacity:1;position:relative}.carousel__slide img{width:100%;max-height:420px;object-fit:contain;border-radius:12px;border:1px dashed var(--sap-border);background:linear-gradient(180deg,#0a6ed10a,#0a6ed114)}.carousel__nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:1px solid var(--sap-border);background:#fff;color:var(--sap-primary);font-size:20px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}.carousel__nav--prev{left:10px}.carousel__nav--next{right:10px}@media(max-width:768px){.carousel{padding:12px 32px}.carousel__nav{width:28px;height:28px}}.step-card{display:grid;gap:12px}.step-header{font-weight:700;color:var(--sap-text)}.step-image{min-height:200px}.step-impl{display:grid;gap:8px}.code-toggle{border:1px solid var(--sap-border);border-radius:12px;padding:10px 12px;background:#fff}.code-toggle summary{font-weight:600;cursor:pointer}.step-takeaway{font-weight:600;color:var(--sap-primary-dark)}@media(max-width:1024px){.case-shell{grid-template-columns:1fr}.case-sidebar{display:none}.case-nav-mobile{display:block}}.accordion-box{border:1px solid var(--sap-border);border-radius:14px;padding:12px 16px;background:#fff}.accordion-box summary{display:flex;align-items:center;gap:10px;font-weight:700;cursor:pointer;list-style:none}.accordion-box summary::-webkit-details-marker{display:none}.accordion-icon{width:20px;height:20px;color:var(--sap-primary);display:inline-flex}.accordion-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.accordion-list{margin:12px 0 0;padding-left:18px;color:var(--sap-muted)}.flow-card{display:grid;gap:16px}.flow-steps{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.flow-step{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--sap-border);background:#fff;font-size:.9rem;color:var(--sap-text)}.flow-icon{width:16px;height:16px;color:var(--sap-primary);display:inline-flex}.flow-icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.flow-arrow{color:var(--sap-primary);font-weight:700}.flow-example{margin:0}@media(max-width:1024px){.flow-steps{flex-direction:column;align-items:flex-start}.flow-arrow{display:none}}
