:root{--bg-primary: #09090f;--bg-secondary: #111018;--bg-card: #15141f;--bg-card-hover: #1c1a2e;--purple: #a855f7;--pink: #ec4899;--gradient: linear-gradient(135deg, #a855f7 0%, #ec4899 100%);--gradient-subtle: linear-gradient(135deg, rgba(168,85,247,.12) 0%, rgba(236,72,153,.12) 100%);--text-primary: #ede9ff;--text-secondary: #8b82aa;--text-muted: #524e6a;--border: rgba(168, 85, 247, .18);--border-card: rgba(168, 85, 247, .12);--shadow-glow: 0 0 40px rgba(168, 85, 247, .12);--font: "Plus Jakarta Sans", sans-serif;--radius: 16px;--radius-sm: 10px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--gradient);border-radius:3px}a{text-decoration:none;color:inherit}.gradient-text{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section{max-width:1100px;margin:0 auto;padding:110px 24px}.section-label{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:14px}.section-title{font-size:clamp(2.2rem,4.5vw,3.2rem);font-weight:800;color:var(--text-primary);line-height:1.15;letter-spacing:-.03em;margin-bottom:14px}.section-desc{font-size:1.05rem;color:var(--text-secondary);max-width:520px;margin-bottom:64px}.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:50px;font-family:var(--font);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .25s ease;border:none;letter-spacing:.01em}.btn-primary{background:var(--gradient);color:#fff;box-shadow:0 2px 12px #a855f733}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 20px #a855f74d}.btn-outline{background:transparent;color:var(--text-primary);border:1.5px solid var(--border)}.btn-outline:hover{background:var(--gradient-subtle);border-color:var(--purple);transform:translateY(-2px)}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;padding:26px 0;transition:all .35s ease}.navbar--scrolled{background:#09090fcc;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);padding:18px 0}.navbar__inner{max-width:1100px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.navbar__logo{font-family:Dancing Script,cursive;font-size:2.2rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:flex;align-items:center;letter-spacing:.01em}.navbar__links{display:flex;gap:38px;list-style:none}.navbar__links a{color:var(--text-secondary);font-size:.95rem;font-weight:500;letter-spacing:.02em;transition:color .2s;position:relative}.navbar__links a:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:1.5px;background:var(--gradient);transition:width .3s ease;border-radius:1px}.navbar__links a:hover{color:var(--text-primary)}.navbar__links a:hover:after{width:100%}.navbar__toggle{display:none;background:none;border:none;color:var(--text-primary);cursor:pointer;padding:4px}.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow-x:hidden;padding-top:80px}.hero__bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}.hero__bokeh{position:absolute;border-radius:50%;opacity:0;will-change:transform,opacity;animation:bokehFloat 10s ease-in-out infinite}.hero__bokeh--1{width:180px;height:180px;background:radial-gradient(circle,rgba(236,72,153,.15),transparent 70%);top:10%;right:10%;animation-delay:0s}.hero__bokeh--2{width:120px;height:120px;background:radial-gradient(circle,rgba(168,85,247,.12),transparent 70%);top:55%;left:8%;animation-delay:2s}.hero__bokeh--3{width:200px;height:200px;background:radial-gradient(circle,rgba(236,72,153,.1),transparent 70%);bottom:15%;right:20%;animation-delay:4s}.hero__bokeh--4{width:100px;height:100px;background:radial-gradient(circle,rgba(168,85,247,.18),transparent 70%);top:30%;left:50%;animation-delay:6s}.hero__bokeh--5{width:140px;height:140px;background:radial-gradient(circle,rgba(236,72,153,.08),transparent 70%);top:70%;left:65%;animation-delay:3s}@keyframes bokehFloat{0%{opacity:0;transform:translateY(0) scale(.8)}30%{opacity:1}50%{transform:translateY(-20px) scale(1.1)}70%{opacity:.8}to{opacity:0;transform:translateY(-40px) scale(.9)}}.hero__bokehs,.hero__sparkles{position:absolute;inset:0;pointer-events:none}.hero__sparkle{position:absolute;width:3px;height:3px;border-radius:50%;background:#ec489999;animation:sparkle 4s ease-in-out infinite}.hero__sparkle:before,.hero__sparkle:after{content:"";position:absolute;background:inherit;border-radius:50%}.hero__sparkle:before{width:8px;height:1.5px;top:50%;left:50%;transform:translate(-50%,-50%)}.hero__sparkle:after{width:1.5px;height:8px;top:50%;left:50%;transform:translate(-50%,-50%)}.hero__sparkle:nth-child(1){top:18%;left:82%;animation-delay:0s}.hero__sparkle:nth-child(2){top:42%;left:12%;animation-delay:1.5s;background:#a855f799}.hero__sparkle:nth-child(3){top:72%;left:70%;animation-delay:3s}.hero__sparkle:nth-child(4){top:25%;left:45%;animation-delay:2s;background:#a855f780}.hero__sparkle:nth-child(5){top:65%;left:30%;animation-delay:4s}@keyframes sparkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}}.hero__orb{position:absolute;border-radius:50%;filter:blur(110px);will-change:transform}.hero__orb--1{width:500px;height:500px;background:#a855f72e;top:-120px;right:-80px}.hero__orb--2{width:380px;height:380px;background:#ec489924;bottom:-60px;left:5%}.hero__orb--3{width:250px;height:250px;background:#a855f71a;top:40%;left:55%}.hero__inner{max-width:1100px;margin:0 auto;padding:0 48px;position:relative;z-index:1;width:100%}.hero__tag{display:inline-flex;align-items:center;gap:8px;background:var(--gradient-subtle);border:1px solid var(--border);border-radius:50px;padding:6px 16px;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:28px}.hero__tag-dot{width:6px;height:6px;border-radius:50%;background:var(--gradient);flex-shrink:0}.hero__greeting{font-size:clamp(1rem,2vw,1.15rem);color:var(--text-secondary);font-weight:500;margin-bottom:8px}.hero__name{font-size:clamp(3rem,7vw,5.8rem);font-weight:800;line-height:1.15;letter-spacing:-.04em;margin-bottom:20px;padding-bottom:4px;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;word-break:break-word;overflow-wrap:break-word}.hero__title{font-size:clamp(1.15rem,2.2vw,1.45rem);font-weight:500;color:var(--text-primary);opacity:.85;margin-bottom:16px;line-height:1.4}.hero__tagline{font-size:1.2rem;color:var(--text-secondary);max-width:520px;margin-bottom:44px;line-height:1.75}.hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:52px}.hero__socials{display:flex;gap:16px;align-items:center}.hero__social-link{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--bg-card);border:1px solid var(--border-card);color:var(--text-secondary);transition:all .25s ease}.hero__social-link:hover{background:var(--gradient-subtle);border-color:var(--purple);color:var(--text-primary);transform:translateY(-2px)}.hero__scroll{position:absolute;bottom:36px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;animation:scrollBounce 2s ease-in-out infinite}@keyframes scrollBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(6px)}}.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.about__text p{color:var(--text-secondary);font-size:1.3rem;line-height:1.9;margin-bottom:28px;position:relative;padding-left:24px;border-left:2px solid transparent;border-image:var(--gradient) 1;text-align:justify}.about__text p:last-of-type{margin-bottom:0}.about__text strong{color:var(--text-primary);font-weight:600}.about__visual{position:relative;display:flex;justify-content:center;align-items:center}.about__vibe-card{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%;max-width:340px}.about__vibe-item{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius);padding:28px 20px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;transition:all .3s ease;animation:vibeGlow 4s ease-in-out infinite}.about__vibe-item:nth-child(2){animation-delay:1s}.about__vibe-item:nth-child(3){animation-delay:2s}.about__vibe-item:nth-child(4){animation-delay:3s}@keyframes vibeGlow{0%,to{box-shadow:0 0 #a855f700;border-color:var(--border-card)}50%{box-shadow:0 0 20px #a855f71a,0 0 40px #ec48990d;border-color:#a855f740}}.about__vibe-item:hover{background:var(--bg-card-hover);border-color:var(--border);transform:translateY(-4px);box-shadow:var(--shadow-glow);animation:none}.about__vibe-icon{width:48px;height:48px;border-radius:14px;background:var(--gradient-subtle);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--purple)}.about__vibe-label{font-size:.82rem;font-weight:700;color:var(--text-primary);letter-spacing:.02em}#skills{background:linear-gradient(180deg,#a855f708,#0f0f1999,#a855f708);border-top:1px solid rgba(168,85,247,.06);border-bottom:1px solid rgba(168,85,247,.06);max-width:100%;padding-left:max(24px,calc((100% - 1100px)/2 + 24px));padding-right:max(24px,calc((100% - 1100px)/2 + 24px))}.skills__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:40px 28px;max-width:750px;margin:0 auto}.skill-item{display:flex;flex-direction:column;align-items:center;gap:14px;cursor:default}.skill-item__icon{position:relative;width:78px;height:78px;border-radius:20px;background:linear-gradient(145deg,#a855f70f,#0f0f19cc);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(168,85,247,.12);display:flex;align-items:center;justify-content:center;font-size:34px;color:var(--purple);transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.skill-item__icon:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 30% 20%,rgba(168,85,247,.08),transparent 60%);opacity:0;transition:opacity .4s}.skill-item__icon:after{content:"";position:absolute;inset:-1px;border-radius:inherit;background:conic-gradient(from var(--skill-angle, 0deg),transparent 0%,var(--purple) 25%,var(--pink) 50%,transparent 75%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;-webkit-mask-composite:xor;padding:1.5px;opacity:0;transition:opacity .4s;animation:skillRingSpin 3s linear infinite}@keyframes skillRingSpin{to{--skill-angle: 360deg}}@property --skill-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.skill-item:hover .skill-item__icon{background:linear-gradient(145deg,#a855f71a,#ec48990d);border-color:transparent;box-shadow:0 0 30px #a855f733,0 0 60px #a855f70f,inset 0 1px #ffffff0d;transform:translateY(-6px) scale(1.05);color:var(--pink)}.skill-item:hover .skill-item__icon:before{opacity:1}.skill-item:hover .skill-item__icon:after{opacity:1}.skill-item__name{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;text-align:center;transition:all .35s}.skill-item:hover .skill-item__name{color:var(--text-primary);text-shadow:0 0 16px rgba(168,85,247,.35)}.projects__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.project-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:var(--radius);overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}.project-card:hover{border-color:#a855f74d;transform:translateY(-6px);box-shadow:0 16px 48px #a855f71f,0 0 0 1px #a855f714}.project-card__thumb{height:200px;position:relative;overflow:hidden}.project-card__img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s ease}.project-card:hover .project-card__img{transform:scale(1.04)}.project-card__overlay{position:absolute;inset:0;background:linear-gradient(180deg,#09090f26,#09090f80 60%,#09090fd9);pointer-events:none;transition:opacity .4s}.project-card:hover .project-card__overlay{opacity:.6}.project-card__body{padding:22px 24px 24px;flex:1;display:flex;flex-direction:column}.project-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.project-card__name{font-size:1.1rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.project-card__badge{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--gradient-subtle);border:1px solid var(--border);border-radius:50px;padding:3px 10px;color:var(--text-secondary);white-space:nowrap}.project-card__desc{font-size:.88rem;color:var(--text-secondary);line-height:1.6;margin-bottom:18px;flex:1}.project-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.project-card__tag{background:#a855f714;border:1px solid rgba(168,85,247,.12);border-radius:5px;padding:3px 10px;font-size:.72rem;font-weight:500;color:var(--purple);transition:all .2s}.project-card:hover .project-card__tag{background:#a855f71f;border-color:#a855f740}.project-card__links{display:flex;gap:10px;margin-top:auto}.project-link{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:.78rem;font-weight:600;background:var(--bg-secondary);border:1px solid var(--border-card);color:var(--text-secondary);transition:all .25s}.project-link:hover{border-color:var(--purple);color:var(--text-primary);background:#a855f714}.project-link--live{background:#a855f714;border-color:#a855f733;color:var(--purple)}.project-link--live:hover{background:var(--purple);border-color:var(--purple);color:#fff}#contact{background:linear-gradient(180deg,#a855f708,#0f0f1999,#a855f708);border-top:1px solid rgba(168,85,247,.06);border-bottom:1px solid rgba(168,85,247,.06);max-width:100%;padding-left:max(24px,calc((100% - 1100px)/2 + 24px));padding-right:max(24px,calc((100% - 1100px)/2 + 24px))}.contact__grid{display:flex;gap:18px;flex-wrap:wrap}.contact-card{display:flex;align-items:center;gap:16px;padding:20px 28px;border-radius:16px;background:var(--bg-card);border:1px solid var(--border-card);color:var(--text-secondary);text-decoration:none;flex:1;min-width:220px;position:relative;overflow:hidden;transition:all .35s cubic-bezier(.4,0,.2,1)}.contact-card:before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .35s}.contact-card--purple:before{background:linear-gradient(135deg,rgba(168,85,247,.06),transparent 60%)}.contact-card--pink:before{background:linear-gradient(135deg,rgba(236,72,153,.06),transparent 60%)}.contact-card:hover:before{opacity:1}.contact-card:hover{border-color:#a855f74d;box-shadow:0 12px 40px #a855f71f,0 0 0 1px #a855f70f}.contact-card--pink:hover{border-color:#ec48994d;box-shadow:0 12px 40px #ec48991f,0 0 0 1px #ec48990f}.contact-card__icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .35s}.contact-card--purple .contact-card__icon{background:#a855f71a;border:1px solid rgba(168,85,247,.15);color:var(--purple)}.contact-card--pink .contact-card__icon{background:#ec48991a;border:1px solid rgba(236,72,153,.15);color:var(--pink)}.contact-card:hover .contact-card__icon{transform:scale(1.08)}.contact-card--purple:hover .contact-card__icon{background:#a855f72e;box-shadow:0 0 20px #a855f726}.contact-card--pink:hover .contact-card__icon{background:#ec48992e;box-shadow:0 0 20px #ec489926}.contact-card__label{font-size:.92rem;font-weight:600;color:var(--text-primary)}.contact-card__arrow{margin-left:auto;color:var(--text-muted);opacity:0;transform:translate(-4px,4px);transition:all .3s}.contact-card:hover .contact-card__arrow{opacity:1;transform:translate(0);color:var(--purple)}.contact-card--pink:hover .contact-card__arrow{color:var(--pink)}.footer{border-top:1px solid var(--border-card);padding:32px 24px}.footer__inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.footer__text{font-size:.82rem;color:var(--text-muted)}.footer__text span{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:600}.footer__socials{display:flex;gap:12px}.footer__social{color:var(--text-muted);transition:color .2s;display:flex}.footer__social:hover{color:var(--text-primary)}@media(max-width:900px){.about__grid{grid-template-columns:1fr;gap:48px}.about__visual{justify-content:flex-start}.about__text p{font-size:1.15rem}.hero__inner{padding:0 32px}.skills__grid{grid-template-columns:repeat(5,1fr);max-width:600px}}@media(max-width:768px){.about__visual,.hero__scroll{display:none}.projects__grid{grid-template-columns:1fr}.contact__grid{flex-direction:column}.contact-card{min-width:unset}#skills,#contact{padding-left:24px;padding-right:24px}.section{padding:80px 24px}}@media(max-width:640px){.navbar__toggle{display:flex}.navbar__links{display:none;position:absolute;top:100%;left:0;right:0;background:#09090ff2;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);padding:24px;flex-direction:column;gap:22px}.navbar__links--open{display:flex}.section,#skills,#contact{padding:70px 18px}.section-title{font-size:clamp(1.8rem,6vw,2.4rem)}.section-desc{font-size:.95rem;margin-bottom:48px}.hero__name{font-size:clamp(2.4rem,10vw,3.5rem)}.hero__inner{padding:0 20px}.hero__tagline{font-size:1rem}.hero__cta{flex-direction:column;gap:12px}.btn{width:100%;justify-content:center}.about__text p{font-size:1.05rem;padding-left:18px}.skills__grid{grid-template-columns:repeat(3,1fr);gap:28px 16px}.skill-item__icon{width:64px;height:64px;font-size:28px;border-radius:16px}.project-card__thumb{height:160px}.contact-card{padding:16px 20px}}
