html { scroll-snap-type: y mandatory; scroll-behavior: smooth; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } body { background: #0a0a0a; color: #c5e5e5; font-family: "Courier New", monospace; margin: 0; padding: 0; min-height: 100vh; } .terminal { margin-left: 80px; padding: 20px; max-width: 800px; } .sidebar { position: fixed; left: 0; top: 0; bottom: 0; width: 80px; background: #0a0a0a; border-right: 1px solid #2a5a5a; display: flex; flex-direction: column; align-items: center; padding-top: 20px; z-index: 1000; } .nav-icon { color: rgba(255, 255, 255, 0.4); cursor: pointer; margin: 20px 0; font-size: 24px; transition: color 0.3s ease; text-decoration: none; } .nav-icon:hover { color: rgba(255, 255, 255, 0.85); } .nav-icon.active { color: rgba(255, 255, 255, 1); } .section { height: 100vh; padding: 20px 0; scroll-snap-align: start; scroll-snap-stop: always; position: relative; overflow-y: auto; } #contact { height: auto; min-height: 100vh; } .header { border-bottom: 1px solid #2a5a5a; padding-bottom: 10px; margin-bottom: 20px; } .timestamp { font-size: 0.9em; color: #88aaaa; } .location { margin-top: 4px; color: #88aaaa; } .section-title { color: #88aaaa; margin-bottom: 20px; font-size: 1.2em; display: flex; align-items: center; } .section-title::before { content: "◈"; margin-right: 10px; font-size: 1.1em; } .project-item { border: 1px solid #2a5a5a; padding: 15px; margin: 15px 0; cursor: pointer; transition: all 0.3s ease; position: relative; background: rgba(42, 90, 90, 0.05); } .project-item:hover { border-color: #c5e5e5; background: rgba(42, 90, 90, 0.1); } .project-header { display: flex; justify-content: space-between; align-items: center; } .project-header .entry::before { content: "⎔"; color: #88aaaa; } .expand-icon { color: #88aaaa; transition: transform 0.3s ease; } .project-item.expanded .expand-icon { transform: rotate(45deg); } .project-content { max-height: 0; overflow: hidden; transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, transform 0.3s ease; margin-top: 10px; opacity: 0; transform: translateY(-10px); } .project-content.expanded { max-height: 500px; opacity: 1; transform: translateY(0); } .project-item, .status-item { border: 1px solid #2a5a5a; padding: 15px; margin: 15px 0; cursor: pointer; transition: all 0.3s ease; position: relative; background: rgba(42, 90, 90, 0.05); } .project-item:hover, .status-item:hover { border-color: #c5e5e5; background: rgba(42, 90, 90, 0.1); } .project-header, .status-header { display: flex; justify-content: space-between; align-items: center; } .project-header .entry::before, .status-header .entry::before { content: "⎔"; } .expand-icon { color: #88aaaa; transition: transform 0.3s ease; } .project-item.expanded .expand-icon, .status-item.expanded .expand-icon { transform: rotate(45deg); } .project-content, .status-details { max-height: 0; overflow: hidden; transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, transform 0.3s ease; margin-top: 10px; opacity: 0; transform: translateY(-10px); } .project-content.expanded, .status-details.expanded { max-height: 500px; opacity: 1; transform: translateY(0); } .status-group { margin-bottom: 20px; } .status-indicator { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 10px; transition: transform 0.3s ease; } .status-item:hover .status-indicator { transform: scale(1.2); } .status-online { background-color: #4caf50; box-shadow: 0 0 10px rgba(76, 175, 80, 0.3); } .status-offline { background-color: #f44336; box-shadow: 0 0 10px rgba(244, 67, 54, 0.3); } .status-warning { background-color: #ff9800; box-shadow: 0 0 10px rgba(255, 152, 0, 0.3); } .status-metric { margin: 4px 0; padding-left: 15px; position: relative; } .status-metric::before { content: "›"; position: absolute; left: 0; } .loading-indicator, .error-message { text-align: center; padding: 20px; } .loading-indicator { color: #88aaaa; } .error-message { color: #f44336; } .refresh-button { color: #88aaaa; border: 1px solid #2a5a5a; background: none; padding: 8px 16px; cursor: pointer; margin-bottom: 20px; transition: all 0.3s ease; display: flex; align-items: center; } .refresh-button::before { content: "⟳"; margin-right: 8px; } .refresh-button:hover { border-color: #c5e5e5; color: #c5e5e5; transform: scale(1.02); } .entry-list { margin-top: 10px; } .nested-entries { margin-left: 20px; margin-top: 5px; } .entry { margin: 10px 0; padding-left: 20px; position: relative; } .entry::before { content: "▹"; position: absolute; left: 0; margin-right: 10px; } .entry-link { color: inherit; text-decoration: none; transition: color 0.3s ease; } .entry-link:hover { color: #c5e5e5; } .nested-entries .entry { color: #88aaaa; font-size: 0.95em; } .nested-entries .entry:hover { color: #c5e5e5; } .nested-entries .entry:hover::before { color: #c5e5e5; } .project-link { display: inline-block; color: #c5e5e5; text-decoration: none; padding: 10px 15px; border: 1px solid #2a5a5a; transition: all 0.3s ease; background: rgba(42, 90, 90, 0.05); margin-top: 10px; } .project-link:hover { border-color: #c5e5e5; background: rgba(42, 90, 90, 0.1); transform: translateX(5px); } .contact-links { display: flex; flex-direction: column; gap: 20px; margin-top: 20px; } .contact-link { display: flex; align-items: center; color: #c5e5e5; text-decoration: none; padding: 15px; border: 1px solid #2a5a5a; transition: all 0.3s ease; background: rgba(42, 90, 90, 0.05); } .contact-link:hover { border-color: #c5e5e5; background: rgba(42, 90, 90, 0.1); } .contact-icon { margin-right: 15px; font-size: 24px; }