@font-face{font-family:__Newsreader_39d0e4;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c.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:__Newsreader_39d0e4;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Newsreader_39d0e4;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Newsreader_39d0e4;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c.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:__Newsreader_39d0e4;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Newsreader_39d0e4;font-style:italic;font-weight:500;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Newsreader_39d0e4;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/eb251072d3b5478c.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:__Newsreader_39d0e4;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/e92f802bb57ccffe.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Newsreader_39d0e4;font-style:italic;font-weight:600;font-display:swap;src:url(/_next/static/media/4b9bb515ce6d026f.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Newsreader_39d0e4;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062.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:__Newsreader_39d0e4;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/665e920483964785.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Newsreader_39d0e4;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/5611c55482296524.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Newsreader_39d0e4;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062.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:__Newsreader_39d0e4;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/665e920483964785.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Newsreader_39d0e4;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/5611c55482296524.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Newsreader_39d0e4;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7088c2b12ccac062.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:__Newsreader_39d0e4;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/665e920483964785.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Newsreader_39d0e4;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5611c55482296524.p.woff2) format("woff2");unicode-range:u+00??,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}.__className_39d0e4{font-family:__Newsreader_39d0e4}.__variable_39d0e4{--font-display:"__Newsreader_39d0e4"}@font-face{font-family:__Figtree_7c5662;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Figtree_7c5662;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Figtree_7c5662;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Figtree_7c5662;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Figtree_7c5662;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Figtree_7c5662;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Figtree_7c5662;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Figtree_7c5662;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:__Figtree_Fallback_7c5662;src:local("Arial");ascent-override:94.32%;descent-override:24.82%;line-gap-override:0.00%;size-adjust:100.72%}.__className_7c5662{font-family:__Figtree_7c5662,__Figtree_Fallback_7c5662;font-style:normal}.__variable_7c5662{--font-body:"__Figtree_7c5662","__Figtree_Fallback_7c5662"}:root,[data-theme=light]{--bg:#f3f4f1;--surface:#fff;--surface-2:#f8f9f6;--text:#191c1a;--muted:#5d665f;--faint:#8a9289;--border:#e2e6e0;--border-strong:#d4d9d1;--accent:#0e7a58;--accent-strong:#0b5f45;--accent-soft:#e6f1ea;--on-accent:#fff;--amber:#b5730f;--amber-soft:#f8eddb;--danger:#b23a30;--shadow-sm:0 1px 2px rgba(24,40,33,.05);--shadow:0 14px 40px -22px rgba(24,40,33,.35),0 2px 6px -3px rgba(24,40,33,.08);--ring:rgba(14,122,88,.28)}[data-theme=dark]{--bg:#10120f;--surface:#181b17;--surface-2:#1e221d;--text:#e9ece7;--muted:#9aa49b;--faint:#6f786f;--border:#2a2f28;--border-strong:#363c34;--accent:#3bbd8b;--accent-strong:#56cfa0;--accent-soft:rgba(59,189,139,.13);--on-accent:#06130d;--amber:#e0a94f;--amber-soft:rgba(224,169,79,.13);--danger:#e97a70;--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow:0 18px 44px -24px rgba(0,0,0,.7);--ring:rgba(59,189,139,.32)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body),system-ui,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;transition:background-color .3s ease,color .3s ease}.bullet-item,.card,.resume,button,input,select,textarea{transition:background-color .3s ease,border-color .3s ease,color .3s ease}.wrap{max-width:960px;margin:0 auto;padding:28px 22px 96px}h1{font-size:clamp(2rem,4.4vw,3rem);line-height:1.08;letter-spacing:-.015em}h1,h2{font-family:var(--font-display),Georgia,serif;font-weight:500;margin:0 0 10px}h2{font-size:1.4rem;letter-spacing:-.01em}h3{font-size:1rem;font-weight:600;margin:0 0 6px}p{color:var(--muted);margin:0 0 4px}.serif-accent{font-family:var(--font-display),Georgia,serif;font-style:italic;color:var(--accent)}.eyebrow{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:12px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:.85rem}.err{color:var(--danger)}.err,.ok{font-size:.86rem}.ok,a{color:var(--accent)}a{text-decoration:none;font-weight:500}a:hover{text-decoration:underline}.topbar{display:flex;justify-content:flex-end;margin-bottom:6px}.toggle{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 14px 7px 12px;font-size:.82rem;color:var(--muted);font-weight:500;box-shadow:var(--shadow-sm)}.toggle:hover{border-color:var(--border-strong);transform:none;color:var(--text)}.toggle .ico{width:15px;height:15px;display:inline-block}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:26px;margin-bottom:18px;box-shadow:var(--shadow-sm);animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.card:nth-of-type(2){animation-delay:.05s}.card:nth-of-type(3){animation-delay:.1s}.card:nth-of-type(4){animation-delay:.15s}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:7px;font-weight:500}input,select,textarea{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;color:var(--text);font-family:var(--font-body),system-ui,sans-serif;font-size:.96rem;padding:12px 14px;resize:vertical}textarea{min-height:168px;line-height:1.55}input::placeholder,textarea::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 4px var(--ring)}button{font-family:var(--font-body),system-ui,sans-serif;font-weight:600;font-size:.92rem;cursor:pointer;border-radius:11px;padding:11px 20px;border:1px solid var(--border);background:var(--surface);color:var(--text);transition:transform .12s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:var(--border-strong)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ring)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);box-shadow:0 10px 24px -12px var(--accent)}button.ghost{background:transparent;border-color:var(--border)}button.small{padding:8px 14px;font-size:.83rem;border-radius:9px}.row{gap:10px;align-items:center}.row,.spread{display:flex;flex-wrap:wrap}.spread{justify-content:space-between;align-items:flex-start;gap:14px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:680px){.grid2{grid-template-columns:1fr}}.tabs{display:flex;gap:26px;margin:6px 0 22px;border-bottom:1px solid var(--border)}.tab{background:none;border-radius:0;padding:12px 2px;color:var(--muted);font-weight:600;font-size:.95rem;border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{transform:none;box-shadow:none;color:var(--text);border-color:transparent}.tab.active{border-bottom-color:var(--accent)}.tab.active,.tag{color:var(--accent)}.tag{font-size:.74rem;font-weight:600;background:var(--accent-soft);border-radius:999px;padding:3px 10px}.chip{font-size:.72rem;color:var(--muted);font-weight:500;border:1px solid var(--border);border-radius:7px;padding:3px 8px}.bullet-item,.chip{background:var(--surface-2)}.bullet-item{border:1px solid var(--border);border-radius:14px;padding:15px 17px;margin-bottom:11px}.bullet-item:hover{border-color:var(--border-strong)}.bullet-item .meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:9px}.bullet-item .txt{font-size:.94rem;color:var(--text)}.bullet-item .tags{margin-top:9px;display:flex;gap:6px;flex-wrap:wrap}.spinner{display:inline-block;width:15px;height:15px;border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentcolor;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px;margin-right:8px}@keyframes spin{to{transform:rotate(1turn)}}.resume{background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:28px}.resume .rh{font-family:var(--font-body),system-ui,sans-serif;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;border-bottom:1px solid var(--border);padding-bottom:6px;margin:24px 0 11px}.resume ul{margin:6px 0 0;padding-left:20px}.resume li{color:var(--text);font-size:.92rem;margin-bottom:7px}.resume .exp-head{font-weight:700;margin-top:13px}.resume .name{text-align:center;font-family:var(--font-display),Georgia,serif;font-weight:600;font-size:1.5rem}.resume .tagline{text-align:center;color:var(--muted);font-size:.9rem;margin-top:2px}.gaps{background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--amber) 26%,transparent);padding:16px 18px;border-radius:14px}.gaps-head{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--amber);margin-bottom:8px}.gaps ul{margin:0;padding-left:18px}.gaps li{color:var(--text);font-size:.9rem;margin-bottom:6px}.gate{max-width:440px;margin:12vh auto 0;text-align:left}@media (prefers-reduced-motion:reduce){*,.card{animation:none!important;transition:none!important}html{scroll-behavior:auto}}