body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f8f9fa;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6}:root{--primary:#ff6b6b;--primary-light:#ff6b6b1a;--secondary:#4ecdc4;--secondary-light:#4ecdc41a;--accent:#ffd93d;--accent-light:#ffd93d1a;--dark-blue:#1a2b3c;--dark-blue-light:#243447;--text-dark:#e8ecf1;--text-light:#a0aec0;--background:#0f1924;--card-background:#1a2b3c;--nav-background:#1a2b3cf2;--card-shadow:0 4px 6px #0003;--hover-shadow:0 8px 15px #0000004d;--border-color:#2d3748}.App{background:#0f1924;background:var(--background);color:#e8ecf1;color:var(--text-dark);min-height:100vh;text-align:center}.navbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1a2b3cf2;background:var(--nav-background);border-bottom:1px solid #2d3748;border-bottom:1px solid var(--border-color);box-shadow:0 4px 6px #0003;box-shadow:var(--card-shadow);justify-content:space-between;left:0;min-height:70px;padding:1rem 2rem;position:fixed;right:0;top:0;z-index:9999}.nav-brand,.navbar{align-items:center;display:flex}.nav-brand{flex-shrink:0;gap:1rem;margin-right:2rem}.nav-logo{border:1px solid #4ecdc44d;border-radius:50%;box-shadow:0 4px 6px #0003;box-shadow:var(--card-shadow);height:40px;transition:all .3s ease;width:auto}.nav-logo:hover{border-color:#ff6b6b4d;transform:scale(1.05)}.nav-brand h1{color:#ff6b6b;color:var(--primary);font-size:1.8rem;font-weight:700;margin:0;text-shadow:0 2px 4px #0003;white-space:nowrap}.nav-links{display:flex;flex:1 1;flex-wrap:wrap;gap:1.5rem;justify-content:flex-end;list-style:none;margin:0;min-width:-webkit-max-content;min-width:max-content;padding:0}.nav-link{background:none;border:none;border-radius:20px;color:#a0aec0;color:var(--text-light);cursor:pointer;font-size:1.1rem;font-weight:500;padding:.5rem 1rem;position:relative;transition:all .3s ease}.nav-link:after{background:#4ecdc4;background:var(--secondary);bottom:0;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s ease;width:0}.nav-link:hover{color:#ff6b6b;color:var(--primary)}.nav-link:hover:after{width:80%}.nav-link.active{background:#ff6b6b1a;background:var(--primary-light);color:#ff6b6b;color:var(--primary)}.nav-link.active:after{background:#ff6b6b;background:var(--primary);width:80%}.main-content{margin:0 auto;max-width:1200px;min-height:calc(100vh - 80px);padding-bottom:2rem;padding-top:80px}@media (max-width:768px){.navbar{flex-direction:column;gap:.75rem;min-height:auto;padding:.75rem}.nav-brand{justify-content:center;margin-right:0;width:100%}.nav-brand h1{font-size:1.4rem}.nav-logo{height:35px}.nav-links{flex-wrap:wrap;gap:.5rem;justify-content:center;padding:0 .75rem;width:100%}.nav-link{font-size:.95rem;min-width:-webkit-max-content;min-width:max-content;padding:.35rem .7rem}.main-content{padding-top:120px}}@media (min-width:769px) and (max-width:1024px){.navbar{padding:1rem 1.5rem}.nav-brand{margin-right:1.5rem}.nav-links{gap:1rem}.main-content{padding-top:90px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease forwards}.about-me{margin:0 auto;max-width:1200px;padding:2rem}.about-me-content{background:#121e2b;border:1px solid var(--border-color);border-radius:15px;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem;padding:2rem;transition:all .3s ease}.about-me-content:hover{border-color:var(--primary);box-shadow:0 6px 12px #00000026;transform:translateY(-5px)}.about-me h2{color:#fff;font-size:2.5rem;margin-bottom:2rem;text-align:center;text-shadow:0 2px 4px #0003}.about-me p{color:var(--text-light);font-size:1.1rem;line-height:1.8;margin-bottom:1.5rem}.image-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:2rem}.image-card{background:#121e2b;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:all .3s ease}.image-card:hover{background:#1a2b3c;border-color:var(--secondary);box-shadow:0 6px 12px #00000026;transform:translateY(-5px)}.image-card img{filter:brightness(.85);height:250px;object-fit:cover;transition:all .3s ease;width:100%}.image-card:hover img{filter:brightness(1);transform:scale(1.05)}.image-caption{background:#0000;color:var(--text-light);font-size:1rem;padding:1rem;text-align:center}.quote-section{margin:1rem auto;max-width:900px;padding:1.5rem 1rem;position:relative;text-align:center}.quote-section blockquote{color:#2c3e50;font-size:2.2rem;font-style:italic;font-weight:300;line-height:1.4;margin:0;position:relative}.quote-section blockquote:after,.quote-section blockquote:before{color:#3498db;content:'"';font-size:4rem;opacity:.2;position:absolute}.quote-section blockquote:before{left:-2rem;top:-1rem}.quote-section blockquote:after{bottom:-2rem;right:-2rem}.social-links-section{background:#0f1924;border:2px solid #ffffff1a;border-radius:15px;box-shadow:0 4px 15px #0000001a;margin-bottom:3rem;padding:2rem}.links-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));justify-items:center;padding:1rem}.social-link{align-items:center;border:none;border-radius:8px;color:#fff;display:flex;font-size:1.1rem;font-weight:500;justify-content:center;padding:1rem 1.5rem;text-decoration:none;transition:all .3s ease;width:90%}.social-link i{font-size:1.3rem;margin-right:.8rem}.social-link span{white-space:nowrap}.github{background-color:#24292e}.linkedin{background-color:#0077b5}.email{background-color:#ea4335}.goodreads{background-color:#553b08}.resume{background-color:#2ecc71}.social-link:hover{box-shadow:0 6px 12px #0003;filter:brightness(110%);transform:translateY(-3px)}.about-section{background:#0f1924;border:2px solid #ffffff1a;border-radius:15px;margin:3rem 0;padding:2rem;text-align:center}.about-text{color:#34495e;font-size:1.3rem;line-height:1.8;margin:0}.image-section{background:#0f1924;border:2px solid #ffffff1a;border-radius:15px;margin:1.5rem 0;padding:1rem}.about-main-section{align-items:flex-start;display:flex;flex-wrap:wrap;gap:2.5rem;margin-bottom:2.5rem}.about-photo-col{align-items:flex-start;display:flex;flex:0 0 220px;justify-content:center}.aboutme-photo{background:#23283a;border:3px solid #3a7bd5;border-radius:18px;box-shadow:0 4px 18px #0000002e;height:260px;object-fit:cover;width:210px}.about-text-col{background:#23283a;border-radius:16px;box-shadow:0 2px 12px #0000001a;color:#f1f1f1;flex:1 1 320px;min-width:260px;padding:2rem 2rem 1.5rem}.about-tldr{background:#3a7bd5;border-radius:10px;box-shadow:0 2px 8px #00000014;color:#fff;font-size:1.08rem;font-weight:500;padding:.7rem 1.2rem}.about-section-block,.about-tldr{margin-bottom:1.2rem}.about-section-block h3{color:#ffd93d;font-size:1.18rem;font-weight:600;margin-bottom:.3rem}.about-section-block p{color:#f1f1f1;font-size:1.05rem;line-height:1.7;margin:0}.about-bio-flex{align-items:stretch;display:flex;gap:2.5rem;margin:2.5rem 0}.aboutme-bio-photo-col{align-items:stretch;display:flex;flex:0 0 260px;height:auto;justify-content:center}.about-bio-card{align-items:stretch;backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);background:linear-gradient(135deg,#3cb47821,#3a7bd514);border-radius:22px;box-shadow:0 2px 12px #0000001a;display:flex;margin:2.5rem auto;max-width:1200px;min-height:340px;overflow:hidden;width:100%}.aboutme-bio-photo{aspect-ratio:13/17;background:#23283a;border-radius:22px 0 0 22px;box-shadow:none;flex-shrink:0;height:100%;max-width:340px;min-width:160px;object-fit:cover;object-position:center;transition:all .3s ease;width:100%}.about-bio-text{background:none;border-radius:0 22px 22px 0;color:#f1f1f1;display:flex;flex:1 1 320px;flex-direction:column;font-size:1.13rem;justify-content:center;line-height:1.7;min-width:220px;padding:2.2rem 2rem 2rem}@media (max-width:1200px){.about-bio-card{max-width:98vw;width:100%}}@media (max-aspect-ratio:4/5),(max-width:750px){.about-bio-card{align-items:center;border-radius:18px;flex-direction:column;max-width:100vw;min-height:0;width:100%}.aboutme-bio-photo-col{align-items:center;flex:none;height:240px;justify-content:center;max-height:240px;width:100%}.aboutme-bio-photo{border-radius:18px 18px 0 0;height:100%;max-width:100vw;min-width:0;object-fit:cover;object-position:center 18%;transform:scale(1.01);transition:all .3s ease;width:100vw}.about-bio-text{align-items:center;border-radius:0 0 18px 18px;font-size:1rem;min-width:0;padding:1.2rem 1rem 1rem;text-align:center}}@media (max-width:768px){.about-me{padding:1rem}.quote-section{padding:2rem .5rem}.quote-section blockquote{font-size:1.8rem}.quote-section blockquote:after,.quote-section blockquote:before{font-size:3rem}.links-grid{gap:1rem;grid-template-columns:1fr}.social-link{padding:.8rem 1rem;width:100%}h2{font-size:1.5rem}.about-text{font-size:1.1rem}}.image-collage{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;min-height:500px;padding:20px;position:relative;width:100%;z-index:1}.collage-image-container{background-color:#fff;border-radius:4px;box-shadow:0 4px 8px #0000001a;cursor:pointer;height:200px;margin:10px;padding:8px;position:relative;transition:transform .3s ease;width:200px}.collage-image-container:hover{box-shadow:0 8px 16px #0003;transform:scale(1.05)!important;z-index:2!important}.collage-image{border-radius:2px;height:100%;object-fit:cover;width:100%}.resume-modal-overlay{align-items:center;background:#141820eb;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.resume-modal-content{align-items:center;background:#23283a;border-radius:16px;box-shadow:0 8px 32px #00000059;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;padding:32px 24px 24px;position:relative}.resume-modal-close{background:none;border:none;color:#fff;cursor:pointer;font-size:2.2rem;position:absolute;right:20px;top:16px;transition:color .2s;z-index:2}.resume-modal-close:hover{color:#ff6b6b}.resume-iframe{background:#fff;border:none;border-radius:8px;box-shadow:0 2px 12px #00000026;height:70vh;margin-bottom:18px;width:60vw}.resume-download-btn{background:#3a7bd5;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:1.1rem;margin-top:8px;padding:12px 28px;text-decoration:none;transition:background .2s}.resume-download-btn:hover{background:#2851a3}@media (max-width:900px){.resume-iframe{height:60vh;width:90vw}}:root{--card-background:#121e2b;--card-hover:#1a2b3c;--text-bright:#fff}.glass{margin:0 auto;max-width:1200px;padding:2rem}.glass-project{background:#121e2b;background:var(--card-background);border:1px solid var(--border-color);border-radius:15px;box-shadow:var(--card-shadow);margin-bottom:3rem;padding:2rem}.glass h2{color:#fff;color:var(--text-bright);font-size:2.5rem;margin-bottom:2rem;position:relative;text-align:center;text-shadow:0 2px 4px #0003}.glass h2:after{background:var(--secondary);border-radius:2px;box-shadow:0 2px 4px #4ecdc433;content:"";display:block;height:3px;margin:1rem auto;width:60px}.glass h3{color:#fff;color:var(--text-bright);font-size:1.8rem;margin:2rem 0 1rem;text-align:center}.about-glass,.areas-excellence,.mission-statement,.sustainability-goals{margin-bottom:2.5rem}.about-glass p,.area-card,.goal-card,.mission-content{background:#121e2b;background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;color:var(--text-dark);margin:1rem 0;padding:1.5rem;transition:all .3s ease}.about-glass p:hover,.area-card:hover,.goal-card:hover,.mission-content:hover{background:#1a2b3c;background:var(--card-hover);border-color:var(--secondary);box-shadow:var(--hover-shadow);transform:translateY(-2px)}.experience-components{margin-top:4rem}.experience-section{margin-bottom:3rem}.experience-section h3{color:#fff;color:var(--text-bright);font-size:2rem;margin-bottom:1.5rem;position:relative;text-align:center}.experience-section h3:after{background:var(--accent);border-radius:2px;box-shadow:0 2px 4px #ffd93d33;content:"";display:block;height:3px;margin:1rem auto;width:60px}.card-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));padding:1rem}.experience-card{background:#121e2b;background:var(--card-background);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--card-shadow);overflow:hidden;transition:all .3s ease}.experience-card:hover{background:#1a2b3c;background:var(--card-hover);border-color:var(--primary);box-shadow:var(--hover-shadow);transform:translateY(-5px)}.card-images{background:#121e2b;background:var(--card-background)}.card-images img{filter:brightness(.85);transition:all .3s ease}.experience-card:hover .card-images img{filter:brightness(1);transform:scale(1.05)}.card-content{background:#121e2b;background:var(--card-background);padding:1.5rem}.experience-card:hover .card-content{background:#1a2b3c;background:var(--card-hover)}.card-content h4{color:#fff;color:var(--text-bright);font-size:1.3rem;margin-bottom:.8rem;text-shadow:0 1px 2px #0003}.card-content p{color:var(--text-light);line-height:1.6;margin:0}.card-images{grid-gap:.5rem;background:#fff;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:.5rem .5rem 0}.card-images img{border-radius:8px 8px 0 0;height:150px;object-fit:cover;width:100%}@media (max-width:768px){.glass{padding:1rem}.glass h2{font-size:2rem}.experience-section h3{font-size:1.6rem}.card-grid,.card-images{grid-template-columns:1fr}.card-images{height:auto}}.books{margin:0 auto;max-width:1200px;padding:2rem 0}.books-content h2{color:#2c3e50;font-size:2.8rem;font-weight:700;margin-bottom:1rem;text-align:center}.books-intro{color:var(--text-bright);cursor:pointer;font-size:2.2rem;font-style:italic;font-weight:300;line-height:1.4;margin:2rem auto 4rem;max-width:900px;padding:3rem 1rem;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.books-intro:after,.books-intro:before{color:var(--secondary);content:'"';font-size:4rem;opacity:.8;position:absolute;text-shadow:0 2px 4px #4ecdc44d}.books-intro:before{left:-2rem;top:1rem}.books-intro:after{bottom:0;right:-2rem}.hover-text{background-color:#2c3e50e6;border-radius:6px;bottom:-60px;box-shadow:0 4px 8px #0003;color:var(--text-bright);font-size:1.1rem;left:50%;line-height:1.4;max-width:600px;opacity:0;padding:12px 16px;position:absolute;text-align:center;transform:translateX(-50%);transition:all .3s ease;visibility:hidden;white-space:normal;z-index:10}.hover-text.visible{bottom:-50px;opacity:1;visibility:visible}.hover-text:after{border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid #3498dbf2;bottom:-5px;content:"";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0}.book-section{background:#0f1924;border:2px solid #ffffff1a;border-radius:20px;margin-bottom:4rem;padding:2.5rem}.book-section:last-child{margin-bottom:0}.book-section h3{font-size:2rem;font-weight:600;margin-bottom:2rem;padding-bottom:1rem;position:relative;text-align:center}.book-section h3:after{border-radius:2px;bottom:0;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.fiction-section h3:after{background:linear-gradient(135deg,#e74c3c,#c0392b)}.nonfiction-section h3:after{background:linear-gradient(135deg,#3498db,#2980b9)}.job-specific-section h3:after{background:linear-gradient(135deg,#27ae60,#229954)}.books-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));justify-items:center}.book-card{border-radius:8px;height:300px;perspective:1000px;position:relative;width:200px}.book-card.clickable{cursor:pointer}.book-card:hover .book-cover{transform:rotateY(10deg) rotateX(5deg)}.book-cover{overflow:hidden;position:relative;transform-style:preserve-3d;transition:transform .6s ease}.book-cover,.book-cover img{border-radius:6px;height:100%;width:100%}.book-cover img{object-fit:cover}.book-card:hover .book-cover img,.book-cover img{box-shadow:0 8px 25px #0000004d}.book-overlay{align-items:center;background:#0f1924f2;border-radius:6px;bottom:0;display:flex;justify-content:center;left:0;opacity:0;padding:1.5rem;position:absolute;right:0;top:0;transition:opacity .3s ease}.book-card:hover .book-overlay{opacity:1}.book-details{color:#fff;text-align:center;transform:translateY(20px);transition:transform .3s ease}.book-card:hover .book-details{transform:translateY(0)}.book-details .book-title{color:#fff;font-size:1.1rem;font-weight:600;line-height:1.3;margin-bottom:.5rem}.book-details .book-author{color:#bdc3c7;font-size:.9rem;font-style:italic;margin-bottom:1rem}.book-details .book-description{-webkit-line-clamp:4;-webkit-box-orient:vertical;color:#ecf0f1;display:-webkit-box;font-size:.8rem;line-height:1.4;margin-bottom:1rem;overflow:hidden}.description-link{border-radius:2px;color:#3498db;cursor:pointer;display:inline-block;margin:-2px -4px;padding:2px 4px;text-decoration:underline;transition:color .3s ease}.description-link:hover{background-color:#3498db1a;color:#5dade2;text-decoration:none}.book-status{border-radius:15px;display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.5px;padding:.3rem .8rem;text-transform:uppercase}.book-status.reading{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.book-status.completed{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff}.book-status.planned{background:linear-gradient(135deg,#95a5a6,#7f8c8d);color:#fff}.book-status.default{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.fiction-section{border-left:5px solid #e74c3c}.nonfiction-section{border-left:5px solid #3498db}.job-specific-section{border-left:5px solid #27ae60}@media (max-width:1024px){.books-grid{gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.book-card{height:270px;width:180px}}@media (max-width:768px){.books-content h2{font-size:2.2rem}.books-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.book-card{height:240px;width:160px}.books{padding:1rem 0}.book-section{margin-bottom:2rem;padding:1.5rem}.book-section h3{font-size:1.6rem}.book-details .book-title{font-size:1rem}.book-details .book-author{font-size:.8rem}.book-details .book-description{-webkit-line-clamp:3;font-size:.75rem}.books-intro{font-size:1.8rem;padding:2rem 2.5rem}.books-intro:after,.books-intro:before{font-size:3rem}.books-intro:before{left:.5rem;top:.5rem}.books-intro:after{bottom:-.5rem;right:.5rem}.hover-text{font-size:.9rem;max-width:300px}}@media (max-width:480px){.books-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.book-card{height:210px;width:140px}.book-overlay{padding:1rem}.books-intro{font-size:1.6rem;padding:2rem}.books-intro:after,.books-intro:before{font-size:2.5rem}.books-intro:before{left:.3rem;top:.3rem}.books-intro:after{bottom:-.3rem;right:.3rem}}.planning-overlay{background:#b4b4b4a6;border-radius:8px;bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:2}.currently-reading-marker{background:linear-gradient(135deg,#ff9800,#ffb347);border-radius:0 12px 12px 0;box-shadow:0 2px 8px #0000001f;color:#fff;font-size:.75rem;font-weight:700;left:-18px;letter-spacing:1px;padding:.4rem 1.2rem .4rem 1.5rem;pointer-events:none;position:absolute;top:12px;transform:rotate(-12deg);z-index:3}.projects{margin:0 auto;max-width:1200px;padding:2rem 0}.projects-content h2{color:#2c3e50;font-size:2.8rem;font-weight:700;margin-bottom:1rem;text-align:center}.projects-intro{color:#666;font-size:1.1rem;line-height:1.8;margin-bottom:3rem;margin-left:auto;margin-right:auto;max-width:800px;text-align:center}.project-section{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:15px;box-shadow:0 10px 30px #0000001a;margin-bottom:4rem;padding:2rem}.project-section h3{color:#2c3e50;font-size:2rem;margin-bottom:2rem;padding-bottom:1rem;position:relative;text-align:center}.project-section h3:after{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:2px;bottom:0;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.projects-container{margin:0 auto;max-width:1200px;padding:2rem}.projects-container h2{font-size:2rem;margin-bottom:1.5rem;margin-top:0}.projects-container h2+.projects-grid{margin-bottom:2.5rem}.projects-container h2:nth-of-type(2){margin-top:3.5rem}.projects-grid{column-count:1;column-gap:2rem;margin:0 auto;max-width:1200px;width:100%}@media (min-width:600px){.projects-grid{column-count:2}}@media (min-width:900px){.projects-grid{column-count:3}}.project-card{background:#0f1924;border:2px solid #ffffff1a;border-radius:15px;box-shadow:0 4px 15px #0000001a;break-inside:avoid;display:block;flex-direction:column;height:-webkit-fit-content;height:fit-content;margin:0 0 2rem;max-width:500px;min-width:220px;overflow:hidden;page-break-inside:avoid;transition:all .3s ease;width:100%}.project-card:hover{border-color:var(--secondary);box-shadow:0 6px 20px #0003;transform:translateY(-5px)}.project-header{padding:1.5rem 1.5rem 1rem}.project-title{color:var(--text-bright);font-size:1.5rem;margin:0}.project-description{padding:0 1.5rem 1.5rem}.project-description p{color:var(--text-light);line-height:1.6;margin-bottom:1rem}.github-link{align-items:center;color:#007bff;display:inline-flex;font-size:1.2rem;padding:.5rem;position:absolute;right:1.5rem;text-decoration:none;transition:color .2s ease}.github-link:hover{color:#0056b3}.github-link i{font-size:1.4rem}.project-media-grid{grid-gap:.8rem;display:grid;gap:.8rem;grid-template-columns:repeat(2,1fr);padding:.8rem;width:100%}.project-media-grid.single-image{grid-template-columns:1fr}.project-media-grid.single-image .media-container{max-width:none;padding-top:56.25%}.media-container{border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;padding-top:75%;position:relative;transition:box-shadow .3s ease;width:100%}.project-media{border-radius:8px;height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}@media (max-width:1200px){.projects-grid{gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width:768px){.projects-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.project-media-grid{gap:.6rem;padding:.6rem}.project-header{padding:1.2rem 1.2rem .8rem}.project-description{padding:0 1.2rem 1.2rem}}@media (max-width:480px){.projects-grid{grid-template-columns:1fr}.project-media-grid{gap:.5rem;padding:.5rem}}.project-tech{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1rem}.tech-tag{color:var(--secondary);font-size:.9rem;opacity:.9;transition:color .3s ease}.tech-tag:hover{color:var(--primary)}.tech-tag:not(:last-child):after{color:var(--text-light);content:"•";margin-left:.8rem;opacity:.5}.modal{align-items:center;background:#000000e6;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#0000;max-height:90vh;max-width:90vw;position:relative}.close-button{color:#fff;cursor:pointer;font-size:2rem;position:absolute;right:-2rem;top:-2rem;transition:color .3s ease;z-index:1}.close-button:hover{color:#ddd}.modal-content h3{color:#fff;margin-bottom:1.5rem;padding-right:2rem;text-align:center}.modal-media{align-items:center;display:flex;justify-content:center}.modal-media .media-container{background:#0000;height:auto;max-height:80vh;max-width:90vw;padding-top:0;width:auto}.modal-media .project-media{height:auto;max-height:80vh;max-width:90vw;object-fit:contain;position:relative;width:auto}.modal-media .media-container:hover .project-media{transform:none}@media (max-width:768px){.projects-content h2{font-size:2.2rem}.project-header{align-items:flex-start;flex-direction:column}.github-link{justify-content:center;width:100%}.close-button{right:-1rem;top:-1.5rem}}@media (max-width:480px){.project-card,.project-section,.projects{padding:1rem}}
/*# sourceMappingURL=main.a13c23cd.css.map*/