: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); }