/* These main CSS elements were made between 1/27/2025 and 1/28/2025 by Peter Nguyen for peten.ca */ /* MAIN */ body { min-height: 100vh; display: flex; flex-direction: column; overflow: auto; position: relative; background-color: #f9f9f9; margin: 0 !important; padding: 0 !important; } /* FONTS */ .font-ubuntu { font-family: "Ubuntu Sans", serif; font-optical-sizing: auto; font-weight: bold; font-style: normal; font-variation-settings: "wdth" 100; } .font-montserrat { font-family: "Montserrat", serif; font-optical-sizing: auto; font-weight: normal; font-style: normal; } /* TEXT */ h1 { font-size: 2rem !important; font-weight: 450 !important; margin: 0; } h2 { font-size: 1.1rem !important; font-weight: bold; } h3 { font-size: 1.5rem !important; font-weight: 350 !important; margin: 0; } h4 { font-size: 0.9rem !important; font-weight: 300; margin: 0; opacity: 0.5; } p { font-size: 1rem !important; font-weight: 400; width: 300px; text-wrap: wrap; } a { text-decoration: none !important; color: inherit !important; } /* ANIMS */ .fade-in { opacity: 1; animation-name: fadeInOpacity; animation-iteration-count: 1; animation-timing-function: ease-in; animation-duration: 0.5s; } @keyframes fadeInOpacity { 0% { opacity: 0; } 100% { opacity: 1; } } /* NAV */ .sidebar nav ul { list-style-type: none; padding: 0; margin: 0; } .nav-link { font-size: 1.5rem !important; } .active { font-weight: 500 !important; } /* BOTTOM OF PAGE */ .footer { width: 100%; text-align: center; font-size: 0.75rem; padding: 10px; margin-top: auto; opacity: 0.5; } /* PAGE SPECIFIC */ .container { display: flex; flex-direction: row; justify-content: center; text-align: left; padding-top: 3%; flex-grow: 1; } .projects-content { padding-top: 1%; padding-left: 5%; width: 100vw; } .projects-grid { display: grid; gap: 1em; grid-template-columns: auto auto auto; grid-auto-flow: row; } .grid-box { background: white; padding: 15px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); border: 1px solid #ddd; } .inactive { opacity: 0.5; } .profile-pic { width: 100px; border-radius: 50%; } .sidebar { display: flex; flex-direction: column; align-items: flex-start; padding-top: 1%; /* Keeps everything left-aligned */ } .sidebar img { padding-bottom: 5%; } .year { padding-top: 3%; } /* MOBILE CSS ADAPTATIONS */ @media (max-width: 768px) { /* Make sure the container stacks correctly */ .container { flex-direction: column; align-items: left; width: 100%; padding: 5% !important; } /* Sidebar adjustments */ .sidebar { width: 100%; align-items: left; text-align: left; padding-bottom: 20px; } .sidebar nav ul { display: flex; flex-direction: column; align-items: left; } .sidebar nav ul li { text-align: left; } /* Project Grid - stack in 1 column */ .projects-grid { grid-template-columns: 1fr; width: 100%; padding: 0; padding-bottom: 5%; } .grid-box { width: 100%; margin: 0 auto; } /* Adjust project content */ .projects-content { width: 100%; padding-left: 0; text-align: left; } /* Headings */ header { border-top: 1px solid grey; padding-top: 5%; } h1 { font-size: 1.5rem !important; } h2 { font-size: 1.1rem !important; } h3 { font-size: 1.2rem !important; } .year { padding-bottom: 2%; } p { font-size: 1rem !important; width: auto; } /* Footer */ .footer { text-align: center; padding: 15px; font-size: 0.8rem; } }