homepage/style.css
2026-07-27 18:15:43 +02:00

1563 lines
31 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:root {
--bg-color: #050505;
--text-color: #00f3ff;
--card-bg: #0a0a0f;
--accent-color: #ff00ff;
--link-color: #ffd700;
--mono-font: 'SFMono-Regular', Consolas, Menlo, monospace;
}
@keyframes pulse-trace {
0%,
100% {
opacity: 0.3;
}
50% {
opacity: 1;
}
}
@keyframes scan-line {
0% {
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;
}
}
@keyframes grow-reveal {
from {
opacity: 0;
max-height: 0;
transform: scale(0.95);
}
to {
opacity: 1;
max-height: 1000px;
/* Reduced to match content better and speed up animation */
transform: scale(1);
}
}
@keyframes shrink-fade-away {
/* New animation for shrinking */
from {
opacity: 1;
max-height: 1000px;
transform: scale(1);
}
to {
opacity: 0;
max-height: 0;
transform: scale(0.95);
}
}
@keyframes avatar-color-shift {
/* Cyan phase */
0%,
100% {
filter: grayscale(100%) sepia(100%) hue-rotate(230deg) saturate(1.4) brightness(1.0);
}
/* Light Blue phase */
45% {
filter: grayscale(100%) sepia(100%) hue-rotate(160deg) saturate(1.1) brightness(1.0);
}
}
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: var(--mono-font);
background-color: var(--bg-color);
background-image: radial-gradient(rgba(0, 243, 255, 0.15) 1px, transparent 1px);
/* Grid background */
background-size: 24px 24px;
color: var(--text-color);
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 40px 20px;
flex-direction: column;
overflow-x: hidden;
}
.bento-grid {
display: grid;
max-width: 1000px;
gap: 24px;
grid-template-columns: repeat(3, 1fr);
}
.card {
background: var(--card-bg);
padding: 24px;
border: 0.2rem solid transparent;
overflow: hidden;
filter: drop-shadow(0 0 10px rgba(0, 243, 255, 0.3)) drop-shadow(0 0 30px rgba(0, 243, 255, 0.15));
position: relative;
transition: all 0.3s ease;
backface-visibility: hidden;
/* Fixes potential text blur on rotated cards */
clip-path: polygon(0 15px, 15px 0,
100% 0,
100% calc(100% - 15px), calc(100% - 15px) 100%,
0 100%);
}
/* Desktop-only effects: Shuffle and Gradient Borders */
@media (min-width: 769px) {
.card {
background: linear-gradient(var(--card-bg), var(--card-bg)) padding-box,
linear-gradient(135deg, rgba(0, 243, 255, 0.4), rgba(255, 0, 255, 0.4)) border-box;
}
.card:hover {
filter: drop-shadow(0 0 15px rgba(0, 243, 255, 0.5)) drop-shadow(0 0 50px rgba(0, 243, 255, 0.3));
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;
}
/* Desktop Grid Spans */
.avatar {
display: block !important;
max-width: 80px !important;
max-height: 100px !important;
object-fit: cover !important;
border: 2px solid #ccc !important;
border-radius: 4px !important;
margin-right: 16px !important;
}
.hero {
grid-column: span 3;
transform: none;
}
.interests-showcase {
grid-column: span 3;
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 */
.avatar {
display: block !important;
max-width: 80px !important;
max-height: 100px !important;
object-fit: cover !important;
border: 2px solid #ccc !important;
border-radius: 4px !important;
margin-right: 16px !important;
}
.hero {
transform: none;
}
.selected-work {
transform: translate(2px, -2px);
}
.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);
}
}
@media (max-width: 768px) {
.card {
border-color: rgba(0, 243, 255, 0.3);
}
.card:hover {
border-color: rgba(0, 243, 255, 0.6);
}
}
.profile {
display: flex;
align-items: center;
gap: 32px;
}
.hero {
display: flex;
flex-direction: column;
gap: 16px;
}
.hero-identity {
display: flex;
align-items: center;
gap: 20px;
}
.hero-name {
flex: 1;
}
.hero-name h1 {
margin: 0 0 4px 0;
}
.hero-name .headline {
margin: 0 0 4px 0;
font-size: 1rem;
color: var(--accent-color);
}
.hero-name .location {
margin: 0;
font-size: 0.85rem;
opacity: 0.7;
}
.print-button {
position: absolute;
top: 1.25rem;
right: 1.25rem;
padding: 6px 14px;
background: rgba(0, 243, 255, 0.05);
border: 1px solid var(--text-color);
color: var(--text-color);
font-family: var(--mono-font);
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 2px;
font-weight: bold;
cursor: pointer;
z-index: 100;
display: none;
border-radius: 4px;
transition: all 0.2s ease;
}
.hero-description {
margin: 0;
}
.hero-description p {
margin: 0;
line-height: 1.5;
}
.highlight-item {
border-bottom: 1px solid rgba(0, 243, 255, 0.08);
border-left: 2px solid rgba(0, 243, 255, 0.15);
padding: 0 0 16px 16px;
}
.highlight-item h3 {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 8px;
color: #fff;
font-size: 1.05rem;
margin: 0 0 10px 0;
}
.highlight-date {
font-size: 0.85em;
color: rgba(0, 243, 255, 0.5);
font-weight: normal;
white-space: nowrap;
}
.selected-work {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px 28px;
}
.cv-mode .selected-work h2 {
grid-column: 1 / -1;
margin-bottom: 0;
}
.selected-work .philosophy {
grid-column: 1 / -1;
}
.highlight-descriptions {
column-count: 1;
}
.highlight-description {
margin: 0 0 8px 0;
font-size: 0.85rem;
line-height: 1.5;
opacity: 0.85;
break-inside: avoid;
}
.highlight-description:last-child {
margin-bottom: 0;
}
/**
* Link pills shared base
*/
.pill {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 12px 6px 10px;
text-decoration: none;
font-size: 0.82rem;
line-height: 1.3;
border-radius: 6px;
border: 1px solid transparent;
transition: all 0.2s ease;
white-space: nowrap;
}
.pill-icon {
font-size: 1.1em;
line-height: 1;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.2em;
text-align: center;
filter: grayscale(90%) brightness(0.8);
}
.pill-label {
font-weight: 600;
}
.pill-url {
display: none;
}
.pill-cv-only-print {
display: none;
}
.card blockquote.philosophy {
margin: 0.25em 0 0 0;
padding: 0.5rem 1.25rem;
border-left: 3px solid var(--accent-color);
background: rgba(0, 243, 255, 0.03);
font-style: italic;
opacity: 0.85;
font-size: 0.9rem;
line-height: 1.5;
border-radius: 0 6px 6px 0;
}
/**
* Contact pills gold accent
*/
.hero-contacts {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
width: 100%;
}
.contact-pill {
color: var(--link-color);
background: rgba(255, 215, 0, 0.06);
border-color: rgba(255, 215, 0, 0.2);
}
.contact-pill:hover {
background: rgba(255, 215, 0, 0.12);
border-color: rgba(255, 215, 0, 0.5);
box-shadow: 0 0 12px rgba(255, 215, 0, 0.15);
}
.contact-pill .pill-url {
color: var(--link-color);
}
/**
* Nav pills cyan accent
*/
.hero-nav {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
padding-top: 12px;
border-top: 1px solid rgba(0, 243, 255, 0.12);
width: 100%;
}
.nav-pill {
color: var(--text-color);
background: rgba(0, 243, 255, 0.04);
border-color: rgba(0, 243, 255, 0.15);
}
.nav-pill:hover {
background: rgba(0, 243, 255, 0.1);
border-color: rgba(0, 243, 255, 0.4);
box-shadow: 0 0 12px rgba(0, 243, 255, 0.15);
}
.nav-pill .pill-url {
color: var(--text-color);
}
/**
* Personal interests tag cloud
*/
.personal-tags {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: center;
}
.personal-tag {
font-size: 0.9rem;
color: var(--text-color);
padding: 6px 14px;
border-radius: 20px;
background: rgba(0, 243, 255, 0.05);
border: 1px solid rgba(0, 243, 255, 0.15);
transition: all 0.2s ease;
}
.personal-tag:hover {
/*background: rgba(0, 243, 255, 0.15);*/
border-color: rgba(0, 243, 255, 0.4);
}
/* Varying shades for tag cloud */
.personal-tag:nth-child(3n+1) {
opacity: 0.6;
}
.personal-tag:nth-child(3n+2) {
opacity: 0.8;
}
.personal-tag:nth-child(3n) {
opacity: 1.0;
}
.hidden {
display: none !important;
}
.reveal {
display: block !important;
pointer-events: auto;
animation: grow-reveal 0.3s cubic-bezier(0.16, 1, 0.3, 1) both;
transition: none !important;
will-change: opacity, max-height, transform;
backface-visibility: hidden;
}
.fade-out {
display: block !important;
/* This class will be applied when content is being hidden */
animation: shrink-fade-away 0.3s cubic-bezier(0.16, 1, 0.3, 1) both;
transition: none !important;
will-change: opacity, max-height, transform;
backface-visibility: hidden;
}
/* CV Specific Content Styles */
.cv-section {
background: rgba(0, 243, 255, 0.03);
border: 1px solid rgba(0, 243, 255, 0.15);
padding: 20px;
margin-top: 15px;
clip-path: polygon(0 10px, 10px 0,
100% 0,
100% calc(100% - 10px), calc(100% - 10px) 100%,
0 100%);
transition: all 0.3s ease;
}
.cv-section:hover {
/*background: rgba(0, 243, 255, 0.07);*/
border-color: rgba(0, 243, 255, 0.3);
}
.cv-item {
margin-bottom: 20px;
border-left: 2px solid rgba(0, 243, 255, 0.2);
padding-left: 15px;
}
.cv-item:last-child {
margin-bottom: 0;
}
.cv-item-header,
.cv-header {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: 4px;
}
address.mono-addr {
font-style: normal;
margin-bottom: 15px;
padding-top: 5px;
}
address.mono-addr span {
display: block;
}
.cv-title {
margin: 0;
font-weight: bold;
color: #fff;
font-size: 1rem;
}
.cv-date {
font-size: 0.7rem;
color: var(--accent-color);
}
.cv-org {
margin: 0 0 8px 0;
font-size: 0.8rem;
color: var(--link-color);
}
.cv-desc {
margin: 0;
font-size: 0.85rem;
line-height: 1.4;
opacity: 0.9;
}
.cv-modified {
text-align: right;
font-size: 0.7rem;
opacity: 0.5;
margin-top: 0px;
margin-bottom: 1rem;
font-family: var(--mono-font);
}
.skill-categories {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1.5rem;
padding: 0;
}
.skill-group h3 {
font-size: 0.6rem;
text-transform: uppercase;
opacity: 0.4;
letter-spacing: 3px;
margin-top: 0;
margin-bottom: 0.5rem;
text-align: left;
color: var(--text-color);
}
.skill-tags {
display: flex;
flex-wrap: wrap;
gap: 0.4rem 0.8rem;
justify-content: flex-start;
align-items: center;
}
.tag {
display: inline-block;
opacity: 0;
transform: translateX(-5px);
transition: opacity 0.4s ease, transform 0.4s ease;
}
.reveal .tag {
opacity: 1;
transform: translateX(0);
}
.profile::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 60px;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(0, 243, 255, 0.2), transparent);
animation: scan-line 4s infinite linear;
pointer-events: none;
}
.link-grid {
list-style: none;
padding: 0;
display: grid;
gap: 10px;
}
.link-grid a {
font-size: 0.75rem;
display: block;
padding: 8px;
border-left: 3px solid var(--text-color);
color: var(--link-color);
background: rgba(0, 243, 255, 0.15);
/* Increased alpha for better visibility */
text-align: center;
transition: all 0.2s ease;
border: 1px solid rgba(0, 243, 255, 0.3);
border-left: 3px solid var(--text-color);
text-shadow: 0 0 5px rgba(255, 215, 0, 0.3);
}
.link-grid a:hover {
background: rgba(0, 243, 255, 0.25);
border-left-color: var(--accent-color);
box-shadow: 0 0 15px var(--accent-color);
transform: translateY(-2px);
}
/* Specific styling for the small contact buttons */
.contact .link-grid {
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
margin-top: 15px;
}
.links::after {
content: "";
position: absolute;
top: 10px;
right: 10px;
width: 10px;
height: 10px;
background: var(--link-color);
box-shadow: 0 0 15px 2px var(--link-color);
border-radius: 50%;
animation: pulse-trace 1s infinite;
}
/* Cyberpunk Toggle Switch */
.cv-toggle-container {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
font-size: 0.85rem;
color: var(--accent-color);
text-shadow: 0 0 10px var(--accent-color);
text-transform: uppercase;
letter-spacing: 4px;
font-weight: bold;
}
.cv-mode .cv-toggle-container span {
color: #fff;
}
.switch {
position: relative;
display: inline-block;
width: 40px;
height: 20px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(255, 0, 255, 0.2);
transition: .4s;
border: 1px solid var(--accent-color);
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 3px;
background-color: var(--accent-color);
transition: .4s;
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:before {
transform: translateX(20px);
background-color: var(--text-color);
box-shadow: 0 0 10px var(--text-color);
}
.avatar {
width: 120px;
height: 160px;
/* Explicit height for aspect ratio 3:4 */
object-fit: cover;
border: 1px solid var(--text-color);
animation: avatar-color-shift 20s infinite linear;
}
body.cv-mode .avatar {
animation: none;
filter: none;
}
h1 {
margin: 0;
font-size: clamp(1.5rem, 5vw, 2.2rem);
color: #fff;
text-shadow: 1px 1px var(--accent-color), -1px -1px var(--text-color), 0 0 15px rgba(255, 255, 255, 0.3);
letter-spacing: 1px;
}
h2 {
font-size: 0.75rem;
text-transform: uppercase;
color: var(--accent-color);
text-shadow: 0 0 8px var(--accent-color);
margin-bottom: 16px;
margin-top: 0;
letter-spacing: 2px;
}
a {
color: var(--link-color);
text-decoration: none;
}
@media (max-width: 768px) {
.bento-grid {
grid-template-columns: 1fr;
}
.profile,
.about,
.interests,
.links,
.contact,
.first-experience,
.experience,
.skills,
.education {
grid-column: span 1;
}
.avatar {
display: block !important;
max-width: 80px !important;
max-height: 100px !important;
object-fit: cover !important;
border: 2px solid #ccc !important;
border-radius: 4px !important;
margin-right: 16px !important;
}
.profile {
flex-direction: column;
text-align: center;
}
.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 */
body.cv-mode {
--bg-color: #0d0e12;
--text-color: #cbd5e1;
/* slaty blue-gray */
--accent-color: #00d2ff;
--secondary-accent: #f472b6;
/* modern pink/magenta */
--card-bg: #15171e;
background-image:
linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.015) 1px, transparent 1px) !important;
background-size: 60px 60px !important;
font-family: system-ui, -apple-system, sans-serif;
}
.cv-mode .print-button {
display: block;
border-color: var(--accent-color);
color: var(--accent-color);
font-family: inherit;
}
.cv-mode .print-button:hover {
background: var(--accent-color);
color: var(--card-bg);
box-shadow: 0 0 15px var(--accent-color);
}
.cv-mode .card {
transform: none !important;
border: 1px solid rgba(255, 255, 255, 0.05) !important;
box-shadow: none !important;
background: var(--card-bg) !important;
border-top: 2px solid #1e293b !important;
filter: none !important;
border-radius: 6px;
}
.cv-mode .card:hover {
background: var(--card-bg) !important;
}
.cv-mode h1,
.cv-mode h2,
.cv-mode h3 {
font-family: inherit;
text-transform: uppercase;
letter-spacing: normal;
text-shadow: none !important;
}
.cv-mode h1 {
color: #fff;
text-transform: none;
font-weight: 800;
letter-spacing: -0.02em;
}
.cv-mode h2 {
color: var(--accent-color);
font-size: 0.7rem;
font-family: var(--mono-font);
letter-spacing: 0.15em;
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
padding-bottom: 12px;
margin-bottom: 24px;
}
.cv-mode h3 {
color: #f8fafc;
text-transform: none;
font-weight: 600;
font-size: 1.05rem;
}
.cv-mode .tag {
font-size: 0.65rem !important;
font-family: var(--mono-font);
font-weight: 500;
opacity: 1 !important;
border: 1px solid rgba(0, 210, 255, 0.15);
background: rgba(0, 210, 255, 0.04);
color: var(--accent-color);
padding: 2px 8px;
transform: none !important;
border-radius: 4px;
}
.cv-mode .cv-date {
color: var(--secondary-accent);
font-family: var(--mono-font);
font-weight: 600;
font-size: 0.75rem;
background: rgba(244, 114, 182, 0.05);
padding: 2px 8px;
border-radius: 4px;
}
.cv-mode .cv-org {
font-size: 0.85rem;
color: var(--accent-color);
opacity: 0.9;
font-weight: 600;
margin: 4px 0 10px 0;
}
.cv-mode .cv-desc {
font-size: 0.9rem;
line-height: 1.6;
color: var(--text-color);
}
/* Print mode */
/* Condensed Print Mode - White Background */
@media print {
.print-button {
display: none !important;
}
/* 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;
}
/* Hide navigation card in print */
.card.links {
display: none !important;
}
* {
box-sizing: border-box;
background: transparent !important;
box-shadow: none !important;
filter: none !important;
transition: none !important;
color: #000 !important;
}
body {
background: #fff !important;
color: #000 !important;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
margin: 0 !important;
padding: 0 !important;
min-height: 0 !important;
overflow: visible !important;
display: block !important;
}
.bento-grid {
display: block !important;
max-width: 100% !important;
gap: 8px !important;
padding: 0 !important;
margin: 0 !important;
}
.card {
background: #fff !important;
border: 1px solid #ccc !important;
border-radius: 4px !important;
padding: 12px !important;
margin: 8px 0 !important;
clip-path: none !important;
overflow: visible !important;
filter: none !important;
}
/* Hide interactive elements */
.cv-toggle-container,
.hiring-toggle,
.switch,
.link-grid,
.links::after,
.profile::before,
.hiring-cta,
.hiring-btn,
.cv-section::after {
display: none !important;
}
/* Reenable and layout the contact link grid horizontally */
.link-grid {
display: flex !important;
flex-wrap: wrap;
gap: 8px;
width: 100% !important;
}
.contact .link-grid a {
flex: 1 1 0 !important;
min-width: 80px;
text-align: center;
}
/* Make mono-addr display horizontally in print */
address.mono-addr {
display: flex !important;
flex-wrap: wrap;
gap: 4px;
}
address.mono-addr span {
display: inline-block !important;
margin-right: 8px;
}
/* Make contact links span more horizontally in print */
.contact {
/* Span more columns in the grid for a wider layout */
grid-column: span 3 !important;
}
/* Removed duplicate flex layout for .contact .link-grid */
/* Pill links in print show label + URL clearly */
.hero-contacts,
.hero-nav {
display: flex !important;
flex-wrap: wrap !important;
gap: 6px !important;
}
.pill {
display: inline-flex !important;
align-items: center !important;
gap: 4px !important;
padding: 3px 8px !important;
border: 1px solid #bbb !important;
border-radius: 3px !important;
background: #f7f7f7 !important;
color: #000 !important;
text-decoration: none !important;
font-size: 0.75rem !important;
}
.pill .pill-icon {
display: none !important;
}
.pill .pill-url {
display: inline !important;
opacity: 1 !important;
color: #333 !important;
font-size: 0.7rem !important;
margin-left: 4px !important;
}
.pill-cv-only-print {
display: inline-flex !important;
}
/* CV Container hidden unless CV mode */
/* Reset animations */
.reveal,
.fade-out,
.tag,
img {
animation: none !important;
transition: none !important;
filter: grayscale(100%) !important;
opacity: 1 !important;
}
/* Show content */
.experience,
.skills,
.education {
display: block !important;
opacity: 1 !important;
max-height: none !important;
overflow: visible !important;
pointer-events: auto !important;
margin: 4px 0 !important;
}
/* Profile layout */
.avatar {
display: block !important;
max-width: 80px !important;
max-height: 100px !important;
object-fit: cover !important;
border: 2px solid #ccc !important;
border-radius: 4px !important;
filter: none !important;
margin-right: 16px !important;
}
.profile {
display: flex !important;
align-items: center !important;
gap: 16px !important;
padding: 8px !important;
flex-wrap: wrap !important;
}
/* Hero layout keep photo left, name right (like desktop) */
.hero {
display: flex !important;
flex-direction: column !important;
gap: 12px !important;
}
.hero-identity {
display: flex !important;
flex-direction: row !important;
align-items: center !important;
gap: 16px !important;
}
/* Selected Work highlights give titles and items room */
.selected-work {
display: block !important;
}
.highlight-item {
margin: 12px 0 !important;
padding: 8px 0 !important;
border-bottom: 1px solid #eee !important;
border-left: none !important;
}
.highlight-item:last-child {
border-bottom: none !important;
}
.highlight-item h3 {
font-size: 13px !important;
margin: 0 0 4px 0 !important;
}
.highlight-subtitle {
font-size: 0.85em !important;
margin: 0 0 6px 0 !important;
font-style: italic !important;
}
.highlight-descriptions {
column-count: 1 !important;
}
.highlight-description {
font-size: 0.9em !important;
margin: 0 !important;
line-height: 1.5 !important;
}
/* Links grid */
.link-grid a {
color: #000 !important;
background: #f5f5f5 !important;
padding: 6px 10px !important;
border: none !important;
display: inline-block !important;
margin: 2px !important;
font-size: 0.85em !important;
}
/* Typography */
h1 {
font-size: 18px !important;
margin: 4px 0 8px 0 !important;
padding-bottom: 4px !important;
border-bottom: 1px solid #000 !important;
color: #000 !important;
}
h2 {
font-size: 11px !important;
text-transform: uppercase !important;
color: #000 !important;
margin: 8px 0 4px 0 !important;
padding: 4px !important;
border-bottom: 1px solid #eee !important;
font-weight: bold !important;
}
h3,
h4,
h5,
h6 {
font-size: 10px !important;
margin: 4px 0 !important;
color: #000 !important;
font-weight: bold !important;
}
a {
color: #000 !important;
text-decoration: underline !important;
}
/* Remove neon effects */
.tag {
opacity: 1 !important;
background: #f5f5f5 !important;
border: 1px solid #ccc !important;
padding: 2px 6px !important;
font-size: 0.8em !important;
}
/* Condensed spacing */
.card h1 {
margin: 0 0 4px 0 !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 */
.profile .links {
display: none !important;
}
/* Ensure images don't take too much space */
img {
max-width: 60px !important;
max-height: 80px !important;
object-fit: contain !important;
filter: grayscale(100%) !important;
}
/* Better column layout for print */
@page {
margin: 1cm;
}
/* Reduce page breaks */
.card {
page-break-inside: avoid !important;
}
/* Ensure hidden elements stay hidden in print */
.hidden {
display: none !important;
}
.cv-mode .hidden {
display: none !important;
}
/* Render interests as horizontal pills in print */
.personal-tags {
flex-direction: row !important;
flex-wrap: wrap !important;
gap: 4px !important;
}
.personal-tag {
display: inline-flex !important;
align-items: center !important;
padding: 2px 8px !important;
border: 1px solid #ccc !important;
border-radius: 3px !important;
background: #f7f7f7 !important;
}
.page-footer {
font-size: 0.7rem !important;
color: #888 !important;
margin: 16px 0 0 !important;
opacity: 0.5 !important;
}
}
.page-footer {
text-align: center;
font-size: 0.75rem;
color: #666;
margin: 24px 0 0;
padding: 0;
opacity: 0.6;
}
/* Interests Showcase Styles */
.interests-showcase {
display: flex;
flex-direction: column;
padding: 24px !important;
min-height: 400px;
overflow: hidden;
}
.interests-nav {
margin-bottom: 24px;
}
.interests-nav h2 {
margin-top: 0;
font-size: 0.75rem;
margin-bottom: 16px;
}
.interests-nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.interests-nav li {
padding: 8px 16px;
border-radius: 20px;
background: rgba(0, 243, 255, 0.05);
border: 1px solid rgba(0, 243, 255, 0.15);
cursor: pointer;
transition: all 0.2s ease;
font-size: 0.9rem;
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.active {
background: var(--accent-color);
color: #000;
border-color: var(--accent-color);
font-weight: bold;
box-shadow: 0 0 15px var(--accent-color);
}
.interests-display {
flex: 1;
position: relative;
min-height: 250px;
border-radius: 12px;
overflow: hidden;
display: flex;
background: #000;
}
.interest-slide {
display: none;
width: 100%;
height: 100%;
flex-direction: column;
align-items: center;
justify-content: center;
position: absolute;
inset: 0;
padding: 30px;
color: #fff;
/* Changed to white for dark backgrounds */
}
.interest-slide.active {
display: flex;
animation: interestFadeIn 0.4s ease-out;
}
.interest-slide img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
.interest-slide .caption {
position: relative;
z-index: 2;
font-size: 1.0rem;
line-height: 2.0;
color: inherit;
font-weight: bold;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
}
.interest-slide img+.caption {
color: #fff;
text-shadow: 0 0 10px #000, 0 0 20px #000;
}
@keyframes interestFadeIn {
from {
opacity: 0;
transform: translateY(5px);
}
to {
opacity: 1;
transform: translateY(0);
}
}