/* Main CSS */ /* Override Bootstrap variables for the dark theme */ /* :root { --bs-body-color: #fff; --bs-body-bg: #030918; --bs-secondary-bg: #0c1827; */ /* --bs-dropdown-link-hover-bg: #345; --bs-dropdown-link-color: #000; --bs-navbar-active-color: #000; */ /* } */ /* :root, [data-bs-theme="light"] { --bs-blue: #0d6efd; --bs-indigo: #6610f2; --bs-purple: #6f42c1; --bs-pink: #d63384; --bs-red: #dc3545; --bs-orange: #fd7e14; --bs-yellow: #ffc107; --bs-green: #198754; --bs-teal: #20c997; --bs-cyan: #0dcaf0; --bs-black: #000; --bs-white: #fff; --bs-gray: #6c757d; --bs-gray-dark: #343a40; --bs-gray-100: #f8f9fa; --bs-gray-200: #e9ecef; --bs-gray-300: #dee2e6; --bs-gray-400: #ced4da; --bs-gray-500: #adb5bd; --bs-gray-600: #6c757d; --bs-gray-700: #495057; --bs-gray-800: #343a40; --bs-gray-900: #212529; --bs-primary: #0d6efd; --bs-secondary: #6c757d; --bs-success: #198754; --bs-info: #0dcaf0; --bs-warning: #ffc107; --bs-danger: #dc3545; --bs-light: #f8f9fa; --bs-dark: #212529; --bs-primary-rgb: 13,110,253; --bs-secondary-rgb: 108,117,125; --bs-success-rgb: 25,135,84; --bs-info-rgb: 13,202,240; --bs-warning-rgb: 255,193,7; --bs-danger-rgb: 220,53,69; --bs-light-rgb: 248,249,250; --bs-dark-rgb: 33,37,41; --bs-primary-text-emphasis: #052c65; --bs-secondary-text-emphasis: #2b2f32; --bs-success-text-emphasis: #0a3622; --bs-info-text-emphasis: #055160; --bs-warning-text-emphasis: #664d03; --bs-danger-text-emphasis: #58151c; --bs-light-text-emphasis: #495057; --bs-dark-text-emphasis: #495057; --bs-primary-bg-subtle: #cfe2ff; --bs-secondary-bg-subtle: #e2e3e5; --bs-success-bg-subtle: #d1e7dd; --bs-info-bg-subtle: #cff4fc; --bs-warning-bg-subtle: #fff3cd; --bs-danger-bg-subtle: #f8d7da; --bs-light-bg-subtle: #fcfcfd; --bs-dark-bg-subtle: #ced4da; --bs-primary-border-subtle: #9ec5fe; --bs-secondary-border-subtle: #c4c8cb; --bs-success-border-subtle: #a3cfbb; --bs-info-border-subtle: #9eeaf9; --bs-warning-border-subtle: #ffe69c; --bs-danger-border-subtle: #f1aeb5; --bs-light-border-subtle: #e9ecef; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255,255,255; --bs-black-rgb: 0,0,0; --bs-font-sans-serif: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; --bs-font-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); --bs-body-font-family: var(--bs-font-sans-serif); --bs-body-font-size: 1rem; --bs-body-font-weight: 400; --bs-body-line-height: 1.5; --bs-body-color: #212529; --bs-body-color-rgb: 33,37,41; --bs-body-bg: #fff; --bs-body-bg-rgb: 255,255,255; --bs-emphasis-color: #000; --bs-emphasis-color-rgb: 0,0,0; --bs-secondary-color: rgba(33, 37, 41, 0.75); --bs-secondary-color-rgb: 33,37,41; --bs-secondary-bg: #e9ecef; --bs-secondary-bg-rgb: 233,236,239; --bs-tertiary-color: rgba(33, 37, 41, 0.5); --bs-tertiary-color-rgb: 33,37,41; --bs-tertiary-bg: #f8f9fa; --bs-tertiary-bg-rgb: 248,249,250; --bs-heading-color: inherit; --bs-link-color: #0d6efd; --bs-link-color-rgb: 13,110,253; --bs-link-decoration: underline; --bs-link-hover-color: #0a58ca; --bs-link-hover-color-rgb: 10,88,202; --bs-code-color: #d63384; --bs-highlight-bg: #fff3cd; --bs-border-width: 1px; --bs-border-style: solid; --bs-border-color: #dee2e6; --bs-border-color-translucent: rgba(0, 0, 0, 0.175); --bs-border-radius: 0.375rem; --bs-border-radius-sm: 0.25rem; --bs-border-radius-lg: 0.5rem; --bs-border-radius-xl: 1rem; --bs-border-radius-xxl: 2rem; --bs-border-radius-2xl: var(--bs-border-radius-xxl); --bs-border-radius-pill: 50rem; --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); --bs-focus-ring-width: 0.25rem; --bs-focus-ring-opacity: 0.25; --bs-focus-ring-color: rgba(13, 110, 253, 0.25); --bs-form-valid-color: #198754; --bs-form-valid-border-color: #198754; --bs-form-invalid-color: #dc3545; --bs-form-invalid-border-color: #dc3545; } */ /*================================================================= Electric container style =================================================================*/ .e-container-border{ padding: 4px; margin: 0; height: 100%; width: 100%; background-color:#222222; background: linear-gradient(180deg, #4b8fca, #e73c7e, #23a6d5, #23d5ab); background-size: 400% 400%; animation: gradient 15s ease infinite; box-shadow: 0px 2px 10px 0px #221133; transition-timing-function: ease-out; transition-duration: 0.3s; } .e-container{ height: 100%; width: 100%; overflow: auto; background-color: #222222; text-align: justify; } .e-container-radius{ border-radius: 25px; } /*================================================================= Responsive image gallery old =================================================================*/ .gallery-container { max-width: auto; margin: 32px auto; display: flex; flex-wrap: wrap; position: relative; overflow: hidden; justify-content: center; align-items: center; width: 100%; gap: 4px; } .img-holder { flex-grow:1; margin: .2rem; overflow: hidden; position: relative; display: flex; justify-content: center; align-items: center; border: 2px #707070 solid; border-radius: 8px; background-color: #707070; } .img-holder img { padding: 0px; border-radius: 8px; display: block; margin: 0 auto; width: 50%; min-width: 100%; height: 24rem; object-fit: cover; transition-duration: 300ms; } .img-holder img.blur { filter: blur(1.5rem); } .img-holder-small img { height: 12rem !important; } .img-holder-small img.blur { filter: blur(1.5rem); } .img-holder .layer { opacity: 0; position: absolute; display: grid; margin: 0 auto; width: 50%; min-width: 100%; justify-content: center; align-items: center; height: 100%; object-fit: cover; background: #0a030e; color: #fff; grid-row: 1; transition: all 0.9s ease; z-index: 1; } .img-holder .layer p { text-align: center; font-size: 15px; letter-spacing: 1px; transition: all 0.9s ease; /* transform: scale(0.8); */ } .img-holder .layer h3 { text-align: center; font-size: 100%; letter-spacing: 1px; transition: all 0.9s ease; /* transform: scale(0.8); */ } .img-holder:hover .layer { opacity: 0.8; transition: all 0.5s ease; } /* .img-holder:hover .layer p { transform: scale(1); transition: all 0.9s ease; } .img-holder:hover .layer h3 { transform: scale(1); transition: all 0.9s ease; } */ .tag { text-decoration: none; } .tag:hover { /* transition: all 0; */ text-decoration: underline; } /*================================================================= Responsive image gallery =================================================================*/ .gallery-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; /* Adjust the gap between items */ } .gallery-item { height: 20vh; position: relative; /* Positioning context for the overlay */ overflow: hidden; /* Ensure that the content does not overflow the set height */ display: flex; /* Use Flexbox for vertical centering */ justify-content: center; /* Center horizontally */ align-items: center; /* Center vertically */ border-radius: 1vmin; border: 2px solid black; } .gallery-item img { max-height: 100%; /* min-width: 50%; */ object-fit: contain; vertical-align: bottom; border-radius: 1vmin; } .gallery-item img.blur { filter: blur(1.5rem); } /* ADVANCED */ /* Portrait */ @media (max-aspect-ratio: 1/1) { .gallery-item { height: 30vh; } } /* Short screens */ @media (max-height: 480px) { .gallery-item { height: 80vh; } } /* Smaller screens in portrait */ @media (max-aspect-ratio: 1/1) and (max-width: 480px) { .gallery-container { flex-direction: row; } .gallery-item { height: auto; width: 100%; } .gallery-item img { width: 100%; max-height: 75vh; min-width: 0; } } .overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); /* Semi-transparent black background */ color: white; display: flex; flex-direction: column; justify-content: center; align-items: center; opacity: 0; /* Hide the overlay by default */ transition: opacity 0.3s ease; /* Smooth transition for the overlay */ } .gallery-item:hover .overlay { opacity: 1; /* Show the overlay on hover */ } /*================================================================= Site icon overlay on gallery =================================================================*/ .site-btn-overlay { position: absolute; z-index: 2; right: 0; top: 0; font-size: 13px; font-weight: 700; line-height: 14px; letter-spacing: .5px; width: 30px; color: #232326; background-color: #414141; border: 1.25px solid #232326; border-radius: 0 1vmin 0 1vmin; white-space: nowrap; padding: 4px 4px 5px; margin: 0 0 0 1px; cursor: pointer; opacity: .8; } .site-btn-overlay img { height: 16px; } /*================================================================= Glitch text on 404 Page =================================================================*/ .glitch { position: relative; color: white; font-size: 8em; letter-spacing: 0.5em; animation: glitch-skew 1s infinite linear alternate-reverse; } .glitch::before { content: attr(data-text); position: absolute; top: 0; left: 0; width: 100%; height: 100%; left: 2px; text-shadow: -2px 0 #ff00c1; clip: rect(44px, 450px, 56px, 0); animation: glitch-anim 5s infinite linear alternate-reverse; } .glitch::after { content: attr(data-text); position: absolute; top: 0; left: 0; width: 100%; height: 100%; left: -2px; text-shadow: -2px 0 #00fff9, 2px 2px #ff00c1; animation: glitch-anim2 1s infinite linear alternate-reverse; } @keyframes glitch-anim { 0% { clip: rect(80px, 9999px, 31px, 0); transform: skew(1deg); } 5% { clip: rect(87px, 9999px, 12px, 0); transform: skew(0.31deg); } 10% { clip: rect(34px, 9999px, 13px, 0); transform: skew(0.56deg); } 15% { clip: rect(82px, 9999px, 74px, 0); transform: skew(0.69deg); } 20% { clip: rect(1px, 9999px, 72px, 0); transform: skew(0.52deg); } 25% { clip: rect(35px, 9999px, 54px, 0); transform: skew(0.5deg); } 30% { clip: rect(62px, 9999px, 2px, 0); transform: skew(0.17deg); } 35% { clip: rect(6px, 9999px, 28px, 0); transform: skew(0.12deg); } 40% { clip: rect(50px, 9999px, 85px, 0); transform: skew(0.88deg); } 45% { clip: rect(34px, 9999px, 53px, 0); transform: skew(0.98deg); } 50% { clip: rect(15px, 9999px, 58px, 0); transform: skew(0.15deg); } 55% { clip: rect(20px, 9999px, 68px, 0); transform: skew(0.06deg); } 60% { clip: rect(77px, 9999px, 52px, 0); transform: skew(0.02deg); } 65% { clip: rect(20px, 9999px, 11px, 0); transform: skew(0.2deg); } 70% { clip: rect(97px, 9999px, 57px, 0); transform: skew(0.17deg); } 75% { clip: rect(1px, 9999px, 36px, 0); transform: skew(1deg); } 80% { clip: rect(31px, 9999px, 63px, 0); transform: skew(0.49deg); } 85% { clip: rect(80px, 9999px, 39px, 0); transform: skew(0.78deg); } 90% { clip: rect(74px, 9999px, 60px, 0); transform: skew(0.96deg); } 95% { clip: rect(97px, 9999px, 59px, 0); transform: skew(0.46deg); } 100% { clip: rect(56px, 9999px, 84px, 0); transform: skew(0.12deg); } } @keyframes glitch-anim2 { 0% { clip: rect(39px, 9999px, 61px, 0); transform: skew(0.08deg); } 5% { clip: rect(13px, 9999px, 77px, 0); transform: skew(0.62deg); } 10% { clip: rect(16px, 9999px, 14px, 0); transform: skew(0.35deg); } 15% { clip: rect(83px, 9999px, 24px, 0); transform: skew(0.81deg); } 20% { clip: rect(70px, 9999px, 14px, 0); transform: skew(0.93deg); } 25% { clip: rect(43px, 9999px, 88px, 0); transform: skew(0.05deg); } 30% { clip: rect(60px, 9999px, 63px, 0); transform: skew(0.89deg); } 35% { clip: rect(35px, 9999px, 11px, 0); transform: skew(0.87deg); } 40% { clip: rect(10px, 9999px, 4px, 0); transform: skew(0.63deg); } 45% { clip: rect(56px, 9999px, 51px, 0); transform: skew(0.12deg); } 50% { clip: rect(22px, 9999px, 21px, 0); transform: skew(0.26deg); } 55% { clip: rect(45px, 9999px, 80px, 0); transform: skew(0.56deg); } 60% { clip: rect(65px, 9999px, 18px, 0); transform: skew(0.08deg); } 65% { clip: rect(71px, 9999px, 89px, 0); transform: skew(0.38deg); } 70% { clip: rect(89px, 9999px, 98px, 0); transform: skew(0.71deg); } 75% { clip: rect(63px, 9999px, 3px, 0); transform: skew(0.75deg); } 80% { clip: rect(4px, 9999px, 68px, 0); transform: skew(0.98deg); } 85% { clip: rect(22px, 9999px, 85px, 0); transform: skew(0.8deg); } 90% { clip: rect(28px, 9999px, 58px, 0); transform: skew(0.06deg); } 95% { clip: rect(70px, 9999px, 12px, 0); transform: skew(0.99deg); } 100% { clip: rect(11px, 9999px, 87px, 0); transform: skew(0.15deg); } } @keyframes glitch-skew { 0% { transform: skew(4deg); } 10% { transform: skew(5deg); } 20% { transform: skew(1deg); } 30% { transform: skew(1deg); } 40% { transform: skew(5deg); } 50% { transform: skew(1deg); } 60% { transform: skew(0deg); } 70% { transform: skew(3deg); } 80% { transform: skew(4deg); } 90% { transform: skew(5deg); } 100% { transform: skew(-1deg); } }