@import"https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&family=Inter:wght@400;500;600&display=swap";:root{--bg: #faf8f5;--bg-soft: #f2efe9;--text: #1c2430;--text-2: #3d4654;--muted: #6b7280;--line: #ddd7cc;--brand: #1f3a5f;--brand-dk: #152a45;--accent: #9a6b2f;--radius: 6px;--shadow: 0 1px 2px rgba(28, 36, 48, .06);--shadow-lg: 0 14px 34px -12px rgba(28, 36, 48, .22), 0 2px 6px rgba(28, 36, 48, .06);--card: #ffffff;--ease: cubic-bezier(.2, .7, .2, 1);--serif: "Source Serif 4", Georgia, "Times New Roman", serif;--sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;font-family:var(--sans);color-scheme:light;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;background:var(--bg);color:var(--text);line-height:1.6}h1,h2,h3,p,ul,ol{margin:0}ul,ol{list-style:none;padding:0}a{color:inherit;text-decoration:none}.container{width:min(1080px,calc(100% - 48px));margin:0 auto}.narrow{max-width:720px}.center{text-align:center;justify-content:center}.section{padding:112px 0}.section-ruled{border-top:1px solid var(--line)}.display,.headline,h3{font-family:var(--serif);color:var(--text);letter-spacing:-.01em}.display{font-size:clamp(2.6rem,5.5vw,4.2rem);font-weight:700;line-height:1.08}.headline{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:600;line-height:1.2;margin-bottom:28px}h3{font-size:1.25rem;font-weight:600;line-height:1.3}.lead{font-size:1.12rem;color:var(--text-2);max-width:600px;margin-top:22px}.body{color:var(--text-2);margin-top:14px}.eyebrow,.label{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.label{display:inline-block;padding-bottom:4px;border-bottom:1px solid var(--accent);margin-bottom:18px}.btn{display:inline-flex;align-items:center;padding:11px 22px;border-radius:var(--radius);font-weight:500;font-size:.95rem;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s,transform .25s var(--ease),box-shadow .25s var(--ease)}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dk)}.btn-ghost{border-color:var(--line);color:var(--text)}.btn-ghost:hover{border-color:var(--brand);color:var(--brand)}.nav{position:sticky;top:0;z-index:10;background:#faf8f5eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color .2s}.nav-scrolled{border-bottom-color:var(--line)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.nav-brand{font-family:var(--serif);font-weight:700;font-size:1.15rem}.nav-links{display:flex;gap:28px;font-size:.92rem;color:var(--text-2)}.nav-links a{position:relative;transition:color .2s}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.nav-links a:hover{color:var(--brand)}.nav-links a:hover:after,.nav-links a.active:after{transform:scaleX(1)}.nav-links a.active{color:var(--brand);font-weight:600}.nav-toggle{display:none;background:none;border:0;padding:6px;cursor:pointer}.nav-toggle span{display:block;width:22px;height:2px;background:var(--text);margin:4px 0}.hero{padding:96px 0 80px}.hero-inner{display:grid;grid-template-columns:1fr auto;gap:64px;align-items:center}.hero .eyebrow{margin-bottom:16px}.hero-role{font-size:1.2rem;color:var(--brand);font-weight:500;margin-top:14px}.hero-at{color:var(--muted);font-weight:400}.hero-tags{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:24px;font-size:.9rem;color:var(--muted)}.hero-tags li+li:before{content:"·";margin-right:20px;color:var(--line)}.hero-currently{display:flex;align-items:baseline;gap:10px;max-width:600px;margin-top:18px;padding:12px 16px;font-size:.95rem;color:var(--text-2);background:var(--bg-soft);border-left:2px solid var(--accent);border-radius:var(--radius)}.hero-currently strong{color:var(--text);font-weight:600;white-space:nowrap}.hero-currently-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#2f8f5b;box-shadow:0 0 #2f8f5b80;animation:pulse 2.4s infinite;align-self:center}@keyframes pulse{0%{box-shadow:0 0 #2f8f5b73}70%{box-shadow:0 0 0 8px #2f8f5b00}to{box-shadow:0 0 #2f8f5b00}}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero-portrait{width:240px;height:280px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-soft);display:grid;place-items:center;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}.hero-portrait:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hero-portrait span{font-family:var(--serif);font-size:4.5rem;color:var(--brand)}.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:42% center;transition:transform .6s var(--ease)}.hero-portrait:hover img{transform:scale(1.04)}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-soft)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{position:relative;padding:34px 24px;display:flex;flex-direction:column;gap:4px;transition:background .25s}.stat:after{content:"";position:absolute;left:24px;right:24px;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}.stat:hover{background:var(--card)}.stat:hover:after{transform:scaleX(1)}.stat+.stat{border-left:1px solid var(--line)}.stat-value{font-family:var(--serif);font-size:2.2rem;font-weight:700;color:var(--brand);line-height:1.1;transition:color .25s}.stat:hover .stat-value{color:var(--accent)}.stat-label{font-size:.88rem;color:var(--muted)}.timeline-item{position:relative;display:grid;grid-template-columns:200px 1fr;gap:32px;padding:32px 28px;margin:0 -28px;border-top:1px solid var(--line);border-radius:var(--radius);transition:background .3s,box-shadow .3s var(--ease),transform .3s var(--ease),border-color .3s}.timeline-item:first-child{border-top-color:transparent}.timeline-item:before{content:"";position:absolute;left:0;top:24px;bottom:24px;width:3px;border-radius:3px;background:var(--accent);transform:scaleY(0);transition:transform .35s var(--ease)}.timeline-item:hover{background:var(--card);box-shadow:var(--shadow-lg);transform:translateY(-3px);border-top-color:transparent}.timeline-item:hover+.timeline-item{border-top-color:transparent}.timeline-item:hover:before{transform:scaleY(1)}.timeline-item:hover h3{color:var(--brand)}.timeline-meta{display:flex;flex-direction:column;gap:4px;font-size:.9rem}.timeline-period{font-weight:600;color:var(--text)}.timeline-location{color:var(--muted)}.timeline-company{color:var(--brand);font-weight:500;margin-top:4px}.timeline-body ul{margin-top:12px;display:grid;gap:6px}.timeline-body li{position:relative;padding-left:18px;color:var(--text-2)}.timeline-body li:before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:var(--accent)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.skill-group{position:relative;padding:26px 24px 24px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}.skill-group:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand),var(--accent));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.skill-group:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:transparent}.skill-group:hover:before{transform:scaleX(1)}.skill-group h3{display:flex;align-items:center;font-size:1.1rem;margin-bottom:16px}.skill-icon{display:inline-grid;place-items:center;width:40px;height:40px;margin-right:12px;border-radius:10px;background:var(--bg-soft);font-size:1.2rem;transition:transform .35s var(--ease),background .3s}.skill-group:hover .skill-icon{transform:scale(1.1) rotate(-6deg);background:#e9e2d4}.skill-group ul{display:flex;flex-wrap:wrap;gap:8px}.skill-group li{padding:5px 12px;font-size:.85rem;color:var(--text-2);background:var(--bg);border:1px solid var(--line);border-radius:999px;transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease)}.skill-group li:hover{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-1px)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:64px}.entry{padding:18px 20px;margin:0 -20px;border-left:2px solid transparent;border-radius:var(--radius);transition:background .3s,border-color .3s,box-shadow .3s var(--ease)}.entry+.entry{margin-top:8px}.entry:hover{background:var(--card);border-left-color:var(--accent);box-shadow:var(--shadow-lg)}.entry-meta{color:var(--muted);font-size:.92rem;margin-top:4px}.contact{background:var(--bg-soft);border-top:1px solid var(--line);padding-bottom:0}.footer{margin-top:96px;padding:24px 0;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted);text-align:center}@media (max-width: 820px){.section{padding:80px 0}.hero{padding:64px 0 56px}.hero-inner{grid-template-columns:1fr;gap:40px}.hero-portrait{width:160px;height:180px;order:-1}.hero-portrait span{font-size:3rem}.timeline-item{grid-template-columns:1fr;gap:8px;padding:28px 20px;margin:0 -20px}.skills-grid{grid-template-columns:1fr}.two-col{grid-template-columns:1fr;gap:48px}.stat+.stat{border-left:0;border-top:1px solid var(--line)}.nav-toggle{display:block}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line)}.nav-links a{padding:14px 24px;border-top:1px solid var(--line)}.nav-links a:after{display:none}.nav-links a.active{background:var(--bg-soft)}.nav-open{display:flex}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0s!important;animation:none!important}.btn:hover,.hero-portrait:hover,.hero-portrait:hover img,.timeline-item:hover,.skill-group:hover,.skill-group:hover .skill-icon,.skill-group li:hover{transform:none}}
