@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff)format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;size-adjust:100%;ascent-override:94%;descent-override:24%;line-gap-override:0%;unicode-range:U+B7,U+2014,U+2018-2019,U+2026,U+3000-303F,U+4E00-9FFF,U+FF00-FFEF;src:url(/assets/fonts/sans-400.woff2)format("woff2")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:600;size-adjust:100%;ascent-override:94%;descent-override:24%;line-gap-override:0%;unicode-range:U+B7,U+2014,U+2018-2019,U+2026,U+3000-303F,U+4E00-9FFF,U+FF00-FFEF;src:url(/assets/fonts/sans-600.woff2)format("woff2")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:700;size-adjust:100%;ascent-override:94%;descent-override:24%;line-gap-override:0%;unicode-range:U+B7,U+2014,U+2018-2019,U+2026,U+3000-303F,U+4E00-9FFF,U+FF00-FFEF;src:url(/assets/fonts/sans-700.woff2)format("woff2")}@font-face{font-family:Noto Serif SC;font-style:normal;font-display:swap;font-weight:700;size-adjust:100%;ascent-override:94%;descent-override:24%;line-gap-override:0%;unicode-range:U+B7,U+2014,U+2018-2019,U+2026,U+3000-303F,U+4E00-9FFF,U+FF00-FFEF;src:url(/assets/fonts/serif-700.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#172023;--ink-soft:#45545a;--muted:#5b6b71;--line:#cdd8d4;--paper:#f4f7f6;--surface:#fff;--surface-strong:#e9f0ee;--media-surface:#e3ebe8;--night:#0d1415;--night-soft:#151e20;--primary:#087f6a;--primary-strong:#066b59;--primary-soft:#dcefe9;--accent:var(--primary);--signal:#b84036;--on-accent:#fff;--on-dark:#f1f6f4;--on-dark-soft:#c3cfcc;--on-dark-muted:#95a6a3;--focus:#087f6a;--status-live:#087f6a;--status-warning:#8a6418;--border-soft:#1720231f;--hover:#17202311;--header-bg:#f4f7f6e6;--on-dark-line:#f1f6f424;--on-dark-surface:#f1f6f411;--on-dark-hover:#f1f6f41a;--grid-line:#f1f6f40b;--overlay:#070c0dd1;--radius:8px;--container:1180px;--shadow-soft:0 8px 24px #17202314;--shadow:0 24px 70px #17202329;--fs-xs:.78rem;--fs-sm:.88rem;--fs-base:1rem;--fs-lg:1.18rem;--fs-xl:1.45rem;--fs-2xl:2rem;--fs-3xl:2.55rem;--fs-4xl:3.35rem;font-family:IBM Plex Sans,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f1f6f4;--ink-soft:#c3cfcc;--muted:#95a6a3;--line:#31403e;--paper:#0d1415;--surface:#151e20;--surface-strong:#1b2829;--media-surface:#202d2e;--primary:#58d6aa;--primary-strong:#7be5bf;--primary-soft:#173b32;--accent:var(--primary);--signal:#ff8177;--on-accent:#07130f;--focus:#76e6c0;--status-live:#58d6aa;--status-warning:#e3c26a;--border-soft:#f1f6f41f;--hover:#f1f6f413;--header-bg:#0d1415eb;--shadow-soft:0 8px 24px #0000003d;--shadow:0 24px 70px #0000006b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6}::selection{color:var(--on-accent);background:var(--primary)}button,a{color:inherit;font:inherit}button{cursor:pointer;background:0 0;border:0}a{text-decoration:none}img{max-width:100%;display:block}a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.site-header{z-index:40;border-bottom:1px solid var(--border-soft);background:var(--header-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:24px;min-height:72px;padding:0 36px;display:flex;position:sticky;top:0}[data-theme=dark] .site-header{border-bottom-color:var(--border-soft)}.brand{min-width:0;color:var(--ink);align-items:center;gap:10px;font-weight:800;display:inline-flex}.brand-mark{width:36px;height:36px;color:var(--on-accent);background:var(--primary);border-radius:7px;place-items:center;font-size:.82rem;font-weight:800;display:grid}[data-theme=dark] .brand-mark{color:var(--on-accent);background:var(--primary)}.site-nav{color:var(--ink-soft);gap:4px;font-size:.92rem;font-weight:700;display:flex}.site-nav a,.tool-button{border-radius:7px;min-height:38px;padding:0 12px}.site-nav a{position:relative}.site-nav a:after{content:"";transform-origin:0;background:var(--accent);border-radius:999px;height:2px;transition:transform .16s;position:absolute;bottom:6px;left:12px;right:12px;transform:scaleX(0)}.site-nav a:hover,.site-nav a.active,.tool-button:hover{background:var(--hover)}.site-nav a.active:after{transform:scaleX(1)}.header-tools{align-items:center;gap:8px;display:flex}.tool-button,.hamburger{border:1px solid var(--border-soft);color:var(--ink-soft)}.icon-button{place-items:center;width:38px;height:38px;padding:0;display:grid}[data-theme=dark] .tool-button,[data-theme=dark] .hamburger{border-color:var(--border-soft)}.hamburger{border-radius:7px;place-items:center;gap:4px;width:38px;height:38px;display:none}.mobile-overlay{z-index:35;background:var(--paper);place-content:center;gap:8px;display:grid;position:fixed;inset:0}[data-theme=dark] .mobile-overlay{background:var(--paper)}.mobile-overlay>a:not(.mobile-resume){color:var(--ink-soft);text-align:center;border-radius:8px;padding:14px 24px;font-size:1.3rem;font-weight:700}.mobile-overlay>a.active:not(.mobile-resume){color:var(--primary-strong);background:var(--primary-soft)}.container{width:min(var(--container), calc(100% - 48px));margin:0 auto}.section{padding:104px 0}.section-dark{color:var(--on-dark);background:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px), linear-gradient(180deg, var(--night) 0%, var(--night-soft) 100%);background-size:42px 42px,42px 42px,auto}.section-soft{background:var(--surface-strong)}.hero{min-height:calc(100vh - 72px);padding:104px 0 72px;position:relative;overflow:hidden}.hero:before{content:"";background:linear-gradient(90deg, transparent, var(--primary));width:min(46vw,720px);height:3px;position:absolute;top:0;right:0}.hero-grid{grid-template-columns:minmax(0,.82fr) minmax(420px,.76fr);align-items:center;gap:64px;display:grid}.eyebrow,.section-kicker{color:var(--muted);text-transform:uppercase;margin:0 0 14px;font-size:.78rem;font-weight:800}.eyebrow{color:var(--on-dark-soft);letter-spacing:.04em;align-items:center;gap:9px;display:flex}.status-dot{background:var(--status-live);width:8px;height:8px;box-shadow:0 0 0 5px color-mix(in srgb, var(--status-live) 18%, transparent);border-radius:50%}.section-kicker{padding-left:12px;position:relative}.section-kicker:before{content:"";background:var(--accent);border-radius:2px;width:3px;position:absolute;top:.2em;bottom:.2em;left:0}.section-dark .eyebrow,.section-dark .section-kicker{color:var(--on-dark-soft)}.section-dark .section-kicker:before{background:var(--primary)}.hero h1,.split-head h2,.contact-grid h2,.case-heading h2,.credential-dialog-copy h2,.supplement-layout h2{letter-spacing:0;font-family:Noto Serif SC,Songti SC,STSong,serif}.hero h1,.split-head h2,.contact-grid h2,.supplement-layout h2{margin:0;font-weight:700}.hero h1{max-width:860px;color:var(--on-dark);font-size:clamp(3.4rem,6.2vw,6.2rem);line-height:.98}.hero-statement{color:var(--primary-strong);hanging-punctuation:last;margin:18px 0 0;font-family:Noto Serif SC,Songti SC,STSong,serif;font-size:clamp(2rem,3.4vw,3.55rem);font-weight:700;line-height:1.15}.hero-lead{max-width:620px;color:var(--on-dark-soft);margin:28px 0 0;font-size:1.08rem;line-height:1.85}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.button{border:1px solid var(--border-soft);background:var(--surface);max-width:100%;min-height:44px;color:var(--ink);text-align:center;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:0 17px;font-size:.94rem;font-weight:700;line-height:1.15;transition:transform .16s,border-color .16s,background .16s;display:inline-flex}.button:hover{border-color:var(--primary);transform:translateY(-2px)}.button:active{transform:translateY(0)}.button.light{color:var(--on-accent);background:var(--primary);border-color:#0000}.button.ghost{color:var(--on-dark);border-color:var(--on-dark-line);background:var(--on-dark-surface)}.button.dark{color:var(--on-accent);background:var(--primary)}.hero-showcase{border:1px solid color-mix(in srgb, var(--primary) 42%, var(--on-dark-line));border-radius:var(--radius);background:var(--night-soft);min-width:0;box-shadow:0 32px 90px #00000080, 18px 18px 0 color-mix(in srgb, var(--primary) 10%, transparent);position:relative;overflow:hidden}.showcase-toolbar{border-bottom:1px solid var(--on-dark-line);min-height:44px;color:var(--on-dark-muted);grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:0 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;display:grid}.window-controls{gap:5px;display:flex}.window-controls i,.showcase-live i{background:color-mix(in srgb, var(--on-dark) 28%, transparent);border-radius:50%;width:7px;height:7px}.window-controls i:nth-child(2){opacity:.7}.window-controls i:nth-child(3){opacity:.45}.showcase-live{color:var(--primary-strong);align-items:center;gap:6px;display:flex}.showcase-live i{background:var(--status-live);box-shadow:0 0 0 4px color-mix(in srgb, var(--status-live) 15%, transparent)}.showcase-main{background:var(--media-surface);overflow:hidden}.showcase-main img{aspect-ratio:16/10.2;object-fit:cover;object-position:center top;width:100%;height:auto;transition:transform .5s}.hero-showcase:hover .showcase-main img{transform:scale(1.015)}.showcase-panel{border-top:1px solid var(--on-dark-line);grid-template-columns:1fr auto;align-items:center;gap:24px;padding:18px 20px 14px;display:grid}.showcase-panel span,.showcase-panel strong{display:block}.showcase-panel span{color:var(--on-dark-muted);font-size:.76rem}.showcase-panel strong{color:var(--on-dark);margin-top:3px;font-size:1rem}.showcase-stars{border-left:1px solid var(--on-dark-line);text-align:right;padding-left:20px}.showcase-stars strong{color:var(--primary-strong);margin:0;font-size:1.45rem;line-height:1}.showcase-strip{border-top:1px solid var(--on-dark-line);background:var(--on-dark-line);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.showcase-strip span{min-height:38px;color:var(--on-dark-soft);background:var(--night-soft);text-align:center;place-items:center;font-size:.74rem;font-weight:700;display:grid}.proof-strip{border:1px solid var(--on-dark-line);border-radius:var(--radius);background:var(--on-dark-line);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:72px;padding-bottom:34px;display:grid;position:relative;overflow:hidden}.proof-strip article{background:color-mix(in srgb, var(--night) 88%, transparent);min-height:146px;padding:24px}.proof-strip strong{color:var(--primary-strong);font-variant-numeric:tabular-nums;font-size:2.55rem;line-height:1;display:block}.proof-strip span{margin-top:10px;font-weight:800;display:block}.proof-strip article p{color:var(--on-dark-muted);margin:8px 0 0;font-size:.86rem;line-height:1.55}.github-data-note{min-height:34px;color:var(--on-dark-muted);background:color-mix(in srgb, var(--on-dark) 4%, transparent);justify-content:flex-end;align-items:center;gap:8px;margin:0;padding:0 18px;font-size:.72rem;display:flex;position:absolute;bottom:0;left:0;right:0}.github-data-note span{background:var(--status-warning);border-radius:50%;width:6px;height:6px}.github-data-note.is-live span{background:var(--status-live)}.github-data-note.is-loading span{animation:1s ease-in-out infinite status-pulse}@keyframes status-pulse{50%{opacity:.35}}.split-head,.contact-grid{grid-template-columns:minmax(0,.82fr) minmax(300px,.58fr);align-items:end;gap:60px;margin-bottom:42px;display:grid}.split-head h2,.contact-grid h2{font-size:clamp(2.1rem,4vw,3.35rem);line-height:1.08}.split-head>p,.contact-grid p,.internship-card p,.timeline-item p{max-width:34em;color:var(--muted);margin:0;font-size:1rem;line-height:1.85}.section-dark .split-head>p,.section-dark .timeline-item p,.section-dark .contact-grid p{color:var(--on-dark-soft)}.resume-grid{grid-template-columns:minmax(280px,.75fr) minmax(260px,.55fr) minmax(0,1.3fr);align-items:stretch;gap:18px;display:grid}.resume-panel,.project-card,.internship-card{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);min-width:0;box-shadow:var(--shadow-soft)}[data-theme=dark] .resume-panel,[data-theme=dark] .project-card,[data-theme=dark] .internship-card{border-color:var(--border-soft)}.resume-panel{padding:28px;position:relative;overflow:hidden}.resume-panel:before,.internship-card:before{content:"";background:linear-gradient(90deg, var(--accent), transparent 72%);height:3px;position:absolute;top:0;left:0;right:0}.resume-panel h3,.project-card h3,.internship-card h3{color:var(--ink);margin:0 0 14px;font-size:1.18rem;line-height:1.3}.section-dark .contact-grid h2,.section-dark .split-head h2{color:var(--on-dark)}dl{gap:10px;margin:22px 0 0;display:grid}dl div{border-bottom:1px solid var(--line);grid-template-columns:82px 1fr;gap:12px;padding-bottom:10px;display:grid}dt{color:var(--muted);font-size:.86rem}dd{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-weight:700}.education-panel p{color:var(--muted)}.skill-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.skill-columns h4{margin:0 0 10px;font-size:.94rem}.badge-row,.tag-row{flex-wrap:wrap;gap:8px;display:flex}.badge-row{margin-top:18px}.badge-row span,.skill-columns span,.tag{border:1px solid var(--border-soft);max-width:100%;min-height:28px;color:var(--ink-soft);background:var(--surface-strong);border-radius:999px;align-items:center;padding:0 10px;font-size:.82rem;font-weight:600;line-height:1.2;display:inline-flex}.badge-row.strong span{min-height:34px}.tag.accent{color:var(--primary-strong);background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 28%, var(--line))}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.project-card:first-child{grid-column:span 2}.project-card:first-child .project-shot{height:260px}.project-card:first-child h3{font-size:1.55rem}.project-card{border-top:3px solid var(--accent);flex-direction:column;transition:transform .22s,box-shadow .22s,border-color .22s;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.project-card.active{border-color:color-mix(in srgb, var(--accent) 48%, var(--line));box-shadow:0 18px 48px color-mix(in srgb, var(--accent) 18%, transparent);border-top-width:5px;transform:translateY(-3px)}.project-card.active .project-body{background:color-mix(in srgb, var(--accent) 5%, var(--surface))}.project-shot{background:var(--media-surface);border-bottom:1px solid var(--border-soft);height:188px;overflow:hidden}.project-shot img{object-fit:cover;object-position:center top;width:100%;height:100%;transition:transform .4s}.project-card:hover .project-shot img{transform:scale(1.025)}.project-body{flex-direction:column;flex:1;padding:20px;display:flex}.project-body p{color:var(--muted);margin:12px 0 0;font-size:.93rem;line-height:1.72}.text-link{width:fit-content;color:var(--ink);align-items:center;margin-top:auto;padding-top:20px;font-size:.9rem;font-weight:800;display:inline-flex}.text-link:after{content:"->";margin-left:7px}.timeline-list{border:1px solid var(--on-dark-line);border-radius:var(--radius);gap:0;display:grid;overflow:hidden}.timeline-item{background:var(--on-dark-surface);border-bottom:1px solid var(--on-dark-line);grid-template-columns:180px 1fr;gap:24px;padding:20px 24px;display:grid}.timeline-item:last-child{border-bottom:0}.timeline-item time,.internship-card time{color:var(--muted);font-size:.86rem;font-weight:800}.timeline-item h3,.internship-card h3{margin:0 0 6px}.timeline-section h3{color:var(--on-dark)}.proof-definition{color:var(--on-dark-muted);margin-top:-22px;font-size:.78rem;line-height:1.6}.internship-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.internship-card{padding:28px}.contact-grid{align-items:center;margin-bottom:0}.contact-actions{gap:10px;display:grid}.contact-action{border:1px solid var(--on-dark-line);border-radius:var(--radius);min-height:78px;color:var(--on-dark);background:var(--on-dark-surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;transition:transform .16s,border-color .16s,background .16s;display:grid}.contact-action:hover{border-color:var(--primary);background:var(--on-dark-hover);transform:translateY(-2px)}.contact-action:active{transform:translateY(0)}.contact-action span,.contact-action small,.contact-action strong{min-width:0;display:block}.contact-action small{color:var(--on-dark-muted);font-size:.72rem}.contact-action.is-primary small{color:color-mix(in srgb, var(--on-accent) 70%, transparent)}.contact-action strong{overflow-wrap:anywhere;margin-top:3px;font-size:.95rem}.contact-note{padding:4px 2px 0;color:var(--on-dark-muted)!important;font-size:.82rem!important}.footer-inner{border-top:1px solid var(--on-dark-line);justify-content:space-between;align-items:center;gap:18px;min-height:88px;font-size:.86rem;display:flex}.footer-inner p{margin:0}.footer-top{border:1px solid var(--on-dark-line);min-height:36px;color:var(--on-dark);border-radius:7px;padding:0 12px;font-size:.84rem;font-weight:700}.footer-top:hover{border-color:var(--primary);background:var(--on-dark-hover)}.credential-toolbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;display:flex}.credential-card.is-pending{opacity:.9;border-style:dashed}.credential-card.is-pending>button{cursor:default}.credential-card.is-pending .credential-category{color:var(--on-accent);background:var(--status-warning)}.credential-card.is-pending .credential-summary{-webkit-line-clamp:2;min-height:3.3em}.internship-card{position:relative}.current-badge{min-height:24px;color:var(--on-accent);background:var(--primary);border-radius:999px;align-items:center;margin-bottom:10px;padding:0 9px;font-size:.72rem;font-weight:800;display:inline-flex}.internship-card.is-current{border-color:color-mix(in srgb, var(--primary) 40%, var(--border-soft));background:color-mix(in srgb, var(--primary) 4%, var(--surface))}.credential-filters{flex-wrap:wrap;gap:8px;display:flex}.credential-count{color:var(--muted);flex:none;font-size:.78rem;font-weight:700}.credential-filter{border:1px solid var(--line);min-height:34px;color:var(--muted);background:var(--surface);border-radius:999px;padding:0 13px;font-size:.84rem;font-weight:700;transition:color .16s,border-color .16s,background .16s}.credential-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.credential-card{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);min-width:0;box-shadow:var(--shadow-soft);transition:transform .18s,box-shadow .18s;overflow:hidden}[data-theme=dark] .credential-card{border-color:var(--border-soft)}.credential-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.credential-card>button{width:100%;color:inherit;text-align:left;display:block}.credential-preview{border-bottom:1px solid var(--border-soft);background:var(--media-surface);display:block;position:relative;overflow:hidden}.credential-preview picture{display:block}.credential-preview img{object-fit:cover;width:100%;height:188px;transition:transform .4s}.credential-card:hover .credential-preview img{transform:scale(1.03)}.credential-category{color:var(--on-dark);background:var(--overlay);border-radius:999px;padding:5px 8px;font-size:.72rem;font-weight:800;line-height:1;position:absolute;top:12px;left:12px}.credential-content{padding:18px;display:block}.credential-meta,.credential-summary,.credential-tags{display:block}.credential-meta{color:var(--muted);font-size:.76rem;font-weight:700}.credential-content strong{color:var(--ink);margin-top:8px;font-size:1.05rem;line-height:1.35;display:block}.credential-summary{min-height:4.9em;color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:9px;font-size:.88rem;line-height:1.65;display:-webkit-box;overflow:hidden}.credential-tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.credential-tags span{color:var(--ink-soft);background:var(--surface-strong);border-radius:4px;padding:4px 7px;font-size:.72rem;font-weight:700;line-height:1.2}.credential-modal{z-index:80;background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.credential-dialog{width:min(1100px,100%);max-height:min(820px,100vh - 48px);color:var(--ink);background:var(--surface);border:1px solid #ffffff2e;border-radius:10px;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);display:grid;position:relative;overflow:auto;box-shadow:0 30px 100px #0000006b}.credential-dialog figure{background:var(--media-surface);place-items:center;min-height:320px;margin:0;padding:26px;display:grid}.credential-dialog figure img{object-fit:contain;max-height:720px;box-shadow:0 12px 28px #07101029}.credential-dialog-copy{align-self:center;padding:32px}.credential-dialog-copy h2{margin:0;font-family:Noto Serif SC,Songti SC,STSong,serif;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.18}.credential-dialog-copy>p:not(.section-kicker){color:var(--muted);margin:16px 0 0;line-height:1.8}.credential-dialog-copy .button{margin-top:26px}.credential-close{z-index:3;width:44px;height:44px;color:var(--on-dark);background:var(--overlay);border-radius:50%;place-items:center;font-size:1.7rem;line-height:1;display:grid;position:absolute;top:12px;right:12px}body.overlay-open{overflow:hidden}.header-download{min-height:36px;color:var(--on-accent);background:var(--primary);border-radius:7px;align-items:center;gap:7px;padding:0 12px;font-size:.84rem;font-weight:700;display:inline-flex}.mobile-overlay .mobile-resume{min-height:48px;color:var(--on-accent);background:var(--primary);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:1rem;font-weight:700;display:flex}.resume-intro{gap:16px;display:grid}.resume-intro>p{max-width:34em;color:var(--muted);margin:0;line-height:1.85}.button.subtle{background:var(--surface-strong)}.case-study{gap:20px;margin-top:30px;padding:0;scroll-margin-top:92px;display:grid}.case-heading{border-top:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:36px;padding:30px;display:grid}.case-heading h2{margin:0;font-family:Noto Serif SC,Songti SC,STSong,serif;font-size:clamp(2rem,4vw,3.25rem);line-height:1.08}.case-heading>div>p:not(.section-kicker){max-width:780px;color:var(--muted);margin:16px 0 0;line-height:1.8}.case-heading .attribution{border-left:3px solid var(--accent);background:var(--surface-strong);padding:12px 14px;font-size:.88rem}.case-links{flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:360px;display:flex}.case-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.case-metrics article,.case-metrics a{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 4%, var(--surface));min-width:0;min-height:148px;box-shadow:var(--shadow-soft);padding:26px;position:relative;overflow:hidden}.case-metrics a{text-decoration:none;transition:transform .16s,border-color .16s}.case-metrics a:hover{border-color:var(--primary);transform:translateY(-2px)}.case-metrics article:after,.case-metrics a:after{content:"";border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:50%;width:108px;height:108px;position:absolute;bottom:-38px;right:-20px}.case-metrics strong,.case-metrics span,.case-metrics small{display:block}.case-metrics strong{color:var(--primary-strong);font-variant-numeric:tabular-nums;font-size:clamp(2rem,4vw,3rem);line-height:1}.case-metrics span{color:var(--ink-soft);align-items:center;gap:5px;margin-top:8px;font-weight:700;display:inline-flex}.case-metrics small{color:var(--muted);margin-top:4px}.project-tabs{flex-wrap:wrap;gap:8px;margin-top:26px;display:flex}.project-tab{border:1px solid var(--border-soft);min-height:40px;color:var(--ink-soft);background:var(--surface);border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:.84rem;font-weight:700;transition:color .16s,border-color .16s,background .16s;display:inline-flex}.project-tab:hover{border-color:var(--primary);color:var(--primary-strong)}.project-tab.active{border-color:var(--accent);color:var(--ink);background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.project-tab-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.project-tab-stars{color:var(--muted);font-size:.76rem;font-weight:700}.case-gallery{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);display:grid;overflow:hidden}.case-gallery-main{border-right:1px solid var(--line);background:var(--media-surface);min-width:0;min-height:390px;position:relative;overflow:hidden}.case-gallery-main img{object-fit:cover;object-position:center top;width:100%;height:100%;min-height:390px}.case-gallery-main>span{color:#fff;background:#071010c7;border-radius:6px;padding:7px 10px;font-size:.76rem;font-weight:700;position:absolute;bottom:14px;right:14px}.case-gallery-copy{align-self:center;padding:28px}.case-gallery-copy h3{margin:0;font-size:1.3rem}.case-gallery-copy>p:not(.section-kicker){color:var(--muted);margin:12px 0 0;line-height:1.75}.gallery-thumbnails{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:24px;display:grid}.gallery-thumbnails button{background:var(--media-surface);border:2px solid #0000;border-radius:6px;min-width:0;overflow:hidden}.gallery-thumbnails button.active{border-color:var(--accent)}.gallery-thumbnails img{aspect-ratio:16/10;object-fit:cover;width:100%}.case-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.case-grid article,.case-technical article{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;box-shadow:var(--shadow-soft);padding:28px}.case-number{color:var(--primary-strong);margin:0 0 20px;font-size:.78rem;font-weight:800}.case-grid h3,.case-technical h3{margin:0 0 14px;font-size:1.15rem}.case-grid ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.case-grid li{color:var(--muted);grid-template-columns:12px 1fr;gap:10px;line-height:1.72;display:grid}.case-grid li:before{content:"";background:var(--primary);border-radius:50%;width:6px;height:6px;margin-top:10px}.case-technical{grid-template-columns:1fr 1fr;gap:16px;display:grid}.case-technical article:first-child{grid-column:span 2}.case-technical p,.case-technical code{color:var(--muted);margin:0;line-height:1.75}.case-technical code{overflow-wrap:anywhere;font-size:.86rem;display:block}.project-lightbox{z-index:90;background:#040a0ae6;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.project-lightbox-dialog{width:min(1180px,100%);max-height:calc(100vh - 48px);position:relative}.project-lightbox figure{justify-items:center;gap:12px;margin:0;display:grid}.project-lightbox figure img{object-fit:contain;border-radius:var(--radius);max-width:100%;max-height:calc(100vh - 110px);box-shadow:0 30px 100px #0000007a}.project-lightbox figcaption{color:#ffffffc7;text-align:center;font-size:.9rem}.lightbox-nav{z-index:2;width:48px;height:48px;color:var(--on-dark);background:var(--overlay);border-radius:50%;place-items:center;font-size:2rem;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav.previous{left:12px}.lightbox-nav.next{right:12px}[data-reveal][data-reveal-ready]{opacity:0;transition:opacity .52s,transform .52s;transform:translateY(18px)}[data-reveal][data-reveal-ready].is-visible{opacity:1;transform:translateY(0)}.modal-fade-enter-active,.modal-fade-leave-active,.menu-fade-enter-active,.menu-fade-leave-active{transition:opacity .18s}.modal-fade-enter-from,.modal-fade-leave-to,.menu-fade-enter-from,.menu-fade-leave-to{opacity:0}.case-swap-enter-active,.case-swap-leave-active,.credential-list-enter-active,.credential-list-leave-active,.credential-list-move{transition:opacity .22s,transform .22s}.case-swap-enter-from,.case-swap-leave-to,.credential-list-enter-from,.credential-list-leave-to{opacity:0;transform:translateY(10px)}.credential-list-leave-active{position:absolute}@media (width<=1060px){.hero-grid,.split-head,.contact-grid,.resume-grid,.case-heading,.case-gallery{grid-template-columns:1fr}.hero-showcase{width:min(760px,100%)}.case-links{justify-content:flex-start;max-width:none}.case-gallery-main{border-right:0;border-bottom:1px solid var(--line);min-height:320px}.case-gallery-main img{min-height:320px}.project-grid,.proof-strip,.credential-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){body{font-size:15px}.site-header{min-height:auto;padding:14px 18px}.brand span:last-child,.site-nav,.header-download{display:none}.hamburger{display:grid}.container{width:min(100% - 28px, var(--container))}.section,.hero{padding:64px 0}.hero h1{font-size:3.35rem}.hero-statement{font-size:2.05rem}.hero-lead{font-size:1rem;line-height:1.75}.hero-showcase{box-shadow:0 24px 64px #0000006b,8px 8px #42d99a14}.showcase-toolbar{grid-template-columns:auto 1fr}.showcase-toolbar>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.showcase-live{display:none}.proof-strip{padding-bottom:40px}.proof-strip article{min-height:0}.github-data-note{justify-content:flex-start}.project-grid,.proof-strip,.skill-columns,.internship-grid,.credential-gallery,.case-metrics,.case-grid,.case-technical{grid-template-columns:1fr}.case-technical article:first-child{grid-column:auto}.credential-toolbar{scrollbar-width:none;flex-wrap:nowrap;margin-left:-14px;margin-right:-14px;padding:0 14px 6px;overflow-x:auto}.project-tabs{scrollbar-width:none;flex-wrap:nowrap;margin-left:-14px;margin-right:-14px;padding:0 14px 4px;overflow-x:auto}.project-tab{white-space:nowrap;flex:none}.credential-filter{flex:none}.credential-modal,.project-lightbox{padding:0}.credential-dialog{border:0;border-radius:0;grid-template-columns:1fr;width:100%;height:100dvh;max-height:none}.credential-dialog figure{min-height:0;padding:62px 18px 18px}.credential-dialog figure img{max-height:48vh}.credential-dialog-copy{padding:22px}.project-card:first-child{grid-column:auto}.project-card:first-child .project-shot{height:210px}.timeline-item{grid-template-columns:1fr;gap:8px}.split-head h2,.contact-grid h2,.case-heading h2{font-size:2.15rem}.case-heading,.case-gallery-copy,.case-grid article,.case-technical article{padding:22px}.case-gallery-main,.case-gallery-main img{min-height:230px}.project-lightbox-dialog{align-items:center;width:100%;height:100dvh;display:grid}.project-lightbox figure img{max-height:calc(100dvh - 110px)}.footer-inner{flex-direction:column;align-items:flex-start;min-height:0;padding:24px 0}.lightbox-nav{width:44px;height:44px}}@media (width<=420px){.hero h1{font-size:2.85rem}.hero-statement{font-size:1.8rem}.showcase-panel{grid-template-columns:1fr;gap:12px}.showcase-stars{border-top:1px solid var(--on-dark-line);text-align:left;border-left:0;padding:12px 0 0}.showcase-strip span{padding:0 5px;font-size:.67rem}.contact-action{grid-template-columns:auto minmax(0,1fr)}.contact-action>svg:last-child{display:none}.hero-actions,.case-links,.button{width:100%}.case-links .button{min-width:0}dl div{grid-template-columns:1fr;gap:2px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}.site-nav a,.site-nav a.active,.tool-button,.hamburger{color:var(--ink-soft)}.site-nav a.active{color:var(--ink)}[data-theme=dark] .site-nav a:hover,[data-theme=dark] .site-nav a.active,[data-theme=dark] .tool-button:hover{background:var(--hover)}.hero-showcase,.showcase-main,.showcase-strip span,.proof-strip,.proof-strip article{background-color:var(--night-soft)}.showcase-panel,.showcase-strip,.proof-strip{border-color:var(--on-dark-line)}.proof-strip article p,.github-data-note{color:var(--on-dark-muted)}.proof-strip article{background:color-mix(in srgb, var(--night) 88%, transparent)}.proof-strip{background:var(--on-dark-line)}.resume-panel,.project-card,.internship-card,.credential-card,.badge-row span,.skill-columns span,.tag{border-color:var(--border-soft)}.tag.accent{color:var(--primary-strong);background:var(--primary-soft)}.timeline-list,.timeline-item{border-color:var(--on-dark-line)}.timeline-item{background:var(--on-dark-surface)}.timeline-section time{color:var(--on-dark-muted)}.contact-action{color:var(--on-dark);border-color:var(--on-dark-line);background:var(--on-dark-surface)}.contact-action:hover{border-color:var(--primary);background:var(--on-dark-hover)}.contact-action.is-primary{color:var(--on-accent);border-color:var(--primary);background:var(--primary)}.site-footer{color:var(--on-dark-muted);background:var(--night)}.credential-filter:hover,.credential-filter.active{border-color:var(--primary);color:var(--on-accent);background:var(--primary)}.credential-card,.case-grid article,.case-technical article{border-color:var(--border-soft)}.credential-dialog figure,.case-gallery-main,.gallery-thumbnails button{background:var(--media-surface)}.credential-close,.lightbox-nav{color:var(--on-dark);background:var(--overlay)}.credential-dialog-copy h2,.case-heading h2{font-family:Noto Serif SC,Songti SC,STSong,serif}.case-gallery-main>span{color:var(--on-dark);background:var(--overlay)}.credential-more{justify-content:center;margin-top:28px;display:flex}.credential-more button{border:1px solid var(--line);min-height:42px;color:var(--primary-strong);background:var(--surface);border-radius:7px;align-items:center;gap:8px;padding:0 16px;font-size:.88rem;font-weight:700;display:inline-flex}.credential-more button:hover{border-color:var(--primary);background:var(--primary-soft)}.supplement-section{padding:72px 0}.supplement-layout{grid-template-columns:minmax(240px,.5fr) minmax(0,1fr);align-items:start;gap:48px;display:grid}.supplement-layout h2{margin:0;font-size:clamp(2rem,3.4vw,3rem);line-height:1.08}.supplement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.supplement-grid article{border-top:3px solid var(--primary);background:var(--surface);min-width:0;padding:20px}.supplement-grid strong,.supplement-grid span,.supplement-grid p{display:block}.supplement-grid strong{color:var(--primary-strong);font-variant-numeric:tabular-nums;font-size:1.8rem;line-height:1}.supplement-grid span{color:var(--ink);margin-top:10px;font-weight:800}.supplement-grid p{color:var(--muted);margin:8px 0 0;font-size:.82rem;line-height:1.6}.back-to-top{z-index:35;border:1px solid var(--border-soft);width:44px;height:44px;color:var(--on-accent);background:var(--primary);box-shadow:var(--shadow-soft);border-radius:50%;place-items:center;display:grid;position:fixed;bottom:24px;right:24px}.back-to-top:hover{background:var(--primary-strong)}.back-to-top-enter-active,.back-to-top-leave-active{transition:opacity .16s,transform .16s}.back-to-top-enter-from,.back-to-top-leave-to{opacity:0;transform:translateY(8px)}#top,#resume,#projects,#credentials,#timeline,#contact,[data-section-heading]{scroll-margin-top:92px}@media (width<=720px){.hero{min-height:auto;padding:52px 0 44px}.hero-grid{gap:38px}.hero-actions{gap:8px;margin-top:26px}.hero-actions .button{flex:calc(50% - 4px)}.hero-actions .button.light{flex-basis:100%}.hero-showcase{box-shadow:0 24px 64px #0000006b, 8px 8px 0 color-mix(in srgb, var(--primary) 10%, transparent)}.proof-strip{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:40px;padding-bottom:40px}.proof-strip article{min-height:116px;padding:18px}.proof-strip strong{font-size:2rem}.proof-strip span{margin-top:7px;font-size:.9rem}.proof-strip article p{-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:5px;font-size:.76rem;display:-webkit-box;overflow:hidden}.credential-toolbar{flex-direction:column;align-items:flex-start;gap:10px}.credential-filters{scrollbar-width:none;flex-wrap:nowrap;width:calc(100% + 28px);margin-left:-14px;margin-right:-14px;padding:0 14px 5px;overflow-x:auto}.credential-count{padding-left:2px}.supplement-section{padding:60px 0}.supplement-layout{grid-template-columns:1fr;gap:26px}.supplement-grid{grid-template-columns:1fr}.back-to-top{bottom:16px;right:16px}}@media (prefers-reduced-motion:reduce){.back-to-top{transition:none}}[data-theme=dark] .project-card,[data-theme=dark] .project-tab,[data-theme=dark] .case-study{--accent:var(--accent-dark,var(--accent))}.theme-transition,.theme-transition *,.theme-transition :before,.theme-transition :after{transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s!important}[data-theme=dark] .resume-panel,[data-theme=dark] .project-card,[data-theme=dark] .internship-card,[data-theme=dark] .credential-card,[data-theme=dark] .case-grid article,[data-theme=dark] .case-technical article{box-shadow:var(--shadow-soft), inset 0 1px 0 #ffffff0f}[data-theme=dark] a:focus-visible,[data-theme=dark] button:focus-visible{box-shadow:0 0 0 5px #ffffff29}.hero:before{background:linear-gradient(90deg, transparent, var(--primary), transparent);width:auto;margin:0 auto;left:0;right:0}@media (resolution>=2x){.section-dark{background-size:56px 56px,56px 56px,auto}}@media (width<=1060px){.section{padding:80px 0}}@media (width>=721px) and (width<=1060px){.project-card:first-child{grid-column:span 2}}.proof-strip{margin-top:52px}.case-study{gap:24px}@media (width>=721px){.case-study{min-block-size:840px}}.case-grid article,.case-technical article{padding:24px}.timeline-item{grid-template-columns:150px 1fr}.timeline-item time,.internship-card time{font-variant-numeric:tabular-nums}.contact-action.is-secondary{opacity:.9}.credential-dialog figure img{max-height:min(720px,100vh - 220px)}.supplement-grid article{border-top:0;border-left:2px solid var(--primary)}.footer-inner{flex-wrap:wrap}.footer-nav{flex-wrap:wrap;gap:4px 16px;display:flex}.footer-nav a{color:var(--on-dark-muted);font-size:.84rem}.footer-nav a:hover{color:var(--on-dark)}.footer-updated{color:var(--on-dark-muted);font-size:.8rem}@media (width<=720px){.resume-panel,.project-body,.internship-card,.credential-content{padding:20px}}.proof-strip[data-reveal]>*,.project-grid[data-reveal]>*,.credential-gallery[data-reveal]>*{transition-delay:calc(var(--i,0) * 60ms)}.case-swap-left-enter-active,.case-swap-left-leave-active,.case-swap-right-enter-active,.case-swap-right-leave-active{transition:opacity .22s,transform .22s}.case-swap-left-enter-from{opacity:0;transform:translate(24px)}.case-swap-left-leave-to,.case-swap-right-enter-from{opacity:0;transform:translate(-24px)}.case-swap-right-leave-to{opacity:0;transform:translate(24px)}.project-shot img,.credential-preview img,.showcase-main img{transition:transform .45s cubic-bezier(.22,1,.36,1)}.button:hover{box-shadow:0 6px 16px #070c0d1f}[data-theme=dark] .button:hover{box-shadow:0 6px 18px color-mix(in srgb, var(--primary) 24%, transparent)}.site-nav a:after{transition:transform .24s cubic-bezier(.4,0,.2,1)}.theme-toggle{position:relative}.theme-toggle .theme-icon{opacity:0;transition:opacity .26s,transform .26s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(90deg)scale(.4)}.theme-toggle .theme-icon.is-on{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(1)}.gallery-thumbnails button{opacity:.6;transition:opacity .18s,border-color .18s}.gallery-thumbnails button.active,.gallery-thumbnails button:hover{opacity:1}.lightbox-img-enter-active,.lightbox-img-leave-active{transition:opacity .2s}.lightbox-img-enter-from,.lightbox-img-leave-to{opacity:0}.mobile-overlay>a{transition:opacity .24s,transform .24s}.menu-fade-enter-from .mobile-overlay>a,.menu-fade-enter-active .mobile-overlay>a{opacity:0;transform:translateY(-8px)}.menu-fade-enter-active .mobile-overlay>a{transition-delay:calc(var(--i,0) * 40ms)}.back-to-top{position:fixed}.back-to-top .progress-ring{position:absolute;inset:0;transform:rotate(-90deg)}.back-to-top .progress-ring circle{fill:none;stroke-width:2.5px}.back-to-top .progress-ring .ring-track{stroke:#ffffff40}.back-to-top .progress-ring .ring-fill{stroke:var(--on-accent);stroke-linecap:round;transition:stroke-dashoffset .12s linear}.project-card .tag-hover{opacity:0;transition:opacity .18s,transform .18s;transform:translateY(2px)}.project-card:hover .tag-hover,.project-card:focus-within .tag-hover,.project-card.active .tag-hover{opacity:1;transform:translateY(0)}@media (hover:none){.project-card .tag-hover{opacity:1;transform:none}}.timeline-more{justify-content:center;margin-top:22px;display:flex}.timeline-more button{border:1px solid var(--on-dark-line);min-height:42px;color:var(--primary-strong);background:var(--on-dark-surface);border-radius:7px;align-items:center;gap:8px;padding:0 16px;font-size:.88rem;font-weight:700;display:inline-flex}.timeline-more button:hover{border-color:var(--primary);background:var(--on-dark-hover)}.current-role-dot{background:var(--primary);width:8px;height:8px;box-shadow:0 0 0 0 color-mix(in srgb, var(--primary) 45%, transparent);vertical-align:middle;border-radius:50%;margin-right:7px;animation:2s ease-out infinite role-pulse;display:inline-block}@keyframes role-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--primary) 45%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.credential-filter .filter-count{opacity:.72;margin-left:5px;font-size:.76rem;font-weight:600}.credential-summary{min-height:3.2em}.credential-gallery{align-items:stretch}@media (width<=720px){.project-tab-stars{display:none}}.mobile-overlay{padding:48px 0;overflow-y:auto}html{scrollbar-gutter:stable}body{font-synthesis:none}.skip-link,.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{z-index:100;clip:auto;width:auto;height:auto;color:var(--on-accent);background:var(--primary);box-shadow:var(--shadow);border-radius:7px;margin:12px;padding:10px 14px}.project-toolbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;display:flex}.project-filters{flex-wrap:wrap;gap:8px;display:flex}.project-filters button{border:1px solid var(--line);min-height:36px;color:var(--muted);background:var(--surface);border-radius:999px;padding:0 13px;font-size:.84rem;font-weight:700;transition:color .16s,border-color .16s,background .16s}.project-filters button:hover,.project-filters button.active{border-color:var(--primary);color:var(--on-accent);background:var(--primary)}.project-filter-status{color:var(--muted);flex:none;margin:0;font-size:.8rem;font-weight:700}.project-selection{width:fit-content;color:var(--primary-strong);background:var(--primary-soft);border-radius:4px;align-items:center;gap:5px;margin-top:15px;padding:4px 7px;font-size:.74rem;font-weight:800;line-height:1;display:inline-flex}.project-selection+h3{margin-top:12px}.case-evidence{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--surface));padding:17px 20px}.case-evidence summary{cursor:pointer;width:fit-content;color:var(--ink);font-size:.9rem;font-weight:800}.case-evidence summary::marker{color:var(--accent)}.case-evidence ul{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin:13px 0 0;padding-left:18px;font-size:.88rem;display:flex}.quickstart-command{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.quickstart-command button{border:1px solid var(--border-soft);width:36px;height:36px;color:var(--ink-soft);background:var(--surface-strong);border-radius:6px;place-items:center;display:grid}.quickstart-command button:hover{border-color:var(--primary);color:var(--primary-strong)}.credential-public{border:1px solid color-mix(in srgb, var(--primary) 42%, transparent);color:var(--on-accent);background:color-mix(in srgb, var(--primary) 90%, #07130f);border-radius:999px;padding:5px 8px;font-size:.7rem;font-weight:800;line-height:1;position:absolute;bottom:12px;right:12px}.credential-dialog-actions{z-index:2;background:linear-gradient(to bottom, color-mix(in srgb, var(--surface) 0%, transparent), var(--surface) 28%);flex-wrap:wrap;gap:10px;margin-top:26px;padding:14px 0 2px;display:flex;position:sticky;bottom:-32px}.credential-dialog-copy .credential-dialog-actions .button{margin-top:0}.confidential-badge{border:1px solid color-mix(in srgb, var(--primary) 45%, transparent);background:color-mix(in srgb, var(--primary) 12%, transparent);border-radius:999px;width:fit-content;padding:4px 8px;font-weight:800;display:inline-flex;color:var(--primary-strong)!important;margin:0 0 9px!important;font-size:.72rem!important;line-height:1.2!important}.action-feedback{z-index:70;pointer-events:none;min-height:0;color:var(--on-accent);margin:0;font-size:.82rem;font-weight:700;position:fixed;bottom:78px;right:24px}.action-feedback:not(:empty){background:var(--primary);box-shadow:var(--shadow-soft);border-radius:6px;padding:9px 12px}@media (prefers-contrast:more){:root{--line:#7b898c;--muted:#314247;--border-soft:#17202352}[data-theme=dark]{--line:#9eafab;--muted:#d4e2de;--border-soft:#f1f6f457}a:focus-visible,button:focus-visible{outline-width:4px}}@media (width<=720px){.project-toolbar{flex-direction:column;align-items:flex-start;gap:10px}.project-filters{scrollbar-width:none;flex-wrap:nowrap;width:calc(100% + 28px);margin-left:-14px;margin-right:-14px;padding:0 14px 5px;overflow-x:auto}.project-filters button{flex:none}.project-filter-status{padding-left:2px}.case-evidence{padding:16px}.credential-dialog-actions{grid-template-columns:1fr;display:grid}.credential-dialog-actions .button{width:100%}.action-feedback{bottom:70px;right:16px}}.mobile-menu-head{color:var(--ink);letter-spacing:.08em;justify-content:space-between;align-items:center;gap:18px;margin-bottom:10px;padding:0 24px;font-size:.86rem;display:flex}.mobile-menu-head button{border:1px solid var(--border-soft);width:40px;height:40px;color:var(--ink);background:var(--surface);border-radius:7px;place-items:center;display:grid}.mobile-search{border:1px solid var(--border-soft);min-height:46px;color:var(--ink);background:var(--surface);border-radius:8px;justify-content:center;align-items:center;gap:8px;margin:6px 24px 0;padding:0 16px;font-weight:800;display:inline-flex}.hiring-section{border-bottom:1px solid var(--border-soft);background:var(--surface-strong);padding:68px 0}.hiring-brief{gap:28px;display:grid}.hiring-heading{grid-template-columns:minmax(0,.9fr) minmax(280px,.7fr);align-items:end;gap:36px;display:grid}.hiring-heading h2,.project-compare h3,.related-projects h3,.utility-dialog h2{color:var(--ink);margin:0;font-family:Noto Serif SC,Songti SC,STSong,serif;font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.18}.hiring-heading>p,.hiring-notes>p,.project-compare-hint,.case-scope p,.evidence-scope,.project-search-dialog>p,.keyboard-help-dialog dd{color:var(--muted);margin:0;line-height:1.78}.hiring-paths,.project-compare-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.hiring-paths article{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);min-width:0;min-height:218px;box-shadow:var(--shadow-soft);flex-direction:column;padding:24px;display:flex}.hiring-paths article>span{color:var(--primary-strong);letter-spacing:.08em;font-size:.78rem;font-weight:800}.hiring-paths h3{color:var(--ink);margin:15px 0 0;font-size:1.15rem}.hiring-paths p{color:var(--muted);margin:10px 0 0;font-size:.9rem;line-height:1.72}.hiring-paths button,.project-compare-actions button,.project-compare-actions a,.related-projects button{width:fit-content;color:var(--primary-strong);text-align:left;align-items:center;gap:6px;margin-top:auto;padding-top:18px;font-size:.86rem;font-weight:800;display:inline-flex}.hiring-notes{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:22px;padding-top:22px;display:flex}.hiring-notes>p{max-width:62em;font-size:.84rem}.hiring-notes>div,.credential-toolbar-actions,.project-toolbar-actions,.project-card-actions,.project-compare-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hiring-notes .text-link{margin:0;padding:0 2px}.project-filters>svg{color:var(--primary-strong);flex:none;align-self:center}.project-toolbar-actions{justify-content:flex-end}.project-search-trigger{border:1px solid var(--line);min-height:36px;color:var(--ink-soft);background:var(--surface);border-radius:7px;align-items:center;gap:7px;padding:0 11px;font-size:.82rem;font-weight:800;display:inline-flex}.project-search-trigger:hover,.project-compare-toggle:hover{border-color:var(--primary);color:var(--primary-strong);background:var(--primary-soft)}kbd{border:1px solid var(--border-soft);min-width:1.45em;min-height:1.45em;color:var(--ink-soft);background:var(--surface-strong);border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 .3em;font-family:IBM Plex Sans,Noto Sans SC,sans-serif;font-size:.78em;line-height:1;display:inline-flex}.project-card-actions{justify-content:space-between;margin-top:auto}.project-card-actions .text-link{margin-top:0}.project-compare-toggle{border:1px solid var(--border-soft);min-height:32px;color:var(--muted);background:var(--surface-strong);border-radius:5px;align-items:center;gap:5px;padding:0 8px;font-size:.76rem;font-weight:800;display:inline-flex}.project-compare-toggle[aria-pressed=true]{border-color:var(--primary);color:var(--primary-strong);background:var(--primary-soft)}.project-compare{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);margin-top:22px;padding:24px}.project-compare-head{justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.project-compare-head h3{margin-top:5px;font-size:1.45rem}.project-compare-head .text-link{flex:none;margin:0;padding:0}.project-compare-hint{margin-top:18px;font-size:.9rem}.project-compare-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px}.project-compare-grid article{border-top:3px solid var(--accent);background:var(--surface-strong);flex-direction:column;min-width:0;padding:20px;display:flex}.project-compare-grid h4{color:var(--ink);margin:13px 0 0;font-size:1.08rem;line-height:1.35}.project-compare-grid dl{margin:16px 0 0}.project-compare-grid dl div{grid-template-columns:48px minmax(0,1fr);padding-bottom:7px}.project-compare-grid p{color:var(--muted);margin:15px 0 0;font-size:.86rem;line-height:1.7}.project-compare-grid .badge-row{margin-top:15px}.project-compare-actions{margin-top:auto;padding-top:18px}.project-compare-actions button,.project-compare-actions a{border:1px solid var(--border-soft);min-height:32px;color:var(--primary-strong);background:var(--surface);border-radius:5px;margin-top:0;padding:0 8px}.case-scope{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--surface));grid-template-columns:minmax(140px,.28fr) minmax(0,1fr);gap:18px;padding:20px 22px;display:grid}.case-scope>div{color:var(--ink);align-items:center;gap:8px;font-size:.9rem;font-weight:800;display:flex}.case-scope-boundary{grid-column:2;font-size:.85rem}.case-evidence .evidence-scope{margin-top:13px;font-size:.85rem}.case-evidence .evidence-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-left:0;padding-left:0;list-style:none;display:grid}.evidence-list li{border:1px solid var(--border-soft);background:var(--surface);border-radius:6px;grid-template-columns:auto minmax(0,1fr);gap:5px 8px;min-width:0;padding:10px;display:grid}.evidence-list li>span{width:fit-content;color:var(--primary-strong);background:var(--primary-soft);border-radius:4px;padding:2px 5px;font-size:.7rem;font-weight:800}.evidence-list li>strong{min-width:0;color:var(--ink-soft);overflow-wrap:anywhere;font-size:.84rem}.evidence-list li>small{color:var(--muted);grid-column:1/-1;font-size:.73rem}.case-review-guide{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px;display:grid}.case-review-guide>p{color:var(--ink);grid-column:1/-1;margin:0;font-size:.84rem;font-weight:800}.case-review-guide a{border:1px solid var(--border-soft);min-width:0;color:var(--ink-soft);background:var(--surface);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:10px;display:grid}.case-review-guide a:hover{border-color:var(--primary)}.case-review-guide a span{font-size:.8rem;font-weight:800}.case-review-guide a small{color:var(--muted);grid-column:1/-1;font-size:.72rem;line-height:1.45}.related-projects{border-top:1px solid var(--border-soft);padding:24px}.related-projects h3{margin-top:6px;font-size:1.3rem}.related-projects>div{flex-wrap:wrap;gap:9px;margin-top:16px;display:flex}.related-projects button{border:1px solid var(--border-soft);min-height:36px;color:var(--primary-strong);background:var(--surface);border-radius:6px;margin:0;padding:0 10px}.credential-toolbar-actions{justify-content:flex-end}.credential-sort{border:1px solid var(--line);min-height:34px;color:var(--muted);background:var(--surface);border-radius:7px;align-items:center;gap:7px;padding:0 8px 0 10px;font-size:.78rem;font-weight:800;display:inline-flex}.credential-sort select{min-width:96px;color:var(--ink-soft);font:inherit;background:0 0;border:0}.credential-material,.credential-relation{color:var(--primary-strong);margin-top:9px;font-size:.72rem;font-weight:800;line-height:1.4;display:block}.credential-relation{color:var(--muted);font-weight:700}.utility-modal{z-index:81;background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.utility-dialog{border:1px solid var(--border-soft);width:min(680px,100%);max-height:min(760px,100dvh - 48px);color:var(--ink);background:var(--surface);border-radius:10px;padding:34px;position:relative;overflow:auto;box-shadow:0 30px 100px #0000006b}.utility-dialog>.section-kicker{margin:0 0 9px}.utility-dialog h2{font-size:clamp(1.8rem,4vw,2.5rem)}.project-search-input{border:1px solid var(--line);min-height:48px;color:var(--primary-strong);background:var(--surface-strong);border-radius:7px;align-items:center;gap:10px;margin-top:22px;padding:0 13px;display:flex}.last-viewed-project{border:1px solid var(--border-soft);width:100%;color:var(--ink-soft);background:var(--surface-strong);text-align:left;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:16px;padding:9px 10px;display:grid}.last-viewed-project:hover{border-color:var(--primary)}.last-viewed-project span{color:var(--primary-strong);background:var(--primary-soft);border-radius:4px;padding:3px 5px;font-size:.7rem;font-weight:800}.last-viewed-project strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.82rem;overflow:hidden}.project-search-input:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 24%, transparent)}.project-search-input input{width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:0}.project-search-input input::placeholder{color:var(--muted)}.project-search-count,.dialog-shortcuts{color:var(--muted);font-size:.82rem;margin-top:13px!important}.dialog-shortcuts{border-top:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:7px;padding-top:16px;display:flex}.project-search-results{gap:7px;margin:16px 0 0;padding:0;list-style:none;display:grid}.project-search-results button{border:1px solid var(--border-soft);width:100%;min-height:58px;color:var(--ink);background:var(--surface-strong);text-align:left;border-radius:7px;justify-content:space-between;align-items:center;gap:14px;padding:11px 12px;display:flex}.project-search-results button:hover{border-color:var(--primary);background:var(--primary-soft)}.project-search-results strong,.project-search-results small{display:block}.project-search-results strong{font-size:.9rem}.project-search-results small{color:var(--muted);margin-top:3px;font-size:.76rem}.project-search-empty{margin-top:18px!important}.keyboard-help-dialog dl{gap:0;margin:22px 0 0}.keyboard-help-dialog dl div{grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;padding:11px 0}.keyboard-help-dialog dt{gap:5px;display:flex}.keyboard-help-dialog dd{font-size:.88rem}.image-load-failed{min-height:112px;color:var(--muted);background:var(--surface-strong);object-fit:contain!important}.showcase-main picture,.project-shot picture,.case-gallery-main picture,.gallery-thumbnails picture{width:100%;display:block}.project-shot picture,.case-gallery-main picture{height:100%}@media (width<=1060px){.hiring-heading,.case-scope{grid-template-columns:1fr}.case-scope-boundary{grid-column:auto}.hiring-paths{grid-template-columns:repeat(3,minmax(0,1fr))}.case-review-guide{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.site-header{gap:10px}.header-tools{gap:6px}.mobile-overlay{min-height:100svh;padding:max(28px, env(safe-area-inset-top)) 0 max(28px, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;display:flex}.mobile-overlay>a:not(.mobile-resume){margin:0 24px}.hiring-section{padding:52px 0}.hiring-heading,.hiring-paths,.project-compare-grid,.case-evidence .evidence-list,.case-review-guide{grid-template-columns:1fr}.hiring-paths article{min-height:0}.hiring-notes,.project-compare-head{flex-direction:column;align-items:flex-start}.hiring-notes>div,.credential-toolbar-actions,.project-toolbar-actions{width:100%}.hiring-notes .button{flex:160px}.project-toolbar-actions{justify-content:space-between}.project-filters>svg{display:none}.project-card-actions{gap:8px}.project-compare{padding:20px}.case-scope,.related-projects{padding:18px}.case-evidence .evidence-list{gap:8px}.credential-toolbar{flex-direction:column;align-items:flex-start;margin-left:0;margin-right:0;padding:0;overflow:visible}.credential-filters{scrollbar-width:none;flex-wrap:nowrap;width:calc(100% + 28px);margin-left:-14px;margin-right:-14px;padding:0 14px 5px;overflow-x:auto}.credential-sort{flex:auto;justify-content:space-between}.credential-sort select{min-width:0}.utility-modal{padding:0}.utility-dialog{border:0;border-radius:0;width:100%;min-height:100svh;max-height:100dvh;padding:74px 20px 26px}.keyboard-help-dialog dl div{grid-template-columns:96px minmax(0,1fr)}}@media (forced-colors:active){.project-compare-grid article,.evidence-list li,.case-review-guide a,.project-search-results button,.utility-dialog{border:1px solid canvastext}}@media print{@page{margin:12mm}.site-header,.back-to-top,.action-feedback,.hero-actions,.project-toolbar,.project-tabs,.credential-toolbar,.credential-more,.timeline-more,.site-footer,.project-compare-toggle,.case-links,.related-projects,.hiring-notes>div{display:none!important}[data-reveal][data-reveal-ready]{opacity:1!important;transform:none!important}.section,.hiring-section{padding:20px 0}.hiring-section,.project-card,.credential-card,.case-heading,.project-compare,.hiring-paths article{box-shadow:none!important}}.mobile-menu-nav{display:contents}.mobile-menu-nav>a{color:var(--ink-soft);text-align:center;border-radius:8px;padding:14px 24px;font-size:1.3rem;font-weight:700;transition:opacity .24s,transform .24s}.mobile-menu-nav>a.active{color:var(--primary-strong);background:var(--primary-soft)}.menu-fade-enter-from .mobile-menu-nav>a,.menu-fade-enter-active .mobile-menu-nav>a{opacity:0;transform:translateY(-8px)}.menu-fade-enter-active .mobile-menu-nav>a{transition-delay:calc(var(--i,0) * 40ms)}.showcase-main{width:100%;color:inherit;text-align:left;background:0 0;border:0;padding:0;display:block;position:relative;overflow:hidden}.showcase-main picture,.showcase-main img{width:100%;display:block}.showcase-open{color:var(--on-dark);background:color-mix(in srgb, var(--night) 82%, transparent);opacity:0;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border:1px solid #ffffff42;border-radius:5px;align-items:center;gap:4px;padding:7px 9px;font-size:.75rem;font-weight:800;display:inline-flex;position:absolute;bottom:14px;right:14px;transform:translateY(4px)}.showcase-main:hover .showcase-open,.showcase-main:focus-visible .showcase-open{opacity:1;transform:translateY(0)}.keyboard-tip,.resume-meta,.resume-intro-actions,.case-verification,.credential-material,.credential-source-meta,.case-credential-links,.hiring-project-links{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.keyboard-tip{max-width:38rem;color:var(--on-dark-muted);margin:16px 0 0;font-size:.8rem;line-height:1.55}.keyboard-tip kbd{min-width:1.25rem;color:var(--on-dark);background:#ffffff14;padding:1px 4px}.keyboard-tip button{color:var(--primary-strong);font-size:inherit;text-underline-offset:3px;background:0 0;padding:0;font-weight:800;text-decoration:underline}.resume-meta{color:var(--muted);margin:14px 0 0;font-size:.78rem;font-weight:700}.resume-intro-actions{margin-top:14px}.resume-intro-actions .text-link{background:0 0;border:0;padding:0}.candidate-narrative{border-block:1px solid var(--line);grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);gap:22px;margin-bottom:22px;padding:20px 0;display:grid}.candidate-narrative .section-kicker,.candidate-narrative>p:last-child{margin:0}.candidate-narrative>p:last-child{max-width:66ch;color:var(--ink-soft);line-height:1.8}.skill-columns .has-public-evidence{border-color:color-mix(in srgb, var(--primary) 45%, var(--border-soft));color:var(--primary-strong);background:var(--primary-soft)}.skill-evidence-list{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:7px;margin-top:18px;padding-top:16px;display:flex}.skill-evidence-list p,.skill-evidence-list small{width:100%;color:var(--muted);margin:0;font-size:.76rem}.skill-evidence-list p{color:var(--ink-soft);font-weight:800}.skill-evidence-list button,.hiring-project-links button,.credential-project-links button,.case-credential-links button{border:1px solid var(--border-soft);min-height:28px;color:var(--ink-soft);background:var(--surface-strong);text-align:left;border-radius:5px;padding:4px 8px;font-size:.72rem;font-weight:700}.skill-evidence-list button:hover,.hiring-project-links button:hover,.credential-project-links button:hover,.case-credential-links button:hover{border-color:var(--primary);color:var(--primary-strong)}.hiring-summary{border-block:1px solid var(--line);color:var(--ink-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 18px;padding:16px 0;font-size:.88rem;line-height:1.7;display:grid}.hiring-summary p{margin:0}.hiring-project-links{align-items:flex-start;margin:12px 0 14px}.project-card-facts{border-block:1px solid var(--line);grid-template-columns:1fr;gap:5px;margin:15px 0 0;padding:12px 0;display:grid}.project-card-facts>div{grid-template-columns:42px minmax(0,1fr);gap:8px;display:grid}.project-card-facts dt,.project-card-facts dd{font-size:.74rem;line-height:1.45}.project-card-facts dd{font-weight:650}.project-role-fit{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:12px 0 0;font-size:.8rem;line-height:1.55;display:-webkit-box;overflow:hidden}.project-suitable-roles{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.project-suitable-roles span{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border-soft));color:var(--ink-soft);background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-radius:4px;padding:3px 6px;font-size:.7rem;font-weight:750}.case-verification{color:var(--muted);gap:8px 12px;margin-top:15px;font-size:.76rem;line-height:1.4}.case-verification span{align-items:center;gap:5px;display:inline-flex}.case-verification code,.evidence-ledger code,.representative-repos code{color:var(--ink-soft);font-size:.9em}.evidence-ledger{gap:10px;margin-top:16px;display:grid}.evidence-ledger article{border:1px solid var(--border-soft);background:var(--surface-strong);border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;padding:13px;display:grid}.evidence-ledger>article>svg{color:var(--primary-strong);margin-top:2px}.evidence-ledger p,.evidence-ledger small{margin:0}.evidence-ledger p+p{color:var(--ink-soft);margin-top:5px;font-size:.84rem;line-height:1.55}.evidence-ledger p span{color:var(--primary-strong);margin-right:7px;font-size:.72rem;font-weight:800}.evidence-ledger small{color:var(--muted);margin-top:6px;font-size:.72rem;line-height:1.5;display:block}.evidence-ledger a{border:1px solid var(--border-soft);width:30px;height:30px;color:var(--ink-soft);border-radius:5px;place-items:center;display:grid}.evidence-fallback{color:var(--muted);margin:14px 0 0;font-size:.78rem;line-height:1.6}.gallery-provenance{color:var(--muted);margin-top:14px;font-size:.78rem;line-height:1.6}.gallery-provenance summary{color:var(--ink-soft);cursor:pointer;font-weight:750}.gallery-provenance p{margin:7px 0 0}.case-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;display:grid}.case-review-grid article{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);min-width:0;padding:20px}.case-review-grid h3{margin:0 0 12px}.case-review-grid>article>p,.case-review-grid li,.case-review-grid small{color:var(--ink-soft);font-size:.88rem;line-height:1.65}.case-review-grid ul{margin:0;padding-left:1.15rem}.case-review-grid .quickstart-command{margin-top:12px}.case-review-grid a{align-items:center;gap:5px;display:inline-flex}.case-credential-links{align-items:flex-start;margin-top:15px}.case-credential-links>span{width:100%;color:var(--muted);font-size:.75rem;font-weight:700}.credential-card.is-portrait .credential-preview img{object-fit:contain;background:var(--media-surface)}.credential-material,.credential-source-meta{color:var(--muted);margin-top:10px;font-size:.74rem;line-height:1.45}.credential-material svg{flex:none}.credential-source-meta{display:block}.credential-project-links{flex-wrap:wrap;align-items:center;gap:7px;padding:0 18px 17px;display:flex}.credential-project-links>span{width:100%;color:var(--muted);font-size:.73rem;font-weight:700}.credential-project-links button{align-items:center;gap:3px;display:inline-flex}.pending-credentials{border:1px dashed var(--line);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-strong) 78%, transparent);grid-template-columns:minmax(0,.62fr) minmax(260px,.38fr);align-items:start;gap:22px;margin-top:30px;padding:22px;display:grid}.pending-credentials h3,.pending-credentials p{margin:0}.pending-credentials>div>p:last-child{color:var(--muted);margin-top:8px;line-height:1.65}.pending-credentials .credential-card>div{grid-template-columns:110px minmax(0,1fr);display:grid}.pending-credentials .credential-preview{border-right:1px solid var(--border-soft);border-bottom:0}.pending-credentials .credential-preview img{object-fit:contain;height:100%;min-height:160px}.pending-credentials .credential-content{min-width:0}.credential-public-note{color:var(--muted);align-items:flex-start;gap:7px;margin-top:18px;font-size:.78rem;line-height:1.6;display:flex}.credential-public-note svg{color:var(--primary-strong);flex:none;margin-top:3px}.credential-matrix{border-top:1px solid var(--line);margin-top:20px;padding:18px 0 0}.credential-matrix summary{color:var(--ink-soft);cursor:pointer;align-items:center;gap:8px;font-size:.88rem;font-weight:800;display:inline-flex}.credential-matrix summary svg{color:var(--primary-strong)}.credential-matrix>p{color:var(--muted);margin:10px 0 0;font-size:.8rem;line-height:1.6}.credential-matrix>div{scrollbar-width:thin;margin-top:14px;overflow-x:auto}.credential-matrix table{border-collapse:collapse;width:100%;min-width:640px;color:var(--ink-soft);text-align:left;font-size:.8rem}.credential-matrix th,.credential-matrix td{border:1px solid var(--border-soft);vertical-align:top;padding:10px}.credential-matrix thead th{color:var(--muted);background:var(--surface-strong);font-size:.73rem}.credential-matrix td{display:table-cell}.credential-matrix td button,.credential-matrix th button{color:var(--primary-strong);background:var(--primary-soft);font-size:inherit;text-align:left;border-radius:4px;margin:2px 4px 2px 0;padding:3px 5px;font-weight:750;display:inline-flex}.credential-matrix td>span{color:var(--muted)}.sources-section{background:var(--surface-strong)}.sources-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.source-policy,.representative-repos,.open-source-record,.content-audit,.site-update-log{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);min-width:0;padding:20px}.source-policy summary,.content-audit summary{color:var(--ink);cursor:pointer;align-items:center;gap:8px;font-weight:800;display:flex}.source-policy summary svg,.content-audit summary svg{color:var(--primary-strong)}.source-policy dl{gap:10px;margin:17px 0;display:grid}.source-policy dl>div{grid-template-columns:minmax(84px,.26fr) minmax(0,1fr);gap:10px;display:grid}.source-policy dd,.content-audit li,.content-audit p{color:var(--muted);font-size:.84rem;line-height:1.6}.representative-repos h3,.open-source-record h3,.site-update-log h3{margin:0;font-size:1.12rem}.representative-repos ul,.open-source-record ul,.content-audit ul,.site-update-log ol{margin:14px 0 0;padding:0;list-style:none}.representative-repos li,.open-source-record li{border-top:1px solid var(--line);color:var(--ink-soft);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:.82rem;display:flex}.representative-repos li:first-child,.open-source-record li:first-child{border-top:0}.representative-repos a,.open-source-record a{color:var(--primary-strong);flex:none;align-items:center;gap:4px;font-weight:800;display:inline-flex}.open-source-record li{align-items:flex-start}.open-source-record li span{color:var(--muted);font-size:.73rem}.content-audit ul{gap:8px;padding-left:1.1rem;list-style:outside;display:grid}.content-audit p{margin:13px 0 0}.site-update-log{grid-template-columns:minmax(180px,.3fr) minmax(0,1fr);gap:20px;margin-top:16px;display:grid}.site-update-log ol{gap:12px;display:grid}.site-update-log li{border-top:1px solid var(--line);grid-template-columns:90px minmax(0,1fr);gap:12px;padding-top:12px;display:grid}.site-update-log time{color:var(--muted);font-size:.76rem;font-weight:700}.site-update-log p{color:var(--muted);margin:5px 0 0;font-size:.84rem;line-height:1.55}.timeline-kind{border:1px solid var(--on-dark-line);color:var(--primary-strong);border-radius:999px;margin:0 0 8px;padding:3px 7px;font-size:.7rem;font-weight:800;display:inline-flex}.internship-breakdown{gap:10px;margin:16px 0 0;display:grid}.internship-breakdown>div{grid-template-columns:68px minmax(0,1fr);gap:9px;display:grid}.internship-breakdown dd{color:var(--ink-soft);font-size:.86rem;font-weight:500;line-height:1.6}@media (width<=720px){.mobile-menu-nav>a{margin:0 24px;display:block}.showcase-open{opacity:1;transform:none}.candidate-narrative,.hiring-summary,.case-review-grid,.sources-grid,.pending-credentials,.site-update-log{grid-template-columns:1fr}.case-verification{align-items:flex-start}.evidence-ledger article{grid-template-columns:auto minmax(0,1fr)}.evidence-ledger article>a{grid-column:2}.pending-credentials .credential-card>div{grid-template-columns:92px minmax(0,1fr)}.site-update-log li{grid-template-columns:1fr;gap:5px}}@media (width<=420px){.candidate-narrative,.pending-credentials,.source-policy,.representative-repos,.open-source-record,.content-audit,.site-update-log{padding:16px}.source-policy dl>div,.internship-breakdown>div{grid-template-columns:1fr;gap:3px}.project-card-facts>div{grid-template-columns:40px minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.showcase-open{transition:none}}.header-reading-context,.side-section-nav{display:none}.mobile-menu-context{color:var(--muted);text-align:center;margin:4px 24px 8px;font-size:.78rem}.section-anchor-link,.project-clear-filter,.footer-next,.mobile-case-overview{color:var(--primary-strong);text-underline-offset:3px;background:0 0;justify-content:center;align-items:center;gap:5px;padding:0;font-size:.78rem;font-weight:800;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.section-anchor-link{margin-top:12px}.current-project-context{z-index:30;border-bottom:1px solid var(--border-soft);background:color-mix(in srgb, var(--paper) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:72px}.current-project-context>div{min-height:38px;color:var(--muted);align-items:center;gap:8px;font-size:.76rem;display:flex}.current-project-context strong{min-width:0;color:var(--ink-soft);font-size:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.current-project-context code{color:var(--muted);flex:none}.current-project-context button{color:var(--primary-strong);font-size:inherit;white-space:nowrap;align-items:center;gap:3px;margin-left:auto;font-weight:800;display:inline-flex}.project-context-enter-active,.project-context-leave-active{transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard)}.project-context-enter-from,.project-context-leave-to{opacity:0;transform:translateY(-4px)}.project-clear-filter{min-height:32px;padding:0 5px;text-decoration:none}.lightbox-status{color:var(--on-dark-muted);margin:9px 0 0;font-size:.76rem;line-height:1.45}.image-failure{color:var(--signal);flex-wrap:wrap;align-items:center;gap:6px;margin:13px 0 0;font-size:.79rem;line-height:1.5;display:flex}.image-failure button,.image-failure a{color:var(--primary-strong);font-size:inherit;text-underline-offset:3px;align-items:center;gap:3px;font-weight:800;text-decoration:underline;display:inline-flex}.mobile-case-overview{border:1px solid var(--border-soft);width:100%;min-height:44px;color:var(--ink-soft);border-radius:6px;margin-top:20px;text-decoration:none;display:none}.footer-next{color:var(--on-dark-muted);text-decoration:none}.hiring-standalone{min-height:calc(100svh - 72px)}.hiring-heading h1,.hiring-subhead h2,.hiring-contact h2{color:var(--ink);margin:0;font-family:Noto Serif SC,Songti SC,STSong,serif;line-height:1.18}.hiring-heading h1{font-size:clamp(1.9rem,4vw,3.35rem)}.hiring-summary,.hiring-evidence,.hiring-experience,.hiring-contact,.deferred-content-placeholder>div{border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface)}.hiring-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:22px 24px;display:grid}.hiring-summary p,.hiring-project-grid article>p,.hiring-evidence dd,.hiring-experience p,.hiring-contact p,.deferred-content-placeholder p{color:var(--muted);margin:0;line-height:1.72}.hiring-projects,.hiring-evidence,.hiring-experience,.hiring-contact{scroll-margin-top:96px}.hiring-subhead{justify-content:space-between;align-items:end;gap:18px;margin-bottom:14px;display:flex}.hiring-subhead h2,.hiring-contact h2{font-size:clamp(1.35rem,2.5vw,2rem)}.hiring-subhead .section-kicker{margin:0 0 5px}.hiring-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.hiring-project-grid article{border:1px solid var(--border-soft);border-top:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);min-width:0;box-shadow:var(--shadow-soft);flex-direction:column;padding:22px;display:flex}.hiring-project-meta{letter-spacing:.04em;font-size:.76rem;font-weight:800;color:var(--primary-strong)!important}.hiring-project-grid h3,.hiring-experience h3{color:var(--ink);margin:13px 0 8px;font-size:1.08rem;line-height:1.4}.hiring-role-fit{font-size:.86rem;font-weight:700;color:var(--ink-soft)!important;margin-top:14px!important}.hiring-version{align-items:center;gap:5px;font-size:.75rem;display:flex;margin-top:16px!important}.hiring-project-actions{flex-wrap:wrap;align-items:center;gap:9px 12px;margin-top:auto;padding-top:18px;display:flex}.hiring-project-actions a,.hiring-project-actions button{min-height:32px;color:var(--primary-strong);align-items:center;gap:4px;font-size:.78rem;font-weight:800;display:inline-flex}.hiring-project-actions button{border:1px solid var(--border-soft);background:var(--surface-strong);border-radius:5px;margin-left:auto;padding:0 8px}.hiring-evidence,.hiring-experience,.hiring-contact{padding:24px}.hiring-evidence dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:0;display:grid}.hiring-evidence dl>div{border-top:1px solid var(--border-soft);padding-top:12px}.hiring-evidence dt{color:var(--ink-soft);font-size:.84rem;font-weight:800}.hiring-evidence dd{margin:6px 0 0;font-size:.84rem}.hiring-experience>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.hiring-experience article{border-left:2px solid var(--primary);min-width:0;padding-left:13px}.hiring-experience time{color:var(--primary-strong);font-size:.76rem;font-weight:800}.hiring-experience p{font-size:.85rem}.hiring-contact{justify-content:space-between;align-items:center;gap:24px;display:flex}.hiring-contact>div:last-child{flex-wrap:wrap;gap:10px;display:flex}.deferred-content-placeholder>div{padding:28px}.deferred-content-placeholder h2{color:var(--ink);margin:6px 0 9px;font-size:clamp(1.3rem,2.4vw,1.8rem)}.deferred-content-placeholder .button{margin-top:18px}@media (width<=720px){.hiring-summary,.hiring-project-grid,.hiring-evidence dl,.hiring-experience>div{grid-template-columns:1fr}.hiring-subhead,.hiring-contact{flex-direction:column;align-items:flex-start}.hiring-contact>div:last-child{width:100%}.hiring-contact .button{flex:160px}.hiring-project-actions button{margin-left:0}}@media (hover:hover) and (pointer:fine){.back-to-top:after{content:attr(aria-label);width:max-content;max-width:190px;color:var(--on-dark);background:var(--night);opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border-radius:5px;padding:6px 8px;font-size:.72rem;font-weight:700;line-height:1.35;position:absolute;bottom:calc(100% + 9px);right:0;transform:translateY(3px)}.back-to-top:hover:after,.back-to-top:focus-visible:after{opacity:1;transform:translateY(0)}}summary:focus-visible{outline:3px solid var(--focus);outline-offset:4px;border-radius:4px}[data-section-heading]:focus-visible{outline:2px solid var(--focus);outline-offset:5px;border-radius:4px}@supports (content-visibility:auto){.credential-gallery,.sources-grid,.timeline-list,.internship-grid{content-visibility:auto;contain-intrinsic-size:auto 640px}}@media (hover:none),(pointer:coarse){.keyboard-tip{display:none}}@media (width>=1280px){.header-reading-context{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0 auto 0 8px;font-size:.74rem;display:block}}@media (width>=1500px){.side-section-nav{top:50%;left:max(20px, calc((100vw - var(--container)) / 2 - 124px));z-index:20;border:1px solid var(--border-soft);background:color-mix(in srgb, var(--paper) 90%, transparent);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:7px;gap:4px;padding:8px;display:grid;position:fixed;transform:translateY(-50%)}.side-section-nav a{color:var(--muted);border-radius:4px;align-items:center;gap:7px;padding:6px 8px;font-size:.73rem;font-weight:700;display:flex}.side-section-nav a span{color:var(--primary-strong);font-variant-numeric:tabular-nums}.side-section-nav a.active,.side-section-nav a:hover{color:var(--ink);background:var(--primary-soft)}}@media (width<=720px){.current-project-context{top:64px}.current-project-context>div{gap:6px;min-height:36px;font-size:.7rem}.current-project-context code{display:none}.current-project-context button{min-height:36px}.mobile-case-overview{display:inline-flex}.footer-next{justify-content:flex-start;width:100%}}:root{--motion-fast:.16s;--ease-standard:cubic-bezier(.22, 1, .36, 1);--title-copy-gap:.8rem}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-size-adjust:from-font}:where(.hero h1,.hero-statement,.split-head h2,.contact-grid h2,.case-heading h2,.hiring-heading h2,.supplement-layout h2,.credential-dialog-copy h2){text-wrap:balance}:where(.split-head>p,.contact-grid>p,.timeline-item p,.internship-card p,.case-heading>div>p:not(.section-kicker),.case-gallery-copy>p:not(.section-kicker),.case-grid li,.case-technical p){max-inline-size:34em}.case-heading h2+p,.case-gallery-copy h3+p,.credential-dialog-copy h2+p{margin-top:var(--title-copy-gap)}:where(code,kbd,.showcase-toolbar,.project-search-count,.footer-updated){font-variant-ligatures:none;font-variant-numeric:tabular-nums}:where(code,.showcase-toolbar){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.quickstart-command code{overscroll-behavior-inline:contain;border:1px solid var(--border-soft);min-width:0;max-width:100%;color:var(--ink-soft);background:var(--surface-strong);scrollbar-width:thin;scrollbar-color:var(--line) transparent;border-radius:6px;padding:9px 11px;line-height:1.55;display:block;overflow-x:auto}:where(.project-card h3,.timeline-item h3,.internship-card h3,.credential-content strong,.case-gallery-copy h3,.case-review-guide a,.contact-action strong,.footer-updated,dd){overflow-wrap:anywhere}:where(time,.credential-meta,.footer-updated,.github-data-note,.project-filter-status){font-variant-numeric:tabular-nums}:where(.attribution,.case-metrics small,.credential-material,.credential-relation,.contact-note,.footer-updated){line-height:1.6}.case-metrics a{cursor:pointer}.case-metrics a:focus-visible{z-index:1;outline-offset:4px}:where(.project-card,.credential-card,.case-gallery,.case-metrics a):focus-within{box-shadow:inset 0 0 0 2px var(--focus), var(--shadow-soft)}:where(.button,.project-card,.credential-card,.project-search-trigger,.project-compare-toggle,.project-filters button,.credential-filter,.project-tab,.gallery-thumbnails button,.contact-action,.footer-top){transition-timing-function:var(--ease-standard);transition-duration:var(--motion-fast)}:where(.button,.project-search-trigger,.project-compare-toggle,.project-filters button,.credential-filter,.project-tab,.contact-action):active{transform:translateY(0)scale(.985)}.gallery-thumbnails{counter-reset:gallery-thumbnail}.gallery-thumbnails button{counter-increment:gallery-thumbnail;position:relative}.gallery-thumbnails button:after{content:counter(gallery-thumbnail);border:1px solid color-mix(in srgb, var(--on-dark) 28%, transparent);min-width:1.35rem;color:var(--on-dark);background:color-mix(in srgb, var(--night) 78%, transparent);text-align:center;border-radius:999px;padding:2px 4px;font-size:.68rem;font-weight:800;line-height:1.1;position:absolute;bottom:5px;right:5px}.gallery-thumbnails button.active:after{border-color:var(--accent);color:var(--on-accent);background:var(--accent)}@media (hover:hover) and (pointer:fine){.project-shot{position:relative}.project-shot:after,.credential-card:not(.is-pending) .credential-preview:after{border:1px solid color-mix(in srgb, var(--on-dark) 28%, transparent);color:var(--on-dark);background:color-mix(in srgb, var(--night) 78%, transparent);opacity:0;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border-radius:5px;padding:6px 8px;font-size:.72rem;font-weight:800;position:absolute;bottom:12px;right:12px;transform:translateY(4px)}.project-shot:after{content:"查看案例"}.credential-card:not(.is-pending) .credential-preview:after{content:"查看原件"}.project-card:hover .project-shot:after,.project-card:focus-within .project-shot:after,.credential-card:hover .credential-preview:after,.credential-card:focus-within .credential-preview:after{opacity:1;transform:translateY(0)}.case-gallery-main>span{opacity:.88;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard)}.case-gallery-main:hover>span,.case-gallery-main:focus-visible>span{opacity:1;transform:translateY(-2px)}}@media (hover:none){.project-card:hover,.credential-card:hover,.contact-action:hover,.case-metrics a:hover{transform:none}.case-gallery-main>span{opacity:1}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.site-header,.credential-modal,.utility-modal{-webkit-backdrop-filter:none;backdrop-filter:none}}@media (update:slow){.site-header,.credential-modal,.utility-modal{-webkit-backdrop-filter:none;backdrop-filter:none}.hero-showcase,.project-card,.credential-card,.case-metrics article,.case-metrics a{box-shadow:var(--shadow-soft)}}[data-theme=dark] .section-dark{--grid-line:#f1f6f408}@media (prefers-contrast:more){.section-dark{--grid-line:#f1f6f41a}}@media (width>=721px) and (width<=960px){.site-header{gap:10px;padding-inline:22px}.site-nav{gap:0;font-size:.84rem}.site-nav a{padding-inline:8px}.header-download{justify-content:center;width:38px;min-width:38px;padding:0;font-size:0;position:relative}.header-download:after{content:"下载简历";color:var(--on-dark);background:var(--night);box-shadow:var(--shadow-soft);opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);white-space:nowrap;border-radius:5px;padding:6px 8px;font-size:.72rem;line-height:1;position:absolute;top:calc(100% + 8px);right:0;transform:translateY(-3px)}.header-download:hover:after,.header-download:focus-visible:after{opacity:1;transform:translateY(0)}}@media (width<=720px){.project-filters,.credential-filters,.project-tabs,.quickstart-command code{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.project-filters::-webkit-scrollbar{height:6px;display:block}.credential-filters::-webkit-scrollbar{height:6px;display:block}.project-tabs::-webkit-scrollbar{height:6px;display:block}.quickstart-command code::-webkit-scrollbar{height:6px;display:block}.project-filters::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.credential-filters::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.project-tabs::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.quickstart-command code::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.site-header{padding-right:max(18px, env(safe-area-inset-right));padding-left:max(18px, env(safe-area-inset-left))}.mobile-overlay{padding-right:max(0px, env(safe-area-inset-right));padding-left:max(0px, env(safe-area-inset-left))}.back-to-top{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom))}.project-search-trigger,.project-compare-toggle,.project-filters button,.credential-filter,.project-tab,.header-tools .tool-button,.hamburger,.mobile-menu-head button{min-height:44px}.project-compare-toggle{min-width:44px}.credential-dialog,.project-lightbox-dialog{height:100dvh}.utility-dialog{min-height:100dvh;max-height:100dvh;padding-right:max(20px, env(safe-area-inset-right));padding-left:max(20px, env(safe-area-inset-left));padding-bottom:max(26px, env(safe-area-inset-bottom))}.credential-modal .credential-close,.project-lightbox .credential-close{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));position:fixed}.project-toolbar-actions,.credential-toolbar-actions{flex-wrap:wrap;align-items:center}}@media (width<=360px){.site-header{gap:6px;padding-inline:14px}.header-tools{gap:4px}.project-toolbar-actions,.credential-toolbar-actions{width:100%}.project-search-trigger,.credential-sort{flex:auto}.project-filter-status,.credential-count{width:100%}.gallery-thumbnails{gap:6px}}@media (width<=900px) and (orientation:landscape){.credential-dialog figure{min-height:0;padding-block:56px 14px}.credential-dialog figure img{max-height:min(54svh,260px)}.project-lightbox figure img{max-height:calc(100svh - 90px)}}@media (forced-colors:active){.project-filters,.credential-filters,.project-tabs,.quickstart-command code{scrollbar-color:CanvasText Canvas}.gallery-thumbnails button:after,.project-shot:after,.credential-preview:after{color:canvastext;background:canvas;border-color:canvastext}}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body,.section-dark,.site-footer{color:#111!important;background:#fff!important}.section-dark :is(p,h2,h3,time,.section-kicker),.site-footer :is(p,a){color:#111!important}.mobile-overlay,.credential-modal,.project-lightbox,.utility-modal,.lightbox-nav,.credential-close{display:none!important}:where(.project-card,.credential-card,.case-gallery,.case-grid article,.case-technical article,.timeline-item,.internship-card){break-inside:avoid;page-break-inside:avoid}}
