@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-12px) rotate(1.5deg)}66%{transform:translateY(-6px) rotate(-1deg)}}@keyframes floatAlt{0%,to{transform:translateY(0) rotate(0)}40%{transform:translateY(-18px) rotate(-2deg)}70%{transform:translateY(-8px) rotate(1.5deg)}}@keyframes pulseJade{0%,to{box-shadow:0 0 #00a69366}50%{box-shadow:0 0 0 8px #00a69300}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes navPulse{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .65s cubic-bezier(.4,0,.2,1),transform .65s cubic-bezier(.4,0,.2,1)}[data-reveal].from-left{transform:translate(-40px)}[data-reveal].from-right{transform:translate(40px)}[data-reveal].is-visible{opacity:1;transform:translate(0)}[data-reveal]{transition-delay:var(--reveal-delay, 0ms)}.animate-float{animation:float 6s ease-in-out infinite}.animate-float-alt{animation:floatAlt 8s ease-in-out infinite}.animate-pulse-jade{animation:pulseJade 2s ease-in-out infinite}.animate-spin-slow{animation:spinSlow 20s linear infinite}.animate-fade-in{animation:fadeIn .8s ease both}.animate-fade-in-up{animation:fadeInUp .8s ease both}.animate-scale-in{animation:scaleIn .8s ease both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}[data-reveal]{opacity:1!important;transform:none!important;transition:none!important}}.nav-particle{position:absolute;width:6px;height:6px;border-radius:50%;background-color:var(--color-jade);pointer-events:none;z-index:105}.nav-text-fly{position:absolute;pointer-events:none;white-space:nowrap;font-size:12px;font-weight:700;color:var(--color-white);background:var(--color-jade);padding:4px 10px;border-radius:var(--radius-full);box-shadow:var(--shadow-jade-sm);z-index:110;left:50%;transform:translate(-50%)}#hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--color-white);isolation:isolate}#hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;opacity:0;transition:opacity 1s ease;pointer-events:none}#hero-canvas.loaded{opacity:1}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;will-change:transform}.hero-layer-1{background-image:linear-gradient(to bottom,transparent 60%,rgba(230,247,245,.4) 100%),radial-gradient(circle at 1px 1px,rgba(0,166,147,.12) 1px,transparent 0);background-size:100%,32px 32px;background-position:center,0 0}.hero-layer-2{display:grid;place-items:center}.hero-blob-1{position:absolute;top:-120px;right:-80px;width:480px;height:480px;background:radial-gradient(ellipse at center,rgba(0,166,147,.08) 0%,transparent 70%);border-radius:50%;animation:float 12s ease-in-out infinite;will-change:transform}.hero-blob-2{position:absolute;bottom:-80px;left:-60px;width:360px;height:360px;background:radial-gradient(ellipse at center,rgba(0,166,147,.06) 0%,transparent 70%);border-radius:50%;animation:floatAlt 10s ease-in-out infinite;animation-delay:-3s;will-change:transform}.hero-hex{position:absolute;top:15%;right:8%;width:120px;height:120px;opacity:.07;animation:spinSlow 30s linear infinite;will-change:transform}.hero-circle{position:absolute;bottom:20%;right:15%;width:200px;height:200px;border:2px solid rgba(0,166,147,.12);border-radius:50%;animation:float 14s ease-in-out infinite;animation-delay:-5s;will-change:transform}.hero-circle:after{content:"";position:absolute;top:20px;right:20px;bottom:20px;left:20px;border:1px solid rgba(0,166,147,.08);border-radius:50%}.hero-line{position:absolute;top:30%;left:5%;width:1px;height:140px;background:linear-gradient(to bottom,transparent,var(--color-jade),transparent);opacity:.3;animation:float 8s ease-in-out infinite;animation-delay:-2s}.hero-content{position:relative;z-index:3;max-width:640px;padding:var(--space-xl);will-change:transform}.hero-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:var(--color-jade-faint);border:1px solid rgba(0,166,147,.2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;color:var(--color-jade-dark);letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--space-xl);opacity:0;animation:fadeInDown .6s ease .2s forwards}.hero-chip-dot{width:7px;height:7px;background:var(--color-jade);border-radius:50%;animation:pulseJade 2s ease-in-out infinite;flex-shrink:0}.hero-name{font-family:var(--font-display);font-size:var(--text-hero);font-weight:800;line-height:1.05;letter-spacing:-.03em;color:var(--color-text);margin-bottom:var(--space-sm);opacity:0;animation:fadeInUp .7s cubic-bezier(.4,0,.2,1) .4s forwards}.hero-name span{color:var(--color-jade);display:inline-block;position:relative}.hero-name span:after{content:"";position:absolute;bottom:4px;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--color-jade),var(--color-jade-light));border-radius:var(--radius-full);transform:scaleX(0);transform-origin:left;animation:navPulse .8s ease 1.2s forwards}.hero-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;color:var(--color-text-muted);margin-bottom:var(--space-lg);opacity:0;animation:fadeInUp .7s cubic-bezier(.4,0,.2,1) .55s forwards}.hero-title .highlight{color:var(--color-text);font-weight:700}.hero-description{font-size:var(--text-lg);color:var(--color-text-muted);line-height:1.75;max-width:520px;margin-bottom:var(--space-2xl);opacity:0;animation:fadeInUp .7s cubic-bezier(.4,0,.2,1) .7s forwards}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-3xl);opacity:0;animation:fadeInUp .7s cubic-bezier(.4,0,.2,1) .85s forwards}.btn-primary .arrow{display:inline-block;transition:transform var(--transition-base)}.btn-primary:hover .arrow{transform:translate(4px)}.hero-social{display:flex;align-items:center;gap:var(--space-md);opacity:0;animation:fadeIn .7s ease 1s forwards}.hero-social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);color:var(--color-text-muted);border:1px solid var(--color-border);transition:all var(--transition-base)}.hero-social-link:hover{color:var(--color-jade);border-color:var(--color-jade);background:var(--color-jade-faint);transform:translateY(-2px);box-shadow:var(--shadow-jade-sm)}.hero-scroll-indicator{position:absolute;bottom:var(--space-xl);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--color-text-faint);font-size:var(--text-xs);font-weight:500;letter-spacing:.1em;text-transform:uppercase;z-index:3;opacity:0;animation:fadeIn 1s ease 1.5s forwards}.hero-scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--color-jade),transparent);animation:float 2s ease-in-out infinite}.hero-gradient-fallback{display:none;position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 70% 30%,rgba(0,166,147,.1) 0%,transparent 60%),radial-gradient(ellipse at 30% 70%,rgba(0,166,147,.06) 0%,transparent 50%);z-index:0}@media (max-width: 767px){.hero-gradient-fallback{display:block}#hero-canvas{display:none}}.contact-modal{border:none;border-radius:var(--radius-lg);padding:0;max-width:500px;width:90%;box-shadow:var(--shadow-xl);background:var(--color-bg);color:var(--color-text)}.contact-modal::backdrop{background:#11182799;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.contact-modal[open]{animation:modalFadeIn var(--transition-base) forwards}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content{position:relative;padding:var(--space-xl)}.close-modal-btn{position:absolute;top:var(--space-md);right:var(--space-md);background:transparent;border:none;font-size:1.5rem;color:var(--color-text-muted);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);transition:var(--transition-fast)}.close-modal-btn:hover{background:var(--color-surface);color:var(--color-text)}.modal-title{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:var(--space-xs);color:var(--color-text)}.modal-subtitle{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-xl)}.contact-form{display:flex;flex-direction:column;gap:var(--space-md)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-group label{font-size:var(--text-sm);font-weight:500;color:var(--color-text)}.form-group input,.form-group textarea{padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);transition:var(--transition-fast);outline:none}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-jade);box-shadow:0 0 0 3px var(--color-jade-glow);background:var(--color-bg)}.form-group input:not(:placeholder-shown):valid,.form-group textarea:not(:placeholder-shown):valid{border-color:var(--color-jade)}.form-group input:not(:placeholder-shown):invalid,.form-group textarea:not(:placeholder-shown):invalid{border-color:#ef4444}.form-submit-btn{margin-top:var(--space-sm);width:100%;justify-content:center}.work-talk-modal{max-width:900px;width:92vw;border-radius:var(--radius-xl)}.modal-content-large{max-width:900px;width:100%;max-height:88vh;overflow-y:auto;box-sizing:border-box}.calendar-iframe-container{width:100%;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);margin-top:var(--space-md);min-height:580px;position:relative}.calendar-iframe-container iframe{width:100%;height:580px;border:0;display:block}
