body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body,html{background-color:#0a0a0a;color-scheme:dark;overscroll-behavior:none;scroll-behavior:smooth}.home{width:100vw}.background{background-position:50%;background-size:cover;height:100%;position:absolute;top:0;width:50%;z-index:0}.modeling-bg{background-color:#fff;left:0}.software-bg{background-color:#0a0a0a;overflow:hidden;right:0}.cta-container{justify-content:space-between;max-width:900px;position:relative;width:80%;z-index:2}.cta-text{font-size:3rem;font-weight:500;transition:transform .4s ease,color .4s ease;-webkit-user-select:none;user-select:none}.cta-text:hover{transform:scale(1.08)}.modeling-text{color:#000}.modeling-text:hover{color:#333}.software-text{color:#fff!important;text-shadow:0 0 12px #cbc3e366}.software-text:hover{color:#fff}.left-text{text-align:left}.divider-full-vertical{align-self:stretch;background:linear-gradient(180deg,#666,#0000);height:100%;margin:0 20px;width:2px;z-index:1}.home{animation:fadeIn 1.2s ease forwards}.particles-wrapper{inset:0;overflow:hidden;position:absolute;z-index:0}.particles-wrapper canvas{height:100%;left:0;opacity:.6;pointer-events:none;position:absolute;top:0;width:100%}.home{background-color:#fff;height:100vh;overflow:hidden;position:relative}.cta-container,.home{align-items:center;display:flex;justify-content:center}.cta-container{gap:4rem;text-align:center;z-index:1}.cta-text{background:none;border:none;color:#111;cursor:pointer;font-family:Poppins,sans-serif;font-size:2.5rem;font-weight:300;outline:none;transition:all .3s ease}.cta-text:hover{color:#000;transform:translateY(-4px)}.divider-full-vertical{background:linear-gradient(180deg,#000000d9,#0003);border-radius:2px;height:100vh;left:50%;position:fixed;top:0;transform:translateX(-50%) scaleY(1);transform-origin:center;width:1px;z-index:0}.software-page.dark{--bg:#111;--bg-elev:#161616;--text:#e9e9e9;--muted:#bdbdbd;--accent:#ff5c7c;--brand:#7aa5ff;background:var(--bg);color:var(--text);min-height:100vh}.hero-particles-canvas{inset:0;opacity:.6;position:absolute}.hero-inner{padding:0 1rem}.hero-title{font-family:Poppins,sans-serif;letter-spacing:.3px;margin:0 0 .5rem}.accent{color:var(--accent)}.hero-subtitle{font-size:clamp(1.1rem,2vw,1.6rem);margin:0 0 1.5rem}.hero-cta,.hero-subtitle{font-family:Inter,sans-serif}.hero-cta{border:2px solid var(--accent);border-radius:10px;cursor:pointer;font-size:1rem;padding:10px 18px}.hero-cta:hover{background:var(--accent)}.hero-cta.ghost{border-color:var(--brand)}.hero-cta.ghost:hover{background:var(--brand);color:#111}.arrow{margin-left:6px}.about-section-v2{background:var(--bg);padding:80px 6vw}.section-heading{font-family:Poppins,sans-serif;font-size:clamp(1.6rem,4vw,2.4rem);margin:0 auto 28px;position:relative;width:-webkit-fit-content;width:fit-content}.section-heading span{border-radius:4px;box-shadow:inset 0 -10px 0 #ff5c7c59}.about-grid{grid-gap:48px;align-items:start;display:grid;gap:48px;grid-template-columns:1.2fr 1fr;margin:0 auto;max-width:1100px}@media (max-width:900px){.about-grid{grid-template-columns:1fr}}.about-left{grid-gap:24px;display:grid;gap:24px;grid-template-columns:220px 1fr}@media (max-width:900px){.about-left{grid-template-columns:1fr;justify-items:center;text-align:center}}.avatar-outline{display:block}.about-blurb{color:var(--muted);font-family:Inter,sans-serif;font-size:1.05rem;line-height:1.7}.about-right{display:flex;justify-content:center}.tech-list{grid-gap:12px 18px;display:grid;gap:12px 18px;grid-template-columns:repeat(2,minmax(160px,1fr));list-style:none;margin:0;padding:0}.tech-list li{background:var(--bg-elev);border:1px solid #ffffff1f;border-radius:10px;color:var(--text);font-family:Inter,sans-serif;font-size:.95rem;padding:10px 12px}.projects-section{padding:90px 6vw 120px}.project-row{grid-gap:36px;align-items:center;display:grid;gap:36px;grid-template-columns:1.2fr 1fr;margin:42px auto;max-width:1200px}.project-row.reverse{grid-template-columns:1fr 1.2fr}@media (max-width:1000px){.project-row,.project-row.reverse{grid-template-columns:1fr}}.project-shot{background:#0d0d0d;border-radius:14px;box-shadow:0 8px 30px #00000059;display:block;width:100%}.project-copy h3{font-family:Poppins,sans-serif;font-size:clamp(1.3rem,3vw,1.8rem);margin:0 0 10px}.project-copy p{color:var(--muted);font-family:Inter,sans-serif;line-height:1.7;margin:0 0 14px}.project-links a{border-bottom:1px solid #9ec3ff80;color:#9ec3ff;padding-bottom:2px;text-decoration:none}.project-links a:hover{border-bottom-color:#cfe1ff;color:#cfe1ff}.center-btn{display:grid;margin-top:24px;place-items:center}.pong-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}.pong-modal-content{height:500px;width:700px}.close-btn{font-size:1.3rem;right:12px;top:10px;z-index:2}.back-btn{background:none;border:2px solid #000;border-radius:30px;color:#000;cursor:pointer;font-size:1rem;margin-top:40px;padding:10px 20px;transition:all .3s ease}.back-btn:hover{background-color:#000;color:#fff}:root{--accent-color:#5e548e;--lav:#cbc3e3;--pink:#f4a9e2;--blue:#6c63ff}.software-page--dark{--bg:#111;--text:#ececec;--muted:#bdbdbd;background:var(--bg);color:var(--text)}.hero-section{display:grid;height:100vh;overflow:hidden;place-items:center;position:relative}.hero-particles-canvas{height:100%;left:0;opacity:.45;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.hero-inner{position:relative;text-align:center;z-index:1}.hero-title{font-size:clamp(2.2rem,6vw,4.2rem);font-weight:600}.accent{color:#cbc3e3;color:var(--lav)}.hero-subtitle{color:var(--muted);margin:.8rem 0 1.4rem}.hero-cta{background:#0000;border:2px solid #cbc3e3;border:2px solid var(--lav);border-radius:8px;color:var(--text);padding:10px 20px;transition:.25s ease}.hero-cta:hover{background:#cbc3e3;background:var(--lav);color:#111}.section-heading span:after{background:#ff4d6d;bottom:0;height:.35em}.section-heading span{position:relative;z-index:1}.section-heading span:after{background:#5e548e;background:var(--accent-color);border-radius:4px;bottom:.25rem;content:"";height:.5em;left:0;position:absolute;width:100%;z-index:-1}.about-section{background:var(--bg);padding:80px 8vw}.about-blurb{color:#fff;font-size:1.35rem;line-height:1.8;margin:0 auto;max-width:850px;opacity:.9;text-align:center}.skills-section{align-items:flex-start;display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;padding:100px 8vw}.skills-left{flex:1 1;min-width:260px}.skills-about-text{color:var(--muted);line-height:1.7;max-width:380px;text-align:left}.skills-right{flex:2 1;margin-top:80px;width:100%}.skills-columns,.skills-right{display:flex;justify-content:flex-end}.skills-columns{align-items:flex-start;gap:60px;margin-top:40px}.skills-col{align-items:center;display:flex;flex-direction:column;gap:35px}.skills-col:nth-child(2){margin-top:-120px}.skills-col:first-child{animation:fadeInCols .7s ease-out .1s both}.skills-col:nth-child(2){animation:fadeInCols .7s ease-out .3s both}.skills-col:nth-child(3){animation:fadeInCols .7s ease-out .5s both}@keyframes fadeInCols{0%{opacity:0}to{opacity:1}}.skill-card{align-items:center;background:linear-gradient(160deg,#5e548e40,#cbc3e31f);border:2px solid #0000;border-radius:16px;box-sizing:border-box;display:flex;flex-direction:column;height:150px;justify-content:center;overflow:hidden;padding:24px 20px;position:relative;text-align:center;transition:all .4s ease;width:150px}.skill-card:before{animation:borderFlow 8s ease infinite;background:linear-gradient(145deg,#cbc3e3,#f4a9e2,#6c63ff,#cbc3e3);background:linear-gradient(145deg,var(--lav),var(--pink),var(--blue),var(--lav));background-size:400% 400%;border-radius:16px;content:"";inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:2px;pointer-events:none;position:absolute}@keyframes borderFlow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.skill-card:hover:before{animation:borderFlowFast 3s linear infinite}@keyframes borderFlowFast{0%{background-position:0 50%;filter:brightness(1.1)}50%{background-position:100% 50%;filter:brightness(1.4)}to{background-position:0 50%;filter:brightness(1.1)}}.skill-card:hover{background:linear-gradient(160deg,#cbc3e340,#5e548e40);box-shadow:0 12px 38px #cbc3e359;transform:translateY(-8px)}.skill-inner{display:grid;height:70px;place-items:center}.skill-icon{height:60px;object-fit:contain;width:60px}.skill-label{color:var(--text);font-size:1rem;margin-top:10px}@media (max-width:950px){.skills-section{align-items:center;flex-direction:column}.skills-left,.skills-section{text-align:center}.skills-columns,.skills-right{justify-content:center}.skills-columns{gap:40px;margin-top:30px}.skills-col{gap:25px}.skills-col:nth-child(2){margin-top:0}.skill-card{height:120px;width:120px}}.projects-section{background:var(--bg);padding:100px 8vw}.project-card{align-items:center;animation:fadeInProject 1.2s ease-out both;display:flex;flex-wrap:wrap;gap:60px;justify-content:space-between;margin-top:80px}@keyframes fadeInProject{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.project-image{background:#201f26;border-radius:12px;box-shadow:0 0 40px #cbc3e326;flex:1.2 1;max-width:640px;overflow:hidden;transition:transform .4s ease,box-shadow .4s ease}.project-image img{border-radius:8px;display:block;height:auto;width:100%}.project-image:hover{box-shadow:0 0 55px #cbc3e34d;transform:scale(1.02)}.project-info{color:var(--text);display:flex;flex:1 1;flex-direction:column;justify-content:center}.project-title{color:var(--text);font-size:1.8rem;font-weight:600;margin-bottom:10px}.project-desc{color:var(--muted);font-size:1rem;line-height:1.6;margin-bottom:20px;max-width:500px}.project-links{display:flex;gap:24px}.project-link{color:#cbc3e3;color:var(--lav);font-weight:600;letter-spacing:1px;position:relative;text-decoration:none;transition:color .3s ease}.project-link:after{background:#cbc3e3;background:var(--lav);bottom:-6px;content:"";height:2px;left:0;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .3s ease;width:100%}.project-link:hover{color:#fff}.project-link:hover:after{transform:scaleX(1)}@media (max-width:950px){.project-card{flex-direction:column;text-align:center}.project-image{max-width:100%}.project-info{align-items:center;margin-top:30px}.project-title{font-size:1.6rem}.project-desc{max-width:90%}}.pong-modal{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0fbf;height:100vh;inset:0;position:fixed;width:100vw;z-index:9999}.pong-modal,.pong-modal-content{align-items:center;display:flex;justify-content:center}.pong-modal-content{background:#111;border:2px solid #cbc3e3;border-radius:10px;box-shadow:0 0 25px #cbc3e366;height:400px;overflow:hidden;position:relative;width:600px}.pong-frame{border:none;height:100%;width:100%}.close-btn{background:none;border:none;color:#cbc3e3;cursor:pointer;font-size:1.5rem;position:absolute;right:16px;top:12px;transition:color .2s ease;z-index:10}.close-btn:hover{color:#fff}.play-btn{background:#0000;border:2px solid #cbc3e3;border-radius:6px;color:#cbc3e3;cursor:pointer;font-weight:600;padding:10px 22px;transition:all .3s ease}.play-btn:hover{background:#cbc3e3;color:#0a0a0a}.section-heading span:after,.section-heading:after{background:linear-gradient(90deg,#ff4d6d,#ff1e56)!important}.sticky-nav{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#00000059;border-bottom:1px solid #ffffff14;display:grid;height:56px;left:0;opacity:0;place-items:center;pointer-events:none;position:fixed;right:0;top:0;transform:translateY(-10px);transition:opacity .3s ease,transform .3s ease;z-index:999}.sticky-nav.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-inner{align-items:center;display:flex;gap:24px;justify-content:flex-end;width:min(1100px,92%)}.nav-inner button{background:#0000;border:none;color:#eaeaea;cursor:pointer;font-size:1rem;font-weight:500;letter-spacing:.4px;transition:color .2s ease}.nav-inner button:hover{color:#009ffd}.contact-section{background-color:#0a0a0a;border-top:1px solid #333;color:#fff;padding:100px 8vw;text-align:center}.contact-form{display:flex;flex-direction:column;gap:15px;margin:0 auto;max-width:520px}.contact-form input,.contact-form textarea{background:#1a1a1a;border:1px solid #333;border-radius:8px;color:#fff;font-family:inherit;font-size:1rem;padding:12px;transition:border-color .3s ease}.contact-form input:focus,.contact-form textarea:focus{border-color:#cbc3e3;border-color:var(--lav);outline:none}.contact-form button{background-color:#cbc3e3;background-color:var(--lav);border:none;border-radius:8px;color:#111;cursor:pointer;font-weight:600;padding:12px;transition:.3s}.contact-form button:hover{background-color:#fff;color:#111}.form-status{color:var(--muted);font-size:.9rem;margin-top:10px}.resume-overlay{align-items:center;animation:fadeIn .25s ease-out;-webkit-backdrop-filter:blur(18px) brightness(.55);backdrop-filter:blur(18px) brightness(.55);background:#00000073;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:9999}.resume-modal{animation:scaleIn .25s ease-out;background:#ffffffeb;border-radius:14px;box-shadow:0 8px 32px #00000047;max-width:820px;padding:22px;width:90%}.resume-frame{border:none;border-radius:10px;height:75vh;width:100%}.resume-actions{display:flex;gap:16px;justify-content:center;margin-top:16px}.resume-btn,.resume-close,.resume-download{background:#ff4d6d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:10px 20px;transition:.2s}.resume-btn:hover,.resume-close:hover,.resume-download:hover{background:#ff6f85;transform:scale(1.05)}@media (max-width:768px){.resume-frame{height:65vh}.resume-actions{flex-direction:column}}@keyframes scaleIn{0%{transform:scale(.94)}to{transform:scale(1)}}.modelling-bg-container{background-color:#000;height:100vh;overflow:hidden;position:relative;width:100vw}.modelling-video{height:100%;left:0;object-fit:cover;opacity:0;position:fixed;top:0;transform:scale(1);transition:opacity .6s ease-in-out,transform 6s ease-in-out;width:100%;z-index:0}.fade-in{opacity:1;transform:scale(1.04)}.fade-out{opacity:0;transform:scale(1.08)}.card{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe0;border-radius:14px;bottom:30px;box-shadow:0 4px 18px #0000002e;display:flex;flex-direction:column;height:300px;padding:10px 14px;position:absolute;text-align:center;transition:transform .3s ease-in-out;width:210px;z-index:5}.ssense-card{left:30px}.korea-card{right:30px}.card-title{color:#000;font-size:1rem;font-weight:600;letter-spacing:.06rem;margin:0}.ssense-font{font-family:Helvetica Neue,Arial,sans-serif;font-weight:600;letter-spacing:.08rem;text-transform:uppercase}.card-subtitle{color:#444;font-size:.8rem;margin-top:2px}.card-image{animation:fadeIn .8s ease-in-out forwards;background-color:#fff;border-radius:12px;height:200px;margin-top:8px;object-fit:contain;opacity:0;width:100%}@keyframes fadeIn{0%{opacity:0;transform:scale(1.01)}to{opacity:1;transform:scale(1)}}@media (max-width:768px){.card{bottom:28px;height:260px;max-width:180px;padding:10px;width:38vw}.ssense-card{left:6vw;right:auto}.korea-card{left:auto;right:6vw}.card-image{height:150px}.card-title{font-size:.85rem}.card-subtitle{font-size:.7rem}.footer-text{bottom:22vh;font-size:.75rem;line-height:1.25;pointer-events:none;text-shadow:0 0 6px #00000073;width:80vw}.back-button{left:12px;top:12px;transform:scale(.9)}}.footer-text{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);bottom:18px;font-family:Cormorant Garamond,Playfair Display,serif;font-size:1rem;left:50%;letter-spacing:.03em;line-height:1.4;opacity:.95;text-align:center;transform:translateX(-50%);z-index:5}.back-button,.footer-text{color:#fff;font-weight:500;position:absolute}.back-button{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000008c;border:1.8px solid #fffc;border-radius:10px;box-shadow:0 2px 6px #00000026;cursor:pointer;display:flex;font-size:.95rem;gap:6px;left:18px;padding:8px 14px;top:18px;transition:all .3s ease;z-index:10}.back-button:hover{background:#ffffff26;border-color:#fff;transform:scale(1.03)}
/*# sourceMappingURL=main.34931c61.css.map*/