/* 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, #1a1a1a); } /* 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; -webkit-user-select: 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, #666666); 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, #0066cc); } .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, #1a1a1a); } /* Experience */ /* Experience item layout moved to _toggles.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, #1a1a1a); 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; } .github-badge { display: inline-flex; align-items: center; gap: 0.3em; background: #333; 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; text-decoration: none; } .github-badge:hover { background: #555; color: white; text-decoration: none; } .github-badge iconify-icon { font-size: 1.2em; } /* Category text badges — pastel tones */ .category-badge { display: inline-block; color: white; font-weight: 700; font-size: 0.6em; padding: 0.2em 0.5em; border-radius: 3px; margin-left: 0.5em; vertical-align: middle; letter-spacing: 0.5px; } .category-cli { background: #9b8ec4; } /* Soft purple — terminal */ .category-app { background: #7ba7d9; } /* Soft blue — native app */ .category-web { background: #6bb8c7; } /* Soft cyan — website */ .category-webapp { background: #6bb8c7; } /* Soft cyan — web app */ .category-plugin { background: #d4a96a; } /* Soft amber — plugin */ .category-sdk { background: #a78bcc; } /* Soft violet — SDK */ .category-contrib { background: #a0a7b0; } /* Soft gray — contributions */ /* Merged GitHub + Stars badge */ .github-stars-badge { display: inline-flex; align-items: center; gap: 0.25em; background: #333; color: #f0c040; 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; text-decoration: none; } .github-stars-badge:hover { background: #555; color: #f0c040; text-decoration: none; } .github-stars-badge iconify-icon:first-child { color: white; font-size: 1.2em; } .github-stars-badge iconify-icon:last-of-type { color: #f0c040; font-size: 1em; } .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, #666666); font-weight: 600; display: inline-block; font-size: 1.05rem; } .experience-duration { font-style: italic; } .short-desc { color: var(--text-dark, #1a1a1a); font-size: 0.95rem; line-height: 1.6; margin-top: 0.5rem; } .duration-text { color: var(--text-light, #999999); 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, #1a1a1a); line-height: 1.5; } .responsibilities li:before { content: "•"; position: absolute; left: 0; color: var(--text-gray, #333333); } /* 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, #ddd); 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, #ddd); background: transparent; color: var(--text-light, #999999); padding: 8px; } /* Inline icons within responsibility text (not the main icon) */ .responsibilities li div iconify-icon, .responsibilities li strong + iconify-icon, .responsibilities li em + iconify-icon { width: 1.2em !important; height: 1.2em !important; font-size: 1em; vertical-align: middle; margin: 0 0.15em; color: inherit !important; display: inline-block; border: none !important; padding: 0 !important; background: transparent !important; } /* Education */ .education-item { margin-bottom: 1rem; font-size: 0.95rem; line-height: 1.6; color: var(--text-dark, #1a1a1a); } /* Languages */ .languages-list { display: flex; flex-wrap: wrap; gap: 1.5rem; } .language-item { font-size: 0.95rem!important; color: var(--text-dark, #1a1a1a); 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 */