﻿:root{--mpr-color-raggiesoft-blue-50: rgb(245 250 253);--mpr-color-raggiesoft-blue-100: rgb(220 239 248);--mpr-color-raggiesoft-blue-200: rgb(194 227 243);--mpr-color-raggiesoft-blue-300: rgb(164 214 237);--mpr-color-raggiesoft-blue-400: rgb(122 195 229);--mpr-color-raggiesoft-blue-500: rgb(66 170 219);--mpr-color-raggiesoft-blue-600: rgb(37 141 189);--mpr-color-raggiesoft-blue-700: rgb(30 115 155);--mpr-color-raggiesoft-blue-800: rgb(25, 95, 128);--mpr-color-raggiesoft-blue-900: rgb(18 68 91);--mpr-color-raggiesoft-blue-950: rgb(11, 42, 56);--mpr-color-raggiesoft-blue: var(--mpr-color-raggiesoft-blue-500);--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--gray-950: #030712;--color-success: #198754;--color-info: #0dcaf0;--color-warning: #ffc107;--color-danger: #dc3545;--color-light: var(--gray-100);--color-dark: var(--gray-800);--primary-accent-color: var(--mpr-color-raggiesoft-blue);--secondary-accent-color: var(--gray-700);--primary-accent-color-rgb: 66, 170, 219;--text-color: var(--gray-900);--text-color-muted: var(--gray-600);--background-color: #ffffff;--background-color-alt: var(--gray-50);--link-color: var(--mpr-color-raggiesoft-blue-800);--link-hover-color: var(--mpr-color-raggiesoft-blue-900);--link-visited-color: var(--mpr-color-raggiesoft-blue-800);--border-color: var(--gray-300);--border-color-strong: var(--gray-400);--font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--base-font-size: 1rem;--line-height-base: 1.6;--spacing-unit: 1rem;--spacing-xs: calc(var(--spacing-unit) * 0.25);--spacing-sm: calc(var(--spacing-unit) * 0.5);--spacing-md: var(--spacing-unit);--spacing-lg: calc(var(--spacing-unit) * 1.5);--spacing-xl: calc(var(--spacing-unit) * 2);--spacing-xxl: calc(var(--spacing-unit) * 3);--border-width: 1px;--border-radius: 0.375rem;--tag-bg-information-technology: #cfe2ff;--tag-text-information-technology: #052c65;--tag-bg-behind-the-scenes: var(--gray-200);--tag-text-behind-the-scenes: var(--gray-800);--tag-bg-volunteer: var(--tag-bg-seasonal);--tag-text-volunteer: var(--tag-text-seasonal);--tag-bg-internship: var(--tag-bg-seasonal);--tag-text-internship: var(--tag-text-seasonal);--tech-tag-bg: var(--mpr-color-raggiesoft-blue-100);--tech-tag-text: var(--mpr-color-raggiesoft-blue-800)}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.skip-link{position:absolute;top:-100px;left:0;background-color:var(--primary-accent-color);color:#fff;padding:var(--spacing-sm) var(--spacing-md);z-index:9999;text-decoration:none;border-radius:0 0 var(--border-radius) 0;font-weight:600}.skip-link:focus{top:0;outline:2px solid rgba(0,0,0,0);outline-offset:2px;box-shadow:0 0 0 2px var(--background-color),0 0 0 4px var(--primary-accent-color)}@media(prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}@media(prefers-contrast: more){:root{--border-width: 2px;--border-color: var(--text-color);--border-color-strong: var(--text-color)}}@media(prefers-contrast: less){:root{--border-color: var(--gray-300)}}@media(prefers-contrast: less)and (prefers-color-scheme: dark){:root{--border-color: var(--gray-800)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--primary-accent-color);outline-offset:2px;box-shadow:0 0 0 2px var(--background-color),0 0 0 4px var(--primary-accent-color);border-radius:var(--border-radius)}.is-hidden{display:none !important}html{box-sizing:border-box;font-size:var(--base-font-size);-webkit-tap-highlight-color:rgba(0,0,0,0)}*,*::before,*::after{box-sizing:inherit}body{margin:0;font-family:var(--font-family-sans-serif);line-height:var(--line-height-base);color:var(--text-color);background-color:var(--background-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:var(--link-color);text-decoration:none}a:hover,a:focus{color:var(--link-hover-color);text-decoration:underline}a[href]:active{background-color:rgba(0,0,0,0)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--spacing-md);font-weight:600;line-height:1.2;color:var(--text-color)}p{margin-top:0;margin-bottom:var(--spacing-md)}ul,ol{margin-top:0;margin-bottom:var(--spacing-md);padding-left:var(--spacing-lg)}li{margin-bottom:var(--spacing-sm)}img,svg,video,canvas,audio,iframe,embed,object{display:block;max-width:100%;height:auto}figure{margin:0 0 var(--spacing-md) 0}figcaption{font-size:.9em;color:var(--text-color-muted);margin-top:var(--spacing-sm)}hr{display:block;height:var(--border-width);border:0;border-top:var(--border-width) solid var(--border-color);margin:var(--spacing-lg) 0;padding:0}code,kbd,samp,pre{font-family:var(--font-family-monospace);font-size:.9em}pre{margin-top:0;margin-bottom:var(--spacing-md);overflow:auto;padding:var(--spacing-md);background-color:var(--background-color-alt);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius)}code:not(pre>code){padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--background-color-alt);border-radius:var(--border-radius)}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;margin:0;padding:var(--spacing-sm) var(--spacing-md);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);background-color:var(--background-color);color:var(--text-color)}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer}button:hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{border-color:var(--primary-accent-color)}textarea{overflow:auto;resize:vertical}a[href^=http]:not([href^="https://michaelpragsdale.com"]):not([href^="http://michaelpragsdale.com"])::after{content:"";font-family:"Font Awesome 6 Pro";font-weight:900;font-size:.8em;margin-left:var(--spacing-xs);display:inline-block;position:relative;top:-1px;text-decoration:none}h1,.h1{font-size:calc(var(--base-font-size)*2.5)}h2,.h2{font-size:calc(var(--base-font-size)*2)}h3,.h3{font-size:calc(var(--base-font-size)*1.75)}h4,.h4{font-size:calc(var(--base-font-size)*1.5)}h5,.h5{font-size:calc(var(--base-font-size)*1.25)}h6,.h6{font-size:calc(var(--base-font-size)*1)}.lead{font-size:calc(var(--base-font-size)*1.25);font-weight:300;margin-bottom:var(--spacing-lg)}strong,b{font-weight:600}small,.small{font-size:.875em}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}abbr[title]{text-decoration:underline dotted;cursor:help}blockquote{margin:0 0 var(--spacing-lg) 0;padding:var(--spacing-md) var(--spacing-lg);border-left:calc(var(--border-width)*4) solid var(--border-color-strong);font-size:1.1em;font-style:italic;color:var(--text-color-muted)}blockquote p:last-child{margin-bottom:0}blockquote footer,blockquote cite{display:block;margin-top:var(--spacing-md);font-size:.9em;font-style:normal;color:var(--text-color-muted)}blockquote footer::before,blockquote cite::before{content:"— "}dl{margin-bottom:var(--spacing-lg)}dt{font-weight:600;margin-bottom:var(--spacing-xs)}dd{margin-left:var(--spacing-lg);margin-bottom:var(--spacing-md)}address{margin-bottom:var(--spacing-md);font-style:normal;line-height:inherit}@media print{.site-header,.site-sidebar,.site-footer,.mobile-nav-toggle{display:none !important}.site-body-wrapper,.site-content,.container{width:100% !important;max-width:100% !important;display:block !important;padding:0 !important;margin:0 !important}body{background-color:#fff !important;color:#000 !important;font-size:12pt;font-family:"Times New Roman",Times,serif}a{text-decoration:underline !important;color:#000 !important;font-weight:600}a[href^=http]:not([href*="michaelragsdale.com"])::after,a[href^=https]::after{content:" [" attr(href) "]";font-size:.9em;font-style:italic;font-weight:normal}blockquote,pre{page-break-inside:avoid}body.page-resume{font-family:"Times New Roman",Times,serif;font-size:11pt}body.page-resume .filter-tabs,body.page-resume .download-links{display:none !important}body.page-resume .page-header{text-align:center}body.page-resume .history-list{border-left:none;margin-left:0;padding-left:0}body.page-resume .history-item::before{display:none}body.page-resume .history-item__period{position:static;text-align:left;width:auto;order:2;font-style:italic}body.page-resume .history-item__header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}body.page-resume .history-item__header-text{display:flex;justify-content:space-between;width:100%;align-items:baseline}body.page-resume .history-item__tags{display:none}body.page-resume .history-item__content{break-inside:avoid}}.page-container{display:flex;flex-direction:column;min-height:100vh;position:relative;z-index:1}.site-body-wrapper{display:flex;flex-direction:column;flex:1;width:100%}@media(min-width: 992px){.site-body-wrapper{flex-direction:row}}.container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.container{width:100%;padding-right:1.5rem;padding-left:1.5rem;margin-right:auto;margin-left:auto}@media(min-width: 576px){.container{max-width:540px}}@media(min-width: 768px){.container{max-width:720px}}@media(min-width: 992px){.container{max-width:960px}}@media(min-width: 1200px){.container{max-width:1140px}}.row{display:flex;flex-wrap:wrap;margin-right:-0.75rem;margin-left:-0.75rem}[class*=col-]{position:relative;width:100%;padding-right:.75rem;padding-left:.75rem}.auto-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr))}.col-1{flex:0 0 auto;width:8.3333333333%}.col-2{flex:0 0 auto;width:16.6666666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.3333333333%}.col-5{flex:0 0 auto;width:41.6666666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.3333333333%}.col-8{flex:0 0 auto;width:66.6666666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.3333333333%}.col-11{flex:0 0 auto;width:91.6666666667%}.col-12{flex:0 0 auto;width:100%}@media(min-width: 0){.col-xs-1{flex:0 0 auto;width:8.3333333333%}.col-xs-2{flex:0 0 auto;width:16.6666666667%}.col-xs-3{flex:0 0 auto;width:25%}.col-xs-4{flex:0 0 auto;width:33.3333333333%}.col-xs-5{flex:0 0 auto;width:41.6666666667%}.col-xs-6{flex:0 0 auto;width:50%}.col-xs-7{flex:0 0 auto;width:58.3333333333%}.col-xs-8{flex:0 0 auto;width:66.6666666667%}.col-xs-9{flex:0 0 auto;width:75%}.col-xs-10{flex:0 0 auto;width:83.3333333333%}.col-xs-11{flex:0 0 auto;width:91.6666666667%}.col-xs-12{flex:0 0 auto;width:100%}}@media(min-width: 576px){.col-sm-1{flex:0 0 auto;width:8.3333333333%}.col-sm-2{flex:0 0 auto;width:16.6666666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.3333333333%}.col-sm-5{flex:0 0 auto;width:41.6666666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.3333333333%}.col-sm-8{flex:0 0 auto;width:66.6666666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.3333333333%}.col-sm-11{flex:0 0 auto;width:91.6666666667%}.col-sm-12{flex:0 0 auto;width:100%}}@media(min-width: 768px){.col-md-1{flex:0 0 auto;width:8.3333333333%}.col-md-2{flex:0 0 auto;width:16.6666666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.3333333333%}.col-md-5{flex:0 0 auto;width:41.6666666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.3333333333%}.col-md-8{flex:0 0 auto;width:66.6666666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.3333333333%}.col-md-11{flex:0 0 auto;width:91.6666666667%}.col-md-12{flex:0 0 auto;width:100%}}@media(min-width: 992px){.col-lg-1{flex:0 0 auto;width:8.3333333333%}.col-lg-2{flex:0 0 auto;width:16.6666666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.3333333333%}.col-lg-5{flex:0 0 auto;width:41.6666666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.3333333333%}.col-lg-8{flex:0 0 auto;width:66.6666666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.3333333333%}.col-lg-11{flex:0 0 auto;width:91.6666666667%}.col-lg-12{flex:0 0 auto;width:100%}}@media(min-width: 1200px){.col-xl-1{flex:0 0 auto;width:8.3333333333%}.col-xl-2{flex:0 0 auto;width:16.6666666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.3333333333%}.col-xl-5{flex:0 0 auto;width:41.6666666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.3333333333%}.col-xl-8{flex:0 0 auto;width:66.6666666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.3333333333%}.col-xl-11{flex:0 0 auto;width:91.6666666667%}.col-xl-12{flex:0 0 auto;width:100%}}@media(min-width: 1400px){.col-xxl-1{flex:0 0 auto;width:8.3333333333%}.col-xxl-2{flex:0 0 auto;width:16.6666666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.3333333333%}.col-xxl-5{flex:0 0 auto;width:41.6666666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.3333333333%}.col-xxl-8{flex:0 0 auto;width:66.6666666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.3333333333%}.col-xxl-11{flex:0 0 auto;width:91.6666666667%}.col-xxl-12{flex:0 0 auto;width:100%}}.site-header{background-color:var(--mpr-color-raggiesoft-blue-800);color:var(--mpr-color-raggiesoft-blue-50);padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs);position:sticky;top:0;z-index:1000}.site-header .header-content{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.site-title-header{font-size:1.5rem;font-weight:bold;margin:0;color:#f8f9fa}.site-title-header a{color:inherit;text-decoration:none}.site-branding{flex-shrink:0}.site-branding a{color:inherit;text-decoration:none;display:inline-block}.site-branding a:hover,.site-branding a:focus{color:#fff}.site-logo{display:block;height:32px;width:auto}.mobile-nav-toggle{display:block;background:none;border:none;color:inherit;font-size:1.25rem;cursor:pointer;padding:var(--spacing-xs);z-index:1060;position:relative}@media(min-width: 992px){.site-header{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.site-logo{height:40px}.site-header .header-content{display:grid;grid-template-columns:auto 1fr auto}.site-title-header{display:block;text-align:center;font-size:1.25rem;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;align-items:center;justify-content:flex-end}.mobile-nav-toggle{display:none}}.site-navigation{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--background-color);z-index:1050;padding-top:var(--spacing-xxl);transform:translateX(-100%);transition:transform .3s ease-in-out;overflow-y:auto}.site-navigation.is-open{transform:translateX(0)}.nav-menu{list-style:none;margin:0;padding:0}.nav-item{border-bottom:var(--border-width) solid var(--border-color)}.nav-link{display:block;padding:var(--spacing-md) var(--spacing-lg);text-decoration:none;color:var(--text-color);font-size:1.2rem}.nav-link:hover,.nav-link:focus{background-color:var(--background-color-alt);color:var(--primary-accent-color)}.sub-menu{list-style:none;margin:0;padding-left:var(--spacing-lg);background-color:var(--background-color-alt)}.sub-menu .nav-link{font-size:1rem;padding-left:var(--spacing-xl)}@media(min-width: 992px){.site-navigation{position:static;width:auto;height:auto;background-color:rgba(0,0,0,0);padding-top:0;transform:none;transition:none;overflow-y:visible}.nav-menu{display:flex;align-items:center}.nav-item{border-bottom:none;margin-left:var(--spacing-sm);position:relative}.nav-link{color:inherit;padding:var(--spacing-sm) var(--spacing-md);font-size:1rem;border-radius:var(--border-radius)}.nav-link:hover,.nav-link:focus{background-color:hsla(0,0%,100%,.1);color:#fff}.nav-item.active>.nav-link{background-color:var(--mpr-color-raggiesoft-blue);color:#fff}.sub-menu{display:block;position:absolute;top:100%;left:0;z-index:1070;background-color:var(--background-color);min-width:200px;padding:var(--spacing-sm) 0;margin-top:var(--spacing-xs);border-radius:var(--border-radius);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border:var(--border-width) solid var(--border-color);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease,visibility .2s}.sub-menu .nav-item{margin-left:0;width:100%}.sub-menu .nav-link{color:var(--text-color);border-radius:0;padding:var(--spacing-sm) var(--spacing-lg)}.sub-menu .nav-link:hover,.sub-menu .nav-link:focus{background-color:var(--background-color-alt)}.nav-item.has-children:hover>.sub-menu,.nav-item.has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}.nav-item.has-children>.nav-link::after{content:"▼";font-size:.6em;margin-left:var(--spacing-sm);vertical-align:middle}.sub-menu .menu-separator{height:1px;margin:var(--spacing-sm) 0;background-color:var(--border-color)}}.site-content{flex-grow:1;padding:var(--spacing-lg)}.full-width .site-content{width:100%;max-width:none}.site-sidebar{width:100%;border-top:calc(var(--border-width)*2) solid var(--border-color);padding:var(--spacing-lg)}@media(min-width: 992px){.site-sidebar{flex-shrink:0;width:280px;border-top:none;border-left:var(--border-width) solid var(--border-color)}}.widget:not(:last-child){margin-bottom:var(--spacing-xl)}.widget .widget-title{font-size:1.1rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-color-muted);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:calc(var(--border-width)*2) solid var(--border-color-strong)}.widget ul{list-style:none;padding:0;margin:0}.quick-facts-list{list-style:none;padding:0;margin:0}.quick-facts-list li{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.quick-facts-list .fa-duotone{margin-top:.2em;color:var(--primary-accent-color)}.quick-facts-list a{color:var(--link-color);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.quick-facts-list a:hover,.quick-facts-list a:focus{color:var(--link-hover-color);text-decoration-thickness:2px}.tech-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.widget-subtitle{font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-color);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.widget-list{list-style:none;padding:0;margin:0;font-size:.9rem}.widget-list li{margin-bottom:var(--spacing-sm)}.widget-list a{text-decoration:none;display:flex;align-items:center;gap:var(--spacing-sm)}.widget-list a:hover{text-decoration:underline}.site-footer{background-color:var(--gray-800);color:var(--gray-400);padding:var(--spacing-xl) 0;font-size:.9rem}.site-footer .footer-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.site-footer .footer-social{display:flex;gap:var(--spacing-sm);font-size:1.5rem}.site-footer .footer-social a{color:var(--gray-400);transition:color .2s ease-in-out,transform .2s ease-in-out}.site-footer .footer-social a:hover,.site-footer .footer-social a:focus{color:#fff;transform:translateY(-2px)}.site-footer .footer-social a[href^=http]::after{display:none !important}.site-footer .footer-copyright p{margin:0;text-align:center}.button{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);font-weight:600;line-height:var(--line-height-base);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:var(--border-width) solid rgba(0,0,0,0);border-radius:var(--border-radius);transition:filter .15s ease-in-out}.button:focus-visible{text-decoration:none}.button .fa-fw{text-align:center}.button-primary{background-color:var(--primary-accent-color);border-color:var(--primary-accent-color);color:#fff}.button-primary:hover,.button-primary:focus-visible{filter:brightness(90%)}.button-secondary{background-color:var(--secondary-accent-color);border-color:var(--secondary-accent-color);color:#fff}.button-secondary:hover,.button-secondary:focus-visible{filter:brightness(90%)}.button-success{background-color:var(--color-success);border-color:var(--color-success);color:#fff}.button-success:hover,.button-success:focus-visible{filter:brightness(90%)}.button-info{background-color:var(--color-info);border-color:var(--color-info);color:var(--gray-900)}.button-info:hover,.button-info:focus-visible{filter:brightness(90%)}.button-warning{background-color:var(--color-warning);border-color:var(--color-warning);color:var(--gray-900)}.button-warning:hover,.button-warning:focus-visible{filter:brightness(90%)}.button-danger{background-color:var(--color-danger);border-color:var(--color-danger);color:#fff}.button-danger:hover,.button-danger:focus-visible{filter:brightness(90%)}.button-light{background-color:var(--color-light);border-color:var(--color-light);color:var(--gray-900)}.button-light:hover,.button-light:focus-visible{filter:brightness(90%)}.button-dark{background-color:var(--color-dark);border-color:var(--color-dark);color:#fff}.button-dark:hover,.button-dark:focus-visible{filter:brightness(90%)}.button-outline-primary{background-color:rgba(0,0,0,0);border-color:var(--primary-accent-color);color:var(--primary-accent-color)}.button-outline-primary:hover,.button-outline-primary:focus-visible{background-color:var(--primary-accent-color);border-color:var(--primary-accent-color);color:#fff}.button-outline-secondary,.button:not([class*=button-]){background-color:rgba(0,0,0,0);border-color:var(--secondary-accent-color);color:var(--secondary-accent-color)}.button-outline-secondary:hover,.button:hover:not([class*=button-]),.button-outline-secondary:focus-visible,.button:focus-visible:not([class*=button-]){background-color:var(--secondary-accent-color);border-color:var(--secondary-accent-color);color:#fff}.button-outline-success{background-color:rgba(0,0,0,0);border-color:var(--color-success);color:var(--color-success)}.button-outline-success:hover,.button-outline-success:focus-visible{background-color:var(--color-success);border-color:var(--color-success);color:#fff}.button-outline-info{background-color:rgba(0,0,0,0);border-color:var(--color-info);color:var(--color-info)}.button-outline-info:hover,.button-outline-info:focus-visible{background-color:var(--color-info);border-color:var(--color-info);color:var(--gray-900)}.button-outline-warning{background-color:rgba(0,0,0,0);border-color:var(--color-warning);color:var(--color-warning)}.button-outline-warning:hover,.button-outline-warning:focus-visible{background-color:var(--color-warning);border-color:var(--color-warning);color:var(--gray-900)}.button-outline-danger{background-color:rgba(0,0,0,0);border-color:var(--color-danger);color:var(--color-danger)}.button-outline-danger:hover,.button-outline-danger:focus-visible{background-color:var(--color-danger);border-color:var(--color-danger);color:#fff}.button-outline-light{background-color:rgba(0,0,0,0);border-color:var(--color-light);color:var(--color-light)}.button-outline-light:hover,.button-outline-light:focus-visible{background-color:var(--color-light);border-color:var(--color-light);color:var(--gray-900)}.button-outline-dark{background-color:rgba(0,0,0,0);border-color:var(--color-dark);color:var(--color-dark)}.button-outline-dark:hover,.button-outline-dark:focus-visible{background-color:var(--color-dark);border-color:var(--color-dark);color:#fff}.button:not([class*=button-]):hover,.button:not([class*=button-]):focus-visible{background-color:var(--gray-600);border-color:var(--gray-600);color:#fff}.accordion{border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius)}details.accordion-item{border-bottom:var(--border-width) solid var(--border-color)}details.accordion-item:last-child{border-bottom:none}summary.accordion-header{padding:var(--spacing-md) var(--spacing-lg);font-size:1.1rem;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}summary.accordion-header:focus-visible{outline:2px solid var(--primary-accent-color);outline-offset:2px}summary.accordion-header::-webkit-details-marker{display:none}.accordion-header::after{content:"▸";font-size:.8em;transform-origin:center;transition:transform .2s ease-in-out}details[open]>summary.accordion-header::after{transform:rotate(90deg)}.accordion-content{padding:var(--spacing-sm) var(--spacing-lg) var(--spacing-lg) var(--spacing-lg);border-top:var(--border-width) solid var(--border-color)}.alert{position:relative;padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);border:var(--border-width) solid rgba(0,0,0,0);border-radius:var(--border-radius);color:var(--text-color)}.alert-title{color:inherit;font-weight:700}.alert-title:first-child{margin-top:0}.alert-primary{background-color:var(--primary-accent-color);color:#fff}.alert-primary a,.alert-primary .alert-link{font-weight:700;text-decoration:underline}.alert-primary a:hover,.alert-primary a:focus,.alert-primary .alert-link:hover,.alert-primary .alert-link:focus{opacity:.8}.alert-primary hr{opacity:.5}.alert-secondary{background-color:var(--secondary-accent-color);color:#fff}.alert-secondary a,.alert-secondary .alert-link{font-weight:700;text-decoration:underline}.alert-secondary a:hover,.alert-secondary a:focus,.alert-secondary .alert-link:hover,.alert-secondary .alert-link:focus{opacity:.8}.alert-secondary hr{opacity:.5}.alert-success{background-color:var(--color-success);color:#fff}.alert-success a,.alert-success .alert-link{font-weight:700;text-decoration:underline}.alert-success a:hover,.alert-success a:focus,.alert-success .alert-link:hover,.alert-success .alert-link:focus{opacity:.8}.alert-success hr{opacity:.5}.alert-info{background-color:var(--color-info);color:var(--gray-900)}.alert-info a,.alert-info .alert-link{font-weight:700;text-decoration:underline}.alert-info a:hover,.alert-info a:focus,.alert-info .alert-link:hover,.alert-info .alert-link:focus{opacity:.8}.alert-info hr{opacity:.5}.alert-warning{background-color:var(--color-warning);color:var(--gray-900)}.alert-warning a,.alert-warning .alert-link{font-weight:700;text-decoration:underline}.alert-warning a:hover,.alert-warning a:focus,.alert-warning .alert-link:hover,.alert-warning .alert-link:focus{opacity:.8}.alert-warning hr{opacity:.5}.alert-danger{background-color:var(--color-danger);color:#fff}.alert-danger a,.alert-danger .alert-link{font-weight:700;text-decoration:underline}.alert-danger a:hover,.alert-danger a:focus,.alert-danger .alert-link:hover,.alert-danger .alert-link:focus{opacity:.8}.alert-danger hr{opacity:.5}.alert-light{background-color:var(--color-light);color:var(--gray-900)}.alert-light a,.alert-light .alert-link{font-weight:700;text-decoration:underline}.alert-light a:hover,.alert-light a:focus,.alert-light .alert-link:hover,.alert-light .alert-link:focus{opacity:.8}.alert-light hr{opacity:.5}.alert-dark{background-color:var(--color-dark);color:#fff}.alert-dark a,.alert-dark .alert-link{font-weight:700;text-decoration:underline}.alert-dark a:hover,.alert-dark a:focus,.alert-dark .alert-link:hover,.alert-dark .alert-link:focus{opacity:.8}.alert-dark hr{opacity:.5}.alert-dismissible{padding-right:calc(var(--spacing-lg)*2.5)}.alert-close-button{position:absolute;top:0;right:0;z-index:2;padding:var(--spacing-md) var(--spacing-lg);background:none;border:0;color:inherit;opacity:.7;font-size:1.25rem;line-height:1;cursor:pointer;transition:opacity .15s ease-in-out}.alert-close-button:hover,.alert-close-button:focus{opacity:1}.card{position:relative;display:grid;grid-template-rows:1fr auto;min-width:0;word-wrap:break-word;background-color:var(--background-color-alt);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);box-shadow:0 .125rem .25rem rgba(0,0,0,.075);height:100%;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.card:has(.stretched-link):hover{transform:translateY(-5px);box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.card-body{padding:var(--spacing-lg);position:relative;z-index:1}.card-footer{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--background-color-alt);border-top:var(--border-width) solid var(--border-color);display:flex;flex-wrap:wrap;gap:var(--spacing-sm);position:relative}.card-title{margin-bottom:var(--spacing-sm)}.card-subtitle{margin-top:calc(var(--spacing-sm)*-1);margin-bottom:0;color:var(--text-color-muted)}.card-text:last-child{margin-bottom:0}.card-img,.card-img-top{width:100%;border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius)}.card-link:not(:first-child){margin-left:var(--spacing-md)}.clickable-card{cursor:pointer}.card-featured{border-color:var(--primary-accent-color);border-width:2px;overflow:hidden}.card-featured::before{content:"Featured";position:absolute;top:18px;right:-34px;z-index:3;display:block;width:120px;padding:var(--spacing-xs) 0;background-color:var(--primary-accent-color);color:#fff;text-align:center;font-size:.8rem;font-weight:700;text-transform:uppercase;transform:rotate(45deg);box-shadow:0 0 5px rgba(0,0,0,.2)}.card-icon-link{text-align:center}.card-icon-link .card-icon{color:var(--primary-accent-color);margin-bottom:var(--spacing-md)}.card-icon-link .card-text{font-size:.9rem;min-height:5em;margin-bottom:var(--spacing-lg)}.card-featured .card-footer .button{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.history-list{list-style:none;padding:0;padding-left:0 !important;margin:0;position:relative;border-left:2px solid var(--border-color)}.history-list>li{list-style:none !important;list-style-type:none !important}.role-item{list-style:none !important}.history-item{position:relative;display:flex;flex-direction:column;gap:var(--spacing-xs);padding-left:var(--spacing-lg);transition:opacity .3s ease-in-out,max-height .4s ease-in-out,margin-bottom .4s ease-in-out,padding-bottom .4s ease-in-out;max-height:1000px;overflow:hidden}.history-item:not(:last-child){padding-bottom:var(--spacing-xl)}.history-item.is-hidden{opacity:0;max-height:0;padding-bottom:0;margin-bottom:-1px;pointer-events:none}.history-item::before{content:"";position:absolute;left:-9px;top:.5rem;width:14px;height:14px;border-radius:50%;background-color:var(--text-color-muted);border:2px solid var(--background-color);z-index:1;transition:transform .2s ease-in-out,background-color .2s ease-in-out}.history-item.is-current::before{background-color:var(--primary-accent-color);transform:scale(1.25)}.history-item.is-highlighted::before{background-color:var(--color-success)}.history-item__period{order:-1;text-align:left;font-size:.9rem;font-style:italic;color:var(--text-color-muted);width:auto;position:static;left:auto}.history-item__content{flex-grow:1}.history-item__header{display:flex;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.history-item__logo{display:block;width:64px;height:64px;border-radius:var(--border-radius);border:var(--border-width) solid var(--border-color);flex-shrink:0}.history-item__header-text{flex-grow:1}.history-item__title{font-size:1.25rem;margin-bottom:0}.history-item__subtitle{font-weight:600;color:var(--text-color-muted);margin-bottom:var(--spacing-md)}.history-item__tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);padding-left:calc(64px + var(--spacing-md));margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.role-description li{margin-bottom:var(--spacing-xs)}.role-title{font-weight:bold}@media(min-width: 768px){.history-list{border-left:calc(var(--border-width)*2) solid var(--border-color-strong);padding-left:var(--spacing-xl);margin-left:var(--spacing-lg)}.history-item{flex-direction:row;gap:var(--spacing-lg);padding-left:0}.history-item::before{left:calc(var(--spacing-xl)*-1 - 8px)}.history-item__period{order:0;flex-shrink:0;width:100px;font-weight:600;text-align:right;position:relative;font-style:normal;left:calc(var(--spacing-xl)*-1 - 100px - var(--spacing-lg))}.history-item__tags{padding-left:calc(64px + var(--spacing-md))}}.role-period{font-size:.9rem;font-style:italic;color:var(--text-color-muted);margin-bottom:var(--spacing-sm);display:flex;align-items:center;gap:var(--spacing-xs)}.role-period::before{content:"";font-family:"Font Awesome 6 Pro";font-weight:300;font-style:normal}.project-tech-list{list-style:none;padding:0;margin:var(--spacing-md) 0;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.project-tech-list .tag{font-size:.8rem;background-color:var(--tech-tag-bg);color:var(--tech-tag-text)}.filter-tabs{border-bottom:var(--border-width) solid var(--border-color-strong);margin-bottom:var(--spacing-xl);padding-left:var(--spacing-md)}.filter-tabs .button{background-color:var(--background-color-alt);color:var(--text-color-muted);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius) var(--border-radius) 0 0;position:relative;top:var(--border-width);border-bottom:none}.filter-tabs .button:hover,.filter-tabs .button:focus-visible{background-color:var(--gray-200);color:var(--text-color)}.filter-tabs .button.active{background-color:var(--background-color);color:var(--text-color);border-color:var(--border-color-strong);border-bottom-color:var(--background-color);z-index:2}@media(prefers-color-scheme: dark){.filter-tabs .button:hover,.filter-tabs .button:focus-visible{background-color:var(--gray-800)}}.button>.fa-fw:first-child:not(:last-child),.card-link>.fa-fw:first-child:not(:last-child),.nav-link>.fa-fw:first-child:not(:last-child){margin-right:var(--spacing-sm)}.button>.fa-fw:last-child:not(:first-child),.card-link>.fa-fw:last-child:not(:first-child),.nav-link>.fa-fw:last-child:not(:first-child){margin-left:var(--spacing-sm)}.form-group{margin-bottom:var(--spacing-lg)}label{display:block;font-weight:600;margin-bottom:var(--spacing-sm)}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:1rem;line-height:var(--line-height-base);color:var(--text-color);background-color:var(--background-color);background-clip:padding-box;border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:var(--primary-accent-color);outline:0;box-shadow:0 0 0 .25rem rgba(var(--primary-accent-color-rgb), 0.25)}textarea{min-height:120px;resize:vertical}.form-row{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);align-items:flex-end}pre.pre-wrap{white-space:pre-wrap;word-break:break-word}pre.line-numbers{padding-left:4.5em}.line-numbers .line-numbers-rows{left:-4.5em;border-right:1px solid var(--gray-700);background-color:rgba(0,0,0,.1)}.line-numbers .line-numbers-rows span::before{color:var(--gray-500);text-shadow:none}.page-home .home-hero{background-color:var(--mpr-color-raggiesoft-blue-900);color:#fff;padding:var(--spacing-xxl) 0;text-align:center}.page-home .home-hero .hero-title{color:#fff;font-size:3.5rem;font-weight:700;line-height:1.1;margin-bottom:var(--spacing-md)}.page-home .home-hero .hero-subtitle{color:var(--mpr-color-raggiesoft-blue-100);font-size:1.25rem;font-weight:300;max-width:65ch;margin:0 auto var(--spacing-xl) auto}.page-home .home-hero .hero-cta .button{margin:0 var(--spacing-sm)}.page-home .home-hero .button-outline-light{--color-light: #ffffff;border-color:hsla(0,0%,100%,.5);color:#fff}.page-home .home-hero .button-outline-light:hover,.page-home .home-hero .button-outline-light:focus-visible{background-color:#fff;border-color:#fff;color:var(--mpr-color-raggiesoft-blue-900)}.page-home .home-featured-work{padding:var(--spacing-xxl) 0;text-align:center}.page-resume .resume-section{margin-bottom:var(--spacing-xxl);padding-bottom:var(--spacing-xl);border-bottom:1px solid var(--border-color)}.page-resume .download-links{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--spacing-md)}.page-resume .resume-contact-info{text-align:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-color-strong)}.page-resume .resume-name{font-size:3rem;margin-bottom:var(--spacing-sm);line-height:1.1}.page-resume .contact-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-sm) var(--spacing-lg);font-size:.9rem}.page-resume .contact-links li{margin-bottom:0}.page-resume .contact-links a{text-decoration:none;font-weight:600}.page-resume .contact-links a:hover,.page-resume .contact-links a:focus{text-decoration:underline}.page-resume .skills-list{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:var(--spacing-lg)}.page-resume .skill-category h3{font-size:1.1rem;border-bottom:2px solid var(--primary-accent-color);padding-bottom:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.page-resume .skill-category ul{list-style:none;padding:0;margin:0}.page-resume .skill-category li{margin-bottom:var(--spacing-xs)}.page-resume .download-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-xl);text-align:center}.page-resume .download-group{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.page-resume .download-title{font-size:1.1rem;font-weight:600;margin-bottom:0}.page-resume .download-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md)}.page-about .about-intro{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);text-align:center}@media(min-width: 768px){.page-about .about-intro{flex-direction:row;align-items:flex-start;text-align:left}}.page-about .about-intro__image{flex-shrink:0}.page-about .about-intro__image img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid var(--primary-accent-color);box-shadow:0 4px 15px rgba(0,0,0,.1)}.principles-list{display:grid;gap:var(--spacing-lg)}@media(min-width: 768px){.principles-list{grid-template-columns:repeat(3, 1fr)}}.principle-item{text-align:center}.principle-item i{color:var(--primary-accent-color);margin-bottom:var(--spacing-sm)}@media(prefers-color-scheme: dark){:root{--primary-accent-color: var(--mpr-color-raggiesoft-blue-400);--secondary-accent-color: var(--gray-400);--text-color: var(--gray-200);--text-color-muted: var(--gray-400);--background-color: var(--gray-950);--background-color-alt: var(--gray-900);--link-color: var(--mpr-color-raggiesoft-blue-300);--link-hover-color: var(--mpr-color-raggiesoft-blue-200);--link-visited-color: var(--mpr-color-raggiesoft-blue-300);--border-color: var(--gray-700);--border-color-strong: var(--gray-600);--color-success: #20c997;--color-info: #3dd5f3;--color-warning: #ffca2c;--color-danger: #f16270;--color-light: var(--gray-300);--color-dark: var(--gray-800);--tag-bg-information-technology: #052c65;--tag-text-information-technology: #cfe2ff;--tag-bg-behind-the-scenes: var(--gray-700);--tag-text-behind-the-scenes: var(--gray-100);--tag-bg-volunteer: var(--tag-bg-seasonal);--tag-text-volunteer: var(--tag-text-seasonal);--tag-bg-internship: var(--tag-bg-seasonal);--tag-text-internship: var(--tag-text-seasonal);--tech-tag-bg: var(--mpr-color-raggiesoft-blue-900);--tech-tag-text: var(--mpr-color-raggiesoft-blue-100)}img{opacity:.75;transition:opacity .5s ease-in-out}img:focus,img:hover{opacity:1}}/*# sourceMappingURL=main.css.map */
