.home-page{position:relative}.hero-img{width:100vw}.pre-loader{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:var(--bg);-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);z-index:100000}.progress-bar{position:absolute;top:0;left:0;width:100%;height:7px;background-color:var(--text);transform:scaleX(0);transform-origin:left}.home-page{width:100%;min-height:100vh}.about-section,.contact-section,.photos-section,.portfolio-section{padding:4rem 0;min-height:100vh}.contact-section,.photos-section{background-color:var(--bg)}@media (max-width:768px){.about-section,.contact-section,.photos-section,.portfolio-section{padding:2rem 0}}.hero-section{position:relative;cursor:none;transition:all .3s ease}.hero-img,.hero-section{width:100%;height:100vh;overflow:hidden}.hero-img{position:absolute;top:0;left:0}.hero-img img{width:100%;height:100%;object-fit:cover}.hero-title{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60%;text-align:center;z-index:1}.hero-title .line{overflow:hidden}.hero-title .line h1{transform:translateY(100%);font-size:clamp(2rem,8vw,6rem);font-weight:300;line-height:1.1;margin:0;color:var(--text)}.hero-hint{margin-top:2rem;opacity:0;transform:translateY(20px)}.hero-hint span{font-size:.9rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:2px;font-weight:400;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}@media (max-width:768px){.hero-title{width:90%}.hero-title .line h1{font-size:clamp(1.5rem,6vw,3rem)}}.showreel-cursor{position:fixed;top:0;left:0;width:120px;height:120px;pointer-events:none;z-index:9999;mix-blend-mode:difference;scale:0;opacity:0}.showreel-cursor-circle{width:100%;height:100%;border-radius:50%;background:var(--text);position:relative;scale:0;box-shadow:0 0 30px hsla(0,0%,100%,.3)}.showreel-cursor-circle,.showreel-cursor-text{display:flex;align-items:center;justify-content:center}.showreel-cursor-text{flex-direction:column;text-align:center;opacity:0;transform:translateY(10px)}.showreel-cursor-text span{color:var(--bg);font-size:12px;font-weight:600;line-height:1.2;text-transform:uppercase;letter-spacing:.5px}.showreel-cursor-text span:first-child{font-size:11px}.showreel-cursor-text span:last-child{font-size:10px;opacity:.8}@media (max-width:768px){.showreel-cursor{display:none}}.showreel-popup-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:hsla(0,0%,6%,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:2rem;cursor:default!important}.showreel-popup-overlay *{cursor:inherit!important}.showreel-popup-overlay .progress-bar,.showreel-popup-overlay .showreel-video,.showreel-popup-overlay button{cursor:pointer!important}body.popup-open .custom-cursor{display:none!important}.showreel-popup,body.popup-open{cursor:default!important}.showreel-popup{position:relative;width:100%;max-width:1200px;max-height:90vh;background:var(--bg);border-radius:20px;border:1px solid hsla(0,0%,100%,.1);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}.showreel-popup-close{position:absolute;top:1.5rem;right:1.5rem;width:48px;height:48px;background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);border-radius:50%;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10001;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.showreel-popup-close:hover{background:rgba(229,154,76,.2);border-color:#e59a4c;color:#e59a4c;transform:scale(1.1)}.showreel-video-container{height:100%}.showreel-video-container,.showreel-video-wrapper{width:100%;position:relative;cursor:default!important}.showreel-video-wrapper{aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#000}.showreel-video{width:100%;height:100%;object-fit:cover;border-radius:20px;cursor:pointer!important}.showreel-video-loading{top:0;width:100%;height:100%;flex-direction:column;justify-content:center;background:hsla(0,0%,6%,.9);color:var(--text)}.custom-video-controls,.showreel-video-loading{position:absolute;left:0;display:flex;align-items:center;gap:1rem}.custom-video-controls{bottom:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.8));padding:2rem 2rem 1.5rem;transition:opacity .3s ease,transform .3s ease}.custom-video-controls.show{opacity:1;transform:translateY(0)}.custom-video-controls.hide{opacity:0;transform:translateY(20px)}.play-pause-btn{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--text);cursor:pointer!important;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.play-pause-btn:hover{background:rgba(229,154,76,.2);border-color:#e59a4c;color:#e59a4c;transform:scale(1.1)}.progress-container{flex:1 1;margin:0 1rem}.progress-bar{position:relative;height:6px;background:#fff;border-radius:3px;cursor:pointer!important;overflow:hidden}.progress-bar:hover{height:8px;transform:translateY(-1px)}.progress-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#e59a4c,#f7e4cb);border-radius:3px;width:0;transition:width .1s ease}.progress-handle{position:absolute;top:50%;right:0;transform:translate(50%,-50%);width:12px;height:12px;background:#f7e4cb;border-radius:50%;opacity:0;transition:opacity .2s ease;box-shadow:0 2px 8px rgba(0,0,0,.3)}.progress-bar:hover .progress-handle{opacity:1}.time-display{display:flex;align-items:center;gap:.5rem;color:var(--text);font-size:.9rem;font-weight:500;min-width:100px}.time-display .separator{color:var(--text-secondary)}.loading-spinner{width:40px;height:40px;border:3px solid hsla(0,0%,100%,.1);border-top-color:#e59a4c;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.showreel-popup-overlay{padding:1rem}.showreel-popup{max-height:95vh}.showreel-popup-close{top:1rem;right:1rem;width:40px;height:40px}.showreel-video-wrapper{aspect-ratio:16/10}.custom-video-controls{padding:1.5rem 1rem 1rem;gap:.8rem}.play-pause-btn{width:40px;height:40px}.time-display{font-size:.8rem;min-width:80px}.progress-container{margin:0 .5rem}}@keyframes progressPulse{0%,to{box-shadow:0 0 0 0 rgba(229,154,76,.4)}50%{box-shadow:0 0 0 8px rgba(229,154,76,0)}}.progress-fill{position:relative}.progress-fill:after{content:"";position:absolute;top:0;right:0;width:2px;height:100%;background:#f7e4cb;box-shadow:0 0 10px hsla(34,73%,88%,.8);animation:progressPulse 2s infinite}.showreel-video::-webkit-media-controls{display:none!important}.showreel-video::-moz-media-controls{display:none!important}.video-fallback{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a1a,#0f0f0f)}.fallback-content{text-align:center;color:var(--text)}.fallback-play-button{width:80px;height:80px;background:rgba(229,154,76,.2);border:2px solid #e59a4c;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#e59a4c;cursor:pointer!important;transition:all .3s ease;margin:0 auto}.fallback-play-button:hover{background:rgba(229,154,76,.3);transform:scale(1.1)}.about-section{padding:5em 0;background-color:var(--bg)}.about-section .about-intro{width:75%;margin:0 auto;display:flex;gap:8em}.about-section .about-portrait-img{flex:1 1}.about-section .about-portrait{-webkit-clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}.about-section .about-copy-wrapper{flex:1.8 1}.about-section .about-copy-wrapper h1{margin-bottom:2em}.about-section .about-copy-wrapper p{margin-bottom:.5em}.about-section .about-copy p{font-size:2rem}.char{transition:color .15s ease-in-out}.about-section .about-intro .about-copy-title,.about-section .about-intro .line-wrapper,.about-section .cv-header .line-wrapper,.about-section .cv-name h3 .line-wrapper,.about-section .cv-year .line-wrapper{-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.about-section .about-intro .about-copy-title h1,.about-section .cv-header .line-wrapper span,.about-section .cv-name h3 .line-wrapper span,.about-section .cv-year h3 .line-wrapper span{position:relative;transform:translateY(70px);will-change:transform}.about-section .about-intro .line-wrapper span{position:relative;transform:translateY(30px);will-change:transform}.about-section .about-hero-img{width:100%;height:75vh;overflow:hidden;margin:8em 0}.about-section .cv-wrapper{width:85%;margin:0 auto 16em}.about-section .cv-wrapper .cv-header{margin-bottom:2em}.about-section .cv-item{width:100%;padding:1.25em 0;display:flex;justify-content:space-between;gap:2em;border-bottom:1px solid var(--text-darker)}.about-section .cv-wrapper h3{font-size:18px}@media (max-width:900px){.about-section .about-intro{width:100%;flex-direction:column;gap:8em}.about-section .about-copy-wrapper h1{margin-bottom:1em}.about-section .cv-wrapper{width:100%}}body{overflow-x:hidden}.featured-carousel{position:relative;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background-color:var(--bg);overflow:hidden}.featured-carousel .slide,.featured-carousel .slide-img{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.featured-carousel .slide{display:flex;align-items:flex-end;padding-bottom:5em}.featured-carousel .slide-img img{position:relative;transform:scale(1.25);will-change:transform;width:100%;height:100%;object-fit:cover}.featured-carousel .slide-copy{position:relative;width:100%;overflow:hidden;will-change:transform;z-index:1;padding:0 4em;max-width:100vw;box-sizing:border-box}.featured-carousel .slide-tag{margin-bottom:1rem}.featured-carousel .slide-tag p{color:var(--text);font-size:1rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;opacity:.8}.featured-carousel .slide-marquee{width:100%;overflow:hidden;margin-bottom:2rem}.featured-carousel .marquee-container{width:1000%;overflow:hidden}.featured-carousel .marquee-container h1{position:relative;color:var(--text);font-size:clamp(3rem,8vw,10rem);font-weight:700;letter-spacing:-.04em;line-height:1.2;will-change:transform;white-space:nowrap}.featured-carousel .slide-link{margin-top:1rem}.featured-carousel .view-project{display:inline-flex;align-items:center;gap:.5rem;color:var(--text);text-decoration:none;font-size:1rem;font-weight:500;padding:1rem 2rem;border:1px solid hsla(0,0%,100%,.2);border-radius:50px;background:hsla(0,0%,100%,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.featured-carousel .view-project:hover{background:var(--accent);border-color:var(--accent);color:var(--bg);transform:translateY(-2px)}.featured-carousel .carousel-progress{position:absolute;bottom:0;width:100%;padding:4em;display:flex;justify-content:space-between;gap:1em;z-index:2}.featured-carousel .progress-bar{position:relative;flex:1 1;width:100%;height:2px;background-color:hsla(0,0%,100%,.2);border-radius:1px}.featured-carousel .progress-bar:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,var(--accent),#f7e4cb);border-radius:1px;transform-origin:center left;transform:scaleX(var(--progress,0));will-change:transform;transition:transform .1s ease}@media (max-width:768px){.featured-carousel .slide-copy{padding:0 2em}.featured-carousel .marquee-container{width:2000%}.featured-carousel .carousel-progress{padding:2em 1em;gap:.5em}.featured-carousel .marquee-container h1{font-size:clamp(2rem,12vw,6rem)}.featured-carousel .slide-tag p{font-size:.9rem}.featured-carousel .view-project{font-size:.9rem;padding:.8rem 1.5rem}}@media (max-width:480px){.featured-carousel .slide-copy{padding:0 1.5em}.featured-carousel .carousel-progress{padding:1.5em 1em}.featured-carousel .marquee-container h1{font-size:clamp(1.5rem,15vw,4rem)}}.infinite-slider-section{margin:0}.infinite-slider-section,.slider{position:relative;width:100vw;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.slider{height:100vh}.slide-track{position:absolute;width:100%;height:100%;display:flex}.slide{flex-shrink:0;width:350px;height:500px;margin:0 20px;position:relative;top:50%;transform:translateY(-50%);overflow:visible;display:flex;flex-direction:column;cursor:pointer}.slide-image{width:100%;height:100%;overflow:hidden;flex:1 1}.slide-image img{width:100%;height:100%;object-fit:cover;will-change:transform;transform:scale(2.25);-webkit-user-select:none;-moz-user-select:none;user-select:none}.slide-overlay{position:absolute;bottom:-1.75rem;left:0;right:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:10;transition:opacity .3s ease;opacity:0}.slide:hover .slide-overlay{opacity:calc(1 - var(--slider-moving, 1))}.project-title{text-transform:uppercase;font-weight:500;font-size:.8rem;color:#fff}.project-arrow{width:16px;height:16px}.project-arrow svg{stroke:#fff;stroke-width:2}.portfolio-section{padding:2em 0;background-color:var(--bg)}.portfolio-section .container{padding-bottom:5em}.portfolio-section .portfolio-header{width:50%;margin:2em auto 4em;text-align:center;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.portfolio-section .portfolio-header h1{position:relative;transform:translateY(64px);will-change:transform}.portfolio-section .portfolio-row{width:100%;display:flex;gap:2em}.portfolio-section .portfolio-row .col{position:relative;width:100%;height:380px;margin-bottom:2em;overflow:hidden;-webkit-clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}.portfolio-section .portfolio-row .col img{will-change:transform}.portfolio-section .portfolio-row .col.lg{flex:2 1}.portfolio-section .portfolio-row .col.sm{flex:1.25 1}.portfolio-section .portfolio-row .col .project-title{position:absolute;left:1em;bottom:1em;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.portfolio-section .portfolio-row .col .project-title h3{position:relative;transform:translateY(24px);font-size:20px;will-change:transform}@media (max-width:900px){.portfolio-section .portfolio-row{flex-direction:column}}.photos-section .slider{position:relative;width:100%;height:100vh;overflow:hidden}.photos-section .slider .img,.photos-section .slider-images{position:absolute;width:100%;height:100%}.photos-section .slider-counter{position:absolute;bottom:2em;left:50%;transform:translateX(-50%);height:24px;display:flex;gap:.5em;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.photos-section .slider-counter>div{flex:1 1}.photos-section .slider-counter p{line-height:20px;color:var(--text)}.photos-section .slider .counter{position:relative;top:0;will-change:transform}.photos-section .slider .slider-title{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:64px;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.photos-section .slider-title-wrapper{position:relative;width:100%;top:0;text-align:center;will-change:transform}.photos-section .slider-title-wrapper p{font-size:50px;line-height:60px;color:var(--text);font-weight:500}.photos-section .slider-indicators{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:75%;display:flex;justify-content:space-between}.photos-section .slider-indicators p{position:relative;font-size:40px;font-weight:200;will-change:transform;color:var(--text)}.photos-section .slider-preview{position:absolute;bottom:2em;right:2em;width:30%;height:50px;display:flex;gap:.5em}.photos-section .slider .preview{position:relative;flex:1 1;cursor:pointer}.photos-section .slider .preview:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.25);transition:.3s ease-in-out}.photos-section .slider .preview.active:after{background-color:transparent}@media (max-width:900px){.slider-indicators{width:90%}.slider-preview{width:90%;bottom:2em;gap:.25em}.slider-title-wrapper p{font-size:30px}.slider-counter{bottom:10em}}