:root,[data-theme=dark]{--bg-page:#07140e;--bg-section-alt:#040d0a;--bg-card:#0b1f17;--bg-card-hover:#102b20;--bg-elevated:#0d241a;--surface-1:#6ee7b70a;--surface-2:#6ee7b706;--surface-3:#6ee7b70f;--surface-hover:#6ee7b714;--surface-active:#10b98114;--text-heading:#f0f7f4;--text-body:#b8d4cc;--text-muted:#7a9990;--text-faint:#5a7a70;--border:#6ee7b714;--border-mid:#6ee7b71f;--border-strong:#10b98173;--shadow-sm:0 1px 4px #0006;--shadow-md:0 4px 20px #00000080;--shadow-lg:0 8px 40px #0009;--shadow-xl:0 16px 60px #000000b3;--shadow-card:0 2px 8px #0006, 0 0 0 1px #6ee7b70a;--dot-red:#ff5f57;--dot-yellow:#febc2e;--dot-green:#28c840;--blob-opacity:1}[data-theme=light]{--bg-page:#fff;--bg-section-alt:#f0f4f8;--bg-card:#fff;--bg-card-hover:#f7fafc;--bg-elevated:#fff;--surface-1:#0f172a0f;--surface-2:#0f172a0d;--surface-3:#0f172a14;--surface-hover:#0f172a12;--surface-active:#10b9811a;--text-heading:#050f1c;--text-body:#162032;--text-muted:#3d5166;--text-faint:#6b7e90;--border:#0f172a24;--border-mid:#0f172a33;--border-strong:#10b98199;--shadow-sm:0 1px 3px #0f172a24, 0 1px 2px #0f172a14;--shadow-md:0 4px 16px #0f172a21, 0 2px 6px #0f172a14;--shadow-lg:0 10px 32px #0f172a24, 0 4px 12px #0f172a14;--shadow-xl:0 20px 56px #0f172a29, 0 8px 20px #0f172a1a;--shadow-card:0 1px 4px #0f172a1a, 0 0 0 1px #0f172a12;--shadow-blue:0 8px 30px #10b9814d;--shadow-cyan:0 8px 30px #2dd4bf40;--dot-red:#ff5f57;--dot-yellow:#febc2e;--dot-green:#28c840;--blob-opacity:.35}:root{--blue-700:#047857;--blue-600:#059669;--blue-500:#10b981;--blue-400:#34d399;--blue-300:#6ee7b7;--cyan-500:#14b8a6;--cyan-400:#2dd4bf;--cyan-300:#5eead4;--purple-500:#059669;--purple-400:#34d399;--emerald-400:#34d399;--emerald-500:#10b981;--white:#fff;--font-display:"Space Grotesk", sans-serif;--font-body:"DM Sans", sans-serif;--font-mono:"JetBrains Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.0625rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--text-hero:clamp(2.75rem, 5.5vw, 4.5rem);--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--sp-14:3.5rem;--sp-16:4rem;--sp-20:5rem;--sp-24:6rem;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-2xl:20px;--r-3xl:28px;--r-full:9999px;--accent-subtle:#10b9811a;--accent-glow:#10b9814d;--shadow-blue:0 8px 30px #10b98140;--shadow-cyan:0 8px 30px #2dd4bf33;--t-fast:.15s ease;--t-base:.22s ease;--t-slow:.38s ease;--z-nav:200;--z-modal:500}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-body);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7;transition:background .3s,color .3s;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-body);background:0 0;border:none}ul,ol{list-style:none}input,textarea,select{font-family:var(--font-body)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-heading);font-weight:700;line-height:1.15}p{color:var(--text-body);line-height:1.75}.container{width:100%;max-width:1160px;margin:0 auto;padding:0 1.5rem}.section-pad{padding:var(--sp-20) 0}.s-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--blue-500);align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:600;display:inline-flex}.s-label:before{content:"";background:linear-gradient(90deg, var(--blue-500), var(--cyan-400));border-radius:2px;width:24px;height:1.5px}.s-title{font-family:var(--font-display);font-size:var(--text-4xl);color:var(--text-heading);letter-spacing:-.03em;font-weight:800;line-height:1.1}.s-subtitle{font-size:var(--text-base);color:var(--text-muted);max-width:580px;margin-top:var(--sp-4);line-height:1.8}.btn{font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:.01em;border-radius:var(--r-lg);transition:all var(--t-base);cursor:pointer;white-space:nowrap;border:1.5px solid #0000;align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-weight:600;line-height:1;display:inline-flex}.btn-primary{background:var(--blue-600);color:var(--white);border-color:var(--blue-600)}.btn-primary:hover{background:var(--blue-500);border-color:var(--blue-500);box-shadow:var(--shadow-blue);transform:translateY(-2px)}.btn-outline{color:var(--text-body);border-color:var(--border-mid);background:0 0}.btn-outline:hover{border-color:var(--blue-500);color:var(--blue-500);background:var(--surface-active);transform:translateY(-2px)}.btn-ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-hover);color:var(--text-heading);border-color:var(--border-mid);transform:translateY(-1px)}.btn-sm{font-size:var(--text-xs);padding:.5rem 1rem}.btn-lg{font-size:var(--text-base);padding:.875rem 1.75rem}.card{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-2xl);transition:all var(--t-base)}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-blue);transform:translateY(-3px)}.tag{background:var(--accent-subtle);color:var(--blue-500);font-size:var(--text-xs);border-radius:var(--r-full);font-weight:600;font-family:var(--font-mono);white-space:nowrap;border:1px solid #10b98140;align-items:center;padding:.2rem .6rem;display:inline-flex}.dot-pulse{background:var(--emerald-400);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2.4s ease-in-out infinite dp}@keyframes dp{0%,to{box-shadow:0 0 #34d39980}50%{box-shadow:0 0 0 5px #34d39900}}.divider{background:linear-gradient(90deg, transparent, var(--border-mid), transparent);border:none;height:1px}:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px;border-radius:var(--r-sm)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg-section-alt)}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--blue-600)}::selection{background:var(--blue-600);color:var(--white)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=768px){.section-pad{padding:var(--sp-14) 0}.container{padding:0 1rem}.s-title{font-size:var(--text-3xl)}}@media (width<=480px){.section-pad{padding:var(--sp-12) 0}.s-title{font-size:var(--text-2xl)}.s-subtitle{font-size:var(--text-sm)}.s-label{letter-spacing:.08em;font-size:.65rem}.s-label:before{width:16px}}.navbar{z-index:var(--z-nav);padding:1.25rem 0;transition:background .3s,padding .3s,border-color .3s;position:fixed;top:0;left:0;right:0}.navbar.scrolled{background:color-mix(in srgb, var(--bg-page) 92%, transparent);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);padding:.75rem 0}.navbar__inner{justify-content:space-between;align-items:center;gap:2rem;display:flex}.navbar__logo{transition:opacity var(--t-base);flex-shrink:0;align-items:center;gap:.75rem;text-decoration:none;display:flex}.navbar__logo:hover{opacity:.85}.navbar__logo-mark{background:linear-gradient(135deg, var(--blue-700), var(--blue-500));width:40px;height:40px;font-family:var(--font-display);color:var(--white);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:flex;box-shadow:0 0 16px #10b98166}.navbar__logo-text{flex-direction:column;line-height:1.2;display:flex}.navbar__logo-name{font-family:var(--font-display);color:var(--text-heading);font-size:.9375rem;font-weight:700}.navbar__logo-sub{font-family:var(--font-mono);color:var(--blue-500);letter-spacing:.08em;font-size:.625rem}.navbar__links{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-full);align-items:center;gap:2px;padding:4px;display:flex}.navbar__link a{font-size:var(--text-sm);color:var(--text-muted);border-radius:var(--r-full);transition:all var(--t-fast);padding:.4rem .9rem;font-weight:500;text-decoration:none;display:block}.navbar__link a:hover{color:var(--text-heading);background:var(--surface-hover)}.navbar__link.active a{color:var(--white);background:var(--blue-700);font-weight:600}.navbar__actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.navbar__resume-btn{background:var(--blue-600);color:var(--white);font-size:var(--text-sm);border-radius:var(--r-lg);border:1.5px solid var(--blue-500);transition:all var(--t-base);align-items:center;gap:.4rem;padding:.5rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.navbar__resume-btn:hover{background:var(--blue-500);transform:translateY(-1px);box-shadow:0 4px 16px #10b98159}.navbar__theme-btn{background:var(--surface-1);border:1px solid var(--border-mid);border-radius:var(--r-lg);width:38px;height:38px;color:var(--text-muted);cursor:pointer;transition:all var(--t-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.navbar__theme-btn:hover{background:var(--surface-active);border-color:var(--blue-500);color:var(--blue-500);transform:translateY(-1px)}.navbar__hamburger{background:var(--surface-1);border:1px solid var(--border);cursor:pointer;border-radius:var(--r-lg);width:38px;height:38px;transition:background var(--t-base);flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:6px;display:none}.navbar__hamburger:hover{background:var(--surface-hover)}.navbar__hamburger span{background:var(--text-body);width:20px;height:1.5px;transition:all var(--t-base);transform-origin:50%;border-radius:2px;display:block}.navbar__hamburger.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.navbar__hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.navbar__hamburger.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.navbar__mobile{background:color-mix(in srgb, var(--bg-page) 98%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:calc(var(--z-nav) - 1);flex-direction:column;padding:5.5rem 1.5rem 2rem;display:none;position:fixed;inset:0}.navbar__mobile.open{display:flex}.navbar__mobile-links{flex-direction:column;flex:1;gap:4px;display:flex}.navbar__mobile-link a{font-family:var(--font-display);color:var(--text-muted);border-radius:var(--r-xl);transition:all var(--t-base);letter-spacing:-.02em;border:1px solid #0000;justify-content:space-between;align-items:center;padding:1rem 1.25rem;font-size:1.5rem;font-weight:700;text-decoration:none;display:flex}.navbar__mobile-link a:hover,.navbar__mobile-link.active a{color:var(--text-heading);background:var(--surface-active);border-color:var(--border-strong);padding-left:1.75rem}.navbar__mobile-footer{border-top:1px solid var(--border);align-items:center;gap:.75rem;padding-top:1.5rem;display:flex}.navbar__mobile-resume{background:var(--blue-600);color:var(--white);font-size:var(--text-base);border-radius:var(--r-xl);transition:all var(--t-base);align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-weight:600;text-decoration:none;display:inline-flex}.navbar__mobile-resume:hover{background:var(--blue-500)}@media (width<=900px){.navbar__links,.navbar__resume-btn{display:none}.navbar__hamburger{display:flex}}@media (width>=901px){.navbar__hamburger{display:none}}@media (width<=380px){.navbar__logo-text{display:none}}.hero{background:var(--bg-page);align-items:center;min-height:100vh;padding:6.5rem 0 4rem;transition:background .3s;display:flex;position:relative;overflow:hidden}.hero__bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero__blob{filter:blur(90px);opacity:var(--blob-opacity);border-radius:50%;position:absolute}.hero__blob--1{background:radial-gradient(circle,#10b98129 0%,#0000 70%);width:560px;height:560px;top:-120px;right:-140px}.hero__blob--2{background:radial-gradient(circle,#2dd4bf12 0%,#0000 70%);width:400px;height:400px;bottom:-100px;left:-100px}.hero__grid-bg{background-image:radial-gradient(circle, var(--border-mid) 1px, transparent 1px);opacity:.4;background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(75% 65%,#000 30%,#0000 100%);mask-image:radial-gradient(75% 65%,#000 30%,#0000 100%)}.hero__grid{z-index:1;grid-template-columns:1.15fr .85fr;align-items:center;gap:3rem;width:100%;display:grid;position:relative}.hero__content{flex-direction:column;display:flex}.hero__greeting{flex-direction:column;gap:.625rem;margin-bottom:.5rem;display:flex}.hero__badge{border-radius:var(--r-full);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--emerald-400);background:#34d39914;border:1px solid #34d39940;align-items:center;gap:.5rem;width:fit-content;padding:.35rem .875rem;font-weight:500;display:inline-flex}.hero__hello{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-faint);font-weight:500}.hero__name{letter-spacing:-.03em;flex-direction:column;gap:.04em;margin-bottom:.625rem;font-family:Space Grotesk,sans-serif;font-size:clamp(2.25rem,4.5vw,3.75rem);font-style:normal;font-weight:800;line-height:1;display:flex}.hero__name-first{color:var(--text-heading);display:block}.hero__name-last{background:linear-gradient(110deg,#818cf8 0%,#38bdf8 55%,#34d399 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 16px #818cf859);-webkit-background-clip:text;background-clip:text;display:block;position:relative}.hero__name-last:after{content:"";opacity:.7;background:linear-gradient(90deg,#818cf8,#38bdf8,#0000);border-radius:2px;width:55%;height:2.5px;position:absolute;bottom:-5px;left:0}@media (prefers-reduced-motion:reduce){.hero__conic-ring,.hero__orbit-ring,.hero__glow-outer,.hero__scan{animation:none}}.hero__role-row{flex-wrap:wrap;align-items:center;gap:.5rem;min-height:1.75rem;margin-bottom:1.75rem;display:flex}.hero__role-prefix{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-faint);flex-shrink:0}.hero__role-prefix span{color:var(--cyan-400)}.hero__role-text{font-family:var(--font-mono);font-size:var(--text-base);color:var(--cyan-400);font-weight:500}.hero__cursor{background:var(--cyan-400);vertical-align:middle;width:2px;height:1.1em;margin-left:2px;animation:.9s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero__desc{font-size:var(--text-md);color:var(--text-muted);max-width:460px;margin-bottom:1.75rem;line-height:1.8}.hero__cta{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.hero__social-row{align-items:center;gap:.5rem;display:flex}.hero__status{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.04em;align-items:center;gap:.45rem;margin-top:1rem;font-size:.72rem;display:inline-flex}.hero__status .dot-pulse{width:6px;height:6px}.hero__status-text{color:var(--emerald-400);font-weight:500}.hero__social-btn{background:var(--surface-1);border:1px solid var(--border-mid);border-radius:var(--r-lg);width:40px;height:40px;color:var(--text-muted);transition:all var(--t-base);justify-content:center;align-items:center;text-decoration:none;display:flex}.hero__social-btn:hover{background:var(--surface-active);border-color:var(--blue-500);color:var(--blue-500);transform:translateY(-2px)}.hero__visual{justify-content:center;align-items:center;display:flex;position:relative}.hero__photo{justify-content:center;align-items:center;width:400px;height:400px;display:flex;position:relative}.hero__glow-outer{filter:blur(24px);pointer-events:none;background:radial-gradient(circle,#818cf81f 0%,#c084fc14 35%,#10b9810d 60%,#0000 75%);border-radius:50%;animation:4s ease-in-out infinite alternate glow-breathe;position:absolute;inset:-40px}.hero__glow-inner{filter:blur(12px);pointer-events:none;background:radial-gradient(circle,#2dd4bf1a 0%,#0000 70%);border-radius:50%;position:absolute;inset:20px}@keyframes glow-breathe{0%{opacity:.7;transform:scale(.97)}to{opacity:1;transform:scale(1.03)}}.hero__orbit-ring{pointer-events:none;border:1.5px dashed #818cf838;border-radius:50%;animation:18s linear infinite orbit-ccw;position:absolute;inset:-22px}.hero__orbit-ring:before{content:"";background:#818cf8;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:-5px;transform:translateY(-50%);box-shadow:0 0 10px 3px #818cf899}@keyframes orbit-ccw{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.hero__conic-ring{pointer-events:none;border-radius:50%;padding:3px;animation:3.5s linear infinite spin-conic;position:absolute;inset:-6px}.hero__conic-track{background:conic-gradient(#0000 0%,#34d399 15%,#38bdf8 30%,#818cf8 45%,#c084fc 60%,#f472b6 75%,#0000 85% 100%);border-radius:50%;width:100%;height:100%;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 3px))}@keyframes spin-conic{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hero__portrait-wrap{z-index:2;background:linear-gradient(160deg,#0d241a 0%,#0b1f17 100%);border-radius:50%;width:360px;height:360px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #818cf826,0 20px 60px #0009,inset 0 1px #ffffff0d}.hero__portrait-img{object-fit:cover;z-index:1;width:100%;height:100%;transition:transform .6s;position:absolute;inset:0}.hero__portrait-wrap:hover .hero__portrait-img{transform:scale(1.04)}.hero__portrait-fallback{font-family:var(--font-display);background:linear-gradient(135deg,#818cf8,#c084fc);-webkit-text-fill-color:transparent;z-index:0;-webkit-background-clip:text;background-clip:text;justify-content:center;align-items:center;font-size:3rem;font-weight:800;display:flex;position:absolute;inset:0}.hero__portrait-wrap--fallback .hero__portrait-img{display:none}.hero__scan{z-index:3;pointer-events:none;opacity:0;background:linear-gradient(#0000 0%,#818cf80f 45%,#818cf81f 50%,#818cf80f 55%,#0000 100%) 0 -100%/100% 200%;transition:opacity .3s;animation:6s ease-in-out infinite scan-idle;position:absolute;inset:0}@keyframes scan-idle{0%,to{opacity:0;background-position:0 -100%}40%{opacity:0}50%{opacity:1;background-position:0 100%}65%{opacity:0;background-position:0 200%}}.hero__chip{border-radius:var(--r-xl);-webkit-backdrop-filter:blur(12px);z-index:4;background:#0b1f17d9;border:1px solid #818cf840;flex-direction:column;align-items:center;gap:1px;min-width:72px;padding:.45rem .75rem;display:flex;position:absolute;box-shadow:0 4px 20px #0006,0 0 0 1px #ffffff0a}.hero__chip-value{font-family:var(--font-display);background:linear-gradient(135deg,#818cf8,#c084fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:800;line-height:1}.hero__chip-icon{font-size:1rem;line-height:1}.hero__chip-label{font-family:var(--font-mono);color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:.6rem}.hero__chip--tl{top:18px;left:-20px}.hero__chip--br{bottom:18px;right:-20px}.hero__chip--tr{top:18px;right:-20px}@media (width<=960px){.hero__grid{text-align:center;grid-template-columns:1fr;gap:2.5rem}.hero__visual{order:-1}.hero__greeting,.hero__name{align-items:center}.hero__name-last:after{left:50%;transform:translate(-50%)}.hero__cta,.hero__social-row,.hero__status{justify-content:center}.hero__photo{width:340px;height:340px}.hero__portrait-wrap{width:300px;height:300px}}@media (width<=600px){.hero{padding:5rem 0 3rem}.hero__name{gap:.02em;font-size:2.25rem}.hero__desc{font-size:var(--text-base)}.hero__cta{width:100%}.hero__cta .btn{flex:1;justify-content:center}.hero__cta .btn-lg{font-size:var(--text-sm);padding:.7rem 1rem}.hero__photo{width:280px;height:280px}.hero__portrait-wrap{width:245px;height:245px}.hero__orbit-ring{inset:-16px}.hero__conic-ring{inset:-4px}}@media (width<=380px){.hero__name{gap:.02em;font-size:1.875rem}.hero__photo{width:240px;height:240px}.hero__portrait-wrap{width:210px;height:210px}.hero__cta{flex-direction:column}.hero__cta .btn{width:100%}}.about{background:var(--bg-section-alt);padding:var(--sp-20) 0;transition:background .3s;position:relative}.about__sep{background:linear-gradient(90deg,#0000 5%,#10b9814d 50%,#0000 95%);height:1px;position:absolute;left:0;right:0}.about__sep--top{top:0}.about__sep--bot{bottom:0}.about__head{text-align:center;margin-bottom:3rem}.about__grid{grid-template-columns:320px 1fr;align-items:center;gap:3.5rem;max-width:960px;margin:0 auto;display:grid}.about__left{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.about__photo{flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:relative}.about__photo-ring{background:linear-gradient(135deg, var(--blue-500) 0%, var(--cyan-400) 50%, var(--purple-500) 100%);border-radius:50%;padding:3px;position:relative;box-shadow:0 8px 30px #00000059}.about__img-frame{background:linear-gradient(160deg, var(--bg-card-hover) 0%, var(--bg-card) 100%);border-radius:50%;width:240px;height:240px;position:relative;overflow:hidden}.about__portrait-img{object-fit:cover;z-index:2;width:100%;height:100%;position:absolute;inset:0}.about__portrait-img[style*="display: none"]~.about__portrait-fallback{display:flex}.about__portrait-fallback{font-family:var(--font-display);background:linear-gradient(135deg, var(--blue-400), var(--cyan-400));-webkit-text-fill-color:transparent;z-index:1;-webkit-background-clip:text;background-clip:text;justify-content:center;align-items:center;font-size:3rem;font-weight:800;display:none;position:absolute;inset:0}.about__photo-badge{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-full);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--blue-500);box-shadow:var(--shadow-md);padding:.3rem .875rem;font-weight:600}.about__stats{justify-content:center;gap:1rem;display:flex}.about__stat{text-align:center;border:none;border-left:1px solid var(--border-mid);background:0 0;padding:.625rem 1rem}.about__stat:first-child{border-left:none}.about__stat-n{font-family:var(--font-display);font-size:var(--text-xl);background:linear-gradient(135deg, var(--blue-400), var(--cyan-400));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800;line-height:1.2;display:block}.about__stat-l{font-family:var(--font-mono);color:var(--text-faint);margin-top:2px;font-size:.65rem;font-weight:500;display:block}.about__right{flex-direction:column;gap:1.75rem;display:flex}.about__intro{font-size:var(--text-md);color:var(--text-muted);max-width:480px;line-height:1.85}.about__intro strong{color:var(--text-heading);font-weight:600}.about__focus{flex-wrap:wrap;gap:.75rem;display:flex}.about__focus-card{background:var(--surface-2);border:1px solid var(--border-mid);border-radius:var(--r-xl);transition:all var(--t-base);flex:1;align-items:center;gap:.75rem;min-width:140px;padding:.75rem 1rem .75rem .75rem;display:flex}.about__focus-card:hover{background:var(--surface-active);border-color:var(--border-strong);transform:translateY(-2px)}.about__focus-icon{border-radius:var(--r-lg);background:var(--accent-subtle);width:38px;height:38px;color:var(--blue-500);transition:all var(--t-base);border:1px solid #10b98133;flex-shrink:0;justify-content:center;align-items:center;display:flex}.about__focus-card:hover .about__focus-icon{background:#10b9812e;box-shadow:0 0 12px #10b98133}.about__focus-label{font-family:var(--font-display);font-size:var(--text-sm);color:var(--text-heading);letter-spacing:-.01em;font-weight:700;display:block}.about__focus-desc{font-family:var(--font-mono);color:var(--text-faint);margin-top:1px;font-size:.65rem;display:block}.about__cta{flex-wrap:wrap;gap:.75rem;display:flex}@media (width<=768px){.about__grid{text-align:center;grid-template-columns:1fr;gap:2.5rem}.about__left,.about__right{align-items:center}.about__intro{text-align:center}.about__focus,.about__cta{justify-content:center}}@media (width<=480px){.about__img-frame{width:180px;height:180px}.about__stats{gap:.75rem}.about__stat{padding:.5rem .75rem}.about__stat-n{font-size:var(--text-lg)}.about__intro{font-size:var(--text-base)}.about__focus-card{min-width:120px;padding:.625rem .875rem}.about__focus-icon{width:34px;height:34px}.about__focus-label{font-size:var(--text-xs)}.about__focus-desc{font-size:.6rem}}.skills{background:var(--bg-page);padding:var(--sp-20) 0;transition:background .3s}.skills__header{text-align:center;margin-bottom:3.5rem}.skills__header .s-subtitle{text-align:center;margin:1rem auto 0}.skills__grid{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.sk-card{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-2xl);transition:all var(--t-base);padding:1.5rem;position:relative;overflow:hidden}.sk-card:before{content:"";background:linear-gradient(90deg, var(--blue-600), var(--cyan-400));transform-origin:0;height:2px;transition:transform var(--t-slow);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.sk-card:hover:before{transform:scaleX(1)}.sk-card:hover{border-color:var(--border-strong);box-shadow:0 8px 32px #10b9811a, var(--shadow-md);transform:translateY(-4px)}.sk-card__head{border-bottom:1px solid var(--border);align-items:center;gap:.875rem;margin-bottom:1.25rem;padding-bottom:1.125rem;display:flex;position:relative}.sk-card__head:after{content:"";background:linear-gradient(90deg, var(--blue-500), var(--cyan-400));width:40px;height:1px;transition:width var(--t-base);border-radius:2px;position:absolute;bottom:-1px;left:0}.sk-card:hover .sk-card__head:after{width:100%}.sk-card__icon{border-radius:var(--r-lg);background:var(--accent-subtle);width:40px;height:40px;color:var(--blue-500);transition:all var(--t-base);border:1px solid #10b98140;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sk-card:hover .sk-card__icon{background:#10b9812e;box-shadow:0 0 16px #10b98140}.sk-card__title{font-family:var(--font-display);font-size:var(--text-base);color:var(--text-heading);font-weight:700}.sk-card__items{flex-wrap:wrap;gap:.5rem;display:flex}.sk-item{background:var(--surface-1);border:1px solid var(--border-mid);border-radius:var(--r-full);font-size:var(--text-xs);color:var(--text-body);transition:all var(--t-fast);cursor:default;white-space:nowrap;font-weight:500;font-family:var(--font-body);align-items:center;gap:.35rem;padding:.3rem .75rem;line-height:1.4;display:inline-flex}.sk-item:hover{background:var(--surface-active);border-color:var(--blue-500);color:var(--blue-500);transform:translateY(-1px)}.sk-item__emoji{flex-shrink:0;font-size:.8rem;line-height:1}@media (width<=1024px){.skills__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.skills__grid{grid-template-columns:1fr}}.projects{background:var(--bg-section-alt);padding:var(--sp-20) 0;transition:background .3s;position:relative;overflow:hidden}.projects__glow{pointer-events:none;background:radial-gradient(#10b98112 0%,#0000 70%);border-radius:50%;width:700px;height:350px;position:absolute;top:-150px;left:50%;transform:translate(-50%)}.projects__header{margin-bottom:2.5rem}.projects__header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.projects__filters{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-full);flex-wrap:wrap;gap:4px;padding:4px;display:flex}.pf-btn{border-radius:var(--r-full);font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;transition:all var(--t-fast);font-weight:600;font-family:var(--font-body);white-space:nowrap;background:0 0;border:none;padding:.4rem 1.1rem}.pf-btn:hover{color:var(--text-heading);background:var(--surface-hover)}.pf-btn.active{background:var(--blue-700);color:var(--white);box-shadow:0 0 14px #10b98159}.projects__grid{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}.pcard{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-2xl);cursor:pointer;transition:all var(--t-base);flex-direction:column;display:flex;position:relative;overflow:hidden}.pcard:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}.pcard:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg), 0 0 40px #10b9811a;transform:translateY(-5px)}.pcard__bar{background:var(--surface-2);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.pcard__dots{flex-shrink:0;gap:6px;display:flex}.pcard__dot{width:11px;height:11px;transition:transform var(--t-fast);border-radius:50%}.pcard__dot--red{background:var(--dot-red)}.pcard__dot--yellow{background:var(--dot-yellow)}.pcard__dot--green{background:var(--dot-green)}.pcard:hover .pcard__dot--red,.pcard:hover .pcard__dot--yellow,.pcard:hover .pcard__dot--green{transform:translateY(-1px)}.pcard__filename{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.pcard__number{font-family:var(--font-mono);color:var(--blue-500);background:var(--accent-subtle);border-radius:var(--r-full);letter-spacing:.04em;border:1px solid #10b98133;flex-shrink:0;padding:2px 7px;font-size:.65rem;font-weight:600}.pcard__body{flex-direction:column;flex:1;gap:.875rem;padding:1.5rem;display:flex}.pcard__top{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.pcard__cat{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan-500);align-items:center;gap:6px;font-weight:600;display:flex}.pcard__cat-dot{background:var(--cyan-400);border-radius:50%;flex-shrink:0;width:6px;height:6px}.pcard__emoji{border-radius:var(--r-lg);background:linear-gradient(135deg, var(--accent-subtle), #2dd4bf0f);border:1px solid #10b98126;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.4rem;display:flex}.pcard__title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-heading);letter-spacing:-.025em;font-weight:800;line-height:1.2}.pcard__sub{font-size:var(--text-sm);color:var(--text-muted);font-weight:500;line-height:1.5}.pcard__desc{font-size:var(--text-sm);color:var(--text-muted);-webkit-line-clamp:3;background:var(--surface-2);border-radius:var(--r-lg);border:1px solid var(--border);-webkit-box-orient:vertical;flex:1;padding:.625rem .875rem;line-height:1.75;display:-webkit-box;overflow:hidden}.pcard__techs{flex-wrap:wrap;gap:.375rem;display:flex}.pcard__tech{background:var(--accent-subtle);border-radius:var(--r-full);color:var(--blue-500);font-size:.68rem;font-weight:600;font-family:var(--font-mono);white-space:nowrap;border:1px solid #10b98133;padding:.2rem .55rem}.pcard__footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;padding-top:.875rem;display:flex}.pcard__links{gap:.375rem;display:flex}.pcard__link-btn{background:var(--surface-1);border:1px solid var(--border-mid);border-radius:var(--r-md);width:34px;height:34px;color:var(--text-muted);cursor:pointer;transition:all var(--t-fast);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:flex}.pcard__link-btn:hover{background:var(--surface-active);border-color:var(--blue-500);color:var(--blue-500);transform:translateY(-2px)}.pcard__link-btn:disabled{opacity:.35;cursor:not-allowed}.pcard__link-btn:disabled:hover{background:var(--surface-1);border-color:var(--border-mid);color:var(--text-muted);transform:none}.pcard__details-btn{background:var(--blue-700);color:var(--white);font-size:var(--text-xs);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);font-weight:700;font-family:var(--font-body);white-space:nowrap;border:none;align-items:center;gap:.3rem;padding:.45rem .875rem;display:inline-flex}.pcard__details-btn:hover{background:var(--blue-600);transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.modal-bg{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:var(--z-modal);background:#020917e0;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0;overflow-y:auto}[data-theme=light] .modal-bg{background:#0f172aa6}.modal-box{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--r-2xl);width:100%;max-width:620px;max-height:88vh;box-shadow:var(--shadow-xl), 0 0 60px #10b9811a;position:relative;overflow-y:auto}.modal-box__header{border-bottom:1px solid var(--border);padding:2rem 2rem 1.5rem;position:relative}.modal-box__close{border-radius:var(--r-lg);background:var(--surface-1);border:1px solid var(--border-mid);cursor:pointer;width:34px;height:34px;color:var(--text-muted);transition:all var(--t-base);justify-content:center;align-items:center;display:flex;position:absolute;top:1.25rem;right:1.25rem}.modal-box__close:hover{background:var(--blue-700);border-color:var(--blue-600);color:var(--white)}.modal-box__cat{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan-500);margin-bottom:.5rem;font-weight:600}.modal-box__title{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--text-heading);letter-spacing:-.03em;font-weight:800;line-height:1.1}.modal-box__sub{font-size:var(--text-base);color:var(--text-muted);margin-top:.25rem}.modal-box__body{flex-direction:column;gap:1.25rem;padding:1.5rem 2rem 2rem;display:flex}.modal-box__desc{font-size:var(--text-base);color:var(--text-muted);line-height:1.8}.modal-box__sec-title{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.75rem;font-weight:600}.modal-box__techs{flex-wrap:wrap;gap:.5rem;display:flex}.modal-box__tech{background:var(--accent-subtle);border-radius:var(--r-full);font-size:var(--text-xs);color:var(--blue-500);font-weight:700;font-family:var(--font-mono);border:1px solid #10b98140;padding:.35rem .875rem}.modal-box__actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:.75rem;padding-top:.75rem;display:flex}@media (width<=768px){.projects__grid{grid-template-columns:1fr}.projects__header-row{flex-direction:column;align-items:flex-start}}@media (width<=480px){.pcard__body{padding:1.125rem}.pcard__title{font-size:var(--text-lg)}.pcard__desc{padding:.5rem .75rem;font-size:.8rem}.pcard__tech{padding:.15rem .45rem;font-size:.6rem}.pcard__bar{padding:.5rem .75rem}.pcard__filename{font-size:.65rem}.modal-box{max-width:100%}.modal-box__header{padding:1.5rem 1.25rem 1rem}.modal-box__body{padding:1rem 1.25rem 1.5rem}.modal-box__title{font-size:var(--text-2xl)}.modal-bg{padding:.75rem}.pf-btn{padding:.35rem .75rem;font-size:.65rem}}.experience{background:var(--bg-page);padding:var(--sp-20) 0;transition:background .3s}.exp__header{text-align:center;margin-bottom:3.5rem}.exp__header .s-subtitle{text-align:center;margin:1rem auto 0}.exp__grid{grid-template-columns:repeat(2,1fr);gap:1.25rem;max-width:1000px;margin:0 auto;display:grid}.exp-card{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-2xl);transition:all var(--t-base);display:flex;position:relative;overflow:hidden}.exp-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg), 0 0 30px #10b98114;transform:translateY(-4px)}.exp-card__side{background:var(--surface-2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:center;gap:.875rem;width:76px;padding:1.25rem .5rem;display:flex;position:relative}.exp-card__side:before{content:"";background:linear-gradient(90deg, var(--blue-600), var(--cyan-400));opacity:0;height:3px;transition:opacity var(--t-base);position:absolute;top:0;left:0;right:0}.exp-card:hover .exp-card__side:before{opacity:1}.exp-card__icon{border-radius:var(--r-xl);width:44px;height:44px;color:var(--white);transition:all var(--t-base);flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 0 14px #10b98140}.exp-card:hover .exp-card__icon{transform:scale(1.1);box-shadow:0 0 22px #10b98166}.exp-card__num{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.04em;font-size:.7rem;font-weight:600}.exp-card__body{flex-direction:column;flex:1;gap:.625rem;padding:1.25rem 1.375rem;display:flex}.exp-card__meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.exp-card__badge{border-radius:var(--r-full);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:.2rem .625rem;font-size:.65rem;font-weight:700}.exp-card__badge.education{color:var(--cyan-500);background:#2dd4bf1a;border:1px solid #2dd4bf40}.exp-card__badge.project{background:var(--surface-active);color:var(--blue-500);border:1px solid #10b98140}.exp-card__badge.learning{background:var(--surface-3);color:var(--text-muted);border:1px solid var(--border-mid)}.exp-card__period{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint);align-items:center;gap:4px;font-weight:500;display:inline-flex}.exp-card__title{font-family:var(--font-display);font-size:var(--text-base);color:var(--text-heading);letter-spacing:-.02em;font-weight:700;line-height:1.3}.exp-card__desc{font-size:var(--text-xs);color:var(--text-muted);line-height:1.7}@media (width<=768px){.exp__grid{grid-template-columns:1fr}}@media (width<=480px){.exp-card__side{width:64px;padding:1rem .375rem}.exp-card__icon{width:38px;height:38px}.exp-card__body{padding:1rem 1.125rem}.exp-card__title{font-size:var(--text-sm)}.exp-card__desc{font-size:.65rem}.exp-card__h{padding:.125rem .4rem;font-size:.6rem}}.services{background:var(--bg-section-alt);padding:var(--sp-20) 0;transition:background .3s;position:relative;overflow:hidden}.services:before{content:"";pointer-events:none;background:radial-gradient(circle,#10b9810f 0%,#0000 65%);border-radius:50%;width:550px;height:550px;position:absolute;bottom:-120px;right:-120px}.svc__header{text-align:center;margin-bottom:3.5rem;position:relative}.svc__header .s-subtitle{text-align:center;margin:1rem auto 0}.svc__grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid;position:relative}.svc-card{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-2xl);transition:all var(--t-base);cursor:default;flex-direction:column;gap:.75rem;padding:1.5rem;display:flex;position:relative;overflow:hidden}.svc-card:before{content:"";opacity:0;width:100px;height:100px;transition:opacity var(--t-base);pointer-events:none;background:radial-gradient(circle,#10b98114 0%,#0000 70%);border-radius:50%;position:absolute;top:-40px;right:-40px}.svc-card:hover:before{opacity:1}.svc-card__num{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.04em;opacity:.5;transition:opacity var(--t-base);font-size:.65rem;font-weight:600;position:absolute;top:1rem;right:1.25rem}.svc-card:hover .svc-card__num{opacity:1;color:var(--blue-500)}.svc-card:after{content:"";background:linear-gradient(90deg, var(--blue-600), var(--cyan-400));transform-origin:0;height:2px;transition:transform var(--t-slow);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.svc-card:hover:after{transform:scaleX(1)}.svc-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-lg), 0 0 24px #10b98114;transform:translateY(-5px)}.svc-card__icon{border-radius:var(--r-xl);background:var(--accent-subtle);width:46px;height:46px;color:var(--blue-500);transition:all var(--t-base);border:1px solid #10b98133;flex-shrink:0;justify-content:center;align-items:center;display:flex}.svc-card:hover .svc-card__icon{color:var(--cyan-400);background:#10b9812e;box-shadow:0 0 18px #10b98140}.svc-card__title{font-family:var(--font-display);font-size:var(--text-base);color:var(--text-heading);letter-spacing:-.01em;font-weight:700;line-height:1.3}.svc-card__desc{font-size:var(--text-sm);color:var(--text-muted);flex:1;line-height:1.7}@media (width<=1100px){.svc__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.svc__grid{grid-template-columns:1fr}}.github{background:var(--bg-page);padding:var(--sp-20) 0;transition:background .3s}.gh__header{margin-bottom:3.5rem}.gh__grid{grid-template-columns:320px 1fr;align-items:start;gap:2.5rem;display:grid}.gh__left{flex-direction:column;gap:1.25rem;display:flex}.gh__profile{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-2xl);text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex;position:relative;overflow:hidden}.gh__profile:before{content:"";background:linear-gradient(90deg, transparent, var(--blue-500), transparent);height:1px;position:absolute;top:0;left:10%;right:10%}.gh__avatar{background:linear-gradient(135deg, var(--blue-700), var(--blue-400));width:72px;height:72px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 0 28px #10b98166}.gh__name{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-heading);letter-spacing:-.02em;font-weight:800}.gh__bio{font-size:var(--text-sm);color:var(--text-muted);line-height:1.65}.gh__stats{gap:.75rem;width:100%;display:flex}.gh__stat{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-xl);flex-direction:column;flex:1;align-items:center;gap:3px;padding:.75rem .5rem;display:flex}.gh__stat-v{font-family:var(--font-display);font-size:var(--text-xl);background:linear-gradient(135deg, var(--blue-400), var(--cyan-400));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.gh__stat-l{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint);text-align:center;line-height:1.3}.gh__link{background:var(--blue-700);width:100%;color:var(--white);font-size:var(--text-sm);border-radius:var(--r-xl);transition:all var(--t-base);border:1px solid var(--blue-600);justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;text-decoration:none;display:inline-flex}.gh__link:hover{background:var(--blue-600);box-shadow:var(--shadow-blue);transform:translateY(-2px)}.gh__notice{background:var(--accent-subtle);border-radius:var(--r-xl);font-size:var(--text-xs);color:var(--text-faint);line-height:1.6;font-family:var(--font-mono);border:1px solid #10b98126;align-items:flex-start;gap:.625rem;padding:.875rem 1rem;display:flex}.gh__notice-icon{color:var(--blue-500);flex-shrink:0;margin-top:1px}.gh__right{flex-direction:column;gap:1.25rem;display:flex}.gh__repos-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-heading);letter-spacing:-.02em;font-weight:700}.gh__repos{flex-direction:column;gap:.75rem;display:flex}.gh-repo{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-2xl);transition:all var(--t-base);flex-direction:column;gap:.625rem;padding:1.25rem;display:flex;position:relative;overflow:hidden}.gh-repo:before{content:"";background:linear-gradient(to bottom, var(--blue-500), var(--cyan-500));transform-origin:50%;width:2px;transition:transform var(--t-base);border-radius:2px;position:absolute;top:20%;bottom:20%;left:0;transform:scaleY(0)}.gh-repo:hover:before{transform:scaleY(1)}.gh-repo:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translate(4px)}.gh-repo__header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.gh-repo__name{font-family:var(--font-display);font-size:var(--text-base);color:var(--text-heading);font-weight:700}.gh-repo__desc{font-size:var(--text-sm);color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:.625rem .875rem;line-height:1.65}.gh-repo__footer{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.gh-repo__lang{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:5px;display:flex}.gh-repo__dot{border-radius:50%;width:10px;height:10px}.gh-repo__meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint);align-items:center;gap:3px;display:flex}@media (width<=900px){.gh__grid{grid-template-columns:1fr}}@media (width<=480px){.gh__profile{padding:1.5rem}.gh__stats{gap:.5rem}.gh__stat{padding:.5rem .25rem}.gh__stat-v{font-size:var(--text-lg)}.gh__stat-l{font-size:.6rem}.gh-repo{padding:1rem}.gh-repo__desc{font-size:var(--text-xs)}}.contact{background:var(--bg-section-alt);padding:var(--sp-20) 0;transition:background .3s;position:relative;overflow:hidden}.contact:before{content:"";pointer-events:none;background:radial-gradient(circle,#10b9810f 0%,#0000 65%);border-radius:50%;width:500px;height:500px;position:absolute;top:-100px;right:-120px}.contact:after{content:"";pointer-events:none;background:radial-gradient(circle,#2dd4bf0a 0%,#0000 65%);border-radius:50%;width:360px;height:360px;position:absolute;bottom:-80px;left:-100px}.ct__header{text-align:center;margin-bottom:3rem}.ct__header .s-subtitle{text-align:center;margin:1rem auto 0}.ct__grid{z-index:1;grid-template-columns:1fr 1.5fr;align-items:start;gap:2.5rem;max-width:1000px;margin:0 auto;display:grid;position:relative}.ct__left{flex-direction:column;gap:1rem;display:flex}.ct__info{flex-direction:column;gap:.625rem;display:flex}.ct-item{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-xl);transition:all var(--t-base);align-items:center;gap:.875rem;padding:.75rem 1rem .75rem .75rem;text-decoration:none;display:flex;position:relative;overflow:hidden}.ct-item:after{content:"";background:linear-gradient(to bottom, var(--blue-500), var(--cyan-400));opacity:0;width:2px;transition:opacity var(--t-base);position:absolute;top:0;bottom:0;left:0}.ct-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translate(4px)}.ct-item:hover:after{opacity:1}.ct-item__icon{border-radius:var(--r-lg);background:linear-gradient(135deg, var(--blue-700), var(--blue-500));width:40px;height:40px;color:var(--white);flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 0 10px #10b98133}.ct-item__label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-size:.6rem;font-weight:600;display:block}.ct-item__val{font-size:var(--text-sm);color:var(--text-heading);margin-top:1px;font-weight:600;display:block}.ct__socials{flex-wrap:wrap;gap:.5rem;display:flex}.ct-social{background:var(--surface-1);border:1px solid var(--border-mid);border-radius:var(--r-full);font-size:var(--text-xs);color:var(--text-muted);transition:all var(--t-base);align-items:center;gap:.375rem;padding:.4rem .75rem;font-weight:600;text-decoration:none;display:inline-flex}.ct-social:hover{background:var(--surface-active);border-color:var(--blue-500);color:var(--blue-500);transform:translateY(-2px)}.ct__form-wrap{background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--r-2xl);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.ct__form-bar{background:var(--surface-2);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:.625rem;padding:.625rem 1rem;display:flex}.ct__form-dots{flex-shrink:0;gap:6px;display:flex}.ct__form-dots span{border-radius:50%;width:11px;height:11px}.ct__form-dots span:first-child{background:var(--dot-red)}.ct__form-dots span:nth-child(2){background:var(--dot-yellow)}.ct__form-dots span:nth-child(3){background:var(--dot-green)}.ct__form-file{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);flex:1;font-weight:500}.ct__form-lang{font-family:var(--font-mono);color:var(--blue-500);background:var(--accent-subtle);border-radius:var(--r-full);border:1px solid #10b98133;padding:2px 7px;font-size:.6rem;font-weight:600}.ct__form{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.f-row{grid-template-columns:1fr 1fr;gap:.875rem;display:grid}.f-group{flex-direction:column;gap:.375rem;display:flex}.f-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.f-label .req{color:var(--blue-500);margin-left:2px}.f-input,.f-textarea{background:var(--surface-1);border:1.5px solid var(--border-mid);border-radius:var(--r-lg);width:100%;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-heading);transition:all var(--t-base);outline:none;padding:.7rem .875rem}.f-input::placeholder,.f-textarea::placeholder{color:var(--text-faint)}.f-input:focus,.f-textarea:focus{border-color:var(--blue-500);background:var(--surface-active);box-shadow:0 0 0 3px #10b98124}.f-input.err,.f-textarea.err{border-color:#ef4444}.f-err{font-family:var(--font-mono);font-size:var(--text-xs);color:#f87171}.f-textarea{resize:vertical;min-height:120px;line-height:1.7}.f-submit{background:var(--blue-600);color:var(--white);font-family:var(--font-body);font-size:var(--text-sm);border-radius:var(--r-lg);border:1.5px solid var(--blue-600);cursor:pointer;transition:all var(--t-base);justify-content:center;align-self:flex-start;align-items:center;gap:.5rem;padding:.8rem 1.75rem;font-weight:700;display:inline-flex}.f-submit:hover:not(:disabled){background:var(--blue-500);border-color:var(--blue-500);box-shadow:var(--shadow-blue);transform:translateY(-2px)}.f-submit:disabled{opacity:.6;cursor:not-allowed}.f-status{border-radius:var(--r-lg);font-size:var(--text-sm);align-items:flex-start;gap:.75rem;padding:.875rem 1rem;font-weight:500;line-height:1.6;display:flex}.f-status.ok{color:var(--emerald-400);background:#34d39914;border:1px solid #34d39940}.f-status.fail{color:#f87171;background:#ef444414;border:1px solid #ef444440}.f-notice{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint);align-items:flex-start;gap:.5rem;line-height:1.6;display:flex}@media (width<=900px){.ct__grid{grid-template-columns:1fr}}@media (width<=600px){.f-row{grid-template-columns:1fr}.ct__form{padding:1.125rem}}@media (width<=380px){.ct-item{gap:.625rem;padding:.625rem .875rem .625rem .625rem}.ct-item__icon{width:36px;height:36px}.ct__form{padding:1rem}.f-input,.f-textarea{font-size:var(--text-xs);padding:.625rem .75rem}.f-submit{width:100%}}.footer{background:var(--bg-section-alt);border-top:1px solid var(--border);padding:4rem 0 2rem;transition:background .3s;position:relative}.footer:before{content:"";background:linear-gradient(90deg, transparent, var(--blue-600) 50%, transparent);height:1px;position:absolute;top:0;left:10%;right:10%}.ft__top{border-bottom:1px solid var(--border);grid-template-columns:1.5fr 1fr 1fr;gap:3rem;padding-bottom:3rem;display:grid}.ft__brand{flex-direction:column;gap:1.25rem;display:flex}.ft__logo{align-items:center;gap:.75rem;text-decoration:none;display:flex}.ft__logo-mark{border-radius:var(--r-lg);background:linear-gradient(135deg, var(--blue-700), var(--blue-500));width:40px;height:40px;font-family:var(--font-display);color:var(--white);justify-content:center;align-items:center;font-size:.875rem;font-weight:800;display:flex;box-shadow:0 0 18px #10b98166}.ft__logo-text{flex-direction:column;line-height:1.25;display:flex}.ft__logo-name{font-family:var(--font-display);font-size:var(--text-base);color:var(--text-heading);font-weight:700}.ft__logo-sub{font-family:var(--font-mono);color:var(--blue-500);letter-spacing:.08em;font-size:.625rem}.ft__tagline{font-size:var(--text-sm);color:var(--text-muted);max-width:300px;line-height:1.75}.ft__socials{gap:.5rem;display:flex}.ft__social{border-radius:var(--r-lg);background:var(--surface-1);border:1px solid var(--border-mid);width:34px;height:34px;color:var(--text-muted);transition:all var(--t-base);justify-content:center;align-items:center;text-decoration:none;display:flex}.ft__social:hover{background:var(--surface-active);border-color:var(--blue-600);color:var(--blue-500);transform:translateY(-2px)}.ft__col-head{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin-bottom:1.25rem;font-size:.65rem;font-weight:700}.ft__links{flex-direction:column;gap:.625rem;display:flex}.ft__link{font-size:var(--text-sm);color:var(--text-muted);transition:color var(--t-fast);align-items:center;gap:.375rem;text-decoration:none;display:inline-flex}.ft__link:hover{color:var(--blue-500)}.ft__bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:2rem;display:flex}.ft__copy{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint);line-height:1.6}.ft__copy strong{color:var(--text-muted)}.ft__back-top{background:var(--surface-1);border:1px solid var(--border-mid);border-radius:var(--r-full);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;transition:all var(--t-base);align-items:center;gap:.375rem;padding:.45rem .875rem;font-weight:600;display:flex}.ft__back-top:hover{background:var(--surface-active);border-color:var(--blue-600);color:var(--blue-500);transform:translateY(-2px)}@media (width<=768px){.ft__top{grid-template-columns:1fr 1fr;gap:2rem}.ft__brand{grid-column:1/-1}}@media (width<=480px){.ft__top{grid-template-columns:1fr}.ft__bottom{flex-direction:column;align-items:flex-start}}
