 /*************************************

Template Name: William - Personal Portfolio Template
Author: Me
Version: 1.0
Design and Developed by: Me

NOTE: This is main stylesheet of the template.

****************************************/
 /*================================================
            Table of contents  
==================================================
 
0. BASE CSS
1. PRELOADER
2. SECTION TITLE AND SECTION PADDING
3. HEADER AREA
4. WELCOME AREA
5. ABOUT AREA
6. WORK AREA
7. CONTACT AREA
8. FOOTER AREA

/*====================================================
            End table content 
===================================================*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

 /*================================================
             0 BASE CSS
==================================================*/
body {
     font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
     color: #444;
     font-weight: 400;
     line-height: 28px;
     font-size: 15px;
 }
h1, h2, h3, h4, h5, h6 {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    margin: 0 0 15px;
    font-weight: 700;
    color: #222;
    line-height: 1.2;
}
 a:focus {
     outline: 0 solid
 }
 img {
     max-width: 100%;
     height: auto;
 }
a{
    transition: 0.4s
}
 html,
 body {
     height: 100%
 }
 a:hover {
     text-decoration: none
 }
 /* Remove Chrome Input Field's Unwanted Yellow Background Color */
 
 input:-webkit-autofill,
 input:-webkit-autofill:hover,
 input:-webkit-autofill:focus {
     -webkit-box-shadow: 0 0 0px 1000px white inset !important;
 }

 /*================================================
             1 PRELOADER
==================================================*/
 
 #loader-wrapper {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     z-index: 9999999;
     overflow: hidden;
     /* Failsafe: if JS never runs at all -- blocked, a load failure, an error
        before the reveal -- the preloader must not hide the site forever.
        Normal path adds .loaded in well under a second, long before this. */
     -webkit-animation: preloader-failsafe 0.4s ease-out 2.5s forwards;
     animation: preloader-failsafe 0.4s ease-out 2.5s forwards;
}
 @-webkit-keyframes preloader-failsafe {
     to { opacity: 0; visibility: hidden; }
}
 @keyframes preloader-failsafe {
     to { opacity: 0; visibility: hidden; }
}
 #loader {
     display: block;
     position: relative;
     left: 50%;
     top: 50%;
     width: 150px;
     height: 150px;
     margin: -75px 0 0 -75px;
     border-radius: 50%;
     border: 3px solid transparent;
     border-top-color: #222;
     -webkit-animation: spin 1.7s linear infinite;
     animation: spin 1.7s linear infinite;
     z-index: 11;
}
 #loader:before {
     content: "";
     position: absolute;
     top: 5px;
     left: 5px;
     right: 5px;
     bottom: 5px;
     border-radius: 50%;
     border: 3px solid transparent;
     border-top-color: #222;
     -webkit-animation: spin-reverse .6s linear infinite;
     animation: spin-reverse .6s linear infinite;
}
 #loader:after {
     content: "";
     position: absolute;
     top: 15px;
     left: 15px;
     right: 15px;
     bottom: 15px;
     border-radius: 50%;
     border: 3px solid transparent;
     border-top-color: #222;
     -webkit-animation: spin 1s linear infinite;
     animation: spin 1s linear infinite;
}
 @-webkit-keyframes spin {
     0% {
         -webkit-transform: rotate(0deg);
    }
     100% {
         -webkit-transform: rotate(360deg);
    }
}
 @keyframes spin {
     0% {
         -webkit-transform: rotate(0deg);
         transform: rotate(0deg);
    }
     100% {
         -webkit-transform: rotate(360deg);
         transform: rotate(360deg);
    }
}
 @-webkit-keyframes spin-reverse {
     0% {
         -webkit-transform: rotate(0deg);
    }
     100% {
         -webkit-transform: rotate(-360deg);
    }
}
 @keyframes spin-reverse {
     0% {
         -webkit-transform: rotate(0deg);
         transform: rotate(0deg);
    }
     100% {
         -webkit-transform: rotate(-360deg);
         transform: rotate(-360deg);
    }
}
 #loader-wrapper .loader-section {
     background-color: #fff;
     position: fixed;
     top: 0;
     width: 51%;
     height: 100%;
     z-index: 10;
}
 #loader-wrapper .loader-section.section-left {
     left: 0;
}
 #loader-wrapper .loader-section.section-right {
     right: 0;
}
/* Loaded styles */
 .loaded #loader-wrapper .loader-section.section-left {
     -webkit-transform: translateX(-100%);
     transform: translateX(-100%);
     -webkit-transition: all 0.3s 0.05s cubic-bezier(0.645, 0.045, 0.355, 1);
     transition: all 0.3s 0.05s cubic-bezier(0.645, 0.045, 0.355, 1);
}
 .loaded #loader-wrapper .loader-section.section-right {
     -webkit-transform: translateX(100%);
     transform: translateX(100%);
     -webkit-transition: all 0.3s 0.05s cubic-bezier(0.645, 0.045, 0.355, 1);
     transition: all 0.3s 0.05s cubic-bezier(0.645, 0.045, 0.355, 1);
}
 .loaded #loader {
     opacity: 0;
     -webkit-transition: all 0.15s ease-out;
     transition: all 0.15s ease-out;
}
 .loaded #loader-wrapper {
     visibility: hidden;
     -webkit-transform: translateY(-100%);
     transform: translateY(-100%);
     -webkit-transition: all 0.3s 0.05s ease-out;
     transition: all 0.3s 0.05s ease-out;
}

 /*================================================
     2 SECTION TITLE AND SECTION PADDING
==================================================*/
 
 .section-title {
     margin-bottom: 65px;
     text-align: center;
 }
 .section-title h2 {
     font-size: 32px;
     margin-bottom: 5px;
     letter-spacing: 0.5px;
     font-weight: 900;
 }
 .section-title p {
     font-size: 14px;
     margin: 0;
 }
 .section-padding {
     padding: 100px 0;
 }
 /*================================================
        3 HEADER AREA
==================================================*/
 
 .custom-navbar {
     border-width: 0;
     background: transparent;
     -webkit-transition: all 0.4s ease-in-out;
     transition: all 0.4s ease-in-out;
 }
 .logo a {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: #fff;
	display: inline-block;
	font-size: 32px;
	font-weight: 800;
	letter-spacing: 3px;
	margin-top: 21px;  /* This changes how far down my name on the top left is */
	text-transform: uppercase;
	-webkit-transition: all 0.4s ease-in-out 0s;
	transition: all 0.4s ease-in-out 0s;
	line-height: 40px;
}
 .logo a:focus {
     text-decoration: none;
 }
 .main-menu {
     text-transform: uppercase;
 }
 .main-menu ul.navbar-nav {
     float: right;
 }
 .main-menu ul.nav.navbar-nav li.active {
     position: relative;
 }
 .main-menu ul.navbar-nav li a {
     color: #fff;
     font-weight: 500;
     font-size: 12px;
     padding: 30px 13px;
     -webkit-transition: all 0.4s ease-in-out;
     transition: all 0.4s ease-in-out;
     position: relative;
 }
 .main-menu ul.navbar-nav li a:focus,  .main-menu ul.navbar-nav li a:hover {
     background: none;
 }
 .custom-navbar.top-nav-collapse .logo a {
     margin-top: 15px;
 }
 .custom-navbar.top-nav-collapse .main-menu ul.navbar-nav li a {
     color: #444;
     padding: 25px 13px;
 }
