:root{--radius-ng:0.75rem;--radius-ng-sm:0.5rem;--color-ng-slate-50:#f8fafc;--color-ng-slate-100:#f1f5f9;--color-ng-slate-200:#e2e8f0;--color-ng-slate-300:#cbd5e1;--color-ng-slate-400:#94a3b8;--color-ng-slate-500:#64748b;--color-ng-slate-600:#475569;--color-ng-slate-700:#334155;--color-ng-slate-800:#1e293b;--color-ng-slate-900:#0f172a;--color-ng-blue-100:#dbeafe;--color-ng-blue-300:#93c5fd;--color-ng-blue-400:#60a5fa;--color-ng-blue-500:#3b82f6;--color-ng-blue-600:#2563eb;--color-ng-blue-700:#1d4ed8;--color-ng-blue-900:#1e3a8a;--color-ng-cyan-200:#a5f3fc;--color-ng-cyan-400:#22d3ee;--color-ng-cyan-500:#06b6d4;--color-ng-cyan-600:#0891b2;--color-ng-white:#ffffff;--color-ng-ink:#0a1220}:root{--ng-card-bg:var(--color-ng-slate-50);--ng-card-bg-alt:var(--color-ng-slate-100);--ng-card-border:var(--color-ng-slate-200);--ng-divider:var(--color-ng-slate-200);--ng-track:var(--color-ng-slate-200);--ng-code-bg:var(--color-ng-slate-100);--ng-text:var(--color-ng-slate-700);--ng-text-strong:var(--color-ng-slate-800);--ng-text-muted:var(--color-ng-slate-500);--ng-accent:var(--color-ng-cyan-600);--ng-tag-bg:var(--color-ng-blue-100);--ng-tag-fg:var(--color-ng-blue-700);--ng-btn-bg:var(--color-ng-blue-600);--ng-btn-bg-hover:var(--color-ng-blue-700);--ng-btn-fg:var(--color-ng-white);--ng-tone-blue-bg:var(--color-ng-blue-100);--ng-tone-blue-fg:var(--color-ng-blue-700);--ng-tone-cyan-bg:var(--color-ng-cyan-100);--ng-tone-cyan-fg:var(--color-ng-cyan-800);--ng-tone-slate-bg:var(--color-ng-slate-200);--ng-tone-slate-fg:var(--color-ng-slate-700);--ng-radius:var(--radius-ng);--ng-radius-sm:var(--radius-ng-sm);--ng-hover-lift:-4px;--ng-hover-shadow:0 12px 28px -12px rgba(37, 99, 235, 0.35);--ng-hover-border:var(--color-ng-blue-400);--ng-transition:0.18s ease}html.dark{--ng-card-bg:var(--color-ng-slate-800);--ng-card-bg-alt:var(--color-ng-slate-700);--ng-card-border:var(--color-ng-slate-700);--ng-divider:var(--color-ng-slate-700);--ng-track:var(--color-ng-slate-700);--ng-code-bg:var(--color-ng-slate-900);--ng-text:var(--color-ng-slate-300);--ng-text-strong:var(--color-ng-slate-100);--ng-text-muted:var(--color-ng-slate-400);--ng-accent:var(--color-ng-cyan-400);--ng-tag-bg:var(--color-ng-blue-900);--ng-tag-fg:var(--color-ng-cyan-200);--ng-btn-bg:var(--color-ng-blue-400);--ng-btn-bg-hover:var(--color-ng-blue-300);--ng-btn-fg:var(--color-ng-ink);--ng-tone-blue-bg:var(--color-ng-blue-900);--ng-tone-blue-fg:var(--color-ng-blue-300);--ng-tone-cyan-bg:var(--color-ng-cyan-900);--ng-tone-cyan-fg:var(--color-ng-cyan-200);--ng-tone-slate-bg:var(--color-ng-slate-700);--ng-tone-slate-fg:var(--color-ng-slate-200);--ng-hover-shadow:0 12px 28px -12px rgba(59, 130, 246, 0.45);--ng-hover-border:var(--color-ng-blue-500)}.ng-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin:2rem 0}.ng-card{display:flex;flex-direction:column;border:1px solid var(--ng-card-border);border-radius:var(--ng-radius);overflow:hidden;background:var(--ng-card-bg);text-decoration:none;color:inherit;transition:transform var(--ng-transition),box-shadow var(--ng-transition),border-color var(--ng-transition)}.ng-card:hover{transform:translateY(var(--ng-hover-lift));box-shadow:var(--ng-hover-shadow);border-color:var(--ng-hover-border)}.ng-tag-row{display:flex;flex-wrap:wrap;gap:.35rem}.ng-tag{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;background:var(--ng-tag-bg);color:var(--ng-tag-fg)}.ng-link-btn{display:inline-block;padding:.5rem 1.1rem;border-radius:var(--ng-radius-sm);font-size:.9rem;font-weight:600;text-decoration:none;background:var(--ng-btn-bg);color:var(--ng-btn-fg);transition:background .15s ease}.ng-link-btn:hover{background:var(--ng-btn-bg-hover)}.ng-back-link{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--ng-divider);font-size:.9rem;font-weight:600}.ng-back-link a{color:var(--ng-accent);text-decoration:none}.rsx-card-media{aspect-ratio:16/9;overflow:hidden;background:var(--ng-card-bg-alt)}.rsx-card-media img{width:100%;height:100%;object-fit:cover;display:block}.rsx-card-body{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;flex:1}.rsx-card-title{margin:0;font-size:1.15rem;font-weight:700;color:var(--ng-text-strong)}.rsx-card-tagline{margin:0;font-size:.9rem;line-height:1.4;color:var(--ng-text-muted)}.rsx-card-cta{margin-top:auto;padding-top:.75rem;font-size:.85rem;font-weight:600;color:var(--ng-accent)}.rsx-detail{max-width:46rem;margin:0 auto}.rsx-detail-head{margin-bottom:1.5rem}.rsx-detail-title{margin:0 0 .5rem;font-size:2rem;font-weight:800;line-height:1.2;color:var(--ng-text-strong)}.rsx-detail-tagline{margin:0 0 .75rem;font-size:1.1rem;color:var(--ng-text-muted)}.rsx-detail-tags{margin-top:.5rem}.rsx-detail-figure{margin:1.5rem 0}.rsx-detail-figure img{width:100%;height:auto;border-radius:var(--ng-radius);border:1px solid var(--ng-card-border);display:block}.rsx-detail-figure figcaption{margin-top:.5rem;font-size:.85rem;color:var(--ng-text-muted);text-align:center}.rsx-detail-body{font-size:1.02rem;line-height:1.7;color:var(--ng-text)}.rsx-detail-body p{margin:0 0 1rem}.rsx-detail-body a{color:var(--ng-accent)}.rsx-detail-links{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.75rem 0 0}.cyf{max-width:60rem;margin:0 auto}.cyf-sub{color:var(--ng-text-muted);font-size:1.02rem;line-height:1.55;margin:.25rem 0 1.75rem;max-width:42rem}.cyf-arena{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(1rem,3vw,2.25rem);align-items:stretch}.cyf-card{display:flex;flex-direction:column;background:var(--ng-card-bg);border:1px solid var(--ng-card-border);border-radius:16px;padding:1.5rem 1.5rem 1.35rem;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;animation:cyf-rise .5s ease both}.cyf-card:nth-of-type(2){animation-delay:.08s}.cyf-card:hover,.cyf-card:focus-within{transform:translateY(-4px);border-color:var(--ng-hover-border);box-shadow:var(--ng-hover-shadow)}.cyf-tag{align-self:flex-start;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ng-btn-bg);border:1px solid var(--ng-btn-bg);border-radius:999px;padding:.2rem .6rem;margin-bottom:.85rem}.cyf-name{font-size:1.5rem;font-weight:800;letter-spacing:-.01em;color:var(--ng-text-strong);margin:0 0 .5rem}.cyf-aud{color:var(--ng-text-muted);font-size:.92rem;line-height:1.5;margin:0 0 1.15rem}.cyf-stats{display:flex;flex-direction:column;gap:.55rem;margin:0 0 1.2rem}.cyf-stat{display:grid;grid-template-columns:5.5rem 1fr;align-items:center;gap:.7rem}.cyf-stat-label{font-size:.78rem;font-weight:600;color:var(--ng-text-strong);letter-spacing:.01em}.cyf-pips{display:flex;gap:4px}.cyf-pips i{flex:1;height:7px;border-radius:4px;background:var(--ng-track)}.cyf-pips i.on{background:var(--ng-btn-bg)}.cyf-pips i.on.tip{background:var(--ng-accent)}.cyf-inside{list-style:none;padding:0;margin:0 0 1.35rem;display:flex;flex-direction:column;gap:.4rem}.cyf-inside li{position:relative;padding-left:1.15rem;font-size:.88rem;color:var(--ng-text-strong);line-height:1.45}.cyf-inside li::before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:50%;background:var(--ng-accent)}.cyf-actions{display:flex;gap:.6rem;margin-top:auto}.cyf-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem .5rem;border-radius:10px;font-size:.9rem;font-weight:600;text-decoration:none;border:1px solid var(--ng-btn-bg);transition:background .15s ease,color .15s ease,transform .1s ease}.cyf-btn:active{transform:scale(.98)}.cyf-btn--solid{background:var(--ng-btn-bg);color:var(--ng-btn-fg)}.cyf-btn--solid:hover{background:var(--ng-btn-bg-hover)}.cyf-btn--ghost{background:0 0;color:var(--ng-btn-bg)}.cyf-btn--ghost:hover{background:color-mix(in srgb,var(--ng-btn-bg) 12%,transparent)}.cyf-btn:focus-visible{outline:2px solid var(--ng-btn-bg);outline-offset:2px}.cyf-vs{display:flex;align-items:center;justify-content:center}.cyf-vs span{width:3.1em;height:3.1em;display:grid;place-items:center;border-radius:999px;background:var(--ng-card-bg);border:2px solid var(--ng-card-border);font-size:1.15rem;font-weight:800;letter-spacing:-.03em;color:var(--ng-text-muted)}.cyf-foot{margin:1.6rem 0 0;font-size:.8rem;color:var(--ng-text-muted);text-align:center}.cyf-foot a{color:var(--ng-accent)}.cyf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:720px){.cyf-arena{grid-template-columns:1fr}.cyf-vs{margin:-.4rem 0}.cyf-vs span{font-size:1rem}}@keyframes cyf-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.cyf-card{animation:none}.cyf-card,.cyf-btn{transition:none}.cyf-card:hover,.cyf-card:focus-within{transform:none}}.cyf-mobile-only{display:none}@media(hover:none),(max-width:720px){.cyf-desktop-only{display:none}.cyf-mobile-only{display:inline-flex}}.pubs{max-width:52rem;margin:0 auto}.pub-card{background:var(--ng-card-bg);border:1px solid var(--ng-card-border);border-radius:14px;padding:1.35rem 1.4rem;margin:0 0 1rem;transition:border-color .18s ease,box-shadow .18s ease}.pub-card:hover{border-color:var(--ng-hover-border);box-shadow:var(--ng-hover-shadow)}.pub-top{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;margin-bottom:.5rem}.pub-badge{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ng-btn-bg);border:1px solid var(--ng-btn-bg);border-radius:999px;padding:.15rem .55rem;white-space:nowrap}.pub-year{font-size:.8rem;font-weight:600;color:var(--ng-text-muted);margin-left:auto}.pub-title{font-size:1.08rem;font-weight:700;line-height:1.35;color:var(--ng-text-strong);margin:0 0 .4rem}.pub-authors{font-size:.9rem;color:var(--ng-text-muted);line-height:1.5;margin:0 0 .3rem}.pub-authors b{color:var(--ng-text-strong);font-weight:700}.pub-venue{font-size:.85rem;font-style:italic;color:var(--ng-text-strong);margin:0 0 .9rem}.pub-actions{display:flex;gap:.5rem;flex-wrap:wrap}.pub-btn{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.82rem;font-weight:600;font-family:inherit;padding:.4rem .75rem;border-radius:8px;text-decoration:none;border:1px solid var(--ng-card-border);background:0 0;color:var(--ng-text-strong);transition:border-color .15s ease,background .15s ease,color .15s ease,transform .1s ease}.pub-btn:hover{border-color:var(--ng-btn-bg);color:var(--ng-btn-bg)}.pub-btn:active{transform:scale(.98)}.pub-btn--doi{border-color:var(--ng-btn-bg);background:var(--ng-btn-bg);color:var(--ng-btn-fg)}.pub-btn--doi:hover{background:var(--ng-btn-bg-hover);color:var(--ng-btn-fg)}.pub-btn:focus-visible{outline:2px solid var(--ng-btn-bg);outline-offset:2px}.pub-panel{overflow:hidden;max-height:0;opacity:0;transition:max-height .28s ease,opacity .28s ease,margin .28s ease}.pub-panel.open{max-height:60rem;opacity:1;margin-top:.9rem}.pub-abstract{font-size:.88rem;line-height:1.6;color:var(--ng-text-strong);margin:0 0 .8rem}.pub-bibwrap{position:relative}.pub-bib{background:var(--ng-code-bg);border:1px solid var(--ng-card-border);border-radius:8px;padding:.85rem .9rem;margin:0;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;line-height:1.5;color:var(--ng-text-strong);white-space:pre}.pub-copy{position:absolute;top:.55rem;right:.55rem;font-size:.72rem;font-weight:600;font-family:inherit;cursor:pointer;padding:.28rem .55rem;border-radius:6px;border:1px solid var(--ng-card-border);background:var(--ng-card-bg);color:var(--ng-text-muted);transition:color .15s ease,border-color .15s ease}.pub-copy:hover{color:var(--ng-btn-bg);border-color:var(--ng-btn-bg)}.pub-copy.done{color:var(--ng-accent);border-color:var(--ng-accent)}.pub-store{display:none}.pub-caret{transition:transform .2s ease}.pub-btn[aria-expanded=true] .pub-caret{transform:rotate(180deg)}@media(prefers-reduced-motion:reduce){.pub-panel,.pub-caret,.pub-card,.pub-btn{transition:none}}.ng-pres{margin:2rem 0;border-top:1px solid var(--ng-divider)}.ng-pres-item{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.25rem 1.5rem;padding:1.5rem 0;border-bottom:1px solid var(--ng-divider)}.ng-pres-item--thumb{grid-template-columns:5.5rem minmax(0,1fr)9rem}.ng-pres-date{padding-top:.15rem;font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ng-text-muted)}.ng-pres-title{margin:0 0 .35rem;font-size:1.05rem;font-weight:700;line-height:1.35;color:var(--ng-text-strong)}.ng-pres-event,.ng-pres-authors{margin:0 0 .25rem;font-size:.92rem;line-height:1.5;color:var(--ng-text)}.ng-pres-authors{color:var(--ng-text-muted)}.ng-pres-authors strong{color:var(--ng-text-strong);font-weight:700}.ng-pres-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.6rem}.ng-pres-link,.ng-pres-abstract>summary{font-size:.88rem;font-weight:600;color:var(--ng-accent);text-decoration:none}.ng-pres-link:hover,.ng-pres-abstract>summary:hover{text-decoration:underline;text-underline-offset:3px}.ng-pres-abstract{margin-top:.6rem}.ng-pres-abstract>summary{width:fit-content;cursor:pointer}.ng-pres-abstract[open]>summary{margin-bottom:.5rem}.ng-pres-abstract p{max-width:70ch;margin:0 0 .6rem;font-size:.92rem;line-height:1.6;color:var(--ng-text)}.ng-pres-thumb{display:block;align-self:start;overflow:hidden;border:1px solid var(--ng-card-border);border-radius:var(--ng-radius-sm);background:var(--ng-card-bg-alt)}.ng-pres-thumb img{display:block;width:100%;height:auto}.ng-pres-link:focus-visible,.ng-pres-abstract>summary:focus-visible,.ng-pres-thumb:focus-visible{outline:2px solid var(--ng-accent);outline-offset:3px}.ng-pres-empty{margin:0;padding:1.5rem 0;color:var(--ng-text-muted)}@media(max-width:640px){.ng-pres-item,.ng-pres-item--thumb{grid-template-columns:minmax(0,1fr)}.ng-pres-date{padding-top:0}.ng-pres-thumb{max-width:16rem;margin-top:.75rem}}.tl{max-width:56rem;margin:0 auto}.tl-blurb{font-size:1.05rem;line-height:1.7;color:var(--ng-text-strong);max-width:42rem;margin:0 0 3rem}.tl-grid{display:grid;grid-template-columns:11rem 1fr;gap:2rem;align-items:start}.tl-aside{position:sticky;top:6rem;align-self:start}.tl-marker-year{font-size:2.6rem;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--ng-btn-bg);font-variant-numeric:tabular-nums;transition:color .3s ease}.tl-marker-tag{display:inline-block;margin-top:.6rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ng-accent)}.tl-progress{margin-top:1.1rem;height:3px;background:var(--ng-track);border-radius:2px;overflow:hidden}.tl-progress-fill{height:100%;width:0;background:var(--ng-btn-bg);transition:width .3s ease}.tl-track{position:relative;padding-left:1.75rem}.tl-track::before{content:"";position:absolute;left:5px;top:.4rem;bottom:.4rem;width:2px;background:var(--ng-divider)}.tl-entry{position:relative;margin:0 0 1.75rem;opacity:.55;transition:opacity .35s ease,transform .35s ease}.tl-entry:last-child{margin-bottom:0}.tl-entry.tl-active{opacity:1}.tl-entry::before{content:"";position:absolute;left:-1.75rem;top:.55rem;width:12px;height:12px;border-radius:50%;background:var(--ng-card-bg);border:2px solid var(--ng-divider);transform:translateX(0);transition:border-color .35s ease,background .35s ease,transform .35s ease}.tl-entry.tl-active::before{border-color:var(--ng-btn-bg);background:var(--ng-btn-bg);transform:scale(1.25)}.tl-card{background:var(--ng-card-bg);border:1px solid var(--ng-card-border);border-radius:14px;padding:1.15rem 1.3rem;transition:border-color .35s ease,box-shadow .35s ease}.tl-entry.tl-active .tl-card{border-color:var(--ng-btn-bg);box-shadow:0 10px 28px -18px color-mix(in srgb,var(--ng-btn-bg) 60%,transparent);.tl-entry[tabindex]{cursor:pointer}.tl-entry[tabindex].tl-active{cursor:default}.tl-entry:focus-visible{outline:none}.tl-entry:focus-visible .tl-card{outline:2px solid var(--ng-accent);outline-offset:3px}}.tl-year-inline{display:none;font-size:.85rem;font-weight:700;color:var(--ng-btn-bg);font-variant-numeric:tabular-nums;margin-bottom:.25rem}.tl-title{font-size:1.1rem;font-weight:700;line-height:1.35;color:var(--ng-text-strong);margin:0 0 .2rem}.tl-place{font-size:.85rem;color:var(--ng-text-muted);margin:0 0 .6rem}.tl-body{font-size:.92rem;line-height:1.65;color:var(--ng-text-strong);margin:0}.tl-tags .ng-tag[data-slug=research]{--ng-tag-bg:var(--ng-tone-blue-bg);--ng-tag-fg:var(--ng-tone-blue-fg)}.tl-tags .ng-tag[data-slug=education],.tl-tags .ng-tag[data-slug=award]{--ng-tag-bg:var(--ng-tone-cyan-bg);--ng-tag-fg:var(--ng-tone-cyan-fg)}.tl-tags .ng-tag[data-slug=sports],.tl-tags .ng-tag[data-slug=transition],.tl-tags .ng-tag[data-slug=life-event]{--ng-tag-bg:var(--ng-tone-slate-bg);--ng-tag-fg:var(--ng-tone-slate-fg)}@media(max-width:720px){.tl-grid{grid-template-columns:1fr;gap:0}.tl-aside{display:none}.tl-year-inline{display:block}.tl-entry{opacity:1}.tl-entry[tabindex]{cursor:auto}}@media(prefers-reduced-motion:reduce){.tl-entry,.tl-card,.tl-entry::before,.tl-marker-year,.tl-progress-fill{transition:none}.tl-entry{opacity:1}}