*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;background-color:#0a0a1a}body,html{overflow-x:hidden}body{font-family:var(--font-noto-sans-kr),sans-serif;background:linear-gradient(135deg,#0a0a1a,#121221);color:#e8e8f0;position:relative}body.modal-open,html.modal-open{overflow:hidden!important;height:100%!important;touch-action:none}body.modal-open #header,html.modal-open #header{display:none!important}body:before{content:"";left:0;height:100%;background:radial-gradient(circle 300px at var(--mouse-x,50%) var(--mouse-y,50%),rgba(0,85,255,.15),transparent 60%);pointer-events:none;z-index:1;opacity:1;transition:opacity .3s ease}#header,body:before{position:fixed;top:0;width:100%}#header{z-index:100;padding:20px 5%;display:flex;justify-content:space-between;align-items:center;transition:all .3s ease;background:linear-gradient(135deg,#0a0a1a,#121221);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#header.scrolled{background:rgba(10,10,26,.95);box-shadow:0 2px 20px rgba(0,0,0,.3)}.logo{font-size:20px;font-weight:900;color:#05f;text-decoration:none;z-index:2}.nav-links{display:flex;list-style:none;gap:32px;align-items:center;z-index:2}.nav-links a{color:#e8e8f0;text-decoration:none;font-weight:500;transition:color .3s;position:relative;padding-bottom:4px}.nav-links a:hover{color:#05f}.nav-links a.active{color:#007bff}.nav-links a.active:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:#007bff;border-radius:2px}.nav-links a:focus-visible{outline:2px solid #007bff;outline-offset:4px;border-radius:4px}.nav-links a.btn-contact{background:linear-gradient(70deg,#1a25b5,#0b41f2);padding:10px 24px;border-radius:30px;color:#fff!important;display:flex;align-items:center;justify-content:center}.nav-links a.btn-contact.active:after{display:none}.btn-contact:hover{background:#04d}.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:101}.hamburger span{width:25px;height:3px;background:#e8e8f0;transition:.3s}#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:100px 10%;position:relative;z-index:2}.typing-container h1{font-size:48px;font-weight:600;line-height:1.4;margin-bottom:20px}.typing-container h1 .thin{font-weight:400}.typing-container h1 strong{font-weight:600}.role-text{font-size:28px;display:block;margin-top:5px}#typing-text{color:#0b41f2;position:relative}#typing-text:after{content:"|";color:#fff;animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.hero-content{display:flex;align-items:center;gap:60px;width:100%;max-width:1400px}.hero-left{flex:1 1}.hero-subtitle{font-size:16px;color:#a6a6a6;margin-bottom:30px;line-height:1.8}.hero-buttons{display:flex;gap:16px;align-items:center;margin-top:30px}.btn-download{color:#fff;padding:14px 32px;border-radius:40px;box-shadow:0 0 15px #1d5ce7;text-decoration:none;font-weight:600;display:inline-block;transition:all .3s;white-space:nowrap}.btn-download,.btn-download:hover{background:linear-gradient(70deg,#1a25b5,#0b41f2)}.btn-download:hover{transform:translateY(-2px)}.social-icons{display:flex;gap:12px}.social-icons a{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;text-decoration:none;transition:all .3s}.social-icons a:hover{transform:scale(1.1)}.character-wrapper{position:relative;width:280px;height:280px;display:flex;align-items:center;justify-content:center}.character{width:100%;height:100%;border-radius:30px;object-fit:contain;z-index:2;position:relative}.character-bg{position:absolute;width:240px;height:240px;left:50%;top:50%;background:linear-gradient(70deg,#1a25b5,#0a0a1a);border-radius:30px;z-index:1;transform:translate(-50%,-50%);transform-origin:right bottom;animation:tiltBackground 2s cubic-bezier(.175,.885,.32,1.275) forwards;opacity:0}@keyframes tiltBackground{0%{transform:translate(-50%,-50%) rotate(0deg);opacity:0}to{transform:translate(-50%,-50%) rotate(45deg);opacity:1}}section{padding:100px 10%;position:relative;z-index:2}h2{font-size:28px;font-weight:700;margin-bottom:20px;background:linear-gradient(90deg,#0b41f2,#90aee4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-subtitle{color:#9999b0;margin-bottom:50px;font-size:16px;font-weight:300;line-height:1.8}#about{text-align:center}#about h2{background:none;-webkit-text-fill-color:#fff;color:#fff}.about-content{line-height:2;color:#f7f7f9;font-weight:300;font-size:16px;max-width:900px;margin:0 auto;line-height:2.4}#projects,#projects h2{text-align:center}#projects h2{background:linear-gradient(90deg,#0b41f2,#00ddeb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#projects .section-subtitle{text-align:center}.filter-tabs{display:inline-flex;gap:4px;margin:0 auto 40px;justify-content:center;flex-wrap:wrap;padding:6px;background:#000;border-radius:50px}@media (max-width:768px){.filter-tabs{flex-wrap:nowrap;overflow:visible;max-width:100%;justify-content:center;padding:10px;gap:4px;background:transparent}.filter-tabs::-webkit-scrollbar{display:none}.filter-btn{padding:6px 12px;font-size:12px;background:rgba(0,0,0,.5)}.filter-btn.active{background:#007afe}}.filter-btn{padding:10px 24px;border:none;background:transparent;color:#fff;border-radius:24px;cursor:pointer;transition:all .2s ease;font-weight:600;font-size:14px;font-family:var(--font-noto-sans-kr),sans-serif;white-space:nowrap;outline:none}.filter-btn:hover:not(.active){background:hsla(0,0%,100%,.1)}.filter-btn:focus-visible{outline:2px solid #007afe;outline-offset:2px}.filter-btn.active{background:#007afe;color:#fff}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:30px;gap:30px}.project-card{background:rgba(26,26,46,.5);border-radius:20px;overflow:hidden;transition:all .3s;border:1px solid hsla(0,0%,100%,.25);position:relative;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-8px);border-color:rgba(0,85,255,.5);box-shadow:0 10px 40px rgba(0,85,255,.2)}.project-image{width:100%;height:250px;background:#000;display:flex;align-items:center;justify-content:center;font-size:48px;color:hsla(0,0%,100%,.5);position:relative;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:cover}.project-image .view-more{position:absolute;bottom:16px;right:16px;background:hsla(0,0%,100%,.95);color:#000;padding:10px 20px;border-radius:20px;font-size:14px;font-weight:600;text-decoration:none;z-index:10;transition:all .3s;opacity:1}.project-image .view-more:hover{background:#fff;transform:scale(1.05)}.project-info{padding:24px;background:rgba(26,26,46,.8);text-align:left;flex:1 1}.project-title{font-size:28px;font-weight:700;margin-bottom:12px;color:#fff}.project-desc{color:#9999b0;font-size:14px;line-height:1.6;margin-bottom:16px}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{background:#0b205f;color:#90aee4;padding:6px 12px;border-radius:5px;font-size:12px}.view-more{color:#05f;text-decoration:none;font-weight:600;cursor:pointer;transition:color .3s}.view-more:hover{color:#05f}.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.95);align-items:center;justify-content:center;z-index:999;padding:20px}.modal.active{display:flex;z-index:2147483647}.modal-content{background:rgba(20,25,45,.98);padding:0;border-radius:32px;max-width:1000px;width:100%;position:relative;max-height:90vh;overflow-y:auto;border:1px solid hsla(0,0%,100%,.25);display:flex;flex-direction:column}.modal-content::-webkit-scrollbar{width:14px}.modal-content::-webkit-scrollbar-track{background:transparent;margin-block:20px}.modal-content::-webkit-scrollbar-thumb{background:#fff;border-radius:8px;background-clip:content-box;border:2px solid transparent}.close{position:absolute;top:30px;right:30px;font-size:32px;cursor:pointer;color:#666;transition:color .3s;z-index:10;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:hsla(0,0%,100%,.05)}.close:hover{color:#fff;background:hsla(0,0%,100%,.1)}.modal-title{font-size:28px;margin-bottom:8px;font-weight:700;color:#fff;padding:0 40px;background:none;-webkit-text-fill-color:#fff;text-align:left!important}.modal-subtitle{color:#9999b0;margin-bottom:20px;font-size:14px;line-height:1.6;padding:0 40px;text-align:left}.modal-images{width:100%;height:45vh;margin-bottom:24px;position:relative;display:flex;overflow:hidden;background:#000;flex-shrink:0}.modal-images::-webkit-scrollbar{display:none}.modal-image{min-width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:120px;color:hsla(0,0%,100%,.3);background:linear-gradient(135deg,#0a0a1a,#1a1a2e);transition:transform .3s ease-out}.modal-image img{width:100%;height:100%;object-fit:contain}.image-dots{display:flex;gap:10px;justify-content:center;margin-bottom:30px}.image-dot{width:10px;height:10px;border-radius:50%;background:hsla(0,0%,100%,.2);cursor:pointer;transition:all .3s}.image-dot.active{background:#007bff;width:32px;border-radius:5px}.modal-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px;padding:0 40px}.modal-tags span{background:#0b205f;color:#90aee4;padding:8px 16px;border-radius:10px;font-size:14px;border:none;font-weight:500}.modal-description{color:#d3d3d3;line-height:24px;font-size:16px;padding:0 40px 40px;text-align:left}#experience{padding-bottom:50px}.experience-activities-container{display:grid;grid-template-columns:1fr 1fr;grid-gap:60px;gap:60px;align-items:start}.section-column h2{font-weight:700;margin-bottom:40px;background:linear-gradient(90deg,#0b41f2,#00ddeb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.timeline{position:relative}.timeline:before{display:none}.timeline-item{margin-bottom:40px;position:relative;background:hsla(0,0%,100%,.03);padding:24px;border-radius:16px;transition:all .3s}.timeline-item>div:first-of-type{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.timeline-item:hover{transform:none}.timeline-item:before{display:none}.timeline-date{color:#9999b0;font-size:14px;line-height:1.6;margin-bottom:8px}.timeline-title{font-size:18px;font-weight:700;margin-bottom:8px}.timeline-desc{color:#9999b0;line-height:1.8}.activities-grid{display:flex;flex-direction:column;gap:24px}.activity-card{background:hsla(0,0%,100%,.03);padding:24px;border-radius:16px;transition:all .3s}.activity-card:hover{transform:none}.activity-title{font-size:18px;font-weight:700;margin-bottom:8px}.activity-desc{color:#9999b0;font-size:14px;line-height:1.6}.skills-container{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:40px;gap:40px}.skill-group h3{font-size:20px;margin-bottom:20px;color:#e8e8f0;font-weight:700}.skill-group .tags{flex-direction:column;align-items:flex-start;gap:10px}.skill-group .tags span{background:hsla(0,0%,100%,.05);color:#e8e8f0;padding:12px 20px;border-radius:12px;width:100%;transition:all .3s;text-align:center;display:flex;margin-bottom:18px;align-items:center;justify-content:center}.skill-group .tags span:before{content:"✦ ";margin-right:8px}.skill-group .tags span:hover{background:hsla(0,0%,100%,.05)}.references-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:30px;gap:30px}.reference-card{background:hsla(0,0%,100%,.03);padding:32px;border-radius:16px}.reference-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}.reference-logo{width:60px;height:60px;display:flex;align-items:center;justify-content:center;font-weight:900;color:#05f;font-size:20px}.reference-author{font-weight:700;color:#fff;margin-bottom:4px}.reference-text{color:#c8c8d8;line-height:1.8;font-size:14px}#contact{padding:100px 10%}.contact-container{display:grid;grid-template-columns:1fr 1.2fr;grid-gap:80px;gap:80px;align-items:start}.contact-left h2{font-size:28px;font-weight:700;margin-bottom:20px;background:linear-gradient(90deg,#0b41f2,#00ddeb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.contact-left h3{font-size:24px;font-weight:700;margin-bottom:16px;color:#e8e8f0}.contact-left p{color:#9999b0;line-height:1.8;font-size:15px}.contact-highlight{color:#fff;font-weight:600}.contact-right h3{font-size:24px;font-weight:700;margin-bottom:24px;color:#e8e8f0}#contactForm{max-width:100%}#contactForm input,#contactForm textarea{width:100%;padding:16px;margin-bottom:16px;background:hsla(0,0%,100%,.05);border-radius:12px;color:#fff;font-family:var(--font-noto-sans-kr),sans-serif;font-size:15px;border:none}#contactForm input::placeholder,#contactForm textarea::placeholder{color:#666680}#contactForm textarea{min-height:150px;resize:vertical}#contactForm button{width:100%;padding:16px;background:#05f;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s}#contactForm button:hover{background:#04d}#footer{text-align:center;padding:60px 10% 40px;border-top:1px solid hsla(0,0%,100%,.1);color:#666680;background:#000}.footer-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}.footer-left{text-align:left}.footer-logo{font-size:18px;font-weight:900;color:#05f;margin-bottom:12px}.footer-left p{font-size:13px;line-height:1.8;color:#666680}.footer-highlight{color:#fff}.footer-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.footer-copyright{font-size:13px;color:#666680}.footer-social{display:flex;gap:12px;align-items:center;justify-content:center}@media (max-width:1024px){.skills-container{grid-template-columns:repeat(2,1fr)}.contact-container,.experience-activities-container{grid-template-columns:1fr;gap:40px}.references-grid{grid-template-columns:1fr}}@media (max-width:768px){.hamburger{display:flex}.nav-links{position:fixed;top:0;right:-100%;width:70%;height:100vh;background:rgba(10,10,26,.98);flex-direction:column;justify-content:center;transition:.3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-links.active{right:0}.hero-content{flex-direction:column-reverse;text-align:center;gap:40px}.hero-buttons{justify-content:center}.typing-container h1{font-size:36px}.role-text{font-size:20px}.footer-content{flex-direction:column;gap:30px}.footer-content,.footer-left{text-align:center}.footer-right{align-items:center}.skills-container{grid-template-columns:1fr}.modal{position:fixed;top:0;left:0;height:100dvh;z-index:2147483647;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:none;padding:0}.modal,.modal-content{width:100%;min-height:100%;background:#0a0a1a;margin:0}.modal-content{padding:20px 20px 80px;border-radius:0;border:none;box-shadow:none;overflow:visible;height:auto}.close{position:fixed;top:20px;right:20px;z-index:10000;background:rgba(0,0,0,.5);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.modal-description{max-height:none;overflow:visible}.modal-title{font-size:24px;color:#fff!important;background:none!important;-webkit-text-fill-color:#fff!important}.footer-social img{width:24px;height:24px}.footer-highlight{white-space:nowrap;font-size:11px;display:block;letter-spacing:-.5px;margin-bottom:2px}.footer-left p{line-height:1.4}.footer-left p br{display:none}.footer-copyright{font-size:10px;color:#666680}.hero-subtitle{font-size:14px;line-height:1.6}.about-content,.hero-subtitle{word-break:keep-all;padding:0 20px}.about-content{font-size:16px;line-height:1.8;color:#9999b0;font-weight:300}#header{position:fixed;top:0;left:0;width:100%;background:rgba(10,10,26,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}