style: two column selected work side-by-side

This commit is contained in:
Dejvino 2026-07-27 17:58:39 +02:00
parent 9d6f0e21a2
commit 5407e5133e
2 changed files with 466 additions and 185 deletions

View File

@ -18,16 +18,15 @@
{ {
"title": "AI-first Design System Guidance Tooling", "title": "AI-first Design System Guidance Tooling",
"description": [ "description": [
"Researched and prototyped an AI-first UI Toolkit guidance system leveraging Model Context Protocol (MCP), covering over 260 components and guideline documents in collaboration with 3 frontrunner UX designers.", "Researched and prototyped an AI-first UI Toolkit guidance system leveraging Model Context Protocol (MCP). The tool covered over 260 component guideline documents, code samples and development best practices. It was authored in collaboration with 3 frontrunner UX designers, scaling their expertise across multiple teams.",
"Created an automated code review bot leveraging this knowledge corpus, successfully trialed across 4 platform and app delivery teams to validate UI changes early in development." "Created an automated code review bot leveraging this knowledge corpus, successfully trialed across 4 platform and app delivery teams to validate UI changes early in development."
], ],
"date": "2025 2026" "date": "2025 2026"
}, },
{ {
"title": "Telemetry & Observability Stack Architecture", "title": "Telemetry Stack Architecture",
"description": [ "description": [
"Shaped product telemetry architecture spanning frontend UI, backend integration, and AI interaction streams.", "Shaped product telemetry architecture spanning frontend UI, backend integration, and AI interaction streams. Championed migration from legacy telemetry solutions to OpenTelemetry. Integrated Oracle APM for enterprise-grade performance monitoring.",
"Championed migration from legacy telemetry solutions to OpenTelemetry. Integrated Oracle APM for enterprise-grade performance monitoring.",
"Designed action-root hybrid sampling strategy to achieve a 92% telemetry volume reduction while preserving critical user-behavior signals.", "Designed action-root hybrid sampling strategy to achieve a 92% telemetry volume reduction while preserving critical user-behavior signals.",
"Delivered in-app trace visualizer, driving up telemetry adoption among teams." "Delivered in-app trace visualizer, driving up telemetry adoption among teams."
], ],

492
style.css
View File

@ -9,16 +9,37 @@
@keyframes pulse-trace { @keyframes pulse-trace {
0%, 100% { opacity: 0.3; }
50% { opacity: 1; } 0%,
100% {
opacity: 0.3;
}
50% {
opacity: 1;
}
} }
@keyframes scan-line { @keyframes scan-line {
0% { transform: translateX(-150%) skewX(-45deg); opacity: 0; } 0% {
10% { opacity: 0.5; } transform: translateX(-150%) skewX(-45deg);
20% { transform: translateX(150%) skewX(-45deg); opacity: 0; } opacity: 0;
100% { transform: translateX(150%) skewX(-45deg); opacity: 0; } }
10% {
opacity: 0.5;
}
20% {
transform: translateX(150%) skewX(-45deg);
opacity: 0;
}
100% {
transform: translateX(150%) skewX(-45deg);
opacity: 0;
}
} }
@ -28,20 +49,25 @@
max-height: 0; max-height: 0;
transform: scale(0.95); transform: scale(0.95);
} }
to { to {
opacity: 1; opacity: 1;
max-height: 1000px; /* Reduced to match content better and speed up animation */ max-height: 1000px;
/* Reduced to match content better and speed up animation */
transform: scale(1); transform: scale(1);
} }
} }
@keyframes shrink-fade-away { /* New animation for shrinking */ @keyframes shrink-fade-away {
/* New animation for shrinking */
from { from {
opacity: 1; opacity: 1;
max-height: 1000px; max-height: 1000px;
transform: scale(1); transform: scale(1);
} }
to { to {
opacity: 0; opacity: 0;
max-height: 0; max-height: 0;
@ -51,20 +77,30 @@
@keyframes avatar-color-shift { @keyframes avatar-color-shift {
/* Cyan phase */ /* Cyan phase */
0%, 100% { filter: grayscale(100%) sepia(100%) hue-rotate(230deg) saturate(1.4) brightness(1.0); } 0%,
100% {
filter: grayscale(100%) sepia(100%) hue-rotate(230deg) saturate(1.4) brightness(1.0);
}
/* Light Blue phase */ /* Light Blue phase */
45% { filter: grayscale(100%) sepia(100%) hue-rotate(160deg) saturate(1.1) brightness(1.0); } 45% {
filter: grayscale(100%) sepia(100%) hue-rotate(160deg) saturate(1.1) brightness(1.0);
}
} }
* { box-sizing: border-box; } * {
box-sizing: border-box;
}
body { body {
margin: 0; margin: 0;
font-family: var(--mono-font); font-family: var(--mono-font);
background-color: var(--bg-color); background-color: var(--bg-color);
background-image: radial-gradient(rgba(0, 243, 255, 0.15) 1px, transparent 1px); /* Grid background */ background-image: radial-gradient(rgba(0, 243, 255, 0.15) 1px, transparent 1px);
/* Grid background */
background-size: 24px 24px; background-size: 24px 24px;
color: var(--text-color); color: var(--text-color);
display: flex; display: flex;
@ -90,17 +126,15 @@ body {
padding: 24px; padding: 24px;
border: 0.2rem solid transparent; border: 0.2rem solid transparent;
overflow: hidden; overflow: hidden;
filter: drop-shadow(0 0 10px rgba(0, 243, 255, 0.3)) filter: drop-shadow(0 0 10px rgba(0, 243, 255, 0.3)) drop-shadow(0 0 30px rgba(0, 243, 255, 0.15));
drop-shadow(0 0 30px rgba(0, 243, 255, 0.15));
position: relative; position: relative;
transition: all 0.3s ease; transition: all 0.3s ease;
backface-visibility: hidden; /* Fixes potential text blur on rotated cards */ backface-visibility: hidden;
clip-path: polygon( /* Fixes potential text blur on rotated cards */
0 15px, 15px 0, clip-path: polygon(0 15px, 15px 0,
100% 0, 100% 0,
100% calc(100% - 15px), calc(100% - 15px) 100%, 100% calc(100% - 15px), calc(100% - 15px) 100%,
0 100% 0 100%);
);
} }
@ -112,8 +146,7 @@ body {
} }
.card:hover { .card:hover {
filter: drop-shadow(0 0 15px rgba(0, 243, 255, 0.5)) filter: drop-shadow(0 0 15px rgba(0, 243, 255, 0.5)) drop-shadow(0 0 50px rgba(0, 243, 255, 0.3));
drop-shadow(0 0 50px rgba(0, 243, 255, 0.3));
background: linear-gradient(var(--card-bg), var(--card-bg)) padding-box, background: linear-gradient(var(--card-bg), var(--card-bg)) padding-box,
linear-gradient(135deg, rgba(0, 243, 255, 0.8), rgba(255, 0, 255, 0.8)) border-box; linear-gradient(135deg, rgba(0, 243, 255, 0.8), rgba(255, 0, 255, 0.8)) border-box;
} }
@ -128,16 +161,56 @@ body {
border-radius: 4px !important; border-radius: 4px !important;
margin-right: 16px !important; margin-right: 16px !important;
} }
.hero { grid-column: span 3; transform: none; }
.interests-showcase { grid-column: span 3; transform: none; } .hero {
.hiring-toggle { grid-column: span 3; transform: none; } grid-column: span 3;
.selected-work { grid-column: span 3; transform: none; } transform: none;
body:not(.cv-mode) .personal { grid-column: span 3; transform: none; } }
.cv-mode .personal { grid-column: span 1; transform: none; }
.first-experience { grid-column: span 3; transform: none; } .interests-showcase {
.experience { grid-column: span 3; transform: none; } grid-column: span 3;
.skills { grid-column: span 3; transform: none; } transform: none;
.education { grid-column: span 2; transform: none; } }
.hiring-toggle {
grid-column: span 3;
transform: none;
}
.selected-work {
grid-column: span 3;
transform: none;
}
body:not(.cv-mode) .personal {
grid-column: span 3;
transform: none;
}
.cv-mode .personal {
grid-column: span 1;
transform: none;
}
.first-experience {
grid-column: span 3;
transform: none;
}
.experience {
grid-column: span 3;
transform: none;
}
.skills {
grid-column: span 3;
transform: none;
}
.education {
grid-column: span 2;
transform: none;
}
/* Shuffle Logic */ /* Shuffle Logic */
.avatar { .avatar {
@ -149,14 +222,38 @@ body {
border-radius: 4px !important; border-radius: 4px !important;
margin-right: 16px !important; margin-right: 16px !important;
} }
.hero { transform: none; }
.selected-work { transform: translate(2px, -2px); } .hero {
.personal { transform: translate(1px, -1px); } transform: none;
.hiring-toggle { transform: translate(-2px, 3px); } }
.first-experience { transform: translate(3px, -2px); }
.experience { transform: translate(3px, -2px); } .selected-work {
.skills { transform: translate(-3px, 4px); } transform: translate(2px, -2px);
.education { transform: translate(2px, 3px); } }
.personal {
transform: translate(1px, -1px);
}
.hiring-toggle {
transform: translate(-2px, 3px);
}
.first-experience {
transform: translate(3px, -2px);
}
.experience {
transform: translate(3px, -2px);
}
.skills {
transform: translate(-3px, 4px);
}
.education {
transform: translate(2px, 3px);
}
} }
@ -164,13 +261,18 @@ body {
.card { .card {
border-color: rgba(0, 243, 255, 0.3); border-color: rgba(0, 243, 255, 0.3);
} }
.card:hover { .card:hover {
border-color: rgba(0, 243, 255, 0.6); border-color: rgba(0, 243, 255, 0.6);
} }
} }
.profile { display: flex; align-items: center; gap: 32px; } .profile {
display: flex;
align-items: center;
gap: 32px;
}
.hero { .hero {
display: flex; display: flex;
@ -266,9 +368,23 @@ body {
white-space: nowrap; white-space: nowrap;
} }
.selected-work {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px 28px;
align-items: start;
}
.selected-work h2 {
grid-column: 1 / -1;
}
.selected-work .philosophy {
grid-column: 1 / -1;
}
.highlight-descriptions { .highlight-descriptions {
column-count: 2; column-count: 1;
column-gap: 24px;
} }
.highlight-description { .highlight-description {
@ -325,8 +441,8 @@ body {
} }
.card blockquote.philosophy { .card blockquote.philosophy {
margin: 1.5em 0 0 0; margin: 0.25em 0 0 0;
padding: 1rem 1.25rem; padding: 0.5rem 1.25rem;
border-left: 3px solid var(--accent-color); border-left: 3px solid var(--accent-color);
background: rgba(0, 243, 255, 0.03); background: rgba(0, 243, 255, 0.03);
font-style: italic; font-style: italic;
@ -427,9 +543,17 @@ body {
} }
/* Varying shades for tag cloud */ /* Varying shades for tag cloud */
.personal-tag:nth-child(3n+1) { opacity: 0.6; } .personal-tag:nth-child(3n+1) {
.personal-tag:nth-child(3n+2) { opacity: 0.8; } opacity: 0.6;
.personal-tag:nth-child(3n) { opacity: 1.0; } }
.personal-tag:nth-child(3n+2) {
opacity: 0.8;
}
.personal-tag:nth-child(3n) {
opacity: 1.0;
}
.hidden { .hidden {
display: none !important; display: none !important;
@ -462,12 +586,10 @@ body {
border: 1px solid rgba(0, 243, 255, 0.15); border: 1px solid rgba(0, 243, 255, 0.15);
padding: 20px; padding: 20px;
margin-top: 15px; margin-top: 15px;
clip-path: polygon( clip-path: polygon(0 10px, 10px 0,
0 10px, 10px 0,
100% 0, 100% 0,
100% calc(100% - 10px), calc(100% - 10px) 100%, 100% calc(100% - 10px), calc(100% - 10px) 100%,
0 100% 0 100%);
);
transition: all 0.3s ease; transition: all 0.3s ease;
} }
@ -485,9 +607,12 @@ body {
} }
.cv-item:last-child { margin-bottom: 0; } .cv-item:last-child {
margin-bottom: 0;
}
.cv-item-header, .cv-header { .cv-item-header,
.cv-header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: baseline; align-items: baseline;
@ -602,7 +727,10 @@ address.mono-addr span {
.link-grid { .link-grid {
list-style: none; padding: 0; display: grid; gap: 10px; list-style: none;
padding: 0;
display: grid;
gap: 10px;
} }
@ -613,7 +741,8 @@ address.mono-addr span {
padding: 8px; padding: 8px;
border-left: 3px solid var(--text-color); border-left: 3px solid var(--text-color);
color: var(--link-color); color: var(--link-color);
background: rgba(0, 243, 255, 0.15); /* Increased alpha for better visibility */ background: rgba(0, 243, 255, 0.15);
/* Increased alpha for better visibility */
text-align: center; text-align: center;
transition: all 0.2s ease; transition: all 0.2s ease;
border: 1px solid rgba(0, 243, 255, 0.3); border: 1px solid rgba(0, 243, 255, 0.3);
@ -640,8 +769,10 @@ address.mono-addr span {
.links::after { .links::after {
content: ""; content: "";
position: absolute; position: absolute;
top: 10px; right: 10px; top: 10px;
width: 10px; height: 10px; right: 10px;
width: 10px;
height: 10px;
background: var(--link-color); background: var(--link-color);
box-shadow: 0 0 15px 2px var(--link-color); box-shadow: 0 0 15px 2px var(--link-color);
border-radius: 50%; border-radius: 50%;
@ -677,12 +808,19 @@ address.mono-addr span {
} }
.switch input { opacity: 0; width: 0; height: 0; } .switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider { .slider {
position: absolute; position: absolute;
cursor: pointer; cursor: pointer;
top: 0; left: 0; right: 0; bottom: 0; top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(255, 0, 255, 0.2); background-color: rgba(255, 0, 255, 0.2);
transition: .4s; transition: .4s;
border: 1px solid var(--accent-color); border: 1px solid var(--accent-color);
@ -692,15 +830,21 @@ address.mono-addr span {
.slider:before { .slider:before {
position: absolute; position: absolute;
content: ""; content: "";
height: 12px; width: 12px; height: 12px;
left: 4px; bottom: 3px; width: 12px;
left: 4px;
bottom: 3px;
background-color: var(--accent-color); background-color: var(--accent-color);
transition: .4s; transition: .4s;
box-shadow: 0 0 10px var(--accent-color); box-shadow: 0 0 10px var(--accent-color);
} }
input:checked + .slider { background-color: rgba(0, 243, 255, 0.2); border-color: var(--text-color); } input:checked+.slider {
background-color: rgba(0, 243, 255, 0.2);
border-color: var(--text-color);
}
input:checked+.slider:before { input:checked+.slider:before {
transform: translateX(20px); transform: translateX(20px);
background-color: var(--text-color); background-color: var(--text-color);
@ -710,7 +854,8 @@ input:checked + .slider:before {
.avatar { .avatar {
width: 120px; width: 120px;
height: 160px; /* Explicit height for aspect ratio 3:4 */ height: 160px;
/* Explicit height for aspect ratio 3:4 */
object-fit: cover; object-fit: cover;
border: 1px solid var(--text-color); border: 1px solid var(--text-color);
animation: avatar-color-shift 20s infinite linear; animation: avatar-color-shift 20s infinite linear;
@ -742,14 +887,28 @@ h2 {
} }
a { color: var(--link-color); text-decoration: none; } a {
color: var(--link-color);
text-decoration: none;
}
@media (max-width: 768px) { @media (max-width: 768px) {
.bento-grid { grid-template-columns: 1fr; } .bento-grid {
.profile, .about, .interests, .links, .contact, grid-template-columns: 1fr;
.first-experience, .experience, .skills, .education { }
.profile,
.about,
.interests,
.links,
.contact,
.first-experience,
.experience,
.skills,
.education {
grid-column: span 1; grid-column: span 1;
} }
.avatar { .avatar {
display: block !important; display: block !important;
max-width: 80px !important; max-width: 80px !important;
@ -759,20 +918,46 @@ a { color: var(--link-color); text-decoration: none; }
border-radius: 4px !important; border-radius: 4px !important;
margin-right: 16px !important; margin-right: 16px !important;
} }
.profile { flex-direction: column; text-align: center; }
.hero { flex-direction: column; text-align: center; } .profile {
.hero-identity { flex-direction: column; text-align: center; } flex-direction: column;
.hero-contacts, .hero-nav { justify-content: center; } text-align: center;
.pill { white-space: normal; gap: 4px 6px; padding: 5px 10px; } }
.pill-url { display: inline; }
.hero {
flex-direction: column;
text-align: center;
}
.hero-identity {
flex-direction: column;
text-align: center;
}
.hero-contacts,
.hero-nav {
justify-content: center;
}
.pill {
white-space: normal;
gap: 4px 6px;
padding: 5px 10px;
}
.pill-url {
display: inline;
}
} }
/* Tamed Cyberpunk Overrides for CV Mode */ /* Tamed Cyberpunk Overrides for CV Mode */
body.cv-mode { body.cv-mode {
--bg-color: #0d0e12; --bg-color: #0d0e12;
--text-color: #cbd5e1; /* slaty blue-gray */ --text-color: #cbd5e1;
/* slaty blue-gray */
--accent-color: #00d2ff; --accent-color: #00d2ff;
--secondary-accent: #f472b6; /* modern pink/magenta */ --secondary-accent: #f472b6;
/* modern pink/magenta */
--card-bg: #15171e; --card-bg: #15171e;
background-image: background-image:
linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px), linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px),
@ -808,7 +993,9 @@ body.cv-mode {
background: var(--card-bg) !important; background: var(--card-bg) !important;
} }
.cv-mode h1, .cv-mode h2, .cv-mode h3 { .cv-mode h1,
.cv-mode h2,
.cv-mode h3 {
font-family: inherit; font-family: inherit;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: normal; letter-spacing: normal;
@ -879,20 +1066,35 @@ body.cv-mode {
/* Print mode */ /* Print mode */
/* Condensed Print Mode - White Background */ /* Condensed Print Mode - White Background */
@media print { @media print {
.print-button { display: none !important; } .print-button {
/* Ensure hidden elements stay hidden in print */
.hidden { display: none !important; }
.cv-mode .hidden { display: none !important; }
/* Hide CV content unless CV mode is active */
.cv-container, .cv-section {
display: none !important; display: none !important;
} }
.cv-mode .cv-container, .cv-mode .cv-section {
/* Ensure hidden elements stay hidden in print */
.hidden {
display: none !important;
}
.cv-mode .hidden {
display: none !important;
}
/* Hide CV content unless CV mode is active */
.cv-container,
.cv-section {
display: none !important;
}
.cv-mode .cv-container,
.cv-mode .cv-section {
display: block !important; display: block !important;
} }
/* Hide navigation card in print */ /* Hide navigation card in print */
.card.links { display: none !important; } .card.links {
display: none !important;
}
* { * {
box-sizing: border-box; box-sizing: border-box;
background: transparent !important; background: transparent !important;
@ -933,9 +1135,15 @@ body.cv-mode {
} }
/* Hide interactive elements */ /* Hide interactive elements */
.cv-toggle-container, .hiring-toggle, .switch, .cv-toggle-container,
.link-grid, .links::after, .profile::before, .hiring-toggle,
.hiring-cta, .hiring-btn, .cv-section::after { .switch,
.link-grid,
.links::after,
.profile::before,
.hiring-cta,
.hiring-btn,
.cv-section::after {
display: none !important; display: none !important;
} }
@ -946,6 +1154,7 @@ body.cv-mode {
gap: 8px; gap: 8px;
width: 100% !important; width: 100% !important;
} }
.contact .link-grid a { .contact .link-grid a {
flex: 1 1 0 !important; flex: 1 1 0 !important;
min-width: 80px; min-width: 80px;
@ -958,6 +1167,7 @@ body.cv-mode {
flex-wrap: wrap; flex-wrap: wrap;
gap: 4px; gap: 4px;
} }
address.mono-addr span { address.mono-addr span {
display: inline-block !important; display: inline-block !important;
margin-right: 8px; margin-right: 8px;
@ -968,14 +1178,17 @@ body.cv-mode {
/* Span more columns in the grid for a wider layout */ /* Span more columns in the grid for a wider layout */
grid-column: span 3 !important; grid-column: span 3 !important;
} }
/* Removed duplicate flex layout for .contact .link-grid */ /* Removed duplicate flex layout for .contact .link-grid */
/* Pill links in print show label + URL clearly */ /* Pill links in print show label + URL clearly */
.hero-contacts, .hero-nav { .hero-contacts,
.hero-nav {
display: flex !important; display: flex !important;
flex-wrap: wrap !important; flex-wrap: wrap !important;
gap: 6px !important; gap: 6px !important;
} }
.pill { .pill {
display: inline-flex !important; display: inline-flex !important;
align-items: center !important; align-items: center !important;
@ -988,9 +1201,11 @@ body.cv-mode {
text-decoration: none !important; text-decoration: none !important;
font-size: 0.75rem !important; font-size: 0.75rem !important;
} }
.pill .pill-icon { .pill .pill-icon {
display: none !important; display: none !important;
} }
.pill .pill-url { .pill .pill-url {
display: inline !important; display: inline !important;
opacity: 1 !important; opacity: 1 !important;
@ -998,6 +1213,7 @@ body.cv-mode {
font-size: 0.7rem !important; font-size: 0.7rem !important;
margin-left: 4px !important; margin-left: 4px !important;
} }
.pill-cv-only-print { .pill-cv-only-print {
display: inline-flex !important; display: inline-flex !important;
} }
@ -1005,7 +1221,10 @@ body.cv-mode {
/* CV Container hidden unless CV mode */ /* CV Container hidden unless CV mode */
/* Reset animations */ /* Reset animations */
.reveal, .fade-out, .tag, img { .reveal,
.fade-out,
.tag,
img {
animation: none !important; animation: none !important;
transition: none !important; transition: none !important;
filter: grayscale(100%) !important; filter: grayscale(100%) !important;
@ -1013,7 +1232,9 @@ body.cv-mode {
} }
/* Show content */ /* Show content */
.experience, .skills, .education { .experience,
.skills,
.education {
display: block !important; display: block !important;
opacity: 1 !important; opacity: 1 !important;
max-height: none !important; max-height: none !important;
@ -1033,6 +1254,7 @@ body.cv-mode {
filter: none !important; filter: none !important;
margin-right: 16px !important; margin-right: 16px !important;
} }
.profile { .profile {
display: flex !important; display: flex !important;
align-items: center !important; align-items: center !important;
@ -1047,6 +1269,7 @@ body.cv-mode {
flex-direction: column !important; flex-direction: column !important;
gap: 12px !important; gap: 12px !important;
} }
.hero-identity { .hero-identity {
display: flex !important; display: flex !important;
flex-direction: row !important; flex-direction: row !important;
@ -1056,32 +1279,42 @@ body.cv-mode {
/* Selected Work highlights give titles and items room */ /* Selected Work highlights give titles and items room */
.selected-work {
display: block !important;
}
.highlight-item { .highlight-item {
margin: 12px 0 !important; margin: 12px 0 !important;
padding: 8px 0 !important; padding: 8px 0 !important;
border-bottom: 1px solid #eee !important; border-bottom: 1px solid #eee !important;
border-left: none !important; border-left: none !important;
} }
.highlight-item:last-child { .highlight-item:last-child {
border-bottom: none !important; border-bottom: none !important;
} }
.highlight-item h3 { .highlight-item h3 {
font-size: 13px !important; font-size: 13px !important;
margin: 0 0 4px 0 !important; margin: 0 0 4px 0 !important;
} }
.highlight-subtitle { .highlight-subtitle {
font-size: 0.85em !important; font-size: 0.85em !important;
margin: 0 0 6px 0 !important; margin: 0 0 6px 0 !important;
font-style: italic !important; font-style: italic !important;
} }
.highlight-descriptions { .highlight-descriptions {
column-count: 1 !important; column-count: 1 !important;
} }
.highlight-description { .highlight-description {
font-size: 0.9em !important; font-size: 0.9em !important;
margin: 0 !important; margin: 0 !important;
line-height: 1.5 !important; line-height: 1.5 !important;
} }
/* Links grid */ /* Links grid */
.link-grid a { .link-grid a {
color: #000 !important; color: #000 !important;
@ -1112,7 +1345,10 @@ body.cv-mode {
font-weight: bold !important; font-weight: bold !important;
} }
h3, h4, h5, h6 { h3,
h4,
h5,
h6 {
font-size: 10px !important; font-size: 10px !important;
margin: 4px 0 !important; margin: 4px 0 !important;
color: #000 !important; color: #000 !important;
@ -1134,13 +1370,28 @@ body.cv-mode {
} }
/* Condensed spacing */ /* Condensed spacing */
.card h1 { margin: 0 0 4px 0 !important; } .card h1 {
.card h2 { margin: 4px 0 8px 0 !important; } margin: 0 0 4px 0 !important;
.card p { margin: 4px 0 !important; font-size: 0.9em !important; } }
.card li { margin: 2px 0 !important; font-size: 0.9em !important; }
.card h2 {
margin: 4px 0 8px 0 !important;
}
.card p {
margin: 4px 0 !important;
font-size: 0.9em !important;
}
.card li {
margin: 2px 0 !important;
font-size: 0.9em !important;
}
/* Remove gradients and shadows */ /* Remove gradients and shadows */
.profile .links { display: none !important; } .profile .links {
display: none !important;
}
/* Ensure images don't take too much space */ /* Ensure images don't take too much space */
img { img {
@ -1156,11 +1407,18 @@ body.cv-mode {
} }
/* Reduce page breaks */ /* Reduce page breaks */
.card { page-break-inside: avoid !important; } .card {
page-break-inside: avoid !important;
}
/* Ensure hidden elements stay hidden in print */ /* Ensure hidden elements stay hidden in print */
.hidden { display: none !important; } .hidden {
.cv-mode .hidden { display: none !important; } display: none !important;
}
.cv-mode .hidden {
display: none !important;
}
/* Render interests as horizontal pills in print */ /* Render interests as horizontal pills in print */
.personal-tags { .personal-tags {
@ -1168,6 +1426,7 @@ body.cv-mode {
flex-wrap: wrap !important; flex-wrap: wrap !important;
gap: 4px !important; gap: 4px !important;
} }
.personal-tag { .personal-tag {
display: inline-flex !important; display: inline-flex !important;
align-items: center !important; align-items: center !important;
@ -1208,7 +1467,12 @@ body.cv-mode {
margin-bottom: 24px; margin-bottom: 24px;
} }
.interests-nav h2 { margin-top: 0; font-size: 0.75rem; margin-bottom: 16px; } .interests-nav h2 {
margin-top: 0;
font-size: 0.75rem;
margin-bottom: 16px;
}
.interests-nav ul { .interests-nav ul {
list-style: none; list-style: none;
padding: 0; padding: 0;
@ -1229,7 +1493,10 @@ body.cv-mode {
color: var(--text-color); color: var(--text-color);
} }
.interests-nav li:hover { background: rgba(0, 243, 255, 0.15); border-color: rgba(0, 243, 255, 0.4); } .interests-nav li:hover {
background: rgba(0, 243, 255, 0.15);
border-color: rgba(0, 243, 255, 0.4);
}
.interests-nav li.active { .interests-nav li.active {
background: var(--accent-color); background: var(--accent-color);
@ -1259,9 +1526,14 @@ body.cv-mode {
position: absolute; position: absolute;
inset: 0; inset: 0;
padding: 30px; padding: 30px;
color: #fff; /* Changed to white for dark backgrounds */ color: #fff;
/* Changed to white for dark backgrounds */
}
.interest-slide.active {
display: flex;
animation: interestFadeIn 0.4s ease-out;
} }
.interest-slide.active { display: flex; animation: interestFadeIn 0.4s ease-out; }
.interest-slide img { .interest-slide img {
position: absolute; position: absolute;
@ -1287,4 +1559,14 @@ body.cv-mode {
text-shadow: 0 0 10px #000, 0 0 20px #000; text-shadow: 0 0 10px #000, 0 0 20px #000;
} }
@keyframes interestFadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } } @keyframes interestFadeIn {
from {
opacity: 0;
transform: translateY(5px);
}
to {
opacity: 1;
transform: translateY(0);
}
}