ArchSantara / static /css /index.css
fii00's picture
Track all binary files using Git LFS
f999730
/* --- Base Styles & Custom Fonts --- */
:root {
--dark-bg: #0d1118;
--accent: #A11312;
--light: #F8E6DE;
--navbar-height: 85px; /* Define navbar height as a variable */
}
body {
background-color: var(--dark-bg);
color: var(--light);
font-family: 'Inter', sans-serif;
overflow-x: hidden;
}
.font-orbitron {
font-family: 'Orbitron', sans-serif;
}
/* --- Responsive Navbar Design --- */
.navbar-container {
position: fixed;
top: 0;
width: 100%;
z-index: 50;
display: flex;
justify-content: center;
padding: 12px 1.5rem;
height: var(--navbar-height);
}
.navbar {
position: relative;
overflow: visible; /* Changed from hidden to allow dropdown */
border-radius: 20px;
padding: 12px 30px;
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
max-width: 1200px;
z-index: 1;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0);
transition: box-shadow 0.5s ease-out;
}
.navbar-bg {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
z-index: -1;
border-radius: 20px;
background-color: #0b0e14cb;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
transform: scaleX(0);
transform-origin: center;
opacity: 0;
}
.navbar.navbar-scrolled {
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}
.nav-logo {
font-family: 'Orbitron', sans-serif;
font-size: 1.5rem;
font-weight: 700;
color: white;
text-decoration: none;
flex-shrink: 0;
}
/* Desktop Navigation Links */
.nav-links {
display: none;
}
@media (min-width: 768px) {
.nav-links {
display: flex;
gap: 10px;
}
}
.nav-links a {
position: relative;
padding: 8px 16px;
color: var(--light);
text-decoration: none;
font-weight: 500;
transition: all 0.3s ease, text-shadow 0.3s ease;
}
.nav-links a::after {
content: "";
position: absolute;
bottom: 4px;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 2px;
background-color: var(--light);
border-radius: 4px;
transition: width 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.nav-links a:hover,
.nav-links a.active {
color: var(--light);
text-shadow: 0 0 1px var(--light), 0 0 1px var(--light);
}
.nav-links a:hover::after,
.nav-links a.active::after {
width: 70%;
}
/* --- Animated Hamburger Menu Button --- */
.hamburger-btn {
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
z-index: 100;
cursor: pointer;
-webkit-tap-highlight-color: transparent;
}
.hamburger-btn svg {
height: 2.5em;
transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
.hamburger-btn .line {
fill: none;
stroke: white; /* Changed from black to white */
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 3;
transition:
stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
.hamburger-btn .line-top-bottom {
stroke-dasharray: 12 63;
}
.hamburger-btn.active svg {
transform: rotate(-45deg);
}
.hamburger-btn.active svg .line-top-bottom {
stroke-dasharray: 20 300;
stroke-dashoffset: -32.42;
}
@media (min-width: 768px) {
.hamburger-btn {
display: none;
}
}
/* --- New Mobile Dropdown Menu --- */
.mobile-menu {
position: absolute;
top: calc(100%); /* Position below the navbar with a gap */
left: 0;
width: 100%;
background-color: #0b0e149d;
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
z-index: -10; /* Keep it behind navbar content */
border-radius: 16px;
padding: 0.75rem;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
/* Animation properties */
opacity: 0;
transform: translateY(-20px) scale(0.98);
transform-origin: top center;
transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
pointer-events: none;
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.mobile-menu.active {
opacity: 1;
transform: translateY(0) scale(1);
pointer-events: auto;
}
.mobile-menu a {
color: var(--light);
font-weight: 500;
padding: 0.75rem 1rem;
border-radius: 12px;
transition: background-color 0.3s ease, color 0.3s ease;
display: flex;
}
.mobile-menu a:hover, .mobile-menu a.active {
background-color: #181f2c9d;
color: white;
}
/* --- Hero Section Background --- */
#beranda {
position: relative;
background-image: url('../img/bg.png');
background-size: cover;
background-position: center;
background-attachment: fixed;
}
#beranda::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to right, rgba(11, 14, 20, 0.856), rgba(28, 6, 6, 0.6));
z-index: 2;
}
#hero-title {
min-height: 150px;
}
#hero-canvas {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 3;
}
#tentang, #cara-kerja {
position: relative;
overflow: hidden;
}
#tentang::before, #cara-kerja::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background-image: url('../img/bg.png');
background-size: cover;
background-position: center;
background-attachment: fixed;
opacity: 0.05;
z-index: -1;
}
.cta-button {
position: relative;
padding: 1rem 1.2rem;
font-size: 1.07rem;
z-index: 0;
overflow: hidden;
transition: padding 0.5s ease-in-out, font-size 0.5s ease-in-out, box-shadow 0.5s ease-in-out;
}
.cta-button:hover {
padding: 1rem 1.25rem;
font-size: 1.1rem;
box-shadow: 0 0 25px rgba(255, 255, 255, 0.3), 0 0 35px rgba(161, 19, 18, 0.6);
}
.cta-button::before {
content: '';
position: absolute;
inset: 0;
border-radius: 0.75rem;
padding: 2px;
background: linear-gradient(270deg, #F8E6DE, #A11312, #F8E6DE);
background-size: 400%;
animation: glow-border 5s linear infinite;
z-index: -1;
mask: linear-gradient(#F8E6DE 0 0) content-box, linear-gradient(#F8E6DE 0 0);
-webkit-mask: linear-gradient(#F8E6DE 0 0) content-box, linear-gradient(#F8E6DE 0 0);
mask-composite: exclude;
-webkit-mask-composite: destination-out;
filter: blur(1.5px) brightness(1.8);
opacity: 0;
transition: opacity 0.3s ease-in-out;
}
.cta-button:hover::before {
opacity: 1;
z-index: 20;
}
@keyframes glow-border {
0% { background-position: 0% 50%; }
100% { background-position: 400% 50%; }
}
.tilt-container {
transform-style: preserve-3d;
transform: perspective(1000px);
}
.glass-card {
position: relative;
background: rgba(248, 230, 222, 0.05);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid rgba(248, 230, 222, 0.1);
transition: background 0.3s, border 0.3s, transform 0.3s;
overflow: hidden;
border-radius: 20px;
z-index: 0;
}
.glass-card:hover {
background: rgba(248, 230, 222, 0.1);
}
.glass-card::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
padding: 2px;
background: linear-gradient(90deg, #9c0808, #F8E6DE, #9c0808);
background-size: 300% 300%;
animation: border-light 4s linear infinite;
z-index: 1;
mask: linear-gradient(#f8f8f8 0 0) content-box, linear-gradient(#f8f8f8 0 0);
-webkit-mask: linear-gradient(#f8f8f8 0 0) content-box, linear-gradient(#f8f8f8 0 0);
mask-composite: exclude;
-webkit-mask-composite: destination-out;
box-sizing: border-box;
filter: blur(3px) brightness(2);
pointer-events: none;
}
@keyframes border-light {
0% { background-position: 0% 50%; }
100% { background-position: 300% 50%; }
}
.flip-card {
transform-style: preserve-3d;
transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}
.flip-card-inner {
position: relative;
width: 100%;
height: 100%;
transform-style: preserve-3d;
}
.flip-card-front, .flip-card-back {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.flip-card-back {
transform: rotateY(180deg);
}
.flip-card.is-flipped {
transform: rotateY(180deg);
}
.timeline-line {
position: absolute;
left: 50%;
transform: translateX(-50%);
width: 3px;
height: 100%;
background-color: rgba(248, 230, 222, 0.1);
}
@media (max-width: 768px) {
.timeline-line {
left: 20px;
}
}
/* --- Footer Social Icons --- */
.social-links-container {
display: flex;
justify-content: center;
column-gap: 20px;
margin-top: 15px;
}
.social-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 38px;
height: 38px;
text-decoration: none;
outline: 2px solid var(--light);
border-radius: 50%;
transition: all 0.45s ease-in-out;
color: var(--light);
}
.social-icon svg {
margin: auto;
width: 24px;
height: 24px;
transition: all 0.45s ease-in-out;
}
.social-icon:hover {
transform: rotate(360deg);
transform-origin: center center;
background-color: var(--light);
color: #2d2e32;
outline-color: #2d2e32;
outline-offset: 3px;
}
.social-icon-twitter:hover {
background-color: #000000;
outline-color: #000000;
}
.social-icon-facebook:hover {
background-color: #1877F2;
outline-color: #1877F2;
}
.social-icon-instagram:hover {
background: linear-gradient(45deg, #f58529, #f77737, #dd2a7b, #8134af, #515bd4);
outline-color: #dd2a7b;
}
.social-icon-youtube:hover {
background-color: #FF0000;
outline-color: #FF0000;
}
.social-icon:hover svg {
filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(305deg)
brightness(103%) contrast(103%);
}