*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace;--bg:#fff;--text-main:#09090b;--text-muted:#71717a}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:clip}html,body{background-color:var(--site-bg,#fff);width:100%;min-height:100%;color:var(--site-text,#09090b);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}#root,.app-container{background-color:#0000;width:100%;position:relative}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a1a1aa}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}.navbar-header{z-index:100;-webkit-backdrop-filter:blur(20px)saturate(180%);background:#ffffffd9;border-bottom:1px solid #0000000f;align-items:center;width:100%;height:80px;transition:background-color .4s,border-color .4s;display:flex;position:fixed;top:0;left:0}body.in-dark-footer .navbar-header{background:#09090bd9;border-bottom:1px solid #ffffff14}.navbar-inner{justify-content:space-between;align-items:center;width:100%;max-width:1600px;margin:0 auto;padding:0 clamp(1.5rem,4vw,4rem);display:flex}.navbar-brand{-webkit-user-select:none;user-select:none;flex-direction:column;line-height:1.1;text-decoration:none;display:flex}.brand-firstname{font-family:var(--font-sans);letter-spacing:-.02em;color:#09090b;font-size:1.05rem;font-weight:700;transition:color .4s}.brand-lastname{font-family:var(--font-sans);letter-spacing:-.01em;color:#52525b;margin-left:1.4rem;font-size:.95rem;font-weight:500;transition:color .4s}body.in-dark-footer .brand-firstname{color:#fff}body.in-dark-footer .brand-lastname{color:#a1a1aa}.navbar-nav{align-items:center;gap:clamp(1.5rem,3vw,2.8rem);display:flex}.nav-link{font-family:var(--font-sans);color:#52525b;letter-spacing:-.01em;padding:.3rem 0;font-size:.92rem;font-weight:500;text-decoration:none;transition:color .3s;position:relative}.nav-link:after{content:"";background-color:#09090b;width:0%;height:1.5px;transition:width .25s cubic-bezier(.16,1,.3,1),background-color .4s;position:absolute;bottom:0;left:0}.nav-link:hover{color:#09090b}.nav-link:hover:after{width:100%}body.in-dark-footer .nav-link{color:#a1a1aa}body.in-dark-footer .nav-link:hover{color:#fff}body.in-dark-footer .nav-link:after{background-color:#fff}@media (width<=640px){.navbar-nav{gap:1.2rem}.nav-link{font-size:.85rem}}.hero-scroll-track{background-color:#fff;width:100%;height:500vh;position:relative}.hero-sticky-stage{box-sizing:border-box;z-index:10;background-color:#fff;justify-content:center;align-items:center;width:100%;height:100vh;min-height:650px;display:flex;position:sticky;top:0;left:0;overflow:hidden}.hero-bg-marquee-container{z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;gap:clamp(1.2rem,4vh,3rem);width:100%;height:100%;display:flex;position:absolute;inset:0;overflow:hidden}.marquee-row{white-space:nowrap;width:100%;display:flex;overflow:hidden}.marquee-track{white-space:nowrap;will-change:transform;flex-shrink:0;display:flex}.track-ltr{animation:32s linear infinite marquee-ltr}@keyframes marquee-ltr{0%{transform:translate(-50%)}to{transform:translate(0%,0)}}.track-rtl{animation:36s linear infinite marquee-rtl}@keyframes marquee-rtl{0%{transform:translate(0%,0)}to{transform:translate(-50%)}}.marquee-text-item{font-family:var(--font-sans);letter-spacing:-.035em;text-transform:uppercase;color:#09090b;padding-right:.5rem;font-size:clamp(3.5rem,8vw,7.2rem);font-weight:900;line-height:1;display:inline-block}.hero-portrait-stage{z-index:10;pointer-events:none;justify-content:center;align-items:flex-end;width:100%;height:100%;display:flex;position:absolute;inset:0}.hero-center-portrait{object-fit:contain;object-position:bottom center;filter:contrast(1.05)brightness(1.01);-webkit-user-select:none;user-select:none;width:auto;max-width:95vw;height:86vh;max-height:920px;display:block}.hero-overlay-content{text-align:center;z-index:20;pointer-events:none;background:0 0;flex-direction:column;align-items:center;width:100%;max-width:820px;padding:0 1rem;display:flex;position:absolute;bottom:clamp(2.8rem,6.5vh,5.2rem);left:50%;transform:translate(-50%)}.hero-author-tag{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.22em;color:#fff;text-shadow:0 2px 10px #000c;margin-bottom:.25rem;font-size:clamp(.9rem,1.2vw,1.15rem);font-weight:800;line-height:1.2}.hero-role-title{font-family:var(--font-sans);letter-spacing:-.01em;color:#ffffffeb;text-shadow:0 2px 10px #000c;margin-bottom:.6rem;font-size:clamp(1rem,1.4vw,1.25rem);font-weight:600;line-height:1.2}.hero-tech-display-box{justify-content:center;align-items:center;width:100%;height:clamp(80px,11vw,115px);display:flex;position:relative}.hero-tech-slot{will-change:opacity, transform, filter;justify-content:center;align-items:center;transition:opacity .48s cubic-bezier(.16,1,.3,1),transform .48s cubic-bezier(.16,1,.3,1),filter .45s;display:flex;position:absolute;inset:0}.hero-tech-slot.active{opacity:1;filter:blur();transform:translateY(0)scale(1)}.hero-tech-slot.inactive-past{opacity:0;filter:blur(5px);transform:translateY(-22px)scale(.96)}.hero-tech-slot.inactive-upcoming{opacity:0;filter:blur(5px);transform:translateY(22px)scale(.96)}.hero-tech-name{font-family:var(--font-sans);letter-spacing:-.035em;color:#fff;text-align:center;text-shadow:0 4px 22px #000000f2;white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:clamp(3.2rem,6.8vw,5.2rem);font-weight:900;line-height:1}.hero-scroll-hint{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:#71717a;z-index:25;pointer-events:none;align-items:center;gap:.5rem;font-size:.75rem;transition:opacity .4s;display:flex;position:absolute;bottom:1.5rem;right:clamp(1.5rem,4vw,4rem)}.hero-scroll-hint.fade-out{opacity:0}.scroll-hint-arrow{border-bottom:1.5px solid #71717a;border-right:1.5px solid #71717a;width:6px;height:6px;animation:1.8s infinite bounce-arrow;transform:rotate(45deg)}@keyframes bounce-arrow{0%,to{transform:translateY(0)rotate(45deg)}50%{transform:translateY(4px)rotate(45deg)}}@media (width<=768px){.hero-center-portrait{height:76vh}.marquee-text-item{font-size:clamp(2.6rem,11vw,4.2rem)}.hero-overlay-content{max-width:92vw;bottom:2.2rem}.hero-tech-display-box{height:65px}.hero-tech-name{font-size:clamp(2.4rem,9vw,3.4rem)}.hero-scroll-hint{display:none}}.about-scroll-track{z-index:30;box-sizing:border-box;background-color:#fff;width:100%;height:260vh;margin-top:-100vh;position:relative;box-shadow:0 -40px 80px -15px #0006}.about-sticky-stage{box-sizing:border-box;background-color:#fff;justify-content:center;align-items:center;width:100%;height:100vh;min-height:650px;display:flex;position:sticky;top:0;left:0;overflow:hidden}.about-bg-wrapper{z-index:1;pointer-events:none;width:100%;height:100%;inset:0}.about-bg-image{object-fit:cover;object-position:center 30%;filter:grayscale()contrast(1.08)brightness(1.02);width:100%;height:100%;display:block}.about-bg-overlay{-webkit-backdrop-filter:blur(8px)saturate(120%);background:radial-gradient(circle,#ffffffc7 0%,#ffffffdb 65%,#ffffffeb 100%);position:absolute;inset:0}.about-content-box{z-index:10;text-align:left;box-sizing:border-box;flex-direction:column;align-items:flex-start;width:100%;max-width:1180px;margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem);display:flex;position:relative}.about-heading{font-family:var(--font-sans,system-ui, sans-serif);letter-spacing:-.04em;text-transform:uppercase;color:#09090b;-webkit-user-select:none;user-select:none;align-self:flex-start;margin:0 0 2rem;font-size:clamp(3.6rem,7vw,6.4rem);font-weight:900;line-height:.9}.about-scrub-paragraph{font-family:var(--font-sans,system-ui, sans-serif);letter-spacing:-.02em;word-wrap:break-word;-webkit-user-select:none;user-select:none;margin:0;font-size:clamp(1.65rem,2vw,2.75rem);font-weight:600;line-height:1.5}.about-scrub-word{white-space:pre;color:#71717a;will-change:opacity, color;transition:color .15s ease-out,opacity .15s ease-out;display:inline-block}.about-scrub-word.solid{color:#09090b;font-weight:700}@media (width<=992px){.about-sticky-stage{flex-direction:column;justify-content:center;align-items:center;gap:clamp(1rem,2.5vh,2rem);min-height:100vh;padding:clamp(1.5rem,4vh,3rem) clamp(1.2rem,4vw,2.5rem)}.about-bg-wrapper{border-radius:18px;flex-shrink:0;width:100%;max-width:540px;height:clamp(200px,28vh,300px);margin-bottom:clamp(2.5rem,3vh,2.5rem);overflow:hidden}.about-bg-image{border-radius:18px}.about-content-box{align-items:flex-start;width:100%;max-width:540px;padding:0}.about-heading{margin:0 0 .8rem;font-size:clamp(2.2rem,6.5vw,3.4rem)}.about-scrub-paragraph{font-size:clamp(1.5rem,3.2vw,1.35rem);line-height:1.55}}@media (width<=480px){.about-sticky-stage{gap:.8rem;padding:1.2rem 1rem}.about-bg-wrapper{height:clamp(260px,24vh,210px)}.about-bg-image{border-radius:14px}.about-heading{margin:0 0 .5rem;font-size:clamp(1.8rem,7vw,2.4rem)}.about-scrub-paragraph{font-size:clamp(1.4rem,3.6vw,1.12rem);line-height:1.5}}.skills-outer-container{background-color:var(--site-bg,#fff);box-sizing:border-box;width:100%;position:relative;overflow:clip}.skills-sticky-stage{pointer-events:none;z-index:5;justify-content:center;align-items:center;width:100%;height:100vh;display:flex;position:sticky;top:0;left:0;overflow:hidden}.skills-center-title{font-family:var(--font-sans);letter-spacing:-.05em;color:var(--site-text,#09090b);text-transform:uppercase;-webkit-user-select:none;user-select:none;will-change:opacity, transform;font-size:clamp(5.5rem,16vw,14rem);font-weight:900;line-height:.85;transition:opacity .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1)}.skills-sticky-stage.title-hidden .skills-center-title{opacity:0;transform:scale(.92)}.skills-cards-stream{z-index:10;box-sizing:border-box;flex-direction:column;gap:clamp(110px,20vh,240px);width:100%;max-width:1440px;margin:-100vh auto 0;padding:100vh clamp(1.5rem,4vw,4.5rem) 115vh;display:flex;position:relative}.skills-row-item{width:100%;display:flex}.skills-row-item.side-left{justify-content:flex-start}.skills-row-item.side-right{justify-content:flex-end}.skills-card-wrapper{cursor:default;align-items:center;width:100%;display:flex;position:relative}.side-left .skills-card-wrapper{flex-direction:row}.side-right .skills-card-wrapper{flex-direction:row-reverse}.skills-image-box{aspect-ratio:16/10;cursor:pointer;background-color:#f4f4f5;border:1px solid #00000014;border-radius:18px;flex-shrink:0;width:clamp(320px,44vw,620px);transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s cubic-bezier(.16,1,.3,1),border-color .8s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;box-shadow:0 16px 36px #0000000f}body.in-dark-footer .skills-image-box{border-color:#ffffff24;box-shadow:0 16px 40px #00000073}.skills-image-box:hover,.skills-image-box.img-is-hovered{transform:translateY(-6px);box-shadow:0 28px 60px #00000029}body.in-dark-footer .skills-image-box:hover,body.in-dark-footer .skills-image-box.img-is-hovered{box-shadow:0 28px 65px #000000a6}.skills-project-img{object-fit:cover;object-position:top center;filter:grayscale()contrast(1.04);width:100%;height:100%;transition:filter .55s,transform .65s cubic-bezier(.16,1,.3,1)}.skills-image-box:hover .skills-project-img,.skills-image-box.img-is-hovered .skills-project-img{filter:grayscale(0%)contrast();transform:scale(1.04)}.skills-img-title-overlay{opacity:0;pointer-events:none;background:linear-gradient(#0000 0%,#00000052 45%,#000000e0 100%);flex-direction:column;justify-content:flex-end;padding:clamp(1.4rem,2.5vw,2.4rem);transition:opacity .35s,transform .35s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;inset:0;transform:translateY(12px)}.skills-image-box:hover .skills-img-title-overlay,.skills-image-box.img-is-hovered .skills-img-title-overlay{opacity:1;transform:translateY(0)}.skills-overlay-num{font-family:var(--font-mono);letter-spacing:.18em;color:#ffffffb3;margin-bottom:.3rem;font-size:.85rem}.skills-overlay-title{font-family:var(--font-sans);letter-spacing:-.035em;color:#fff;text-transform:uppercase;text-shadow:0 4px 18px #0009;margin-bottom:.5rem;font-size:clamp(2rem,3.8vw,3.4rem);font-weight:900;line-height:1}.skills-click-hint{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:#ffffffd9;font-size:.75rem}.skills-description-box{opacity:0;pointer-events:none;will-change:opacity, transform;flex:1;max-width:540px;padding:0 clamp(1.8rem,4vw,4rem);transition:opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1)}.desc-side-right{transform:translate(-24px)}.desc-side-left{transform:translate(24px)}.skills-description-box.desc-visible{opacity:1;pointer-events:auto;transform:translate(0)}.skills-desc-inner{flex-direction:column;align-items:flex-start;display:flex}.skills-desc-tag{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:#71717a;margin-bottom:.8rem;font-size:.75rem;transition:color .8s}body.in-dark-footer .skills-desc-tag{color:#a1a1aa}.skills-desc-project-title{font-family:var(--font-sans);letter-spacing:-.03em;color:#09090b;margin-bottom:.8rem;font-size:clamp(1.8rem,2.6vw,2.6rem);font-weight:800;line-height:1.1;transition:color .8s}body.in-dark-footer .skills-desc-project-title{color:#fff}.skills-desc-text{font-family:var(--font-sans);color:#52525b;margin-bottom:1.4rem;font-size:clamp(.95rem,1.1vw,1.05rem);line-height:1.6;transition:color .8s}body.in-dark-footer .skills-desc-text{color:#d4d4d8}.skills-desc-tech-list{flex-wrap:wrap;gap:.5rem;margin-bottom:1.8rem;display:flex}.skills-tech-badge{font-family:var(--font-mono);color:#27272a;background-color:#f4f4f5;border:1px solid #e4e4e7;border-radius:9999px;padding:.3rem .75rem;font-size:.72rem;font-weight:500;transition:all .8s}body.in-dark-footer .skills-tech-badge{color:#fff;background-color:#ffffff14;border-color:#ffffff26}.skills-inspect-btn{font-family:var(--font-sans);color:#fff;cursor:pointer;background-color:#09090b;border:none;border-radius:9999px;padding:.75rem 1.6rem;font-size:.9rem;font-weight:600;transition:all .4s}body.in-dark-footer .skills-inspect-btn{color:#09090b;background-color:#fff}.skills-inspect-btn:hover{background-color:#27272a;transform:translateY(-2px)}body.in-dark-footer .skills-inspect-btn:hover{background-color:#e4e4e7}.project-detail-overlay{z-index:200;-webkit-backdrop-filter:blur(16px);background-color:#09090ba6;justify-content:center;align-items:flex-end;animation:.3s cubic-bezier(.16,1,.3,1) overlay-fade-in;display:flex;position:fixed;inset:0}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.project-detail-window{background-color:#fff;border-radius:28px 28px 0 0;flex-direction:column;width:100%;max-width:1360px;height:92vh;animation:.4s cubic-bezier(.16,1,.3,1) window-slide-up;display:flex;position:relative;overflow-y:auto;box-shadow:0 -20px 60px #00000040}@keyframes window-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.project-modal-close-btn{z-index:50;font-family:var(--font-mono);letter-spacing:.15em;color:#09090b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#ffffffd9;border:1px solid #0000001a;border-radius:9999px;align-self:flex-end;margin-bottom:-40px;padding:.6rem 1.2rem;font-size:.8rem;font-weight:600;transition:all .2s;position:sticky;top:1.8rem;right:1.8rem}.project-modal-close-btn:hover{color:#fff;background-color:#09090b}.project-modal-header{text-align:center;flex-direction:column;align-items:center;padding:3rem 1.5rem 2rem;display:flex}.project-modal-tag{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:#71717a;margin-bottom:.6rem;font-size:.8rem}.project-modal-title{font-family:var(--font-sans);letter-spacing:-.04em;color:#09090b;text-transform:uppercase;margin:0;font-size:clamp(3rem,7.5vw,6.5rem);font-weight:900;line-height:.95}.project-modal-body{flex-direction:column;gap:3.5rem;width:100%;max-width:1160px;margin:0 auto;padding:0 clamp(1.5rem,4vw,3rem) 4rem;display:flex}.project-modal-image-wrap{cursor:pointer;background-color:#f4f4f5;border:1px solid #00000014;border-radius:20px;width:100%;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 20px 50px #0000001f}.project-modal-image-wrap:hover{transform:translateY(-4px);box-shadow:0 28px 65px #0000002e}.project-modal-img{width:100%;height:auto;display:block}.project-modal-img-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-family:var(--font-mono);letter-spacing:.12em;background:#09090bd9;border:1px solid #fff3;border-radius:9999px;padding:.6rem 1.2rem;font-size:.8rem;font-weight:500;transition:background-color .2s;position:absolute;bottom:1.5rem;right:1.5rem}.project-modal-image-wrap:hover .project-modal-img-badge{background-color:#000}.project-modal-info-section{grid-template-columns:2fr 1fr;gap:clamp(2rem,5vw,4rem);display:grid}.project-modal-section-heading{font-family:var(--font-sans);color:#09090b;margin-bottom:1rem;font-size:1.35rem;font-weight:700}.project-modal-long-desc{font-family:var(--font-sans);color:#3f3f46;margin-bottom:2rem;font-size:1.15rem;line-height:1.7}.project-modal-action-row{align-items:center;gap:1.2rem;display:flex}.project-modal-live-btn{font-family:var(--font-sans);color:#fff;background-color:#09090b;border-radius:9999px;align-items:center;gap:.5rem;padding:.9rem 2.2rem;font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.project-modal-live-btn:hover{background-color:#27272a;transform:translateY(-2px);box-shadow:0 10px 25px #00000026}.project-modal-info-col-meta{border-left:1px solid #00000014;flex-direction:column;gap:2rem;padding-left:clamp(1rem,3vw,2.5rem);display:flex}.meta-block{flex-direction:column;gap:.6rem;display:flex}.meta-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:#71717a;font-size:.72rem}.meta-tags{flex-wrap:wrap;gap:.4rem;display:flex}.meta-tag-pill{font-family:var(--font-mono);color:#18181b;background-color:#f4f4f5;border:1px solid #e4e4e7;border-radius:6px;padding:.3rem .7rem;font-size:.75rem}.meta-url-link{font-family:var(--font-mono);color:#09090b;text-underline-offset:3px;word-break:break-all;font-size:.88rem;text-decoration:underline;transition:color .2s}.meta-url-link:hover{color:#71717a}@media (width<=900px){.skills-card-wrapper{gap:1.5rem;flex-direction:column!important}.skills-image-box{width:100%}.skills-description-box{opacity:1;pointer-events:auto;max-width:100%;padding:0;transform:none!important}.project-modal-info-section{grid-template-columns:1fr}.project-modal-info-col-meta{border-top:1px solid #00000014;border-left:none;padding-top:1.5rem;padding-left:0}}.portfolio-footer{color:#fff;box-sizing:border-box;background-color:#09090b;width:100%;min-height:85vh;padding:clamp(5rem,10vh,8rem) 0 clamp(2.5rem,5vh,4rem);transition:background-color .8s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.footer-inner{box-sizing:border-box;flex-direction:column;justify-content:space-between;width:100%;max-width:1600px;min-height:calc(85vh - 10rem);margin:0 auto;padding:0 clamp(1.5rem,5vw,5rem);display:flex}.footer-main-grid{grid-template-columns:1.6fr 1fr;align-items:flex-start;gap:clamp(3rem,6vw,6rem);margin-bottom:clamp(4rem,8vh,6rem);display:grid}.footer-left-col{flex-direction:column;align-items:flex-start;display:flex}.footer-intro-message{font-family:var(--font-sans);color:#a1a1aa;letter-spacing:-.01em;max-width:680px;margin:0 0 2.8rem;font-size:clamp(1.1rem,1.8vw,1.45rem);font-weight:500;line-height:1.55}.footer-brand-statement{-webkit-user-select:none;user-select:none;flex-direction:column;margin-bottom:clamp(2.5rem,5vh,3.8rem);line-height:.88;display:flex}.footer-brand-firstname{font-family:var(--font-sans);letter-spacing:-.045em;color:#fff;font-size:clamp(4.2rem,10vw,8.8rem);font-weight:900;display:block}.footer-brand-lastname{font-family:var(--font-sans);letter-spacing:-.035em;color:#e4e4e7;margin-left:clamp(1.8rem,4.5vw,4.8rem);font-size:clamp(3.8rem,9.2vw,8.2rem);font-weight:700;display:block}.footer-socials-row{flex-wrap:wrap;gap:1.2rem;display:flex}.footer-social-link{z-index:1;font-family:var(--font-sans);color:#fff;isolation:isolate;background-color:#141418;border:1px solid #ffffff1f;border-radius:9999px;align-items:center;gap:.65rem;padding:.8rem 1.7rem;font-size:1rem;font-weight:600;text-decoration:none;transition:all .25s cubic-bezier(.16,1,.3,1);display:inline-flex;position:relative}.social-name{letter-spacing:-.01em}.social-arrow{font-size:1.1rem;transition:transform .25s cubic-bezier(.16,1,.3,1)}.footer-social-link:hover{z-index:5;color:#09090b;background-color:#fff;transform:translateY(-3px);box-shadow:0 8px 22px #ffffff38}.footer-social-link:hover .social-arrow{transform:translate(3px,-3px)}.footer-right-col{flex-direction:column;align-items:flex-start;gap:2.2rem;padding-top:1rem;display:flex}.footer-status-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;width:100%;max-width:440px;padding:1.8rem 2rem}.status-indicator{align-items:center;gap:.6rem;margin-bottom:.8rem;display:inline-flex}.status-dot{background-color:#22c55e;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse-beacon;box-shadow:0 0 12px #22c55e}@keyframes pulse-beacon{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.status-text{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e4e4e7;font-size:.82rem;font-weight:500}.status-subtext{font-family:var(--font-sans);color:#71717a;margin:0;font-size:.95rem;line-height:1.5}.footer-back-to-top-btn{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:#fff;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:9999px;align-items:center;gap:.7rem;padding:.85rem 1.8rem;font-size:.82rem;font-weight:600;transition:all .25s;display:inline-flex}.footer-back-to-top-btn .btn-arrow{font-size:1.05rem;transition:transform .25s}.footer-back-to-top-btn:hover{color:#09090b;background-color:#fff;border-color:#fff;transform:translateY(-2px)}.footer-back-to-top-btn:hover .btn-arrow{transform:translateY(-3px)}.footer-bottom-bar{border-top:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:2rem;display:flex}.footer-copyright{font-family:var(--font-mono);color:#71717a;margin:0;font-size:.82rem}.footer-tagline{font-family:var(--font-mono);color:#52525b;margin:0;font-size:.82rem}@media (width<=900px){.footer-main-grid{grid-template-columns:1fr;gap:3.5rem}.footer-right-col{padding-top:0}.footer-status-card{max-width:100%}.footer-bottom-bar{flex-direction:column;align-items:flex-start}}.project-detail-page{color:#09090b;box-sizing:border-box;background-color:#fff;width:100%;min-height:100vh;padding-bottom:6rem;position:relative}.detail-top-nav{-webkit-backdrop-filter:blur(20px);z-index:100;box-sizing:border-box;background:#ffffffe0;border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;width:100%;height:80px;padding:0 clamp(1.5rem,5vw,5rem);display:flex;position:sticky;top:0;left:0}.detail-back-btn{font-family:var(--font-sans);color:#09090b;cursor:pointer;background:0 0;border:1px solid #0000001f;border-radius:9999px;align-items:center;gap:.6rem;padding:.6rem 1.3rem;font-size:.92rem;font-weight:600;transition:all .25s;display:inline-flex}.detail-back-btn .back-arrow{transition:transform .25s}.detail-back-btn:hover{color:#fff;background-color:#09090b;border-color:#09090b}.detail-back-btn:hover .back-arrow{transform:translate(-3px)}.detail-category-badge{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:#71717a;font-size:.78rem}.detail-main-container{box-sizing:border-box;flex-direction:column;width:100%;max-width:1360px;margin:0 auto;padding:clamp(2.5rem,5vh,4rem) clamp(1.5rem,5vw,4.5rem) 2rem;display:flex}.detail-header-block{text-align:center;flex-direction:column;align-items:center;margin-bottom:clamp(2.5rem,5vh,4rem);display:flex}.detail-tag-subtitle{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:#71717a;margin-bottom:.8rem;font-size:.82rem}.detail-hero-title{font-family:var(--font-sans);letter-spacing:-.04em;color:#09090b;text-transform:uppercase;margin:0 0 1.5rem;font-size:clamp(3.2rem,7.5vw,6.5rem);font-weight:900;line-height:.95}.detail-tech-chips{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.detail-chip{font-family:var(--font-mono);color:#3f3f46;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:9999px;padding:.35rem .85rem;font-size:.76rem;font-weight:500}.detail-media-section{width:100%;margin-bottom:clamp(3rem,6vh,5.5rem)}.detail-image-card{cursor:pointer;background-color:#f4f4f5;border:1px solid #00000014;border-radius:24px;width:100%;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;box-shadow:0 25px 65px #00000017}.detail-image-card:hover{transform:translateY(-4px);box-shadow:0 35px 80px #00000026}.detail-hero-image{width:100%;height:auto;display:block}.detail-image-hover-badge{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;font-family:var(--font-mono);letter-spacing:.12em;background:#09090be6;border:1px solid #fff3;border-radius:9999px;padding:.75rem 1.4rem;font-size:.82rem;font-weight:600;transition:background-color .25s;position:absolute;bottom:1.8rem;right:1.8rem}.detail-image-card:hover .detail-image-hover-badge{background-color:#000}.detail-info-grid{border-bottom:1px solid #00000014;grid-template-columns:1.8fr 1fr;gap:clamp(3rem,6vw,6rem);margin-bottom:clamp(4rem,8vh,6rem);padding-bottom:3rem;display:grid}.detail-section-title{font-family:var(--font-sans);letter-spacing:-.02em;color:#09090b;margin-bottom:1.2rem;font-size:1.6rem;font-weight:800}.detail-paragraph-lead{font-family:var(--font-sans);color:#27272a;margin-bottom:1.5rem;font-size:clamp(1.15rem,1.8vw,1.35rem);font-weight:500;line-height:1.65}.detail-paragraph-secondary{font-family:var(--font-sans);color:#71717a;margin-bottom:2.5rem;font-size:1.05rem;line-height:1.7}.detail-launch-btn{font-family:var(--font-sans);color:#fff;background-color:#09090b;border-radius:9999px;align-items:center;gap:.6rem;padding:1rem 2.4rem;font-size:1.05rem;font-weight:700;text-decoration:none;transition:all .25s cubic-bezier(.16,1,.3,1);display:inline-flex}.detail-launch-btn .btn-arrow-icon{font-size:1.15rem;transition:transform .25s}.detail-launch-btn:hover{background-color:#27272a;transform:translateY(-2px);box-shadow:0 12px 30px #0000002e}.detail-launch-btn:hover .btn-arrow-icon{transform:translate(2px,-2px)}.detail-info-sidebar{border-left:1px solid #00000014;flex-direction:column;gap:2.2rem;padding-left:clamp(1.5rem,3vw,3rem);display:flex}.sidebar-meta-item{flex-direction:column;gap:.5rem;display:flex}.meta-item-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:#71717a;font-size:.74rem}.meta-item-value{font-family:var(--font-sans);color:#09090b;font-size:1.05rem;font-weight:600}.meta-stack-list{flex-wrap:wrap;gap:.45rem;display:flex}.meta-stack-tag{font-family:var(--font-mono);color:#18181b;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:6px;padding:.3rem .7rem;font-size:.78rem}.meta-live-link{font-family:var(--font-mono);color:#09090b;text-underline-offset:4px;word-break:break-all;font-size:.92rem;font-weight:600;text-decoration:underline;transition:color .2s}.meta-live-link:hover{color:#71717a}.detail-footer-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.detail-return-btn{font-family:var(--font-sans);color:#71717a;cursor:pointer;background:0 0;border:none;padding:.5rem 0;font-size:.95rem;font-weight:600;transition:color .2s}.detail-return-btn:hover{color:#09090b}.detail-next-btn{font-family:var(--font-sans);color:#09090b;cursor:pointer;background:0 0;border:1px solid #00000026;border-radius:9999px;align-items:center;gap:.6rem;padding:.75rem 1.8rem;font-size:1rem;font-weight:700;transition:all .25s;display:inline-flex}.detail-next-btn:hover{color:#fff;background-color:#09090b;border-color:#09090b}@media (width<=900px){.detail-info-grid{grid-template-columns:1fr;gap:3rem}.detail-info-sidebar{border-top:1px solid #00000014;border-left:none;padding-top:2rem;padding-left:0}}@media (width<=600px){.detail-top-nav{gap:.5rem;height:64px;padding:0 1rem}.detail-back-btn{white-space:nowrap;flex-shrink:0;gap:.4rem;padding:.45rem .9rem;font-size:.82rem}.detail-category-badge{letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis;text-align:right;font-size:.7rem;overflow:hidden}.detail-main-container{padding:1.8rem 1rem 2rem}.detail-tag-subtitle{letter-spacing:.14em;margin-bottom:.5rem;font-size:.74rem}.detail-hero-title{margin-bottom:1.2rem;font-size:clamp(2.4rem,11vw,3.8rem)}.detail-tech-chips{gap:.4rem}.detail-chip{padding:.28rem .7rem;font-size:.72rem}.detail-image-card{border-radius:16px}.detail-image-hover-badge{padding:.5rem 1rem;font-size:.74rem;bottom:1rem;right:1rem}.detail-paragraph-lead{font-size:1.05rem}.detail-paragraph-secondary{font-size:.95rem}.detail-launch-btn{justify-content:center;width:100%;padding:.85rem 1.6rem;font-size:.95rem}.detail-footer-nav{flex-direction:column;align-items:stretch;gap:1rem}.detail-next-btn{justify-content:center}}@media (width<=400px){.detail-top-nav{padding:0 .75rem}.detail-back-btn{padding:.4rem .75rem;font-size:.78rem}.detail-category-badge{letter-spacing:.05em;font-size:.65rem}.detail-chip{padding:.22rem .6rem;font-size:.68rem}}.transition-curtain-overlay{z-index:9999;pointer-events:all;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.curtain-columns-container{flex-direction:row;width:100%;height:100%;display:flex;position:absolute;inset:0}.curtain-column-strip{will-change:transform;background-color:#09090b;flex:1;height:100%;transform:translateY(0%);box-shadow:0 0 1px #09090b}.transition-curtain-overlay.covering .curtain-column-strip{animation:.55s cubic-bezier(.83,0,.17,1) both column-drop-in}@keyframes column-drop-in{0%{transform:translateY(-100%)}to{transform:translateY(0%)}}.transition-curtain-overlay.covered .curtain-column-strip{animation:none;transform:translateY(0%)}.transition-curtain-overlay.uncovering .curtain-column-strip{animation:.55s cubic-bezier(.83,0,.17,1) both column-drop-out}@keyframes column-drop-out{0%{transform:translateY(0%)}to{transform:translateY(100%)}}.curtain-badge-wrapper{pointer-events:none;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.curtain-badge-title{font-family:var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:#fff;text-shadow:0 2px 14px #0009;opacity:0;font-size:clamp(1.1rem,2.5vw,1.8rem);font-weight:900;transform:translateY(8px)}.transition-curtain-overlay.covering .curtain-badge-title{opacity:1;transition:opacity .35s .45s,transform .35s .45s;transform:translateY(0)}.transition-curtain-overlay.covered .curtain-badge-title{opacity:1;transform:translateY(0)}.transition-curtain-overlay.uncovering .curtain-badge-title{opacity:0;transition:opacity .2s,transform .2s;transform:translateY(-6px)}.preloader-overlay{z-index:10000;pointer-events:all;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.preloader-columns{flex-direction:row;width:100%;height:100%;display:flex;position:absolute;inset:0}.preloader-column{will-change:transform;background-color:#09090b;flex:1;height:100%;transform:translateY(0%);box-shadow:0 0 1px #09090b}.preloader-overlay.blocking .preloader-column{animation:none;transform:translateY(0%)}.preloader-overlay.revealing .preloader-column{animation:.55s cubic-bezier(.83,0,.17,1) both preloader-exit}@keyframes preloader-exit{0%{transform:translateY(0%)}to{transform:translateY(100%)}}.preloader-badge{z-index:10;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:1.6rem;display:flex;position:absolute;inset:0}.preloader-name{font-family:var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:#fff;font-size:clamp(1rem,2.4vw,1.7rem);font-weight:900;transition:opacity .2s,transform .2s}.preloader-bar-track{background:#ffffff1f;border-radius:9999px;width:clamp(80px,14vw,130px);height:1.5px;transition:opacity .2s;overflow:hidden}.preloader-bar-fill{background:#fff;border-radius:9999px;width:0%;height:100%;animation:1s cubic-bezier(.4,0,.2,1) .1s forwards preloader-fill}@keyframes preloader-fill{0%{width:0%}55%{width:65%}80%{width:88%}to{width:100%}}.preloader-overlay.revealing .preloader-name{opacity:0;transform:translateY(-6px)}.preloader-overlay.revealing .preloader-bar-track{opacity:0}.custom-cursor-wrapper{pointer-events:none;z-index:999999;opacity:0;will-change:transform;mix-blend-mode:difference;justify-content:center;align-items:center;width:28px;height:28px;margin-top:-14px;margin-left:-14px;transition:opacity .25s;display:flex;position:fixed;top:0;left:0}.custom-cursor-wrapper.visible{opacity:1}.custom-cursor-core{will-change:transform;background-color:#fff;border-radius:50%;width:14px;height:14px;transition:transform .25s cubic-bezier(.16,1,.3,1)}.custom-cursor-wrapper.hovering .custom-cursor-core{transform:scale(1.6)}.cursor-waves-container{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cursor-wave{opacity:0;pointer-events:none;border:1.5px solid #fff;border-radius:50%;width:28px;height:28px;position:absolute}.cursor-wave.wave-1{animation:1.4s cubic-bezier(.1,.8,.2,1) infinite cursor-ripple}.cursor-wave.wave-2{animation:1.4s cubic-bezier(.1,.8,.2,1) .45s infinite cursor-ripple}.cursor-wave.wave-3{animation:1.4s cubic-bezier(.1,.8,.2,1) .9s infinite cursor-ripple}@keyframes cursor-ripple{0%{opacity:.95;transform:scale(.6)}to{opacity:0;transform:scale(3.2)}}@media (pointer:coarse),(hover:none){.custom-cursor-wrapper{display:none!important}}
