Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added assets/2026-01-tfs/profile_photos/kosta.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions bootcamps/software-development-tfs/2026-01/2026-01-tfs.json
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,24 @@
"JavaScript",
"React"
]
},
{
"name": "Kostia",
"role": "Full-stack Developer",
"github": "https://github.com/NureSemenenkoKostiantyn",
"linkedin": "https://www.linkedin.com/in/kostiantyn-semenenko-470a29239/",
"photo": "/assets/2026-01-tfs/profile_photos/kosta.jpg",
"description": "Full Stack Developer skilled in Java Spring Boot, NestJS, and React, with practical experience building scalable web applications and REST APIs. I enjoy writing clean, maintainable code, learning new technologies, and solving real-world problems while growing as a software engineer and contributing to impactful products.",
"portfolio_link": "https://github.com/NureSemenenkoKostiantyn",
"technologies": [
"Java",
"Spring Boot",
"NestJS",
"React.js",
"Angular",
"JavaScript",
"Docker"
]
}
]
}
280 changes: 280 additions & 0 deletions css/alumni/2026-01-tfs.css
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,286 @@
color: #a78bfa;
background-color: var(--color-black);
}

.card--kostia {
--k-bg-1: #121924;
--k-bg-2: #0b1017;

--k-text: #f3f6fb;
--k-muted: rgba(243, 246, 251, 0.78);

--k-gold: #d9b24c;
--k-gold-soft: rgba(217, 178, 76, 0.42);
--k-gold-faint: rgba(217, 178, 76, 0.16);

--k-grid: rgba(255, 255, 255, 0.065);
--k-scan: rgba(255, 255, 255, 0.035);

--k-shimmer-x: -60%;

position: relative;
overflow: hidden;
isolation: isolate;

background:
linear-gradient(
120deg,
transparent 0%,
rgba(217, 178, 76, 0) 34%,
rgba(217, 178, 76, 0.16) 50%,
rgba(217, 178, 76, 0) 66%,
transparent 100%
),
radial-gradient(
900px 300px at 18% -10%,
rgba(217, 178, 76, 0.12),
transparent 60%
),
/* deep base */ linear-gradient(180deg, var(--k-bg-1), var(--k-bg-2));

background-size:
220% 100%,
100% 100%,
100% 100%;
background-position:
var(--k-shimmer-x) 0%,
0 0,
0 0;

border: 1px solid var(--k-gold-soft);
box-shadow:
0 20px 52px rgba(0, 0, 0, 0.62),
inset 0 1px 0 rgba(255, 255, 255, 0.05),
inset 0 0 0 1px rgba(0, 0, 0, 0.35);

/* “elite” feel: slightly dominant but subtle */
transform: scale(1.02);

/* smooth */
transition:
transform 0.26s ease,
box-shadow 0.26s ease,
border-color 0.26s ease,
background-position 0.9s ease;

/* Typography tuning */
.card__name {
color: var(--k-text);
font-weight: 750;
letter-spacing: 0.35px;
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.55);
position: relative;
padding-top: 8px; /* room for label */
}

.card__role {
color: var(--k-muted);
text-transform: uppercase;
letter-spacing: 1.1px;
font-size: 0.84em;
font-family:
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace;
}

.card__description,
.card__link {
color: var(--k-muted);
}

.card__icon,
.card__link-icon {
fill: var(--k-text);
transition: 0.22s ease;
filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.55));
}
}

/* ===== Top edge glow strip (premium) ===== */
.card--kostia::after {
content: "";
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;

background:
linear-gradient(
90deg,
rgba(217, 178, 76, 0) 0%,
rgba(217, 178, 76, 0.18) 18%,
rgba(217, 178, 76, 0.26) 50%,
rgba(217, 178, 76, 0.18) 82%,
rgba(217, 178, 76, 0) 100%
)
top / 100% 2px no-repeat,
/* vignette */
radial-gradient(
120% 120% at 50% 20%,
transparent 40%,
rgba(0, 0, 0, 0.4) 100%
);

opacity: 0.95;
}

/* ===== Grid + scanlines + micro noise ===== */
.card--kostia::before {
content: "";
position: absolute;
inset: 0;
z-index: 0;
pointer-events: none;

background-image:
/* micro-grid */
linear-gradient(var(--k-grid) 1px, transparent 1px),
linear-gradient(90deg, var(--k-grid) 1px, transparent 1px),
/* scanlines */
repeating-linear-gradient(
0deg,
var(--k-scan) 0px,
var(--k-scan) 1px,
transparent 1px,
transparent 7px
),
/* soft diagonal grain */
repeating-linear-gradient(
135deg,
rgba(255, 255, 255, 0.04) 0px,
rgba(255, 255, 255, 0.04) 1px,
transparent 1px,
transparent 11px
);

background-size:
26px 26px,
26px 26px,
100% 100%,
100% 100%;

opacity: 0.62;
mix-blend-mode: overlay;
}

