
.portfolio-cover{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top;border-radius:12px;border:1px solid #dbe7ef;margin-bottom:18px;background:white}.portfolio-cards .card{display:flex;flex-direction:column}.portfolio-cards .card .text-link{margin-top:auto}.article-hero{background:#edf6fa;padding:64px 0}.article-wrap{max-width:1000px;margin:auto;padding:0 24px}.article-wrap h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.12}.article-wrap h2{margin-top:34px}.article-wrap p,.article-wrap li{line-height:1.75;color:#38516a}.article-wrap .video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:28px 0}.video-frame{aspect-ratio:16/9;width:100%;border:0;border-radius:12px;background:#0b2030}.article-wrap .video-card{border:1px solid #d9e7ef;border-radius:14px;padding:14px;background:#fff}.article-wrap .video-card h3{margin:12px 4px}.resume-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.resume-item{border:1px solid #dbe7ef;border-radius:12px;padding:16px;background:white}.resume-item strong{display:block}.article-cover{max-width:420px;width:100%;border-radius:12px;border:1px solid #dbe7ef}.back-link{display:inline-block;margin:28px 0;color:#167eb5;font-weight:700}@media(max-width:720px){.article-wrap .video-grid,.resume-grid{grid-template-columns:1fr}}
.resume-role{display:block;margin-top:7px;color:#38516a;line-height:1.5}

.video-fallback{margin:0.4rem 0 0.6rem;font-size:0.92rem}.video-fallback a{font-weight:700;color:#147db5}.video-fallback span{color:#50677a}

/* B0004: certificate graphics added without replacing the original resume layout */
.dd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:20px 0 26px}.dd-credential{display:flex;gap:15px;align-items:center;background:#fff;border:1px solid #d8e5ee;border-radius:14px;padding:15px;min-height:120px}.dd-credential>a{flex:0 0 90px;display:flex;align-items:center;justify-content:center}.dd-credential img{width:90px;height:90px;object-fit:contain;border-radius:7px}.dd-credential strong,.dd-credential small,.dd-credential div>a{display:block}.dd-credential strong{font-size:1rem;color:#10243b}.dd-credential small{margin:5px 0;font-size:.82rem;color:#546b80}.dd-credential div>a{font-size:.86rem;font-weight:600;color:#0879b7}

/* B0005: simplified DroneDeploy training listing */
.dd-training-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;padding:0;margin:20px 0 36px;list-style:none}.dd-training-list li{border-bottom:1px solid #dce6ef;padding:10px 0;color:#183c58}.dd-emblem-gallery{display:flex;flex-wrap:wrap;gap:18px;margin:22px 0 30px}.dd-emblem-gallery figure{margin:0;width:140px;text-align:center;border:1px solid #dce6ef;border-radius:12px;padding:12px;background:white}.dd-emblem-gallery img{display:block;width:108px;height:105px;object-fit:contain;margin:0 auto 8px}.dd-emblem-gallery figcaption{font-size:13px;font-weight:650;line-height:1.35}@media(max-width:640px){.dd-training-list{grid-template-columns:1fr}.dd-emblem-gallery figure{width:calc(50% - 9px)}}
