Files
personal-website/styles.css
2025-07-25 13:35:22 +03:00

306 lines
5.4 KiB
CSS

:root {
--bg: #282828; /* Gruvbox dark background */
--fg: #ebdbb2; /* Gruvbox light text */
--panel: #3c3836; /* Gruvbox dark panel */
--border: #665c54; /* Gruvbox gray */
--link: #83a598; /* Gruvbox blue */
--accent: #d79921; /* Gruvbox yellow */
--muted: #a89984; /* Gruvbox light gray */
}
html, body {
margin: 0;
padding: 0;
height: auto;
min-height: 100vh;
overflow-y: auto;
font-size: 16px;
font-family: 'Fira Code', monospace;
background: var(--bg);
color: var(--fg);
}
body {
display: flex;
justify-content: center;
}
a {
text-decoration: none;
color: var(--link);
}
a:hover {
text-decoration: underline;
}
.post-title {
font-size: 1.1rem;
font-weight: bold;
color: var(--link);
}
.post-title:hover {
text-decoration: underline;
}
.pfp {
position: relative;
float: right;
clear: both;
margin-left: 10px;
margin-bottom: 10px;
border-radius: 30px;
}
.rainbow-text {
font-size: 1.2rem;
background: linear-gradient(90deg, #fb4934, #fe8019, #fabd2f, #b8bb26, #83a598, #d3869b, #fb4934);
background-size: 300%;
background-clip: text;
-webkit-background-clip: text;
color: transparent;
animation: rainbow 5s linear infinite;
}
@keyframes rainbow {
0% { background-position: 0%; }
100% { background-position: 100%; }
}
.scroll-container {
width: 100%;
max-width: 1000px;
padding: 2rem 1rem;
margin: 0 auto;
}
.center-window {
background: var(--panel);
border: 3px double var(--border);
padding: 1.5rem;
box-sizing: border-box;
}
.center {
display: block;
margin-left: auto;
margin-right: auto;
width: 50%;
}
header {
border-bottom: 2px dashed var(--border);
margin-bottom: 1rem;
}
header h1 {
margin: 0;
color: var(--accent);
}
nav a {
margin-right: 1rem;
color: var(--link);
text-decoration: none;
}
nav a:hover {
text-decoration: underline;
}
.terminal-box {
background: var(--bg);
border: 2px dashed var(--border);
padding: 1rem;
margin-bottom: 1rem;
}
.markdown-container {
background: var(--bg);
border: 2px dashed var(--border);
padding: 1rem;
margin-top: 1rem;
color: var(--fg);
overflow-wrap: break-word;
}
.post-list {
list-style-type: none;
padding-left: 0;
}
.post-list li {
margin: 0.5em 0;
}
.post-date {
color: var(--muted);
margin-left: 0.5em;
font-size: 0.9em;
}
/* Terminal Status Display - Gruvbox VHS Style */
.terminal-container {
width: 85%;
background: linear-gradient(135deg, #1d2021, #282828);
border: 2px solid #d79921b0;
border-radius: 0;
box-shadow:
0 0 20px #d7992150,
0 20px 20px #d7992130,
inset 0 0 10px rgba(215, 153, 33, 0.1);
overflow: hidden;
margin: 2rem auto 4rem;
position: relative;
}
.terminal-container::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(
transparent 50%,
rgba(235, 219, 178, 0.03) 50%
);
background-size: 100% 4px;
pointer-events: none;
z-index: 1;
}
.terminal-container::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(235, 219, 178, 0.02);
animation: flicker 0.15s infinite linear alternate;
pointer-events: none;
z-index: 2;
}
@keyframes flicker {
0% { opacity: 1; }
100% { opacity: 0.98; }
}
/* .terminal-header { */
/* background: linear-gradient(135deg, #1d2021, #282828); */
/* padding: 0.9rem 1rem; */
/* border-bottom: 1px solid #d79921ee; */
/* font-size: 1rem; */
/* color: #d79921ee; */
/* text-transform: uppercase; */
/* letter-spacing: 1px; */
/* position: relative; */
/* z-index: 3; */
/* } */
/* .terminal-header::before { */
/* content: '● REC'; */
/* position: absolute; */
/* right: 1rem; */
/* top: 50%; */
/* transform: translateY(-50%); */
/* color: #fb4934; */
/* animation: blink-rec 2s infinite; */
/* font-weight: bold; */
/* } */
/**/
/* @keyframes blink-rec { */
/* 0%, 50% { opacity: 1; } */
/* 51%, 100% { opacity: 0.3; } */
/* } */
/* .terminal-title { */
/* margin: 0; */
/* font-weight: bold; */
/* } */
.terminal-body {
padding: 1rem;
min-height: 280px;
font-size: 0.9rem;
line-height: 1.3;
white-space: pre-wrap;
color: #ebdbb2;
position: relative;
z-index: 3;
overflow-x: auto;
}
.terminal-body::after {
content: '█';
color: #d79921;
display: inline;
animation: blink-cursor 1.2s infinite;
font-weight: bold;
}
.terminal-body.no-animation::after {
animation: none;
}
@keyframes blink-cursor {
0%, 50% { opacity: 1; }
51%, 100% { opacity: 0; }
}
.prompt {
color: #b8bb26; /* Gruvbox green */
font-weight: bold;
}
.status-active {
color: #b8bb26; /* Gruvbox green */
text-shadow: 0 0 5px #b8bb26;
}
.status-loading {
color: #fabd2f; /* Gruvbox yellow */
text-shadow: 0 0 5px #fabd2f;
animation: pulse-yellow 1.5s infinite;
}
.status-inactive {
color: #928374; /* Gruvbox gray */
}
.status-error {
color: #fb4934; /* Gruvbox red */
text-shadow: 0 0 5px #fb4934;
}
@keyframes pulse-yellow {
0%, 100% { opacity: 1; }
50% { opacity: 0.6; }
}
.service-name {
color: #83a598; /* Gruvbox blue */
font-weight: bold;
}
.service-url {
color: #8ec07c; /* Gruvbox aqua */
font-style: italic;
}
.terminal-body {
text-shadow: 0 0 2px currentColor;
}
.terminal-body * {
text-shadow: inherit;
}
.terminal-container {
transform: perspective(300px) rotateX(8deg);
filter: contrast(1.1) brightness(1.05);
}