/* ===== Inner engineered frame (separate layer via children) ===== */
.card--kostia > * {
position: relative;
z-index: 2;
}

/* Add an inner frame using a shadow on the container itself */
.card--kostia {
box-shadow:
0 20px 52px rgba(0, 0, 0, 0.62),
0 0 24px rgba(217, 178, 76, 0.1),
inset 0 0 0 1px rgba(255, 255, 255, 0.04),
inset 0 0 0 12px rgba(0, 0, 0, 0.22),
inset 0 0 28px rgba(0, 0, 0, 0.75);
}

/* ===== Slate ID label (edit text if you want) ===== */
.card--kostia .card__name::before {
content: "KS-01 // DATA-SLATE";
position: absolute;
top: -10px;
left: 0;
font-size: 10px;
letter-spacing: 1.25px;
text-transform: uppercase;
color: rgba(243, 246, 251, 0.7);
font-family:
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace;
}

/* ===== Hover: luminous, but controlled ===== */
.card--kostia:hover {
--k-shimmer-x: 140%;

border-color: rgba(217, 178, 76, 0.7);

transform: translateY(-3px) scale(1.035);

box-shadow:
0 32px 82px rgba(0, 0, 0, 0.78),
0 0 34px rgba(217, 178, 76, 0.18),
inset 0 0 0 1px rgba(255, 255, 255, 0.06),
inset 0 0 0 12px rgba(0, 0, 0, 0.18),
inset 0 0 30px rgba(0, 0, 0, 0.78);
}

.card--kostia:hover .card__icon,
.card--kostia:hover .card__link-icon {
filter: drop-shadow(0 0 8px rgba(217, 178, 76, 0.45))
drop-shadow(1px 1px 0 rgba(0, 0, 0, 0.55));
transform: scale(1.12);
}

/* Keyboard focus looks premium too */
.card--kostia:focus-within {
border-color: rgba(217, 178, 76, 0.75);
box-shadow:
0 26px 64px rgba(0, 0, 0, 0.7),
0 0 0 3px rgba(217, 178, 76, 0.16),
inset 0 0 0 1px rgba(255, 255, 255, 0.06),
inset 0 0 0 12px rgba(0, 0, 0, 0.2),
inset 0 0 28px rgba(0, 0, 0, 0.78);
}

/* ===== Tech chips: machined tags (brighter) ===== */
.tech--kostia {
color: rgba(243, 246, 251, 0.92);

background: linear-gradient(
180deg,
rgba(21, 28, 38, 0.92),
rgba(12, 16, 23, 0.92)
);

border: 1px solid rgba(255, 255, 255, 0.12);

box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.05),
0 10px 22px rgba(0, 0, 0, 0.55);

letter-spacing: 0.35px;
transition: 0.22s ease;
}

.tech--kostia:hover {
border-color: rgba(217, 178, 76, 0.7);

background: linear-gradient(
180deg,
rgba(217, 178, 76, 0.12),
rgba(12, 16, 23, 0.92)
);

box-shadow:
0 14px 30px rgba(0, 0, 0, 0.72),
0 0 16px rgba(217, 178, 76, 0.14);
}

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce) {
.card--kostia {
transition: none;
background-position:
0 0,
0 0,
0 0;
}
.card--kostia:hover {
transform: scale(1.02);
}
.card--kostia .card__icon,
.card--kostia .card__link-icon,
.tech--kostia {
transition: none;
transform: none;
}
}
/* Kristy card styling */
.card--kristy {
background: linear-gradient(135deg, #ebb1dc, #f6d3ec);
Expand Down
19 changes: 13 additions & 6 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Technative Digital - Alumni</title>
<link rel="icon" type="image/x-icon" href="/assets/technative-favicon.ico">
<link
rel="icon"
type="image/x-icon"
href="/assets/technative-favicon.ico"
/>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta property="og:title" content="Alumni of TechNative Digital" />
<meta
Expand Down Expand Up @@ -122,20 +126,23 @@ <h3 class="card__bootcamp-name">
<img
src="./assets/2024-03-bc/technative-2024.jpg"
alt="A collage of developers during the software development bootcamp."
class="card__hero-image" style="object-position: center top;"
class="card__hero-image"
style="object-position: center top"
/>
</div>
<div class="card__body">
<h3 class="card__bootcamp-name">
Software Development -
Software Development -
<span class="bootcamp__subtitle"
>Bootcamp (March 2024)
</span>
</h3>
<p class="card__description">
This 16-week full time intensive Software Development
Bootcamp is designed for individuals with little to no previous coding experience.
The course focused on developing strong tech foundations and professional soft-skills while
This 16-week full time intensive Software
Development Bootcamp is designed for individuals
with little to no previous coding experience.
The course focused on developing strong tech
foundations and professional soft-skills while
working on various group projects using
technologies including React and Node.js.
</p>
Expand Down