body{font-family:Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box;margin:0;padding:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}[class*=col-]{padding-left:15px;padding-right:15px}html,body{max-width:100vw;overflow-x:hidden}body{color:rgb(var(--foreground-rgb));background:linear-gradient(to bottom,transparent,rgb(var(--background-end-rgb)))rgb(var(--background-start-rgb))}a{color:inherit;text-decoration:none}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}blockquote{background:#eaeaea;border-left:5px solid #ccc;margin:1.5em 0;padding:.5em 1em}.showmedempuppies{background:#fff;border:none}.red-text-custom{color:#ed6d58;font-weight:700}.black-text-custom{color:#000;font-weight:700}.brown-text-custom{color:#d2b394;font-weight:700}.body-copy{font-family:Vollkorn,Georgia,serif;font-size:1.5rem}.parallax-section{background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;height:300px}.text-sm{font-size:14px;line-height:24px}.category-label{color:#fff;border:none;border-radius:5px;padding:2.5px 15px}.categories-row .categories-col{padding:25px 100px}.categories-row .categories-col .content{border-bottom:1px solid #ccc;justify-content:flex-end;padding:0 0 15px;font-family:Courier New,courier,fixed;display:flex}.categories-row .categories-col .content .category-btn{color:#fff;cursor:pointer;border:none;border-radius:5px;padding:2.5px 15px}.categories-row .categories-col .content .category-btn:hover{opacity:.7}.r-title{background-color:#333;width:200px;max-width:45%;height:75px;position:absolute;top:0;right:0}.blog-cards{flex-wrap:wrap;padding:100px 50px;font-family:Courier New,courier,fixed;display:flex}.blog-cards .post-card{transition:all .25s}.blog-cards .post-card:hover{cursor:pointer}.blog-cards .project-card{transition:all .25s}.blog-cards .project-card:hover{cursor:pointer}.blog-cards .float{transition:all .4s;box-shadow:25px 25px 50px #000!important}.blog-cards .card{overflow:hidden;border-radius:15px!important}.blog-cards .card .view{background-position:50%;background-repeat:no-repeat;background-size:cover;height:200px}.blog-cards .card .card-footer{margin-left:0;margin-right:0;padding-left:1.25rem;padding-right:1.25rem}.blog-cards .index-page-resource-link{text-decoration:none}.blog-cards .index-page-resource-link .card-title{color:#000;transition:color .25s}.blog-cards .index-page-resource-link:hover .card-title{color:#4646ff!important}#index #topbar{display:none}#index .banner{background-image:url(/img/hero/madison-bg-greened.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;justify-content:center;align-items:center;max-width:100vw;height:65vh;min-height:365px;padding:0;display:flex}#index .banner .banner-headline{color:#fffefe;text-shadow:3px 3px #333;margin-bottom:15px;margin-left:80px;font-size:5vw}#index .banner .banner-subtitle{color:#fffefe;text-shadow:3px 3px #333;margin-bottom:25px;margin-left:80px;font-size:3vw}#index .banner .banner-details{color:#fffefe;text-shadow:3px 3px #333;margin-left:80px;font-size:2vw}#index .biography{min-height:850px}#index .biography .biography-row a{color:#ed6d58}#index .biography .biography-row a:hover{color:#c5e3bf}#index .biography .biography-row{position:relative}#index .biography .biography-row .title-section{color:#fff;justify-content:center;align-items:center;font-size:25px;display:flex}#index .biography .biography-row .title-section a{color:#fff}#index .biography .biography-row .r-title{background-color:#333;width:200px;max-width:45%;height:75px;position:absolute;top:0;right:0}#index .biography .biography-row .img{justify-content:center;align-items:center;height:500px;padding-left:80px;display:flex}#index .biography .biography-row .img img{border:7px solid #c5e3bf;border-radius:50%;width:300px;max-width:100%;height:300px;display:block}#index .biography .biography-row .text{color:#777;justify-content:center;margin-top:100px;display:flex}#index .biography .biography-row .text .content .body-copy .showmedempuppies{cursor:pointer;color:#333;text-decoration:underline}#index .biography .biography-row .text .content .body-copy .showmedempuppies:hover{color:#999}#index .biography .biography-row .text .content .puppy-container{justify-content:space-around;align-items:center;display:flex}#index .biography .biography-row .text .content .puppy-container .puppy{border:7px solid #c5e3bf;border-radius:50%;width:225px;height:200px;display:none}#index .projects{background:#fffefe;min-height:500px;position:relative}#index .projects .title-section{color:#fff;justify-content:center;align-items:center;font-size:25px;display:flex}#index .projects .title-section a{color:#fff}#index .projects .l-title{background-color:#333;width:200px;max-width:45%;height:75px;position:absolute;top:0}#index .projects .r-title{background-color:#333;width:200px;max-width:45%;height:75px;position:absolute;top:0;right:0}#index .projects .projects-row{padding:100px 25px 50px 80px;font-family:Courier New,courier,fixed}#index .projects .projects-row .col .card .view{background-position:50%;background-repeat:no-repeat;background-size:cover;height:300px}#index .contact{background:#fff;min-height:500px;padding-left:80px}#index .contact .container-9{max-width:90%!important}#index .blog{background:#f3f3f3;min-height:500px;position:relative}#index .blog .title-section{color:#fff;justify-content:center;align-items:center;font-size:25px;display:flex}#index .blog .title-section a{color:#fff}#index .blog .row .l-title{background-color:#333;width:200px;max-width:45%;height:75px;position:absolute;top:0}#index .blog .row .r-title{background-color:#333;width:200px;max-width:45%;height:75px;position:absolute;top:0;right:0}#index .blog .posts-row{padding:100px 25px 50px 80px;font-family:Courier New,courier,fixed}#index .blog .posts-row .col .card .view{background-position:50%;background-repeat:no-repeat;background-size:cover;height:300px}#index .parallax-bg{background-image:url(/img/hero/madison-bg-greened.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;height:300px}#blog #header{display:none}#blog .blog-container-row{padding-top:50px}#blog .blog-container-row .row .blog-banner{background-image:url(/img/hero/bookshelf.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;height:500px;position:relative}#blog .blog-container-row .row .blog-banner .content{justify-content:center;align-items:center;width:100%;height:100%;margin-top:50px;display:flex}#blog .blog-container-row .row .blog-banner .content .text{color:#fffefe;text-shadow:3px 3px #333}#blog .blog-container-row .row .blog-banner .content .text h1{font-size:3.5rem}#blog .blog-container-row .row .blog-banner .content .text p{font-size:2rem}#blog .blog-container-row .posts-row{padding:0 100px}#blog .blog-container-row .posts-row .col .posts-list{padding-left:0;list-style:none}#blog .blog-container-row .posts-row .col .posts-list .post-list-item{border-bottom:1px solid #ccc;padding:25px 0}#blog .blog-container-row .posts-row .col .posts-list .post-list-item .title{text-shadow:1px 1px #333;font-size:2.5rem;font-weight:700}#blog .blog-container-row .posts-row .col .posts-list .post-list-item .subtitle{text-shadow:1px 1px #333;font-size:2rem}#blog .blog-container-row .posts-row .col .posts-list .post-list-item .details{font-family:Courier New,courier,fixed}#blog .blog-container-row .posts-row .col .posts-list .post-list-item .details .category-btn{color:#fff;cursor:pointer;border:none;border-radius:5px;padding:2.5px 15px}#blog .blog-container-row .posts-row .col .posts-list .post-list-item .details .category-btn:hover{opacity:.7}#blog .footer-row{padding-left:0}#blog-post .post-container-row{padding-top:50px}#blog-post .post-container-row .row .post-banner{background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;height:500px;position:relative}#blog-post .post-container-row .row .post-banner .content{justify-content:center;align-items:center;width:100%;height:100%;margin-top:50px;display:flex}#blog-post .post-container-row .row .post-banner .content .text{color:#fffefe;text-shadow:3px 3px #333}#blog-post .post-container-row .row .post-banner .content .text h1{font-size:3.5rem}#blog-post .post-container-row .row .post-banner .content .text p{font-size:2rem}#blog-post .post-container-row .post-body{padding-top:50px;padding-bottom:50px;font-family:Courier New,courier,fixed}#portfolio #header{display:none}#portfolio .portfolio-container-row{padding-top:50px}#portfolio .portfolio-container-row .row .portfolio-banner{background-image:url(/img/hero/construction.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;height:500px;position:relative}#portfolio .portfolio-container-row .row .portfolio-banner .content{justify-content:center;align-items:center;width:100%;height:100%;margin-top:50px;display:flex}#portfolio .portfolio-container-row .row .portfolio-banner .content .text{color:#fffefe;text-shadow:3px 3px #333}#portfolio .portfolio-container-row .row .portfolio-banner .content .text h1{font-size:3.5rem}#portfolio .portfolio-container-row .row .portfolio-banner .content .text p{font-size:2rem}#portfolio .portfolio-container-row .categories-row .categories-col{padding:25px 100px}#portfolio .portfolio-container-row .categories-row .categories-col .content{border-bottom:1px solid #ccc;justify-content:flex-end;padding:0 0 15px;font-family:Courier New,courier,fixed;display:flex}#portfolio .portfolio-container-row .categories-row .categories-col .content .category-btn{color:#fff;cursor:pointer;border:none;border-radius:5px;padding:2.5px 15px}#portfolio .portfolio-container-row .categories-row .categories-col .content .category-btn:hover{opacity:.7}#portfolio .portfolio-container-row .projects-row{padding:0 100px}#portfolio .portfolio-container-row .projects-row .col .projects-list{padding-left:0;list-style:none}#portfolio .portfolio-container-row .projects-row .col .projects-list .project-list-item{border-bottom:1px solid #ccc;padding:25px 0}#portfolio .portfolio-container-row .projects-row .col .projects-list .project-list-item .title{text-shadow:1px 1px #333;font-size:2.5rem}#portfolio .portfolio-container-row .projects-row .col .projects-list .project-list-item .subtitle{text-shadow:1px 1px #333;font-size:2rem}#portfolio .portfolio-container-row .projects-row .col .projects-list .project-list-item .details{font-family:Courier New,courier,fixed}#portfolio .portfolio-container-row .projects-row .col .projects-list .project-list-item .details .category-btn{color:#fff;cursor:pointer;border:none;border-radius:5px;padding:2.5px 15px}#portfolio .portfolio-container-row .projects-row .col .projects-list .project-list-item .details .category-btn:hover{opacity:.7}#portfolio .footer-row{padding-left:0}#resume #header{display:none}#resume .resume-container-row{padding-top:50px}#resume .resume-container-row .row #resume-banner{background-image:url(/img/hero/blueprint.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;height:300px;position:relative}#resume .resume-container-row .row #resume-banner .content{justify-content:center;align-items:center;width:100%;height:100%;margin-top:50px;display:flex}#resume .resume-container-row .row #resume-banner .content .text{color:#fffefe;text-shadow:3px 3px #333}#resume .resume-container-row .row #resume-banner .content .text h1{font-size:3.5rem}#resume .resume-container-row .row #resume-banner .content .text p{font-size:2rem}#resume .resume-container-row .row .resume-bio-section{color:#777;background-color:#fff;min-height:300px;padding:50px 100px}#resume .resume-container-row .row .resume-bio-section img{border:7px solid #ed6d58;border-radius:50%;width:200px;max-width:100%;height:200px}#resume .resume-container-row .row .resume-bio-section .text-center{text-align:center}#resume .resume-container-row .row .resume-bio-section .download-section{font-family:Vollkorn,Georgia,serif}#resume .resume-container-row .row .resume-bio-section .download-section .col a{color:#ed6d58;margin:0 15px}#resume .resume-container-row .row .resume-bio-section .download-section .col a i{color:#ed6d58}#resume .resume-container-row .row .resume-bio-section .download-section .col a i:hover{color:#777}#resume .resume-container-row .row .resume-bio-section .text-section{padding:15px 0;font-family:Vollkorn,Georgia,serif}#resume .resume-container-row .row .resume-bio-section .text-section .resume-bio{font-size:1.5rem}#resume .resume-container-row .row .resume-work-section{color:#fff;background-color:#ed6d58;min-height:300px;padding:50px 100px}#resume .resume-container-row .row .resume-work-section .col .white-hr{border-top:1px solid #fff}#resume .resume-container-row .row .resume-work-section .text-right{text-align:right}#resume .resume-container-row .row .resume-work-section .text-left{text-align:left}#resume .resume-container-row .row .resume-skills-section{color:#777;background-color:#fff;min-height:300px;padding:50px 100px}#resume .resume-container-row .row .resume-certfications-section{color:#fff;background-color:#c5e3bf;min-height:300px;padding:50px 100px}#resume .resume-container-row .row .resume-certfications-section .col .white-hr{border-top:1px solid #fff}#resume .resume-container-row .row .resume-parallax-bg{background-image:url(/img/hero/blueprint.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;height:150px}#contact .resume-container-row{padding-top:50px}#contact .resume-container-row .row #contact-banner{background-image:url(/img/hero/phone.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;height:300px;position:relative}#contact .resume-container-row .row #contact-banner .content{justify-content:center;align-items:center;width:100%;height:100%;margin-top:50px;display:flex}#contact .resume-container-row .row #contact-banner .content .text{color:#fffefe;text-shadow:3px 3px #333}#contact .resume-container-row .row #contact-banner .content .text h1{font-size:3.5rem}#topbar{background:#222;justify-content:space-between;height:50px;padding:0 100px;display:flex;position:fixed;top:0}#topbar #bullets{z-index:0;width:80px;height:100vh;display:table;position:fixed;top:0;left:0}#topbar #bullets ul{vertical-align:middle!important;padding-left:0!important;display:table-cell!important}#topbar #bullets ul li{cursor:pointer;-o-transition:border-color .3s linear;z-index:9999;border:2px solid #0000;border-radius:100%;width:14px;height:14px;margin:14px auto;transition:border-color .3s linear}#topbar #bullets ul li span{text-indent:-9999px;-o-transition:border .3s linear;background-color:#fff;border-radius:100%;width:14px;height:14px;transition:border .3s linear;display:block;position:relative}#topbar #bullets ul .current-page-item span{background-color:#c5e3bf}.footer-row{background:#333;align-items:center;width:100%;height:300px;padding-left:80px;display:flex}.mb-navbar-dark{z-index:100;background:#333;width:100%;position:fixed}.mb-navbar-dark .nav-link{color:#fff}.mb-navbar-dark .nav-link:hover{color:#ed6d58!important}.mb-navbar-dark .navbar-brand{color:#fff}.mb-navbar-dark .navbar-brand:hover{color:#ed6d58!important}.mb-navbar-dark .navbar-toggler{border-color:#c5e3bf}.mb-navbar-dark .navbar-toggler:focus{box-shadow:0 0 0 .25rem #c5e3bf40}.mb-navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgb(119, 221, 119)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}@media (max-width:991px){.mb-navbar-dark .navbar-collapse{text-align:right;background:#444;width:100%;padding:1rem;position:absolute;top:100%;left:0;right:0}.mb-navbar-dark .navbar-nav{align-items:flex-end}}#resume .active,#portfolio .active,#blog .active,#blog-post .active,#contact .active{color:#ffffb2}.footer-row{background:#333;align-items:center;width:100%;height:300px;display:flex}.footer-row .quote{color:silver;font-family:Vollkorn,Georgia,serif;font-style:italic;font-weight:200}.footer-row .location{color:#c5e3bf;font-weight:200}.category-btn{margin-left:10px}#nprogress{pointer-events:none}#nprogress .bar{z-index:9999;width:100%;position:fixed;top:0;left:0;background:#c5e3bf!important;height:5px!important}#nprogress .peg{opacity:1;width:100px;height:100%;display:block;position:absolute;right:0;transform:rotate(3deg)translateY(-4px);box-shadow:0 0 10px #c5e3bf,0 0 5px #c5e3bf!important}.dog-chatbot-button{color:#fff;z-index:50;cursor:pointer;background-color:#c5e3bf;border:none;border-radius:9999px;padding:1rem;transition:all .3s;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.dog-chatbot-button:hover{background-color:#ed6d58;transform:scale(1.1)}.dog-chatbot-button-content{flex-direction:column;align-items:center;display:flex}.dog-chatbot-button-emoji{font-size:1.5rem}.dog-chatbot-button-text{margin-top:.25rem;font-size:.75rem}.dog-chatbot-window{z-index:50;background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;flex-direction:column;width:24rem;height:600px;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 25px 50px -12px #00000040}.dog-chatbot-header{color:#fff;background-color:#c5e3bf;border-radius:.5rem .5rem 0 0;justify-content:space-between;align-items:center;padding:1rem;display:flex}.dog-chatbot-header-info h3{margin:0;font-size:1.125rem;font-weight:700}.dog-chatbot-header-info p{color:#000;margin:.25rem 0 0;font-size:.75rem}.dog-chatbot-close-button{color:#fff;cursor:pointer;background:0 0;border:none;padding:0;font-size:2rem;line-height:1;transition:color .2s}.dog-chatbot-close-button:hover{color:#e5e7eb}.dog-chatbot-warning{color:#854d0e;text-align:center;background-color:#fefce8;border-bottom:1px solid #fde047;padding:.5rem;font-size:.75rem}.dog-chatbot-error{color:#991b1b;background-color:#fef2f2;border-bottom:1px solid #fca5a5;padding:.75rem;font-size:.875rem;position:relative}.dog-chatbot-error-close{float:right;color:#dc2626;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.25rem;line-height:1}.dog-chatbot-error-close:hover{color:#991b1b}.dog-chatbot-messages{background-color:#f9fafb;flex-direction:column;flex:1;gap:1rem;padding:1rem;display:flex;overflow-y:auto}.dog-chatbot-message-user{justify-content:flex-end;display:flex}.dog-chatbot-message-assistant{justify-content:flex-start;display:flex}.dog-chatbot-bubble-user{color:#fff;background-color:#c5e3bf;border-radius:.5rem;max-width:80%;padding:.75rem}.dog-chatbot-bubble-assistant{color:#1f2937;background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;max-width:80%;padding:.75rem}.dog-chatbot-assistant-name{color:#c5e3bf;margin-bottom:.25rem;font-size:.75rem;font-weight:600}.dog-chatbot-message-text{white-space:pre-wrap;margin:0;font-size:.875rem}.dog-chatbot-loading{gap:.5rem;display:flex}.dog-chatbot-loading-dot{background-color:#9ca3af;border-radius:9999px;width:.5rem;height:.5rem;animation:1s infinite bounce}.dog-chatbot-loading-dot:nth-child(2){animation-delay:.1s}.dog-chatbot-loading-dot:nth-child(3){animation-delay:.2s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-.5rem)}}.dog-chatbot-input-container{background-color:#fff;border-top:1px solid #e5e7eb;border-radius:0 0 .5rem .5rem;padding:1rem}.dog-chatbot-robot-check input{color:#f3f3f3;margin-bottom:15px;margin-right:15px}.dog-chatbot-input-row{gap:.5rem;display:flex}.dog-chatbot-input{border:1px solid #d1d5db;border-radius:.5rem;outline:none;flex:1;padding:.5rem 1rem;font-size:.875rem}.dog-chatbot-input:focus{ring:2px;ring-color:#c5e3bf;border-color:#c5e3bf;outline:none}.dog-chatbot-input:disabled{cursor:not-allowed;background-color:#f3f4f6}.dog-chatbot-send-button{color:#fff;cursor:pointer;background-color:#c5e3bf;border:none;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .2s}.dog-chatbot-send-button:hover{background-color:#ed6d58}.dog-chatbot-send-button:disabled{cursor:not-allowed;background-color:#d1d5db}.dog-chatbot-footer{justify-content:space-between;align-items:center;margin-top:.5rem;display:flex}.dog-chatbot-footer-text{color:#6b7280;font-size:.75rem}.dog-chatbot-footer-limit{color:#9ca3af;font-size:.75rem}@media (max-width:640px){.dog-chatbot-window{width:calc(100vw - 2rem);height:calc(100vh - 2rem);bottom:1rem;right:1rem}}@media (max-width:768px){.categories-row .categories-col,.posts-row,.projects-row{padding:25px 15px!important}.blog-cards{gap:25px}#resume .resume-bio-section,#resume .resume-work-section,#resume .resume-skills-section,#resume .resume-certfications-section{padding:25px 35px!important}#resume .resume-container-row .row #resume-banner .content .text h1{font-size:2rem!important}#resume .resume-container-row .row #resume-banner .content .text p{font-size:1.25rem!important}#resume .resume-bio-section .text-section .resume-bio{font-size:1rem!important}#resume .resume-work-section h3{font-size:1.5rem!important}#resume .resume-work-section p{font-size:.95rem!important}#index .banner .banner-headline,#index .banner .banner-subtitle,#index .banner .banner-details{margin-left:15px!important}#index .biography .biography-row .img{padding-left:15px!important}#index .projects .projects-row{padding:100px 15px 50px!important}#index .contact{padding-left:15px!important}#index .blog .posts-row{padding:100px 15px 50px!important}#blog .blog-container-row .posts-row{padding:0 15px!important}#portfolio .portfolio-container-row .categories-row .categories-col,#portfolio .portfolio-container-row .projects-row{padding:25px 15px!important}#topbar{padding:0 15px!important}.footer-row{padding-left:15px!important}.parallax-section,.parallax-bg,#index .banner,#blog .blog-container-row .row .blog-banner,#blog-post .post-container-row .row .post-banner,#portfolio .portfolio-container-row .row .portfolio-banner,#resume .resume-container-row .row #resume-banner,#resume .resume-container-row .row .resume-parallax-bg,#contact .resume-container-row .row #contact-banner{background-attachment:scroll!important}}
