:root{--text:#4b5563;--text-h:#111827;--bg:#fff;--surface:#f9fafb;--border:#e5e7eb;--accent:#2563eb;--accent-hover:#1d4ed8;--danger:#dc2626;--success:#059669;--radius:8px;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#111827;--surface:#1f2937;--border:#374151;--accent:#3b82f6;--accent-hover:#60a5fa;--danger:#ef4444;--success:#10b981}}*,:before,:after{box-sizing:border-box}body{margin:0}#root{flex-direction:column;max-width:800px;min-height:100dvh;margin:0 auto;padding:0 20px;display:flex}h1,h2{color:var(--text-h);font-weight:600}h1{letter-spacing:-.02em;margin:0 0 16px;font-size:2.5rem}h2{margin:0 0 12px;font-size:1.25rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.loading{min-height:100dvh;color:var(--text);justify-content:center;align-items:center;display:flex}.ev{--ev-bg:#0a0a0f;--ev-surface:#141420;--ev-border:#1e1e2e;--ev-text:#9ca3af;--ev-text-strong:#f1f0f5;--ev-text-muted:#5a5a6e;--ev-accent:#c8a2ff;--ev-accent-hover:#d4b8ff;--ev-accent-dim:#c8a2ff14;--ev-radius:12px;--ev-radius-sm:8px;--ev-font-display:"Syne", system-ui, sans-serif;--ev-font-body:"DM Sans", system-ui, sans-serif;font-family:var(--ev-font-body);color:var(--ev-text);background:var(--ev-bg);z-index:5;scroll-behavior:smooth;position:fixed;inset:0;overflow-y:auto}.ev-dashboard-link{z-index:10;color:var(--ev-text-muted);font-size:.8125rem;font-weight:500;text-decoration:none;transition:color .2s;position:fixed;top:20px;right:24px}.ev-dashboard-link:hover{color:var(--ev-text-strong);text-decoration:none}@media (prefers-color-scheme:light){.ev{--ev-bg:#fafaf8;--ev-surface:#fff;--ev-border:#e5e7eb;--ev-text:#4b5563;--ev-text-strong:#111827;--ev-text-muted:#9ca3af;--ev-accent:#7c3aed;--ev-accent-hover:#6d28d9;--ev-accent-dim:#7c3aed0f}}.ev-reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(30px)}.ev-reveal.ev-visible{opacity:1;transform:translateY(0)}.ev-reveal-child{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(20px)}.ev-reveal.ev-visible .ev-reveal-child{opacity:1;transform:translateY(0)}.ev-reveal.ev-visible .ev-reveal-child:first-child{transition-delay:50ms}.ev-reveal.ev-visible .ev-reveal-child:nth-child(2){transition-delay:.1s}.ev-reveal.ev-visible .ev-reveal-child:nth-child(3){transition-delay:.15s}.ev-reveal.ev-visible .ev-reveal-child:nth-child(4){transition-delay:.2s}.ev-reveal.ev-visible .ev-reveal-child:nth-child(5){transition-delay:.25s}.ev-inner{max-width:1080px;margin:0 auto;padding:0 24px}.ev-hero{flex-direction:column;justify-content:center;min-height:100dvh;display:flex;position:relative}.ev-hero-label{font-family:var(--ev-font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--ev-accent);margin-bottom:20px;font-size:.8125rem;font-weight:500}.ev-hero h1{font-family:var(--ev-font-display);letter-spacing:-.03em;color:var(--ev-text-strong);margin:0 0 16px;font-size:clamp(3rem,6vw,5.5rem);font-weight:800;line-height:1.05}.ev-hero-subtitle{color:var(--ev-text-muted);letter-spacing:.04em;margin-bottom:32px;font-size:1.25rem}.ev-hero-bio{max-width:580px;margin-bottom:48px;font-size:1.125rem;line-height:1.7}.ev-hero-links{flex-wrap:wrap;gap:12px;display:flex}.ev-link{border-radius:var(--ev-radius-sm);border:1px solid var(--ev-border);color:var(--ev-text-strong);align-items:center;gap:8px;padding:10px 22px;font-size:.9375rem;font-weight:500;text-decoration:none;transition:border-color .25s,background .25s,color .25s;display:inline-flex}.ev-link:hover{border-color:var(--ev-accent);background:var(--ev-accent-dim);text-decoration:none}.ev-link--accent{background:var(--ev-accent);border-color:var(--ev-accent);color:#0a0a0f}.ev-link--accent:hover{background:var(--ev-accent-hover);border-color:var(--ev-accent-hover);color:#0a0a0f}.ev-scroll-hint{color:var(--ev-text-muted);letter-spacing:.1em;text-transform:uppercase;flex-direction:column;align-items:center;gap:8px;font-size:.75rem;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.ev-scroll-line{background:linear-gradient(to bottom, var(--ev-accent), transparent);width:1px;height:40px;animation:2s ease-in-out infinite ev-scroll-pulse}@keyframes ev-scroll-pulse{0%,to{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}.ev-section{padding:120px 0}.ev-section--surface{background:var(--ev-surface)}.ev-section-label{font-family:var(--ev-font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--ev-accent);margin-bottom:12px;font-size:.75rem;font-weight:600}.ev-section h2{font-family:var(--ev-font-display);letter-spacing:-.02em;color:var(--ev-text-strong);margin:0 0 48px;font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.15}.ev-skills-layout{grid-template-columns:280px 1fr;align-items:start;gap:64px;display:grid}.ev-skills-intro{font-size:1.0625rem;line-height:1.7}.ev-skills-grid{gap:40px;display:grid}.ev-skill-category-label{letter-spacing:.15em;text-transform:uppercase;color:var(--ev-text-muted);margin-bottom:14px;font-size:.75rem;font-weight:600}.ev-skill-tags{flex-wrap:wrap;gap:8px;display:flex}.ev-skill-tag{background:var(--ev-surface);border:1px solid var(--ev-border);color:var(--ev-text-strong);border-radius:100px;padding:6px 16px;font-size:.875rem;font-weight:500;transition:border-color .2s,background .2s}.ev-skill-tag:hover{border-color:var(--ev-accent)}.ev-skill-tag--highlight{border-color:var(--ev-accent);background:var(--ev-accent-dim);color:var(--ev-accent)}.ev-ai-intro{max-width:640px;margin-bottom:48px;font-size:1.0625rem;line-height:1.7}.ev-ai-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.ev-ai-card{border-radius:var(--ev-radius);background:var(--ev-bg);border:1px solid var(--ev-border);padding:32px 28px;transition:border-color .3s,transform .2s;position:relative;overflow:hidden}.ev-ai-card:before{content:"";border-radius:var(--ev-radius);background:linear-gradient(135deg, var(--ev-accent), transparent 60%);-webkit-mask-composite:xor;opacity:0;padding:1px;transition:opacity .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.ev-ai-card:hover:before{opacity:1}.ev-ai-card:hover{transform:translateY(-2px)}.ev-ai-card-icon{margin-bottom:16px;font-size:1.75rem}.ev-ai-card h3{font-family:var(--ev-font-display);color:var(--ev-text-strong);margin:0 0 10px;font-size:1.125rem;font-weight:600}.ev-ai-card p{color:var(--ev-text);margin:0;font-size:.9375rem;line-height:1.6}.ev-experience-list{gap:24px;display:grid}.ev-experience-item{border-radius:var(--ev-radius);background:var(--ev-surface);border:1px solid var(--ev-border);grid-template-columns:200px 1fr;gap:32px;padding:32px;transition:border-color .25s;display:grid}.ev-experience-item:hover{border-color:color-mix(in srgb, var(--ev-accent) 40%, var(--ev-border))}.ev-experience-meta{flex-direction:column;gap:4px;display:flex}.ev-experience-company{font-family:var(--ev-font-display);color:var(--ev-text-strong);font-size:1.0625rem;font-weight:600}.ev-experience-location{color:var(--ev-text-muted);font-size:.8125rem}.ev-experience-role{color:var(--ev-accent);font-size:.875rem;font-weight:500}.ev-experience-body p{margin:0;font-size:.9375rem;line-height:1.7}.ev-experience-tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.ev-experience-tag{color:var(--ev-text-muted);border:1px solid var(--ev-border);border-radius:100px;padding:3px 12px;font-size:.75rem;font-weight:500}.ev-projects-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.ev-project-card{border-radius:var(--ev-radius);background:var(--ev-surface);border:1px solid var(--ev-border);color:inherit;flex-direction:column;padding:32px 28px;text-decoration:none;transition:border-color .25s,transform .2s;display:flex}.ev-project-card:hover{border-color:var(--ev-accent);text-decoration:none;transform:translateY(-2px)}.ev-project-card h3{font-family:var(--ev-font-display);color:var(--ev-text-strong);align-items:center;gap:10px;margin:0 0 10px;font-size:1.125rem;font-weight:600;display:flex}.ev-project-card p{color:var(--ev-text);margin:0 0 auto;padding-bottom:16px;font-size:.9375rem;line-height:1.6}.ev-project-card .ev-experience-tags{margin-top:0}.ev-writing-list{background:var(--ev-border);border-radius:var(--ev-radius);gap:1px;margin-top:48px;display:grid;overflow:hidden}.ev-writing-item{background:var(--ev-surface);color:var(--ev-text-strong);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;font-size:.9375rem;font-weight:500;text-decoration:none;transition:background .2s;display:flex}.ev-writing-item:hover{background:var(--ev-accent-dim);text-decoration:none}.ev-writing-arrow{color:var(--ev-text-muted);font-size:1.125rem;transition:transform .2s,color .2s}.ev-writing-item:hover .ev-writing-arrow{color:var(--ev-accent);transform:translate(4px)}.ev-footer{border-top:1px solid var(--ev-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:48px 0;display:flex}.ev-footer-links{gap:20px;display:flex}.ev-footer-links a{color:var(--ev-text);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s}.ev-footer-links a:hover{color:var(--ev-accent);text-decoration:none}.ev-footer-note{color:var(--ev-text-muted);font-size:.8125rem}@media (width<=768px){.ev-inner{padding:0 20px}.ev-section{padding:80px 0}.ev-hero{justify-content:flex-start;min-height:calc(100dvh - 40px);padding-top:80px}.ev-hero-bio{font-size:1rem}.ev-skills-layout{grid-template-columns:1fr;gap:32px}.ev-ai-grid{grid-template-columns:1fr}.ev-experience-item{grid-template-columns:1fr;gap:12px;padding:24px}.ev-projects-grid{grid-template-columns:1fr}.ev-scroll-hint{display:none}.ev-footer{text-align:center;flex-direction:column}.ev-section h2{margin-bottom:32px}.ev-writing-item{padding:16px 20px;font-size:.875rem}}.page{flex-direction:column;flex:1;justify-content:center;padding:48px 0;display:flex}.btn{border-radius:var(--radius);cursor:pointer;background:var(--accent);color:#fff;border:none;padding:10px 24px;font-size:.9375rem;font-weight:500;transition:background .2s}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text-h);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.login{text-align:center;align-items:center}.login p{margin-bottom:24px}.google-btn{padding:12px 32px;font-size:1rem}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.user-info{margin-bottom:32px;font-size:.875rem}.dashboard-app-link{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-h);align-items:center;gap:16px;margin-bottom:24px;padding:20px;text-decoration:none;transition:border-color .2s,transform .15s,box-shadow .15s;display:flex}.dashboard-app-link:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.dashboard-app-emoji{font-size:2rem}.dashboard-app-link small{color:var(--text);font-weight:400}.sync-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.sync-section .btn{margin-top:16px}.sync-result{border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;margin-top:16px;padding:16px;font-family:ui-monospace,Consolas,monospace;font-size:.8125rem;overflow-x:auto}.sync-result.success{background:color-mix(in srgb, var(--success) 10%, transparent);border:1px solid var(--success)}.sync-result.error{background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid var(--danger)}
