/* ======================= CKsite Common Styles ======================= */ /* ---- Color Variables for Theme ---- */ :root { --primary-color: #1a73e8; --secondary-color: #5f6368; --background-color: #f8f9fa; --hover-color: #1557b0; --header-border-color: #8ecae6; --header-bg-color: #8ecae6; --text-color: #2c3e50; --card-bg-color: #ffffff; --accent-color: #34a853; } /* ---- CSS Reset and Base Styles ---- */ * { box-sizing: border-box; margin: 0; padding: 0; } /* ---- Body Layout and Background ---- */ body { background: #ebf4f1; font-family: Arial, sans-serif; color: var(--text-color); scroll-behavior: smooth; display: flex; flex-direction: column; min-height: 100vh; overflow-x: hidden; position: relative; z-index: 0; } body::before { content: none !important; } /* ---- Aurora Background and Overlay Effects ---- */ #aurora-bg { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; width: 100vw; height: 100vh; background: #ffffff; animation: auroraMove 12s linear infinite alternate; transition: background 0.5s; filter: blur(2px) brightness(1.15) saturate(1.3); } #aurora-overlay { position: fixed; inset: 0; z-index: 1; pointer-events: none; background: rgba(255, 255, 255, 0); } @keyframes auroraMove { 0% { background-position: 20% 40%, 80% 60%, 50% 80%, 60% 30%, 40% 70%; } 100% { background-position: 35% 60%, 65% 40%, 60% 90%, 50% 20%, 30% 80%; } } @media (max-width: 768px) { #aurora-bg { background: #ffffff; animation-duration: 18s; filter: blur(2.5px) brightness(1.1) saturate(1.15); } #aurora-overlay { background: rgba(255, 255, 255, 0); } } /* ---- Header and Navigation Bar ---- */ .header { display: flex; justify-content: space-between; align-items: center; padding: 20px 40px; background: var(--header-bg-color); color: white; font-family: "Orbitron", sans-serif; border-bottom: 2px solid var(--header-border-color); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); flex-wrap: wrap; position: relative; z-index: 2; } /* ---- Logo Styles ---- */ .logo { display: flex; align-items: center; gap: 15px; margin-left: 140px; } .logo-img { width: 60px; height: 60px; } .logo-text { font-size: 1.8rem; font-weight: 600; letter-spacing: 1px; } /* ---- Navigation Menu Styles ---- */ .menu { display: flex; gap: 15px; margin-right: 140px; } .menu a { text-decoration: none; color: white; font-size: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; transition: transform 0.3s ease, background-color 0.3s ease; padding: 8px 14px; border-radius: 6px; border: 2px solid white; } .menu a:hover { background-color: rgba(255, 255, 255, 0.18); transform: scale(1.05); } /* ---- Main Content and Section Layout ---- */ .content { flex: 1; padding: 20px; text-align: center; position: relative; z-index: 2; } h1 { color: var(--primary-color); text-align: center; } section { margin: 60px auto; padding: 20px; background-color: #f5f5f5; border-radius: 8px; width: 60vw; transition: box-shadow 0.3s ease, transform 0.3s ease, text-shadow 0.3s ease; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05); position: relative; z-index: 2; border: 1.05px solid #ccc; } section h2 { color: var(--primary-color); } section p { color: var(--text-color); } section.highlighted { box-shadow: 0 4px 20px rgba(46, 134, 171, 0.5); text-shadow: 0 0 10px rgba(46, 134, 171, 0.6); transform: translateY(-5px); } /* ---- About Me Section Background ---- */ #about-me { background-image: linear-gradient(rgba(206, 207, 207, 0.47), rgba(206, 207, 207, 0.47)), url("section-background.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; } /* ---- About Me Header Box Styling ---- */ #about-me h2 { background: #ffffff; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); padding: 16px 24px; border: 1px solid #e0e0e0; display: inline-block; margin: 0 auto 2em auto; transition: box-shadow 0.2s; position: relative; z-index: 10; color: #2c3e50 !important; -webkit-background-clip: initial !important; -webkit-text-fill-color: initial !important; background-clip: initial !important; } #about-me h2:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); } /* ---- Footer Styles ---- */ footer { padding: 20px; background-color: var(--card-bg-color); color: var(--primary-color); text-align: center; font-size: 1rem; box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.1); border-radius: 10px; margin: 20px auto; width: 80%; position: relative; z-index: 2; } /* ---- Animated Gradient for Section Headings ---- */ h2 { font-size: 2rem; font-weight: 700; background: linear-gradient(270deg, #1e3a5f, #4a5568, #2d3748, #1e3a5f); background-size: 300% 300%; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; color: #1e3a5f; /* Fallback for unsupported browsers */ animation: gradient-h2 6s ease-in-out infinite; text-align: center; margin-bottom: 1em; } @keyframes gradient-h2 { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Compact style for social media icon buttons */ .social-icon-btn { padding: 4px 6px; min-width: unset; min-height: unset; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; /* Keep ripple effect working */ position: relative; overflow: hidden; } .social-icon-btn svg { width: 24px; height: 24px; display: block; margin: 0; } .social-icon-btn:hover { background-color: var(--hover-color); transform: scale(1.1); } /* ---- Button Styles (except menu) ---- */ .gallery-button { display: inline-block; margin-top: 20px; padding: 10px 20px; background-color: #5e6568; color: white; text-decoration: none; font-weight: bold; border-radius: 5px; transition: background-color 0.3s ease, transform 0.3s ease; border: none; position: relative; z-index: 2; overflow: hidden; } .gallery-button:hover { background-color: #4a5156; transform: scale(1.1); } /* ---- Ripple Effect for Click Feedback ---- */ .ripple { position: absolute; border-radius: 50%; background: rgba(46, 134, 171, 0.3); transform: scale(0); animation: ripple-animation 0.6s ease-out; pointer-events: none; z-index: 9999; } @keyframes ripple-animation { to { transform: scale(4); opacity: 0; } } /* ---- Card and Skill List Styles ---- */ .skills-list { display: flex; justify-content: center; gap: 30px; flex-wrap: wrap; } .skill-card { background: #fff; border-radius: 8px; box-shadow: 0 2px 8px rgba(46, 134, 171, 0.08); padding: 20px; min-width: 120px; margin-bottom: 10px; position: relative; z-index: 2; } .hobby-card { background: #fff; border-radius: 8px; box-shadow: 0 2px 8px rgba(46, 134, 171, 0.08); padding: 20px; min-width: 180px; max-width: 250px; margin-bottom: 10px; position: relative; z-index: 2; } .profile-img { width: 120px; height: 120px; border-radius: 50%; margin: 20px 0; box-shadow: 0 2px 8px rgba(46, 134, 171, 0.15); object-fit: cover; object-position: center; position: relative; z-index: 2; } /* ---- Responsive Layout Adjustments ---- */ @media (max-width: 768px) { .logo { margin-left: 0; justify-content: center; } .header { flex-direction: column; align-items: center; } .menu { margin-right: 0; justify-content: center; } .menu a { font-size: 0.8rem; padding: 8px 10px; border-radius: 4px; background-color: transparent; color: white; text-align: center; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); transition: background-color 0.3s ease, transform 0.3s ease; } .menu a:hover, .menu a:active { background-color: rgba(255, 255, 255, 0.18); transform: scale(1.05); } section { width: 90%; margin: 20px auto; } .content { padding: 10px; } .skills-list { gap: 15px; } } @media (min-width: 769px) { .menu { display: flex; gap: 20px; justify-content: flex-end; margin-top: 0; width: auto; } .menu a { font-size: 1rem; text-transform: uppercase; padding: 8px 14px; width: auto; height: auto; } .menu a::before { content: ""; } } /* ---- Section Backgrounds for Readability ---- */ section, #welcome-box { background-color: #f5f5f5; z-index: 2; } #welcome-box { margin: 60px auto; padding: 20px; border-radius: 8px; width: 80vw; text-align: center; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); background-color: #f5f5f5; z-index: 2; } @media (min-width: 769px) { #welcome-box { width: 50vw; } } @media (max-width: 768px) { section, #welcome-box { width: 90%; margin: 20px auto; } } /* ---- News Section Styles ---- */ #news-section { margin: 40px auto; padding: 24px 16px; background: #f5f5f5; border-radius: 10px; width: 60vw; box-shadow: 0 4px 18px rgba(46, 134, 171, 0.1); text-align: center; position: relative; z-index: 2; } .news-container { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 16px; } .news-arrow { background: var(--primary-color, #2e86ab); color: #fff; border: none; border-radius: 50%; width: 44px; height: 44px; font-size: 1.5rem; cursor: pointer; transition: background 0.2s, transform 0.2s; box-shadow: 0 2px 8px rgba(46, 134, 171, 0.08); display: flex; align-items: center; justify-content: center; position: relative; z-index: 2; } .news-arrow:hover { background: var(--hover-color, #12506b); transform: scale(1.08); } .news-content { min-width: 220px; max-width: 420px; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; z-index: 2; } .news-link-card { background: #f7fafc; border-radius: 12px; box-shadow: 0 4px 16px rgba(46, 134, 171, 0.13); padding: 0 0 18px 0; margin: 0 auto; width: 100%; max-width: 380px; display: flex; flex-direction: column; align-items: center; text-decoration: none; transition: box-shadow 0.2s, transform 0.2s; cursor: pointer; position: relative; z-index: 2; } .news-link-card:hover { box-shadow: 0 8px 32px rgba(46, 134, 171, 0.18); transform: translateY(-2px) scale(1.03); } .news-thumb { width: 100%; max-width: 380px; height: 180px; object-fit: cover; border-radius: 12px 12px 0 0; background: #e9eef1; margin-bottom: 10px; border-bottom: 1px solid #e0e0e0; position: relative; z-index: 2; } .news-title { font-size: 1.1rem; font-weight: 600; color: var(--primary-color, #2e86ab); margin: 8px 0 0 0; text-align: center; padding: 0 10px; position: relative; z-index: 2; } @media (max-width: 768px) { #news-section { width: 95vw; padding: 12px 4px; } .news-content { min-width: 0; max-width: 98vw; } .news-link-card { max-width: 98vw; } .news-thumb { max-width: 98vw; height: 140px; } .news-arrow { width: 38px; height: 38px; font-size: 1.2rem; } } /* ---- Menu Glow Effect for Home Button ---- */ .menu a[href="#welcome-box"] { box-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.6); animation: glow 1.5s infinite alternate; } @keyframes glow { from { box-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.6); } to { box-shadow: 0 0 20px rgba(255, 255, 255, 1), 0 0 30px rgba(255, 255, 255, 0.8); } } /* ---- Profile Card Styles ---- */ .profile-card { background: #ffffff; border-radius: 16px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); padding: 24px 18px 18px 18px; display: flex; flex-direction: column; align-items: center; position: relative; overflow: hidden; width: 100%; max-width: 340px; margin-bottom: 24px; transition: transform 0.18s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.18s; will-change: transform; perspective: 600px; border: 1px solid #e0e0e0; } .profile-card:active { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); } .profile-card-avatar { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; border: 3px solid #1a73e8; margin-bottom: 16px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } .profile-card-name { font-size: 1.25rem; font-weight: 700; color: #2c3e50; text-align: center; } .profile-card-title { font-size: 1rem; color: #444; margin-bottom: 6px; text-align: center; } .profile-card-meta { font-size: 0.97rem; color: #5f6368; margin-bottom: 10px; display: flex; flex-direction: column; align-items: center; gap: 0; width: 100%; } .profile-card-status { color: #5f6368; font-weight: 500; display: flex; align-items: center; gap: 8px; margin-top: 4px; text-align: center; width: 100%; justify-content: center; background: #f8f9fa; border-radius: 10px; padding: 7px 10px 7px 10px; font-size: 0.98rem; line-height: 1.4; } .profile-card-status svg { margin-right: 0; flex-shrink: 0; } .profile-card-contact-btn { background: #5e6568; color: #fff; border: none; border-radius: 8px; padding: 8px 20px; font-size: 1rem; font-weight: 600; cursor: pointer; margin-top: 6px; transition: background 0.2s, transform 0.2s; } .profile-card-contact-btn:hover, .profile-card-contact-btn:focus { background: #4a5156; outline: none; } /* ---- About Me and Future Plans Blurb Styles ---- */ .about-me-blurb { background: #ffffff; border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); padding: 28px 32px; font-size: 1.18rem; color: #2c3e50; max-width: 500px; margin: 0; align-self: center; line-height: 1.7; font-weight: 500; text-align: center; transition: box-shadow 0.2s; border: 1px solid #e0e0e0; display: flex; flex-direction: column; justify-content: center; } .about-me-blurb b { color: #1a73e8; font-weight: 700; } .about-me-blurb hr { margin: 28px 0 18px 0; border: none; border-top: 1px solid #e0e0e0; } .about-me-blurb .future-plans-title { font-size: 1.07em; font-weight: 700; color: #1a73e8; margin-bottom: 6px; display: block; } .about-me-blurb .future-plans-text { font-size: 1.07em; display: block; } .about-me-blurb:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); } @media (max-width: 900px) { #about-me > div { flex-direction: column; gap: 18px; } .profile-card { margin-bottom: 0; } .profile-card-avatar { width: 90px; height: 90px; } .about-me-blurb { max-width: 98vw; padding: 18px 4vw; } } @media (max-width: 600px) { .profile-card { max-width: 98vw; padding: 18px 6vw 16px 6vw; } .profile-card-avatar { width: 70px; height: 70px; } .profile-card-name { font-size: 1.1rem; } .profile-card-title { font-size: 0.95rem; } .profile-card-status { font-size: 0.95rem; padding: 6px 6px 6px 6px; } .about-me-blurb { font-size: 1.04rem; padding: 12px 2vw; } } @media (max-width: 900px) { #tools > div { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; } #tools .hobby-card { max-width: none; min-width: 0; padding: 16px; } } @media (max-width: 600px) { #tools > div { grid-template-columns: 1fr !important; gap: 14px !important; } #tools .hobby-card img { width: 120px !important; height: 120px !important; } #about-me .about-me-blurb { flex-direction: column !important; align-items: center !important; gap: 14px !important; max-width: 95vw !important; padding: 16px 5vw !important; text-align: center; } #about-me .about-me-blurb img { width: 120px !important; height: 120px !important; flex: 0 0 120px !important; } #about-me .about-me-blurb > div { flex: initial !important; } } /* --- Professional styling for profile card --- */ .profile-card { position: relative; overflow: hidden; background: #ffffff; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: box-shadow 0.2s, transform 0.2s; border: 1px solid #e0e0e0; } .profile-card .profile-card-avatar, .profile-card .profile-card-name, .profile-card .profile-card-title, .profile-card .profile-card-meta, .profile-card .profile-card-contact-btn { position: relative; z-index: 3; } /* --- CK Logo Watermark Layer --- */ .profile-card-watermarks { pointer-events: none; position: absolute; inset: 0; z-index: 2; opacity: 0.03; } .profile-card-watermarks .ck-logo-watermark { position: absolute; width: 90px; height: 90px; opacity: 0.5; background: url("https://raw.githubusercontent.com/ckfnr/gallery/refs/heads/main/cksite_logo_transparent.png") center/contain no-repeat; background-size: 90px 90px; -webkit-mask-image: url("https://raw.githubusercontent.com/ckfnr/gallery/refs/heads/main/cksite_logo_transparent.png"); -webkit-mask-size: contain; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; mask-image: url("https://raw.githubusercontent.com/ckfnr/gallery/refs/heads/main/cksite_logo_transparent.png"); mask-size: contain; mask-repeat: no-repeat; mask-position: center; pointer-events: none; } @media (max-width: 900px) { .profile-card-watermarks .ck-logo-watermark { width: 60px; height: 60px; background-size: 60px 60px; } } @media (max-width: 600px) { .profile-card-watermarks .ck-logo-watermark { width: 38px; height: 38px; background-size: 38px 38px; } .profile-card { min-width: 0; width: 95vw; max-width: 99vw; margin: 0 auto; } .about-me-blurb { max-width: 98vw; font-size: 1em; } }