@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&display=swap";.theme-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:50%;background:transparent;color:var(--text-color);border:1px solid var(--border-color);cursor:none;transition:all .3s cubic-bezier(.175,.885,.32,1.275);z-index:1000}.toggle-icon{display:flex;align-items:center;justify-content:center;transition:transform .5s cubic-bezier(.68,-.55,.265,1.55)}.theme-toggle:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-color);transform:rotate(15deg) scale(1.05)}.theme-toggle:hover .toggle-icon{animation:wiggle .5s ease-in-out}@keyframes wiggle{0%{transform:rotate(0)}25%{transform:rotate(-10deg)}50%{transform:rotate(10deg)}75%{transform:rotate(-5deg)}to{transform:rotate(0)}}.nav{position:fixed;top:0;left:0;right:0;z-index:1100;display:flex;align-items:center;justify-content:space-between;height:84px;padding:0 64px;background:var(--header-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);transition:all .3s ease}.logo{display:flex;align-items:center;flex:1}.logo-img{height:58px;width:auto;object-fit:contain;transition:transform .3s ease}.logo-img:hover{transform:scale(1.05)}.logo-light,[data-theme=light] .logo-dark{display:none}[data-theme=light] .logo-light{display:block}.nav-links{display:flex;gap:36px;list-style:none;margin:0;padding:0}.nav-link{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);transition:color .25s;text-decoration:none}.nav-link.active{color:var(--accent-color)}.hamburger{display:none;flex-direction:column;gap:6px;padding:4px}.hamburger span{display:block;width:24px;height:2px;background:var(--accent-color);transition:all .3s cubic-bezier(.4,0,.2,1)}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,6px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-7px)}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:1}.hire-cta{background:transparent;color:var(--accent-color);border:1px solid var(--accent-border);padding:10px 26px;border-radius:4px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-family:inherit;transition:all .3s ease}.mobile-only{display:none}@media (max-width: 768px){.nav{height:72px;padding:0 24px}.logo-img{height:48px}.nav-links{position:fixed;top:0;right:-100%;width:100%;height:100vh;background:var(--header-bg-solid);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;align-items:center;justify-content:center;gap:32px;transition:right .4s cubic-bezier(.4,0,.2,1);z-index:1050}.nav-links.open{right:0}.hamburger{display:flex;z-index:1200}.nav-links .nav-link{font-size:1.1rem}.hire-cta{display:none}.mobile-only{display:block}.mobile-only .nav-link{color:var(--accent-color);font-weight:700;border:1px solid var(--accent-border);padding:12px 32px;border-radius:4px}}.header-socials{display:flex;align-items:center;gap:16px;margin-right:16px}.header-social-link{color:var(--text-muted);transition:color .3s ease,transform .3s ease;display:flex;align-items:center;justify-content:center}.header-social-link:hover{color:var(--accent-color);transform:translateY(-2px)}.social-svg{width:20px;height:20px}@media (max-width: 1024px){.header-socials{display:none}.mobile-socials-item{margin-top:24px;display:flex;justify-content:center}.mobile-socials{display:flex;align-items:center;gap:24px}.mobile-social-link{color:var(--text-muted);transition:color .3s ease,transform .3s ease;display:flex;align-items:center;justify-content:center}.mobile-social-link:hover{color:var(--accent-color);transform:translateY(-2px)}}.btn-link{background:none;border:none;padding:0;margin:0;font:inherit;cursor:none!important;outline:none}.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:100px 64px 0;gap:60px;font-family:Nanum Gothic,sans-serif}.hero-left{display:flex;flex-direction:column;gap:24px}.badge{display:inline-flex;align-items:center;gap:8px;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:100px;padding:6px 16px;font-family:Manrope,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.12em;color:var(--accent-color);width:fit-content;text-transform:uppercase}.hero-name{font-family:Smooch Sans,sans-serif;font-size:clamp(3.5rem,6.5vw,6rem);font-weight:800;line-height:.9;margin:0;letter-spacing:-.02em;background:linear-gradient(135deg,var(--text-color) 30%,var(--accent-color));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.type-row{display:flex;align-items:center;gap:10px;height:36px}.type-label{font-size:1.1rem;color:var(--text-muted)}.type-text{font-size:1.1rem;color:var(--accent-color)}.cursor{display:inline-block;width:2px;height:1.1rem;background:var(--accent-color);animation:blink 1s step-end infinite}.hero-desc{font-size:1rem;line-height:1.85;color:var(--text-muted);max-width:480px;margin:0}.hero-actions{display:flex;gap:16px;align-items:center;margin-top:8px}.btn-primary{background:var(--accent-color);color:var(--bg-color);padding:14px 32px;border-radius:4px;font-size:.8rem;letter-spacing:.1em;font-weight:700;border:none;text-transform:uppercase;transition:all .25s;font-family:inherit}.btn-outline{background:transparent;color:var(--text-color);padding:13px 32px;border-radius:4px;font-size:.8rem;letter-spacing:.1em;border:1px solid var(--border-color);transition:all .25s;font-family:inherit}.stat-row{display:flex;gap:40px;padding-top:32px;border-top:1px solid var(--border-color);margin-top:8px}.stat-num{font-family:Manrope,sans-serif;font-size:2.2rem;font-weight:800;color:var(--accent-color);line-height:1}.stat-label{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle);margin-top:4px}.hero-right{position:relative;display:flex;align-items:center;justify-content:center;height:100%}.hero-img{position:relative;z-index:5;width:90%;max-width:400px;height:auto;object-fit:contain;display:block;filter:drop-shadow(0 20px 60px rgba(0,0,0,.5))}.float-wrapper{position:absolute;z-index:2}.float-wrapper.left{top:25%;left:-5%}.float-wrapper.right{bottom:25%;right:-5%}.float-card{background:var(--float-bg);border:1px solid rgba(127,255,178,.15);border-radius:12px;padding:12px 16px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 32px #0006;pointer-events:auto}.float-label{font-family:Manrope,sans-serif;font-size:.65rem;font-weight:700;letter-spacing:.12em;color:var(--text-subtle);text-transform:uppercase}.float-val{font-family:Manrope,sans-serif;font-size:.95rem;font-weight:800;color:var(--accent-color);margin-top:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes blink{50%{opacity:0}}.fade-up{opacity:0;animation:fadeUp .8s forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.3s}.delay-3{animation-delay:.5s}.delay-4{animation-delay:.65s}.delay-5{animation-delay:.8s}.delay-6{animation-delay:1s}@media (max-width: 1024px){.hero{padding:100px 32px 64px;gap:40px}}@media (max-width: 768px){.hero{grid-template-columns:1fr;text-align:center;padding-top:120px;min-height:auto}.hero-left{align-items:center}.hero-desc{max-width:100%}.hero-actions{justify-content:center;flex-wrap:wrap}.stat-row{justify-content:center;gap:24px}.hero-right{margin-top:40px}.float-wrapper.left{left:2%;top:10%;z-index:10}.float-wrapper.right{right:5%;bottom:20%;z-index:10}}@media (max-width: 480px){.hero-actions{flex-direction:column;width:100%}.btn-primary,.btn-outline{width:100%}.stat-row{flex-direction:column;gap:20px;align-items:center}.hero-name{font-size:2.8rem}}.section-header-wrap{margin-bottom:48px;display:flex;flex-direction:column;gap:16px;position:relative;z-index:2}.section-header-wrap.left{align-items:flex-start}.section-header-wrap.center{align-items:center;text-align:center}.section-h2{font-family:Smooch Sans,Poppins,sans-serif;font-size:clamp(3rem,7vw,4.8rem);font-weight:800;line-height:.9;margin:0;color:var(--text-color);letter-spacing:.02em;text-wrap:balance;text-transform:uppercase}@media (max-width: 768px){.section-header-wrap{margin-bottom:40px;align-items:center;text-align:center}.section-h2{font-size:clamp(2rem,8vw,2.8rem)}}.about-section{padding:110px 64px;background:var(--bg-color-alt)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-top:56px}.about-text{font-size:1rem;line-height:1.85;color:var(--text-muted);margin:0 0 20px}.about-text:last-child{margin-bottom:0}.code-block{background:var(--bg-color-card);border:1px solid var(--accent-border);border-radius:12px;padding:28px 32px;font-family:DM Mono,Fira Code,Courier New,monospace;font-size:.8rem;line-height:1.9;color:var(--code-key)}.code-line{margin:0;will-change:clip-path}.syntax-comment{color:var(--code-comment)}.syntax-keyword{color:var(--code-keyword)}.syntax-key{color:var(--code-key)}.syntax-string{color:var(--code-string)}.syntax-literal{color:var(--code-literal)}@media (max-width: 1024px){.about-section{padding:80px 32px}.about-grid{gap:40px}}@media (max-width: 768px){.about-grid{grid-template-columns:1fr;gap:48px}}@media (max-width: 480px){.about-section{padding:64px 24px}.code-block{padding:20px;font-size:.75rem}}.skills-section{padding:110px 64px;position:relative;z-index:10;overflow:visible}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:56px}.skill-card{background:var(--bg-color-card);border:1px solid var(--border-color);border-radius:16px;padding:28px 24px;transition:border-color .3s;will-change:transform;backface-visibility:hidden}.skill-cat{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-color);margin-bottom:16px}.skill-item{font-size:.82rem;padding:8px 0;border-bottom:1px solid var(--border-color);color:var(--text-muted);display:flex;align-items:center;gap:8px}.skill-dot{width:4px;height:4px;border-radius:50%;background:var(--accent-color);flex-shrink:0}@media (max-width: 1200px){.skills-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1024px){.skills-section{padding:80px 32px}}@media (max-width: 768px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.skills-section{padding:64px 24px}.skills-grid{grid-template-columns:1fr}}.skills-canvas-container{width:100%;height:720px;margin-top:30px;position:relative;outline:none;cursor:none!important}.skills-canvas-container canvas{width:100%!important;height:100%!important;display:block;outline:none}@media (max-width: 1024px){.skills-canvas-container{height:550px}}@media (max-width: 768px){.skills-canvas-container{height:480px}}.projects-section{padding:120px 64px;background:var(--bg-color)}.projects-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:64px;gap:32px}.tab-switcher{display:flex;background:var(--bg-color-alt);padding:6px;border-radius:12px;border:1px solid var(--border-color)}.tab-btn{padding:8px 24px;border:none;background:transparent;color:var(--text-muted);font-size:.9rem;font-weight:500;cursor:pointer;border-radius:8px;transition:all .3s ease}.tab-btn.active{background:var(--bg-color);color:var(--text-color);box-shadow:0 4px 12px #0000000d}.carousel-container{width:100%;overflow-x:auto;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none;scroll-snap-type:x mandatory;padding:20px 0}.carousel-container::-webkit-scrollbar{display:none}.carousel-track{display:flex;gap:32px;padding-bottom:20px}.carousel-item{flex:0 0 400px;scroll-snap-align:start;height:auto}.header-right{display:flex;align-items:center;gap:24px}.carousel-controls{display:flex;gap:12px}.control-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-color);color:var(--text-color);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.control-btn:hover:not(:disabled){background:var(--text-color);color:var(--bg-color);border-color:var(--text-color)}.control-btn:disabled{opacity:.3;cursor:not-allowed}.control-btn svg{width:20px;height:20px}.project-card-new{background:#ffffff;border-radius:2px;overflow:hidden;transition:all .4s ease;height:100%;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000000a;position:relative;border:1px solid rgba(0,0,0,.05)}[data-theme=dark] .project-card-new{background:#1a1a1a;border:1px solid rgba(255,255,255,.05)}.project-card-new:hover{transform:translateY(-4px);box-shadow:0 12px 30px #00000014}.card-image-container{width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#f5f5f5}[data-theme=dark] .card-image-container{background:#111}.card-img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,0,.2,1)}.project-card-new:hover .card-img{transform:scale(1.08)}.card-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;letter-spacing:.2em;color:#999;background:#f5f5f5;text-transform:uppercase}.card-content{padding:32px 32px 40px;flex-grow:1;display:flex;flex-direction:column;position:relative;background:#fff}[data-theme=dark] .card-content{background:#1a1a1a}.cat-tag-new{display:inline-block;background:#1a1a1a;color:#fff;font-size:.7rem;font-weight:800;padding:4px 10px;margin-bottom:20px;text-transform:uppercase;letter-spacing:.1em;width:fit-content}[data-theme=dark] .cat-tag-new{background:#333}.card-title-new{font-size:1.5rem;font-weight:800;line-height:1.3;color:#1a1a1a;margin:0;max-width:90%}[data-theme=dark] .card-title-new{color:#fff}.card-action-btn{position:absolute;bottom:24px;right:24px;width:44px;height:44px;background:#f0f0f0;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease;color:#1a1a1a}[data-theme=dark] .card-action-btn{background:#2a2a2a;color:#fff}.card-action-btn svg{width:20px;height:20px}.project-card-new:hover .card-action-btn{background:#1a1a1a;color:#fff}[data-theme=dark] .project-card-new:hover .card-action-btn{background:#fff;color:#000}@media (max-width: 1024px){.projects-section{padding:80px 32px}.carousel-item{flex:0 0 350px}}@media (max-width: 768px){.projects-header{flex-direction:column;align-items:flex-start;gap:24px}.header-right{width:100%;justify-content:space-between}.carousel-item{flex:0 0 85%}.card-content{padding:24px}.card-title-new{font-size:1.25rem}}@media (max-width: 480px){.projects-section{padding:64px 20px}.header-right{flex-direction:column;align-items:flex-start}.carousel-controls{display:none}.tab-switcher{width:100%}.tab-btn{flex:1}}.azurio-projects-list{display:grid;grid-template-columns:repeat(2,1fr);gap:120px 64px;margin-top:64px;width:100%}.azurio-project-block{display:flex;flex-direction:column;gap:32px;width:100%;cursor:pointer}.azurio-project-image{width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#f5f5f5;position:relative}[data-theme=dark] .azurio-project-image{background:#111}.azurio-project-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,0,.2,1)}.azurio-project-block:hover .azurio-project-image img{transform:scale(1.04)}.azurio-project-info{display:flex;justify-content:space-between;align-items:flex-start;width:100%}.azurio-project-title{font-size:3.5rem;font-weight:800;line-height:1.1;color:var(--text-color);margin:0;max-width:60%;text-transform:uppercase}.azurio-project-tags{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin-top:8px}.azurio-tag{font-size:.85rem;font-family:monospace;font-weight:600;color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase}.show-more-container{display:flex;justify-content:center;margin-top:120px;width:100%}.show-more-btn{padding:12px 24px;font-size:.95rem;font-weight:500;text-transform:uppercase;letter-spacing:.15em;background:transparent;color:var(--text-color);border:none;cursor:pointer;transition:opacity .3s ease;opacity:.7}.show-more-btn:hover{background:transparent;opacity:1;color:var(--text-color)}@media (max-width: 1024px){.azurio-projects-list{grid-template-columns:1fr;gap:120px}.azurio-project-title{font-size:2.5rem}}@media (max-width: 768px){.azurio-project-info{flex-direction:column;gap:24px}.azurio-project-tags{align-items:flex-start}.azurio-project-title{font-size:2rem;max-width:100%}.azurio-projects-list{gap:80px}}.contact-section{padding:110px 64px}.contact-inner{max-width:600px;margin:0 auto;text-align:center}.contact-sub{font-size:1rem;color:var(--text-subtle);line-height:1.85;margin:20px 0 48px}.contact-form{display:flex;flex-direction:column;gap:14px;text-align:left}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-input{width:100%;background:var(--bg-color-card);border:1px solid var(--border-color);border-radius:8px;padding:14px 18px;color:#e8e6df;font-family:inherit;font-size:.9rem;outline:none;transition:border-color .25s;box-sizing:border-box}.contact-input:focus{border-color:var(--accent-color)}.contact-btn{align-self:flex-start}@media (max-width: 1024px){.contact-section{padding:80px 32px}}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.contact-btn{align-self:stretch}}@media (max-width: 480px){.contact-section{padding:64px 24px}}.resume-notice-card{position:relative;display:flex;align-items:flex-start;justify-content:space-between;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:12px;padding:20px 24px;margin-bottom:36px;text-align:left;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #00000026;animation:slideDownFade .5s cubic-bezier(.25,.46,.45,.94) both}@keyframes slideDownFade{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.resume-notice-content{display:flex;gap:16px;align-items:flex-start}.resume-notice-icon{display:flex;align-items:center;justify-content:center;background:rgba(127,255,178,.12);border-radius:50%;padding:8px;color:var(--accent-color);flex-shrink:0}[data-theme=light] .resume-notice-icon{background:rgba(0,171,85,.12)}.notice-svg{width:24px;height:24px}.resume-notice-details{display:flex;flex-direction:column;gap:6px}.resume-notice-details h4{font-size:1.05rem;font-weight:600;color:var(--accent-color);margin:0}.resume-notice-details p{font-size:.9rem;line-height:1.5;color:var(--text-color);opacity:.9;margin:0}.resume-email-link{color:var(--accent-color);text-decoration:underline;font-weight:500;transition:opacity .2s ease}.resume-email-link:hover{opacity:.8}.resume-notice-close{background:none;border:none;cursor:pointer;padding:4px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background-color .2s,color .2s;margin-left:12px}.resume-notice-close:hover{background:rgba(255,255,255,.08);color:var(--accent-color)}[data-theme=light] .resume-notice-close:hover{background:rgba(0,0,0,.05)}.close-svg{width:18px;height:18px}@media (max-width: 600px){.resume-notice-card{padding:16px}.resume-notice-content{gap:12px}.notice-svg{width:20px;height:20px}}.footer{padding:64px;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.footer-logo{font-size:.82rem;color:var(--text-subtle)}.footer-links{display:flex;gap:24px}.footer-link{font-size:.72rem;color:var(--text-subtle);text-decoration:none;transition:color .25s;text-transform:uppercase;letter-spacing:.1em}.footer-link:hover{color:var(--accent-color)}@media (max-width: 1024px){.footer{padding:48px 32px}}@media (max-width: 768px){.footer{flex-direction:column;gap:32px;text-align:center}.footer-right{gap:24px;flex-wrap:wrap;justify-content:center}}@media (max-width: 480px){.footer{padding:40px 24px}}.custom-cursor-wrapper{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;will-change:transform;transition:opacity .3s ease}.custom-cursor-wrapper.theme-dark .cursor-icon{filter:invert(1)}.cursor-icon{width:26px;height:auto;display:block;transition:transform .1s ease,width .1s ease;transform-origin:top left}.cursor-icon.hovering{transform:scale(1.1)}.cursor-icon.clicking,.cursor-icon.hovering.clicking{transform:scale(.9)}.cursor-tooltip{position:absolute;top:-35px;left:20px;background:rgba(10,10,10,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:6px 12px;border-radius:4px;border:1px solid rgba(127,255,178,.2);color:#7fffb2;font-family:Manrope,sans-serif;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(10px);transition:all .3s cubic-bezier(.23,1,.32,1);box-shadow:0 4px 15px #0000004d}.cursor-tooltip.visible{opacity:1;transform:translateY(0)}@media (hover: none) and (pointer: coarse){.custom-cursor-wrapper{display:none!important}}.preloader{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000;z-index:9999;display:flex;justify-content:center;align-items:center;overflow:hidden}.loader{width:80px;aspect-ratio:1;border:10px solid #0000;box-sizing:border-box;background:radial-gradient(farthest-side,#fff 98%,#0000) 0 0/20px 20px,radial-gradient(farthest-side,#fff 98%,#0000) 100% 0/20px 20px,radial-gradient(farthest-side,#fff 98%,#0000) 100% 100%/20px 20px,radial-gradient(farthest-side,#fff 98%,#0000) 0 100%/20px 20px,linear-gradient(#fff 0 0) 50%/40px 40px,#000;background-repeat:no-repeat;filter:blur(4px) contrast(10);animation:l12 .8s infinite}@keyframes l12{to{background-position:100% 0,100% 100%,0 100%,0 0,center}}.scroll-to-top{position:fixed;bottom:35px;right:105px;width:50px;height:50px;border-radius:50%;background:var(--accent-color);color:var(--bg-color-alt);border:none;display:flex;justify-content:center;align-items:center;cursor:none;z-index:900;opacity:0;pointer-events:none;transform:translateY(20px);transition:all .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 8px 24px var(--shadow-color)}.scroll-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-to-top:hover{transform:translateY(-5px) scale(1.05);background:var(--accent-hover);box-shadow:0 12px 30px var(--shadow-color)}@media (max-width: 768px){.scroll-to-top{bottom:27px;right:95px;width:44px;height:44px}}.floating-cv-container{position:fixed;right:0;top:30%;transform:translateY(-50%);z-index:1000;width:300px;height:64px;display:flex;align-items:center;justify-content:flex-end;pointer-events:none;background:transparent}.floating-cv-arrow{pointer-events:auto;display:flex;align-items:center;clip-path:polygon(20px 0%,100% 0%,100% 100%,20px 100%,0% 50%);background:var(--accent-color);border:1px solid var(--accent-border);text-decoration:none;color:var(--bg-color);cursor:pointer;box-shadow:-5px 5px 20px #7fffb24d;height:60px;overflow:hidden;position:relative;right:0}.floating-cv-arrow:hover{filter:brightness(1.1);box-shadow:-8px 8px 30px #7fffb280}.cv-arrow-tip{width:62px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-left:14px;position:relative;animation:pulse-glow 2s infinite}@keyframes pulse-glow{0%{box-shadow:0 0 #7fffb266}70%{box-shadow:0 0 0 10px #7fffb200}to{box-shadow:0 0 #7fffb200}}.cv-vertical-text{font-size:.65rem;font-weight:800;letter-spacing:2px;writing-mode:vertical-rl;transform:rotate(180deg);margin-bottom:4px;font-family:Manrope,sans-serif}.cv-arrow-body{padding:0 25px 0 10px;display:flex;align-items:center;justify-content:center}.cv-text{font-size:.9rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap;font-family:Nanum Gothic,sans-serif}.cv-icon{width:20px;height:20px}@media (max-width: 1024px){.floating-cv-container{top:115px;bottom:auto;right:0;transform:none;width:250px;height:54px}.floating-cv-arrow{height:48px;clip-path:polygon(20px 0%,100% 0%,100% 100%,20px 100%,0% 50%)}.cv-arrow-tip{width:62px;padding-left:10px}.cv-vertical-text{font-size:.5rem}.cv-text{font-size:.8rem}}.chatbot-container{position:fixed;bottom:30px;right:30px;z-index:1000;font-family:inherit}.chatbot-trigger{width:60px;height:60px;border-radius:50%;background:#1a1a1a;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 25px #0003;transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.chatbot-trigger:hover{transform:scale(1.1)}.chatbot-trigger svg{width:28px;height:28px}.chatbot-window{width:350px;height:500px;background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.2);border-radius:24px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px #00000026}[data-theme=dark] .chatbot-window{background:rgba(20,20,20,.8);border:1px solid rgba(255,255,255,.05);color:#fff}.chatbot-header{padding:20px;background:rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(0,0,0,.05)}.chatbot-logo-container{display:flex;align-items:center}.chatbot-logo{height:38px;width:auto;object-fit:contain}.chatbot-logo.logo-light,[data-theme=light] .chatbot-logo.logo-dark{display:none}[data-theme=light] .chatbot-logo.logo-light{display:block}.header-actions{display:flex;gap:8px;align-items:center}.close-btn,.reset-btn{background:transparent;border:none;cursor:pointer;color:inherit;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1)}[data-theme=dark] .close-btn,[data-theme=dark] .reset-btn{background:transparent}.close-btn:hover,.reset-btn:hover{background:transparent!important;transform:none!important}.close-btn .static-img,.close-btn .hover-gif,.reset-btn .static-img,.reset-btn .hover-gif{width:22px;height:22px;object-fit:contain;mix-blend-mode:multiply}.close-btn .hover-gif,.reset-btn .hover-gif,.close-btn:hover .static-img,.reset-btn:hover .static-img{display:none}.close-btn:hover .hover-gif,.reset-btn:hover .hover-gif{display:block}[data-theme=dark] .close-btn img,[data-theme=dark] .reset-btn img{filter:brightness(1) invert(1);mix-blend-mode:screen}.chatbot-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:15px;position:relative}.scroll-bottom-btn{position:absolute;bottom:80px;right:20px;width:35px;height:35px;border-radius:50%;background:white;color:#1a1a1a;border:none;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .3s cubic-bezier(.4,0,.2,1);animation:fadeInScale .3s ease-out}[data-theme=dark] .scroll-bottom-btn{background:#1a1a1a;color:#fff;box-shadow:0 4px 12px #0000004d}.scroll-bottom-btn:hover{transform:translateY(-3px);background:#f0f0f0}[data-theme=dark] .scroll-bottom-btn:hover{background:#2a2a2a}.scroll-bottom-btn svg{width:20px;height:20px}@keyframes fadeInScale{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.chatbot-messages::-webkit-scrollbar{width:4px}.chatbot-messages::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:10px}.message{max-width:80%;padding:12px 16px;border-radius:18px;font-size:.95rem;line-height:1.5}.message.user{align-self:flex-end;background:#1a1a1a;color:#fff;border-bottom-right-radius:4px}.message.model{align-self:flex-start;background:rgba(0,0,0,.05);color:#333;border-bottom-left-radius:4px}[data-theme=dark] .message.model{background:rgba(255,255,255,.08);color:#eee}.chatbot-input{padding:15px;display:flex;gap:10px;background:rgba(255,255,255,.1);border-top:1px solid rgba(0,0,0,.05)}.chatbot-input input{flex-grow:1;background:rgba(0,0,0,.05);border:none;border-radius:12px;padding:10px 15px;outline:none;color:inherit}[data-theme=dark] .chatbot-input input{background:rgba(255,255,255,.05)}.chatbot-input button{background:transparent;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:transform .2s}.chatbot-input button img{width:28px;height:28px;object-fit:contain;transition:all .3s ease;filter:brightness(0)}[data-theme=dark] .chatbot-input button img{filter:brightness(0) invert(1)}.chatbot-input button:hover:not(:disabled) img{transform:translate(3px) scale(1.1)}.chatbot-input button:hover{background:transparent!important;box-shadow:none!important}.chatbot-input button:disabled{opacity:.5;cursor:not-allowed}.typing-indicator{display:flex;gap:4px}.typing-indicator span{width:6px;height:6px;background:#999;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.suggested-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.action-chip{background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.1);padding:8px 12px;border-radius:12px;font-size:.85rem;cursor:pointer;transition:all .3s ease;color:#444}[data-theme=dark] .action-chip{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#ccc}.action-chip:hover{background:#1a1a1a;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}[data-theme=dark] .action-chip:hover{background:white;color:#1a1a1a}@media (max-width: 480px){.chatbot-window{width:calc(100vw - 40px);height:450px;right:20px;bottom:100px}}.live-counter-box{position:absolute;bottom:80px;right:0;background:rgba(20,20,20,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);padding:14px 18px;border-radius:18px 18px 4px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;z-index:1000;transition:transform .8s cubic-bezier(.19,1,.22,1),opacity .6s cubic-bezier(.19,1,.22,1),background .3s ease;box-shadow:0 15px 40px #0006;min-width:200px;max-width:280px;opacity:1;transform:translateY(0) scale(1);cursor:pointer}.live-counter-box:after{content:"";position:absolute;bottom:-8px;right:20px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid rgba(20,20,20,.95);filter:drop-shadow(0 4px 4px rgba(0,0,0,.2))}.live-counter-box.hidden{transform:translateY(20px) scale(.9);opacity:0;pointer-events:none}.live-header{display:flex;align-items:center;width:100%}.live-eyes{display:flex;gap:6px;position:relative;left:0;transform:translate(0);transition:left .8s cubic-bezier(.34,1.56,.64,1),transform .8s cubic-bezier(.34,1.56,.64,1)}.live-header.centered .live-eyes{left:50%;transform:translate(-50%)}.eye{width:14px;height:14px;background:#fff;border-radius:50%;position:relative;overflow:hidden;box-shadow:inset 0 0 4px #0003}.pupil{width:6px;height:6px;background:#111;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);animation:look-around 4s infinite ease-in-out;transition:transform .2s cubic-bezier(.175,.885,.32,1.275)}.live-counter-box:hover .pupil,.live-counter-box:active .pupil,.live-counter-box.reacting .pupil{transform:translate(-50%,-50%) scale(1.6);background:#000;animation-play-state:paused}@keyframes look-around{0%,to{transform:translate(-80%,-50%)}25%{transform:translate(-50%,-80%)}50%{transform:translate(10%,-50%)}75%{transform:translate(-50%,10%)}}.live-content{width:100%}.live-status-text{color:#ffffffe6;font-family:Manrope,sans-serif;font-size:.85rem;font-weight:500;line-height:1.4;margin:0;letter-spacing:.01em;text-align:left}.count-highlight{color:#7fffb2;font-weight:800}@media (max-width: 768px){.live-counter-box{bottom:75px;right:0;padding:10px 14px;min-width:180px}.live-status-text{font-size:.75rem}}:root{--bg-color: #0a0a0f;--bg-color-alt: #0d0d12;--bg-color-card: #0f1117;--header-bg: rgba(10, 10, 15, .85);--header-bg-solid: rgba(10, 10, 15, .98);--float-bg: rgba(15, 15, 20, .95);--text-color: #e8e6df;--text-muted: rgba(232, 230, 223, .55);--text-subtle: rgba(232, 230, 223, .35);--accent-color: #7fffb2;--accent-hover: #5ee89a;--accent-soft: rgba(127, 255, 178, .08);--accent-border: rgba(127, 255, 178, .2);--border-color: rgba(255, 255, 255, .06);--code-comment: #6e7a8a;--code-keyword: #7fffb2;--code-key: #e8e6df;--code-string: #ff9966;--code-literal: #7fffb2}[data-theme=light]{--bg-color: #f7f7f5;--bg-color-alt: #ffffff;--bg-color-card: #ffffff;--header-bg: rgba(255, 255, 255, .85);--header-bg-solid: rgba(255, 255, 255, .98);--float-bg: rgba(255, 255, 255, .95);--text-color: #1a1a24;--text-muted: rgba(26, 26, 36, .65);--text-subtle: rgba(26, 26, 36, .45);--accent-color: #00ab55;--accent-hover: #008a45;--accent-soft: rgba(0, 171, 85, .1);--accent-border: rgba(0, 171, 85, .3);--border-color: rgba(0, 0, 0, .08);--code-comment: #767676;--code-keyword: #00ab55;--code-key: #1a1a24;--code-string: #c65a09;--code-literal: #005cc5}*{box-sizing:border-box;margin:0;padding:0}*{cursor:none!important}html,body,button,input,textarea,select{font-family:Nanum Gothic,sans-serif}body{background-color:var(--bg-color);color:var(--text-color);overflow-x:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--accent-color);border-radius:4px}.root-layout{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:Nanum Gothic,sans-serif;font-weight:700}button{font-family:inherit;transition:all .25s}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.proj-card:hover{transform:translateY(-8px)!important;box-shadow:0 24px 60px #00000080!important}.skill-card:hover{border-color:#7fffb24d!important;transform:translateY(-4px)!important}.hire-cta:hover{background:var(--accent-color)!important;color:var(--bg-color)!important}.btn-primary:hover{background:var(--accent-hover)!important;transform:translateY(-2px)}.btn-outline:hover{border-color:var(--text-muted)!important}input:focus,textarea:focus{border-color:var(--accent-color)!important}.footer-link:hover{color:var(--accent-color)!important}
