0947e19c70
Replaced 12 hardcoded borders across 5 files: - _cv-section.css: 2 borders (company icons) - _projects.css: 2 borders (project icons) - _courses.css: 2 borders (course icons) - _toggles.css: 3 borders (logo containers) - logo-toggle.css: 3 borders (logo containers) All icon borders now use var(--icon-border): - Light theme: #ddd (visible) - Dark theme: transparent (invisible) Verified with Playwright: rgba(0,0,0,0) in dark theme
310 lines
6.0 KiB
CSS
310 lines
6.0 KiB
CSS
/* Sections */
|
|
.cv-section {
|
|
margin-bottom: 3rem;
|
|
page-break-inside: avoid;
|
|
}
|
|
|
|
/* Remove margin when section is collapsed */
|
|
.cv-section:has(details:not([open])) {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.section-title {
|
|
font-family: 'Quicksand', sans-serif;
|
|
font-size: 1.4em;
|
|
font-weight: 500;
|
|
line-height: 1.2em;
|
|
margin: 20px 0 25px 0;
|
|
padding: 0;
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
/* Collapsible Section Styles */
|
|
.cv-section details {
|
|
margin: 0;
|
|
}
|
|
|
|
.cv-section details summary ~ * {
|
|
overflow: hidden;
|
|
max-height: 0;
|
|
opacity: 0;
|
|
transform: translateY(-8px);
|
|
transition: max-height 0.5s ease-in-out,
|
|
opacity 0.3s ease-in-out,
|
|
transform 0.3s ease-in-out;
|
|
}
|
|
|
|
.cv-section details[open] summary ~ * {
|
|
max-height: 3000px;
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.cv-section summary {
|
|
cursor: pointer;
|
|
list-style: none;
|
|
user-select: none;
|
|
position: relative;
|
|
}
|
|
|
|
/* Remove default triangle marker in all browsers */
|
|
.cv-section summary::-webkit-details-marker,
|
|
.cv-section summary::marker {
|
|
display: none;
|
|
}
|
|
|
|
/* Add custom collapse indicator after the title */
|
|
.cv-section summary .section-title {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.cv-section summary .section-title::after {
|
|
content: '▼';
|
|
font-size: 0.8em;
|
|
color: var(--text-muted);
|
|
transition: transform 0.2s ease, opacity 0.2s ease;
|
|
opacity: 0;
|
|
margin-left: 0.5rem;
|
|
}
|
|
|
|
/* Show indicator on hover or when closed */
|
|
.cv-section summary:hover .section-title::after,
|
|
.cv-section details:not([open]) summary .section-title::after {
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Rotate indicator when closed */
|
|
.cv-section details:not([open]) summary .section-title::after {
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
/* Hover effect on summary */
|
|
.cv-section summary:hover .section-title {
|
|
color: var(--accent-blue);
|
|
}
|
|
|
|
.summary-text {
|
|
font-family: 'Quicksand', sans-serif;
|
|
line-height: 1.5;
|
|
text-align: justify;
|
|
font-size: 0.9em;
|
|
font-weight: 400;
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
/* Experience */
|
|
/* Experience item layout moved to logo-toggle.css */
|
|
|
|
.experience-header {
|
|
margin-bottom: 0.6rem;
|
|
}
|
|
|
|
.experience-title-line {
|
|
margin-bottom: 0.3em;
|
|
}
|
|
|
|
.position {
|
|
font-size: 1rem;
|
|
font-weight: 500;
|
|
margin: 0;
|
|
color: var(--text-dark);
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.position .position-title {
|
|
display: inline-block;
|
|
margin-right: 0.3em;
|
|
}
|
|
|
|
.position .company-name {
|
|
display: inline-block;
|
|
}
|
|
|
|
.current-badge {
|
|
display: inline-block;
|
|
background: #27ae60;
|
|
color: white;
|
|
font-weight: 700;
|
|
font-size: 0.7em;
|
|
padding: 0.2em 0.5em;
|
|
border-radius: 3px;
|
|
margin-left: 0.5em;
|
|
vertical-align: middle;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.live-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.3em;
|
|
background: #27ae60;
|
|
color: white;
|
|
font-weight: 700;
|
|
font-size: 0.7em;
|
|
padding: 0.2em 0.5em;
|
|
border-radius: 3px;
|
|
margin-left: 0.5em;
|
|
vertical-align: middle;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.live-badge iconify-icon {
|
|
font-size: 1.2em;
|
|
}
|
|
|
|
.expired-badge {
|
|
display: inline-block;
|
|
background: #e74c3c;
|
|
color: white;
|
|
font-weight: 700;
|
|
font-size: 0.7em;
|
|
padding: 0.2em 0.5em;
|
|
border-radius: 3px;
|
|
margin-left: 0.5em;
|
|
vertical-align: middle;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.maintained-badge {
|
|
display: inline-block;
|
|
background: #3498db;
|
|
color: white;
|
|
font-weight: 700;
|
|
font-size: 0.7em;
|
|
padding: 0.2em 0.5em;
|
|
border-radius: 3px;
|
|
margin-left: 0.5em;
|
|
vertical-align: middle;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
.experience-period,
|
|
.experience-separator,
|
|
.experience-location,
|
|
.experience-duration {
|
|
color: var(--text-muted);
|
|
font-weight: 600;
|
|
display: inline-block;
|
|
font-size: 1.05rem;
|
|
}
|
|
|
|
.experience-duration {
|
|
font-style: italic;
|
|
}
|
|
|
|
.short-desc {
|
|
color: var(--text-dark);
|
|
font-size: 0.95rem;
|
|
line-height: 1.6;
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.duration-text {
|
|
color: var(--text-light);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.responsibilities {
|
|
list-style: none;
|
|
margin-top: 1rem;
|
|
padding-left: 0;
|
|
}
|
|
|
|
.responsibilities li {
|
|
padding-left: 1.2rem;
|
|
margin-bottom: 0.4rem;
|
|
position: relative;
|
|
font-size: 0.95rem;
|
|
color: var(--text-dark);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.responsibilities li:before {
|
|
content: "•";
|
|
position: absolute;
|
|
left: 0;
|
|
color: var(--text-gray);
|
|
}
|
|
|
|
/* Responsibilities with company icons (similar to main experience layout) */
|
|
.responsibilities li:has(img),
|
|
.responsibilities li:has(iconify-icon) {
|
|
display: grid;
|
|
grid-template-columns: 60px 1fr;
|
|
gap: 1rem;
|
|
padding-left: 0;
|
|
margin-bottom: 1rem;
|
|
align-items: start;
|
|
}
|
|
|
|
.responsibilities li:has(img):before,
|
|
.responsibilities li:has(iconify-icon):before {
|
|
display: none;
|
|
}
|
|
|
|
.responsibilities li img {
|
|
width: 60px;
|
|
height: 60px;
|
|
object-fit: contain;
|
|
border-radius: 4px;
|
|
border: 1px solid var(--icon-border);
|
|
background: transparent;
|
|
padding: 4px;
|
|
}
|
|
|
|
.responsibilities li iconify-icon.default-company-icon {
|
|
width: 60px;
|
|
height: 60px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 4px;
|
|
border: 1px solid var(--icon-border);
|
|
background: transparent;
|
|
color: var(--text-light);
|
|
padding: 8px;
|
|
}
|
|
|
|
/* Education */
|
|
.education-item {
|
|
margin-bottom: 1rem;
|
|
font-size: 0.95rem;
|
|
line-height: 1.6;
|
|
color: var(--text-dark);
|
|
}
|
|
|
|
|
|
/* Languages */
|
|
.languages-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.language-item {
|
|
font-size: 0.95rem!important;
|
|
color: var(--text-dark);
|
|
margin-bottom: 0.3rem!important;
|
|
line-height: 1.4!important;
|
|
margin-left: 2rem!important;
|
|
}
|
|
|
|
.language-item small {
|
|
display: block;
|
|
font-size: 0.8em;
|
|
margin-top: 0.2rem;
|
|
font-style: italic;
|
|
}
|
|
|
|
/* Experience Items */
|
|
.experience-item {
|
|
margin-bottom: 2.5rem;
|
|
padding-bottom: 2rem;
|
|
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* Keep border on all experience items including last one */
|
|
|