@import "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@300;400;500;600&family=Source+Code+Pro:wght@400;500&display=swap";:root{--bg:#fff;--bg-soft:#f6f9fc;--bg-card:#fff;--navy:#061b31;--label:#273951;--body:#64748d;--accent:#1d4f91;--accent-hover:#173f75;--accent-soft:#e8f0fa;--border:#e5edf5;--mono:"Source Code Pro", ui-monospace, monospace;--sans:"Source Sans 3", system-ui, -apple-system, sans-serif;--shadow-card:#32325d1a 0px 18px 36px -18px, #0000000f 0px 8px 18px -12px;--shadow-lift:#32325d33 0px 30px 45px -30px, #00000014 0px 18px 36px -18px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--body);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:17px;font-weight:300;line-height:1.55}h1,h2,h3,h4{color:var(--navy);font-weight:300}.container{max-width:68rem;margin:0 auto;padding:0 1.5rem}nav{z-index:50;backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#ffffffd9;position:sticky;top:0}nav .container{justify-content:space-between;align-items:center;height:4.25rem;display:flex}.logo{font-family:var(--mono);color:var(--navy);letter-spacing:-.02em;font-size:1.05rem;font-weight:500;text-decoration:none}.logo .l9{color:var(--accent)}.logo .tld{color:var(--body)}.nav-links{gap:2.25rem;list-style:none;display:flex}.nav-links a{color:var(--label);font-size:.92rem;font-weight:400;text-decoration:none;transition:color .15s}.nav-links a:hover,.nav-links a.active{color:var(--accent)}.hero{padding:6.5rem 0 4.5rem}.hero .tag{font-family:var(--mono);color:var(--accent);border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:4px;margin-bottom:1.75rem;padding:.35rem .9rem;font-size:.78rem;display:inline-block}.hero h1{letter-spacing:-.02em;max-width:20ch;font-size:clamp(2.5rem,5vw,3.5rem);font-weight:300;line-height:1.1}.hero h1 .accent{color:var(--accent)}.hero p.lede{color:var(--body);max-width:58ch;margin-top:1.5rem;font-size:1.15rem}.hero-cta{flex-wrap:wrap;gap:1rem;margin-top:2.5rem;display:flex}.stack{font-family:var(--mono);border:1px solid var(--border);background:var(--bg-card);max-width:34rem;box-shadow:var(--shadow-card);border-radius:6px;margin-top:4rem;font-size:.8rem;overflow:hidden}.stack .layer{color:#9fb0c3;border-bottom:1px solid var(--border);justify-content:space-between;padding:.5rem 1.1rem;display:flex}.stack .layer:last-child{border-bottom:none}.stack .layer.l9{color:var(--accent);background:var(--accent-soft);font-weight:500}.stack .layer.l8{color:#4a7ab5;background:#f0f5fb;font-weight:500}.stack .num{opacity:.55;margin-right:1rem}.stack-caption{color:var(--body);max-width:34rem;margin-top:.9rem;font-size:.88rem}.stack-caption a{color:var(--accent);text-decoration:none}.stack-caption a:hover{text-decoration:underline}.btn{border-radius:4px;padding:.7rem 1.5rem;font-size:.98rem;font-weight:400;text-decoration:none;transition:all .15s;display:inline-block}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 6px 16px -6px #1d4f9140}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{border:1px solid var(--border);color:var(--label);background:#fff}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}section.block{padding:4rem 0}section.soft{background:var(--bg-soft)}.section-label{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.14em;margin-bottom:.75rem;font-size:.75rem}h2.section-title{letter-spacing:-.02em;margin-bottom:2rem;font-size:2.1rem}.grid{gap:1.25rem;display:grid}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:6px;padding:1.75rem;transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.card h3{margin-bottom:.6rem;font-size:1.2rem}.card h3 .icon{color:var(--accent);margin-right:.5rem}.card p,.card li{color:var(--body);font-size:.95rem}.card ul{margin-top:.25rem;list-style:none}.card ul li{padding:.3rem 0 .3rem 1.2rem;position:relative}.card ul li:before{content:"▸";color:var(--accent);position:absolute;left:0}.page-hero{border-bottom:1px solid var(--border);padding:4.5rem 0 3rem}.page-hero h1{letter-spacing:-.02em;font-size:clamp(2rem,4vw,2.9rem)}.page-hero p{color:var(--body);max-width:62ch;margin-top:1rem;font-size:1.08rem}.prose{max-width:64ch}.prose p{color:var(--label);margin-bottom:1.25rem}.prose p.dim{color:var(--body)}.prose h3{margin:2.5rem 0 1rem;font-size:1.35rem}.prose strong{color:var(--navy);font-weight:500}.practice{border-top:1px solid var(--border);padding:2.25rem 0}.practice h3{margin-bottom:1rem;font-size:1.35rem}.practice h3 .num{font-family:var(--mono);color:var(--accent);margin-right:.75rem;font-size:.9rem}.practice ul{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.5rem;list-style:none;display:grid}.practice ul li{color:var(--body);padding-left:1.25rem;font-size:.96rem;position:relative}.practice ul li:before{content:"▸";color:var(--accent);position:absolute;left:0}.pub{color:inherit;border:1px solid var(--border);background:var(--bg-card);box-shadow:var(--shadow-card);border-radius:6px;margin-bottom:1rem;padding:1.5rem 1.75rem;text-decoration:none;transition:box-shadow .2s,transform .2s;display:block}.pub:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.pub .pub-title{color:var(--navy);font-size:1.15rem;font-weight:400;display:block}.pub:hover .pub-title{color:var(--accent)}.pub .pub-meta{font-family:var(--mono);color:var(--body);margin-top:.4rem;font-size:.78rem;display:block}.pub .pub-meta .author{color:var(--accent)}.pubtabs input[type=radio]{opacity:0;pointer-events:none;position:absolute}.pubtab-labels{border-bottom:1px solid var(--border);gap:2.5rem;margin-bottom:2rem;display:flex}.pubtab-labels label{color:var(--body);cursor:pointer;user-select:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem .25rem;font-size:1.15rem;transition:color .15s,border-color .15s}.pubtab-labels label:hover{color:var(--accent)}#tab-blogs:checked~.pubtab-labels label[for=tab-blogs],#tab-papers:checked~.pubtab-labels label[for=tab-papers],#tab-presentations:checked~.pubtab-labels label[for=tab-presentations]{color:var(--navy);border-bottom-color:var(--accent);font-weight:400}.pubpane{display:none}#tab-blogs:checked~.pane-blogs,#tab-papers:checked~.pane-papers,#tab-presentations:checked~.pane-presentations{display:block}.empty-note{color:var(--body);font-style:italic}.file-link{color:var(--accent);text-decoration:none}.file-link:hover{text-decoration:underline}.member{align-items:flex-start;gap:1.25rem;display:flex}.member .avatar{background:linear-gradient(135deg, var(--accent), #3a6fb0);width:56px;height:56px;font-family:var(--mono);color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.05rem;font-weight:500;display:flex}.member h3{font-size:1.15rem;font-weight:400}.member .role{font-family:var(--mono);color:var(--accent);margin:.2rem 0 .5rem;font-size:.78rem}.member p{color:var(--body);font-size:.93rem}.tribute{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--bg-soft);border-radius:6px;max-width:46rem;margin-top:2.5rem;padding:2.25rem}.tribute-label{font-family:var(--mono);color:var(--accent);letter-spacing:.12em;margin-bottom:.75rem;font-size:.75rem}.tribute-name{color:var(--navy);font-size:1.4rem}.tribute-years{font-family:var(--mono);color:var(--body);margin-left:.5rem;font-size:.85rem}.tribute p:last-child{color:var(--body);margin-top:.75rem}.contact-box{border:1px solid var(--border);background:var(--bg-card);text-align:center;max-width:40rem;box-shadow:var(--shadow-lift);border-radius:8px;margin:0 auto;padding:3rem}.contact-box .addr{font-family:var(--mono);color:var(--accent);margin:1rem 0 2rem;font-size:1.3rem;text-decoration:none;display:block}footer{border-top:1px solid var(--border);color:var(--body);background:var(--bg-soft);margin-top:5rem;padding:2.5rem 0;font-size:.88rem}footer .container{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}footer .mono{font-family:var(--mono);font-size:.78rem}.reveal{opacity:0;transition:opacity .55s,transform .55s;transform:translateY(16px)}.reveal.visible{opacity:1;transform:none}@media (width<=640px){.nav-links{gap:1.1rem}.nav-links a{font-size:.82rem}.hero{padding:4rem 0 3rem}}
