:root{--color-bg-primary:#0a0e1a;--color-bg-secondary:#111827;--color-bg-tertiary:#1a2035;--color-bg-card:#11182799;--color-bg-glass:#11182773;--color-bg-glass-hover:#1a2035a6;--color-text-primary:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#7c8aa0;--color-accent:#3b82f6;--color-accent-hover:#60a5fa;--color-accent-glow:#3b82f640;--color-accent-purple:#8b5cf6;--color-accent-gradient:linear-gradient(135deg, #3b82f6, #8b5cf6);--color-accent-gradient-text:linear-gradient(135deg, #60a5fa, #a78bfa, #60a5fa);--color-border:#94a3b81a;--color-border-hover:#3b82f64d;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-size-6xl:3.75rem;--font-size-hero:clamp(2.5rem, 6vw, 5rem);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.1;--line-height-snug:1.3;--line-height-normal:1.6;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--space-section:clamp(4rem, 8vw, 8rem);--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--transition-fast:.15s ease;--transition-base:.3s ease;--transition-slow:.5s ease;--transition-spring:.4s cubic-bezier(.34, 1.56, .64, 1);--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 30px #00000080;--shadow-glow:0 0 20px var(--color-accent-glow);--navbar-height:4rem;--max-width:1200px;--max-width-narrow:800px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{line-height:var(--line-height-tight);font-weight:var(--font-weight-bold)}a{color:var(--color-accent);transition:color var(--transition-base);text-decoration:none}a:hover{color:var(--color-accent-hover)}img{max-width:100%;height:auto;display:block}button{font-family:var(--font-family);cursor:pointer;background:0 0;border:none;outline:none}ul,ol{list-style:none}::selection{color:var(--color-text-primary);background:#3b82f64d}::selection{color:var(--color-text-primary);background:#3b82f64d}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:var(--radius-full);border:2px solid var(--color-bg-primary)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.gradient-text{background:var(--color-accent-gradient-text);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:3s linear infinite shimmer}@keyframes shimmer{to{background-position:200%}}.glass{background:var(--color-bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-border)}.section{padding:var(--space-section) var(--space-xl);max-width:var(--max-width);width:100%;margin:0 auto}.section-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--space-lg)}.section-subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-3xl);max-width:600px}.page{padding-top:var(--navbar-height);flex:1}.spinner{border-radius:var(--radius-full);opacity:.85;border:2px solid;border-right-color:#0000;flex-shrink:0;width:1em;height:1em;animation:.7s linear infinite spin;display:inline-block}.spinner--lg{width:2rem;height:2rem;color:var(--color-accent);border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{height:.75rem;margin-bottom:var(--space-sm);border-radius:var(--radius-full);background:linear-gradient(90deg, var(--color-bg-tertiary) 25%, var(--color-bg-glass-hover) 50%, var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite skeletonPulse;display:block}.skeleton--year{width:30%;height:.625rem}.skeleton--title{width:55%;height:1.125rem;margin-bottom:var(--space-md)}.skeleton--line{width:100%}.skeleton--short{width:70%;margin-bottom:0}@keyframes skeletonPulse{0%{background-position:200% 0}to{background-position:-200% 0}}.notice{justify-content:space-between;align-items:center;gap:var(--space-md);max-width:700px;margin:0 auto var(--space-2xl);padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.notice--warning{background:#fbbf240f;border-color:#fbbf2440}.notice__text{flex:240px}.notice__action{padding:var(--space-xs) var(--space-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-accent);border:1px solid var(--color-border-hover);border-radius:var(--radius-full);transition:background var(--transition-base), color var(--transition-base);background:#3b82f614}.notice__action:hover{color:var(--color-accent-hover);background:#3b82f62e}:where(a,button,textarea,input,select):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button:disabled{cursor:not-allowed}@media (prefers-reduced-motion:reduce){.spinner,.skeleton,.gradient-text,.hero__bg,.hero__orb,.hero__badge-dot,.hero__badge,.hero__name,.hero__title,.hero__tagline,.hero__actions{animation-duration:.01ms;animation-iteration-count:1;animation-delay:0s}html{scroll-behavior:auto}}.skip-link{top:-100px;left:var(--space-md);z-index:1000;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-weight:var(--font-weight-semibold);transition:top var(--transition-fast);position:absolute}.skip-link:focus{top:var(--space-md)}.navbar{height:var(--navbar-height);z-index:1000;-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border);transition:background var(--transition-base), box-shadow var(--transition-base);background:#0a0e1ab3;position:fixed;top:0;left:0;right:0}.navbar.scrolled{box-shadow:var(--shadow-md);background:#0a0e1aeb}.navbar__inner{max-width:var(--max-width);height:100%;padding:0 var(--space-xl);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.navbar__logo{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.02em;transition:color var(--transition-base)}.navbar__logo:hover,.navbar__logo span{color:var(--color-accent)}.navbar__links{align-items:center;gap:var(--space-sm);display:flex}.navbar__link{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-radius:var(--radius-md);transition:color var(--transition-base), background var(--transition-base);position:relative}.navbar__link:hover{color:var(--color-text-primary);background:#3b82f614}.navbar__link.active{color:var(--color-accent);background:#3b82f61a}.navbar__link:after{content:"";background:var(--color-accent-gradient);border-radius:var(--radius-full);width:0;height:2px;transition:width var(--transition-base), left var(--transition-base);position:absolute;bottom:2px;left:50%}.navbar__link:hover:after,.navbar__link.active:after{width:60%;left:20%}.navbar__toggle{padding:var(--space-sm);cursor:pointer;flex-direction:column;gap:5px;display:none}.navbar__toggle span{background:var(--color-text-secondary);border-radius:var(--radius-full);width:22px;height:2px;transition:transform var(--transition-base), opacity var(--transition-base)}@media (width<=768px){.navbar__toggle{display:flex}.navbar__links{top:var(--navbar-height);padding:var(--space-lg);background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);opacity:0;pointer-events:none;transition:transform var(--transition-base), opacity var(--transition-base);flex-direction:column;position:fixed;left:0;right:0;transform:translateY(-100%)}.navbar__links.open{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar__link{text-align:center;width:100%;padding:var(--space-md);font-size:var(--font-size-base)}}.footer{border-top:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);padding:var(--space-2xl) var(--space-xl);background:#0a0e1acc}.footer__inner{max-width:var(--max-width);justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;margin:0 auto;display:flex}.footer__copy{font-size:var(--font-size-sm);color:var(--color-text-muted)}.footer__copy span{color:var(--color-accent);font-weight:var(--font-weight-medium)}.footer__socials{gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.footer__social-link{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);transition:color var(--transition-base), border-color var(--transition-base), background var(--transition-base), transform var(--transition-base);display:inline-flex}.footer__social-link:hover{color:var(--color-accent);border-color:var(--color-border-hover);background:#3b82f60f;transform:translateY(-2px)}@media (width<=600px){.footer__inner{text-align:center;flex-direction:column}}.hero{min-height:calc(100vh - var(--navbar-height));text-align:center;padding:var(--space-3xl) var(--space-xl);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero__bg{z-index:0;background:radial-gradient(80% 60% at 50% 20%,#3b82f626,#0000 60%),radial-gradient(60% 50% at 80% 60%,#8b5cf61a,#0000 50%),radial-gradient(50% 40% at 20% 80%,#3b82f614,#0000 50%);animation:8s ease-in-out infinite alternate heroGradientShift;position:absolute;inset:0}@keyframes heroGradientShift{0%{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.85;transform:scale(1.05)rotate(1deg)}to{opacity:1;transform:scale(1.02)rotate(-.5deg)}}.hero__orb{filter:blur(80px);opacity:.4;border-radius:50%;animation:6s ease-in-out infinite alternate orbFloat;position:absolute}.hero__orb--1{background:#3b82f633;width:400px;height:400px;animation-duration:7s;top:-100px;right:-100px}.hero__orb--2{background:#8b5cf626;width:300px;height:300px;animation-duration:9s;animation-delay:1s;bottom:-50px;left:-50px}.hero__orb--3{background:#3b82f61a;width:200px;height:200px;animation-duration:5s;animation-delay:2s;top:40%;left:60%}@keyframes orbFloat{0%{transform:translate(0)}to{transform:translate(30px,-20px)}}.hero__content{z-index:1;max-width:800px;position:relative}.hero__badge{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);margin-bottom:var(--space-xl);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent);border-radius:var(--radius-full);opacity:0;background:#3b82f614;border:1px solid #3b82f633;animation:.6s forwards fadeInUp;display:inline-flex}.hero__badge-dot{background:var(--color-accent);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}.hero__name{font-size:var(--font-size-hero);font-weight:var(--font-weight-extrabold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin-bottom:var(--space-md);opacity:0;animation:.6s .1s forwards fadeInUp}.hero__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-light);color:var(--color-text-secondary);margin-bottom:var(--space-lg);opacity:0;animation:.6s .2s forwards fadeInUp}.hero__tagline{font-size:var(--font-size-lg);color:var(--color-text-muted);max-width:560px;margin:0 auto var(--space-2xl);line-height:var(--line-height-normal);opacity:0;animation:.6s .3s forwards fadeInUp}.hero__actions{justify-content:center;align-items:center;gap:var(--space-md);opacity:0;flex-wrap:wrap;animation:.6s .4s forwards fadeInUp;display:flex}.hero__cta{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:#fff;background:var(--color-accent-gradient);border-radius:var(--radius-lg);transition:transform var(--transition-base), box-shadow var(--transition-base);box-shadow:0 4px 15px var(--color-accent-glow);display:inline-flex}.hero__cta:hover{box-shadow:0 8px 25px var(--color-accent-glow);color:#fff;transform:translateY(-2px)}.hero__cta-arrow{transition:transform var(--transition-base)}.hero__cta:hover .hero__cta-arrow{transform:translate(4px)}.hero__social-link{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:color var(--transition-base), border-color var(--transition-base), background var(--transition-base), transform var(--transition-base);display:inline-flex}.hero__social-link:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#3b82f60f;transform:translateY(-2px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.hero__name{font-size:clamp(2rem,8vw,3.5rem)}.hero__title{font-size:var(--font-size-xl)}.hero__tagline{font-size:var(--font-size-base)}}.experience{padding:var(--space-section) var(--space-xl);max-width:var(--max-width);margin:0 auto}.experience__header{text-align:center;margin-bottom:var(--space-4xl)}.experience__title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--space-md)}.experience__subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:500px;margin:0 auto}.timeline{max-width:700px;padding-left:var(--space-2xl);margin:0 auto;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--color-accent), var(--color-accent-purple), transparent);border-radius:var(--radius-full);width:2px;position:absolute;top:0;bottom:0;left:11px}.timeline__item{margin-bottom:var(--space-2xl);opacity:0;animation:.5s forwards fadeInUp;position:relative}.timeline__item:first-child{animation-delay:.1s}.timeline__item:nth-child(2){animation-delay:.2s}.timeline__item:nth-child(3){animation-delay:.3s}.timeline__item:nth-child(4){animation-delay:.4s}.timeline__item:nth-child(n+5){animation-delay:.5s}.timeline__item--skeleton{opacity:1;animation:none}.timeline__dot{left:calc(-1 * var(--space-2xl) + 4px);background:var(--color-bg-primary);border:3px solid var(--color-accent);z-index:1;width:16px;height:16px;transition:background var(--transition-base), box-shadow var(--transition-base);border-radius:50%;position:absolute;top:6px}.timeline__item:hover .timeline__dot{background:var(--color-accent);box-shadow:0 0 12px var(--color-accent-glow)}.timeline__card{background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-lg) var(--space-xl);transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base)}.timeline__card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-glow);transform:translate(4px)}.timeline__year{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-xs)}.timeline__role{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.timeline__company{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.timeline__description{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-normal)}.timeline__achievements{margin-top:var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.timeline__achievement{padding-left:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);position:relative}.timeline__achievement:before{content:"▸";color:var(--color-accent);position:absolute;left:0}.timeline__tech{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.timeline__tech-chip{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-accent);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);background:#3b82f61a;border:1px solid #3b82f626}.experience__empty{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-base);padding:var(--space-3xl) 0}.experience__tech{max-width:700px;margin:var(--space-3xl) auto 0}.experience__tech-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.experience__tech-list{gap:var(--space-sm);flex-wrap:wrap;display:flex}.experience__tech-item{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-glass);transition:border-color var(--transition-base), transform var(--transition-base);--level-color:var(--color-text-muted);display:inline-flex}.experience__tech-item:hover{border-color:var(--color-border-hover);transform:translateY(-2px)}.experience__tech-item--expert{--level-color:#34d399}.experience__tech-item--advanced{--level-color:var(--color-accent-hover)}.experience__tech-item--intermediate{--level-color:#fbbf24}.experience__tech-item--beginner{--level-color:var(--color-text-muted)}.experience__tech-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.experience__tech-level{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--level-color)}@media (width<=768px){.experience__title{font-size:var(--font-size-3xl)}.timeline{padding-left:var(--space-xl)}}.portfolio{padding:var(--space-section) var(--space-xl);max-width:var(--max-width);margin:0 auto}.portfolio__header{text-align:center;margin-bottom:var(--space-4xl)}.portfolio__title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--space-md)}.portfolio__subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:500px;margin:0 auto}.portfolio__grid{gap:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.portfolio__card{background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);opacity:0;animation:.5s forwards fadeInUp;position:relative;overflow:hidden}.portfolio__card:first-child{animation-delay:.1s}.portfolio__card:nth-child(2){animation-delay:.2s}.portfolio__card:nth-child(3){animation-delay:.3s}.portfolio__card:nth-child(4){animation-delay:.35s}.portfolio__card:nth-child(5){animation-delay:.4s}.portfolio__card:nth-child(6){animation-delay:.45s}.portfolio__card:nth-child(n+7){animation-delay:.5s}.portfolio__card--skeleton{opacity:1;animation:none}.portfolio__card--skeleton:hover{border-color:var(--color-border);box-shadow:none;transform:none}.portfolio__card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-glow);transform:translateY(-4px)}.portfolio__card-image{background:linear-gradient(135deg, var(--color-bg-secondary), var(--color-bg-tertiary));border-bottom:1px solid var(--color-border);justify-content:center;align-items:center;height:180px;display:flex;position:relative;overflow:hidden}.portfolio__card-image:after{content:"";background:var(--color-accent-gradient);opacity:0;transition:opacity var(--transition-base);position:absolute;inset:0}.portfolio__card:hover .portfolio__card-image:after{opacity:.08}.portfolio__card-icon{font-size:var(--font-size-3xl);color:var(--color-text-muted);z-index:1}.portfolio__card-body{padding:var(--space-lg) var(--space-xl)}.portfolio__card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-sm)}.portfolio__card-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-normal);margin-bottom:var(--space-md)}.portfolio__card-tags{gap:var(--space-sm);flex-wrap:wrap;display:flex}.portfolio__tag{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-accent);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);background:#3b82f61a;border:1px solid #3b82f626}.portfolio__card-links{gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.portfolio__card-link{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent)}.portfolio__card-link:hover{color:var(--color-accent-hover)}.portfolio__empty{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-base);padding:var(--space-3xl) 0}.portfolio__artifacts{margin-top:var(--space-3xl)}.portfolio__artifacts-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.portfolio__artifact-list{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.portfolio__artifact{align-items:flex-start;gap:var(--space-md);padding:var(--space-lg);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:border-color var(--transition-base), transform var(--transition-base);display:flex}.portfolio__artifact:hover{border-color:var(--color-border-hover);transform:translateY(-2px)}.portfolio__artifact-icon{font-size:var(--font-size-2xl);line-height:1}.portfolio__artifact-body{min-width:0}.portfolio__artifact-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.portfolio__artifact-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-normal);margin-bottom:var(--space-sm)}@media (width<=768px){.portfolio__title{font-size:var(--font-size-3xl)}.portfolio__grid,.portfolio__artifact-list{grid-template-columns:1fr}}.composer{padding:var(--space-section) var(--space-xl);max-width:var(--max-width-narrow);margin:0 auto}.composer__header{text-align:center;margin-bottom:var(--space-3xl)}.composer__title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--space-md)}.composer__subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:500px;margin:0 auto}.composer__input-section{margin-bottom:var(--space-2xl);opacity:0;animation:.5s .1s forwards fadeInUp}.composer__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.05em;display:block}.composer__textarea{width:100%;min-height:200px;padding:var(--space-lg);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-xl);resize:vertical;transition:border-color var(--transition-base), box-shadow var(--transition-base);line-height:var(--line-height-normal)}.composer__textarea::placeholder{color:var(--color-text-muted)}.composer__textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow);outline:none}.composer__textarea:disabled{opacity:.6;cursor:not-allowed}.composer__hint{margin-top:var(--space-sm);font-size:var(--font-size-xs);color:var(--color-text-muted)}.composer__submit{align-items:center;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-md) var(--space-2xl);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:#fff;background:var(--color-accent-gradient);border-radius:var(--radius-lg);transition:transform var(--transition-base), box-shadow var(--transition-base);box-shadow:0 4px 15px var(--color-accent-glow);cursor:pointer;display:inline-flex}.composer__submit:hover{box-shadow:0 8px 25px var(--color-accent-glow);transform:translateY(-2px)}.composer__submit:active:not(:disabled){transform:translateY(0)}.composer__submit:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;filter:saturate(.5);transform:none}.composer__submit:disabled:hover{box-shadow:none;transform:none}.composer__results{opacity:0;animation:.5s .2s forwards fadeInUp}.composer__results-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-md);color:var(--color-text-primary)}.composer__results-box{min-height:300px;padding:var(--space-xl);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-xl);justify-content:center;align-items:center;display:flex}.composer__results-placeholder{text-align:center;color:var(--color-text-muted)}.composer__results-placeholder-icon{font-size:var(--font-size-4xl);margin-bottom:var(--space-md);opacity:.5}.composer__results-placeholder-text{font-size:var(--font-size-base)}.composer__results-box--filled{display:block}.composer__status{align-items:center;gap:var(--space-md);text-align:center;flex-direction:column;display:flex}.composer__status-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:320px}.composer__error{align-items:flex-start;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--radius-lg);text-align:left;background:#f8717112;border:1px solid #f871714d;display:flex}.composer__error-icon{font-size:var(--font-size-xl);line-height:1}.composer__error-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.composer__error-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.composer__result{gap:var(--space-xl);flex-direction:column;animation:.4s forwards fadeInUp;display:flex}.composer__score{align-items:center;gap:var(--space-lg);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);--score-color:var(--color-accent);background:#0f172a59;display:flex}.composer__score--strong{--score-color:#34d399}.composer__score--moderate{--score-color:#fbbf24}.composer__score--low{--score-color:#f87171}.composer__score-readout{align-items:baseline;gap:2px;display:flex}.composer__score-value{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);color:var(--score-color);font-variant-numeric:tabular-nums;line-height:1}.composer__score-max{font-size:var(--font-size-sm);color:var(--color-text-muted)}.composer__score-meta{flex:1;min-width:0}.composer__score-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin-bottom:var(--space-sm);display:block}.composer__score-track{border-radius:var(--radius-full);background:var(--color-bg-tertiary);height:8px;overflow:hidden}.composer__score-fill{border-radius:var(--radius-full);background:var(--score-color);height:100%;transition:width var(--transition-slow)}.composer__recommendation{padding:var(--space-md) var(--space-lg);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text-primary);line-height:var(--line-height-normal);background:#3b82f612}.composer__recommendation--strong{background:#34d39912;border-left-color:#34d399}.composer__recommendation--moderate{background:#fbbf2412;border-left-color:#fbbf24}.composer__recommendation--low{background:#f8717112;border-left-color:#f87171}.composer__block-title{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);margin-bottom:var(--space-md);display:flex}.composer__block-count{min-width:1.375rem;padding:0 var(--space-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:0;color:var(--color-accent);border-radius:var(--radius-full);background:#3b82f61f;justify-content:center;align-items:center;display:inline-flex}.composer__block-empty{font-size:var(--font-size-sm);color:var(--color-text-muted)}.composer__summary{font-size:var(--font-size-base);color:var(--color-text-primary);line-height:var(--line-height-normal)}.composer__skills{gap:var(--space-sm);flex-wrap:wrap;display:flex}.composer__skill{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:#6ee7b7;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);background:#34d3991a;border:1px solid #34d39933}.composer__gaps{gap:var(--space-sm);flex-direction:column;display:flex}.composer__gap{padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-base);background:#0f172a59}.composer__gap:hover{border-color:var(--color-border-hover)}.composer__gap-head{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.composer__gap-skill{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.composer__gap-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);white-space:nowrap;color:var(--color-text-secondary);border:1px solid var(--color-border);background:#94a3b81a}.composer__gap-badge--required{color:#fca5a5;background:#f871711a;border-color:#f8717140}.composer__gap-badge--preferred{color:#fcd34d;background:#fbbf241a;border-color:#fbbf2440}.composer__gap-badge--nice-to-have{color:var(--color-text-secondary);background:#94a3b814;border-color:#94a3b82e}.composer__gap-suggestion{margin-top:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-normal)}@media (width<=768px){.composer__title{font-size:var(--font-size-3xl)}.composer__submit{justify-content:center;width:100%}.composer__score{align-items:flex-start;gap:var(--space-md);flex-direction:column}.composer__score-meta{width:100%}.composer__gap-head{align-items:flex-start;gap:var(--space-xs);flex-direction:column}}.composer__role{margin-bottom:var(--space-md);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.composer__role-company{font-weight:var(--font-weight-normal);color:var(--color-text-secondary)}.composer__status-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.composer__subtitle a{color:var(--color-accent);text-underline-offset:3px;text-decoration:underline}@media (width<=480px){.composer__submit{width:100%;padding-left:var(--space-lg);padding-right:var(--space-lg);font-size:var(--font-size-sm);justify-content:center}}.composer__url-row{margin-bottom:var(--space-xl);opacity:0;animation:.5s 50ms forwards fadeInUp}.composer__url-controls{gap:var(--space-sm);flex-wrap:wrap;display:flex}.composer__url-input{min-width:0;padding:var(--space-sm) var(--space-md);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-glass);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-base), box-shadow var(--transition-base);flex:260px}.composer__url-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow);outline:none}.composer__url-input:disabled,.composer__url-button:disabled{opacity:.6;cursor:not-allowed}.composer__url-button{padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent);border:1px solid var(--color-border-hover);border-radius:var(--radius-lg);transition:background var(--transition-base);background:#3b82f614}.composer__url-button:hover:not(:disabled){background:#3b82f62e}.composer__url-notice{max-width:none;margin:var(--space-md) 0 0}.composer__posting{margin-top:var(--space-md);padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-glass)}.composer__posting-head{justify-content:space-between;align-items:baseline;gap:var(--space-md);display:flex}.composer__posting-title{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);overflow-wrap:anywhere}.composer__posting-host,.composer__posting-facts{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-muted)}.composer__posting-salary{margin-top:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.composer__posting-clear{font-size:var(--font-size-xs);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;text-decoration:underline}.composer__posting-clear:hover{color:var(--color-text-primary)}.composer__posting-benefits{margin-top:var(--space-sm)}.composer__extract-summary{margin-bottom:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer}.composer__extract-summary:hover{color:var(--color-text-primary)}.composer__extract:not([open]){margin-bottom:var(--space-sm)}.matches{max-width:1100px;padding:var(--space-2xl) var(--space-lg) var(--space-section);margin:0 auto}.matches__header{margin-bottom:var(--space-xl)}.matches__title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);letter-spacing:-.02em;margin-bottom:var(--space-sm)}.matches__subtitle{color:var(--color-text-secondary);max-width:68ch;line-height:var(--line-height-normal)}.matches__subtitle a,.matches__cta{color:var(--color-accent);text-underline-offset:3px;text-decoration:underline}.matches__muted{color:var(--color-text-secondary)}.matches__stats{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.matches__stat{gap:var(--space-xs);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);display:grid}.matches__stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);letter-spacing:-.02em}.matches__stat-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary)}.matches__table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);overflow-x:auto}.matches__table{border-collapse:collapse;width:100%;min-width:760px;font-size:var(--font-size-sm)}.matches__table th{text-align:left;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.matches__cell{padding:var(--space-md);border-bottom:1px solid var(--color-border);vertical-align:top}.matches__row:last-child .matches__cell{border-bottom:none}.matches__cell--date{white-space:nowrap;color:var(--color-text-secondary)}.matches__cell--role{min-width:200px}.matches__role{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:block}.matches__company{color:var(--color-text-secondary);font-size:var(--font-size-xs);display:block}.matches__score{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);font-variant-numeric:tabular-nums}.matches__score-max{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-secondary)}.matches__score--strong{color:#34d399}.matches__score--moderate{color:#fbbf24}.matches__score--low{color:#f87171}.matches__chips{gap:var(--space-xs);flex-wrap:wrap;max-width:320px;list-style:none;display:flex}.matches__chip{padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);white-space:nowrap}.matches__chip--match{color:#a7f3d0;background:#34d3991f}.matches__chip--gap{color:#fecaca;background:#f871711f}.matches__source{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.matches__source--llm{color:var(--color-accent-hover)}.matches__skeleton{gap:var(--space-md);padding:var(--space-lg);display:grid}.matches__empty{padding:var(--space-3xl) var(--space-lg);text-align:center;color:var(--color-text-secondary);gap:var(--space-sm);display:grid}.matches__more{margin:var(--space-lg) auto 0;padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-accent);border:1px solid var(--color-border-hover);border-radius:var(--radius-full);cursor:pointer;background:#3b82f614;display:block}.matches__more:disabled{opacity:.5;cursor:not-allowed}.matches__paging{justify-content:center;gap:var(--space-sm);display:flex}.matches__paging .matches__more{margin:var(--space-lg) 0 0}.matches__sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.matches__controls{align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.matches__control{gap:var(--space-xs);display:grid}.matches__control--grow{flex:180px}.matches__control-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary)}.matches__select{padding:var(--space-sm) var(--space-md);font:inherit;font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.matches__select:disabled{opacity:.5}.matches__segmented{border:1px solid var(--color-border);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.matches__segment{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-bg-secondary);cursor:pointer;border:none}.matches__segment+.matches__segment{border-left:1px solid var(--color-border)}.matches__segment--solo{border:1px solid var(--color-border);border-radius:var(--radius-md)}.matches__segment--active{color:var(--color-text-primary);box-shadow:inset 0 -2px 0 var(--color-accent);background:#3b82f629}.matches__count{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.matches__insights{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.matches__insight{padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card)}.matches__insight-title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.matches__chips--wide{max-width:none}button.matches__chip{font:inherit;font-size:var(--font-size-xs);cursor:pointer;border:1px solid #0000}.matches__chip--top{font-weight:var(--font-weight-semibold);background:#34d39938}.matches__chip--gap-required{color:#fee2e2;font-weight:var(--font-weight-semibold);background:#f8717142}.matches__chip--gap-preferred{background:#f8717124}.matches__chip--gap-nice{color:var(--color-text-secondary);background:#f871710f}.matches__chip--mitigable{border:1px dashed #fbbf2499}.matches__chip--active{border:1px solid var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.matches__delete{font-size:var(--font-size-xs);color:#fca5a5;border-radius:var(--radius-full);padding:2px var(--space-sm);cursor:pointer;background:0 0;border:1px solid #f8717166}.contact{padding:var(--space-section) var(--space-xl);max-width:var(--max-width-narrow);margin:0 auto}.contact__header{text-align:center;margin-bottom:var(--space-3xl)}.contact__title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);margin-bottom:var(--space-md)}.contact__subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:520px;margin:0 auto}.contact__form{gap:var(--space-lg);opacity:0;flex-direction:column;animation:.5s .1s forwards fadeInUp;display:flex}.contact__row{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.contact__field{gap:var(--space-sm);flex-direction:column;display:flex}.contact__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.contact__optional{text-transform:none;font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.contact__input{width:100%;padding:var(--space-md) var(--space-lg);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-base), box-shadow var(--transition-base)}.contact__input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow);outline:none}.contact__input:disabled{opacity:.6;cursor:not-allowed}.contact__textarea{resize:vertical;min-height:180px;line-height:var(--line-height-normal)}.contact__hint{margin-top:calc(-1 * var(--space-md));font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:right}.contact__hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact__submit{align-self:flex-start;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-2xl);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:#fff;background:var(--color-accent-gradient);border-radius:var(--radius-lg);box-shadow:0 4px 15px var(--color-accent-glow);transition:transform var(--transition-base), box-shadow var(--transition-base);cursor:pointer;display:inline-flex}.contact__submit:hover:not(:disabled){box-shadow:0 8px 25px var(--color-accent-glow);transform:translateY(-2px)}.contact__submit:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;filter:saturate(.5)}.contact__error,.contact__success{padding:var(--space-lg);border-radius:var(--radius-lg)}.contact__error{background:#f8717112;border:1px solid #f871714d}.contact__success{text-align:center;background:#34d39912;border:1px solid #34d3994d}.contact__error-title,.contact__success-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-xs)}.contact__error-text,.contact__success-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.contact__error-text a{color:var(--color-accent)}.contact__again{margin-top:var(--space-lg);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer}@media (width<=640px){.contact__row{grid-template-columns:1fr}}.notfound{max-width:640px;padding:var(--space-section) var(--space-lg);text-align:center;margin:0 auto}.notfound__code{font-size:var(--font-size-6xl);font-weight:var(--font-weight-extrabold);letter-spacing:-.04em;color:var(--color-text-secondary);opacity:.35;line-height:1}.notfound__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-extrabold);margin:var(--space-md) 0}.notfound__text{color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.notfound__path{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--font-size-sm);padding:2px var(--space-sm);border-radius:var(--radius-sm);background:var(--color-bg-tertiary)}.notfound__links{justify-content:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.notfound__link{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);border:1px solid var(--color-border-hover);color:var(--color-accent);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.notfound__link--primary{color:#fff;background:var(--color-accent-gradient);border-color:#0000}
