@font-face { /* Note: The font files are not included in this repository due to legal restrictions. For more information, please refer to the README.md file located in the 'fonts' directory. */ font-family: 'Departure Mono'; src: url('../fonts/DepartureMono-Regular.woff2') format('woff2'), url('../fonts/DepartureMono-Regular.woff') format('woff'); font-weight: normal; font-style: normal; font-display: swap; } :root { --cyber-bg-color: #05130f; --cyber-font-color: #e8f0f2; --cyber-primary-color: #1bec99; --cyber-secondary-color: #159262; --cyber-highlight-color: #9d921d; --cyber-faq-bg-color: #0d2f25; --cyber-hero-overlay: rgba(0, 0, 0, 0.7); --cyber-shadow: rgba(0, 0, 0, 0.5); --cyber-slider-thumb-bg: #fff; /* Spacing */ --spacing-sm: clamp(0.75rem, 0.4295rem + 1.3675vw, 1.25rem);; /* 12px to 20px */ --spacing-md: clamp(1.5rem, 1.1795rem + 1.3675vw, 2rem);; /* 16px to 32px */ } /* General Styles */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Departure Mono'; font-size: 18px; line-height: 1.75; background-color: var(--cyber-bg-color); color: var(--cyber-font-color); overflow-x: hidden; text-align: center; } /* Hero Section */ .hero { position: relative; width: 100%; height: 60vh; overflow: hidden; display: flex; justify-content: center; align-items: center; background: url('/img/circle.jpg') no-repeat center center; background-size: cover; margin-bottom: 40px; } .hero img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.8); transition: filter 0.5s; } .hero-text { position: absolute; background-color: var(--cyber-hero-overlay); padding: 30px; border-radius: 15px; backdrop-filter: blur(5px); box-shadow: 0 6px 12px var(--cyber-shadow); color: var(--cyber-font-color); max-width: 80%; } h1 { font-size: 2.5rem; margin-bottom: 10px; } /* Main content */ main { padding-inline: var(--spacing-sm); max-width: 1000px; margin: 0 auto; } .form-section { background-color: #102f2a; padding: var(--spacing-md); border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); margin-bottom: 40px; } .input-group, .radio-group, button { width: 100%; margin: 15px auto; display: block; } input[type="text"] { font-family: 'Departure Mono'; font-size: inherit; line-height: 1.35; width: 100%; padding: 10px; border: 2px solid var(--cyber-primary-color); border-radius: 5px; background-color: #0d2f25; color: var(--cyber-font-color); outline: none; transition: border-color 0.3s; } input[type="text"]:focus { border-color: var(--cyber-secondary-color); } /* Radio Buttons */ .radio-group { display: flex; flex-direction: column; justify-content: space-between; flex-wrap: wrap; gap: var(--spacing-sm); @media (width > 768px) { flex-direction: row; } } .radio-group input[type="radio"] { display: none; } .radio-group label { flex: 1; padding: 10px; text-align: center; cursor: pointer; transition: background-color 0.3s, color 0.3s, border-color 0.3s; background-color: var(--cyber-bg-color); border-radius: 5px; border: 2px solid transparent; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); color: var(--cyber-font-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .radio-group input[type="radio"]:checked + label { background-color: var(--cyber-secondary-color); border-color: var(--cyber-primary-color); color: #fff; } /* Buttons */ button { font-family: 'Departure Mono'; font-size: inherit; line-height: 1.35; padding: 10px 20px; border-radius: 5px; background-color: var(--cyber-bg-color); color: var(--cyber-font-color); cursor: pointer; border: 2px solid transparent; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); transition: background-color 0.3s, border-color 0.3s, transform 0.3s; } button:hover { background-color: var(--cyber-secondary-color); border-color: var(--cyber-primary-color); color: #fff; transform: translateY(-3px); } button:active { transform: translateY(0); } /* Canvas & Output */ .canvas-container { margin: 20px auto; max-width: 100%; box-shadow: 0 0 15px var(--cyber-shadow); border-radius: 10px; overflow: hidden; } #canvas { width: 100%; height: auto; } #outInfo { font-style: italic; color: var(--cyber-highlight-color); margin: 20px 0; display: block; } .output-section { margin-top: 40px; } #outDiv { display: none; margin-top: 30px; text-align: center; } /* FAQ Section */ .faq-section { background-color: var(--cyber-faq-bg-color); padding: var(--spacing-md); border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); color: var(--cyber-font-color); margin-top: 40px; text-align: left; } .faq-section h3 { font-size: 2rem; margin-bottom: 20px; color: var(--cyber-primary-color); text-transform: uppercase; position: relative; } .faq-section h3::after { content: ''; display: block; width: 50px; height: 3px; background: var(--cyber-secondary-color); position: absolute; left: 0; bottom: -5px; } .faq-checkbox { display: none; } .faq-question { display: block; font-weight: bold; color: var(--cyber-highlight-color); padding: var(--spacing-sm); background-color: #102f2a; border-radius: 8px; cursor: pointer; position: relative; margin-bottom: var(--spacing-sm); transition: background-color 0.3s; white-space: normal; overflow: visible; } .faq-question::before { content: '>'; margin-right: 10px; color: var(--cyber-primary-color); font-weight: normal; } .faq-question:hover { background-color: #159262; } .faq-answer { max-height: 0; display: none; overflow: hidden; padding: var(--spacing-sm); background-color: var(--cyber-bg-color); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); border-radius: 8px; margin-bottom: 10px; } .faq-checkbox:checked + .faq-question + .faq-answer { max-height: 100%; display: block; } /* List Styles for FAQ */ .faq-answer ul, .faq-answer ol { padding-left: 20px; margin: 15px 0; list-style-position: inside; color: var(--cyber-font-color); } .faq-answer li { margin-bottom: 10px; line-height: 1.6; } .faq-answer ul { list-style-type: disc; } .faq-answer ol { list-style-type: decimal; } .faq-answer li::marker { color: var(--cyber-highlight-color); } /* Credits Section */ .credits-section { background-color: var(--cyber-faq-bg-color); padding: var(--spacing-md); border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); color: var(--cyber-font-color); margin-top: 40px; text-align: left; } .credits-section h3 { font-size: 2rem; margin-bottom: 20px; color: var(--cyber-primary-color); text-transform: uppercase; position: relative; } .credits-section h3::after { content: ''; display: block; width: 50px; height: 3px; background: var(--cyber-secondary-color); position: absolute; left: 0; bottom: -5px; } .credits-content { display: flex; flex-direction: column; gap: 15px; line-height: 1.6; } .credits-title { font-size: 1.2rem; font-weight: bold; color: var(--cyber-secondary-color); } .credits-section a { font-weight: bold; color: var(--cyber-primary-color); transition: color 0.3s; } .credits-section a:hover { color: var(--cyber-highlight-color); text-decoration: none; } /* Users and Credits */ #usersDiv { display: flex; justify-content: space-between; flex-wrap: wrap; margin-top: 20px; gap: 20px; } .userSubDiv { flex: 1 1 calc(33.333% - 40px); margin: 10px; padding: 20px; border: none; border-radius: 15px; background-color: var(--cyber-faq-bg-color); color: var(--cyber-font-color); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); transition: transform 0.3s, box-shadow 0.3s; } .userSubDiv:hover { transform: scale(1.05); box-shadow: 0 6px 12px var(--cyber-shadow); } .userItem { display: block; font-size: 1.1rem; font-weight: 600; text-decoration: underline; text-decoration-style: dotted; margin-bottom: 10px; color: var(--cyber-primary-color); transition: color 0.3s, text-decoration 0.3s; } .userItem:hover { text-decoration-style: solid; color: #86e0b6; } .userHost { opacity: 0.75; font-style: italic; } .userImg { border-radius: 50%; width: 2em; height: 2em; vertical-align: middle; user-select: none; margin-right: 0.5em; } /* Footer */ #footer { padding: 20px; color: var(--cyber-font-color); margin-top: 20px; text-align: center; } .footer-note { margin-top: 10px; font-size: 0.9rem; } /* Slider */ .slider-container { margin: 20px 0; color: var(--cyber-font-color); display: flex; flex-wrap: wrap; align-items: center; text-align: center; gap: var(--spacing-sm) var(--spacing-md); } .slider-container label { font-size: 1.2rem; @media (width < 568px) { width: 100%; } } input[type="range"] { -webkit-appearance: none; flex: 1; margin: 10.5px 0; background-color: var(--cyber-faq-bg-color); } input[type="range"]:focus { outline: none; } input[type="range"]::-webkit-slider-runnable-track { width: 100%; height: 8px; cursor: pointer; background: var(--cyber-primary-color); border-radius: 5px; } input[type="range"]::-webkit-slider-thumb { border: 2px solid var(--cyber-secondary-color); height: 20px; width: 20px; border-radius: 50%; background: var(--cyber-slider-thumb-bg); cursor: pointer; -webkit-appearance: none; margin-top: -6px; transition: background-color 0.3s, transform 0.3s; } input[type="range"]:focus::-webkit-slider-thumb { box-shadow: 0 0 10px var(--cyber-primary-color); } input[type="range"]::-moz-range-track { width: 100%; height: 8px; cursor: pointer; background: var(--cyber-primary-color); border-radius: 5px; } input[type="range"]::-moz-range-thumb { border: 2px solid var(--cyber-secondary-color); height: 20px; width: 20px; border-radius: 50%; background: var(--cyber-slider-thumb-bg); cursor: pointer; transition: background-color 0.3s, transform 0.3s; } input[type="range"]::-ms-track { width: 100%; height: 8px; cursor: pointer; background: transparent; border-color: transparent; color: transparent; } input[type="range"]::-ms-fill-lower { background: var(--cyber-primary-color); border-radius: 5px; } input[type="range"]::-ms-fill-upper { background: var(--cyber-primary-color); border-radius: 5px; } input[type="range"]::-ms-thumb { border: 2px solid var(--cyber-secondary-color); height: 20px; width: 20px; border-radius: 50%; background: var(--cyber-slider-thumb-bg); cursor: pointer; transition: background-color 0.3s, transform 0.3s; } #sliderValueDisplay { font-size: 1.1rem; color: var(--cyber-primary-color); font-weight: bold; } a { color: var(--cyber-primary-color); transition: color 0.3s; } a:hover { text-decoration: none; color: var(--cyber-secondary-color); }