:root{--color-bg: #08080a;--color-bg-card: #121214;--color-bg-surface: #19191d;--color-bg-elevated: #202026;--color-bg-glass: rgba(255, 255, 255, .025);--color-bg-glass-hover: rgba(255, 255, 255, .05);--gradient-bg: radial-gradient(circle at 15% 25%, rgba(255, 255, 255, .035) 0%, transparent 60%), radial-gradient(circle at 85% 15%, rgba(255, 255, 255, .025) 0%, transparent 50%), radial-gradient(circle at 50% 75%, rgba(255, 255, 255, .015) 0%, transparent 70%), linear-gradient(180deg, #070708 0%, #0c0c0e 50%, #080809 100%);--color-text: #ececed;--color-text-muted: #8e8e9c;--color-text-dim: #4c4c59;--color-accent: #a5b4fc;--color-accent-bright: #c7d2fe;--color-accent-glow: rgba(165, 180, 252, .12);--color-accent-alt: #818cf8;--color-border: rgba(255, 255, 255, .07);--color-border-muted: rgba(255, 255, 255, .04);--color-border-glow: rgba(165, 180, 252, .22);--color-focus: #a5b4fc;--blur-xs: blur(4px);--blur-sm: blur(10px);--blur-glass: blur(20px);--blur-heavy: blur(60px);--glow-purple: 0 0 120px rgba(165, 180, 252, .12);--glow-blue: 0 0 100px rgba(129, 140, 248, .08);--glow-accent-sm: 0 0 40px rgba(165, 180, 252, .15);--glow-card: 0 8px 40px rgba(0, 0, 0, .55);--font-sans: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-serif: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: clamp(.6875rem, .65rem + .2vw, .8125rem);--font-size-sm: clamp(.8125rem, .78rem + .2vw, .9375rem);--font-size-base: clamp(.9375rem, .9rem + .3vw, 1.0625rem);--font-size-md: clamp(1.125rem, 1.05rem + .5vw, 1.375rem);--font-size-lg: clamp(1.5rem, 1.3rem + .8vw, 2rem);--font-size-xl: clamp(2rem, 1.8rem + 1.5vw, 3rem);--font-size-display: clamp(2.8rem, 2.2rem + 4vw, 5.5rem);--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-tight: 1.1;--line-height-heading: 1.15;--line-height-base: 1.65;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--border-width-thin: 1px;--border-width-thick: 2px}*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0;padding:0}ul[class],ol[class]{list-style:none;padding:0;margin:0}html{scroll-behavior:smooth;text-rendering:optimizeSpeed;-webkit-text-size-adjust:100%}body{min-height:100vh;height:100vh;overflow:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);background-image:var(--gradient-bg);background-attachment:fixed;color:var(--color-text);font-family:var(--font-serif);font-size:var(--font-size-base);line-height:var(--line-height-base);position:relative}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:url(/assets/bg-Iao0_muS.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:.24;filter:saturate(.65) contrast(1.05);pointer-events:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");opacity:.045}a{color:inherit;text-decoration:none}img,picture{max-width:100%;display:block;height:auto}input,button,textarea,select{font:inherit;color:inherit;background:transparent;border:none}textarea{resize:vertical}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;height:80px;background:#121216b8;backdrop-filter:blur(28px) saturate(1.5);-webkit-backdrop-filter:blur(28px) saturate(1.5);border-bottom:1px solid rgba(167,139,250,.1)}.nav-container{display:flex;justify-content:space-between;align-items:center;height:100%;max-width:1300px;margin:0 auto;padding:0 var(--space-8)}@media (max-width: 768px){.nav-container{padding:0 var(--space-4)}}.navbar-brand{display:flex;align-items:center;padding:0;background:none;border:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;transition:transform .3s cubic-bezier(.16,1,.3,1);cursor:pointer;outline:none}.logo-img{width:auto;display:block;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),filter .3s ease}.navbar-brand .logo-img{height:36px}.footer-logo .logo-img{height:48px}.navbar-brand:hover{transform:translateY(-1px)}.navbar-brand:hover .logo-img,.footer-logo:hover .logo-img{transform:scale(1.04) rotate(-1deg);filter:drop-shadow(0 0 10px rgba(255,255,255,.5))}.navbar-menu{display:flex;align-items:center;gap:0}.navbar-menu .nav-link{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:none;cursor:pointer;font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);padding:var(--space-2) var(--space-4);letter-spacing:.01em;transition:color .2s ease;position:relative;border:none;outline:none}.navbar-menu .nav-link:after{content:"";position:absolute;bottom:0;left:var(--space-4);right:var(--space-4);height:1px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-alt));transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.16,1,.3,1)}.navbar-menu .nav-link:hover{color:var(--color-text)}.navbar-menu .nav-link:hover:after,.navbar-menu .nav-link.active:after{transform:scaleX(1)}.navbar-menu .nav-link.active{color:var(--color-text)}.navbar-menu .nav-link:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px;border-radius:2px}.menu-toggle{display:none;background:var(--color-bg-glass);border:1px solid var(--color-border);cursor:pointer;padding:var(--space-2);color:var(--color-text-muted);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s ease,color .2s ease}.menu-toggle:hover{border-color:var(--color-border-glow);color:var(--color-accent-bright)}@media (max-width: 900px){.navbar-menu{display:none;flex-direction:column;position:fixed;top:80px;left:0;right:0;background:#121216f5;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-bottom:1px solid var(--color-border);padding:var(--space-4) var(--space-6);gap:var(--space-1);z-index:999}.navbar-menu.open{display:flex}.navbar-menu a,.navbar-menu .nav-link{padding:var(--space-3) var(--space-4);width:100%;border-bottom:1px solid var(--color-border-muted)}.navbar-menu a:last-child,.navbar-menu .nav-link:last-child{border-bottom:none}.menu-toggle{display:flex;align-items:center;justify-content:center}}.container{width:100%;max-width:1300px;margin:0 auto;padding:0 var(--space-8)}@media (max-width: 768px){.container{padding:0 var(--space-4)}}.page-view{position:fixed;top:80px;left:0;right:0;bottom:0;overflow-y:auto;overflow-x:hidden;z-index:10;background:transparent;opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,12px,0);transition:opacity .35s cubic-bezier(.16,1,.3,1),visibility .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}.page-view.is-active{opacity:1;visibility:visible;pointer-events:all;transform:translateZ(0)}.page-view::-webkit-scrollbar{width:4px}.page-view::-webkit-scrollbar-track{background:transparent}.page-view::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.page-view::-webkit-scrollbar-thumb:hover{background:var(--color-border-glow)}.home-scroll-view{position:fixed;top:0;left:0;right:0;bottom:0;overflow-y:auto;overflow-x:hidden;z-index:1;background:transparent;scroll-behavior:smooth;transition:opacity .35s cubic-bezier(.16,1,.3,1),visibility .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}.home-scroll-view.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,12px,0)}.home-scroll-view::-webkit-scrollbar{width:4px}.home-scroll-view::-webkit-scrollbar-track{background:transparent}.home-scroll-view::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.home-scroll-view::-webkit-scrollbar-thumb:hover{background:var(--color-border-glow)}.footer{border-top:1px solid var(--color-border);background:#12121673;backdrop-filter:blur(24px) saturate(1.2);-webkit-backdrop-filter:blur(24px) saturate(1.2);padding:var(--space-6) 0 var(--space-3) 0;margin-top:var(--space-8);position:relative;z-index:2}.footer-inner{display:grid;grid-template-columns:1.5fr 2fr 1fr;gap:var(--space-12);margin-bottom:var(--space-4)}@media (max-width: 900px){.footer-inner{grid-template-columns:1fr;gap:var(--space-8)}}.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.footer-logo{cursor:pointer;background:none;border:none;padding:0;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;outline:none}.footer-logo:hover{transform:translateY(-1px)}.footer-tagline{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-base);max-width:420px}.footer-links{display:flex;flex-direction:column;gap:var(--space-2)}.footer-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent-bright);margin-bottom:var(--space-2)}.footer-menu{list-style:none;padding:0;margin:0;display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);gap:var(--space-2) var(--space-6)}@media (max-width: 600px){.footer-menu{grid-auto-flow:row;grid-template-columns:repeat(2,1fr);grid-template-rows:none;gap:var(--space-2) var(--space-4)}}.footer-link-btn{background:none;border:none;padding:0;margin:0;cursor:pointer;font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:left;transition:color .2s ease,transform .2s ease;outline:none}.footer-link-btn:hover{color:var(--color-text);transform:translate(4px)}.footer-link-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.footer-connect{display:flex;flex-direction:column;gap:var(--space-2)}.footer-social-wrapper{display:flex;gap:var(--space-3)}.footer-social-shape{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--color-border);background:#ffffff08;color:var(--color-text-muted);transition:all .25s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.footer-social-shape svg{width:16px;height:16px}.footer-social-shape:hover{color:var(--color-accent-bright);border-color:var(--color-border-glow);background:#a78bfa1f;transform:translateY(-3px);box-shadow:0 8px 24px #a78bfa2e}.footer-bottom{border-top:1px solid var(--color-border-muted);padding-top:var(--space-3);margin-top:var(--space-4);text-align:center}.footer-copy{font-size:var(--font-size-xs);color:var(--color-text-dim);letter-spacing:.02em}.hero-page{position:relative;width:100%;height:100vh;min-height:600px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-top:80px}.hero-page:before{content:"";position:absolute;top:-15%;left:-8%;width:700px;height:700px;background:radial-gradient(circle,rgba(165,180,252,.08) 0%,rgba(129,140,248,.03) 45%,transparent 70%);filter:blur(60px);pointer-events:none;will-change:transform;border-radius:50%}.hero-page:after{content:"";position:absolute;bottom:-20%;right:-5%;width:800px;height:800px;background:radial-gradient(circle,rgba(255,255,255,.04) 0%,rgba(200,200,210,.02) 45%,transparent 70%);filter:blur(80px);pointer-events:none;border-radius:50%}.hero-orb-mid{position:absolute;top:30%;left:40%;width:500px;height:500px;background:radial-gradient(circle,rgba(255,255,255,.02) 0%,transparent 65%);filter:blur(50px);pointer-events:none;border-radius:50%;transform:translate(-50%,-50%)}.hero-noise{display:none}.hero-line-top{position:absolute;top:80px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--color-border) 30%,var(--color-border) 70%,transparent)}.hero-line-bottom{position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--color-border) 30%,var(--color-border) 70%,transparent)}.hero-divider-v{position:absolute;right:calc((100vw - 1300px)/2 + 2rem);top:80px;bottom:0;width:1px;background:linear-gradient(to bottom,var(--color-border),transparent);display:none}@media (min-width: 900px){.hero-divider-v{display:block}}.hero-inner{position:relative;z-index:2;max-width:1300px;margin:0 auto;padding:0 var(--space-8);width:100%}@media (min-width: 900px){.hero-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-12);align-items:start}.hero-content-right{display:flex;flex-direction:column;align-items:flex-start;padding-top:5.2rem}}@media (max-width: 900px){.hero-content-right{margin-top:var(--space-6)}}@media (max-width: 768px){.hero-inner{padding:0 var(--space-4)}}.hero-badge{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid var(--color-border-glow);background:#a5b4fc0f;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--color-accent-bright);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;padding:var(--space-2) var(--space-4);border-radius:999px;margin-bottom:var(--space-8);box-shadow:0 0 20px #a5b4fc14}.hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 8px var(--color-accent);animation:pulse-dot 2s ease-in-out infinite;flex-shrink:0}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 8px var(--color-accent)}50%{opacity:.5;box-shadow:0 0 4px var(--color-accent)}}.hero-heading{font-family:var(--font-sans);font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:-.035em;color:var(--color-text)}.hero-heading-sub{font-family:var(--font-sans);font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:-.035em;background:linear-gradient(135deg,#a5b4fc,#ececed,#8e8e9c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-8)}.hero-typewriter-container{font-family:Space Mono,monospace;font-size:clamp(1.25rem,1.15rem + .8vw,1.75rem);font-weight:var(--font-weight-bold);color:var(--color-accent);margin-top:calc(-1 * var(--space-3));margin-bottom:var(--space-8);line-height:var(--line-height-tight)}.terminal-prompt{color:var(--color-text-muted);opacity:.85}.typewriter{display:inline}.typewriter-cursor{display:inline-block;width:10px;height:1.1em;background-color:var(--color-accent);animation:blink 1.1s step-end infinite;vertical-align:middle;margin-left:2px}@keyframes blink{0%,to{background-color:transparent}50%{background-color:var(--color-accent)}}.hero-desc{font-family:var(--font-serif);font-size:var(--font-size-base);color:var(--color-text-muted);max-width:500px;line-height:1.7;text-align:justify;text-justify:inter-word;margin-bottom:var(--space-6)}.hero-actions{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.btn-primary{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-text);color:#0f0f0f;font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);padding:.7rem var(--space-8);border:1px solid var(--color-text);cursor:pointer;transition:background .22s ease,color .22s ease,border-color .22s ease,transform .15s ease,box-shadow .22s ease;will-change:transform;border-radius:var(--radius-sm)}.btn-primary:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 8px 30px #a78bfa4d}.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-bg-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:.7rem var(--space-8);border:1px solid var(--color-border);cursor:pointer;transition:border-color .22s ease,background .22s ease,transform .15s ease;will-change:transform;border-radius:var(--radius-sm)}.btn-secondary:hover{border-color:var(--color-border-glow);background:var(--color-bg-glass-hover);transform:translateY(-2px)}.hero-socials{display:flex;align-items:center;gap:var(--space-3)}.social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--color-border);background:var(--color-bg-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--color-text-muted);border-radius:var(--radius-sm);transition:border-color .2s ease,color .2s ease,background .2s ease,transform .15s ease,box-shadow .2s ease;will-change:transform}.social-link:hover{border-color:var(--color-border-glow);color:var(--color-accent-bright);background:var(--color-accent-glow);transform:translateY(-3px);box-shadow:0 6px 24px #a78bfa33}.hero-stat-area{position:absolute;right:var(--space-8);bottom:var(--space-12);display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-8);z-index:2}@media (max-width: 900px){.hero-stat-area{display:none}}.hero-stat{text-align:right;background:var(--color-bg-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-border);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);min-width:110px}.hero-stat-number{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.hero-stat-label{font-size:var(--font-size-xs);color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--space-1)}.hero-scroll-hint{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--color-text-dim);font-size:var(--font-size-xs);letter-spacing:.06em;text-transform:uppercase;opacity:0;animation:fade-in-hero .6s 1.2s ease forwards;z-index:2;pointer-events:none}.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--color-border-glow),transparent);animation:scroll-line-anim 2s ease-in-out infinite}@keyframes scroll-line-anim{0%{transform:scaleY(0);transform-origin:top;opacity:0}40%{transform:scaleY(1);transform-origin:top;opacity:1}to{transform:scaleY(1);transform-origin:bottom;opacity:0}}@keyframes fade-in-hero{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.animate-in{opacity:0;transform:translateY(18px);animation:fade-in-up-el .65s cubic-bezier(.16,1,.3,1) forwards}@keyframes fade-in-up-el{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.delay-1{animation-delay:.05s}.delay-2{animation-delay:.15s}.delay-3{animation-delay:.25s}.delay-4{animation-delay:.37s}.delay-5{animation-delay:.48s}.section{padding:var(--space-16) 0;border-bottom:1px solid var(--color-border-muted)}.section-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-3)}.section-title{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);letter-spacing:-.02em;margin-bottom:var(--space-8)}.about-section-custom{padding:var(--space-16) 0;border-bottom:1px solid var(--color-border-muted)}.about-header-custom{position:relative;margin-bottom:var(--space-6)}.about-title-custom{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);letter-spacing:-.02em;margin-bottom:var(--space-2)}.about-title-underline-custom{height:4px;width:50px;background-color:var(--color-text);border-radius:2px}.about-desc-custom{font-family:var(--font-serif);font-size:var(--font-size-base);color:var(--color-text-muted);line-height:var(--line-height-base);text-align:justify;text-justify:inter-word;max-width:850px;margin-bottom:var(--space-8)}.tech-stack-section-custom{margin-top:var(--space-8)}.tech-stack-title-custom{font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border-muted);padding-bottom:var(--space-2)}.tech-stack-grid-custom{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-6)}.tech-group-card-custom{background:#ffffff04;border:1px solid var(--color-border);padding:var(--space-6);border-radius:var(--radius-md);transition:border-color .22s ease,background-color .22s ease}.tech-group-card-custom:hover{border-color:var(--color-border-glow);background-color:#ffffff06}.tech-group-title-custom{font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-muted)}.tech-tags-wrapper-custom{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag-card-custom{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-bg-card);border:1px solid rgba(255,255,255,.12);color:var(--color-text);padding:.4rem .8rem;font-size:var(--font-size-xs);font-family:var(--font-sans);font-weight:var(--font-weight-medium);letter-spacing:.01em;border-radius:var(--radius-sm);transition:transform .2s cubic-bezier(.16,1,.3,1),border-color .2s cubic-bezier(.16,1,.3,1),color .2s cubic-bezier(.16,1,.3,1),background-color .2s cubic-bezier(.16,1,.3,1);cursor:default}.tech-tag-card-custom:hover{transform:translateY(-2px);border-color:var(--color-border-glow);color:var(--color-accent-bright);background-color:var(--color-bg-surface)}.tech-icon-box-custom{display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:inherit;flex-shrink:0;transition:transform .25s cubic-bezier(.16,1,.3,1)}.tech-icon-box-custom svg,.tech-icon-box-custom img{width:100%;height:100%;object-fit:contain}.tech-icon-box-custom svg{fill:currentColor}.tech-tag-card-custom:hover .tech-icon-box-custom{transform:scale(1.18) rotate(-3deg)}.tech-icon-box-custom.icon-cpp{color:#5382a1}.tech-icon-box-custom.icon-python{color:#3776ab}.tech-icon-box-custom.icon-docker{color:#2496ed}.tech-icon-box-custom.icon-xampp{color:#fb7a24}.tech-icon-box-custom.icon-ubuntu{color:#e95420}.tech-icon-box-custom.icon-virtualbox{color:#1880c4}.tech-icon-box-custom.icon-linux{color:#fcc624}.tech-icon-box-custom.icon-localstack{color:#4ba6ec}.tech-icon-box-custom.icon-codeigniter{color:#ee4326}.tech-icon-box-custom.icon-mysql{color:#4479a1}.tech-icon-box-custom.icon-sql{color:#00758f}.tech-icon-box-custom.icon-php{color:#777bb4}.tech-icon-box-custom.icon-figma{color:#f24e1e}.tech-icon-box-custom.icon-canva{color:#00c4cc}.tech-icon-box-custom.icon-affinity{color:#3a469d}.tech-icon-box-custom.icon-capcut{color:#ececed}.tech-icon-box-custom.icon-html{color:#e34f26}.tech-icon-box-custom.icon-css{color:#1572b6}.tech-icon-box-custom.icon-javascript{color:#f7df1e}.tech-icon-box-custom.icon-vscode{color:#007acc}.tech-icon-box-custom.icon-git{color:#f05032}.tech-icon-box-custom.icon-antigravity{color:#a5b4fc}.experience-item{display:grid;grid-template-columns:1fr 2fr 1fr;padding:var(--space-6) 0;border-bottom:1px solid var(--color-border-muted)}@media (max-width: 768px){.experience-item{grid-template-columns:1fr;gap:var(--space-2)}}.experience-role{font-weight:var(--font-weight-bold);color:var(--color-text)}.experience-desc{color:var(--color-text-muted);font-size:var(--font-size-sm)}.experience-year{text-align:right;color:var(--color-text-dim);font-size:var(--font-size-sm)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.skills-category{border:1px solid var(--color-border);padding:var(--space-6);background:var(--color-bg-glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-md);transition:border-color .2s ease,background .2s ease}.skills-category:hover{border-color:var(--color-border-glow);background:var(--color-bg-glass-hover)}.skills-category h3{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent);border-bottom:1px solid var(--color-border-muted);padding-bottom:var(--space-3);margin-bottom:var(--space-4)}.skills-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.skill-tag{background:#a78bfa0f;border:1px solid var(--color-border);color:var(--color-text-muted);padding:.2rem var(--space-3);font-size:var(--font-size-xs);letter-spacing:.02em;border-radius:4px;transition:border-color .2s,color .2s}.skill-tag:hover{border-color:var(--color-border-glow);color:var(--color-accent-bright)}.projects-table{border-top:1px solid var(--color-border);margin-top:var(--space-6)}.project-row{display:grid;grid-template-columns:2fr 1fr 1fr;padding:var(--space-5) var(--space-3);border-bottom:1px solid var(--color-border-muted);cursor:pointer;border-radius:var(--radius-sm);transition:background .2s ease,padding-left .2s ease}.project-row:hover{background:var(--color-bg-glass);padding-left:var(--space-4)}@media (max-width: 768px){.project-row{grid-template-columns:1fr;gap:var(--space-2)}}.project-title{font-weight:var(--font-weight-bold);color:var(--color-text)}.project-tags{color:var(--color-text-dim);font-size:var(--font-size-sm)}.project-year{text-align:right;color:var(--color-text-dim);font-size:var(--font-size-sm)}.project-preview{position:fixed;pointer-events:none;z-index:100;width:280px;height:180px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);opacity:0;transform:translateZ(0) scale(.95);transition:transform .2s cubic-bezier(.16,1,.3,1),opacity .2s cubic-bezier(.16,1,.3,1);background:var(--color-bg-card);box-shadow:var(--glow-card)}.project-preview.active{opacity:1;transform:translate3d(var(--x),var(--y),0) scale(1)}.project-preview img{width:100%;height:100%;object-fit:cover}.contact-grid-custom{display:grid;grid-template-columns:1fr;gap:var(--space-8);padding:var(--space-8) 0}@media (min-width: 900px){.contact-grid-custom{grid-template-columns:1fr 1.2fr;gap:var(--space-16);padding:var(--space-12) 0}}.section-title-contact{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);letter-spacing:-.02em;margin-bottom:var(--space-4)}.contact-tagline-custom{font-family:var(--font-serif);font-size:var(--font-size-base);color:var(--color-text-muted);line-height:1.6;max-width:480px;margin-bottom:var(--space-4)}.contact-location-badge{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-accent-bright);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-12);background:#a5b4fc14;border:1px solid rgba(165,180,252,.15);padding:var(--space-2) var(--space-4);border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}@media (min-width: 900px){.contact-grid-custom{grid-template-columns:1.1fr 1.2fr;gap:var(--space-12);padding:var(--space-12) 0}}.contact-info-panel{display:flex;flex-direction:column;align-items:flex-start}.section-label-contact{font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-2)}.section-title-contact{font-family:var(--font-sans);font-size:clamp(1.8rem,1.6rem + 1vw,2.4rem);font-weight:700;line-height:1.1;letter-spacing:-.03em;background:linear-gradient(135deg,#ffffff 40%,var(--color-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-2);max-width:600px;width:100%}.contact-tagline-custom{font-family:var(--font-serif);font-size:var(--font-size-base);color:var(--color-text-muted);line-height:var(--line-height-base);max-width:600px;width:100%;margin-bottom:var(--space-3)}.contact-location-badge{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-accent-bright);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-bottom:var(--space-6);background:#a5b4fc14;border:1px solid rgba(165,180,252,.15);padding:var(--space-2) var(--space-4);border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.contact-location-badge svg{color:var(--color-accent)}.contact-cards-container{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:600px}.contact-link-card{display:flex;align-items:center;gap:var(--space-4);background:#ffffff04;border:1px solid rgba(255,255,255,.05);padding:.8rem var(--space-5);border-radius:var(--radius-md);transition:all .35s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;text-decoration:none;color:inherit;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4)}.contact-link-card:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);transition:opacity .3s ease}.contact-link-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 10% 50%,var(--brand-color-glow) 0%,transparent 60%);opacity:0;transition:opacity .4s ease;z-index:0}.contact-link-card:hover{border-color:#ffffff2e;background:#ffffff09;transform:translateY(-5px) scale(1.015);box-shadow:0 24px 48px #00000073,0 0 35px var(--brand-color-glow),inset 0 1px #ffffff14}.contact-link-card:hover:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent)}.contact-link-card:hover:before{opacity:1}.contact-link-card.card-email,.contact-link-card.card-linkedin,.contact-link-card.card-github,.contact-link-card.card-instagram{--brand-color: var(--color-accent);--brand-color-glow: rgba(165, 180, 252, .12);--brand-gradient: linear-gradient(135deg, var(--color-accent-alt), var(--color-accent), var(--color-accent-bright))}.card-icon-box{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;background:#ffffff05;border:1px solid rgba(255,255,255,.06);color:var(--brand-color);transition:all .35s cubic-bezier(.16,1,.3,1);flex-shrink:0;z-index:1;position:relative;box-shadow:inset 0 1px #ffffff0a}.card-icon-box svg{width:18px;height:18px;transition:transform .35s cubic-bezier(.16,1,.3,1)}.contact-link-card:hover .card-icon-box{background:var(--brand-gradient);border-color:transparent;color:#fff;transform:scale(1.1) rotate(-4deg);box-shadow:0 10px 20px #00000059,0 0 15px var(--brand-color-glow)}.contact-link-card:hover .card-icon-box svg{transform:scale(1.08)}.card-text-box{display:flex;flex-direction:column;gap:5px;flex-grow:1;z-index:1}.card-label-row{display:flex;align-items:center;gap:var(--space-2)}.card-label-title{font-family:var(--font-sans);font-size:.68rem;letter-spacing:.12em;font-weight:var(--font-weight-bold);color:var(--color-text-muted);text-transform:uppercase;transition:color .3s ease}.contact-link-card:hover .card-label-title{color:var(--brand-color)}.card-label-badge{background:#a5b4fc1f;border:1px solid rgba(165,180,252,.25);color:var(--color-accent-bright);font-size:.6rem;padding:1px 6px;border-radius:99px;font-weight:var(--font-weight-medium)}.card-label-value{font-family:var(--font-serif);font-size:var(--font-size-base);color:var(--color-text);font-weight:var(--font-weight-medium);letter-spacing:-.015em;transition:color .3s ease}.contact-link-card:hover .card-label-value{color:#fff}.card-arrow-box{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#ffffff06;border:1px solid rgba(255,255,255,.05);color:var(--color-text-dim);transition:all .35s cubic-bezier(.16,1,.3,1);flex-shrink:0;z-index:1}.card-arrow{font-size:1.1rem;transition:transform .35s cubic-bezier(.16,1,.3,1),color .3s ease}.contact-link-card:hover .card-arrow-box{background:#ffffff14;border-color:#ffffff26;color:#fff;box-shadow:0 4px 10px #0003}.contact-link-card:hover .card-arrow{transform:translate(4px);color:#fff}.contact-form-panel{display:flex;flex-direction:column;justify-content:flex-start}.contact-form-card{background:var(--color-bg-glass);border:1px solid var(--color-border);padding:var(--space-8);border-radius:var(--radius-lg);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-shadow:var(--glow-card);width:100%}.form-row-two-col{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media (min-width: 600px){.form-row-two-col{grid-template-columns:1fr 1fr}}.contact-form-group-custom{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-6)}.contact-label-custom{font-family:var(--font-sans);font-size:.68rem;font-weight:var(--font-weight-bold);letter-spacing:.08em;color:var(--color-text-muted);text-transform:uppercase}.contact-input-custom,.contact-textarea-custom{width:100%;background:#ffffff04;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);padding:var(--space-4);font-size:var(--font-size-sm);font-family:var(--font-serif);outline:none;transition:all .25s cubic-bezier(.16,1,.3,1)}.contact-input-custom:focus,.contact-textarea-custom:focus{border-color:var(--color-accent);background:#ffffff09;box-shadow:0 0 16px #a5b4fc0d}.contact-input-custom::placeholder,.contact-textarea-custom::placeholder{color:var(--color-text-dim)}.contact-textarea-custom{min-height:160px;resize:vertical}.contact-submit-btn-custom{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;background:var(--color-text);color:#0a0a0c;border:none;padding:var(--space-4);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);border-radius:var(--radius-md);cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);will-change:transform}.contact-submit-btn-custom:hover{background:var(--color-accent);color:#fff;transform:translateY(-2px);box-shadow:0 8px 30px #a5b4fc40}.contact-submit-btn-custom:active{transform:translateY(0)}.send-icon{stroke:currentColor;transition:transform .2s ease}.contact-submit-btn-custom:hover .send-icon{transform:translate(2px,-2px)}.contact-status{margin-top:var(--space-4);font-size:var(--font-size-sm)}.contact-status.success{color:var(--color-accent)}.contact-status.error{color:#ff6b6b}.cv-section-custom{padding:var(--space-12) 0;max-width:800px;margin:0 auto;font-family:var(--font-sans)}.cv-header-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-8);margin-bottom:var(--space-10);border-bottom:2px solid var(--color-text);padding-bottom:var(--space-6)}.cv-header-left{flex:1}.cv-name{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:var(--font-weight-bold);line-height:1.1;letter-spacing:-.03em;margin-bottom:var(--space-3);text-transform:uppercase}.cv-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.6}.cv-meta a{color:var(--color-accent);text-decoration:none;font-weight:var(--font-weight-medium)}.cv-meta a:hover{text-decoration:underline}.cv-header-right{flex-shrink:0}.cv-photo-wrapper{width:120px;height:150px;overflow:hidden;border-radius:var(--radius-sm);border:1px solid var(--color-border-muted);background-color:var(--color-bg-surface)}.cv-photo-img{width:100%;height:100%;object-fit:cover;display:block}.cv-grid{display:flex;flex-direction:column;gap:var(--space-8)}.cv-block{display:flex;flex-direction:column;gap:var(--space-4)}.cv-block-title{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);letter-spacing:.1em;text-transform:uppercase;background-color:#dde4ee;color:#1e293b;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-2)}[data-theme=dark] .cv-block-title{background-color:var(--color-bg-surface);color:var(--color-text);border-left:4px solid var(--color-accent)}.cv-block-content{font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text);text-align:justify}.cv-item{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-2)}.cv-item-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4)}.cv-item-title{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-text)}.cv-item-date{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.cv-item-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.cv-list{list-style-type:disc;margin-left:var(--space-5);font-size:var(--font-size-sm);line-height:1.6;color:var(--color-text);display:flex;flex-direction:column;gap:var(--space-1)}.cv-skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.cv-skills-col ul{list-style-type:none;padding:0;margin:0}.cv-skills-col li{font-size:var(--font-size-sm);padding:var(--space-1) 0;border-bottom:1px solid var(--color-border-muted);color:var(--color-text);display:flex;align-items:center}.cv-skills-col li:before{content:"•";color:var(--color-accent);margin-right:var(--space-2);font-weight:700}