.logo a span {
     display: inline-block;
     font-size: 28px;
     padding: 9px 5px 8px 7px;
 }
 .custom-navbar.top-nav-collapse {
     background: #fff;
     box-shadow: 0 0 10px #222;
     border-width: 0;
 }
 .custom-navbar.top-nav-collapse .main-menu ul.navbar-nav li.active a:after {
     opacity: 1;
     filter: opacity(1);
     -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
 }
 /*================================================
        4 WELCOME AREA
==================================================*/
 
 .welcome-area {
     background-size: cover;
     background-position: center center;
     z-index: 1;
     position: relative;
     height: 100%;
 }
 .welcome-area:after,
 .quotes-area:after {
     position: absolute;
     content: "";
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: #000;
     opacity: .6;
     filter: opacity(0.7);
     -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
     z-index: -1;
 }
 .welcome-table {
     display: table;
     width: 100%;
     height: 100%;
     text-align: center;
 }
 .welcome-cell {
     display: table-cell;
     vertical-align: middle;
 }
 .welcome-text {
  text-align: center;
  gap: 0.5em;
  padding-top: 259px;
}
 .welcome-text h1 {
    display: block;
    text-transform: capitalize;
    margin: 0;
    font-size: 64px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -1px;
    color: #fff;
 }
 .welcome-text .hero-sub {
    margin: 14px 0 0;
    font-size: 24px;
    line-height: 34px;
    font-weight: 300;
    color: #fff;
}
 .welcome-text .hero-line {
    margin: 6px 0 0;
    font-size: 18px;
    line-height: 28px;
    font-weight: 300;
    color: rgba(255, 255, 255, 0.82);
}
 .welcome-area .home-arrow {
     text-align: center;
     position: absolute;
     bottom: -210px;
     left: 50%;
     -webkit-transform: translate(-50%, -50%);
     transform: translate(-50%, -50%);
 }
 .welcome-area .home-arrow a {
     font-size: 34px;
 }
 .welcome-area .home-arrow svg {
     width: 34px;
     height: 34px;
     fill: currentColor;
     display: inline-block;
     -webkit-transform-style: preserve-3d;
     transform-style: preserve-3d;
     -webkit-animation-name: home-arrow;
     animation-name: home-arrow;
     animation-duration: 2s;
     -webkit-animation-duration: 2s;
     -webkit-animation-iteration-count: infinite;
     animation-iteration-count: infinite;
     -webkit-animation-timing-function: linear;
     animation-timing-function: linear;
 }
 /* WebKit-only for old Safari/Chrome */
