@import"https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght,GRAD@0,17..18,400..700,-25..100;1,17..18,400..700,-25..100&display=swap";@font-face{font-family:RocketRaccoon;src:url(/assets/RocketRaccoon-Bm5bf0Lj.otf) format("opentype"),url(/assets/RocketRaccoon-CX3v63Uy.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Granika;src:url(/assets/Granika-BRameQxo.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:transparent;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:10000;color:#2f2f2f;text-decoration:inherit}body{margin:0;padding:0;min-width:320px;min-height:100vh;background-color:transparent}h1{font-size:3.2em;line-height:1.1}.section-title{font-family:Google Sans,sans-serif;font-optical-sizing:auto;font-weight:700;font-style:normal;font-variation-settings:"GRAD" 100;color:#333;font-size:2.2rem;letter-spacing:-.02em;line-height:1.1;margin-top:0;margin-bottom:.4rem;text-align:left}.section-subheader{font-family:Google Sans,sans-serif;font-size:.95rem;font-weight:500;color:#00000073;margin:0 0 2.5rem;text-align:left}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:transparent}button{background-color:#f9f9f9}}.about-card-wrapper,.work-card-wrapper,.project-card-wrapper,.contact-card-wrapper{width:100%;display:flex;box-sizing:border-box}.navbar{position:fixed;top:20px;left:50%;transform:translate(-50%) scale(1);width:400px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:#ffffffd8;border-radius:30px;border:1px solid rgba(255,255,255,.25);box-shadow:0 2px 20px #00000035;padding:0;z-index:1000;overflow:hidden;transition:transform .35s cubic-bezier(.25,1,.5,1),top .35s cubic-bezier(.25,1,.5,1),background-color .35s ease,box-shadow .35s ease}.nav-container{max-width:1200px;margin:0 auto;padding:.2rem 1rem;display:flex;justify-content:center;align-items:center}.nav-item{display:flex;justify-content:center;align-items:center}.nav-menu{display:flex;list-style:none;margin:0;padding:0;gap:1.5rem;justify-content:center}.nav-link{text-decoration:none;color:#333;font-weight:600;font-size:13px;padding:.5rem;border-radius:8px;transition:all .3s ease;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.nav-link:hover{color:#595959;background-color:#9191911a;border-radius:20px;padding:.5rem 1rem}.nav-icon{width:20px;height:20px;display:block;color:currentColor;transition:transform .2s cubic-bezier(.175,.885,.32,1.275)}.nav-link:hover .nav-icon{transform:scale(1.18)}.nav-link:before{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;transition:all .3s ease;transform:translate(-50%)}.nav-link:hover:before{width:80%}.nav-toggle{display:none;flex-direction:column;cursor:pointer;gap:4px}.logo{font-family:RocketRaccoon;font-size:29px;color:#333;margin:4px 0 0;display:flex;justify-content:center;align-items:center;transition:font-size .35s cubic-bezier(.25,1,.5,1),margin .35s cubic-bezier(.25,1,.5,1)}.navbar.shrink{transform:translate(-50%) scale(.85);top:12px;background-color:#ffffff73;box-shadow:0 4px 24px #0000001f}@media screen and (max-width:520px){.navbar{width:calc(100% - 1.5rem);max-width:420px;padding:0}.nav-container{padding:.2rem .4rem}.nav-menu{gap:.6rem;justify-content:center;width:100%;align-items:center}.nav-link,.nav-link:hover{padding:.4rem .5rem}.nav-icon{width:18px;height:18px}.nav-link:hover .nav-icon{transform:scale(1.12)}.logo{font-size:18px;margin-top:2px}.navbar.shrink{transform:translate(-50%) scale(.9);top:10px}}html{scroll-behavior:smooth}.home-section{width:100%;min-height:100vh;padding:6rem 1.25rem 3rem;margin:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;position:relative;overflow:hidden}.home-container{max-width:960px;width:100%;margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr;gap:3rem;align-items:center;box-sizing:border-box}.home-info{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.home-section h1{margin:0;padding:0;line-height:1;max-width:100%;word-wrap:break-word}.home-title{color:#333;margin-bottom:.75rem}.home-subtitle{font-family:Google Sans,sans-serif;font-size:1rem;font-weight:500;color:#2f2f2f;margin:0;letter-spacing:.03em;line-height:1.5}.photography-highlight-link{color:inherit;text-decoration:none;position:relative;transition:color .3s ease;font-weight:850;display:inline-block}.photography-highlight-link:after{content:"";position:absolute;width:100%;transform:scaleX(0);height:2px;bottom:-2px;left:0;background-color:currentColor;transform-origin:bottom right;transition:transform .25s ease-out}.photography-highlight-link:hover{color:#000}.photography-highlight-link:hover:after{transform:scaleX(1);transform-origin:bottom left}.skill-highlight{font-weight:850;color:#111;display:inline-block;transition:color .3s ease}.typing-cursor{width:5px;height:1em;background-color:#2f2f2f;margin-left:2px;display:inline-block;vertical-align:-2px;animation:cursor-blink 1s step-end infinite}.lanyard{position:absolute;z-index:10;top:0;left:0;width:100%;height:100vh;pointer-events:none}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}@media(max-width:820px){.home-section{padding:7rem 1.25rem 3rem}.home-container{display:flex;flex-direction:column;align-items:center;gap:2rem}.home-info{align-items:center;text-align:center;position:absolute;bottom:10%}.home-title{text-align:center}.home-subtitle{text-align:center;max-width:500px}.desktop-only-subtitle{display:none}}.lanyard-wrapper{position:relative;z-index:0;width:100%;height:100vh;display:flex;justify-content:center;align-items:center;pointer-events:auto;transform:scale(1);transform-origin:center}body.dragging-lanyard,body.dragging-lanyard *{user-select:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important}.about-section{width:100%;padding:6rem 1.25rem 3rem;box-sizing:border-box}.about-container{max-width:960px;margin:0 auto}.about-content{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem;margin-top:1rem}.about-card{border-radius:20px;background:#ffffff40;backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #0000000f;padding:2.25rem 2.5rem;color:#000;box-sizing:border-box;position:relative;overflow:hidden;display:flex;flex-direction:column}.about-bio h3,.about-skills h3{font-size:1.25rem;font-weight:800;color:#111;margin:0 0 .75rem}.about-bio p{font-size:14px;font-weight:600;color:#000000a6;line-height:1.6;margin:0}.skills-grid{display:flex;flex-wrap:wrap;gap:.5rem}.skill-badge{font-size:11px;font-weight:800;color:#0000008c;background:#0000000a;padding:.35rem .65rem;border-radius:12px}.about-links{margin-top:1.5rem;display:flex}.about-github-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:12px;font-weight:700;font-size:12px;text-decoration:none;background:#000000d9;color:#fff;border:0;box-sizing:border-box;cursor:pointer}.github-icon{width:18px;height:18px;display:block}@media(max-width:820px){.about-content{grid-template-columns:1fr;gap:1.25rem}.about-card{padding:1.5rem}}.work-section{width:100%;padding:6rem 1.25rem 3rem;box-sizing:border-box}.work-container{max-width:960px;margin:0 auto}.work-content{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:1rem;color:#000}.work-card{border-radius:20px;background:#ffffff40;backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #0000000f;padding:3rem 2.5rem;min-height:240px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:3rem;box-sizing:border-box;width:100%;position:relative;overflow:hidden}.work-details{flex:1.1;display:flex;flex-direction:row;align-items:center;gap:1.25rem}.work-logo{width:60px;height:60px;border-radius:12px;object-fit:contain;background:#fff9;border:1px solid rgba(255,255,255,.2);padding:6px;box-sizing:border-box}.work-info-meta{display:flex;flex-direction:column;gap:.2rem}.work-role{font-size:1.35rem;font-weight:800;color:#111;margin:0}.work-company{font-size:1.05rem;font-weight:700;color:#000000b3;margin:0}.work-duration{font-size:13px;font-weight:600;color:#00000080;margin:0}.work-meta{flex:1.8;display:flex;flex-direction:column;gap:.85rem}.work-description{font-size:14px;font-weight:600;color:#000000bf;line-height:1.5;margin:0}.work-highlights{margin:0;padding-left:1.15rem;font-size:13px;font-weight:600;color:#0009;line-height:1.6}.work-highlights li{margin-bottom:.35rem}.work-highlights li:last-child{margin-bottom:0}.work-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.work-tag{font-size:11px;font-weight:800;color:#0000008c;background:#0000000a;padding:.35rem .65rem;border-radius:12px}@media(max-width:820px){.work-card{flex-direction:column;align-items:stretch;gap:1.5rem;padding:1.5rem}}.projects-section{width:100%;padding:6rem 1.25rem 3rem;box-sizing:border-box}.projects-container{max-width:960px;margin:0 auto}.projects-content{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:1rem;color:#000}.project-card{border-radius:20px;background:#ffffff40;backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #0000000f;padding:3rem 2.5rem;min-height:240px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:3rem;box-sizing:border-box;width:100%;position:relative;overflow:hidden}.project-details{flex:2;margin-bottom:0}.project-title{font-size:1.35rem;font-weight:800;color:#111;margin:0 0 .6rem}.project-description{font-size:14px;font-weight:600;color:#000000a6;line-height:1.6;margin:0}.project-meta{flex:1.2;display:flex;flex-direction:column;align-items:flex-end;gap:1.25rem;min-width:280px}.project-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-bottom:0}.project-tag{font-size:11px;font-weight:800;color:#0000008c;background:#0000000a;padding:.35rem .65rem;border-radius:12px}.project-links{display:flex;gap:.75rem;width:100%}.project-link{flex:1;display:inline-block;padding:.65rem .9rem;border-radius:12px;font-weight:700;font-size:12px;text-decoration:none;text-align:center;box-sizing:border-box;transition:border-color .2s,color .2s}.project-link-demo,.project-link-code{background:#000000d9;color:#fff;border:0}@media(max-width:820px){.project-card{flex-direction:column;align-items:stretch;gap:1.5rem;padding:1.5rem}.project-meta{align-items:flex-start;min-width:unset}.project-tags{justify-content:flex-start}}.contact-section{width:100%;padding:6rem 1.25rem 0rem;box-sizing:border-box}.contact-container{max-width:960px;margin:0 auto}.contact-content{display:flex;justify-content:center;margin-top:1rem;color:#000}.contact-info{border-radius:20px;background:#ffffff40;backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #0000000f;padding:2rem 2.5rem;width:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:3rem;box-sizing:border-box;position:relative;overflow:hidden}.contact-details{flex:1.5}.contact-info h3{font-size:1.35rem;font-weight:800;color:#111;margin:0 0 .6rem}.contact-info p{font-size:14px;font-weight:600;color:#000000a6;line-height:1.6;margin:0}.contact-social{flex:1;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem;min-width:280px}.contact-social-link{display:grid;gap:.15rem;padding:.75rem .85rem;border-radius:16px;text-decoration:none;background:transparent}.contact-social-label{font-size:13px;font-weight:800;color:#333}.contact-social-value{font-size:12px;font-weight:600;color:#0009;word-break:break-word}@media(max-width:820px){.contact-info{flex-direction:column;align-items:stretch;gap:1.5rem;padding:1.5rem}.contact-social{min-width:unset}}.footer{width:100%;padding:2.5rem 1.25rem 2rem;margin-top:auto;box-sizing:border-box}.footer-container{max-width:960px;margin:0 auto;border-radius:20px;backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);background-color:#ffffff40;border:1px solid rgba(255,255,255,.25);box-shadow:0 2px 20px #00000014;padding:1.25rem;display:grid;gap:1rem;box-sizing:border-box;position:relative;overflow:hidden}.footer-nav{display:flex;justify-content:center}.footer-menu{display:flex;gap:1.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap;justify-content:center}.footer-item{display:flex;align-items:center;justify-content:center}.footer-link{text-decoration:none;color:#333;font-weight:600;font-size:13px;padding:.5rem .75rem;border-radius:10px;display:grid;gap:.15rem;min-width:220px;text-align:center;background:transparent}.footer-link-label{font-size:13px;font-weight:800;color:#333}.footer-link-value{font-size:12px;font-weight:600;color:#0009}.footer-meta{display:flex;flex-direction:column;gap:.25rem;align-items:center;justify-content:center;text-align:center}.footer-logo{font-family:RocketRaccoon;font-size:26px;color:#333;margin:0;line-height:1}.footer-copy{margin:0;font-size:12px;color:#0000008c}@media screen and (max-width:520px){.footer{padding:2rem 1.25rem 1.5rem}.footer-link{min-width:180px}}.photography-page{padding:100px 5% 60px;max-width:1200px;margin:0 auto;box-sizing:border-box}.photography-header{text-align:center;margin-bottom:50px}.instagram-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:12px;font-weight:700;font-size:12px;text-decoration:none;background:#000000d9;color:#fff;border:0;box-sizing:border-box;cursor:pointer;margin-top:5px;margin-bottom:15px;transition:all .2s ease}.instagram-btn:hover{transform:translateY(-2px) scale(1.03);background:#000000bf;color:#fff}.instagram-icon{width:18px;height:18px;display:block}.photography-title{font-family:RocketRaccoon,sans-serif;color:#1a1a1a;font-size:3.5rem;margin:10px 0}.photography-subtitle{color:#555;font-size:1.1rem;max-width:600px;margin:0 auto 30px;line-height:1.6}.category-filters{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.filter-btn{background:#ffffff40;border:1px solid rgba(255,255,255,.25);color:#333;padding:10px 20px;border-radius:20px;font-size:.95rem;font-weight:500;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .25s ease}.filter-btn:hover{background:#ffffff59;border-color:#fff6;transform:translateY(-2px)}.filter-btn.active{background:#1a1a1a;color:#fff;border-color:#1a1a1a;box-shadow:0 4px 15px #00000026}.photography-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;width:100%}.photo-card{border-radius:20px;overflow:hidden;aspect-ratio:4 / 3;cursor:pointer;position:relative;background:#ffffff40;border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 32px #0000000f;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .35s cubic-bezier(.25,.8,.25,1)}.photo-card:hover{transform:translateY(-6px) scale(1.02);background:#ffffff52;box-shadow:0 12px 40px #0000001f;border-color:#ffffff59}.dot-loader{display:flex;justify-content:center;align-items:center;gap:8px;padding:80px 0}.dot-loader .dot{width:10px;height:10px;border-radius:50%;background:#1a1a1a;animation:dot-bounce 1.2s ease-in-out infinite}.dot-loader .dot:nth-child(1){animation-delay:0s}.dot-loader .dot:nth-child(2){animation-delay:.2s}.dot-loader .dot:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.photo-image-wrapper{position:relative;width:100%;height:100%;overflow:hidden}.photo-img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.25,.8,.25,1)}.photo-card:hover .photo-img{transform:scale(1.08)}.photo-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to top,#000c,#0000001a 60%,#0000);display:flex;flex-direction:column;justify-content:flex-end;padding:20px;box-sizing:border-box;opacity:0;transition:opacity .35s ease}.photo-card:hover .photo-overlay{opacity:1}.photo-category-tag{align-self:flex-start;background:#fff3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.75rem;padding:4px 10px;border-radius:12px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.photo-card-title{color:#fff;margin:0 0 6px;font-size:1.25rem;font-weight:600}.photo-location{color:#fffc;font-size:.85rem;display:flex;align-items:center;gap:4px}.location-icon{flex-shrink:0}.lightbox-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;box-sizing:border-box;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fadeIn .3s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{position:relative;background:#141414d9;border:1px solid rgba(255,255,255,.1);border-radius:20px;max-width:1000px;width:100%;max-height:90vh;overflow:hidden;box-shadow:0 24px 60px #00000080;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:scaleUp .35s cubic-bezier(.25,.8,.25,1) forwards}@keyframes scaleUp{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.lightbox-close{position:absolute;top:15px;right:15px;background:#ffffff1a;border:none;color:#fff;border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .2s ease;padding:0}.lightbox-close:hover{background:#ffffff40;transform:rotate(90deg)}.lightbox-body{display:flex;flex-direction:row;height:100%;max-height:90vh}.lightbox-image-container{flex:1.4;background:#0d0d0d;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:350px}.lightbox-img{width:100%;height:100%;object-fit:contain;max-height:90vh}.lightbox-sidebar{flex:.6;padding:40px 30px;color:#f5f5f5;display:flex;flex-direction:column;justify-content:center;border-left:1px solid rgba(255,255,255,.1);box-sizing:border-box}.sidebar-header h2{font-family:Google Sans,sans-serif;margin:10px 0 5px;font-size:2.2rem;color:#fff;font-weight:800}.sidebar-category{color:#646cff;font-size:.8rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.sidebar-location{color:#fff9;font-size:.95rem;display:flex;align-items:center;gap:5px;margin:0}.camera-specs{margin-top:30px;border-top:1px solid rgba(255,255,255,.15);padding-top:25px}.camera-specs h3{font-size:.9rem;letter-spacing:1px;text-transform:uppercase;margin:0 0 15px;color:#fff6}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 15px}.spec-item{display:flex;flex-direction:column}.spec-label{font-size:.75rem;color:#fff6;margin-bottom:4px;text-transform:uppercase}.spec-value{font-size:.95rem;font-weight:500;color:#fff}@media(max-width:900px){.lightbox-body{flex-direction:column;overflow-y:auto}.lightbox-image-container{max-height:50vh}.lightbox-sidebar{border-left:none;border-top:1px solid rgba(255,255,255,.1);padding:25px}}@media(max-width:480px){.photography-title{font-size:2.5rem}.photography-page{padding-top:80px}.filter-btn{padding:8px 16px;font-size:.85rem}}.loader-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#0e100f;z-index:9999;display:flex;align-items:center;justify-content:center;overflow:hidden;box-sizing:border-box}.loader-content-container{display:flex;flex-direction:column;gap:1.5rem;width:120%}.loader-row{width:100%;overflow:hidden;white-space:nowrap;display:flex}.row-left{justify-content:flex-start}.row-right{justify-content:flex-end}.loader-text-wrapper{display:flex;white-space:nowrap}.loader-marquee-text{font-family:RocketRaccoon,monospace,sans-serif;font-size:7.5vw;font-weight:900;text-transform:uppercase;color:#fffce1;letter-spacing:-.02em;padding:0 1rem}@media(max-width:768px){.loader-marquee-text{font-size:11vw}.loader-content-container{gap:.75rem}}.grainient-container{position:relative;width:100%;height:100%;overflow:hidden}.grainient-background{position:fixed;inset:0;z-index:-1}#root{width:100%;min-height:100vh;margin:0;padding:0;display:flex;flex-direction:column}.app-main{flex:1}section[id]{scroll-margin-top:110px}
