@charset "UTF-8";.mobile-menu-wrapper{display:flex;align-items:center;justify-content:flex-end;height:100%}.mobile-menu-button{background-color:#000;color:#fff;font-family:Azeret Mono,monospace;font-size:clamp(.9rem,1.5vw,1rem);font-weight:600;padding:clamp(.5rem,2vw,.75rem) clamp(1rem,3vw,1.5rem);border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1110;min-width:4.5rem}.mobile-menu-button:active{transform:scale(.98)}.menu-panel{position:fixed;top:calc(var(--banner-height, 2.2rem) + clamp(3.5rem,5vw,5rem));right:0;width:70%;max-width:320px;height:auto;max-height:calc(100vh - var(--banner-height, 2.2rem) - clamp(3.5rem,5vw,5rem));background:#1a1a1a;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:1101;box-shadow:-5px 0 20px #0000004d;overflow-y:auto;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,3vw,2rem)}.menu-panel.open{transform:translate(0)}@media (max-width: 568px){.menu-panel{width:75%;padding:clamp(1rem,4vw,2rem) clamp(.5rem,2vw,1rem);top:calc(var(--banner-height, 2.2rem) + 3.5rem);max-height:calc(100vh - var(--banner-height, 2.2rem) - 3.5rem)}}@media (min-width: 568px) and (max-width: 834px){.menu-panel{width:50%;top:calc(var(--banner-height, 2.2rem) + 3.5rem)}}@media (min-width: 834px){.menu-panel{width:35%;max-width:300px}}.close-button{position:absolute;top:clamp(.75rem,2vw,1.5rem);right:clamp(.75rem,2vw,1.5rem);width:clamp(1.75rem,4vw,2.25rem);height:clamp(1.75rem,4vw,2.25rem);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;z-index:1102}.close-button span{position:absolute;width:clamp(1.25rem,3vw,1.75rem);height:2px;background:#bdc3c7;transition:none}.close-button span:first-child{transform:rotate(45deg)}.close-button span:last-child{transform:rotate(-45deg)}.menu-items{display:flex;flex-direction:column;padding:clamp(.5rem,2vw,1rem);margin-top:clamp(1rem,3vw,2rem);gap:clamp(.25rem,1vw,.5rem)}.menu-item{color:#666;margin-bottom:clamp(.5rem,2vw,1rem);text-decoration:none;font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:600;transition:color .3s ease;font-family:Poppins,sans-serif;background:none;border:none;cursor:pointer;text-align:left;padding:clamp(.25rem,1vw,.5rem) 0}@media (max-width: 568px){.menu-item{font-size:clamp(1rem,4vw,1.25rem)}}.divider{margin-bottom:clamp(.75rem,2vw,1.5rem);border:none;border-top:1px solid rgba(255,255,255,.1)}.btn-contact-mobile{padding:clamp(.6rem,2vw,.9rem) clamp(1rem,3vw,1.5rem);border:1px solid #ffffff;border-radius:8px;color:#fff;text-align:center;margin-top:clamp(.5rem,2vw,1rem);display:inline-block;font-family:Poppins,sans-serif;font-size:clamp(.95rem,2vw,1.1rem);transition:none}@media (max-width: 568px){.btn-contact-mobile{font-size:clamp(.9rem,3.5vw,1rem);padding:clamp(.5rem,2.5vw,.75rem) clamp(.8rem,4vw,1.2rem)}}@media (min-width: 834px){.mobile-menu-wrapper{display:none}}.contact-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:clamp(.5rem,2vw,1rem);animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.contact-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000026;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .4s ease-out}.contact-modal .modal-close{position:absolute;top:clamp(.5rem,2vw,1rem);right:clamp(.5rem,2vw,1rem);background:none;border:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;color:#666;transition:all .3s ease}.contact-modal .modal-close:hover{background:#1a1a1a1a;color:#1a1a1a;transform:scale(1.1)}.contact-modal .modal-header{padding:2rem 2rem 1.5rem;text-align:center;border-bottom:1px solid rgba(185,185,185,.3)}.contact-modal .modal-header h2{font-family:Poppins,sans-serif;font-size:1.8rem;color:#1a1a1a;margin-bottom:.5rem}.contact-modal .modal-header p{font-family:Poppins,sans-serif;color:#666;font-size:1rem;margin:0}.contact-modal .contact-content{padding:1.5rem 2rem 2rem}.contact-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#ffffff80;border:1px solid rgba(185,185,185,.2);border-radius:8px;margin-bottom:.75rem;transition:all .3s ease}.contact-item:hover{background:#ff40020d;border-color:#ff400233;transform:translateY(-2px);box-shadow:0 4px 20px #ff40021a}.contact-item .contact-icon{width:40px;height:40px;background:#ff4002;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.contact-item .contact-info{flex:1;display:flex;flex-direction:column;gap:2px}.contact-item .contact-info .contact-label{font-family:Poppins,sans-serif;font-size:.8rem;color:#666;font-weight:500}.contact-item .contact-info .contact-value{font-size:.95rem;color:#1a1a1a;font-weight:600;font-family:Poppins,sans-serif}.contact-item .copy-btn{font-family:Poppins,sans-serif;background:#1a1a1a;color:#fff;border:none;padding:.4rem .8rem;border-radius:4px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .3s ease;min-width:60px}.contact-item .copy-btn:hover{background:#000;color:#ff4002;transform:scale(1.05)}.contact-item .copy-btn.copied{background:#ff4002;transform:scale(1.05)}.resume-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(185,185,185,.3)}.resume-section h3{font-family:Azeret Mono,monospace;font-size:1.1rem;color:#1a1a1a;margin-bottom:1rem;text-align:center}.resume-section .resume-download{display:flex;align-items:center;gap:1rem;padding:1rem;background:#ffffff80;border:1px solid rgba(185,185,185,.2);border-radius:8px;text-decoration:none;transition:all .3s ease}.resume-section .resume-download:hover{background:#ff40020d;border-color:#ff400233;transform:translateY(-2px);box-shadow:0 4px 20px #ff40021a}.resume-section .resume-download .resume-icon{width:40px;height:40px;background:#ff4002;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.resume-section .resume-download .resume-info{flex:1;display:flex;flex-direction:column;gap:2px}.resume-section .resume-download .resume-info .resume-label{font-family:Poppins,sans-serif;font-size:.8rem;color:#666;font-weight:500}.resume-section .resume-download .resume-info .resume-size{font-family:Poppins,sans-serif;font-size:.95rem;color:#1a1a1a;font-weight:600}.social-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(185,185,185,.3)}.social-section h3{font-family:Azeret Mono,monospace;font-size:1.1rem;color:#1a1a1a;margin-bottom:1rem;text-align:center}.social-section .social-links{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.social-section .social-links .social-link{font-family:Poppins,sans-serif;display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#1a1a1a0d;border:1px solid rgba(185,185,185,.3);border-radius:30px;text-decoration:none;color:#1a1a1a;font-weight:500;font-size:.85rem;transition:all .3s ease}.social-section .social-links .social-link:hover{background:#1a1a1a;color:#fff;transform:translateY(-3px);box-shadow:0 8px 25px #1a1a1a33}.social-section .social-links .social-link svg{transition:transform .3s ease}.social-section .social-links .social-link:hover svg{transform:scale(1.1)}.cta-section{margin-top:1.5rem;text-align:center}.cta-section .cta-button{font-family:Poppins,sans-serif;display:inline-flex;align-items:center;justify-content:center;background:#ff4002;color:#fff;text-decoration:none;padding:.8rem 2rem;border-radius:30px;font-weight:600;font-size:1rem;transition:all .3s ease}.cta-section .cta-button:hover{transform:translateY(-3px)}.cta-section .cta-button:active{transform:translateY(-1px)}@media (max-width: 834px){.contact-modal{max-width:380px;margin:1rem;max-height:80vh}.contact-modal .modal-header{padding:1.2rem 1.2rem .8rem}.contact-modal .modal-header h2{font-size:1.3rem}.contact-modal .modal-header p{font-size:.85rem}.contact-modal .contact-content{padding:.8rem 1.2rem 1.2rem}.contact-modal .contact-item{padding:.8rem;gap:.8rem;margin-bottom:.6rem}.contact-modal .contact-item .contact-icon{width:36px;height:36px}.contact-modal .contact-item .contact-info .contact-label{font-size:.75rem}.contact-modal .contact-item .contact-info .contact-value{font-size:.85rem}.contact-modal .contact-item .copy-btn{min-width:55px;padding:.35rem .7rem;font-size:.75rem}.contact-modal .resume-section{margin-top:1rem;padding-top:.8rem}.contact-modal .resume-section h3{font-size:1rem;margin-bottom:.8rem}.contact-modal .resume-section .resume-download{padding:.8rem;gap:.8rem}.contact-modal .resume-section .resume-download .resume-icon{width:40px;height:40px}.contact-modal .resume-section .resume-download .resume-info .resume-label{font-size:.85rem}.contact-modal .resume-section .resume-download .resume-info .resume-size{font-size:.75rem}.contact-modal .social-section{margin-top:1rem;padding-top:.8rem}.contact-modal .social-section h3{font-size:1rem;margin-bottom:.8rem}.contact-modal .social-links{gap:.5rem}.contact-modal .social-links .social-link{padding:.5rem .8rem;font-size:.8rem;gap:.4rem}.contact-modal .cta-section{margin-top:1rem}.contact-modal .cta-section .cta-button{padding:.7rem 1.8rem;font-size:.9rem}}@media (max-width: 568px){.contact-modal{margin:.5rem;max-width:calc(100vw - 1rem);max-height:85vh}.contact-modal .modal-header{padding:1rem 1rem .8rem}.contact-modal .modal-header h2{font-size:1.2rem}.contact-modal .modal-header p{font-size:.8rem}.contact-modal .contact-content{padding:.8rem 1rem 1rem}.contact-modal .contact-item{flex-direction:column;align-items:center;padding:.8rem;gap:.6rem;text-align:center}.contact-modal .contact-item .contact-icon{width:32px;height:32px}.contact-modal .contact-item .contact-info{width:100%}.contact-modal .contact-item .contact-info .contact-label{font-size:.7rem}.contact-modal .contact-item .contact-info .contact-value{font-size:.8rem}.contact-modal .contact-item .copy-btn{min-width:50px;padding:.3rem .6rem;font-size:.7rem}.contact-modal .resume-section .resume-download{padding:.8rem;gap:.6rem}.contact-modal .resume-section .resume-download .resume-icon{width:36px;height:36px}.contact-modal .resume-section .resume-download .resume-info .resume-label{font-size:.8rem}.contact-modal .resume-section .resume-download .resume-info .resume-size{font-size:.7rem}.contact-modal .social-links{flex-direction:column;align-items:center;gap:.4rem}.contact-modal .social-links .social-link{width:90%;max-width:200px;justify-content:center;padding:.6rem 1rem;font-size:.75rem}.contact-modal .cta-button{padding:.7rem 1.6rem;font-size:.85rem}}:root{--banner-height: 2.2rem}.scroll-wrapper{position:fixed;left:0;width:100%;padding:.25rem 0;z-index:1100;transition:all .3s ease}.scroll-wrapper.banner-visible{transform:translateY(0);opacity:1}.scroll-wrapper.banner-hidden{transform:translateY(-100%);opacity:0}.scroll-wrapper .scroll-text{overflow:hidden;white-space:nowrap;display:flex;align-items:center;width:100%}.scroll-wrapper .scroll-text .text-content{display:inline-block;font-family:Azeret Mono,monospace;font-weight:600;font-size:1rem;animation:scroll-left 120s linear infinite}@keyframes scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@media screen and (max-width: 1080px){.scroll-wrapper{padding:.22rem 0}.scroll-wrapper .scroll-text .text-content{font-size:.95rem}}@media screen and (max-width: 1024px){.scroll-wrapper{padding:.2rem 0}.scroll-wrapper .scroll-text .text-content{font-size:.9rem}}@media screen and (max-width: 834px){.scroll-wrapper{padding:.18rem 0}.scroll-wrapper .scroll-text .text-content{font-size:.85rem}}@media screen and (max-width: 568px){.scroll-wrapper{padding:.15rem 0}.scroll-wrapper .scroll-text .text-content{font-size:.8rem;letter-spacing:.02em}}@media screen and (max-width: 375px){.scroll-wrapper{padding:.1rem 0}.scroll-wrapper .scroll-text .text-content{font-size:.75rem}}.header{position:fixed;top:0;width:100%;padding:clamp(.5rem,2vw,1rem) 0;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-bottom:1px solid rgba(255,255,255,.2);transition:all .3s ease}.header.header-visible{transform:translateY(0);opacity:1}.header.header-hidden{transform:translateY(-100%);opacity:0}.header .container{max-width:80rem;margin:0 auto;padding:0 clamp(.5rem,2vw,1rem)}.header .grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(.5rem,2vw,1rem);align-items:center}.header .logo-img{width:8rem;height:auto;transition:opacity .3s ease}.header .main-menu{display:flex;justify-content:flex-end}.header .main-menu ul{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0}.header .main-menu ul li{font-weight:600;transition:color .3s ease;font-family:Poppins,sans-serif;align-content:center}.header .main-menu ul li a{text-decoration:none;color:#000}.header .main-menu ul li:hover{color:#ff4002}.header .main-menu ul li button{background:#000;border:2px solid #000000;border-radius:8px;color:#fff;padding:.45rem .85rem;cursor:pointer;font-size:inherit;font-family:Poppins,sans-serif;font-weight:600;transition:all .3s ease}.header .main-menu ul li button:hover{background:#000;border-color:#000;color:#ff4002}.header .main-menu.hover-about a:hover,.header .main-menu.hover-about li button:hover{color:#ff811a}.header .main-menu.hover-works a:hover,.header .main-menu.hover-works li button:hover{color:#014dae}.header .main-menu.hover-lab a:hover,.header .main-menu.hover-home a:hover,.header .main-menu.hover-lab li button:hover,.header .main-menu.hover-home li button:hover{color:#ff4002}@media (max-width: 1080px){.header{padding:1.2rem 0}.header .logo-img{width:7rem}.header .container{padding:0 clamp(1rem,4vw,2rem)}}@media (max-width: 834px){.header{padding:.8rem 0}.header .main-menu{display:none}.header .logo-img{width:6rem}.header .container{padding:0 clamp(.5rem,2vw,1rem)}.header.header-hidden .mobile-menu-wrapper{transform:translateY(100vh)}}.footer{text-align:center;padding:3rem 1rem;min-height:350px}.footer .container{max-width:80rem;margin:0 auto;padding:0 1rem}.footer .footer-menu{margin-bottom:1.5rem;font-size:1.2rem;min-height:32px}.footer .footer-menu ul{list-style:none;display:flex;justify-content:center;gap:2rem;margin:0;padding:0}.footer .footer-menu ul li a{text-decoration:none;color:#fff;font-weight:600;font-family:Azeret Mono,monospace;transition:opacity .3s ease}.footer .footer-menu ul li a:hover{opacity:.6}.footer .footer-logo{min-height:51px;margin:1.5rem 0}.footer .footer-logo img{width:192px;height:51px;margin:0 auto;display:block}.footer .connect{margin:1rem 0 .5rem;font-family:Azeret Mono,monospace;font-weight:300;min-height:24px}.footer .social-links{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.5rem;min-height:40px}.footer .social-links a{color:#fff;font-size:1.5rem;text-decoration:none;transition:opacity .3s ease;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px}.footer .social-links a:hover{opacity:.6}.footer .social-links a svg{display:block}.footer .copyright{font-size:.9rem;opacity:.8;font-weight:300;font-family:Poppins,sans-serif;min-height:20px}@media (max-width: 834px){.footer{padding:2rem 1rem;min-height:300px}.footer .footer-menu{font-size:1rem}.footer .footer-menu ul{gap:1.5rem}.footer .footer-logo img{width:160px;height:42px}.footer .social-links{gap:1rem}}.go-to-top{position:fixed;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);z-index:1000;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s ease}.go-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.go-to-top__button{width:clamp(48px,5vw,56px);height:clamp(48px,5vw,56px);background-color:#ff4002;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026,0 2px 4px #0000001a;transition:all .3s ease}.go-to-top__button:hover{background-color:#e63900;transform:translateY(-2px);box-shadow:0 8px 20px #ff40024d}.go-to-top__button:active{transform:translateY(0);box-shadow:0 2px 8px #ff40024d}.go-to-top__button:focus{outline:none;box-shadow:0 0 0 3px #ff40024d}.go-to-top__button svg{width:clamp(18px,3vw,24px);height:clamp(18px,3vw,24px);transition:transform .2s ease}.go-to-top__button:hover svg{transform:translateY(-1px)}@media screen and (max-width: 568px){.go-to-top{bottom:1rem;right:1rem}.go-to-top__button{width:48px;height:48px}.go-to-top__button svg{width:18px;height:18px}}@media screen and (min-width: 834px){.go-to-top{bottom:1.5rem;right:1.5rem}.go-to-top__button{width:52px;height:52px}.go-to-top__button svg{width:22px;height:22px}}@media screen and (min-width: 1080px){.go-to-top{bottom:2rem;right:2rem}.go-to-top__button{width:56px;height:56px}.go-to-top__button svg{width:24px;height:24px}}@media (prefers-reduced-motion: reduce){.go-to-top{transition:opacity .1s ease}.go-to-top__button{transition:background-color .1s ease}.go-to-top__button:hover{transform:none}.go-to-top__button svg{transition:none}.go-to-top__button:hover svg{transform:none}}.loading-spinner-container{display:flex;justify-content:center;align-items:center;height:100vh;width:100%;background-color:transparent}.loading-spinner-container .spinner{width:48px;height:48px;border:4px solid rgba(255,64,2,.2);border-top-color:#ff4002;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}img,button,.slider img,.mockup-group img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}*,*:before,*:after{box-sizing:border-box}*{margin:0}@media (prefers-reduced-motion: no-preference){html{interpolate-size:allow-keywords}}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}img,video{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;pointer-events:auto}.protected-media{position:relative;display:inline-block}.protected-media:before{content:"© Journey Kim";position:absolute;bottom:15px;right:15px;color:#ffffffd9;font-size:clamp(.7rem,1.5vw,.9rem);font-weight:600;font-family:Poppins,sans-serif;text-shadow:0 2px 8px rgba(0,0,0,.7),0 0 3px rgba(0,0,0,.9);pointer-events:none;z-index:10;letter-spacing:.5px}.protected-media img,.protected-media video{display:block;width:100%;height:auto}.protected-media--top-left:before{inset:15px auto auto 15px}.protected-media--top-right:before{inset:15px 15px auto auto}.protected-media--bottom-left:before{inset:auto auto 15px 15px}.protected-media--center:before{inset:50% auto auto 50%;transform:translate(-50%,-50%);font-size:clamp(1rem,3vw,1.5rem);opacity:.3}.protected-media--dark:before{color:#0009;text-shadow:0 2px 8px rgba(255,255,255,.7),0 0 3px rgba(255,255,255,.9)}@media (max-width: 834px){.protected-media:before{bottom:10px;right:10px;font-size:clamp(.6rem,1.2vw,.75rem)}}@media (max-width: 568px){.protected-media:before{bottom:8px;right:8px;font-size:.65rem}}#root{min-height:100vh;display:flex;flex-direction:column}body{scroll-padding-top:0}main{flex-grow:1;scroll-behavior:smooth}.container{max-width:80rem;margin:0 auto;padding:0 1rem}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}.col-1{grid-column:span 1}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-10{grid-column:span 10}.col-11{grid-column:span 11}.col-12{grid-column:span 12}@media screen and (min-width: 568px){.col-1-sm{grid-column:span 1}.col-2-sm{grid-column:span 2}.col-3-sm{grid-column:span 3}.col-4-sm{grid-column:span 4}.col-5-sm{grid-column:span 5}.col-6-sm{grid-column:span 6}.col-7-sm{grid-column:span 7}.col-8-sm{grid-column:span 8}.col-9-sm{grid-column:span 9}.col-10-sm{grid-column:span 10}.col-11-sm{grid-column:span 11}.col-12-sm{grid-column:span 12}}@media screen and (min-width: 834px){.col-1-md{grid-column:span 1}.col-2-md{grid-column:span 2}.col-3-md{grid-column:span 3}.col-4-md{grid-column:span 4}.col-5-md{grid-column:span 5}.col-6-md{grid-column:span 6}.col-7-md{grid-column:span 7}.col-8-md{grid-column:span 8}.col-9-md{grid-column:span 9}.col-10-md{grid-column:span 10}.col-11-md{grid-column:span 11}.col-12-md{grid-column:span 12}}@media screen and (min-width: 1080px){.col-1-lg{grid-column:span 1}.col-2-lg{grid-column:span 2}.col-3-lg{grid-column:span 3}.col-4-lg{grid-column:span 4}.col-5-lg{grid-column:span 5}.col-6-lg{grid-column:span 6}.col-7-lg{grid-column:span 7}.col-8-lg{grid-column:span 8}.col-9-lg{grid-column:span 9}.col-10-lg{grid-column:span 10}.col-11-lg{grid-column:span 11}.col-12-lg{grid-column:span 12}}.flex{display:flex}.space-between{justify-content:space-between}.space-around{justify-content:space-around}
