:root{--page:#ffffff;--ink:#000000;--rule:#999999;--link:#0000ee;--link-visited:#551a8b;--mute:#555555;--font:"Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}body{margin:0;padding:1em;background:var(--page);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.55}.skip-link{position:absolute;inset-inline-start:1em;inset-block-start:1em;z-index:1;padding:0.5em 1em;background:var(--page);color:var(--ink);border:2px solid var(--ink);text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.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}.page{max-width:40em;margin:0 auto}a:link{color:var(--link)}a:visited{color:var(--link-visited)}a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}img{max-width:100%;height:auto;display:block}header{text-align:center;margin-bottom:0.25em}h1{margin:0 0 0.2em;font-size:1.85em;font-weight:normal}.tagline{margin:0 0 0.5em;font-size:0.95em}.welcome{margin:0 0 0.75em;font-size:0.9em;color:var(--mute)}nav{margin:0.75em 0 0;font-size:0.95em}nav a{display:inline-block;padding:0.65em 0.35em;min-height:2.75rem;line-height:1.25;white-space:nowrap}.nav-drop{position:relative;display:inline-block;vertical-align:top}.nav-drop-toggle::after{content:" ▼";font-size:0.65em;vertical-align:middle}.nav-drop-menu{display:none;position:absolute;left:0;top:100%;z-index:2;margin:0;padding:0;list-style:none;min-width:11em;background:var(--page);border:1px solid var(--ink);text-align:left}.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:block}.nav-drop-menu a{display:block;padding:0.45em 0.75em;min-height:0;border-bottom:1px solid var(--rule)}.nav-drop-menu li:last-child a{border-bottom:none}.nav-drop-menu a:link:hover,.nav-drop-menu a:visited:hover,.nav-drop-menu a:link:focus,.nav-drop-menu a:visited:focus{background:var(--ink);color:var(--page);outline:none}hr{border:none;border-top:1px solid var(--ink);margin:1.5em 0}section>h2{margin:0 0 0.65em;font-size:1.25em;font-weight:normal}h3{margin:1.1em 0 0.4em;font-size:1.05em;font-weight:normal;border-bottom:1px solid var(--rule);padding-bottom:0.15em}.about-layout img{margin:0 0 1em;max-width:10em;width:10em;height:auto;aspect-ratio:1 / 1;border:1px solid var(--ink)}.facts{margin:1em 0 0;padding:0;list-style:none}.facts li{margin:0.25em 0}.services-list,.resume-list,.skills-list,.contact-list{margin:0;padding-left:1.25em}.services-list li,.resume-list li,.skills-list li,.contact-list li{margin:0.5em 0}.resume-list strong{display:block}.resume-meta{margin:0.15em 0;font-size:0.9em;color:var(--mute)}.resume-desc{margin:0.25em 0 0.75em}.skills-list{columns:2;column-gap:1.5em}.contact-address{display:inline;font-style:normal;margin:0}footer{font-size:0.85em}footer p{margin:0.35em 0}@media (min-width:36em){.about-layout{display:flex;gap:1.25em;align-items:flex-start}.about-layout img{margin:0;flex:0 0 10em}}@media (max-width:28em){.skills-list{columns:1}}.lab-empty{color:var(--mute);margin:0.5em 0}.lab-results{margin:0.5em 0 0;padding:0.65em;color:#000000;background:#dddddd;border:1px solid #888888;box-shadow:inset 1px 1px 0 #ffffff,inset -1px -1px 0 #999999}.lab-results-summary{margin:0 0 0.55em;padding:0.3em 0.5em;font-size:0.85em;background:#dddddd;border:1px solid #888888;box-shadow:inset 1px 1px 0 #ffffff,inset -1px -1px 0 #999999}.lab-results-table{width:100%;border-collapse:collapse;font-size:0.85em;background:#ffffff;border:1px solid #666666;box-shadow:inset 1px 1px 0 #999999}.lab-results-table th,.lab-results-table td{padding:0.28em 0.55em;text-align:left;vertical-align:top;border:none;border-right:1px solid #bbbbbb;border-bottom:1px solid #cccccc}.lab-results-table th:last-child,.lab-results-table td:last-child{border-right:none}.lab-results-table th{font-weight:bold;font-size:0.95em;letter-spacing:0.01em;color:#000000;background:linear-gradient(to bottom,#f6f6f6 0%,#d8d8d8 100%);border-bottom:1px solid #888888;border-right:1px solid #aaaaaa;box-shadow:inset 0 1px 0 #ffffff}.lab-results-table tbody tr:nth-child(odd) td{background:#ffffff}.lab-results-table tbody tr:nth-child(even) td{background:#eeeeee}.lab-results-table .col-file{font-family:"Monaco","Courier New",Courier,monospace;font-size:0.95em;white-space:nowrap}.lab-results-table .col-section{white-space:nowrap}.lab-results-table .status-passed{color:#006600;font-weight:bold}.lab-results-table .status-failed,.lab-results-table .status-timedOut,.lab-results-table .status-interrupted,.lab-results-table .status-unknown{color:#cc0000;font-weight:bold}.lab-results-table .status-skipped,.lab-results-table .status-flaky{color:#666600}