*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0b0e;margin:0}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Courier New,monospace}.app{--accent:oklch(60% .17 152);--accent-blue:oklch(60% .12 230);--accent-contrast:#06170d;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg:#0a0b0e;--glow1:radial-gradient(circle, oklch(55% .14 152/.16) 0%, oklch(55% .14 152/.05) 45%, transparent 70%);--glow2:radial-gradient(circle, oklch(50% .11 230/.15) 0%, oklch(50% .11 230/.05) 45%, transparent 70%);--nav-bg:oklch(13% .004 260/.65);--border:oklch(100% 0 0/.08);--text:#f2f3f5;--text-soft:#c6cad2;--muted:#a9adb6;--card-bg:oklch(20% .01 260/.45);--card-border:oklch(100% 0 0/.04);--card-shadow:0 18px 50px -12px oklch(0% 0 0/.55), 0 2px 8px oklch(0% 0 0/.3);--card-shadow-hover:0 30px 74px -14px oklch(0% 0 0/.68), 0 6px 16px oklch(0% 0 0/.42);--chip-bg:oklch(100% 0 0/.06);--chip-hover:oklch(100% 0 0/.13);--term-bar:oklch(17% .006 260/.7);--term-bar-active:oklch(26% .006 260/.92);--shadow:0 20px 60px oklch(0% 0 0/.4);--nav-link:#c8cad0}.app[data-theme=light]{--bg:#f4f5f7;--glow1:radial-gradient(circle, oklch(75% .12 152/.14) 0%, oklch(75% .12 152/.04) 45%, transparent 70%);--glow2:radial-gradient(circle, oklch(70% .1 230/.13) 0%, oklch(70% .1 230/.04) 45%, transparent 70%);--nav-bg:oklch(100% 0 0/.65);--border:oklch(0% 0 0/.08);--text:#16171a;--text-soft:#33363c;--muted:#5c606a;--card-bg:oklch(100% 0 0/.6);--card-border:oklch(0% 0 0/.03);--card-shadow:0 18px 44px -14px oklch(0% 0 0/.18), 0 2px 6px oklch(0% 0 0/.06);--card-shadow-hover:0 30px 62px -16px oklch(0% 0 0/.26), 0 6px 14px oklch(0% 0 0/.1);--chip-bg:oklch(0% 0 0/.04);--chip-hover:oklch(0% 0 0/.08);--term-bar:oklch(94% .003 260/.9);--term-bar-active:oklch(85% .004 260/.95);--shadow:0 20px 50px oklch(0% 0 0/.1);--nav-link:#4a4d54}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes lineAppear{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.001ms!important;animation-delay:0s!important}}.app{background:var(--bg);min-height:100vh;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;transition:background .25s;position:relative;overflow-x:clip}.bg-glow{z-index:0;pointer-events:none;border-radius:50%;width:900px;height:900px;position:fixed}.bg-glow-1{background:var(--glow1);top:-35%;left:-25%}.bg-glow-2{background:var(--glow2);top:5%;right:-30%}.nav{z-index:50;background:var(--nav-bg);-webkit-backdrop-filter:blur(20px)saturate(160%);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px clamp(20px,3vw,36px);transition:background .25s,border-color .25s;display:flex;position:sticky;top:0}.nav-brand{font-family:var(--mono);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;margin-left:-6px;padding:5px 10px;font-size:15px;font-weight:600;transition:background .2s;display:flex}.nav-brand:hover{background:var(--chip-bg)}.nav-brand-prefix{color:var(--accent)}.nav-links{flex-wrap:wrap;align-items:center;gap:clamp(14px,2vw,26px);font-size:14px;display:flex}.btn-linkedin{color:#fff;background:#0a66c2;border-radius:999px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 2px 10px oklch(50% .14 255/.35)}.btn-linkedin:hover{background:#004182;transform:translateY(-1px);box-shadow:0 6px 18px oklch(50% .14 255/.45)}.btn-linkedin-sm{box-shadow:none;padding:7px 14px;font-size:13px}.btn-linkedin-sm:hover{box-shadow:0 4px 12px oklch(50% .14 255/.4)}.btn-primary{background:var(--accent);color:var(--accent-contrast);border-radius:999px;padding:8px 16px;font-size:13.5px;font-weight:600;text-decoration:none;transition:transform .2s,filter .2s}.btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.layout{z-index:1;flex-wrap:wrap;align-items:flex-start;gap:24px;max-width:1400px;margin:0 auto;padding:clamp(24px,3vw,40px) clamp(20px,3vw,36px) 48px;display:flex;position:relative}.hero{flex-direction:column;flex:0 40%;gap:16px;min-width:280px;display:flex}@media (width>=900px){.hero{scrollbar-width:none;max-height:calc(100vh - 88px);margin:-14px;padding:14px;position:sticky;top:74px;overflow-y:auto}.hero::-webkit-scrollbar{display:none}.hero>*{flex-shrink:0}}.main-col{flex-direction:column;flex:55%;gap:24px;min-width:320px;display:flex}.hero-intro{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.hero-avatar{border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:88px;height:88px;overflow:hidden}.hero-avatar img{object-fit:cover;width:100%;height:100%;display:block}.hero-name{font-family:var(--mono);letter-spacing:-.02em;color:var(--text);text-wrap:balance;margin:0;font-size:clamp(21px,2.2vw,27px);font-weight:700}.hero-name-hash{color:var(--accent)}.hero-role{color:var(--muted);margin-top:6px;font-size:13.5px}.hero-about{color:var(--text-soft);text-align:center;text-wrap:pretty;margin:0;font-size:14px;line-height:1.55}.term-card{text-align:left;background:var(--card-bg);-webkit-backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--border);border-radius:16px;width:100%;transition:box-shadow .3s,border-color .3s;overflow:hidden}.term-card.focused{border-color:var(--border)}.term-bar{background:var(--term-bar);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:11px 14px;transition:background .2s,border-color .2s,box-shadow .2s;display:flex}.term-bar.reopen{cursor:pointer}.term-bar.reopen:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.term-card.focused .term-bar{background:var(--term-bar-active);box-shadow:inset 0 1px oklch(100% 0 0/.08)}.term-card.focused .term-title{color:var(--text)}.tl{cursor:pointer;appearance:none;background:oklch(60% 0 0/.35);border:0;border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;padding:0;transition:transform .15s,filter .15s,box-shadow .15s,background .2s;display:flex}.term-card.focused .tl-close,.term-card:hover .tl-close{background:#ff5f57}.term-card.focused .tl-min,.term-card:hover .tl-min{background:#febc2e}.term-card.focused .tl-max,.term-card:hover .tl-max{background:#28c840}.tl:hover{filter:brightness(1.08)saturate(1.08);transform:scale(1.16)}.tl:active{filter:brightness(.96)saturate(1.05);transform:scale(.9)}.tl:focus-visible{outline:2px solid var(--accent);outline-offset:3px;box-shadow:0 0 0 4px oklch(60% .17 152/.18)}.tl-glyph{opacity:0;font-weight:700;line-height:1;transition:opacity .15s}.term-card:hover .tl-glyph,.tl:focus-visible .tl-glyph{opacity:1}.tl-close .tl-glyph{color:#7a0a00;font-size:9px}.tl-min .tl-glyph{color:#7a4b00;font-size:11px}.tl-max .tl-glyph{color:#0a5a12;font-size:8px}.term-title{font-family:var(--mono);color:var(--muted);margin-left:6px;font-size:11px}.term-body{font-family:var(--mono);min-height:172px;padding:14px 18px;font-size:13px;line-height:1.45}.term-line{word-break:break-word;margin-bottom:1px}.term-line.boot-line{opacity:0;animation:.22s forwards lineAppear}.term-text{white-space:pre-wrap;word-break:break-word;color:var(--text)}.term-out.term-text{color:var(--muted)}.term-prompt{color:var(--accent)}.term-out{color:var(--muted);padding-left:2px}.term-cursor{background:var(--text);vertical-align:middle;width:6px;height:13px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}.term-cursor-inline{flex-shrink:0;margin-left:3px}.term-placeholder{color:var(--muted)}.term-history-entry{word-break:break-word;margin-top:6px}.term-prompt-inline{white-space:nowrap;flex-shrink:0}.term-hint{color:var(--muted);margin-top:8px;margin-bottom:2px;font-size:11.5px;font-style:italic}.term-input-row{cursor:text;align-items:center;gap:6px;margin-top:6px;display:flex}.term-input-row-ready{opacity:0;animation:.22s .26s forwards lineAppear}.term-input{min-width:0;color:var(--text);font-family:var(--mono);caret-color:var(--accent);background:0 0;border:none;outline:none;flex:1;font-size:13.5px}.term-input-idle{opacity:0;pointer-events:none;flex:0 0 0;width:0}.skills-card{background:var(--card-bg);-webkit-backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--card-border);border-radius:18px;width:100%;padding:clamp(12px,1.7vw,16px);transition:border-color .28s;box-shadow:inset 0 1px oklch(100% 0 0/.06)}.skills-card:hover{border-color:var(--border)}.skills-groups{flex-direction:column;display:flex}.skills-group{border-bottom:1px dotted oklch(62% .07 230/.28);grid-template-columns:minmax(114px,.21fr) 1fr;align-items:start;gap:8px;padding:7px 0;transition:border-color .18s;display:grid}.skills-group:last-child{border-bottom:0}.skills-group:hover{border-color:oklch(60% .17 152/.38)}.skills-label{color:var(--text);white-space:nowrap;padding-top:0;font-family:inherit;font-size:14px;font-weight:600;line-height:1.55}.skills-chips{flex-wrap:wrap;align-items:center;gap:3px 0;min-width:0;display:flex}.skill-sequence{align-items:center;display:inline-flex}.skill-token{color:var(--text-soft);background:0 0;border:0;border-radius:0;padding:0;font-family:inherit;font-size:14px;line-height:1.55;transition:color .18s;display:inline}.skill-token:hover{color:var(--text)}.skill-divider{color:var(--muted);margin:0 6px;font-family:inherit;font-size:14px;line-height:1.55}.chip{background:var(--chip-bg);border:1px solid var(--border);color:var(--text-soft);font-size:12px;font-family:var(--mono);border-radius:999px;padding:4px 10px;transition:color .18s,background .18s,border-color .18s,transform .18s,box-shadow .18s;position:relative}.chip:hover{color:var(--text);background:var(--chip-hover);border-color:oklch(60% .17 152/.32);transform:translateY(-1px)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.section-heading{font-family:var(--mono);color:var(--accent);margin-bottom:12px;font-size:13px}.exp-list{flex-direction:column;gap:14px;display:flex}.edu-list{flex-direction:column;gap:12px;display:flex}.edu-card,.exp-card{background:var(--card-bg);-webkit-backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--card-border);box-shadow:var(--card-shadow);border-radius:18px;padding:clamp(18px,2.5vw,26px);transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s,border-color .28s}.edu-card:hover,.exp-card:hover{box-shadow:var(--card-shadow-hover);border-color:var(--border);transform:translateY(-5px)}.edu-card{padding:clamp(13px,1.8vw,18px)}.edu-card:hover{transform:translateY(-3px)}.edu-head,.exp-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.edu-head{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:12px}.exp-head-main{align-items:center;gap:14px;min-width:0;display:flex}.edu-logo,.exp-logo{object-fit:contain;filter:saturate(.85);background:#fff;border-radius:12px;flex-shrink:0;width:44px;height:44px;padding:6px;transition:filter .25s;box-shadow:0 2px 10px oklch(0% 0 0/.16)}.edu-logo{width:40px;height:40px;padding:5px}.edu-logo-fallback{background:var(--chip-bg);color:var(--accent);font-family:var(--mono);letter-spacing:.5px;filter:none;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:inline-flex}.edu-card:hover .edu-logo-fallback{filter:none}.edu-card:hover .edu-logo,.exp-card:hover .exp-logo{filter:saturate()}.edu-logo-link{border-radius:12px;flex-shrink:0;display:inline-flex}.edu-logo-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.edu-title-group{flex:1;min-width:0}.edu-title-row{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.edu-school,.exp-title{color:var(--text);font-size:17px;font-weight:600;display:block}.edu-school{font-size:16px}.edu-degree,.exp-company{color:var(--text-soft);margin-top:2px;font-size:14px;display:block}.edu-degree{font-size:13.5px;line-height:1.35}.edu-school,.edu-degree,.edu-dates{text-decoration:none;transition:color .18s}.edu-school:hover,.edu-degree:hover,.edu-dates:hover{color:var(--accent)}.edu-school:focus-visible,.edu-degree:focus-visible,.edu-dates:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.exp-location{color:var(--muted)}.edu-dates,.exp-dates{color:var(--muted);font-size:12.5px;font-family:var(--mono);white-space:nowrap}.edu-dates{flex-shrink:0}.edu-meta{color:var(--text-soft);flex-wrap:wrap;align-items:center;margin-top:6px;font-size:13px;line-height:1.45;display:flex}.edu-meta-item{align-items:baseline;display:inline-flex}.edu-meta strong{color:var(--text);font-weight:600}.edu-meta-divider{color:var(--muted);margin:0 7px}.edu-toggle{align-self:flex-start;margin-top:0}.exp-bullets{flex-direction:column;gap:7px;margin-top:12px;display:flex}.exp-bullet{color:var(--text-soft);gap:10px;font-size:14px;line-height:1.55;display:flex}.exp-bullet-marker{color:var(--accent-blue);font-family:var(--mono);flex-shrink:0}.exp-toggle{font-family:var(--mono);color:var(--accent);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;margin-top:10px;margin-left:-8px;padding:5px 8px;font-size:12.5px;transition:color .18s,background .18s,border-color .18s,transform .18s;display:inline-flex}.exp-toggle:hover{background:var(--chip-bg);border-color:var(--border)}.exp-toggle:active{background:var(--chip-hover);transform:translateY(1px)}.exp-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;background:var(--chip-bg);border-color:oklch(60% .17 152/.42)}.exp-toggle[aria-expanded=true]{color:var(--accent-blue)}.exp-featured{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;display:flex}.exp-featured-label{color:var(--muted);align-self:center;font-size:12.5px}.exp-featured .chip{color:var(--muted);font-family:inherit;font-size:12.5px}.chip-link{cursor:pointer;align-items:center;gap:5px;text-decoration:none;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.chip-link:hover{color:var(--accent);border-color:var(--accent);background:var(--chip-hover)}.chip-link-icon{opacity:.6;transition:opacity .2s,transform .2s}.chip-link:hover .chip-link-icon{opacity:1;transform:translate(1px,-1px)}.contact-card{background:var(--card-bg);-webkit-backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;display:flex}.contact-text{flex-direction:column;gap:3px;min-width:0;display:flex}.contact-title{color:var(--text);margin:0;font-size:15px;font-weight:600}.contact-blurb{color:var(--muted);text-wrap:pretty;margin:0;font-size:13px;line-height:1.45}.contact-linkedin{flex-shrink:0;align-items:center;gap:8px;padding:9px 16px;font-size:13px;display:inline-flex}.contact-linkedin:hover{transform:translateY(-2px)}@media (width<=899px){.layout{flex-flow:column;align-items:stretch;gap:24px}.hero,.main-col{display:contents}.hero-intro{order:1}.hero-about{order:2}.term-card{order:3}#education{order:4}#experience{order:5}#skills{order:6}#contact{order:7}}@media (width<=600px){.bg-glow{width:560px;height:560px}.hero-intro{text-align:left;flex-direction:row;gap:16px}.hero-avatar{width:64px;height:64px}.hero-about{text-align:left}.skills-card{padding:4px 10px}.skills-card:hover{box-shadow:inset 0 1px oklch(100% 0 0/.06)}.skills-group{grid-template-columns:1fr;gap:5px;padding:7px 0}.skills-label{padding-top:0}.edu-card{padding:12px 14px}.edu-head{align-items:flex-start;gap:10px}.edu-logo{width:36px;height:36px;padding:5px}.edu-title-row{gap:2px 10px}.edu-meta{flex-direction:column;align-items:flex-start;gap:2px;margin-top:5px;font-size:12.5px;line-height:1.45}.edu-meta-item{align-items:baseline}.edu-meta-divider{display:none}.skill-divider{margin:0 5px}.term-input{font-size:16px}.term-body{font-size:12.5px}.exp-dates{white-space:normal}.exp-logo{width:40px;height:40px}.edu-card:hover,.exp-card:hover{transform:none}.contact-card{text-align:center;flex-direction:column;align-items:stretch;gap:14px}.contact-text{align-items:center}.contact-linkedin{justify-content:center;align-self:stretch}}
