:root { --color-background: #0D0D0D; --color-foreground: #FFFFFF; --color-card-background: #1A1A1A; --color-text-primary: #E0E0E0; --color-text-secondary: #A0A0A0; --color-online: #28A745; /* Green */ --color-offline: #DC3545; /* Red */ --color-error: #FFC107; /* Yellow */ --color-accent: #FFFFFF; /* White */ --spacing-unit: 1rem; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: 'Inter', sans-serif; background: var(--color-background); background-image: radial-gradient(at center center, #1a1a1a 0%, #0d0d0d 70%); color: var(--color-text-primary); display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; overflow-x: hidden; padding: calc(2 * var(--spacing-unit)); transition: background-color 0.5s ease; } header { background: transparent; color: var(--color-foreground); padding: var(--spacing-unit) 0; width: 100%; text-align: center; margin-bottom: calc(2 * var(--spacing-unit)); } header h1 { font-size: 3.2rem; font-weight: 300; text-transform: uppercase; letter-spacing: 0.15em; color: #FFFFFF; text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 9px var(--color-accent), 0 0 12px var(--color-accent), 0 0 15px var(--color-accent); animation: neon-flicker 4s infinite alternate ease-in-out; } @keyframes neon-flicker { 0%, 100% { text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 9px var(--color-accent), 0 0 12px var(--color-accent), 0 0 15px var(--color-accent); opacity: 1; } 1% { text-shadow: none; opacity: 0.7; } 3%, 5% { text-shadow: 0 0 1px #fff, 0 0 3px #fff, 0 0 5px var(--color-accent); opacity: 0.8; } 7% { text-shadow: none; opacity: 0.6; } 9% { text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 9px var(--color-accent); opacity: 1; } 11% { text-shadow: none; opacity: 0.7; } 13% { text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 9px var(--color-accent); opacity: 1; } 20%, 80% { opacity: 1; text-shadow: 0 0 3px #fff, 0 0 6px #fff, 0 0 9px var(--color-accent), 0 0 12px var(--color-accent), 0 0 15px var(--color-accent); } 21%, 79% { opacity: 0.9; text-shadow: 0 0 2px #fff, 0 0 5px #fff, 0 0 7px var(--color-accent); } } main { width: 90%; max-width: 650px; display: flex; flex-direction: column; align-items: center; gap: calc(1.5 * var(--spacing-unit)); margin: auto; } .neon-wrapper { position: relative; padding: 4px; border-radius: 14px; background: transparent; pointer-events: none; transition: all 0.3s ease-in-out; /* Smooth transition for color changes */ } .status-card:hover + .neon-wrapper::before, .status-card:hover + .neon-wrapper::after, .neon-wrapper:hover::before, .neon-wrapper:hover::after { filter: blur(15px) !important; opacity: 1 !important; box-shadow: 0 0 30px var(--current-neon-color, var(--color-accent)), 0 0 60px var(--current-neon-color, var(--color-accent)), 0 0 90px var(--current-neon-color, var(--color-accent)); } .neon-wrapper::before, .neon-wrapper::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 14px; z-index: -1; background: var(--current-neon-color, var(--color-accent)); filter: blur(10px); opacity: 0; animation: futuristic-pulse 2s infinite alternate ease-in-out; transition: background 0.5s ease, filter 0.5s ease, opacity 0.5s ease, box-shadow 0.5s ease; box-shadow: 0 0 25px var(--current-neon-color, var(--color-accent)), 0 0 50px var(--current-neon-color, var(--color-accent)); } .neon-wrapper::after { animation-delay: 1s; filter: blur(12px); opacity: 0; box-shadow: 0 0 35px var(--current-neon-color, var(--color-accent)), 0 0 70px var(--current-neon-color, var(--color-accent)); } .neon-wrapper.online::before, .neon-wrapper.online::after { background: var(--color-online); box-shadow: 0 0 25px var(--color-online), 0 0 50px var(--color-online); } .neon-wrapper.online::after { box-shadow: 0 0 35px var(--color-online), 0 0 70px var(--color-online); } .neon-wrapper.offline::before, .neon-wrapper.offline::after { background: var(--color-offline); box-shadow: 0 0 25px var(--color-offline), 0 0 50px var(--color-offline); } .neon-wrapper.offline::after { box-shadow: 0 0 35px var(--color-offline), 0 0 70px var(--color-offline); } .neon-wrapper.error::before, .neon-wrapper.error::after { background: var(--color-error); box-shadow: 0 0 25px var(--color-error), 0 0 50px var(--color-error); } .neon-wrapper.error::after { box-shadow: 0 0 35px var(--color-error), 0 0 70px var(--color-error); } @keyframes futuristic-pulse { 0% { transform: scale(1); opacity: 0; } 50% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(1); opacity: 0; } } .status-card { background: var(--color-card-background); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 12px; padding: calc(2.5 * var(--spacing-unit)); width: 100%; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4); text-align: center; transition: transform 0.4s ease, box-shadow 0.4s ease; position: relative; z-index: 1; } .status-card:hover { transform: translateY(-8px); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6); } .status-card h2 { font-size: 2rem; font-weight: 700; color: var(--color-foreground); margin-bottom: var(--spacing-unit); letter-spacing: 0.02em; } .status-info { font-size: 1.2rem; color: var(--color-text-secondary); margin: calc(0.75 * var(--spacing-unit)) 0; line-height: 1.6; } .status-info#status { font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.3rem 0.8rem; border-radius: 5px; display: inline-block; transition: background-color 0.3s ease; } .status-info.online { color: var(--color-online); background-color: rgba(40, 167, 69, 0.1); } .status-info.offline { color: var(--color-offline); background-color: rgba(220, 53, 69, 0.1); } .status-info.error { color: var(--color-error); background-color: rgba(255, 193, 7, 0.1); } /* Styles for Minecraft MOTD colors from mcstatus.io */ .mc-color-black { color: #000000; } .mc-color-dark_blue { color: #0000AA; } .mc-color-dark_green { color: #00AA00; } .mc-color-dark_aqua { color: #00AAAA; } .mc-color-dark_red { color: #AA0000; } .mc-color-dark_purple { color: #AA00AA; } .mc-color-gold { color: #FFAA00; } .mc-color-gray { color: #AAAAAA; } .mc-color-dark_gray { color: #555555; } .mc-color-blue { color: #5555FF; } .mc-color-green { color: #55FF55; } .mc-color-aqua { color: #55FFFF; } .mc-color-red { color: #FF5555; } .mc-color-light_purple { color: #FF55FF; } .mc-color-yellow { color: #FFFF55; } .mc-color-white { color: #FFFFFF; } .mc-color-gradient { } /* Styles for Minecraft MOTD formatting */ .mc-format-bold { font-weight: bold; } .mc-format-italic { font-style: italic; } .mc-format-underlined { text-decoration: underline; } .mc-format-strikethrough { text-decoration: line-through; } .mc-format-obfuscated { } .server-icon { width: 90px; height: 90px; margin: calc(1.5 * var(--spacing-unit)) auto; border-radius: 50%; background-color: var(--color-background); border: 3px solid rgba(255, 255, 255, 0.2); display: flex; justify-content: center; align-items: center; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); transition: transform 0.3s ease-out; } .server-icon img { max-width: 100%; max-height: 100%; } footer { margin-top: calc(4 * var(--spacing-unit)); padding: var(--spacing-unit); background: transparent; color: var(--color-text-secondary); text-align: center; width: 100%; font-size: 0.9rem; } footer a { color: inherit; text-decoration: none; transition: color 0.3s ease; } footer a:hover { color: var(--color-foreground); text-decoration: underline; } @media (max-width: 768px) { header h1 { font-size: 2.5rem; } .status-card { padding: calc(2 * var(--spacing-unit)); } .status-card h2 { font-size: 1.7rem; } .status-info { font-size: 1.1rem; } } @media (max-width: 480px) { header h1 { font-size: 2rem; letter-spacing: 0.1em; } body { padding: var(--spacing-unit); } .server-icon { width: 75px; height: 75px; } .status-card { padding: calc(1.5 * var(--spacing-unit)); border-radius: 10px; } .status-card h2 { font-size: 1.5rem; } .status-info { font-size: 1rem; } }