body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#09131d;font-family:Space Grotesk,sans-serif;margin:0}code{font-family:IBM Plex Mono,monospace}.dark-mode{--bg:#09131d;--bg-soft:#0f1b2b;--panel:#0e1928e6;--panel-alt:#122238f2;--text:#f4f7fb;--muted:#a4b8cc;--accent:#63dbc6;--accent-strong:#ffb44f;--line-soft:#a4b8cc26;--line-strong:#63dbc659;--surface-text:#f4f7fb;--card-shadow:0 18px 55px #0000004d}.light-mode{--bg:#f4f7fb;--bg-soft:#fff;--panel:#ffffffeb;--panel-alt:#fffffffa;--text:#102032;--muted:#5d7187;--accent:#0b7c8f;--accent-strong:#b05f00;--line-soft:#1020321a;--line-strong:#0b7c8f33;--surface-text:#102032;--card-shadow:0 18px 45px #1020321a}.main-container{background:radial-gradient(circle at top left,#63dbc624,#0000 28%),radial-gradient(circle at top right,#ffb44f24,#0000 26%),var(--bg);color:var(--text);min-height:100vh;transition:background-color .18s ease,color .18s ease}a{color:inherit;text-decoration:none}a:hover{color:var(--accent);transition:color .15s ease-in-out}a,button,h1,h2,h3,h4,h5,label,p,span,td,th{color:var(--text)}.navigation-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#09131db8;border-bottom:1px solid var(--line-soft);justify-content:space-between;padding:.6rem 1rem}.navigation-bar button{font-family:IBM Plex Mono,monospace;font-size:1rem;padding:6px 10px;text-transform:none}.navigation-bar svg{cursor:pointer}.light-mode .navigation-bar{background:#ffffffd1}.card-kicker,.eyebrow,.mobile-menu-top,.nav-brand,th{font-family:IBM Plex Mono,monospace;letter-spacing:.06em;text-transform:uppercase}.nav-brand{font-weight:600}.nav-actions{align-items:center;display:flex;gap:.75rem}.navigation-bar-responsive p,.navigation-bar-responsive span{color:#102032;font-family:IBM Plex Mono,monospace}.container{margin-top:64px;width:100%}.mobile-menu-top{align-items:center;display:flex;font-weight:700;gap:5px;justify-content:center}.items-container{padding:5% 9%;text-align:left}.section-copy{color:var(--muted);line-height:1.75;max-width:72ch}.primary-button,.secondary-button{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-weight:600;justify-content:center;padding:.9rem 1.25rem}.primary-button{background:linear-gradient(135deg,var(--accent),#2ea9d9);color:#08121d}.secondary-button{background:#ffffff0a;border-color:var(--line-soft)}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--line-soft);padding:.95rem 0;text-align:left;vertical-align:top}th{color:var(--muted);font-size:.78rem}.research-table-wrap,.table-wrap{overflow-x:auto}.severity-pill{align-items:center;border:1px solid var(--line-soft);border-radius:999px;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:.75rem;padding:.18rem .55rem}.severity-pill.critical{color:#ff6b81}.severity-pill.high{color:#ffb44f}.severity-pill.medium{color:#63dbc6}.severity-pill.reserved{color:#9ec5ff}.note-text{color:var(--muted)}@media screen and (max-width:900px){.items-container{padding:7% 5%}}footer{padding:60px 20px 50px;text-align:center}footer p{color:var(--muted);line-height:1.8;margin:0 auto;max-width:70ch}.footer-links{display:flex;gap:14px;justify-content:center;margin-bottom:1rem}.footer-links a{align-items:center;background:var(--panel);border:1px solid var(--line-soft);border-radius:50%;box-shadow:var(--card-shadow);display:inline-flex;height:42px;justify-content:center;width:42px}.footer-links svg{height:1.1em!important;width:1.1em!important}.dark-mode .about-section{background-color:#0000002e}.about-section{align-items:center;background-attachment:fixed;background-image:url(/static/media/bg-dark.f420c6b8458af72de935.png);background-position:50%;background-repeat:no-repeat;background-size:cover;display:flex;gap:32px;min-height:760px;padding:0 10%;width:100%}.light-mode .about-section{background-image:url(/static/media/bg-light.bac0efb485244a522981.png)}.about-section .content{max-width:820px;z-index:2}.about-section .content .mobile_social_icons,.about-section .content .social_icons{display:flex;gap:12px}.about-section .content .mobile_social_icons a,.about-section .content .social_icons a{align-items:center;background:#ffffff0a;border:1px solid var(--line-soft);border-radius:50%;display:inline-flex;height:42px;justify-content:center;width:42px}.about-section .content .mobile_social_icons svg,.about-section .content .social_icons svg{font-size:1.5em}.about-section .content .mobile_social_icons{display:none}.about-section .content .eyebrow{color:var(--accent);margin-bottom:.8rem}.about-section .content .role{font-size:1.45rem;margin:.35rem 0 0}.about-section .content .summary{color:var(--muted);font-size:1.08rem;line-height:1.8;margin-top:1.2rem}.about-section .content h1{font-size:clamp(3.8rem,8vw,5.8rem);line-height:.96;margin:0}.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.6rem}.hero-actions a{background:linear-gradient(135deg,var(--accent),#2ea9d9);border:1px solid #0000;box-shadow:0 14px 32px #0b7c8f38;color:#08121d;min-width:220px;opacity:1}.hero-actions a:focus-visible,.hero-actions a:hover{color:#08121d;filter:brightness(1.03)}.stats-row{grid-gap:.9rem;display:grid;gap:.9rem;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1.8rem}.stat-tile{background:var(--panel);border:1px solid var(--line-soft);border-radius:18px;box-shadow:var(--card-shadow);padding:1rem 1.1rem}.stat-tile strong{display:block;font-size:2rem;margin-bottom:.35rem}.stat-tile span{color:var(--muted);font-size:.95rem}.about-section .image-wrapper{z-index:2}.about-section .image-wrapper img{border:3px solid #ffffff2e;border-radius:50%;box-shadow:var(--card-shadow);height:190px;object-fit:cover;width:190px}@media screen and (max-width:960px){.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media screen and (max-width:768px){.about-section{display:block;padding:140px 0 3rem}.about-section .content{padding:0 5% 5%;width:90%}.about-section .image-wrapper{padding-left:5%;width:100%}.social_icons{display:none!important}.mobile_social_icons{display:flex!important;padding-top:10px}}@media screen and (max-width:640px){.stats-row{grid-template-columns:1fr}.hero-actions{flex-direction:column}.hero-actions a{min-width:0;width:100%}}.skills-container{display:flex;flex-direction:column;padding:5% 9%;text-align:left}.skills-container h1{margin-bottom:.4rem}.skills-container svg{color:var(--accent)}.skills-grid{grid-gap:28px;display:grid;gap:28px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.6rem}.skill{align-items:center;background:var(--panel);border:1px solid var(--line-soft);border-radius:22px;box-shadow:var(--card-shadow);padding:1.4rem;text-align:left}.skill p{color:var(--muted);line-height:1.75}.chip{background-color:#fff!important;color:#102032!important;font-size:.8rem!important;height:28px!important}.chip span{color:#102032;font-family:IBM Plex Mono,monospace}.flex-chips{line-height:2;margin-top:1rem}.flex-chips .chip-title{color:var(--muted);font-family:IBM Plex Mono,monospace;padding-right:10px}.flex-chips .MuiChip-root{margin-bottom:.45rem;margin-right:.5em}@media screen and (max-width:920px){.skills-grid{grid-template-columns:1fr}}.vertical-timeline *{-webkit-box-sizing:border-box;box-sizing:border-box}.vertical-timeline{margin:0 auto;max-width:1170px;padding:2em 0;position:relative;width:95%}.vertical-timeline:after{clear:both;content:"";display:table}.vertical-timeline:before{background:var(--line-color);content:"";height:100%;left:18px;position:absolute;top:0;width:4px}.vertical-timeline.vertical-timeline--one-column-right:before{left:auto;right:18px}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{margin:2em 0;position:relative}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{clear:both;content:"";display:table}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{border-radius:50%;-webkit-box-shadow:0 0 0 4px #fff,inset 0 2px 0 #00000014,0 3px 0 4px #0000000d;box-shadow:0 0 0 4px #fff,inset 0 2px 0 #00000014,0 3px 0 4px #0000000d;height:40px;left:0;position:absolute;top:0;width:40px}.vertical-timeline--one-column-right .vertical-timeline-element-icon{left:auto;right:0}.vertical-timeline-element-icon svg{display:block;height:24px;left:50%;margin-left:-12px;margin-top:-12px;position:relative;top:50%;width:24px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{height:60px;left:50%;margin-left:-30px;width:60px}}.vertical-timeline-element-icon{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0)}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{-webkit-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s;visibility:visible}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}to{-webkit-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{background:#fff;border-radius:.25em;-webkit-box-shadow:0 3px 0 #ddd;box-shadow:0 3px 0 #ddd;margin-left:60px;padding:1em;position:relative}.vertical-timeline--one-column-right .vertical-timeline-element-content{margin-left:0;margin-right:60px}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;-webkit-box-shadow:none;box-shadow:none}.vertical-timeline-element-content:after{clear:both;content:"";display:table}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{line-height:1.6;margin:1em 0 0}.vertical-timeline-element-subtitle,.vertical-timeline-element-title{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;opacity:.7;padding:.8em 0}.vertical-timeline-element-content-arrow{border:7px solid #0000;border-right-color:#fff;content:"";height:0;position:absolute;right:100%;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content-arrow{border:7px solid #0000;border-left-color:#fff;content:"";height:0;left:100%;position:absolute;right:auto;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content:before{border-left:7px solid #fff;border-right:initial;left:100%}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow,.vertical-timeline-element--no-children .vertical-timeline-element-content:before{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{left:100%;top:24px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{font-size:16px;font-size:1rem;left:124%;position:absolute;top:6px;width:100%}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:auto;right:100%;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--one-column-right .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--one-column-right .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:100%;right:auto;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s;visibility:visible}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s;visibility:visible}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.vertical-timeline h3,.vertical-timeline h4,.vertical-timeline p,.vertical-timeline span{font-family:Space Grotesk,sans-serif}.vertical-timeline-element h3,.vertical-timeline-element h4,.vertical-timeline-element p,.vertical-timeline-element span{color:var(--surface-text)}.vertical-timeline-element p{line-height:1.75}.vertical-timeline-element .vertical-timeline-element-date{color:var(--muted);font-family:IBM Plex Mono,monospace}.vertical-timeline-element-title a{color:var(--surface-text)}.vertical-timeline-element-title a:hover{color:var(--accent)}.svg-inline--fa{color:var(--bg)}@media screen and (max-width:1170px){.vertical-timeline-element .vertical-timeline-element-date{color:var(--muted)}}.projects-container{display:flex;flex-direction:column;padding:5% 9%;text-align:left}.projects-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.6rem}.coverage-panel,.project-card{background:var(--panel);border:1px solid var(--line-soft);border-radius:22px;box-shadow:var(--card-shadow)}.project-card{padding:1.4rem}.project-card p{color:var(--muted);line-height:1.7}.card-kicker{color:var(--accent);margin:0 0 .55rem}.project-card h2{margin:0}.card-link{align-items:center;color:var(--accent-strong);display:inline-flex;font-weight:600;gap:.35rem;margin-top:.9rem}.coverage-section{margin-top:3rem}.coverage-header{margin-bottom:1.1rem}.coverage-header h2{margin-bottom:.4rem}.coverage-header p{color:var(--muted);line-height:1.8;max-width:72ch}.coverage-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.coverage-panel{padding:1.3rem}.coverage-panel h3{margin-top:0}.coverage-panel td{color:var(--muted)}@media screen and (max-width:920px){.coverage-grid,.projects-grid{grid-template-columns:1fr}}.research-container{padding-bottom:2rem}.research-table-wrap{background:var(--panel);border:1px solid var(--line-soft);border-radius:22px;box-shadow:var(--card-shadow);margin-top:1.5rem;overflow:auto}.research-table{min-width:900px}.research-table thead th{background:var(--panel-alt);border-bottom:1px solid var(--line-strong);padding:1rem 1.1rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.research-table td{color:var(--muted);line-height:1.65;padding:1rem 1.1rem}.research-table a{color:var(--accent-strong);text-decoration:underline;text-decoration-color:#0000;text-underline-offset:.2em}.research-table a:hover{text-decoration-color:initial}.research-table tbody tr:last-child td{border-bottom:0}.research-table .col-cve,.research-table .col-record,.research-table .col-severity,.research-table .research-cve,.research-table .research-record,.research-table .research-severity{white-space:nowrap}.research-table .col-cve,.research-table .research-cve{width:12rem}.research-table .col-project,.research-table .research-project{width:14rem}.research-table .col-severity,.research-table .research-severity{width:8rem}.research-table .col-record,.research-table .research-record{width:10rem}.research-table .research-cve a{color:var(--text);font-family:IBM Plex Mono,monospace;font-size:.92rem}.research-table .research-project{color:var(--text);font-weight:500}.research-table .note-text,.research-table .research-reference{max-width:32rem}.dark-mode .research-table tbody tr:nth-child(2n){background:hsla(0,0%,100%,.025)}.light-mode .research-table tbody tr:nth-child(2n){background:#0b7c8f0a}.dark-mode .research-table tbody tr:hover{background:#63dbc612}.light-mode .research-table tbody tr:hover{background:#0b7c8f14}@media screen and (max-width:900px){.research-table{min-width:760px}.research-table td,.research-table thead th{padding:.9rem}}.contact_wrapper h1{margin-bottom:.35rem}.contact-links-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.6rem}.contact-card{background:var(--panel);border:1px solid var(--line-soft);border-radius:22px;box-shadow:var(--card-shadow);display:flex;gap:1rem;justify-content:space-between;padding:1.3rem;transition:transform .16s ease,border-color .16s ease}.contact-card p{color:var(--muted);line-height:1.7}.contact-card svg{color:var(--accent-strong);flex-shrink:0;margin-top:.2rem}.contact-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}@media screen and (max-width:920px){.contact-links-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=main.cbd2a3e8.css.map*/