@-webkit-keyframes home-arrow {
  from {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    filter: opacity(0);
   -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    opacity: 0;
  }
  10% {
    -webkit-transform: translate3d(0, 5px, 0);
            transform: translate3d(0, 5px, 0);
    filter: opacity(1);
   -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    opacity: 1;
  }
  to {
    -webkit-transform: translate3d(0, 30px, 0);
            transform: translate3d(0, 30px, 0);
    filter: opacity(0);
   -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    opacity: 0;
  }
}
@keyframes home-arrow {
  from {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    filter: opacity(0);
   -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    opacity: 0;
  }
  10% {
    -webkit-transform: translate3d(0, 5px, 0);
            transform: translate3d(0, 5px, 0);
    filter: opacity(1);
   -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    opacity: 1;
  }
  to {
    -webkit-transform: translate3d(0, 30px, 0);
            transform: translate3d(0, 30px, 0);
    filter: opacity(0);
   -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    opacity: 0;
  }
}

 /*================================================
        5 ABOUT AREA
==================================================*/
.about-area .nav-tabs{
    border: none;
    margin-bottom: 50px;
}
.about-area .nav-tabs li{
    width: 50%;
    text-align: center;
}
 .about-area .tab .nav-tabs li a {
     font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
     width: 60%;
     margin: 0 auto;
    background:transparent;
    border-radius:0;
    border-top: none;
    border-bottom: 2px solid #ddd;
    border-left: none;
    border-right: none;
    font-size:16px;
    color: #222;
    padding-bottom: 5px;
     font-weight: 700;
     text-transform: uppercase;
}
.tab .nav-tabs li a:hover{
    background:transparent;
}
.tab .nav-tabs li.active a:after{
    border: none;
}
.tab .tab-content{
    padding:15px;
    margin-top:0;
    border:none;
}
h4.about-heading {
     font-size: 16px;
     font-weight: 600;
    line-height: 26px;
     text-transform: uppercase;
 }
