.container { max-width: 960px; } body{ position: relative; } .cookie-popup { position: fixed; bottom: 0; left: 0; width: 100%; background-color: #f2f2f2; padding: 10px; z-index: 9999; } .cookie-popup-content { display: flex; flex-direction: row; justify-content: space-between; align-items: center; } .cookie-popup-content p { margin: 0; } .cookie-popup-accept { background-color: #4CAF50; color: white; border: none; padding: 10px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin-left: 10px; cursor: pointer; } .cookie-popup-accept:hover { background-color: #3e8e41; } .blur { color: transparent; text-shadow: 0 0 5px rgba(0,0,0,0.5); } /* * Custom translucent site header */ .site-header { background-color: #78826d; -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); border-radius: 10px; } .site-header a { color: #78826d; transition: color .15s ease-in-out; } .site-header a:hover { color: #fff; text-decoration: none; } /* * Extra utilities */ .flex-equal > * { flex: 1; } @media (min-width: 40em) { .flex-md-equal > * { flex: 1; } } /* standard elements */ .btn-outline-clight{ display: inline-block; font-weight: 400; line-height: 1.5; color: #fff; text-align: center; text-decoration: none; background-color: #78826d; border: 1px solid #fff; padding: 0.375rem 0.75rem; font-size: 1rem; border-radius: 10px; transition: color .15s ease-in-out, background-color .15s, ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; } .btn-outline-clight:hover{ color:#78826d; background-color:#fff; border-radius: 10px; border: 1px solid #78826d; } .btn-outline-cdark { display: inline-block; font-weight: 400; line-height: 1.5; color: #78826d; text-align: center; text-decoration: none; background-color: #fff; border: 1px solid #78826d; padding: 0.375rem 0.75rem; font-size: 1rem; border-radius: 10px; transition: color .15s ease-in-out, background-color .15s, ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; } .btn-outline-cdark:hover{ background-color:#78826d; border: 1px solid #fff; border-radius: 10px; color:#fff; } .text-fine{ color: #fff; } .bg-gdark{ background-color: #78826d; } .bg-glight{ background-color: #DCDCDC; } .rb10{ border-radius: 10px; } /* Navigation */ .my-navbar { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding-top: 0.5rem; padding-bottom: 0.5rem; } .my-navbar-brand { padding-top: 0.3125rem; padding-bottom: 0.3125rem; margin-right: 1rem; font-size: 1.25rem; text-decoration: none; white-space: nowrap; } .nav { display: flex; flex-wrap: wrap; padding-left: 0; margin-bottom: 0; list-style: none; } .nav-links { display: flex; padding: 0.1rem .25rem; margin-right: 5px; color: #fff; text-decoration: none; background: #fff; border: 1px solid #fff; border-radius: 0.5rem; -ms-text-size-adjust: auto; transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out; } .nav-links:focus, .nav-links:hover { color: #fff; background-color: #78826d; border: 1px solid #fff; } @media (min-width: 450px) { .nav-links { display: block; padding: 0.5rem 1rem; margin-right: 5px; color: #fff; text-decoration: none; background: #fff; border: 1px solid #fff; border-radius: 0.5rem; transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out; } .nav-links:focus, .nav-links:hover { color: #fff; background-color: #78826d; border: 1px solid #fff; } } /* Project section */ @media (max-width: 768px) { #project1{ background-color: #78826d; margin-bottom: 1em; text-align: center; color: #fff; border-radius: 10px; } #project2{ background-color: #DCDCDC; margin-bottom: 1em; text-align: center; border-radius: 10px; } #project3{ background-color: #78826d; margin-bottom: 1em; text-align: center; color: #fff; border-radius: 10px; } #project4{ background-color: #DCDCDC; text-align: center; border-radius: 10px; } } @media (min-width: 768px) { #project1{ background-color: #78826d; text-align: center; color: #fff; border-radius: 10px; } #project2{ background-color: #DCDCDC; text-align: center; border-radius: 10px; } #project3{ background-color: #DCDCDC; text-align: center; border-radius: 10px; } #project4{ background-color: #78826d; text-align: center; color: #fff; border-radius: 10px; } } .project-grid-long{ display: grid; place-items: center; align-content: center; grid-template-rows: auto auto auto auto; grid-template-columns: 1fr 1fr; gap: 10px; } .project-grid-wide{ display: grid; place-items: center; align-content: center; grid-template-rows: auto auto auto auto 150px; grid-template-columns: 1fr 1fr; gap: 10px } #project-title{ grid-column-start: 1; grid-column-end: 3; grid-row-start: 1; grid-row-end: 2; } #project-description{ grid-column-start: 1; grid-column-end: 3; grid-row-start: 2; grid-row-end: 2; } #project-demo-button{ grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; grid-row-end: 3; } #project-code-button{ grid-column-start: 2; grid-column-end: 3; grid-row-start: 3; grid-row-end: 3; } #project-img{ grid-column-start: 1; grid-column-end: 3; grid-row-start: 4; grid-row-end: 4; } #project-tech{ aspect-ratio: 3 / 1; grid-column-start: 1; grid-column-end: 3; grid-row-start: 5; grid-row-end: 6; } .pulse { animation-duration: 1.5s; animation-name: pulse; animation-iteration-count: infinite; animation-direction: alternate; animation-timing-function: ease-in-out; } @keyframes pulse { 0%, 100% { width: 90%; height: 80%; } 50% { width: 95%; height: 85%; } } /* Skills section */ #skill-tree { animation-name: grow-up; animation-direction: alternate; animation-duration: 5s; } @media (min-width: 1115px) { .skill-grid{ display: grid; place-items: center; align-content: center; grid-template-rows: auto 5fr auto; grid-template-columns: 1fr 1fr 1fr; gap:10px; } #skill-title{ grid-column-start: 2; grid-column-end: 3; grid-row-start: 1; grid-row-end: 1; } #skill-tree{ grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; grid-row-end: 3; max-width: 200%; } #skill-quote{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 4; grid-row-end: 4; font-size: 1.5rem; } #skill-tech-left{ grid-column-start: 1; grid-column-end: 1; grid-row-start: 2; grid-row-end: 2; } #skill-tech-right{ grid-column-start: 3; grid-column-end: 3; grid-row-start: 2; grid-row-end: 2; } .tech-grid{ display: grid; place-items: center; align-content: center; grid-template-rows: repeat(3,100px); grid-template-columns: repeat(3,100px); gap: 10px; } .tech-img { width: 100%; height: 100%; object-fit: cover; } #tech-frontend{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; } #tech-backend{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; } #tech1{ grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; } #tech2{ grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; } #tech3{ grid-column-start: 3; grid-column-end: 4; grid-row-start: 2; } #tech4{ grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; } #tech5{ grid-column-start: 2; grid-column-end: 3; grid-row-start: 3; } #tech6{ grid-column-start: 3; grid-column-end: 4; grid-row-start: 3; } } @media (max-width: 1115px) { .skill-grid{ display: grid; place-items: center; align-content: center; grid-template-rows: auto; grid-template-columns: 1fr 1fr 1fr; gap:10px; } #skill-title{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; } #skill-tree{ grid-column-start: 1; grid-column-end:4; grid-row-start: 2; max-width: 200%; } #skill-quote{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 3; font-size: 1.5rem; } #skill-tech-left{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 4; } #skill-tech-right{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 5; } .tech-grid{ display: grid; place-items: center; align-content: center; grid-template-rows: repeat(3,100px); grid-template-columns: repeat(3,100px); gap: 10px; } .tech-img { width: 100%; height: 100%; object-fit: cover; } #tech-frontend{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; } #tech-backend{ grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; } #tech1{ grid-column-start: 1; grid-column-end: 2; grid-row-start: 2; } #tech2{ grid-column-start: 2; grid-column-end: 3; grid-row-start: 2; } #tech3{ grid-column-start: 3; grid-column-end: 4; grid-row-start: 2; } #tech4{ grid-column-start: 1; grid-column-end: 2; grid-row-start: 3; } #tech5{ grid-column-start: 2; grid-column-end: 3; grid-row-start: 3; } #tech6{ grid-column-start: 3; grid-column-end: 4; grid-row-start:3; } } /* Contact form section */ form { display: flex; align-items: center; justify-content: center; height: 100%; background-color: #78826d; background-size: cover; border-radius: 10px; box-shadow: 0px 0px 10px #ccc; animation-duration: .5s; animation-name: fade-in; animation-timing-function: ease-in-out; } .form-group { margin-bottom: 20px; } .contact{ display: none; margin: 0 auto; width: auto; } @media (min-width: 780px) { .contact{ display: none; margin: 0 auto; } } label { color: #fff; font-size: 16px; } input, textarea { padding: 10px; border: none; border-radius: 10px; box-shadow: 0px 0px 5px #ccc; width: 100%; font-size: 14px; color: #333; background-color: #f5f5f5; animation: fade-in 0.5s ease-out; } button { background-color: #fff; color: #78826d; padding: 10px 20px; border: 1px solid #fff; border-radius: 10px; font-size: 16px; cursor: pointer; margin-top: 20px; animation: fade-in 0.5s ease-out; } button:hover { background-color: #78826d; border: 1px solid #fff; color: #fff; border-radius: 10px; } /* Footer section */ footer { display: flex; justify-content: space-between; align-items: center; background-color: #78826d; padding: 10px; } .footer-left { display: flex; align-items: center; } .footer-left img { height: 30px; width: 30px; margin-right: 10px; } .footer-left p { font-size: 16px; color: #fff; margin: 0; } .footer-right img { height: 30px; width: 30px; margin-left: 10px; } .hidden{ opacity: 0; filter: blur(5px); transition: all 1.5s; } .show{ opacity: 1; filter: blur(0); } @media(prefers-reduced-motion){ .hidden{ transition: none; } } /* leaf animations */ #leaves { position:relative; top:-50px; width:100%; text-align: right; } #leaves i { display: inline-block; width: 200px; height: 150px; background: linear-gradient(to bottom right, #309900, #005600); transform: skew(20deg); border-radius: 5% 40% 70%; box-shadow: inset 0px 0px 1px #222; border: 1px solid #333; z-index: 1; -webkit-animation: falling 5s 0s infinite; animation: falling 5s 0s infinite; } #leaves i:nth-of-type(2n) { -webkit-animation: falling2 5s 0s infinite; animation: falling2 5s 0s infinite; } #leaves i:nth-of-type(3n) { -webkit-animation: falling3 5s 0s infinite; animation: falling3 5s 0s infinite; } #leaves i:before { position: absolute; content: ''; top: 117px; right: 9px; height: 27px; width: 32px; transform: rotate(49deg); border-radius: 0% 15% 15% 0%; border-top: 1px solid #222; border-bottom: 1px solid #222; border-left: 0px solid #222; border-right: 1px solid #222; background: linear-gradient(to right, rgba(0,100,0,1), #005600); z-index: 1; } #leaves i:after { content: ''; height: 125px; width: 10px; background: linear-gradient(to right, rgba(0,0,0,.15), rgba(0,0,0,0)); display: block; transform: rotate(125deg); position: absolute; left: 85px; border-radius:50%; } #leaves i:nth-of-type(n) { height:23px; width:30px; } #leaves i:nth-of-type(n):before { width:7px; height:5px; top:17px; right:1px; } #leaves i:nth-of-type(n):after { width:2px; height:17px; left: 12px; top:0px; } #leaves i:nth-of-type(2n+1) { height:11px; width:16px; } #leaves i:nth-of-type(2n+1):before { width:4px; height:3px; top:7px; right:0px; } #leaves i:nth-of-type(2n+1):after { width:2px; height:6px; left: 5px; top:1px; } #leaves i:nth-of-type(3n+2) { height:17px; width:23px; } #leaves i:nth-of-type(3n+2):before { height:4px; width:4px; top:12px; right:1px; } #leaves i:nth-of-type(3n+2):after { height:10px; width:2px; top:1px; left:8px; } #leaves i:nth-of-type(n) { -webkit-animation-delay: 1.9s;animation-delay: 1.9s;} #leaves i:nth-of-type(2n) { -webkit-animation-delay: 3.9s;animation-delay: 3.9s;} #leaves i:nth-of-type(3n) { -webkit-animation-delay: 2.3s;animation-delay: 2.3s;} #leaves i:nth-of-type(4n) { -webkit-animation-delay: 4.4s;animation-delay: 4.4s;} #leaves i:nth-of-type(5n) { -webkit-animation-delay: 5s;animation-delay: 5s; } #leaves i:nth-of-type(6n) { -webkit-animation-delay: 3.5s;animation-delay: 3.5s;} #leaves i:nth-of-type(7n) { -webkit-animation-delay: 2.8s;animation-delay: 2.8s;} #leaves i:nth-of-type(8n) { -webkit-animation-delay: 1.5s;animation-delay: 1.5s;} #leaves i:nth-of-type(9n) { -webkit-animation-delay: 3.3s;animation-delay: 3.3s;} #leaves i:nth-of-type(10n) { -webkit-animation-delay: 2.5s;animation-delay: 2.5s;} #leaves i:nth-of-type(11n) { -webkit-animation-delay: 1.2s;animation-delay: 1.2s;} #leaves i:nth-of-type(12n) { -webkit-animation-delay: 4.1s;animation-delay: 4.1s;} #leaves i:nth-of-type(13n) { -webkit-animation-delay: 1s;animation-delay: 1s; } #leaves i:nth-of-type(14n) { -webkit-animation-delay: 4.7s;animation-delay: 4.7s;} #leaves i:nth-of-type(15n) { -webkit-animation-delay: 3s;animation-delay: 3s; } #leaves i:nth-of-type(n) { background: linear-gradient(to bottom right, #309900, #005600); } #leaves i:nth-of-type(2n+2) { background: linear-gradient(to bottom right, #5e9900, #2b5600); } #leaves i:nth-of-type(4n+1) { background: linear-gradient(to bottom right, #990, #564500); } #leaves i:nth-of-type(n) { opacity: .7;} #leaves i:nth-of-type(3n+1) { opacity: .5;} #leaves i:nth-of-type(3n+2) { opacity: .3;} #leaves i:nth-of-type(n) {transform: rotate(180deg);} #leaves i:nth-of-type(n) { -webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;} @keyframes falling { 0% { -webkit-transform: translate3d(300,0,0) rotate(0deg); } 100% { -webkit-transform: translate3d(-350px,700px,0) rotate(90deg); opacity: 0; } } @keyframes falling3 { 0% { -webkit-transform: translate3d(0,0,0) rotate(-20deg); } 100% { -webkit-transform: translate3d(-230px,640px,0) rotate(-70deg); opacity: 0; } } @keyframes falling2 { 0% { -webkit-transform: translate3d(0,0,0) rotate(90deg); } 100% { -webkit-transform: translate3d(-400px,680px,0) rotate(0deg); opacity: 0; } } /* Other misc animations */ @keyframes slide-in-left { 0% { transform: translateX(-100%); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } } @keyframes slide-out-right { 0% { transform: translateX(0); opacity: 1; } 100% { transform: translateX(100%); opacity: 0; } } @keyframes slide-in-right { 0% { transform: translateX(100%); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } } @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes dropdown { 0% { height: 0; opacity: 0; } 100% { height: 100%; opacity: 1; } } @keyframes grow-up { from { transform: scaleY(0); transform-origin: bottom; opacity: 0; } to { transform: scaleY(1); transform-origin: bottom; opacity: 1; } }