@import url("https://fonts.googleapis.com/css2?family=League+Spartan:wght@400;500;600;700&display=swap");@font-face{font-family:Stella Demo;src:url(/fonts/Stella\ Demo.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--background-color:#ffffff;--text-color:#000000;--primary-color:#000000;--secondary-color:#666666;--accent-color:#3498db;--accent-color-rgb:52,152,219;--navbar-bg:rgba(60,60,60,0.4);--glass-bg:rgba(255,255,255,0.1);--dark-glass-bg:rgba(40,40,40,0.7);--glass-border:rgba(255,255,255,0.2);--grid-gap:1rem;--transition-speed:0.3s;--navbar-font:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,sans-serif;--page-gutter:16px;--content-measure:68ch;--photos-height:80vh;--photo-gap:12px}@media (prefers-color-scheme:dark){:root{--background:#161616;--foreground:#ededed}}body,html{max-width:100vw;overflow-x:hidden;background-color:var(--background-color);color:var(--text-color);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body:has(.blog-two-section-layout){overflow:hidden!important;height:100vh}html:has(.blog-two-section-layout){overflow:hidden!important}.blog-two-section-layout .blog-thumbnail-section,.blog-two-section-layout .blog-thumbnail-section *{scrollbar-width:none;-ms-overflow-style:none}.blog-two-section-layout .blog-thumbnail-section ::-webkit-scrollbar,.blog-two-section-layout .blog-thumbnail-section::-webkit-scrollbar{display:none}*{box-sizing:border-box;padding:0;margin:0}a{color:inherit;text-decoration:none}.new-navbar{display:flex;position:fixed;top:0;left:0;right:0;z-index:100;width:100%;height:50px;background-color:rgba(255,255,255,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.navbar-left{gap:0;flex:1 1;justify-content:flex-start;height:100%}.navbar-center,.navbar-left{display:flex;align-items:center}.navbar-center{justify-content:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:101}.navbar-right{justify-content:flex-end;flex:1 1;padding-right:0}.navbar-menu-item,.navbar-right{display:flex;align-items:center;height:100%}.navbar-menu-item{padding:0 16px;color:black;font-family:League Spartan,sans-serif;font-weight:600;font-size:clamp(14px,3.5vw,19px);letter-spacing:1px;line-height:1;transition:opacity .3s ease;text-decoration:none}.navbar-right .navbar-menu-item{padding-right:16px}.navbar-menu-item:hover{opacity:.8}.navbar-menu-item.active{background-color:white!important;color:black}.navbar-logo{color:black;font-family:Stella Demo;font-size:clamp(36px,8vw,56px);font-weight:400;line-height:1;margin:0;overflow:visible}.navbar-logo,.navbar-logo-container,.navbar-logo-text{position:relative;display:inline-block}.navbar-logo-text{white-space:nowrap;text-align:center;z-index:1}.navbar-logo-container .dissipate-canvas{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%) scale(.5)!important;pointer-events:none;z-index:100}.navbar-resume-wrapper{position:relative;display:flex;align-items:center;height:100%}.resume-bubbles-container{position:absolute;top:100%;right:0;margin-top:12px;display:flex;flex-direction:column;gap:8px;z-index:1002;animation:resumeBubblesAppear .3s cubic-bezier(.25,.46,.45,.94)}@keyframes resumeBubblesAppear{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.resume-bubble{background:white;padding:8px 16px;border-radius:20px;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 12px rgba(0,0,0,.12);font-family:League Spartan,sans-serif;font-weight:600;font-size:14px;color:#333;white-space:nowrap;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between;gap:12px}.resume-bubble-arrow{margin-left:auto}.resume-bubble-tldr{cursor:pointer;max-width:280px;white-space:normal;line-height:1.4}.resume-bubble-tldr:hover{background:rgba(0,0,0,.9);color:white;border-color:rgba(0,0,0,.9);transform:translateX(-2px)}.resume-bubble-linkedin{cursor:pointer}.resume-bubble-linkedin:hover{background:rgba(0,0,0,.9);color:white;border-color:rgba(0,0,0,.9);transform:translateX(-2px)}.resume-bubble-pdf{width:240px;height:310px;padding:0;overflow:hidden;cursor:pointer;position:relative;border:2px solid rgba(0,0,0,.1);background:white;border-radius:20px}.resume-bubble-pdf:hover{border-color:rgba(0,0,0,.3);box-shadow:0 6px 16px rgba(0,0,0,.18)}.resume-bubble-pdf-preview{border:none;pointer-events:none;display:block;position:absolute;top:-2px;left:50%;width:612px;height:792px;transform:translateX(-50%) scale(.392);transform-origin:top center}.mobile-resume-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease-out;padding:1rem}.mobile-resume-content{background-color:transparent;position:relative;width:100%;max-width:320px;max-height:90vh;overflow-y:auto;animation:slideIn .3s ease-out;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.mobile-resume-content::-webkit-scrollbar{width:6px}.mobile-resume-content::-webkit-scrollbar-track{background:transparent}.mobile-resume-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:3px}.mobile-resume-content::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.5)}.mobile-resume-close{position:fixed;top:2rem;right:1rem;background:rgba(255,255,255,.1);border:none;font-size:2rem;color:white;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;line-height:1;z-index:1003}.mobile-resume-close:hover{background:rgba(255,255,255,.2)}.mobile-resume-bubbles{display:flex;flex-direction:column;gap:12px;width:100%}.mobile-resume-bubble{width:100%;max-width:none}.mobile-resume-bubble-pdf{width:100%;height:413px;max-width:none;position:relative;overflow:hidden}.mobile-resume-pdf-preview{border:none;pointer-events:none;display:block;position:absolute;top:-2px;left:50%;width:612px;height:792px;transform:translateX(-50%) scale(.523);transform-origin:top center}@media (max-width:480px){.mobile-resume-content{max-width:280px}.mobile-resume-close{top:1.5rem;right:.75rem;width:36px;height:36px;font-size:1.75rem}.mobile-resume-bubbles{gap:10px}.mobile-resume-bubble-pdf{height:362px}.mobile-resume-pdf-preview{transform:translateX(-50%) scale(.458)}}.new-project-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px;padding:var(--page-gutter);min-height:calc(100vh - 50px);margin:0}.new-project-grid .project-grid-item{border-radius:0;overflow:hidden;position:relative;background-color:#f0f0f0;width:100%}.new-project-grid .project-grid-item-square{aspect-ratio:1/1}.new-project-grid .project-grid-item-wide{grid-column:1/-1;aspect-ratio:2/1}.new-project-grid .project-grid-item img{width:100%;height:100%;display:block;object-fit:cover}.navbar{display:none}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:var(--grid-gap);gap:var(--grid-gap);padding:1rem}.project-grid-item{position:relative;aspect-ratio:2/3;overflow:hidden;border-radius:4px}.project-grid-item img,.project-grid-item video{width:100%;height:100%;object-fit:cover;display:block}.project-name{display:none}.project-meta{position:absolute;top:.5rem;left:.5rem;z-index:2;display:flex;flex-wrap:wrap;gap:.5rem}.project-meta-item{margin-bottom:.5rem;display:inline-block}.project-platform,.project-status,.project-tech{display:inline-block;color:var(--text-color);font-size:.75rem;padding:.25rem .5rem}.blog-list-item{display:flex;align-items:center;gap:2rem;margin-bottom:2rem}.blog-list-item,.blog-list-item:hover{text-decoration:none;color:inherit}.blog-list-content{flex:1 1}.blog-list-item .project-detail-title{font-size:6rem;padding-bottom:0;margin-bottom:0;border-bottom:none;font-family:League Spartan,sans-serif;position:relative}.blog-list-item .project-detail-bio{margin-top:2rem;margin-left:0;margin-bottom:0;padding-bottom:0;font-size:1.4rem}.blog-list-image{flex:0 0 50%;max-width:800px;overflow:hidden}.blog-list-image img{width:100%;height:auto;display:block}@media (max-width:1400px){.blog-list-item .project-detail-title{font-size:5.5rem}}@media (max-width:1300px){.blog-list-item .project-detail-title{font-size:5rem}}@media (max-width:1200px){.blog-list-image{flex:0 0 45%;max-width:600px}.blog-list-item .project-detail-title{font-size:4.5rem}.blog-list-item .project-detail-bio{font-size:1.35rem}}@media (max-width:1100px){.blog-list-item .project-detail-title{font-size:4rem}}@media (max-width:1000px){.blog-list-image{flex:0 0 42%;max-width:500px}.blog-list-item .project-detail-title{font-size:3.5rem}.blog-list-item{gap:1.8rem;margin-bottom:2.2rem}}@media (max-width:968px){.blog-list-item{flex-direction:column;align-items:stretch;gap:1.5rem;margin-bottom:3rem}.blog-list-image{flex:none;width:100%;max-width:none}.blog-list-item .project-detail-title{font-size:3.2rem}.blog-list-item .project-detail-bio{margin-top:1rem}}@media (max-width:900px){.blog-list-item .project-detail-title{font-size:3rem}}@media (max-width:800px){.blog-list-item .project-detail-title{font-size:2.8rem}}@media (max-width:768px){.blog-list-item{gap:1rem;margin-bottom:2.5rem}.blog-list-item .project-detail-title{font-size:2.6rem}.blog-list-item .project-detail-bio{margin-top:.75rem;font-size:1.2rem}}@media (max-width:700px){.blog-list-item .project-detail-title{font-size:2.4rem}}@media (max-width:600px){.blog-list-item .project-detail-title{font-size:2.2rem}}@media (max-width:550px){.blog-list-item .project-detail-title{font-size:2rem}}@media (max-width:480px){.blog-list-item{margin-bottom:2rem}.blog-list-item .project-detail-title{font-size:1.8rem}.blog-list-item .project-detail-bio{font-size:1rem}}@media (max-width:400px){.blog-list-item .project-detail-title{font-size:1.7rem}}@media (max-width:350px){.blog-list-item .project-detail-title{font-size:1.6rem}}.project-detail{max-width:100%;margin:0 auto;padding:0;font-size:1.4rem;font-family:League Spartan,sans-serif}.project-detail-header{margin-bottom:3rem}.project-detail-image{width:100%;border-radius:4px;overflow:hidden;margin-bottom:1.5rem;height:calc(100vh - 100px)}.project-detail-image img{width:100%;height:100%;object-fit:cover}.project-detail-title{font-size:clamp(3.5rem,12vw,7.5rem);padding-bottom:96px;margin-bottom:96px;border-bottom:1px solid rgba(0,0,0,.12);font-family:League Spartan,sans-serif;margin-left:calc(-1 * var(--page-gutter));margin-right:calc(-1 * var(--page-gutter));padding-left:var(--page-gutter);padding-right:var(--page-gutter);position:relative}.blog-content-wrapper .project-detail-title:after{content:"";position:absolute;left:calc(-1 * var(--page-gutter));width:100vw;bottom:0;height:1px;background:rgba(0,0,0,.12)}.project-detail-meta{display:flex;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap}.project-detail-meta .project-meta-item{margin-bottom:.5rem}.project-detail-meta .project-platform,.project-detail-meta .project-status,.project-detail-meta .project-tech{display:inline-block;color:var(--text-color);font-size:1.2rem;padding:.5rem 1rem}.project-detail-bio{line-height:1.6;margin-bottom:3rem;font-size:clamp(1.3rem,2.5vw,2rem);font-family:League Spartan,sans-serif;color:var(--secondary-color)}.project-detail-intro{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2rem;gap:2rem;align-items:start;margin:2rem 0 96px}.blog-content-wrapper .blog-two-col{grid-template-columns:1fr 1fr;gap:2rem}.blog-content-wrapper .blog-two-col.is-collapsed{grid-template-columns:1fr}.project-detail-intro-left{color:var(--secondary-color);font-size:clamp(1.3rem,2.5vw,2rem);line-height:1.5}.project-detail-intro-left,.project-detail-intro-middle,.project-detail-intro-right{max-width:none;font-family:League Spartan,sans-serif}.project-short-description{margin-top:.25rem;color:var(--text-color);font-family:League Spartan,sans-serif;line-height:1.35}.project-detail-intro .project-detail-bio{line-height:1.35}@media (max-width:968px){.project-detail-intro{grid-template-columns:1fr;gap:1.5rem}.project-detail-intro-left,.project-detail-intro-middle,.project-detail-intro-right{max-width:65ch}}.project-gallery{margin-bottom:3rem}.project-gallery h3{margin-bottom:1.5rem;font-size:2.5rem}.project-stack-gallery{width:100%;padding-left:0;padding-right:0}.stack-gallery-item{margin-bottom:var(--page-gutter)}.stack-gallery-item img{width:100%;height:auto;display:block}.blog-detail-image-container{width:100%;margin:3rem 0;padding:0}.blog-detail-image{width:100%;overflow:hidden;margin:0 0 1.5rem;height:calc(100vh - 100px)}.blog-detail-image img{width:100%;height:100%;display:block;object-fit:cover}.blog-content-wrapper{width:100%;margin:0 auto;position:relative}.blog-container{margin:0}.blog-container,.blog-content{width:100%;max-width:none;padding:0}.blog-content{font-size:clamp(1.1rem,2vw,1.3rem);line-height:1.6;margin:4rem 0;color:var(--secondary-color);text-align:left;--flow-space:4rem}.blog-content>*{margin-top:0;margin-bottom:0}.blog-content>*+*{margin-top:var(--flow-space)}.blog-content p{margin-top:0;margin-bottom:0}.blog-content img,.blog-content>*+.color-palette,.blog-content>*+blockquote,.blog-content>*+h2,.blog-content>*+h3,.blog-content>*+h4,.blog-content>*+ol,.blog-content>*+p,.blog-content>*+pre,.blog-content>*+ul{margin-top:var(--flow-space)}.blog-content img{display:block;width:100%;max-width:100%;height:auto;margin-left:0;margin-right:0;margin-bottom:0;border-radius:8px}.blog-content img+img{margin-top:1rem}.blog-image-pair{display:flex;gap:var(--page-gutter);width:100%;margin-left:0;margin-right:0;margin-top:var(--flow-space)}.blog-content .color-palette,.blog-content blockquote,.blog-content h2,.blog-content h3,.blog-content h4,.blog-content ol,.blog-content p,.blog-content pre,.blog-content ul{width:min(var(--content-measure),100%)!important;max-width:var(--content-measure)!important;margin-left:auto!important;margin-right:auto!important}.blog-content-wrapper :where(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,.color-palette){width:min(var(--content-measure),100%);max-width:var(--content-measure);margin-left:auto;margin-right:auto}.blog-content-wrapper :where(h1,h2,h3,h4){text-wrap:balance;font-family:League Spartan,sans-serif;color:var(--text-color)}.blog-content-wrapper .project-detail-title{width:100%;max-width:none;margin-left:calc(-1 * var(--page-gutter));margin-right:calc(-1 * var(--page-gutter));padding-left:var(--page-gutter);padding-right:var(--page-gutter);border-bottom:none}.blog-content-wrapper article.blog-content h3{width:min(57ch,100%)!important;max-width:min(57ch,100%)!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important;font-family:League Spartan,sans-serif!important}.blog-image-pair img{width:calc(50% - (var(--page-gutter)/2));margin:0;padding:0}@media (max-width:768px){.blog-image-pair{flex-direction:column}.blog-image-pair img{width:100%}.blog-image-pair img+img{margin-top:1rem}}.color-palette{display:flex;flex-wrap:wrap;gap:1.5rem;margin:1.5rem 0;width:100%}.color-item{flex:1 1;min-width:200px;min-height:120px;padding:1.5rem;border-radius:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:none}.color-item h4{font-size:1.3rem;font-weight:700;margin-bottom:.5rem;letter-spacing:.5px}.color-item p{font-size:1rem;margin:0;opacity:.9}.color-item[data-color="#343349"]{background-color:#343349;color:white}.color-item[data-color="#647058"]{background-color:#647058;color:white}.color-item[data-color="#F79C4E"]{background-color:#F79C4E;color:white}.color-item h4{color:white!important}.swiper{width:100%;height:auto}.swiper-slide{height:300px;text-align:center}.swiper-slide img{height:100%;width:auto;object-fit:contain}.about-page{max-width:800px;margin:0 auto;padding:1.5rem}.resume-page-container{min-height:100vh;padding:0 var(--page-gutter);margin-top:60px;max-width:100%}.resume-content{max-width:100%;margin:0 auto;display:flex;gap:3rem;align-items:flex-start;padding-top:120px}.resume-left{flex:1 1;min-width:300px}.resume-right{flex:1 1;min-width:500px;margin-right:calc(-1 * var(--page-gutter));padding-right:var(--page-gutter)}.resume-image{position:relative;width:100%;height:80vh;max-height:800px;display:flex;justify-content:flex-end;align-items:center}.vivek-photo{width:auto;height:100%;object-fit:contain;object-position:right center}.resume-pdf-section{margin-top:6rem;margin-left:calc(-1 * var(--page-gutter));margin-right:calc(-1 * var(--page-gutter));padding-left:var(--page-gutter);padding-right:var(--page-gutter)}.resume-bio{line-height:1.6;margin-bottom:3rem;font-size:clamp(1.3rem,2.5vw,2rem);font-family:League Spartan,sans-serif;color:var(--secondary-color)}.resume-linkedin{margin-top:-1rem}.linkedin-link{color:var(--secondary-color);text-decoration:underline;transition:color .3s ease;white-space:nowrap}.linkedin-link:hover{color:var(--text-color)}.project-website-link{color:var(--secondary-color);text-decoration:underline;transition:color .3s ease}.project-website-link:hover{color:var(--text-color)}.pdf-preview{position:relative;width:100%;height:100vh;max-height:1200px;border:2px solid #ddd;border-radius:8px;overflow:hidden;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px rgba(0,0,0,.1)}.pdf-preview:hover{border-color:#007bff;box-shadow:0 8px 30px rgba(0,123,255,.15);transform:translateY(-2px)}.pdf-iframe{width:100%;height:100%;border:none;pointer-events:none}.pdf-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.05);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.pdf-preview:hover .pdf-overlay{opacity:1}.click-text{background:rgba(0,123,255,.9);color:white;padding:12px 24px;border-radius:6px;font-weight:500;font-size:1.1rem;box-shadow:0 4px 12px rgba(0,123,255,.3)}@media (max-width:1024px){.resume-content{flex-direction:column;gap:2rem}.resume-right{min-width:unset;margin-right:calc(-1 * var(--page-gutter));padding-right:var(--page-gutter)}.resume-image{height:60vh;max-height:600px}.pdf-preview{height:80vh;max-height:800px}.resume-pdf-section{margin-top:4rem}}@media (max-width:1400px){.resume-right{display:none}.resume-left{width:100%;max-width:100%;min-width:unset}}@media (max-width:768px){.resume-page-container{padding:0 var(--page-gutter)}.resume-right{margin-right:calc(-1 * var(--page-gutter));padding-right:var(--page-gutter)}.resume-image{height:50vh;max-height:500px}.pdf-preview{height:70vh;max-height:600px}.click-text{font-size:1rem;padding:10px 20px}.resume-pdf-section{margin-top:3rem}}.page-container{margin-top:40px;padding:2rem}.page-content{max-width:1200px;margin:0 auto}.page-title{padding-bottom:96px;margin-bottom:96px;border-bottom:1px solid rgba(0,0,0,.12)}.page-title,.resume-page-container .page-title{font-size:clamp(3.5rem,12vw,7.5rem);font-family:League Spartan,sans-serif;margin-left:calc(-1 * var(--page-gutter));margin-right:calc(-1 * var(--page-gutter));padding-left:var(--page-gutter);padding-right:var(--page-gutter);position:relative}.resume-page-container .page-title{padding-bottom:2rem;margin-bottom:3rem;border-bottom:none}@media (min-width:1024px){.project-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1400px){.project-grid{grid-template-columns:repeat(4,1fr)}}.assistant-button-link{position:fixed;bottom:24px;right:24px;z-index:1000;text-decoration:none;color:inherit}.assistant-button{display:flex;align-items:center;justify-content:flex-start;background:white;border:1px solid rgba(0,0,0,.1);border-radius:30px;padding:6px 0 6px 6px;box-shadow:0 4px 20px rgba(0,0,0,.1);transition:all .5s cubic-bezier(.25,.46,.45,.94);cursor:pointer;overflow:hidden;width:60px;height:60px;position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.assistant-button.hovered{width:210px}.assistant-image-container{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center}.assistant-image{width:100%;height:100%;object-fit:cover;border-radius:50%;transform:translateX(-1px)}.assistant-text{font-family:League Spartan,sans-serif;font-weight:600;font-size:14px;color:#333;white-space:nowrap;margin-left:12px;margin-right:0;opacity:0;transform:translateX(-10px);transition:all .4s cubic-bezier(.25,.46,.45,.94);transition-delay:.15s}.assistant-button.hovered .assistant-text{opacity:1;transform:translateX(0)}.assistant-button-link{pointer-events:auto}.tldr-action-buttons{position:fixed;bottom:24px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:8px}.tldr-action-button{background:white;padding:12px 20px;border-radius:25px;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 12px rgba(0,0,0,.12);font-family:League Spartan,sans-serif;font-weight:600;font-size:14px;color:#333;white-space:nowrap;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tldr-action-button:hover{background:rgba(0,0,0,.9);color:white;border-color:rgba(0,0,0,.9);transform:translateX(-2px)}.tldr-action-text{flex:1 1}.tldr-action-arrow{margin-left:auto}@media (max-width:768px){.tldr-action-buttons{bottom:16px;right:16px}.tldr-action-button{font-size:13px;padding:10px 16px}}.tldr-page-container{min-height:100vh;padding:0 var(--page-gutter);margin-top:60px;max-width:100%}.tldr-content{max-width:100%;margin:0 auto;padding-top:120px}.tldr-header{display:flex;align-items:center;gap:2rem;margin-bottom:3rem}.tldr-image{flex-shrink:0}.tldr-profile-image{border-radius:50%;object-fit:cover}.tldr-intro h1{font-family:League Spartan,sans-serif;font-size:clamp(2rem,4vw,3rem);font-weight:700;color:var(--primary-color);margin:0 0 .5rem}.tldr-subtitle{font-size:clamp(1.1rem,2vw,1.3rem);margin:0;font-weight:400}.tldr-bio,.tldr-subtitle{font-family:League Spartan,sans-serif;color:var(--secondary-color)}.tldr-bio{line-height:1.6;margin-bottom:3rem;font-size:clamp(1.3rem,2.5vw,2rem)}.tldr-bio h2{font-family:League Spartan,sans-serif;font-size:clamp(1.8rem,3vw,2.2rem);font-weight:600;color:var(--primary-color);margin:0 0 1.5rem}.tldr-bio p{margin-bottom:1.5rem}.tldr-links{display:flex;gap:1.5rem;margin-top:2rem;flex-wrap:wrap}.tldr-link{font-family:League Spartan,sans-serif;font-weight:600;color:var(--primary-color);text-decoration:none;padding:.75rem 1.5rem;border:2px solid var(--primary-color);border-radius:8px;transition:all .3s ease;font-size:1rem}.tldr-link:hover{background-color:var(--primary-color);color:white}@media (max-width:768px){.project-selector{bottom:16px;left:16px}.assistant-button-link{bottom:16px;right:16px}.assistant-button{width:56px;height:56px}.assistant-button.hovered{width:200px}.assistant-image-container{width:44px;height:44px}.assistant-text{font-size:13px}.tldr-header{flex-direction:column;text-align:center;gap:1.5rem}.tldr-links{justify-content:center;gap:1rem}.tldr-link{padding:.6rem 1.2rem;font-size:.9rem}}@media (max-width:968px){.new-project-grid{grid-template-columns:1fr;gap:16px;padding:16px}.new-project-grid .project-grid-item-wide{grid-column:1;aspect-ratio:2/1}.navbar-section{padding-left:16px}}@media (max-width:768px){.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.blog-post-item{flex-direction:column}.blog-post-image{flex:0 0 200px}.navbar-glass{width:95%;max-width:700px}.navbar-container{flex-wrap:wrap;justify-content:center;padding:.6rem .8rem}.navbar a{padding:.5rem 1rem;margin:.2rem;font-size:1rem}.navbar a.active:after{bottom:.1rem}main{margin-top:100px}.swiper-slide{height:200px}.navbar-section{padding-left:12px}}@media (max-width:480px){.navbar-glass{width:95%}.navbar-container{padding:.5rem}.navbar a{padding:.4rem .7rem;margin:.1rem;font-size:.9rem}main{margin-top:110px}.project-grid{grid-template-columns:1fr;gap:.8rem}.navbar-section{padding-left:10px}}.image-gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-top:1rem}.gallery-item{width:100%;overflow:hidden;border-radius:8px}.gallery-item img{width:100%;height:auto;object-fit:cover;display:block;transition:transform .3s ease}.gallery-item img:hover{transform:scale(1.03)}.project-detail-content{max-width:none;width:100%;margin:0;padding-left:var(--page-gutter);padding-right:var(--page-gutter);padding-top:120px}main{margin-top:40px;padding:0}.custom-cursor{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);width:8px;height:8px;background-color:rgba(0,0,0,.6);border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .3s ease-out;will-change:transform,width,height,opacity}.custom-cursor.hovering{opacity:1;width:auto;height:36px;background-color:rgba(20,20,20,.75);-webkit-backdrop-filter:blur(8px) saturate(1.2);backdrop-filter:blur(8px) saturate(1.2);border:1px solid rgba(255,255,255,.25);border-radius:0;box-shadow:0 8px 32px rgba(0,0,0,.3);transform:translate(-50%,calc(-100% - 12px))}.cursor-text{color:white;font-family:League Spartan,sans-serif;font-weight:600;font-size:18px;text-align:center;letter-spacing:.5px;line-height:1.1;padding:8px 12px;opacity:0;transform:scale(.8);transition:opacity .3s ease-out,transform .3s ease-out;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5)}.custom-cursor.hovering .cursor-text{opacity:1;transform:scale(1)}.mobile-menu-button{display:none;background:none;border:none;color:black;font-family:League Spartan,sans-serif;font-weight:600;font-size:clamp(14px,3.5vw,19px);letter-spacing:1px;padding:0 16px;cursor:pointer;transition:opacity .3s ease;height:100%;align-items:center;justify-content:center}@media (max-width:900px){.navbar-left,.navbar-right .navbar-menu-item{display:none}.mobile-menu-button{display:flex}}.mobile-menu-button:hover{opacity:.8}.mobile-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease-out;padding:1rem}.mobile-menu-content{background-color:transparent;position:relative;width:100%;max-width:280px;max-height:90vh;overflow-y:auto;animation:slideIn .3s ease-out;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.mobile-menu-content::-webkit-scrollbar{width:6px}.mobile-menu-content::-webkit-scrollbar-track{background:transparent}.mobile-menu-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:3px}.mobile-menu-content::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.5)}@media (max-width:480px){.mobile-menu-content{max-width:240px}.mobile-menu-item{font-size:16px;padding:10px 20px}.mobile-menu-close{top:1.5rem;right:.75rem;width:36px;height:36px;font-size:1.75rem}}.mobile-menu-close{position:fixed;top:2rem;right:1rem;background:rgba(255,255,255,.1);border:none;font-size:2rem;color:white;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;line-height:1;z-index:1003}.mobile-menu-close:hover{background:rgba(255,255,255,.2)}.mobile-menu-links{display:flex;flex-direction:column;gap:12px;align-items:center;width:100%}.mobile-menu-item{background:white;color:#333;font-family:League Spartan,sans-serif;font-weight:600;font-size:19px;letter-spacing:1px;text-decoration:none;padding:12px 24px;border-radius:20px;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 12px rgba(0,0,0,.12);transition:all .2s ease;text-align:center;width:100%;display:block}.mobile-menu-item:hover{transform:translateY(-2px)}.mobile-menu-item.active,.mobile-menu-item:hover{background:rgba(0,0,0,.9);color:white;border-color:rgba(0,0,0,.9)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.home-page{cursor:default}.custom-cursor{display:none}}.hobbies-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px;padding:var(--page-gutter);min-height:calc(100vh - 50px);margin:0}.hobby-grid-item{border-radius:0;overflow:hidden;position:relative;background-color:#f0f0f0;width:100%;aspect-ratio:3/4;display:block;text-decoration:none}@media (max-width:968px){.hobbies-grid{grid-template-columns:1fr;gap:16px;padding:16px}}.hobbies-navigation{margin-top:0;display:flex;flex-direction:column;width:100%}.hobby-section-button{display:block;width:100%;text-decoration:none;color:inherit;transition:opacity .3s ease}.hobby-section-button:hover{opacity:.7}.blog-two-section-layout{display:flex;gap:0;width:100vw;height:100vh;padding-top:50px;box-sizing:border-box;overflow:hidden;position:fixed;top:0;left:0;scrollbar-width:none;-ms-overflow-style:none}.blog-two-section-layout::-webkit-scrollbar{display:none}.blog-titles-section{flex:1 1;min-width:0;display:flex;flex-direction:column;padding-left:0;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important}.blog-titles-section::-webkit-scrollbar{display:none!important}.blog-titles-section .project-detail-content{max-width:none;width:100%;padding-top:0;padding-bottom:var(--page-gutter);padding-left:var(--page-gutter);display:flex;flex-direction:column;justify-content:flex-start}.blog-two-section-layout .hobbies-navigation{margin:96px 0 0;padding:0}.blog-two-section-layout .hobby-section-button{display:block;width:100%;text-decoration:none;color:inherit;transition:opacity .3s ease;padding:0;margin:0}.blog-two-section-layout .hobby-section-button .project-detail-title{padding-bottom:96px;margin-bottom:96px;border-bottom:1px solid rgba(0,0,0,.12);font-size:clamp(2.5rem,8vw,7.5rem);line-height:1.1}@media (max-width:1024px){.blog-two-section-layout .hobby-section-button .project-detail-title{font-size:clamp(2.2rem,7vw,6rem);padding-bottom:60px;margin-bottom:60px}}@media (max-width:768px){.blog-two-section-layout .hobby-section-button .project-detail-title{font-size:clamp(2rem,6vw,4.5rem);padding-bottom:40px;margin-bottom:40px}}@media (max-width:480px){.blog-two-section-layout .hobby-section-button .project-detail-title{font-size:clamp(1.8rem,5.5vw,3.5rem);padding-bottom:30px;margin-bottom:30px}}.blog-two-section-layout .hobby-section-button:last-child .project-detail-title{padding-bottom:0;margin-bottom:0;border-bottom:none}.blog-thumbnail-section{flex:0 0 auto;width:auto;display:flex;align-items:flex-start;justify-content:flex-end;padding-right:var(--page-gutter);padding-top:0;overflow:hidden}.blog-thumbnail-container{aspect-ratio:3/4;height:calc(100vh - 50px - var(--page-gutter));width:auto;margin-top:0}@media (max-width:1024px){.blog-two-section-layout{flex-direction:column;gap:0}.blog-titles-section{flex:0 0 50vh;padding-left:0;overflow-y:auto}.blog-titles-section .project-detail-content{padding-left:var(--page-gutter);padding-top:0;padding-bottom:var(--page-gutter)}.blog-thumbnail-section{flex:1 1;justify-content:center;align-items:flex-start;padding-right:var(--page-gutter);padding-left:var(--page-gutter);padding-top:0}.blog-thumbnail-container{height:calc(50vh);width:auto;aspect-ratio:3/4;max-width:400px}}@media (max-width:768px){.blog-two-section-layout{flex-direction:column;gap:0}.blog-titles-section{flex:0 0 45vh;padding-left:0}.blog-titles-section .project-detail-content{padding-left:var(--page-gutter);padding-top:0;padding-bottom:var(--page-gutter)}.blog-thumbnail-section{flex:1 1;justify-content:center;align-items:flex-start;padding-right:var(--page-gutter);padding-left:var(--page-gutter);padding-top:0}.blog-thumbnail-container{height:calc(55vh);width:auto;aspect-ratio:3/4;max-width:350px}}@media (max-width:480px){.blog-two-section-layout{flex-direction:column;gap:0}.blog-titles-section{flex:0 0 40vh;padding-left:0}.blog-titles-section .project-detail-content{padding-left:var(--page-gutter);padding-top:0;padding-bottom:var(--page-gutter)}.blog-thumbnail-section{flex:1 1;justify-content:center;align-items:center;padding-right:var(--page-gutter);padding-left:var(--page-gutter);padding-top:0}.blog-thumbnail-container{height:calc(60vh);width:auto;aspect-ratio:3/4;max-width:300px}}@media (max-width:1400px){.blog-thumbnail-section{display:none}.blog-titles-section{flex:1 1;width:100%}}.photos-container-fullscreen{height:calc(100vh - 50px);width:100vw;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:0;margin:50px 0 0}.photos-gallery-fullscreen{height:100%;width:100vw;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;scrollbar-width:none;scrollbar-color:rgba(0,0,0,.3) transparent}.loading-message,.no-photos-message{text-align:center;color:var(--secondary-color);font-size:1.1rem}.no-photos-message p{margin:.5rem 0;font-size:.95em}.no-photos-message code{background:rgba(0,0,0,.1);padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:.9em}.photos-container{min-height:100vh;padding:2rem var(--page-gutter);max-width:100vw;overflow-x:hidden}.photos-header{text-align:center;margin-bottom:3rem;max-width:var(--content-measure);margin-left:auto;margin-right:auto}.photos-gallery{margin:2rem 0;overflow-x:auto;overflow-y:hidden;width:100vw;margin-left:calc(-1 * var(--page-gutter));padding:0 var(--page-gutter);scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.3) transparent}.photos-gallery-fullscreen::-webkit-scrollbar,.photos-gallery::-webkit-scrollbar{height:0}.photos-gallery-fullscreen::-webkit-scrollbar-track,.photos-gallery::-webkit-scrollbar-track{background:transparent}.photos-gallery-fullscreen::-webkit-scrollbar-thumb,.photos-gallery::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:4px}.photos-gallery-fullscreen::-webkit-scrollbar-thumb:hover,.photos-gallery::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.5)}.photos-scroll-container{display:flex;gap:var(--page-gutter);align-items:center;width:max-content;height:100%;padding:0 var(--page-gutter) var(--page-gutter) var(--page-gutter)}.photo-item{flex-shrink:0;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.1);display:flex;align-items:center;justify-content:center}.photo-item img{display:block;max-width:none}.blog-photo-item{box-shadow:none!important}.photos-instructions{text-align:center;margin-top:3rem;padding:1.5rem;background:rgba(0,0,0,.05);border-radius:8px;max-width:var(--content-measure);margin-left:auto;margin-right:auto}.photos-instructions code{background:rgba(0,0,0,.1);padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:.9em}.photos-instructions p{margin:.5rem 0;font-size:.95em;color:var(--secondary-color)}@media (max-width:768px){.photos-container{padding:1rem var(--page-gutter)}.photos-header{margin-bottom:2rem}.photos-scroll-container{gap:var(--page-gutter);padding:0 var(--page-gutter) var(--page-gutter) var(--page-gutter)}.photos-container-fullscreen{height:calc(100vh - 50px);width:100vw;margin-top:50px}.photos-gallery-fullscreen{height:100%;width:100vw}}.film-progress-indicator{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1000}.film-progress-pills{display:flex;gap:4px;background:white;padding:6px;border-radius:30px;border:1px solid rgba(0,0,0,.1);transition:all .3s ease}.film-progress-pill{background:transparent;border:none;color:#333;padding:8px 16px;border-radius:20px;cursor:pointer;transition:all .3s ease;font-family:League Spartan,sans-serif;font-weight:600;font-size:14px;white-space:nowrap}.film-progress-pill:hover{background:rgba(0,0,0,.05);color:#333}.film-progress-pill.active{background:rgba(0,0,0,.1);color:#333;font-weight:600}.film-progress-pill-text{display:block}.film-progress-chevron{display:flex;align-items:center;justify-content:center;color:rgba(51,51,51,.4);margin:0 2px;transition:color .3s ease}.film-progress-chevron svg{width:18px;height:18px}.film-text-section{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:auto;height:auto;flex-shrink:0}.film-text-content{padding:40px;text-align:left;color:var(--text-primary);width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.film-text-content h2{font-size:1.8rem;font-weight:300;margin:0 0 24px;color:var(--text-primary);line-height:1.3}.film-text-content p{font-size:1rem;font-weight:300;line-height:1.6;margin:0 0 16px;color:var(--text-secondary)}.film-text-content p:last-child{margin-bottom:0}.film-video-section{display:flex;align-items:center;justify-content:center;flex-shrink:0}.film-video-section iframe{border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.3)}@media (max-width:768px){.film-progress-indicator{bottom:16px}.film-progress-pills{gap:3px;padding:6px}.film-progress-pill{padding:6px 12px;font-size:13px}.film-progress-pill-text{font-size:13px}.film-progress-chevron svg{width:16px;height:16px}.film-text-section{width:auto;height:auto}.film-text-content{padding:24px}.film-text-content h2{font-size:1.5rem;margin-bottom:16px}.film-text-content p{font-size:.9rem;margin-bottom:12px}}.project-selector{position:fixed;bottom:24px;left:24px;z-index:1000;padding:20px;margin:-20px;transform:scale(1.5);transform-origin:bottom left}.project-selector-chevron{position:absolute;top:-8px;left:0;background:white;border:1px solid rgba(0,0,0,.1);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.1);z-index:1001}.project-selector-chevron:hover{background:rgba(0,0,0,.9);color:white;border-color:rgba(0,0,0,.9)}.project-selector-chevron svg{color:#333;transition:color .3s ease}.project-selector-chevron:hover svg{color:white}.project-selector.collapsed .project-selector-track{display:none}.project-selector.collapsed{transform:none;bottom:24px;left:24px;padding:0;margin:0}.project-selector.small-hover{width:120px;height:60px;border-radius:30px;background:white;border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 20px rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;gap:6px;transform:scale(1);margin:0;padding:0}.project-selector.small-hover .project-selector-track{display:flex;gap:6px;height:auto;align-items:center}.project-selector.small-hover .project-selector-item-wrapper{width:48px;height:48px;border-radius:8px;overflow:hidden;flex-shrink:0}.project-selector.small-hover .project-selector-thumb{width:100%;height:100%}.project-selector.small-hover .project-selector-thumb img{width:100%;height:100%;object-fit:contain}.project-selector.small-hover .project-selector-collapsed-button,.project-selector.small-hover .project-selector-name{display:none}.project-selector-collapsed-button{background:transparent;border:none;padding:0;margin:0;cursor:pointer;transform-origin:bottom left;z-index:1000}.project-selector-collapsed-button,.project-selector-collapsed-icon-container{display:flex;align-items:center;justify-content:flex-start;width:100px;height:60px;position:relative;transition:transform .25s cubic-bezier(.25,.46,.45,.94),opacity .2s ease;overflow:visible}.project-selector-collapsed-icon-container{flex-shrink:0}.project-selector-collapsed-icon{width:24px;height:24px;color:#333;transition:transform .25s cubic-bezier(.25,.46,.45,.94),color .2s ease}.project-selector-collapsed-fan{position:relative;width:100px;height:60px;display:flex;align-items:center;justify-content:flex-start;padding-left:30px;background:none!important;background-color:transparent!important}.project-selector-collapsed-fan img{position:absolute;height:56px;width:auto;display:block;border-radius:6px;background:none!important;background-color:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;transition:transform .4s cubic-bezier(.25,.46,.45,.94),opacity .3s ease;transform-origin:center bottom;left:30px;isolation:isolate}.project-selector-collapsed-fan img:first-child{transform:rotate(-24deg) translateX(-16px);z-index:5}.project-selector-collapsed-fan img:nth-child(2){transform:rotate(-12deg) translateX(-8px);z-index:4}.project-selector-collapsed-fan img:nth-child(3){transform:rotate(0deg) translateX(0);z-index:3}.project-selector-collapsed-fan img:nth-child(4){transform:rotate(12deg) translateX(6px);z-index:2}.project-selector-collapsed-fan img:nth-child(5){transform:rotate(24deg) translateX(10px);z-index:1}.project-selector-collapsed-button:hover .project-selector-collapsed-icon{transform:none}.project-selector-text{font-family:League Spartan,sans-serif;font-weight:600;font-size:14px;color:#333;white-space:nowrap;margin-right:12px;opacity:0;transform:translateX(-10px);transition:all .4s cubic-bezier(.25,.46,.45,.94);transition-delay:.15s}.project-selector-collapsed-button:hover .project-selector-text{opacity:1;transform:translateX(0)}.project-selector-track{display:flex;align-items:flex-end;gap:12px;height:145px;transition:transform .25s cubic-bezier(.25,.46,.45,.94),opacity .2s ease}.project-selector:not(.collapsed) .project-selector-track{animation:selectorTrackFadeIn .38s cubic-bezier(.25,.46,.45,.94)}@keyframes selectorTrackFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.project-selector.collapsing .project-selector-track{pointer-events:none;transform:none;opacity:1}.project-selector.collapsing .project-selector-collapsed-button{opacity:.001;transform:scale(1) translateY(0);position:fixed;bottom:24px;left:24px;pointer-events:none}.project-selector:not(.collapsing).collapsed .project-selector-track{opacity:0}.project-selector:not(.collapsed) .project-selector-collapsed-button{opacity:0;pointer-events:none;transform:scale(.9);position:fixed;bottom:24px;left:24px}.project-selector.collapsing .project-selector-collapsed-button{transition-delay:.36s}.project-selector.expanding .project-selector-track{opacity:0}@media (max-width:768px){.project-selector:has(.project-selector-sheet){z-index:20000;transform:none!important}.project-selector-sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1200}.project-selector-sheet{position:fixed;left:50%;top:auto;bottom:calc((100vw - min(720px, calc(100vw - 32px)))/2);transform:translateX(-50%);height:min(70vh,620px);background:#fff;border-radius:16px;width:min(720px,calc(100vw - 32px));margin:0;box-shadow:0 12px 40px rgba(0,0,0,.28);z-index:1201;display:flex;flex-direction:column;padding:16px 0;animation:sheetModalInSide .26s cubic-bezier(.25,.46,.45,.94)}.project-selector-sheet-header{display:flex;align-items:center;justify-content:flex-end;position:relative;padding:0 16px 12px}.project-selector-sheet-handle{display:none}.project-selector-sheet-close{position:static;background:rgba(0,0,0,.06);border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#333;font-size:20px;font-weight:500;transition:background .2s ease}.project-selector-sheet-close:active{background:rgba(0,0,0,.12)}.project-selector-sheet-scroll{display:flex;gap:12px;overflow-x:auto;padding:0;-webkit-overflow-scrolling:touch;scrollbar-width:none;height:100%;align-items:center}.project-selector-sheet-scroll:after,.project-selector-sheet-scroll:before{content:"";flex:0 0 16px}.project-selector-sheet-scroll::-webkit-scrollbar{display:none}.project-selector-sheet-item{flex:0 0 auto;width:auto;max-width:none;text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;gap:10px}.project-selector-sheet .project-selector-thumb{position:relative;display:inline-block;border-radius:8px}.project-selector-sheet .project-selector-thumb img{display:block;height:270px;width:auto;border-radius:8px}.project-selector-sheet .project-selector-name{background:transparent;border:none;box-shadow:none;padding:0;border-radius:0;transform:none;color:#000}.project-selector-sheet .project-selector-item:hover .project-selector-name{background:transparent;color:#000;border:none;box-shadow:none}@keyframes sheetModalInSide{0%{transform:translate(-50%,12px);opacity:0}to{transform:translateX(-50%);opacity:1}}}.project-selector-item-wrapper{flex-shrink:0;transition:opacity .16s ease-out;position:relative}.project-selector.collapsing .project-selector-item-wrapper{opacity:0!important;mask:none!important;-webkit-mask:none!important}.project-selector.collapsing .project-selector-item-wrapper:last-child{transition-delay:0s}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(2){transition-delay:40ms}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(3){transition-delay:80ms}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(4){transition-delay:.12s}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(5){transition-delay:.16s}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(6){transition-delay:.2s}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(7){transition-delay:.24s}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(8){transition-delay:.28s}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(9){transition-delay:.32s}.project-selector.collapsing .project-selector-item-wrapper:nth-last-child(10){transition-delay:.36s}.project-selector-item-wrapper:after{content:"";position:absolute;top:-20px;left:-10px;right:-30px;bottom:-20px;z-index:-1}.project-selector-track[style*="--visible-count: 10"] .project-selector-item-wrapper:nth-child(-n+9),.project-selector-track[style*="--visible-count: 2"] .project-selector-item-wrapper:first-child,.project-selector-track[style*="--visible-count: 3"] .project-selector-item-wrapper:first-child,.project-selector-track[style*="--visible-count: 3"] .project-selector-item-wrapper:nth-child(2),.project-selector-track[style*="--visible-count: 4"] .project-selector-item-wrapper:first-child,.project-selector-track[style*="--visible-count: 4"] .project-selector-item-wrapper:nth-child(2),.project-selector-track[style*="--visible-count: 4"] .project-selector-item-wrapper:nth-child(3),.project-selector-track[style*="--visible-count: 5"] .project-selector-item-wrapper:first-child,.project-selector-track[style*="--visible-count: 5"] .project-selector-item-wrapper:nth-child(2),.project-selector-track[style*="--visible-count: 5"] .project-selector-item-wrapper:nth-child(3),.project-selector-track[style*="--visible-count: 5"] .project-selector-item-wrapper:nth-child(4),.project-selector-track[style*="--visible-count: 6"] .project-selector-item-wrapper:nth-child(-n+5),.project-selector-track[style*="--visible-count: 7"] .project-selector-item-wrapper:nth-child(-n+6),.project-selector-track[style*="--visible-count: 8"] .project-selector-item-wrapper:nth-child(-n+7),.project-selector-track[style*="--visible-count: 9"] .project-selector-item-wrapper:nth-child(-n+8){opacity:1;pointer-events:all}.project-selector-track[style*="--visible-count: 10"] .project-selector-item-wrapper:nth-child(10),.project-selector-track[style*="--visible-count: 2"] .project-selector-item-wrapper:nth-child(2),.project-selector-track[style*="--visible-count: 3"] .project-selector-item-wrapper:nth-child(3),.project-selector-track[style*="--visible-count: 4"] .project-selector-item-wrapper:nth-child(4),.project-selector-track[style*="--visible-count: 5"] .project-selector-item-wrapper:nth-child(5),.project-selector-track[style*="--visible-count: 6"] .project-selector-item-wrapper:nth-child(6),.project-selector-track[style*="--visible-count: 7"] .project-selector-item-wrapper:nth-child(7),.project-selector-track[style*="--visible-count: 8"] .project-selector-item-wrapper:nth-child(8),.project-selector-track[style*="--visible-count: 9"] .project-selector-item-wrapper:nth-child(9){opacity:1;pointer-events:all;position:relative;mask:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,.1));-webkit-mask:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,.1))}.project-selector-item-wrapper{opacity:0;pointer-events:none}.project-selector-item{display:flex;flex-direction:column;align-items:center;gap:8px;color:#333;font-family:League Spartan,sans-serif;font-weight:600;font-size:13px;white-space:nowrap;text-decoration:none;transition:transform .3s ease}.project-selector-thumb{position:relative;display:inline-block;border-radius:8px;transition:transform .3s ease,box-shadow .3s ease}.project-selector-item:hover{background:transparent}.project-selector-item:hover .project-selector-thumb{transform:translateY(-4px) scale(1.05)}.project-selector-thumb img{display:block;height:120px;width:auto;border-radius:8px;transition:transform .3s ease}.project-selector-name{display:inline-block;text-align:center;line-height:1;background:white;padding:4px 8px;border-radius:20px;border:1px solid rgba(0,0,0,.1);transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.1);transform:scale(.67);transform-origin:center}.project-selector-item:hover .project-selector-name{background:rgba(0,0,0,.9);color:white;border-color:rgba(0,0,0,.9)}.project-selector-hint-bubble{position:absolute;bottom:100%;left:0;margin-bottom:8px;display:inline-block;text-align:center;line-height:1;background:white;padding:4px 8px;border-radius:20px;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px rgba(0,0,0,.1);font-family:League Spartan,sans-serif;font-weight:600;font-size:14px;color:#333;white-space:nowrap;z-index:1001;animation:hintBubbleAppear .5s cubic-bezier(.25,.46,.45,.94),hintBubbleFadeOut .5s ease-in-out 2.5s forwards;pointer-events:none}@keyframes hintBubbleAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes hintBubbleFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}@media (max-width:768px){.project-selector{padding:16px;margin:-16px}.project-selector,.project-selector.collapsed,.project-selector.collapsing .project-selector-collapsed-button,.project-selector:not(.collapsed) .project-selector-collapsed-button{bottom:16px;left:16px}.project-selector.small-hover{height:56px}.project-selector-chevron{width:20px;height:20px;top:-6px}.project-selector-chevron svg{width:10px;height:10px}.project-selector-collapsed-button{width:56px;height:56px}.project-selector-collapsed-button:hover{width:200px}.project-selector-collapsed-icon-container{width:44px;height:44px}.project-selector-collapsed-icon{width:20px;height:20px}.project-selector-text{font-size:13px}.project-selector-track{height:125px;gap:10px}.project-selector-item{font-size:12px}.project-selector-item-wrapper:after{top:-16px;left:-8px;right:-24px;bottom:-16px}.project-selector-thumb img{height:100px}.project-selector .project-selector-track{padding-right:16px!important}.blog-selector .project-selector-track:before{background:#000!important}.blog-selector .project-selector-track{padding:0 16px!important}.blog-selector .project-selector-sheet .project-selector-name.blog-selector-dot{width:auto!important;height:auto!important;border-radius:0!important;background:transparent!important;color:#333!important;border:none!important;box-shadow:none!important;padding:0!important;display:inline-block!important;transform:none!important;position:static!important;white-space:nowrap!important;font-size:13px!important;font-weight:600!important}}.blog-selector .project-selector-track{position:relative}.blog-selector .project-selector-track:before{content:"";position:absolute;left:0;right:0;bottom:5px;height:2px;background:#fff;border-radius:9999px;pointer-events:none;transform-origin:left;transition:transform .3s ease-out;box-shadow:0 1px 3px rgba(0,0,0,.2)}.blog-selector.collapsing .project-selector-track:before{transform:scaleX(0)}.blog-selector .project-selector-item{position:relative;padding-bottom:18px}.blog-selector .project-selector-item .project-selector-name.blog-selector-dot{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.2);padding:0;display:block;overflow:hidden;white-space:nowrap;color:transparent;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .2s ease}.blog-selector .project-selector-item:hover .project-selector-name.blog-selector-dot{background:rgba(0,0,0,.9);border-color:rgba(0,0,0,.9)}.blog-selector .project-selector-item:hover .project-selector-thumb{transform:translateY(-4px) scale(1.05)}.blog-selector .project-selector-sheet .project-selector-name.blog-selector-dot{width:10px;height:10px;border-radius:50%;background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.2);padding:0;display:block;transform:none;overflow:hidden;white-space:nowrap;color:transparent}.blog-selector .project-selector-item .project-selector-name.blog-selector-dot:focus-visible,.blog-selector .project-selector-item .project-selector-name.blog-selector-dot:hover,.blog-selector .project-selector-item:hover .project-selector-name.blog-selector-dot{width:auto;height:auto;display:inline-block;padding:4px 8px;border-radius:20px;background:#000;color:white;border:1px solid #000;box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(-50%) scale(.67) translateY(6px);z-index:2}.blog-selector .project-selector-item:hover .project-selector-name.blog-selector-dot:hover{background:#000;color:white;border-color:#000}.navbar-transparent{background-color:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.navbar-transparent .mobile-menu-button,.navbar-transparent .navbar-logo,.navbar-transparent .navbar-menu-item{color:white!important;text-shadow:0 2px 4px rgba(0,0,0,.5)}.navbar-transparent .navbar-menu-item:hover{color:rgba(255,255,255,.8)!important}.navbar-transparent .navbar-menu-item.active{color:white!important;opacity:1}.tldr-parallax-page{width:100%;min-height:100vh;overflow-x:hidden;background-color:#ffffff;margin-top:-40px;padding-top:0}.parallax-hero-container{position:relative;width:100vw;height:100vh;overflow:hidden;margin-left:calc(-50vw + 50%);left:0}.parallax-layer{position:absolute;top:-30%;left:50%;width:100vw;will-change:transform}.parallax-background{z-index:1}.parallax-foreground{z-index:2}.parallax-image{width:100%;max-width:none;height:auto;display:block;object-fit:cover;object-position:center center}.tldr-parallax-page .project-detail{background-color:#ffffff;position:relative;z-index:10;width:100%}.tldr-parallax-page .project-detail-bio{color:#000000}.tldr-intro-main{color:#000000;margin-bottom:3rem}.tldr-intro-secondary{color:#000000;font-size:clamp(1.1rem,2vw,1.3rem);line-height:1.6;margin-bottom:1.5rem}.tldr-intro-secondary:last-child{margin-bottom:0}.tldr-parallax-page .project-detail-intro{padding:2rem 0 1rem;z-index:10}.tldr-parallax-page .project-detail-content,.tldr-parallax-page .project-detail-intro,.tldr-projects-section{background-color:#ffffff;width:100%;position:relative}.tldr-projects-section{padding:1.5rem 0 8rem;z-index:10;--tldr-scale:1.5;--tldr-label-scale:1.35}.tldr-projects-container{width:90vw;max-width:1800px;margin:0 auto;padding:0;overflow:visible;position:relative}.tldr-projects-track{display:flex;align-items:flex-end;gap:calc(16px * var(--tldr-scale, 1));justify-content:center;flex-wrap:nowrap;padding:1rem 0;overflow:visible}.tldr-project-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:inherit;transition:transform .3s cubic-bezier(.25,.46,.45,.94);flex-shrink:0}.tldr-project-item:hover{transform:translateY(calc(-8px * var(--tldr-scale, 1)))}.tldr-project-thumb{position:relative;width:auto;height:calc(120px * var(--tldr-scale, 1));border-radius:8px;overflow:hidden;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.tldr-project-thumb img{display:block;height:100%;width:auto;object-fit:contain}.tldr-project-name{margin-top:12px;display:inline-block;text-align:center;line-height:1;font-family:League Spartan,sans-serif;font-weight:600;font-size:calc(14px * var(--tldr-label-scale, 1));color:#333;background:white;padding:calc(4px * var(--tldr-label-scale, 1)) calc(8px * var(--tldr-label-scale, 1));border-radius:20px;border:1px solid rgba(0,0,0,.1);transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.1);white-space:nowrap}.tldr-project-item:hover .tldr-project-name{background:rgba(0,0,0,.9);color:white;border-color:rgba(0,0,0,.9)}@media (max-width:768px){.parallax-hero-container{height:100vw;width:100vw;margin-left:0}.parallax-layer{top:0;left:0;transform:none!important;width:100%;height:100%}.parallax-image{width:100%;height:100%;object-fit:cover;object-position:center center}.tldr-parallax-page .project-detail{margin-top:0;padding-top:0}.tldr-parallax-page .project-detail-content{padding-top:0}.tldr-parallax-page .project-detail-intro{padding:3rem 0 0;margin:0}.tldr-intro-main{margin-bottom:3rem}.tldr-intro-secondary{margin-bottom:1.5rem}.tldr-parallax-page .project-detail-bio{margin-bottom:0}.tldr-projects-section{padding:2rem 0 8rem}.tldr-projects-container{width:100vw;padding:0;margin-left:calc(-50vw + 50%);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.tldr-projects-container::-webkit-scrollbar{display:none}.tldr-projects-track{display:flex;flex-wrap:nowrap;justify-content:flex-start;padding:1rem 5vw;gap:20px;width:max-content}.tldr-project-thumb{height:180px}.tldr-project-name{font-size:16px;padding:6px 12px}.tldr-project-item:hover{transform:none}.tldr-project-item:hover .tldr-project-name{background:rgba(0,0,0,.05);color:#000;border-color:rgba(0,0,0,.3)}}