*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{color:#0f172a;-webkit-font-smoothing:antialiased;background:#f8fafc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto;line-height:1.6}body:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(circle at 0 0,#8b5cf614,#0000 30%),radial-gradient(circle at 100% 100%,#60a5fa14,#0000 30%);position:fixed;inset:0}h1,h2,h3{letter-spacing:-.02em}.page{max-width:1200px;margin:0 auto;padding:80px 24px}.nav{z-index:50;-webkit-backdrop-filter:blur(12px);background:#f8fafcd9;border-bottom:1px solid #0f172a0f;position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;max-width:1200px;height:54px;margin:0 auto;padding:0 24px;display:flex}.nav-logo{letter-spacing:-.03em;color:#0f172a;align-items:center;gap:10px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.logo-img{object-fit:contain;width:38px;height:38px}.nav-links{gap:16px;list-style:none;display:flex}.nav-links a{color:#64748b;font-size:12px;text-decoration:none;transition:color .2s}.nav-links a:hover{color:#0f172a}.hero{max-width:800px}.kicker{letter-spacing:2px;color:#888;text-transform:uppercase;font-size:12px}h1{letter-spacing:-.04em;color:#0f172a;margin:10px 0;font-size:clamp(48px,8vw,72px);line-height:1.05}.subtitle{color:#475569;max-width:600px;font-size:18px}.links{flex-wrap:wrap;gap:16px;margin-top:20px;display:flex}.links a{color:#0f172a;border-bottom:1px solid #0f172a1a;padding-bottom:2px;font-size:14px;text-decoration:none;transition:all .25s}.links a:hover{color:#8b5cf6;border-bottom:1px solid #8b5cf6}.section{max-width:800px;margin-top:80px}.section h2{color:#0f172a;letter-spacing:-.03em;margin-bottom:16px;font-size:24px}.grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:20px;display:grid}.card{background:#ffffffe6;border-radius:20px;padding:24px;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 4px 20px #0f172a0a}.card:hover{transform:translateY(-4px);box-shadow:0 10px 30px #0f172a14}.card:before{content:"";opacity:.75;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(90deg,#8b5cf673,#60a5fa73,#34d39973,#8b5cf673) 0 0/300% 300%;border-radius:20px;padding:2px;animation:8s linear infinite borderFlow;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-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}.card:hover:before{opacity:1}@keyframes borderFlow{0%{background-position:0%}to{background-position:100%}}.card h3{margin:0 0 10px;font-size:18px}.card p{color:#64748b;margin:0}.impact-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-top:20px;display:grid}.impact-card{text-align:center;background:#ffffffe6;border-radius:16px;padding:20px;box-shadow:0 4px 20px #0f172a0a}.impact-num{letter-spacing:-.04em;margin-bottom:6px;font-size:28px;font-weight:700;line-height:1.1}.impact-label{color:#64748b;font-size:12px;line-height:1.4}.spine-timeline{max-width:1100px;padding:8px 0 16px;position:relative}.spine-timeline:before{content:"";background:linear-gradient(#8b5cf6,#60a5fa 40%,#34d399 75%,#94a3b866);border-radius:2px;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.spine-items{flex-direction:column;gap:16px;display:flex}.spine-item{grid-template-columns:1fr 36px 1fr;align-items:start;display:grid;position:relative}.spine-dot{z-index:1;justify-content:center;padding-top:14px;display:flex}.spine-dot-inner{background:#f8fafc;border:2.5px solid #8b5cf6;border-radius:50%;width:14px;height:14px;transition:box-shadow .25s;box-shadow:0 0 0 4px #8b5cf61f}.spine-item:hover .spine-dot-inner{box-shadow:0 0 0 6px #8b5cf62e}.spine-card{background:#ffffffe6;border-radius:20px;padding:14px 18px;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 4px 20px #0f172a0d}.spine-card:before{content:"";opacity:0;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(90deg,#8b5cf673,#60a5fa73,#34d39973,#8b5cf673) 0 0/300% 300%;border-radius:20px;padding:2px;transition:opacity .3s;animation:8s linear infinite borderFlow;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-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}.spine-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px #0f172a17}.spine-card:hover:before{opacity:1}.spine-item:nth-child(odd) .spine-card{grid-column:1}.spine-item:nth-child(odd) .spine-dot{grid-column:2}.spine-item:nth-child(odd) .spine-empty{grid-column:3}.spine-item:nth-child(2n) .spine-empty{grid-column:1}.spine-item:nth-child(2n) .spine-dot{grid-column:2}.spine-item:nth-child(2n) .spine-card{grid-column:3}.spine-company{letter-spacing:.04em;text-transform:uppercase;color:#8b5cf6;margin-bottom:2px;font-size:11px;font-weight:600}.spine-role{color:#0f172a;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:1px;font-size:16px;font-weight:600;display:flex}.spine-period{color:#94a3b8;margin-bottom:6px;font-size:11px}.exp-badge{letter-spacing:.06em;text-transform:uppercase;color:#8b5cf6;background:#8b5cf61a;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:500}.exp-bullets{flex-direction:column;gap:2px;list-style:none;display:flex}.exp-bullets li{color:#475569;padding-left:14px;font-size:12px;line-height:1.45;position:relative}.exp-bullets li:before{content:"·";color:#cbd5e1;font-size:18px;line-height:1.2;position:absolute;left:0}@media (max-width:640px){.spine-timeline:before{left:16px;transform:none}.spine-item,.spine-item:nth-child(odd),.spine-item:nth-child(2n){padding-left:40px;display:block;position:relative}.spine-dot{width:32px;padding-top:14px;position:absolute;top:0;left:0}.spine-empty{display:none}}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:20px;display:grid}.skill-group{background:#ffffffe6;border-radius:16px;padding:14px 18px;box-shadow:0 4px 20px #0f172a0a}.skill-group-title{letter-spacing:.12em;text-transform:uppercase;color:#94a3b8;margin-bottom:12px;font-size:11px;font-weight:600}.skill-tags{flex-wrap:wrap;gap:6px;display:flex}.skill-tag{color:#475569;background:#f1f5f9;border-radius:20px;padding:4px 12px;font-size:12px}.project-tag-row{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.project-tag{color:#94a3b8;border:1px solid #0f172a14;border-radius:20px;padding:3px 10px;font-size:11px}.contact-blurb{color:#475569;max-width:440px;margin-bottom:20px;font-size:16px}footer{color:#666;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:100px;font-size:12px;display:flex}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.fade-up{opacity:0;animation:.5s forwards fadeUp}.fade-up-1{animation-delay:50ms}.fade-up-2{animation-delay:.15s}.fade-up-3{animation-delay:.25s}.fade-up-4{animation-delay:.35s}.box{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px 14px}.contact-form textarea{resize:vertical;min-height:140px}.contact-form button{color:#fff;cursor:pointer;background:#000;border:none;border-radius:12px;padding:12px 16px;font-weight:500;transition:all .2s}.contact-form button:hover{opacity:.85}.skill-tag-input{color:#0f172a;background:#ffffffe6;border:1px solid #0f172a14;border-radius:20px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:13px}.skill-tag-input:focus{border-color:#8b5cf680}.contact-form{flex-direction:column;gap:8px;max-width:500px;display:flex}
