/* static/css/home.css */
.home-title {
margin: 0 0 6px 0;
font-size: 34px;
font-weight: 600;
}
.rule {
margin: 12px 0 24px 0;
border: none;
border-top: 1px solid var(--line);
}
.h2 {
margin: 0 0 12px 0;
font-size: 28px;
font-weight: 600;
}
.p {
margin: 0 0 14px 0;
line-height: 1.85;
font-size: 16px;
color: var(--muted);
}
.list {
margin: 8px 0 0 18px;
color: var(--muted);
line-height: 1.85;
}
.section {
margin-top: 22px;
}
.timeline {
margin-top: 14px;
position: relative;
padding-left: 0;
}
/*.timeline::before {*/
/* content: "";*/
/* position: absolute;*/
/* left: 10px;*/
/* top: 0;*/
/* bottom: 0;*/
/* width: 2px;*/
/* background: var(--line);*/
/*}*/
.timeline::before {
content: "";
position: absolute;
left: 10px;
top: 0;
bottom: 0;
width: 2px;
background: var(--line); /* keep line subtle */
}
.timeline-item {
position: relative;
margin-bottom: 26px;
padding-left: 34px;
}
/*.timeline-item::before {*/
/* content: "";*/
/* position: absolute;*/
/* left: 3px;*/
/* top: 4px;*/
/* width: 14px;*/
/* height: 14px;*/
/* background: var(--bg);*/
/* border: 2px solid rgba(109, 71, 21, 0.55);*/
/* border-radius: 50%;*/
/*}*/
.timeline-item::before {
content: "";
position: absolute;
left: 3px;
top: 4px;
width: 14px;
height: 14px;
background: var(--bg);
border: 2px solid var(--accent); /* <-- changed */
border-radius: 50%;
}
.timeline-year {
font-size: 18px;
font-weight: 700;
line-height: 1.2;
}
.timeline-text {
margin-top: 2px;
font-size: 15px;
color: var(--muted);
}
/* tech stack */
.stack {
margin-top: 26px;
}
/* IMPORTANT: your template uses .tech-grid + .tech-item */
.tech-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
max-width: 760px;
}
.tech-item {
border: 1px solid var(--line);
background: var(--panel);
border-radius: 14px;
padding: 12px 12px;
display: flex;
align-items: center;
gap: 10px;
min-height: 52px;
}
.tech-item img {
width: 32px; /* size control */
height: 32px; /* size control */
object-fit: contain;
display: block;
flex: 0 0 26px;
}
.tech-item span {
font-size: 16px;
color: var(--muted);
line-height: 1.2;
white-space: nowrap;
}
/* tech stack interactions */
.tech-item {
cursor: default;
user-select: none;
transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
will-change: transform;
}
.tech-item:hover {
transform: translateY(-3px) scale(1.02);
box-shadow: 0 14px 38px rgba(109, 71, 21, 0.12);
background: rgba(109, 71, 21, 0.06);
}
/* click "no" shake */
.tech-item:active {
animation: tech-nope 160ms ease-in-out;
}
@keyframes tech-nope {
/*0% { transform: translateX(0) scale(1.01); }*/
/*15% { transform: translateX(-5px) scale(1.01); }*/
/*30% { transform: translateX(5px) scale(1.01); }*/
/*45% { transform: translateX(-4px) scale(1.01); }*/
/*60% { transform: translateX(4px) scale(1.01); }*/
/*75% { transform: translateX(-3px) scale(1.01); }*/
/*100% { transform: translateX(0) scale(1.01); }*/
0% { transform: translateX(0) scale(1.01); }
25% { transform: translateX(-3px) scale(1.01); }
50% { transform: translateX(3px) scale(1.01); }
75% { transform: translateX(-2px) scale(1.01); }
100% { transform: translateX(0) scale(1.01); }
}
/* accessibility: reduce motion */
@media (prefers-reduced-motion: reduce) {
.tech-item,
.tech-item:hover {
transition: none;
transform: none;
}
.tech-item:active {
animation: none;
}
}
/* responsive */
@media (max-width: 900px) {
.tech-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 650px) {
.tech-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 420px) {
.tech-grid {
grid-template-columns: 1fr;
}
}