:root{--bg-color: #050505;--text-color: #ffffff;--accent-color: rgba(255, 255, 255, .1);--btn-hover: rgba(255, 255, 255, .2);--primary-color: #ffffff;--primary-text: #050505}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}.cablesContainer *,body>div:not(#app):not(#cables-canvas-container):not(#cablesErrorConsole) *{box-sizing:content-box!important;margin:revert;padding:revert}.cablesContainer>div,body>div:not(#app):not(#cables-canvas-container):not(#cablesErrorConsole){margin:.75rem!important;background:transparent!important;border:none!important;box-shadow:none!important}.cablesContainer>div svg,body>div:not(#app):not(#cables-canvas-container):not(#cablesErrorConsole) svg{width:24px!important;height:24px!important;stroke:#fff!important}@font-face{font-family:Cy Glitch;src:url(/assets/CyGlitch-Bold-B90tvJKq.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cy;src:url(/assets/Cy-Bold-DOOSCqd0.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cy;src:url(/assets/Cy-Regular-CUuonDFG.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cy Text;src:url(/assets/CyText-Regular-Cy9R84fm.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cy Text;src:url(/assets/CyText-Bold-DEPNTS3w.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}html,body{width:100%;height:100%;height:100dvh;margin:0;padding:0;overflow:hidden;position:fixed;top:0;left:0;overscroll-behavior:none}body{font-family:Cy,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-color);color:var(--text-color)}body:before{content:"";position:fixed;top:1.5rem;left:1.5rem;width:calc(100vw - 3rem);height:calc(100vh - 3rem);height:calc(100dvh - 3rem);border:1px solid rgba(255,255,255,.2);z-index:5;pointer-events:none}#cables-canvas-container{position:absolute;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:-1;background:radial-gradient(circle at center,#1a1a2e,#050505);opacity:0;transition:opacity .4s ease-in-out}#cables-canvas-container.loaded{opacity:1}#cables-canvas-container canvas{display:block;position:absolute;outline:0;width:100vw;height:100vh;height:100dvh}#app{position:relative;z-index:10;-webkit-transform:translateZ(0);transform:translateZ(0);width:100vw;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(4rem,10vh,8rem);pointer-events:none;opacity:0;transition:opacity .5s ease-in-out}#app.fonts-loaded{opacity:1}.hero{pointer-events:auto;display:flex;flex-direction:column;align-items:center;width:100%;padding:0 2rem}.hero-content{text-align:center;display:flex;flex-direction:column;gap:clamp(1.5rem,4vh,3rem);width:100%}.title{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.4;text-transform:uppercase;gap:1rem}.name{font-family:Cy,sans-serif;font-weight:700;font-size:clamp(2rem,5vw,3.5rem);letter-spacing:.12em;color:#fff;text-transform:uppercase}.subtitle{font-weight:400;font-size:clamp(.95rem,1.8vw,1.35rem);letter-spacing:.15em;color:#ffffffd9;text-transform:lowercase;display:flex;align-items:center;justify-content:center;gap:.8rem;flex-wrap:wrap}.slash{opacity:.5}#linear-carousel{position:relative;width:calc(100vw - 3rem);height:clamp(150px,20vw + 40px,280px);overflow:hidden;z-index:15;pointer-events:auto;display:flex;align-items:center;-webkit-mask-image:linear-gradient(to right,transparent 0%,transparent 1%,rgba(0,0,0,.2) 1%,rgba(0,0,0,.2) 2%,rgba(0,0,0,.4) 2%,rgba(0,0,0,.4) 3%,rgba(0,0,0,.6) 3%,rgba(0,0,0,.6) 4%,rgba(0,0,0,.8) 4%,rgba(0,0,0,.8) 5%,black 5%,black 95%,rgba(0,0,0,.8) 95%,rgba(0,0,0,.8) 96%,rgba(0,0,0,.6) 96%,rgba(0,0,0,.6) 97%,rgba(0,0,0,.4) 97%,rgba(0,0,0,.4) 98%,rgba(0,0,0,.2) 98%,rgba(0,0,0,.2) 99%,transparent 99%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,transparent 1%,rgba(0,0,0,.2) 1%,rgba(0,0,0,.2) 2%,rgba(0,0,0,.4) 2%,rgba(0,0,0,.4) 3%,rgba(0,0,0,.6) 3%,rgba(0,0,0,.6) 4%,rgba(0,0,0,.8) 4%,rgba(0,0,0,.8) 5%,black 5%,black 95%,rgba(0,0,0,.8) 95%,rgba(0,0,0,.8) 96%,rgba(0,0,0,.6) 96%,rgba(0,0,0,.6) 97%,rgba(0,0,0,.4) 97%,rgba(0,0,0,.4) 98%,rgba(0,0,0,.2) 98%,rgba(0,0,0,.2) 99%,transparent 99%,transparent 100%);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y;opacity:0;transition:opacity .5s ease-in-out}#linear-carousel.is-dragging,#linear-carousel.is-dragging .carousel-item{cursor:grabbing!important}#linear-carousel.loaded{opacity:1}.carousel-track{display:inline-flex;height:100%;gap:2rem;padding-right:2rem;width:max-content;will-change:transform;cursor:grab;-webkit-user-select:none;user-select:none}.carousel-track:active{cursor:grabbing}.carousel-item{position:relative;flex:0 0 auto;width:clamp(200px,25vw,400px);height:100%;border-radius:0;border:1px solid rgba(255,255,255,.2);box-shadow:0 10px 30px #00000080;cursor:pointer;transition:border-color .3s;overflow:hidden}.carousel-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .3s ease;pointer-events:none}.carousel-img.animated{opacity:0}.carousel-item.contain-img .carousel-img{object-fit:contain;background-color:#28282880}@media (hover: hover){.carousel-item:hover .carousel-img.static{opacity:0}.carousel-item:hover .carousel-img.animated{opacity:1}.carousel-item:hover{border-color:#ffffff80}}.nav-buttons{display:flex;align-items:center;justify-content:center;gap:1.2rem}.separator{color:#ffffff4d;font-size:1.2rem}.btn{background:none;border:none;color:#ffffffb3;font-family:Cy,sans-serif;font-size:clamp(.9rem,1.5vw,1.1rem);font-weight:400;cursor:pointer;padding:0;text-transform:lowercase;letter-spacing:.15em;text-decoration:none;transition:color .3s ease,transform .3s ease}.btn:hover{color:#fff;transform:translateY(-2px)}.change-bg-btn{position:absolute;top:1.5rem;right:1.5rem;z-index:0;pointer-events:auto;padding:1rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.change-bg-btn .btn-label{font-size:.75rem;line-height:1;margin-bottom:2px;letter-spacing:.15em;opacity:0;transform:translate(10px);transition:opacity .3s ease,transform .3s ease;white-space:nowrap}.change-bg-btn:hover{transform:translateY(-2px)}.change-bg-btn:hover .btn-label{opacity:1;transform:translate(0)}.change-bg-btn svg{transition:transform .4s ease}.change-bg-btn:hover svg{transform:rotate(180deg)}.modal-content.portfolio-list-content{width:calc(100vw - 4rem);max-width:1200px;height:calc(100vh - 4rem);height:calc(100dvh - 4rem);display:flex;flex-direction:column;padding:2.5rem 2rem 2rem}.portfolio-list{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;flex:1;overflow-y:auto;padding-right:.75rem;align-content:start;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.portfolio-list::-webkit-scrollbar{width:8px}.portfolio-list::-webkit-scrollbar-track{background:#ffffff0d}.portfolio-list::-webkit-scrollbar-thumb{background:#fff3}.portfolio-list-item{display:flex;flex-direction:column;align-items:stretch;padding:1.25rem;gap:1rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);border-radius:4px;cursor:pointer;transition:background .3s ease,border-color .3s ease,transform .3s ease}.portfolio-list-item:hover{background:#ffffff14;border-color:#fff6;transform:translateY(-2px)}.portfolio-list-thumb{width:100%;height:240px;object-fit:cover;border-radius:2px;border:1px solid rgba(255,255,255,.15)}.portfolio-list-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.4rem}.portfolio-list-info h3{font-size:1.25rem;margin-bottom:.3rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.portfolio-list-info p{font-family:Cy Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"calt" 1,"kern" 1;font-size:.93rem;opacity:.85;line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;word-break:break-word}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;text-transform:uppercase;letter-spacing:.1em;opacity:.8}.form-group input,.form-group textarea{background:#ffffff0d;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.8rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .3s,background .3s;border-radius:0;outline:none}.form-group input:focus,.form-group textarea:focus{border-color:#fffc;background:#ffffff1a}.submit-btn{align-self:flex-start;margin-top:1rem;padding:.8rem 2rem;background:#fff;color:#000;font-weight:700;border:1px solid white}.submit-btn:hover{background:transparent;color:#fff}.modal-carousel{position:relative;width:100%;aspect-ratio:16/9;background:#000;margin:1.5rem 0;overflow:hidden}.modal-carousel-track{display:flex;width:100%;height:100%;transition:transform .4s cubic-bezier(.25,1,.5,1)}.modal-carousel-track img,.modal-carousel-track iframe,.modal-carousel-track video{flex:0 0 100%;width:100%;height:100%;object-fit:contain}.modal-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;color:#fff;border:1px solid rgba(255,255,255,.2);width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:background .3s,border-color .3s}.modal-carousel-nav:hover{background:#000c;border-color:#fffc}.modal-carousel-nav.prev{left:10px}.modal-carousel-nav.next{right:10px}.project-links{display:flex;align-items:center;justify-content:flex-start;gap:1.2rem;margin-top:2rem}.project-links .btn{font-size:.9rem;letter-spacing:.1em;text-decoration:none}#project-modal-title{text-transform:uppercase;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}#project-modal-desc{font-family:Cy Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"calt" 1,"kern" 1;font-size:.95rem;line-height:1.6;color:#ffffffd9;overflow-wrap:break-word;word-break:break-word}.project-links .separator{font-size:1rem}hr.project-divider{border:none;border-top:1px solid rgba(255,255,255,.15);margin:1.5rem 0 1.2rem;width:100%}.project-tech-stack{font-family:Cy Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"calt" 1,"kern" 1;font-size:.9rem;color:#fffc;letter-spacing:.05em;line-height:1.6}.tech-stack-label{color:#fff6;font-weight:700;margin-right:.5rem;letter-spacing:.05em}.portfolio-list-tech{font-family:Cy Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"calt" 1,"kern" 1;font-size:.8rem;color:#fff9;letter-spacing:.04em;margin-top:.5rem}.modal{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;background:#000c;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .4s ease;z-index:100;pointer-events:auto;touch-action:none;overscroll-behavior:contain}.modal.hidden{opacity:0;pointer-events:none}.modal-content{background:#141414b3;border:1px solid rgba(255,255,255,.1);padding:3rem;border-radius:0;position:relative;width:90%;max-width:600px;transform:translateY(0);transition:transform .4s ease;box-shadow:0 25px 50px -12px #00000080;color:#fff;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal.hidden .modal-content{transform:translateY(20px)}#modal-project-details .modal-content{max-width:900px;max-height:calc(100vh - 3rem);max-height:calc(100dvh - 3rem);overflow-y:auto}.modal-content.about-modal-content{max-width:850px;width:90%;max-height:calc(100vh - 3rem);max-height:calc(100dvh - 3rem);overflow-y:auto;padding:3.5rem}.about-grid{display:grid;grid-template-columns:240px 1fr;gap:3rem;align-items:flex-start;text-align:left}.about-photo-wrapper{position:relative;width:100%;aspect-ratio:3/4;background:#141418;border:1px solid rgba(255,255,255,.2);box-shadow:0 15px 35px #0009;transform:rotate(-1.5deg);margin-top:.8rem}.tape-strip{position:absolute;width:54px;height:20px;background:#ffffff38;border:1px solid rgba(255,255,255,.35);box-shadow:0 2px 6px #0000004d;z-index:10;pointer-events:none}.tape-strip.tape-tl{top:-10px;left:-16px;transform:rotate(-38deg)}.tape-strip.tape-tr{top:-10px;right:-14px;transform:rotate(32deg)}.tape-strip.tape-bl{bottom:-10px;left:-14px;transform:rotate(26deg)}.tape-strip.tape-br{bottom:-12px;right:-16px;transform:rotate(-42deg)}.about-photo{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}.modal-tag{font-size:.75rem;letter-spacing:.15em;color:#ffffff73;margin-bottom:.25rem;font-family:Cy,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"ss04" 1,"calt" 1;text-transform:uppercase;font-weight:700}.about-text-container h2{margin-bottom:1rem}.about-lead{font-family:Cy Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"calt" 1,"kern" 1;font-size:1.25rem;line-height:1.6;color:#fff;margin-bottom:1.2rem;font-weight:400}.about-body{font-family:Cy Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:"calt" 1,"kern" 1;font-size:1.1rem;line-height:1.75;color:#fffc;margin-bottom:2rem}.about-links{display:flex;align-items:center;justify-content:flex-end;gap:1.2rem;border-top:1px solid rgba(255,255,255,.15);padding-top:1.5rem}.modal-content.video-content{width:calc(100vw - 3rem);height:calc(100vh - 3rem);height:calc(100dvh - 3rem);max-width:none;padding:0;display:flex;background:#000}.close-btn{position:absolute;top:1rem;right:1.5rem;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;transition:opacity .2s;z-index:10}.close-btn:hover{opacity:.7}h2{font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2rem}p{font-size:1.1rem;color:#ffffffb3;line-height:1.6}.email-link{color:#fff;text-decoration:underline;text-underline-offset:4px}.video-placeholder{width:100%;height:100%;background:#000;border-radius:0;overflow:hidden;display:flex}#showreel-video{width:100%;height:100%;object-fit:contain}@media (max-width: 768px){#app{gap:2rem}.nav-buttons{flex-wrap:wrap;justify-content:center;gap:.4rem .8rem;max-width:100%;padding:0 .5rem}.nav-buttons .separator{display:none}.btn{font-size:.85rem;letter-spacing:.12em}.subtitle{flex-direction:row;flex-wrap:wrap;gap:.5rem;font-size:1.1rem;line-height:1.5}.slash{display:none}#linear-carousel{height:230px}.carousel-item{width:230px;max-width:none}.change-bg-btn{top:1rem;right:1rem}body:before{top:1rem;left:1rem;width:calc(100vw - 2rem);height:calc(100vh - 2rem);height:calc(100dvh - 2rem)}.modal-content{width:calc(100vw - 2rem);padding:1.5rem}.modal-content.portfolio-list-content{width:calc(100vw - 1.5rem);height:calc(100vh - 1.5rem);height:calc(100dvh - 1.5rem);padding:1.25rem .85rem 1rem}.modal-content.video-content{width:calc(100vw - 2rem);height:calc(100vh - 2rem);height:calc(100dvh - 2rem)}.portfolio-list{grid-template-columns:1fr;padding-right:.25rem;gap:1rem}.portfolio-list-item{flex-direction:column;align-items:stretch;padding:1.2rem;gap:.85rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);border-radius:4px}.portfolio-list-thumb{width:100%;height:220px;object-fit:cover;border:1px solid rgba(255,255,255,.15);border-radius:2px}#modal-project-details .modal-content{width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;padding:2rem 1.25rem 1.5rem}.portfolio-list-info{width:100%;min-width:0}.portfolio-list-info h3{font-size:1.2rem;margin-bottom:.35rem;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.portfolio-list-info p{font-size:.93rem;line-height:1.55;opacity:.85;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;word-break:break-word}.portfolio-list-tech{font-size:.82rem;margin-top:.4rem;overflow-wrap:break-word;word-break:break-word}.close-btn{top:.5rem;right:.5rem}h2{margin-bottom:1rem}.about-grid{grid-template-columns:1fr;gap:1.5rem}.about-photo-wrapper{max-width:240px;margin:0 auto}.modal-content.about-modal-content{width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;padding:2rem 1.25rem}.cablesContainer>div,body>div:not(#app):not(#cables-canvas-container):not(#cablesErrorConsole){margin:.25rem!important}}
