:root{--color-text: #0f172a;--color-muted: #475569;--color-subtle: #94a3b8;--color-bg: #ffffff;--color-bg-alt: #f8fafc;--color-accent: #1e3a8a;--color-accent-hover: #1e40af;--color-border: #e2e8f0;--max-width: 760px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}main{padding:3rem 0 5rem;min-height:calc(100vh - 200px)}h1,h2,h3{color:var(--color-text);font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0 0 1rem}h1{font-size:2.5rem}h2{font-size:1.5rem;margin-top:2.5rem}h3{font-size:1.125rem;margin-top:1.5rem}p{margin:0 0 1rem;color:var(--color-text)}.muted{color:var(--color-muted)}.subtle{color:var(--color-subtle);font-size:.875rem}a{color:var(--color-accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}a:hover{border-bottom-color:var(--color-accent)}ul{padding-left:1.25rem;margin:0 0 1.5rem}li{margin-bottom:.5rem;color:var(--color-text)}li strong{color:var(--color-text)}.nav{border-bottom:1px solid var(--color-border);background:var(--color-bg);position:sticky;top:0;z-index:10}.nav-inner{max-width:var(--max-width);margin:0 auto;padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.nav-brand{font-weight:600;color:var(--color-text);border:none;font-size:1rem}.nav-links{display:flex;gap:1.75rem}.nav-link{color:var(--color-muted);font-size:.9375rem;border:none}.nav-link:hover,.nav-link.active{color:var(--color-text)}.hero{padding:1rem 0 2rem}.hero h1{font-size:2.75rem;margin-bottom:.5rem}.hero-role{font-size:1.125rem;color:var(--color-muted);margin-bottom:2rem;font-weight:400}.hero-lede{font-size:1.1875rem;line-height:1.55;color:var(--color-text);margin-bottom:2.5rem;max-width:640px}.hero-with-photo{display:grid;grid-template-columns:1fr auto;gap:2.5rem;align-items:start}.hero-photo img{width:200px;height:200px;border-radius:50%;object-fit:cover;object-position:center 30%;display:block;box-shadow:0 4px 20px #0f172a14}@media(max-width:640px){.hero-with-photo{grid-template-columns:1fr;gap:1.5rem}.hero-photo{order:-1}.hero-photo img{width:140px}}.role{padding:2rem 0;border-top:1px solid var(--color-border)}.role:first-of-type{border-top:none;padding-top:.5rem}.role-logo{height:72px;width:auto;max-width:300px;object-fit:contain;object-position:left center;margin-bottom:1rem;display:block}.role-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:.25rem}.role-title{font-size:1.125rem;font-weight:600;margin:0}.role-dates{color:var(--color-muted);font-size:.9375rem;white-space:nowrap}.role-company{color:var(--color-muted);margin-bottom:.75rem;font-size:.9375rem}.role-context{margin-bottom:.75rem;color:var(--color-text)}.subrole{margin-top:1.5rem}.subrole-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.subrole-title{font-size:1rem;font-weight:600}.btn{display:inline-block;padding:.75rem 1.5rem;background:var(--color-accent);color:#fff;border-radius:6px;font-weight:500;font-size:.9375rem;border:none;transition:background .15s ease}.btn:hover{background:var(--color-accent-hover);border:none}.btn-secondary{background:transparent;color:var(--color-accent);border:1px solid var(--color-accent)}.btn-secondary:hover{background:var(--color-bg-alt)}.btn-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}.contact-list{list-style:none;padding:0;margin:2rem 0}.contact-list li{padding:1rem 0;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.contact-label{color:var(--color-muted);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.nav-private{color:var(--color-subtle);font-weight:400;font-size:.8125rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.card{display:block;padding:1.5rem;border:1px solid var(--color-border);border-radius:8px;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}.card:hover{border-color:var(--color-accent);box-shadow:0 4px 16px #0f172a0f}.card h3{margin:0 0 .25rem}.card p{margin:0}.placeholder-note{padding:2rem;border:1px dashed var(--color-border);border-radius:8px;text-align:center}.placeholder-note code{background:var(--color-bg-alt);padding:.15rem .4rem;border-radius:4px;font-size:.875rem}.album-section{margin-top:2.5rem}.album-section h2{margin-bottom:.5rem}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;margin-top:1rem}.gallery-item{display:block;border:none;border-radius:6px;overflow:hidden}.gallery-item img{width:100%;height:280px;object-fit:cover;display:block;transition:transform .25s ease}.gallery-item:hover img{transform:scale(1.04)}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.5rem}.album-card{display:block;border:1px solid var(--color-border);border-radius:8px;overflow:hidden;color:inherit;transition:box-shadow .15s ease,border-color .15s ease}.album-card:hover{border-color:var(--color-accent);box-shadow:0 4px 16px #0f172a14}.album-card img{width:100%;height:180px;object-fit:cover;display:block}.album-meta{padding:.7rem .85rem;display:flex;flex-direction:column;gap:.1rem}.album-title{font-weight:600}.album-back{display:inline-block;margin-bottom:.5rem;font-size:.9375rem}.book-list{list-style:none;padding:0;margin:1rem 0 2rem}.book-list li{padding:1rem 0;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:.15rem}.book-title{font-weight:600}.book-author{color:var(--color-muted);font-size:.9375rem}.book-note{font-size:.875rem}.footer{border-top:1px solid var(--color-border);padding:2rem 0;color:var(--color-subtle);font-size:.875rem;text-align:center}@media(max-width:600px){h1{font-size:2rem}.hero h1{font-size:2.25rem}.hero-lede{font-size:1.0625rem}main{padding:2rem 0 4rem}.nav-inner{padding:1rem 1.5rem}.nav-links{gap:1.25rem}}
