:root{color-scheme:light;--bg: #f7f8f6;--surface: #ffffff;--surface-muted: #eef1ee;--text: #17211f;--muted: #51615d;--border: #d8ded9;--accent: #195d63;--accent-strong: #0e3f45;--accent-alt: #8a4f28;--accent-soft: #dcebed;--tag-bg: #edf4f1;--radius: 8px;--shadow: 0 10px 25px rgb(23 33 31 / 8%);--shadow-strong: 0 18px 42px rgb(23 33 31 / 13%);font-family:Inter,Aptos,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);scroll-behavior:smooth}body{margin:0;min-width:320px;line-height:1.6;text-rendering:optimizeLegibility;background:linear-gradient(180deg,#edf3f0 0,var(--bg) 28rem),var(--bg)}a{color:var(--accent-strong);text-decoration-thickness:.08em;text-underline-offset:.18em}a:hover{color:#0b2f34}img{display:block;max-width:100%}.site-shell{min-height:100vh;display:flex;flex-direction:column}.skip-link{position:absolute;top:.75rem;left:.75rem;z-index:20;transform:translateY(-150%);padding:.6rem .8rem;border-radius:4px;background:var(--accent-strong);color:#fff}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border);background:#f7f8f6eb;backdrop-filter:blur(14px)}.nav{width:min(1120px,calc(100% - 2rem));margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.85rem 0}.brand{color:var(--text);font-size:.98rem;font-weight:700;text-decoration:none;white-space:nowrap}.nav-links{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;justify-content:flex-end;padding:.22rem;border:1px solid rgb(216 222 217 / 82%);border-radius:999px;background:#ffffffb8}.nav-links a{display:inline-flex;align-items:center;min-height:2rem;padding:.28rem .68rem;border-radius:999px;color:#42534f;font-size:.94rem;font-weight:680;text-decoration:none;transition:background .14s ease,color .14s ease}.nav-links a:hover{background:var(--accent-soft);color:var(--accent-strong)}.nav-links a[aria-current=page]{background:var(--accent-strong);color:#fff}main{flex:1}.container{width:min(1120px,calc(100% - 2rem));margin:0 auto}.narrow{width:min(820px,calc(100% - 2rem));margin:0 auto}.section{padding:4.25rem 0}.section.compact{padding:3rem 0}.section-header{display:grid;gap:.45rem;margin-bottom:1.5rem}.eyebrow{margin:0;color:var(--accent-strong);font-size:.82rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3{margin:0;line-height:1.18;letter-spacing:0}h1{font-size:clamp(2.35rem,6vw,4.7rem);font-weight:760}h2{font-size:clamp(1.65rem,3vw,2.35rem);font-weight:730}h3{font-size:1.1rem;font-weight:720}p{margin:0}.lead{color:var(--muted);font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.7}.hero{padding:5.5rem 0 4.25rem;border-bottom:1px solid rgb(255 255 255 / 12%);background:linear-gradient(135deg,#0b1f22,#173a3d 58%,#48311f),repeating-linear-gradient(135deg,#fff0 0 18px,#ffffff0a 18px 19px);background-blend-mode:normal,overlay;color:#f7fbf8}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:2.5rem;align-items:center}.subtitle{margin-top:1rem;color:#d9ece8;font-size:clamp(1rem,2vw,1.35rem);font-weight:650}.hero .eyebrow{color:#a9d7d3}.hero .lead{color:#d8e5e1}.summary{margin-top:1.5rem;max-width:68ch}.focus-strip{display:grid;grid-template-columns:minmax(180px,.35fr) 1fr;gap:1rem;align-items:center;padding:1.15rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.inline-list,.component-list{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}.inline-list li,.component-list li{display:inline-flex;align-items:center;min-height:1.9rem;padding:.22rem .58rem;border:1px solid #d4e3de;border-radius:999px;background:var(--tag-bg);color:#284942;font-size:.86rem;font-weight:680}.workflow-panel{padding:1.35rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.workflow-panel .section-header{margin-bottom:0}.button-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.8rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.65rem;padding:.62rem .95rem;border:1px solid var(--accent-strong);border-radius:6px;background:var(--accent-strong);color:#fff;font-weight:700;text-decoration:none}.button:hover{background:#0b3035;color:#fff}.button.secondary{background:transparent;color:var(--accent-strong)}.button.secondary:hover{background:var(--accent-soft);color:var(--accent-strong)}.hero .button{border-color:#d8ebe8;background:#f4faf8;color:#0e3f45}.hero .button.secondary{border-color:#f4faf8;background:#f4faf8;color:#0e3f45}.hero .button:hover,.hero .button.secondary:hover{border-color:#d2e4e0;background:#d2e4e0;color:#0b3035}.figure-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.hero .figure-panel{border-color:#ffffff2e;box-shadow:0 25px 60px #00000047}.figure-panel img{width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#050505}.hero-media{background:#071012}.video-frame{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#071012}.video-frame iframe,.video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0}.lite-video-button{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#071012;color:#fff;cursor:pointer}.lite-video-button img{width:100%;height:100%;object-fit:cover;opacity:.86;transition:opacity .16s ease,transform .18s ease}.lite-video-button:hover img{opacity:.98;transform:scale(1.015)}.play-button{position:absolute;left:50%;top:50%;display:inline-flex;align-items:center;justify-content:center;min-width:4.4rem;min-height:2.6rem;transform:translate(-50%,-50%);border:1px solid rgb(255 255 255 / 72%);border-radius:999px;background:#071012c7;color:#fff;font-size:.9rem;font-weight:800;text-transform:uppercase}.figure-caption{padding:.85rem 1rem 1rem;color:var(--muted);font-size:.9rem}.hero .figure-caption{color:#d8e5e1;background:#071012}.grid{display:grid;gap:1rem}.grid.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-nav{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:2rem}.gallery-nav a{display:inline-flex;align-items:center;min-height:2.15rem;padding:.25rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--accent-strong);font-size:.9rem;font-weight:700;text-decoration:none}.gallery-nav a:hover{border-color:var(--accent);background:var(--accent-soft)}.simulation-group{padding:1.5rem 0 3rem}.simulation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.simulation-card{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.simulation-card:hover{transform:translateY(-2px);border-color:#b6cbc5;box-shadow:var(--shadow-strong)}.simulation-copy{display:grid;gap:.35rem;padding:.95rem 1rem 1.05rem}.simulation-copy p:last-child{color:var(--muted);font-size:.94rem}.simulation-group:first-of-type .simulation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card:hover{transform:translateY(-2px);border-color:#b6cbc5;box-shadow:var(--shadow-strong)}.card-body{display:grid;gap:.85rem;padding:1.1rem}.card p,.muted{color:var(--muted)}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none}.tag{display:inline-flex;align-items:center;min-height:1.8rem;padding:.18rem .55rem;border:1px solid #d4e3de;border-radius:999px;background:var(--tag-bg);color:#264943;font-size:.8rem;font-weight:650}.project-card{display:grid;height:100%}.project-card .card-body{align-content:start}.project-highlights{display:grid;gap:.45rem;margin:0;padding-left:1.1rem;color:var(--muted);font-size:.92rem}.project-highlights li::marker{color:var(--accent-alt)}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-status{color:var(--accent-alt);font-size:.82rem;font-weight:750}.preprint-note{margin:0;color:var(--accent-alt);font-size:.88rem;font-weight:700}.preprint-box{margin-bottom:1.6rem;padding:1rem;border:1px solid #d8c4aa;border-left:4px solid var(--accent-alt);border-radius:var(--radius);background:#fff8ef}.preprint-box h2{margin-top:.2rem}.preprint-mini{display:grid;gap:.2rem;padding:.75rem;border:1px solid #d8c4aa;border-radius:var(--radius);background:#fff8ef}.preprint-mini span{color:var(--accent-alt);font-size:.78rem;font-weight:750;text-transform:uppercase}.link-list{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}.link-list a{font-weight:700}.band{border-block:1px solid var(--border);background:linear-gradient(180deg,#eef1eec2,#eef1eef5),var(--surface-muted)}.skill-table{display:grid;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.skill-row{display:grid;grid-template-columns:210px 1fr;gap:1rem;padding:1rem;border-top:1px solid var(--border)}.skill-row:first-child{border-top:0}.skill-row strong{color:var(--accent-strong)}.page-title{padding:3.75rem 0 2.25rem;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#edf3f0 0%,var(--bg) 100%)}.page-title .lead{margin-top:.9rem;max-width:72ch}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:2rem;align-items:start}.prose{display:grid;gap:1.2rem}.prose ul{margin:0;padding-left:1.15rem}.prose .component-list{padding-left:0}.sidebar{position:sticky;top:5rem}.placeholder-list{display:grid;gap:.9rem}.placeholder-item{padding:1rem;border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.site-footer{border-top:1px solid var(--border);padding:2rem 0;color:var(--muted);background:var(--surface);font-size:.92rem}.footer-inner{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}@media(max-width:900px){.hero-grid,.detail-grid,.focus-strip,.grid.cards,.grid.two,.simulation-grid,.simulation-group:first-of-type .simulation-grid{grid-template-columns:1fr}.hero{padding-top:4rem}.sidebar{position:static}}@media(max-width:640px){.nav{align-items:flex-start;flex-direction:column;gap:.75rem}.nav-links{justify-content:flex-start;gap:.85rem}.section{padding:3rem 0}.skill-row{grid-template-columns:1fr;gap:.45rem}}
