@font-face{font-family: "JetBrains Mono";src: url("fonts/jetbrains-mono-latin.woff2") format("woff2");font-weight: 100 800;font-style: normal;font-display: swap;unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: "JetBrains Mono";src: url("fonts/jetbrains-mono-latin-ext.woff2") format("woff2");font-weight: 100 800;font-style: normal;font-display: swap;unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: "Space Grotesk";src: url("fonts/space-grotesk-latin.woff2") format("woff2");font-weight: 300 700;font-style: normal;font-display: swap;unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: "Space Grotesk";src: url("fonts/space-grotesk-latin-ext.woff2") format("woff2");font-weight: 300 700;font-style: normal;font-display: swap;unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-mono: 'JetBrains Mono', ui-monospace, 'Cascadia Code', Menlo, Consolas, monospace;--font-sans: 'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;--font-serif: 'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;--color-bg: #fafafa;--color-bg-secondary: #ffffff;--color-bg-alt: #f0f0f0;--color-text: #1a1a1a;--color-text-muted: #666666;--color-border: #d0d0d0;--color-border-dark: #1a1a1a;--color-link: #4a90d9;--color-link-hover: #3a7bc8;--color-shadow: #1a1a1a;--color-yes: #2e7d32;--pastel-pink: #ffb3d1;--pastel-mint: #a8e6cf;--pastel-lemon: #ffe787;--pastel-peach: #ffcba4;--pastel-lavender: #c7b4e8;--pastel-sky: #a4d4f2;--pastel-coral: #ffb5a7;--pastel-lime: #d4f1a8;--cat-doj: #8b6fbf;--cat-sec-pr: #6fa8d6;--cat-sec-lr: #c77fa8}@media (prefers-color-scheme: dark){:root{--color-bg: #121212;--color-bg-secondary: #1e1e1e;--color-bg-alt: #2a2a2a;--color-text: #e0e0e0;--color-text-muted: #999999;--color-border: #3a3a3a;--color-border-dark: #e0e0e0;--color-link: #6fa8d6;--color-link-hover: #8fc0e6;--color-shadow: #000000;--color-yes: #81c784}}*{box-sizing: border-box}html, body{margin: 0;padding: 0;max-width: 100%;overflow-x: hidden}body{font-family: var(--font-sans);font-weight: 450;line-height: 1.5;background-color: var(--color-bg);color: var(--color-text);min-height: 100vh;padding: 2rem 1rem;-webkit-font-smoothing: antialiased}.container{max-width: 1100px;margin: 0 auto}header{text-align: left;margin-bottom: 1.5rem}.logo{display: none}h1{font-family: var(--font-serif);font-size: 2.5rem;margin: 0 0 0.5rem 0;color: var(--color-text)}.subtitle{font-size: 1rem;color: var(--color-text-muted);margin: 0}.tabs{display: none}.cv-hero{display: grid;grid-template-columns: 1fr auto;gap: 28px;align-items: center;margin: 0.5rem 0 1.5rem;padding-top: 34px}.cv-hero.cv-hero-noimg{grid-template-columns: 1fr}.cv-hero-text{text-align: left}.cv-hero-text h1{margin: 0 0 0.5rem 0}.cv-eyebrow{display: inline-block;font-family: var(--font-mono);font-size: 0.6rem;letter-spacing: 0.08em;text-transform: uppercase;color: var(--color-link, #7a1f1f);background: color-mix(in srgb, var(--color-link, #7a1f1f) 12%, transparent);border: 1px solid var(--color-link, #7a1f1f);border-radius: 3px;padding: 3px 9px;margin: 0 0 0.7rem}.cv-head-img{width: 132px;height: auto;display: block;justify-self: end}@media (max-width: 640px){.cv-hero{grid-template-columns: 1fr}.cv-head-img{display: none}}#cane-spin{display: none !important}.entities-scroll{max-height: 72vh;overflow-y: auto;overflow-x: auto;max-width: 100%;-webkit-overflow-scrolling: touch;border: 1px solid var(--color-border)}.entities-scroll table{margin: 0;min-width: 680px}.entities-scroll thead th{position: sticky;top: 0;z-index: 2;background: var(--color-bg-secondary);box-shadow: inset 0 -1px 0 var(--color-border-dark)}.tab-break{flex-basis: 100%;height: 0;margin: 0;padding: 0;border: 0}.banana-nav{position: fixed;right: 18px;bottom: 18px;z-index: 125;display: flex;flex-direction: column;align-items: flex-end;gap: 10px}.banana-btn{width: 54px;height: 54px;border: none;background: transparent;cursor: pointer;padding: 0;transition: transform .25s ease}.banana-btn:hover{transform: scale(1.1) rotate(-8deg)}.banana-btn img{width: 100%;height: 100%;object-fit: contain;display: block;filter: drop-shadow(0 4px 10px rgba(0,0,0,.28))}.banana-menu{display: flex;flex-direction: column;background: var(--color-bg-secondary);border: 1px solid var(--color-border-dark);border-radius: 7px;padding: 6px;min-width: 210px;box-shadow: 0 10px 34px rgba(0,0,0,.2);max-height: 72vh;overflow: auto;opacity: 0;visibility: hidden;transform: translateY(10px) scale(.95);transform-origin: bottom right;transition: opacity .24s ease, transform .24s ease, visibility .24s}.banana-nav.open .banana-menu{opacity: 1;visibility: visible;transform: translateY(0) scale(1)}.banana-menu a{font-family: var(--font-mono);font-size: 12px;line-height: 1.3;color: var(--color-text-muted);text-decoration: none;padding: 6px 8px;border-radius: 3px;white-space: nowrap}.banana-menu a:hover{background: var(--color-bg-alt);color: var(--color-link)}.banana-menu a.bn-active{color: var(--color-text);font-weight: 700}.banana-menu .bn-group{font-family: var(--font-mono);font-size: 9px;text-transform: uppercase;letter-spacing: .06em;color: var(--color-text-muted);padding: 6px 8px 2px;opacity: .7}.tab{font-family: var(--font-mono);font-size: 0.8rem;padding: 0.4rem 0.9rem;border: 1px solid var(--color-border);border-radius: 5px;color: var(--color-text-muted);text-decoration: none;background: var(--color-bg-secondary);transition: all 0.2s;white-space: nowrap}.tab:hover{border-color: var(--color-border-dark);color: var(--color-text)}.tab.active{border-color: var(--color-border-dark);color: var(--color-text);box-shadow: 2px 2px 0px var(--color-shadow);font-weight: 700}.intro{background: var(--color-bg-secondary);border: 1px solid var(--color-border);border-radius: 5px;padding: 1.25rem 1.5rem;margin-bottom: 1.5rem;font-size: 0.95rem;line-height: 1.7}.intro h2{font-family: var(--font-serif);font-size: 1.25rem;margin: 0 0 0.75rem 0}.intro p{margin: 0 0 0.85rem 0}.intro p:last-child{margin-bottom: 0}.intro a{color: var(--color-link);text-decoration: none}.intro a:hover{text-decoration: underline}.timeline{margin: 0 0 1rem 0;padding: 0;list-style: none}.tl-item{position: relative;padding: 0 0 1.1rem 1.4rem;border-left: 2px solid var(--color-border)}.tl-item:last-child{border-left-color: transparent;padding-bottom: 0}.tl-item::before{content: '';position: absolute;left: -6px;top: 0.3rem;width: 10px;height: 10px;border-radius: 50%;background: var(--color-border-dark)}.tl-date{font-family: var(--font-mono);font-size: 0.78rem;font-weight: 700;letter-spacing: 0.02em;color: var(--color-text)}.tl-body{font-size: 0.9rem;line-height: 1.55;margin-top: 0.1rem;color: var(--color-text)}.tl-body a{color: var(--color-link);text-decoration: none}.tl-body a:hover{text-decoration: underline}.src{display: inline-block;font-size: 0.66rem;color: var(--color-text-muted);border: 1px solid var(--color-border);border-radius: 3px;padding: 0 0.3rem;margin-left: 0.3rem;vertical-align: 1px;white-space: nowrap}.disclaimer{font-size: 0.8rem;color: var(--color-text-muted);line-height: 1.6;margin: 0.25rem 0 0 0;padding: 0.85rem 1rem;background: var(--color-bg-secondary);border: 1px solid var(--color-border);border-radius: 5px}.section-label{font-family: var(--font-serif);font-size: 1.4rem;margin: 2.5rem 0 0.75rem 0}.section-sub{font-size: 0.85rem;color: var(--color-text-muted);margin: -0.4rem 0 1rem 0;font-style: italic}.doc-meta{background: var(--color-bg-secondary);border: 1px solid var(--color-border);border-radius: 5px;padding: 1rem;margin-bottom: 1.5rem;font-size: 0.85rem;line-height: 1.6;color: var(--color-text-muted)}.doc-meta strong{color: var(--color-text)}.doc-meta a{color: var(--color-link);text-decoration: none}.doc-meta a:hover{text-decoration: underline}.pdf-note{font-size: 0.82rem;color: var(--color-text-muted);margin: 0.6rem 0 0 0;padding-left: 0.25rem}.pdf-note a{color: var(--color-link);text-decoration: none}.pdf-note a:hover{text-decoration: underline}.pdf-viewer{width: 100%;max-width: 100%;background: var(--color-bg-secondary);border: 1px solid var(--color-border);border-radius: 5px;box-shadow: 2px 2px 0px var(--color-shadow);overflow: hidden;margin-bottom: 1.5rem}.pdf-toolbar{display: flex;align-items: center;gap: 0.5rem;padding: 0.4rem 0.6rem;border-bottom: 1px solid var(--color-border);background: var(--color-bg)}.pdf-title{font-family: var(--font-mono);font-size: 0.72rem;color: var(--color-text-muted);overflow: hidden;text-overflow: ellipsis;white-space: nowrap;flex: 1}.pdf-tools{display: flex;align-items: center;gap: 0.25rem}.pdf-btn{font-family: var(--font-mono);font-size: 0.85rem;line-height: 1;cursor: pointer;background: var(--color-bg-secondary);color: var(--color-text);border: 1px solid var(--color-border);border-radius: 3px;min-width: 28px;height: 26px;display: inline-flex;align-items: center;justify-content: center;padding: 0 0.4rem;text-decoration: none;transition: all 0.15s}.pdf-btn:hover{border-color: var(--color-border-dark);color: var(--color-text)}.pdf-btn:disabled{opacity: 0.35;cursor: default}.pdf-page-label{font-family: var(--font-mono);font-size: 0.72rem;color: var(--color-text-muted);min-width: 64px;text-align: center;white-space: nowrap}.pdf-stage{max-height: 62vh;min-height: 20vh;overflow: auto;overscroll-behavior: contain;-webkit-overflow-scrolling: touch;background: var(--color-bg);padding: 0.75rem;display: flex;justify-content: center;align-items: flex-start}.pdf-stage canvas{display: block;max-width: 100%;height: auto;background: #fff;box-shadow: 0 2px 12px rgba(0, 0, 0, 0.18)}.pdf-loading, .pdf-fallback{padding: 2rem 1rem;text-align: center;color: var(--color-text-muted);font-size: 0.9rem}.pdf-fallback a{color: var(--color-link)}.bios{display: flex;flex-direction: column;gap: 1rem;margin: 0.5rem 0 1rem 0}.bio{background: var(--color-bg-secondary);border: 1px solid var(--color-border);border-left: 4px solid var(--color-border-dark);border-radius: 5px;padding: 1rem 1.25rem;font-size: 0.86rem;line-height: 1.6}.bio h3{font-family: var(--font-serif);font-size: 1.05rem;margin: 0 0 0.1rem 0}.bio .role{font-size: 0.72rem;color: var(--color-text-muted);font-style: italic;margin-bottom: 0.5rem}.bio p{margin: 0 0 0.6rem 0}.bio p:last-child{margin-bottom: 0}.table-wrap{overflow-x: auto;margin: 0.5rem 0 1rem 0}table.data{width: 100%;border-collapse: collapse;font-size: 0.8rem}table.data th, table.data td{border: 1px solid var(--color-border);padding: 0.4rem 0.55rem;text-align: left;vertical-align: top}table.data th{background: var(--color-bg-secondary);font-family: var(--font-mono);font-size: 0.7rem;text-transform: uppercase;letter-spacing: 0.03em}table.data td.yes{text-align: center;color: var(--color-yes);font-weight: 700}table.data td.no{text-align: center;color: var(--color-text-muted)}table.data a{color: var(--color-link);text-decoration: none}table.data a:hover{text-decoration: underline}.cv-block{margin: 0 0 0.9rem 0;font-size: 0.86rem;line-height: 1.6}.cv-label{font-family: var(--font-mono);font-size: 0.72rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.04em;color: var(--color-text);display: block;margin-bottom: 0.15rem}.cv-block a{color: var(--color-link);text-decoration: none}.cv-block a:hover{text-decoration: underline}.cv-block ul{margin: 0.3rem 0 0 0;padding-left: 1.1rem}.cv-block li{margin-bottom: 0.25rem}.prose{font-size: 0.9rem;line-height: 1.7;margin: 0.5rem 0 1rem 0}.prose strong{color: var(--color-text)}footer{text-align: center;padding: 2rem 0 0.5rem;margin-top: 2.5rem;border-top: 1px solid var(--color-border);color: var(--color-text-muted);font-size: 0.8rem}footer a{color: var(--color-link);text-decoration: none}footer a:hover{text-decoration: underline}@media (max-width: 768px){body{padding: 1rem 0.75rem}h1{font-size: 1.75rem}.logo{width: 80px;height: 80px}.intro{padding: 1rem;font-size: 0.9rem}.pdf-stage{max-height: 56vh;padding: 0.5rem}.pdf-title{font-size: 0.66rem}}