.social-links {
	padding: 0;
	margin: 30px 0 0;
	list-style: none;
}
.social-links li{
    display: inline-block;
    margin-right: 8px;
}
.social-links a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
    height: 40px;
	border: 1px solid #444;
	color: #444;
	border-radius: 50%;
    text-align: center;
    transition: color 0.3s ease, border-color 0.3s ease;
}
 /* Icons are inline SVG rather than an icon font -- three glyphs did not
    justify shipping Font Awesome's stylesheet and five font files. */
.social-links a svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
    display: block;
}
.about-area .skill-group{
    margin-bottom: 38px;
}
.about-area .skill-group:last-child{
    margin-bottom: 0;
}
.about-area h4.skill-group-title {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	text-transform: uppercase;
	font-size: 15px;
    font-weight: 700;
    letter-spacing: 1px;
	margin-bottom: 18px;
    padding-bottom: 8px;
    border-bottom: 2px solid #ddd;
    color: #222;
}
.about-area .skill-list{
    padding: 0;
    margin: 0;
    list-style: none;
}
.about-area .skill-list li{
    position: relative;
    padding-left: 20px;
    margin-bottom: 11px;
    font-size: 15px;
    line-height: 24px;
    color: #444;
}
.about-area .skill-list li:last-child{
    margin-bottom: 0;
}
.about-area .skill-list li:before{
    position: absolute;
    left: 0;
    top: 0;
    font-family: fontawesome;
    content: "\f0da";
    font-size: 14px;
}

 /*================================================
        6 WORK AREA
==================================================*/
 .work-area {
        background-color: #f7f7f7;
    }
 /* --- Project cards --- */
 /* Bootstrap 3 rows are floats, so cards in a row won't match height.
    Flex just this row; the :before/:after clearfix would become flex
    items, so switch it off here. */
.project-row {
    display: flex;
    flex-wrap: wrap;
}
.project-row:before,
.project-row:after {
    display: none;
}
.project-row > div[class*="col-"] {
    display: flex;
}
.project-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    background-color: #fff;
    margin-bottom: 40px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.07);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.project-card:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.10);
    transform: translateY(-3px);
}
.project-media {
    display: block;
    width: 100%;
    padding-top: 62%;              /* aspect box; image comes from inline background-image */
    background-color: #e9edf1;     /* shows through if the photo is missing */
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}
.project-body {
    flex: 1 1 auto;
    padding: 28px 30px 32px;
}
.project-meta {
    display: block;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #8a949e;
    margin-bottom: 10px;
}
h3.project-title {
    font-size: 22px;
    font-weight: 700;
    line-height: 30px;
    margin: 0 0 14px;
    color: #222;
}
.project-body p {
    font-size: 15px;
    line-height: 26px;
    margin-bottom: 16px;
}
.project-link {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s ease;
}
.project-link:hover,
.project-link:focus {
    text-decoration: none;
}

 /* --- Measured-data table inside a project modal --- */
.spec-table {
    width: 100%;
    border-collapse: collapse;
    margin: 22px 0 8px;
    font-size: 14px;
}
.spec-table th {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #8a949e;
    text-align: right;
    padding: 0 0 8px 14px;
    border-bottom: 1px solid #ddd;
}
.spec-table th:first-child {
    text-align: left;
    padding-left: 0;
}
.spec-table td {
    padding: 11px 0 11px 14px;
    text-align: right;
    border-bottom: 1px solid #f0f0f0;
    font-variant-numeric: tabular-nums;
}
.spec-table td:first-child {
    text-align: left;
    padding-left: 0;
}
.spec-table tr.spec-selected td {
    font-weight: 600;
    color: #222;
}
.spec-note {
    font-size: 13px;
    color: #8a949e;
    margin-bottom: 22px;
}

 /* --- Portrait (Shorts-style) video embed --- */
