:root{--color-primary:#2563eb;--color-secondary:#f8fafc;--color-accent:#ec4899;--color-text:#1e293b;--color-text-light:#64748b;--color-text-lighter:#94a3b8;--color-white:#fff;--color-gray:#f1f5f9;--color-dark:#0f172a;--color-soft-gray:#9ca3af;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Monaco", "Menlo", monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-size-6xl:3.75rem;--font-size-7xl:4.5rem;--font-size-8xl:6rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--spacing-4xl:6rem;--spacing-5xl:8rem;--border-radius:0.5rem;--border-radius-lg:1rem;--border-radius-xl:1.5rem;--transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);--shadow:0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);--shadow-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;overflow-x:hidden}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;min-height:101vh!important;color:var(--color-text);background-color:var(--color-white);cursor:none;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}body::-webkit-scrollbar{display:none}a{cursor:none}a:focus,button:focus,input:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px}.hn{color:var(--color-primary);font-weight:600}.awc{color:var(--color-accent);font-weight:400}.com{color:var(--color-text-lighter);font-weight:400}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.section{padding:var(--spacing-5xl) 0;min-height:100vh;display:flex;align-items:center}.section-header{text-align:center;margin-bottom:var(--spacing-4xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;color:var(--color-text)}.section-subtitle{font-size:var(--font-size-lg);color:var(--color-text-light);max-width:600px;margin:0 auto}.nav{position:fixed;top:0;left:0;width:100%;background-color:hsl(0 0% 100% / .95);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-gray);z-index:10000;transition:var(--transition)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo{font-size:var(--font-size-xl);font-weight:600;text-decoration:none;transition:var(--transition)}.nav-logo:hover{transform:translateY(-1px)}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl)}.nav-link{position:relative;text-decoration:none;color:var(--color-text);font-weight:500;transition:var(--transition);padding:var(--spacing-sm) 0}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--color-primary);transition:width 0.3s ease}.nav-link.active:after,.nav-link:hover:after{width:100%}.nav-toggle{display:none;flex-direction:column;background:none;border:none;cursor:none;padding:var(--spacing-sm)}.nav-toggle span{width:25px;height:2px;background-color:var(--color-text);margin:3px 0;transition:var(--transition)}.hero{background-color:var(--color-white);padding-top:100px;position:relative}.hero-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-8xl);font-weight:800;line-height:1.1;margin-bottom:var(--spacing-lg);position:relative;overflow:hidden}.name-container{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.name-row{display:block;position:relative;opacity:0;transform:translateY(100px) rotateX(90deg);transition:all 1s cubic-bezier(.175,.885,.32,1.275);transform-origin:center bottom}.name-row.animate{opacity:1;transform:translateY(0) rotateX(0deg)}.name-row.henry{color:var(--color-primary);animation-delay:0.5s}.name-row.nugraha{color:var(--color-soft-gray);animation-delay:1.2s}.name-letter{display:inline-block;opacity:0;transform:translateY(50px) rotateX(45deg);transition:all 0.6s cubic-bezier(.175,.885,.32,1.275);transform-origin:center bottom}.name-letter.animate{opacity:1;transform:translateY(0) rotateX(0deg)}.name-bg{position:absolute;top:-10px;left:-20px;width:calc(100% + 40px);height:calc(100% + 20px);background:linear-gradient(45deg,rgb(37 99 235 / .1),rgb(156 163 175 / .1),rgb(37 99 235 / .1));background-size:400% 400%;animation:morphBackground 4s ease-in-out infinite;border-radius:var(--border-radius-lg);z-index:-1;opacity:0;transition:opacity 0.5s ease}.name-container:hover .name-bg{opacity:1}.hero-subtitle{font-size:var(--font-size-xl);color:var(--color-text-light);max-width:600px;margin:0 auto;opacity:0;transform:translateY(30px);animation:slideUpFade 1s ease forwards;animation-delay:2.5s}.hero-description{font-size:var(--font-size-lg);color:var(--color-text-lighter);max-width:500px;min-height:64px;margin:0 auto;opacity:0;transform:translateY(30px);animation:slideUpFade 1s ease forwards;animation-delay:3s}.about{background-color:var(--color-white);padding-top:100px}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4xl);align-items:center}.about-description{margin-left:0}.about-text{display:flex;flex-direction:column;gap:var(--spacing-lg)}.about-text h3{font-size:var(--font-size-4xl);margin-bottom:-4px;color:var(--color-text)}.about-text h4{font-size:var(--font-size-lg);color:var(--color-text-light);font-style:italic;font-weight:400}.about-text .signature{font-size:var(--font-size-xs);font-weight:light;color:var(--color-text-lighter);margin-bottom:var(--spacing-md)}.about-text strong{font-size:var(--font-size-xl);color:var(--color-text-light);line-height:1.7;margin-bottom:var(--spacing-xs)}.about-text sup{font-size:var(--font-size-xs);font-weight:400}.about-text p,.about-text ul{font-size:var(--font-size-lg);color:var(--color-text-light);line-height:1.7;margin-bottom:var(--spacing-md)}.about-text ul{margin-left:var(--spacing-lg)}.about-text .footnote-line{width:40%;border:none;border-top:1px solid var(--color-dark);margin:var(--spacing-xl) auto var(--spacing-sm) var(--spacing-xs)}.about-text .footnote-text{font-size:var(--font-size-xs);color:var(--color-text-lighter);line-height:1.3;margin-bottom:var(--spacing-sm);font-weight:light}.about-text .footnote-text a{cursor:none}.about-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.stat-item{text-align:center;padding:var(--spacing-lg);background:var(--color-gray);border-radius:var(--border-radius-lg);transition:var(--transition)}.stat-item:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.stat-number{font-size:var(--font-size-3xl);font-weight:700;color:var(--color-primary);display:block}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-light);margin-top:var(--spacing-xs)}.about-skills{display:flex;flex-direction:column;gap:var(--spacing-lg)}.skills-category h4{font-size:var(--font-size-lg);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-md);color:var(--color-text)}.skills-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.skill-tag{background:var(--color-primary);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;transition:var(--transition);color:var(--color-white)}.skill-tag a{color:var(--color-white);text-decoration:none;cursor:none}.skill-tag:hover{transform:translateY(-2px);background:var(--color-accent)}.skill-tag.secondary{background:var(--color-accent)}.skill-tag.secondary:hover{background:var(--color-primary)}.about-visual{position:relative;display:flex;justify-content:center;align-items:center}.visual-container{position:relative;width:400px;height:400px}.visual-circle{position:absolute;border-radius:50%;border:2px solid;animation:rotate 20s linear infinite}.visual-circle:first-child{width:100%;height:100%;border-color:rgb(37 99 235 / .2);animation-duration:20s}.visual-circle:nth-child(2){width:80%;height:80%;top:10%;left:10%;border-color:rgb(236 72 153 / .2);animation-duration:15s;animation-direction:reverse}.visual-circle:nth-child(3){width:60%;height:60%;top:20%;left:20%;border-color:rgb(148 163 184 / .2);animation-duration:10s}.visual-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1250%;font-weight:700;color:var(--color-white);box-shadow:var(--shadow-lg)}.floating-elements{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.floating-element{position:absolute;width:20px;height:20px;background:var(--color-primary);border-radius:50%;opacity:.1;animation:float 6s ease-in-out infinite}.floating-element:first-child{top:20%;left:10%;animation-delay:0s}.floating-element:nth-child(2){top:60%;right:15%;animation-delay:2s;background:var(--color-accent)}.floating-element:nth-child(3){bottom:30%;left:20%;animation-delay:4s;background:var(--color-text-lighter)}.contact{background-color:var(--color-white);padding-top:100px}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4xl);align-items:center;min-height:70vh}.contact-visual{position:relative;width:100%;height:500px;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border-radius:var(--border-radius-xl);overflow:hidden;display:flex;align-items:center;justify-content:center}.connection-network{position:relative;width:100%;height:100%}.network-node{position:absolute;width:12px;height:12px;background:hsl(0 0% 100% / .8);border-radius:50%;animation:pulse 2s ease-in-out infinite}.network-node:first-child{top:20%;left:15%;animation-delay:0s}.network-node:nth-child(2){top:30%;left:70%;animation-delay:0.5s}.network-node:nth-child(3){top:60%;left:25%;animation-delay:1s}.network-node:nth-child(4){top:70%;left:80%;animation-delay:1.5s}.network-node:nth-child(5){top:40%;left:45%;animation-delay:2s}.network-node:nth-child(6){top:80%;left:50%;animation-delay:0.3s}.network-line{position:absolute;height:1px;background:linear-gradient(90deg,hsl(0 0% 100% / .3),hsl(0 0% 100% / .1));animation:lineGlow 3s ease-in-out infinite}.network-line:nth-child(7){top:25%;left:20%;width:45%;transform:rotate(15deg);animation-delay:0.2s}.network-line:nth-child(8){top:45%;left:30%;width:35%;transform:rotate(-20deg);animation-delay:0.8s}.network-line:nth-child(9){top:65%;left:35%;width:40%;transform:rotate(25deg);animation-delay:1.2s}.central-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;background:hsl(0 0% 100% / .2);border:2px solid hsl(0 0% 100% / .5);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:centralPulse 4s ease-in-out infinite}.central-icon svg{width:40px;height:40px;stroke:hsl(0 0% 100% / .9);stroke-width:1.5}.contact-info{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.contact-header{opacity:0;transform:translateY(30px);animation:slideUpFade 1s ease forwards;animation-delay:0.3s}.contact-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-md);color:var(--color-text)}.contact-subtitle{font-size:var(--font-size-lg);color:var(--color-text-light);margin-bottom:var(--spacing-xl)}.contact-methods{display:flex;flex-direction:column;gap:var(--spacing-lg)}.contact-method{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-gray);border-radius:var(--border-radius-lg);transition:var(--transition);text-decoration:none;color:var(--color-text);opacity:0;transform:translateX(90px);animation:slideLeftFade 0.8s ease forwards;animation-delay:1.6s}.contact-method:first-child{animation-delay:0.6s}.contact-method:nth-child(2){animation-delay:0.8s}.contact-method:nth-child(3){animation-delay:1s}.contact-method:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);background:var(--color-white)}.contact-icon{width:50px;height:50px;background:var(--color-primary);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;transition:var(--transition)}.contact-method:hover .contact-icon{background:var(--color-accent);transform:scale(1.1)}.contact-icon svg{width:24px;height:24px;stroke:var(--color-white);stroke-width:2}.contact-details h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-xs);color:var(--color-text)}.contact-details p{font-size:var(--font-size-base);color:var(--color-text-light)}.availability{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background:linear-gradient(135deg,rgb(37 99 235 / .1),rgb(236 72 153 / .1));border-radius:var(--border-radius-lg);border-left:4px solid var(--color-primary);opacity:0;transform:translateY(-30px);animation:slideDownFade 1s ease forwards;animation-delay:0.5s}.availability h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--color-text)}.availability p{color:var(--color-text-light);font-size:var(--font-size-base)}.footer{background-color:var(--color-gray);color:var(--color-text);padding:var(--spacing-2xl) 0;text-align:center;z-index:10000;position:relative}.footer-content p{margin-bottom:var(--spacing-sm)}.nav-arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:1000;cursor:none;transition:var(--transition);opacity:0;visibility:hidden;animation:arrowFadeIn 2s ease forwards;animation-delay:4.5s}.nav-arrow.show{opacity:0.7s;visibility:visible}.nav-arrow:hover{opacity:1;transform:translateY(-50%) translateX(5px)}.nav-arrow.left{left:var(--spacing-xl)}.nav-arrow.right{right:var(--spacing-xl)}.nav-arrow.left:hover{transform:translateY(-50%) translateX(5px)}.nav-arrow.right:hover{transform:translateY(-50%) translateX(-5px)}.arrow-icon{width:60px;height:60px;border:2px solid var(--color-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;background:hsl(0 0% 100% / .9);backdrop-filter:blur(10px);transition:var(--transition)}.arrow-icon:hover{background:var(--color-primary);transform:scale(1.1)}.arrow-icon svg{width:24px;height:24px;stroke:var(--color-primary);transition:var(--transition)}.arrow-icon:hover svg{stroke:var(--color-white)}.swipe-indicator{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);display:none;flex-direction:column;align-items:center;gap:var(--spacing-sm);opacity:0;visibility:hidden;z-index:99999}.swipe-indicator.show{opacity:.6;visibility:visible;animation:swipeIndicatorFadeIn 3s ease forwards,pulse 3s 3s ease-in-out infinite}.swipe-text{font-size:var(--font-size-sm);color:var(--color-text-light);writing-mode:horizontal-tb;text-orientation:mixed}.swipe-line{width:40px;height:2px;background:linear-gradient(to right,var(--color-primary),var(--color-soft-gray));border-radius:1px}.swipe-area{position:fixed;top:0;left:0;width:100px;height:100vh;z-index:999;background:#fff0}.swipe-area.left{left:0}.swipe-area.right{right:0}#cursorPt{width:7px;height:7px;background:var(--color-accent);border-radius:50%;position:fixed;pointer-events:none;z-index:99999;visibility:hidden}#cursor{--color:var(--color-primary);width:30px;height:30px;position:fixed;pointer-events:none;z-index:99999;visibility:hidden;background-image:linear-gradient(90deg,var(--color) 10px,transparent 0),linear-gradient(180deg,var(--color) 10px,transparent 0),linear-gradient(270deg,var(--color) 10px,transparent 0),linear-gradient(180deg,var(--color) 10px,transparent 0),linear-gradient(90deg,var(--color) 10px,transparent 0),linear-gradient(0deg,var(--color) 10px,transparent 0),linear-gradient(270deg,var(--color) 10px,transparent 0),linear-gradient(0deg,var(--color) 10px,transparent 0);background-repeat:no-repeat;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-size:20px 2px,2px 20px,20px 2px,2px 20px,20px 2px,2px 20px,20px 2px,2px 20px}.loader{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--color-white);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity 0.3s ease}.loader-content{text-align:center;position:relative}.loader-text{font-size:var(--font-size-4xl);font-weight:600;height:80px;display:flex;align-items:center;justify-content:center;color:var(--color-text)}.loader-sequence{position:absolute;top:0;left:50%;transform:translateX(-50%);opacity:0;white-space:nowrap;transition:opacity 0.5s ease}.loader-sequence.active{opacity:1}.hello-text{color:var(--color-text)}.live-text{color:var(--color-primary)}.listen-text{color:var(--color-accent)}.learn-text{color:var(--color-text-lighter)}.fade-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--color-white);z-index:9998;opacity:0;visibility:hidden;transition:all 0.6s ease}.fade-overlay.active{opacity:1;visibility:visible}.spinner-container{position:fixed;top:70px;left:0;width:100%;height:calc(100vh - 70px);display:flex;align-items:center;justify-content:center;z-index:9999;background-color:var(--color-white);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity 0.8s ease}.spinner-container.active{opacity:1;visibility:visible}.spinner-box{width:115px;height:115px;position:relative;display:flex;justify-content:center;align-items:center}.configure-border-1{position:absolute;background:var(--color-primary);animation:configure-clockwise 3s ease-in-out 0s infinite alternate;width:115px;height:115px;padding:3px;display:flex;justify-content:center;align-items:center}.configure-border-2{left:-115px;background:var(--color-accent);transform:rotate(45deg);animation:configure-xclockwise 3s ease-in-out 0s infinite alternate;width:115px;height:115px;padding:3px;display:flex;justify-content:center;align-items:center}.configure-core{width:100%;height:100%;background-color:var(--color-white)}.barba-container{position:relative}.barba-container[data-barba="container"]{opacity:0}.card-title-link-group{display:flex;flex-direction:column;justify-content:center;min-height:40px}.card-link{margin:0;padding:0;font-size:var(--font-size-xs);font-weight:400;color:var(--color-text-lighter);line-height:1.2}.card-link a{color:inherit;text-decoration:none;display:block;transition:color 0.15s;padding-left:.5rem}.card-title-link-group a:hover,.card-title-link-group a:focus{color:var(--color-primary);text-decoration:none}.card-title-link-group a:hover .card-title,.card-title-link-group a:focus .card-title{color:var(--color-primary)}.card-title-link-group a:hover .card-link,.card-title-link-group a:focus .card-link{color:var(--color-primary)}.card-title-link-group a .card-title{color:var(--color-primary);transition:color 0.15s}.card-title-link-group a .card-link{color:var(--color-text-lighter);transition:color 0.15s}.align-icon-title .card-icon-placeholder{display:flex;height:auto;min-height:40px}.card-title-row-flex{display:flex;flex-direction:row;align-items:center;gap:1rem}.card-title-row-flex .card-icon-placeholder{margin-left:1rem;width:40px;height:40px;min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center}.card-title-row-flex .card-title{margin:0;font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary);letter-spacing:-.5px}.card-title-row-flex .card-codename{font-size:var(--font-size-xs);color:var(--color-text-lighter);font-family:var(--font-mono);font-weight:250;letter-spacing:0;text-align:right;margin-left:auto;margin-bottom:.25rem;align-self:flex-start;position:relative;top:-.35em}.card-content-flex{display:flex;flex-direction:row;align-items:flex-start;gap:1.25rem}.card-icon-placeholder{width:56px;height:56px;min-width:56px;min-height:56px;background:var(--color-gray);border-radius:.5rem;display:flex;align-items:center;justify-content:center;margin-top:.15rem;box-shadow:0 1px 4px 0 rgb(30 41 59 / .06)}.card-main{flex:1 1 0%;display:flex;flex-direction:column}@media (max-width:768px){.card-content-flex{gap:.75rem}.card-icon-placeholder{width:40px;height:40px;min-width:40px;min-height:40px}}.card-title a,.card-link a{color:inherit;text-decoration:none!important;transition:color 0.2s}.card-title a:hover,.card-title a:focus,.card-link a:hover,.card-link a:focus{color:var(--color-primary);text-decoration:none!important}.card-title a:active,.card-link a:active{color:var(--color-accent)}.card-title,.card-link{text-decoration:none!important;width:100%;gap:2rem}.card-main{display:flex;flex-direction:column;gap:.5rem;flex:1 1 auto}.card-codename{font-size:var(--font-size-sm);color:var(--color-text-lighter);font-family:var(--font-mono);font-weight:500;align-self:flex-start;margin-left:1.5rem;margin-top:.25rem;white-space:nowrap;letter-spacing:.5px}@media (max-width:768px){.card-row{flex-direction:column;gap:.5rem}.card-codename{margin-left:0;margin-top:.5rem;align-self:flex-end}}.project.section{display:block;align-items:unset}.project-content{margin-top:var(--spacing-xs);width:100%}.project-intro{margin-bottom:var(--spacing-2xl);text-align:left;width:100%}.project-grid-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);width:100%;list-style:none;padding:0;margin:0}.project-grid-layout .project-card{background:var(--color-white);border-radius:1.25rem;box-shadow:0 4px 24px 0 rgb(30 41 59 / .08),0 1.5px 6px 0 rgb(30 41 59 / .04);padding:2rem 2rem 1.5rem 2rem;width:100%;max-width:none;margin:0;margin-left:0;margin-right:0;display:flex;flex-direction:column;transition:transform 0.18s cubic-bezier(.4,0,.2,1),box-shadow 0.18s cubic-bezier(.4,0,.2,1),border-color 0.18s cubic-bezier(.4,0,.2,1);position:relative;border:1px solid var(--color-gray);height:fit-content;justify-self:stretch;align-self:stretch}.project-grid-layout .project-card:hover{transform:translateY(-8px) scale(1.025);box-shadow:0 8px 32px 0 rgb(30 41 59 / .14),0 3px 12px 0 rgb(30 41 59 / .08);border-color:var(--color-primary)}@media (max-width:768px){.project-grid-layout{grid-template-columns:1fr}}.project-list{display:flex;flex-direction:column;gap:2rem;list-style:none;padding:0;margin:2rem 0 0 0;align-items:stretch}.project-card{background:var(--color-white);border-radius:1.25rem;box-shadow:0 4px 24px 0 rgb(30 41 59 / .08),0 1.5px 6px 0 rgb(30 41 59 / .04);padding:2rem 2rem 1.5rem 2rem;width:100%;max-width:600px;margin:0 auto;display:flex;flex-direction:column;transition:transform 0.18s cubic-bezier(.4,0,.2,1),box-shadow 0.18s cubic-bezier(.4,0,.2,1);position:relative;border:1px solid var(--color-gray)}.project-card:hover{transform:translateY(-8px) scale(1.025);box-shadow:0 8px 32px 0 rgb(30 41 59 / .14),0 3px 12px 0 rgb(30 41 59 / .08);border-color:var(--color-primary)}.card-header{display:flex;justify-content:flex-end;align-items:flex-start;min-height:1.5rem}.card-codename{font-size:var(--font-size-sm);color:var(--color-text-lighter);font-family:var(--font-mono);font-weight:500;letter-spacing:.5px;background:none;padding:.1rem .5rem;border-radius:.5rem;margin-bottom:.5rem}.card-content{display:flex;flex-direction:column;gap:.5rem}.card-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary);margin:0 0 .25rem 0;letter-spacing:-.5px;padding-left:.4rem}.card-title>span.card-label{font-weight:400;font-size:55%;font-style:oblique;color:var(--color-accent)!important;letter-spacing:0;margin-left:.1rem;vertical-align:top;line-height:2.4}.card-subtitle{font-size:var(--font-size-base);font-weight:500;color:var(--color-text-light);margin:0 0 .5rem 0}.card-description{font-size:var(--font-size-md);color:var(--color-text-light);margin-bottom:1.2em;line-height:1.3;text-align:left}.card-description-spacer{height:.89em;display:block}.card-description-group{display:flex;flex-direction:column;gap:1.5em;margin-top:1em;margin-bottom:1em}.card-description-feature{display:flex;align-items:flex-start;gap:1em;background:var(--color-gray);border-radius:var(--border-radius);padding:1em 1.2em;box-shadow:0 1px 2px 0 rgb(0 0 0 / .03)}.card-feature-icon{font-size:1.7em;margin-right:.5em;margin-top:.1em;flex-shrink:0;opacity:.85}.card-feature-title{font-size:var(--font-size-base);color:var(--color-text);font-weight:600;margin-bottom:.2em}.project-intro-flex{display:flex;align-items:center;gap:1.2rem}.project-visual{min-width:110px;min-height:110px;width:110px;height:110px;position:relative;display:flex;align-items:center;justify-content:center}.project-visual-bg{position:absolute;width:100%;height:100%;left:0;top:0;z-index:1}.project-visual-bg .project-visual-bg-main{position:absolute;width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#2563eb22 60%,#ec489922 100%);filter:blur(2px)}.project-visual-bg .project-visual-bg-inner{position:absolute;width:60%;height:60%;left:20%;top:20%;border-radius:50%;background:#fff;opacity:.7;filter:blur(1px)}.project-visual-center{position:relative;z-index:2;width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,#2563eba0 60%,#ec489980 90%);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #2563eb22;font-size:5em;color:#fff}.project-visual-floaters{position:absolute;left:0;top:0;width:100%;height:100%;z-index:3;pointer-events:none}.project-visual-floaters .floater{position:absolute;border-radius:50%;animation:float 3s infinite alternate ease-in-out}.project-visual-floaters .floater.floater1{left:10%;top:12%;width:18px;height:18px;background:#2563eb;opacity:.18;animation-duration:3.2s}.project-visual-floaters .floater.floater2{right:8%;top:22%;width:12px;height:12px;background:#ec4899;opacity:.18;animation-duration:2.7s;animation-direction:alternate-reverse}.project-visual-floaters .floater.floater3{left:18%;bottom:10%;width:10px;height:10px;background:#2563eb;opacity:.12;animation-duration:2.2s;animation-direction:alternate-reverse}.project-visual-floaters .floater.floater4{right:16%;bottom:14%;width:14px;height:14px;background:#ec4899;opacity:.12;animation-duration:2.9s}.project-visual-floaters .floater.floater5{left:50%;top:0;width:8px;height:8px;background:#2563eb;opacity:.1;animation-duration:2.5s;animation-direction:alternate-reverse}@keyframes float{0%{transform:translateY(0) scale(1)}100%{transform:translateY(-12px) scale(1.12)}}.card-description-feature ul{margin:.5em 0 .5em 1.2em;padding:0;list-style:none}.card-description-feature ul li{position:relative;margin-bottom:.3em;padding-left:1.2em;color:var(--color-text-light);font-size:var(--font-size-base)}.card-description-feature ul li:last-child{margin-bottom:0}.card-description-feature ul li::before{content:'';position:absolute;left:0;top:.7em;width:.5em;height:.5em;background:var(--color-primary);border-radius:50%;opacity:.18;transform:translateY(-50%)}.project-logo-img{width:64px;height:64px;object-fit:contain}@media (max-width:600px){.card-description-feature{flex-direction:column;align-items:flex-start;gap:.5em}.card-feature-icon{margin-bottom:.2em}}@media (max-width:768px){.project-list{gap:1.5rem}.project-card{max-width:100%;min-width:0;padding:1.25rem 1rem 1rem 1rem}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes float{0%,to{transform:translateY(0) scale(1);opacity:.1}50%{transform:translateY(-20px) scale(1.2);opacity:.3}}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{to{opacity:1;transform:translateX(0)}}@keyframes slideRight{to{opacity:1;transform:translateX(0)}}@keyframes popIn{to{opacity:1;transform:scale(1)}}@keyframes morphBackground{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes slideUpFade{to{opacity:1;transform:translateY(0)}}@keyframes slideDownFade{to{opacity:1;transform:translateY(0)}}@keyframes slideLeftFade{to{opacity:1;transform:translateX(0)}}@keyframes slideRightFade{to{opacity:1;transform:translateX(0)}}@keyframes arrowFadeIn{to{opacity:.7;visibility:visible}}@keyframes swipeIndicatorFadeIn{from{opacity:0;visibility:visible;transform:translateX(var(--spacing-xl))}to{opacity:.6;visibility:visible;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes lineGlow{0%,to{opacity:.3}50%{opacity:.8}}@keyframes centralPulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.8}50%{transform:translate(-50%,-50%) scale(1.1);opacity:1}}@keyframes configure-clockwise{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}100%{transform:rotate(360deg)}}@keyframes configure-xclockwise{0%{transform:rotate(45deg)}25%{transform:rotate(-45deg)}50%{transform:rotate(-135deg)}75%{transform:rotate(-225deg)}100%{transform:rotate(-315deg)}}@keyframes fadeIn{to{opacity:1}}@media (max-width:768px){main{padding:25.6% 0}.nav-menu{font-size:var(--font-size-sm);gap:var(--spacing-md)}.nav-container .com{opacity:0;visibility:hidden}.footer{margin-top:var(--spacing-3xl);background:linear-gradient(to right,transparent,rgb(0 0 0 / .16),transparent) no-repeat top center;background-size:80% 1px;width:100%;text-align:center;padding:var(--spacing-md) var(--spacing-sm) var(--spacing-xs) 0;margin-top:25.6%;margin-bottom:-25.6%}.footer .container{flex:1 0 auto}.hero-title{font-size:var(--font-size-6xl)}.hero-subtitle{max-width:73%}.hero-description{max-width:51%}.section-title{font-size:var(--font-size-3xl)}.contact-title{font-size:var(--font-size-3xl)}.container{padding:0 var(--spacing-md)}.section{padding:var(--spacing-md) 0;min-height:auto}.about-content{grid-template-columns:1fr;gap:var(--spacing-2xl)}.about-stats{grid-template-columns:1fr}.contact-content{grid-template-columns:1fr;gap:var(--spacing-2xl)}.contact-visual{height:300px;order:2}.contact-info{order:1}.visual-container{width:300px;height:300px}.nav-arrow{display:none}.swipe-indicator{display:flex;flex-direction:row;bottom:var(--spacing-lg);transform:translateX(50%)}.swipe-text{writing-mode:horizontal-tb;text-orientation:mixed}.swipe-line{width:40px;height:2px;background:linear-gradient(90deg,var(--color-primary),var(--color-soft-gray))}}@media (max-width:480px){.hero-title{font-size:var(--font-size-5xl)}.section-title{font-size:var(--font-size-2xl)}.contact-title{font-size:var(--font-size-2xl)}.contact-visual{height:250px}}@media (prefers-contrast:high){:root{--color-primary:#00f;--color-text:#000;--color-text-light:#333}}@media (prefers-reduced-motion:reduce){*{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}}.animate-slide-up{opacity:0;transform:translateY(50px);animation:slideUp 0.8s ease forwards}.animate-slide-left{opacity:0;transform:translateX(-50px);animation:slideLeft 0.8s ease forwards}.animate-slide-right{opacity:0;transform:translateX(50px);animation:slideRight 0.8s ease forwards}.animate-pop-in{opacity:0;transform:scale(.8);animation:popIn 0.6s cubic-bezier(.175,.885,.32,1.275) forwards}.stagger-1{animation-delay:0.1s}.stagger-2{animation-delay:0.2s}.stagger-3{animation-delay:0.3s}.stagger-4{animation-delay:0.4s}.stagger-5{animation-delay:0.5s}.stagger-6{animation-delay:0.6s}.stagger-7{animation-delay:0.7s}.stagger-8{animation-delay:0.8s}.stagger-9{animation-delay:0.9s}