.site-header--sticky{position:fixed;top:0;left:0;right:0;z-index:900;background:#0a0a0ad9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08)}.sticky-inner{max-width:1400px;margin:0 auto;padding:.9rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.sticky-header-spacer{height:56px}.sticky-logo{font-size:1.1rem;font-weight:600;color:#727272;text-decoration:none;white-space:nowrap;transition:color .2s}.sticky-logo:hover{color:#fff}.sticky-nav{display:flex;gap:1.75rem;list-style:none;margin:0;padding:0}.sticky-nav a{color:#ccc;text-decoration:none;font-size:.95rem;font-weight:500;transition:color .2s}.sticky-nav a:hover{color:#fff}.sticky-title{position:absolute;left:50%;transform:translate(-50%);font-size:.85rem;font-weight:400;color:#aaa;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.sticky-contact{color:#aaa;text-decoration:none;font-size:.9rem;transition:color .2s}.sticky-contact:hover{color:#fff}.site-header--minimal{border-bottom:none}.site-header--minimal .hero-section{padding:5rem 2rem 3rem}.minimal-contact{display:inline-block;margin-top:1rem;font-size:1rem;color:#aaa;text-decoration:none;transition:color .2s}.minimal-contact:hover{color:#fff}.email-bright{color:inherit;opacity:1;font-weight:500}.email-dim{opacity:.75}@media (max-width: 600px){.sticky-inner{padding:.75rem 1.25rem}.sticky-nav{gap:1rem}.sticky-contact{font-size:.8rem}}.lb-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;background-color:#000000eb;display:flex;align-items:center;justify-content:center;animation:lbFadeIn .3s ease}.lb-overlay.lb-closing{animation:lbFadeOut .3s ease forwards}@keyframes lbFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lbFadeOut{0%{opacity:1}to{opacity:0}}.lb-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.lb-main-image{max-width:90vw;max-height:80vh;object-fit:contain;border-radius:3px;animation:lbImageIn .3s ease}@keyframes lbImageIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.lb-close-btn{position:fixed;top:1.5rem;right:2rem;background:none;border:2px solid rgba(255,255,255,.3);color:#ffffffb3;font-size:2rem;cursor:pointer;z-index:10001;width:45px;height:45px;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:color .2s,border-color .2s}.lb-close-btn:hover{color:#f08080;border-color:#f08080}.lb-nav-btn{position:fixed;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff80;font-size:2.5rem;cursor:pointer;padding:1rem;z-index:10001;transition:color .2s,background-color .2s;-webkit-user-select:none;user-select:none;border-radius:3px}.lb-nav-btn:hover{color:#f08080;background-color:#6565654d}.lb-prev-btn{left:1rem}.lb-next-btn{right:1rem}.lb-info-bar{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem .25rem;margin-top:.5rem}.lb-caption{display:flex;flex-direction:column;gap:.2rem}.lb-title{color:#fff;font-size:.95rem;font-weight:500}.lb-description{color:#999;font-size:.8rem;line-height:1.4}.lb-counter{color:#999;font-size:.85rem;white-space:nowrap}@media (max-width: 768px){.lb-main-image{max-width:95vw;max-height:70vh}.lb-nav-btn{font-size:2rem;padding:.5rem}.lb-prev-btn{left:.25rem}.lb-next-btn{right:.25rem}.lb-close-btn{top:1rem;right:1rem;font-size:1.5rem;width:38px;height:38px}}body{background:var(--bg-color)}.masonry-gallery-container{width:100%;padding:2rem 0}.gallery-container{column-count:1;column-gap:20px;padding:20px}@media (min-width: 620px){.gallery-container{column-count:2}}@media (min-width: 820px){.gallery-container{column-count:3}}@media (min-width: 1520px){.gallery-container{column-count:4}}.gallery-container--horizontal{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-rows:10px;gap:20px;align-items:start;column-count:unset}.h-masonry-item{break-inside:unset;margin-bottom:0}.image-wrapper{break-inside:avoid;margin-bottom:20px;position:relative;background:#00000080;border-radius:8px;overflow:hidden;display:inline-block;width:100%;cursor:pointer}.image-wrapper img{width:100%;height:auto;display:block;position:relative;left:0;top:0;transition:.5s}.home-image{width:100%;break-inside:avoid;margin-bottom:20px}.home-image-frame{overflow:visible;left:0;right:0;margin:0;top:0;bottom:0;position:relative;z-index:1}.home-image:hover .hoverCov2{opacity:.4;filter:grayscale(1) blur(1px);transition:.5s}.home-image:hover .lok-imageText{display:inline;transition:.4s}.lok-imageText{font-size:1.2rem;left:0;top:40%;margin:0 5%;position:absolute;word-wrap:break-word;width:90%;letter-spacing:1px;line-height:1.75rem;display:none;color:#fff;z-index:2}.lok-imageText .point{font-size:.9rem;color:#ccc}.tp{margin:0}@media (max-width: 768px){.gallery-container{padding:10px;column-gap:15px}.image-wrapper{margin-bottom:15px}.lok-imageText{font-size:1rem;line-height:1.5rem}}.protected-page{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.protected-prompt{text-align:center;max-width:400px;width:100%}.protected-icon{font-size:3rem;margin-bottom:1rem}.protected-prompt h2{font-size:1.5rem;margin-bottom:.5rem;color:#fff}.protected-prompt p{color:#999;font-size:.95rem;margin-bottom:1.5rem}.protected-form{display:flex;gap:.5rem;justify-content:center}.protected-input{padding:.75rem 1rem;font-size:1rem;border:2px solid #333;border-radius:6px;background:#1a1a1a;color:#fff;outline:none;width:220px;transition:border-color .2s}.protected-input:focus{border-color:#667eea}.protected-input-error{border-color:#f08080}.protected-submit{padding:.75rem 1.5rem;font-size:1rem;border:none;border-radius:6px;background:#333;color:#fff;cursor:pointer;transition:background .2s}.protected-submit:hover{background:#555}.protected-error{color:#f08080;font-size:.85rem;margin-top:1rem}@media (max-width: 480px){.protected-form{flex-direction:column;align-items:center}.protected-input,.protected-submit{width:100%}}.skills-section{padding:2rem 0 5rem;text-align:center}.skills-group{margin-bottom:1rem}.skills-title{font-size:1.15rem;font-weight:600;letter-spacing:.125rem;padding-top:2rem;margin-bottom:0;text-transform:uppercase;color:var(--text-H1-color)}.skills-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:0;margin:1.5rem auto 0;padding:1rem;max-width:900px}.skill-item{flex:0 0 50%;padding:.5rem;font-size:.95rem;color:var(--text-color)}@media (min-width: 768px){.skill-item{flex:0 0 33.333%}}@media (min-width: 992px){.skill-item{flex:0 0 16.666%}}.mv-wrapper{width:100%;position:relative}.mv-wrapper model-viewer{width:100%;height:500px;background-color:#fff;border-radius:8px}.mv-hotspot{background:#fff;border-radius:32px;border:0;box-shadow:0 2px 4px #00000040;box-sizing:border-box;cursor:pointer;height:20px;padding:8px;position:relative;transition:opacity .3s;width:20px;opacity:1;display:block}.mv-hotspot:not([data-visible]){background:transparent;border:4px solid #fff;box-shadow:none;height:32px;pointer-events:none;width:32px}.mv-hotspot:focus{border:4px solid rgb(0,128,200);height:32px;outline:none;width:32px}.mv-hotspot>*{opacity:1;transform:translateY(-50%)}.mv-hotspot:not([data-visible])>*{opacity:0;pointer-events:none;transform:translateY(calc(-50% + 4px));transition:transform .3s,opacity .3s}.mv-hotspot-annotation{background:#888;border-radius:4px;box-shadow:0 2px 8px #00000080;color:#e6e6e6e6;display:block;font-family:Futura,Helvetica Neue,sans-serif;font-size:14px;font-weight:500;left:calc(100% + 1em);max-width:128px;overflow-wrap:break-word;padding:.5em 1em;position:absolute;top:50%;width:max-content;letter-spacing:.05rem}.mv-control{width:130px;background:#aaa;position:absolute;cursor:pointer;font-size:.6rem;font-weight:700;letter-spacing:.05rem;padding:.3rem .25rem;bottom:1rem;left:2%;border-radius:30px;text-align:center;opacity:.5;transition:.3s;z-index:10;-webkit-user-select:none;user-select:none}.mv-control:hover{opacity:1;background-color:#f08080}.mv-progress-bar{display:block;width:33%;height:10%;max-height:2%;position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0);border-radius:25px;box-shadow:0 3px 10px 3px #00000080,0 0 5px 1px #0009;border:1px solid rgba(255,255,255,.9);background-color:#00000080}.mv-progress-bar.hide{visibility:hidden;transition:visibility .3s}.mv-update-bar{background-color:#ffffffe6;width:0%;height:100%;border-radius:25px;float:left;transition:width .3s}.mv-ar-button{background-image:url(https://modelviewer.dev/shared-assets/icons/ic_view_in_ar_new_googblue_48dp.png);background-repeat:no-repeat;background-size:20px 20px;background-position:12px 50%;background-color:#fff;position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;bottom:16px;padding:0 16px 0 40px;font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;color:#4285f4;height:36px;line-height:36px;border-radius:18px;border:1px solid #DADCE0;cursor:pointer;display:block}.mv-ar-button:active{background-color:#e8eaed}.mv-ar-button:focus{outline:none}.mv-ar-button:focus-visible{outline:1px solid #4285f4}.mv-ar-prompt{position:absolute;left:50%;bottom:60px;animation:mv-elongate 2s infinite ease-in-out alternate;display:none}model-viewer[ar-status=session-started]>.mv-ar-prompt{display:block}.mv-ar-prompt>img{animation:mv-circle 4s linear infinite}@keyframes mv-circle{0%{transform:translate(-50%) rotate(0) translate(50px) rotate(0)}to{transform:translate(-50%) rotate(360deg) translate(50px) rotate(-360deg)}}@keyframes mv-elongate{0%{transform:translate(100px)}to{transform:translate(-100px)}}@media (max-width: 768px){.mv-wrapper model-viewer{height:350px}.mv-hotspot-annotation{font-size:12px;max-width:100px}}.model-showcase{padding:2rem 0 4rem;text-align:center}.model-showcase-title{font-size:1.15rem;font-weight:600;letter-spacing:.125rem;text-transform:uppercase;color:#464646;margin-bottom:2rem}.model-thumbnails{display:flex;justify-content:center;gap:5.5rem;flex-wrap:wrap}.model-thumb-btn{background:none;border:none;cursor:pointer;padding:10px;transition:transform .3s}.model-thumb-btn:hover{transform:scale(1.08)}.model-thumb-img{width:220px;height:220px;object-fit:cover;border-radius:50%;border:3px solid #333;transition:border-color .3s}.model-thumb-btn:hover .model-thumb-img{border-color:#f08080}.model-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;z-index:9999;display:flex;align-items:center;justify-content:center;animation:mmFadeIn .3s ease}@keyframes mmFadeIn{0%{opacity:0}to{opacity:1}}.model-modal{background:#1a1a1a;border-radius:8px;width:90%;max-width:1000px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.model-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #333}.model-modal-title{color:#fff;font-size:1.2rem;margin:0}.model-modal-close{background:none;border:none;color:#fff9;font-size:1.8rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.model-modal-close:hover{color:#f08080}.model-modal-body{padding:0;flex:1}@media (max-width: 768px){.model-thumb-img{width:90px;height:90px}.model-thumbnails{gap:1rem}.model-modal{width:95%}}.video-section{padding:3rem 2rem}.video-section-title{text-align:center;margin-bottom:2rem;font-size:1.8rem}.video-thumbnails{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.video-thumb-btn{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:0}.video-thumb-inner{position:relative;width:500px;height:280px;border-radius:6px;overflow:hidden;background:#111}.video-thumb-img{width:100%;height:100%;object-fit:cover;transition:opacity .2s}.video-thumb-btn:hover .video-thumb-img{opacity:.7}.video-thumb-placeholder{width:100%;height:100%;background:#222}.video-play-icon{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:#ffffffd9;pointer-events:none;transition:transform .2s}.video-thumb-btn:hover .video-play-icon{transform:scale(1.15)}.video-thumb-label{font-size:1.1rem;color:#5c5c5c}.video-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000}.video-modal{background:#1a1a1a;border-radius:8px;width:90vw;max-width:900px;overflow:hidden}.video-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #333}.video-modal-title{margin:0;font-size:1.1rem;color:#fff}.video-modal-close{background:none;border:none;color:#aaa;font-size:1.5rem;cursor:pointer;line-height:1;padding:0 .25rem}.video-modal-close:hover{color:#fff}.video-modal-body{padding:1rem}.video-player{width:100%;border-radius:4px;display:block}.video-embed-wrapper{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:4px}.video-embed{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.video-description{margin:.75rem 0 0;color:#aaa;font-size:.9rem}.App{min-height:100vh;display:flex;flex-direction:column}.site-header{background:var(--bg-color);border-bottom:1px solid #333}.nav-container{max-width:1400px;margin:0 auto;padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center}.logo h1{font-size:1.5rem;font-weight:600;color:#727272;text-decoration:none}.logo{text-decoration:none}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{color:#ccc;text-decoration:none;font-weight:500;transition:color .2s}.nav-links a:hover{color:#fff}.hero-section{max-width:1400px;margin:0 auto;padding:4rem 2rem;text-align:center}.theme-L .hero-section h2{background:var(--hero-title-color);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.bio{font-size:1.2rem;color:#aaa;max-width:600px;margin:0 auto}.main-content{flex:1;max-width:1400px;width:100%;margin:0 auto;padding:3rem 2rem}.project-grid-container{width:100%}.featured-section,.regular-section{margin-bottom:4rem}.featured-section h2,.regular-section h2{font-size:1.8rem;margin-bottom:2rem;color:#fff}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem}.project-grid.featured{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.project-card{background:#1a1a1a;border-radius:12px;overflow:hidden;transition:transform .3s,box-shadow .3s;border:1px solid #2a2a2a}.project-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #00000080;border-color:#3a3a3a}.project-thumbnail{width:100%;aspect-ratio:16/9;background:#0a0a0a;overflow:hidden}.project-media{width:100%;height:100%;object-fit:cover}.project-info{padding:1.5rem}.project-info h3{font-size:1.3rem;margin-bottom:.5rem;color:#fff}.project-description{color:#aaa;margin-bottom:1rem;line-height:1.5}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tag{background:#2a2a2a;color:#ccc;padding:.3rem .8rem;border-radius:20px;font-size:.85rem}.project-link{display:inline-block;color:#667eea;text-decoration:none;font-weight:500;transition:color .2s}.project-link:hover{color:#764ba2}.about-page,.contact-page{max-width:800px}.about-page h2,.contact-page h2{font-size:2rem;margin-bottom:1.5rem}.about-page p,.contact-page p{color:#aaa;line-height:1.8;margin-bottom:1rem}.social-links{display:flex;gap:1rem;margin-top:2rem}.social-links a{color:#667eea;text-decoration:none;padding:.5rem 1rem;border:1px solid #667eea;border-radius:6px;transition:all .2s}.social-links a:hover{background:#667eea;color:#fff}.site-footer{background:#1a1a1a;border-top:1px solid #333;padding:2rem;text-align:center;color:#666}@media (max-width: 768px){.nav-links{gap:1rem}.hero-section h2{font-size:2rem}.project-grid,.project-grid.featured{grid-template-columns:1fr}}:root.theme-D{--bg-color: #333333;--text-color: #d1d1d1}:root.theme-L{--bg-color: #f7f7f7;--text-color: #666666;--text-H1-color: #3a3a3a;--hero-title-color: linear-gradient(135deg, #ea6666 0%, #764ba2 100%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-color);color:var(--text-color)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
