@font-face{font-family:"Manrope Portfolio";font-style:normal;font-weight:400 700;font-display:swap;src:url("/assets/fonts/manrope-vietnamese.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Manrope Portfolio";font-style:normal;font-weight:400 700;font-display:swap;src:url("/assets/fonts/manrope-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--pf-canvas: rgb(246 248 250 / 84%);--pf-surface: rgb(255 255 255 / 72%);--pf-surface-strong: #e7eef7;--pf-border: #b9c5d2;--pf-border-strong: #8394a8;--pf-ink: #142238;--pf-muted: #4b5d73;--pf-accent: #1d5d98;--pf-accent-ink: #f7fbff;--pf-critical: #8f302c;--pf-critical-bg: #f5e3df;--pf-high: #8a4a19;--pf-high-bg: #f6ead9;--pf-analysis: #4d5570;--pf-analysis-bg: #e7e9f0}:root[data-mode=dark]{--pf-canvas: rgb(13 18 26 / 78%);--pf-surface: rgb(25 34 46 / 82%);--pf-surface-strong: #1b2a3b;--pf-border: #3c4b5e;--pf-border-strong: #6c8098;--pf-ink: #edf4fc;--pf-muted: #b2c0d0;--pf-accent: #89bfff;--pf-accent-ink: #0b1726;--pf-critical: #ffb4aa;--pf-critical-bg: #3c2828;--pf-high: #f2be7d;--pf-high-bg: #372d21;--pf-analysis: #c0c7dc;--pf-analysis-bg: #292d3b}@media(prefers-color-scheme: dark){:root:not([data-mode=light]){--pf-canvas: rgb(13 18 26 / 78%);--pf-surface: rgb(25 34 46 / 82%);--pf-surface-strong: #1b2a3b;--pf-border: #3c4b5e;--pf-border-strong: #6c8098;--pf-ink: #edf4fc;--pf-muted: #b2c0d0;--pf-accent: #89bfff;--pf-accent-ink: #0b1726;--pf-critical: #ffb4aa;--pf-critical-bg: #3c2828;--pf-high: #f2be7d;--pf-high-bg: #372d21;--pf-analysis: #c0c7dc;--pf-analysis-bg: #292d3b}}body:has(.portfolio) #panel-wrapper{display:none}body:has(.portfolio) main,body:has(.portfolio) #tail-wrapper{width:100%;flex:0 0 100%}body:has(.portfolio) #main-wrapper>.container{max-width:1480px}body:has(.portfolio) #main-wrapper::after{opacity:.065;filter:saturate(0.8) contrast(0.92)}body:has(.portfolio) ::selection{color:var(--pf-ink);background:var(--pf-surface-strong)}body:has(.portfolio)::-webkit-scrollbar{width:.65rem}body:has(.portfolio)::-webkit-scrollbar-track{background:rgba(0,0,0,0)}body:has(.portfolio)::-webkit-scrollbar-thumb{background:var(--pf-border-strong)}:root[data-mode=dark] body:has(.portfolio) #main-wrapper::after{opacity:.2}@media(prefers-color-scheme: dark){:root:not([data-mode=light]) body:has(.portfolio) #main-wrapper::after{opacity:.2}}.portfolio{--pf-section-space: 3.75rem;width:min(100%,72rem);margin-inline:auto;padding:2.5rem 0 2rem;color:var(--pf-ink);font-family:"Manrope Portfolio",sans-serif;font-size:1rem;font-synthesis:none;line-height:1.62;letter-spacing:-0.008em}.portfolio h1,.portfolio h2,.portfolio h3{color:var(--pf-ink);font-family:"Manrope Portfolio",sans-serif;font-weight:700;line-height:1.12;letter-spacing:-0.03em}@supports(text-wrap: balance){.portfolio h1,.portfolio h2,.portfolio h3{text-wrap:balance}}.portfolio h1{max-width:13ch;margin:0 0 1rem;font-size:clamp(2.6rem,5.2vw,4.8rem)}.portfolio h2{margin:0 0 .65rem;font-size:clamp(1.55rem,2.4vw,2rem)}.portfolio h3{margin:0 0 .45rem;font-size:1.125rem}.portfolio p{max-width:72ch;margin:0 0 1rem}.portfolio a{color:var(--pf-accent);border-bottom:0;text-decoration:underline;text-decoration-color:rgba(0,0,0,0);text-decoration-thickness:1px;text-underline-offset:.22em;transition:color 160ms ease-out,text-decoration-color 160ms ease-out}.portfolio a:hover{text-decoration-color:currentcolor}.portfolio i{margin-left:.28em;font-size:.72em}.portfolio :where(a,button):focus-visible{outline:2px solid var(--pf-accent);outline-offset:4px;border-radius:3px}.portfolio .pf-meta{color:var(--pf-muted);font-size:.8125rem;letter-spacing:.01em}.pf-hero{display:grid;grid-template-columns:minmax(0, 1.5fr) minmax(18rem, 0.85fr);gap:clamp(2.5rem,6vw,5rem);align-items:end;padding:1.25rem 0 3rem;border-bottom:1px solid var(--pf-border-strong)}.pf-role{max-width:none !important;margin-bottom:1.25rem !important;color:var(--pf-accent);font-size:clamp(1.05rem,1.5vw,1.25rem);font-weight:600;line-height:1.45}.pf-intro{color:var(--pf-muted);font-size:1.05rem}.pf-intro strong{color:var(--pf-ink);font-weight:650}.pf-proof{margin:0;border-top:1px solid var(--pf-border-strong)}.pf-proof>div{display:grid;grid-template-columns:7rem minmax(0, 1fr);gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--pf-border)}.pf-proof dt{color:var(--pf-muted);font-size:.75rem;font-weight:600;letter-spacing:.065em;text-transform:uppercase}.pf-proof dd{margin:0;color:var(--pf-ink);font-size:.875rem;font-weight:550;line-height:1.45}.pf-actions{display:flex;flex-wrap:wrap;gap:.65rem 1.25rem;align-items:center;margin-top:1.65rem}.pf-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.7rem 1.05rem;border-radius:9px;font-weight:650;text-decoration:none !important}.portfolio a.pf-button--primary{color:var(--pf-accent-ink);background:var(--pf-accent);box-shadow:0 8px 20px rgba(19,48,78,.16)}.portfolio a.pf-button--primary:hover{color:var(--pf-accent-ink);filter:brightness(0.94)}.pf-text-link{display:inline-flex;gap:.3rem;align-items:center;min-height:44px}.pf-section{margin-top:var(--pf-section-space);scroll-margin-top:5rem}.pf-section-heading{display:flex;flex-wrap:wrap;gap:.45rem 1.75rem;align-items:flex-end;justify-content:space-between;margin-bottom:1.2rem}.pf-section-heading h2{margin-bottom:0}.pf-section-heading p{margin:.35rem 0 0;color:var(--pf-muted)}.pf-section-heading>a{font-size:.9rem;font-weight:600}.pf-research-section+.pf-research-section{margin-top:var(--pf-section-space)}.pf-research-list{border-bottom:1px solid var(--pf-border-strong)}.research-card{display:grid;grid-template-columns:minmax(9rem, 0.85fr) minmax(24rem, 2.55fr) minmax(9rem, 0.85fr);gap:clamp(1.5rem,3vw,2.5rem);padding:1.55rem 0;border-top:1px solid var(--pf-border);transition:background-color 180ms ease-out,border-color 180ms ease-out}.research-card--featured{margin-inline:-1.25rem;padding-inline:1.25rem;background:var(--pf-surface);border-top-color:var(--pf-border-strong)}.research-card h3{font-size:1.18rem}.research-card .pf-cve{margin:0 0 .25rem;overflow-wrap:anywhere;color:var(--pf-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;font-variant-numeric:tabular-nums;letter-spacing:0}.research-card__body{min-width:0;color:var(--pf-muted)}.research-card__body>p{margin-bottom:.55rem}.research-card__body>p:last-child,.research-card__detail>:last-child{margin-bottom:0}.research-card__impact{color:var(--pf-ink);font-size:1.05rem;font-weight:650;line-height:1.45}.research-card__detail{color:var(--pf-muted);font-size:.9rem}.research-card__detail code{overflow-wrap:anywhere}.research-card__evidence{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}.research-card__evidence a{font-size:.875rem;font-weight:600}.research-card:has(.research-card__evidence a:hover){border-top-color:var(--pf-accent);background-color:var(--pf-surface)}.research-card:has(.research-card__evidence a:hover) .research-card__evidence i{transform:translate(2px, -2px)}.research-card .research-card__evidence i{transition:transform 180ms ease-out}.pf-severity{display:inline-block;padding:.2rem .45rem;border:1px solid var(--pf-border);border-radius:4px;color:var(--pf-muted);font-size:.72rem;font-weight:600;line-height:1.5;white-space:nowrap}.pf-severity--critical{color:var(--pf-critical);background:var(--pf-critical-bg);border-color:rgba(0,0,0,0)}.pf-severity--high{color:var(--pf-high);background:var(--pf-high-bg);border-color:rgba(0,0,0,0)}.pf-severity--analysis{color:var(--pf-analysis);background:var(--pf-analysis-bg);border-color:rgba(0,0,0,0)}.pf-work-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:clamp(2rem,5vw,4rem)}.pf-work{display:flex;flex-direction:column;padding-top:1.3rem;border-top:1px solid var(--pf-border-strong)}.pf-work .pf-work-detail{color:var(--pf-muted);font-size:.9rem}.pf-work .pf-evidence{margin-top:auto;font-weight:600}.pf-split{display:grid;grid-template-columns:minmax(0, 0.85fr) minmax(0, 2fr);gap:clamp(2rem,5vw,4rem);padding-top:2rem;border-top:1px solid var(--pf-border-strong)}.pf-experience article+article{margin-top:2rem}.pf-experience p:last-child{margin-bottom:0}.pf-writing article{display:grid;grid-template-columns:8.5rem minmax(0, 1fr);gap:1.75rem;padding:1.35rem 0;border-top:1px solid var(--pf-border)}.pf-writing article h3{font-size:1.08rem}.pf-writing article h3 a{color:var(--pf-ink)}.pf-writing article p{margin:0;color:var(--pf-muted)}.pf-writing-meta{display:flex;flex-direction:column;gap:.2rem;color:var(--pf-muted);font-size:.8rem;font-variant-numeric:tabular-nums}.pf-focus{margin:0}.pf-focus dt{margin-bottom:.25rem;color:var(--pf-ink);font-weight:650}.pf-focus dd{margin:0 0 1.15rem;color:var(--pf-muted)}.pf-focus dd:last-child{margin-bottom:0}.pf-contact{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between;padding-top:2rem;border-top:1px solid var(--pf-border-strong)}.pf-contact p{max-width:54ch}.pf-contact .pf-actions{margin-top:0}.pf-page-heading{display:grid;grid-template-columns:minmax(0, 1.65fr) minmax(16rem, 0.75fr);gap:clamp(2rem,5vw,4rem);align-items:end;padding:1.25rem 0 2.75rem}.pf-page-heading h1{max-width:none;font-size:clamp(2.45rem,4.5vw,4rem)}.pf-page-heading>div>p{margin-bottom:0;color:var(--pf-muted);font-size:1.05rem}.pf-page-note{margin:0 !important;padding:.95rem 0;border-top:1px solid var(--pf-border-strong);border-bottom:1px solid var(--pf-border);color:var(--pf-muted);font-size:.82rem}.pf-page-note strong,.pf-page-note span{display:block}.pf-page-note strong{margin-bottom:.25rem;color:var(--pf-ink);font-size:.95rem}@media(max-width: 1199px){.portfolio{width:min(100%,68rem)}.pf-hero{grid-template-columns:minmax(0, 1.35fr) minmax(16rem, 0.85fr);gap:2.5rem}.research-card{grid-template-columns:8.5rem minmax(0, 1fr)}.research-card__evidence{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:center}}@media(max-width: 767px){body:has(.portfolio) #main-wrapper::after{background-attachment:scroll;background-position:58% center;opacity:.05}.portfolio{--pf-section-space: 2.8rem;padding-top:1.2rem;font-size:.975rem}.portfolio h1{font-size:clamp(2.25rem,12vw,3.35rem)}.pf-hero,.pf-page-heading{grid-template-columns:1fr;gap:1.75rem;padding-bottom:2rem}.pf-proof>div{grid-template-columns:minmax(6.5rem, 0.65fr) minmax(0, 1.35fr)}.pf-work-grid,.pf-split{grid-template-columns:1fr;gap:1.5rem}.research-card,.research-card--featured{grid-template-columns:1fr;gap:.75rem;margin-inline:0;padding:1.25rem 0}.research-card__evidence{grid-column:auto}.pf-writing article{grid-template-columns:1fr;gap:.65rem}.pf-writing-meta{flex-direction:row;flex-wrap:wrap;gap:.25rem 1rem}.pf-contact{align-items:flex-start}}@media(max-width: 390px){.pf-proof>div{grid-template-columns:1fr;gap:.2rem}.pf-actions{align-items:stretch}.pf-button{width:100%}}@media(prefers-reduced-motion: reduce){.portfolio *,.portfolio *::before,.portfolio *::after{scroll-behavior:auto !important;transition:none !important;animation:none !important}}/*# sourceMappingURL=portfolio-page.css.map */