.video-portrait {
    position: relative;
    width: 100%;
    max-width: 300px;
    margin: 22px auto 10px;
    padding-top: 177.78%;   /* 9:16 -- the Short is vertical */
}
.video-portrait iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.video-caption {
    font-size: 14px;
    line-height: 22px;
    color: #777;
    text-align: center;
    max-width: 420px;
    margin: 0 auto;
}

 /* --- About body --- */
 /* Short bio next to a tall portrait reads as empty space, so cap the
    photo and center the two columns against each other. */
.about-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.about-row:before,
.about-row:after {
    display: none;
}
.author-image img {
    display: block;
    width: 100%;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 3px;
}
.about-body p {
    font-size: 17px;
    line-height: 32px;
    margin-bottom: 22px;
}
.about-body .tools-line {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 13px;
    letter-spacing: 0.6px;
    color: #777;
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid #e6e6e6;
}

 /* --- Research & writing --- */
.writing-item {
    padding: 26px 0;
    border-bottom: 1px solid #ececec;
}
.writing-item:last-child {
    border-bottom: none;
}
.writing-item h3 {
    font-size: 20px;
    font-weight: 700;
    margin: 0 0 8px;
    color: #222;
}
.writing-meta {
    display: block;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #8a949e;
    margin-bottom: 12px;
}
.writing-item p {
    font-size: 15px;
    line-height: 26px;
    margin-bottom: 10px;
}

 /* --- Contact --- */
.contact-cta {
    font-size: 20px;
    line-height: 32px;
    color: #333;
    margin-bottom: 26px;
}
.contact-links {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 15px;
    margin-bottom: 34px;
}
.contact-links a {
    border-bottom: 1px solid transparent;
}
.contact-links a:hover {
    text-decoration: none;
}
.contact-sep {
    color: #ccc;
    margin: 0 12px;
}
.modal-content {
	padding: 10px 30px;
	border-radius: 0px;
}
.modal-body {
	position: relative;
	padding: 15px;
}
.modal-body h3{
    margin-top: 20px;
    margin-bottom: 10px;
}
.modal-body p{
    margin-bottom: 0;
}
.modal-body ul {
	margin-top: 25px;
}
.project-list li{
    padding: 5px 0;
    font-size: 14px;
}
.project-list label {
	color: #222;
	margin-bottom: 0;
	margin-right: 0;
	width: 120px;
    font-weight: 600;
}
.project-list li a:hover{
    color: #444;
}

 /*================================================
        7 CONTACT AREA
==================================================*/
 /* Dark closing section -- separates it from the white Writing section
    above and carries into the dark footer below. */
.contact-info-area {
     background-color: #1b1f24;
 }
.contact-info-area .section-title h2 {
     color: #fff;
 }
.contact-info-area .contact-cta {
     color: #f2f5f8;
 }
.contact-info-area .contact-links a {
     color: #5cc0ff;
 }
.contact-info-area .contact-links a:hover {
     color: #fff;
 }
.contact-info-area .contact-sep {
     color: #4a5560;
 }


 /*================================================
        8 FOOTER AREA
==================================================*/
 
 .footer {
     background-color: #222;
     padding: 20px 0;
 }
 .footer p {
     font-size: 16px;
     color: #fff;
     margin: 0px;
 }
.writing-note {
    font-size: 13px;
    color: #8a949e;
    font-style: italic;
}

/* Project modals carry real technical detail; 600px is too narrow for it. */
@media (min-width: 992px) {
    .work-area .modal-dialog {
        width: 740px;
    }
}
