:root {
--color-bg: #1d1d1d;
--color-pink: #ff007f;
--color-blue: #00c2cb;
--color-yellow: #f2e41b;
--font-heading: 'Permanent Marker', cursive;
--font-body: 'Poppins', sans-serif;
}
body,
html {
background-color: var(--color-bg);
font-family: var(--font-body);
color: #fff;
margin: 0;
padding: 0;
scroll-behavior: smooth;
overflow-x: hidden;
}
/* body::before,
html::before {
background-image: url('https://www.transparenttextures.com/patterns/low-contrast-linen.png');
opacity: 0.5;
z-index: -1;
} */
/* [BARU] CRT Scanlines Effect */
body::after {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
background-size: 100% 3px, 3px 100%;
z-index: 2;
pointer-events: none;
animation: flicker 0.15s infinite;
opacity: 0.5;
}
/* === Cover Splash Screen - Kaset === */
#cover-splash {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 100;
background-color: #000;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
flex-direction: column;
transition: opacity 0.8s ease-out;
}
#cover-splash.hidden {
opacity: 0;
pointer-events: none;
}
.cassette-player {
position: relative;
}
.cassette-tape {
width: 300px;
animation: spin 2s linear infinite;
}
.cover-content h1 {
font-family: var(--font-heading);
font-size: clamp(2.5rem, 10vw, 5rem);
color: var(--color-blue);
text-shadow: 3px 3px 0px var(--color-pink);
margin: 20px 0 0 0;
}
#enter-button {
background-color: var(--color-yellow);
color: #000;
border: none;
padding: 15px 35px;
font-family: var(--font-heading);
font-size: 1.5rem;
cursor: pointer;
margin-top: 30px;
box-shadow: 5px 5px 0px var(--color-pink);
transition: all 0.2s;
}
#enter-button:active {
transform: translate(5px, 5px);
box-shadow: none;
}
/* === Main Content Styling === */
main {
padding-bottom: 80px;
}
.container {
max-width: 900px;
margin: 0 auto;
padding: 20px;
}
header h2 {
font-family: var(--font-heading);
font-size: 3.5rem;
text-align: center;
color: var(--color-yellow);
text-shadow: 3px 3px 0px var(--color-blue);
}
marquee {
background-color: var(--color-pink);
color: #fff;
font-family: var(--font-heading);
font-size: 1.5rem;
padding: 10px;
margin: 20px 0;
transform: rotate(-1deg);
}
section {
padding: 40px 0;
}
.animated {
opacity: 0;
transform: translateY(30px);
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.animated.visible {
opacity: 1;
transform: translateY(0);
}
.animated.delay-1 {
transition-delay: 0.2s;
}
.section-title {
font-family: var(--font-heading);
font-size: 2.5rem;
display: inline-block;
background-color: var(--color-blue);
color: #000;
padding: 5px 15px;
transform: rotate(-3deg);
margin-bottom: 30px;
}
#mading-info {
background-image: url('https://www.transparenttextures.com/patterns/cork-wallet.png');
background-color: #b99976;
padding: 30px;
border-radius: 10px;
box-shadow: 0 0 0 10px #71583a;
}
.notes-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}
.note {
background-color: #ffffa5;
color: #333;
padding: 20px;
box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);
transition: transform 0.2s;
}
.note:hover {
transform: scale(1.05) rotate(3deg);
z-index: 5;
}
.note h3 {
font-family: var(--font-heading);
margin: 0 0 10px 0;
border-bottom: 2px solid var(--color-pink);
}
.note:nth-child(2) {
transform: rotate(2deg);
background-color: #a5d2ff;
}
.note:nth-child(3) {
transform: rotate(-2deg);
background-color: #a5ffb6;
}
.btn {
display: inline-block;
text-decoration: none;
margin-top: 15px;
background-color: var(--color-pink);
color: #fff;
padding: 8px 15px;
font-weight: bold;
}
/* [BARU] Countdown */
#countdown {
display: flex;
justify-content: center;
gap: 10px;
margin: 20px 0;
font-family: var(--font-heading);
font-size: 1.8rem;
text-align: center;
}
.time-box {
background-color: #000;
padding: 5px 10px;
border: 2px solid var(--color-yellow);
}
/* [BARU] Galeri & Lightbox */
.gallery-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}
.gallery-item img {
width: 100%;
border: 10px solid #fff;
box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
cursor: pointer;
transition: transform 0.3s;
}
.gallery-item img:hover {
transform: scale(1.05);
}
#lightbox {
position: fixed;
z-index: 1000;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.85);
display: none;
justify-content: center;
align-items: center;
}
#lightbox.active {
display: flex;
}
#lightbox img {
max-width: 90%;
max-height: 80%;
}
/* [BARU] Absen / Buku Kenangan */
.slambook-form {
background-color: #fff;
color: #333;
padding: 30px;
border: 5px dashed var(--color-pink);
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
font-family: var(--font-heading);
color: var(--color-blue);
}
.form-group input {
width: 100%;
padding: 10px;
border: none;
border-bottom: 2px dotted #ccc;
background: transparent;
font-family: var(--font-body);
font-size: 1rem;
box-sizing: border-box;
}
.form-group input:focus {
outline: none;
border-bottom-color: var(--color-pink);
}
/* [BARU] Bottom Nav */
.bottom-nav {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background-color: rgba(0, 0, 0, 0.8);
backdrop-filter: blur(5px);
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.5);
display: none;
justify-content: space-around;
padding: 8px 0;
z-index: 99;
}
.bottom-nav.visible {
display: flex;
}
.nav-item {
display: flex;
flex-direction: column;
align-items: center;
color: #fff;
text-decoration: none;
transition: color 0.3s;
}
.nav-item.active,
.nav-item:hover {
color: var(--color-yellow);
}
.nav-icon {
font-size: 1.5rem;
}
.nav-label {
font-size: 0.7rem;
font-family: 'Poppins';
}
/* [BARU] Music Control */
#music-control {
background-color: var(--color-blue);
color: #000;
border-radius: 50%;
width: 50px;
height: 50px;
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 3px 3px 0px var(--color-yellow);
}
footer {
text-align: center;
margin-top: 50px;
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes flicker {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0.8;
}
}
Reuni Alumni: Bersama Kita Kenang Masa Lalu
Bersama Kita Kenang Masa Lalu Angkatan 2010
MADING INFO
WHAT'S UP?
Reuni Akbar! Ketemu lagi sama temen-temen sekelas, gebetan lama & guru-guru dari
SMA Negeri 1 Jakarta.
WHEN & WHERE?
Hari: Thursday, 2026-04-30
Waktu: 19:00 -
23:00
Tempat: Restaurant The Terrace
Alamat:
{alamat_venue}
Lihat Peta
OOTD CHECK!
Smart Casual - Pake baju paling keren gaya 90an/2000an-mu! Kemeja flanel, kaos band, celana
baggy. Bebas!