/* --- PALET WARNA --- */
:root {
    --teal: #B4D4D6;
    --sage: #97A9A3;
    --cream: #FDF4D9;
    --mustard: #E3B557;
    --olive: #687959;
    --text-dark: #1f221c; /* Tinta hitam pudar */
    --paper-line: #b3a992; /* Garis pembatas kertas */
}

/* --- RESET & RESPONSIVE BASE --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Mencegah website tumpah/melebar ke samping (Overflow) */
html, body {
    max-width: 100%;
    overflow-x: hidden;
}

body {
    font-family: 'Lora', serif; /* Font Serif klasik untuk teks utama */
    background-color: var(--cream);
    color: var(--text-dark);
    line-height: 1.8;
    padding: 2% 5%; /* Memberikan border layaknya kertas margin */
}

/* Membuat semua gambar otomatis menyesuaikan wadahnya */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Menyembunyikan cursor bawaan HANYA jika perangkat menggunakan mouse/trackpad */
@media (pointer: fine) {
    body { cursor: none; }
}

/* --- TIPOGRAFI KHUSUS --- */
h1, h2, h3, h4, .masthead-nav a {
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
}
.mono-text {
    font-family: 'Space Mono', monospace;
    font-size: clamp(0.7rem, 2vw, 0.85rem); /* Ukuran teks dinamis */
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* --- TEXTURE KERTAS --- */
.paper-texture {
    position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
    pointer-events: none; z-index: 9999;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    opacity: 0.06;
    mix-blend-mode: multiply;
}

/* --- CUSTOM CURSOR: PRINT REGISTRATION MARK --- */
.cursor-print-mark {
    width: 35px; height: 35px;
    border: 1.5px solid var(--text-dark); border-radius: 50%;
    position: fixed; top: 0; left: 0;
    transform: translate(-50%, -50%);
    pointer-events: none; z-index: 10000;
    transition: transform 0.15s ease-out, border-color 0.3s ease;
    display: none; /* Sembunyikan secara default */
}

/* Tampilkan cursor custom hanya di desktop/mouse */
@media (pointer: fine) {
    .cursor-print-mark { display: block; }
}

.cursor-print-mark::before {
    content: ''; position: absolute; top: -6px; bottom: -6px; left: 50%; width: 1.5px;
    background-color: var(--text-dark); transform: translateX(-50%); transition: background-color 0.3s ease;
}
.cursor-print-mark::after {
    content: ''; position: absolute; left: -6px; right: -6px; top: 50%; height: 1.5px;
    background-color: var(--text-dark); transform: translateY(-50%); transition: background-color 0.3s ease;
}
.cursor-hover .cursor-print-mark {
    transform: translate(-50%, -50%) rotate(45deg) scale(1.3); border-color: var(--mustard);
}
.cursor-hover .cursor-print-mark::before, .cursor-hover .cursor-print-mark::after {
    background-color: var(--mustard);
}

/* --- HEADER MAJALAH (MASTHEAD) --- */
.masthead {
    border-bottom: 4px solid var(--text-dark); padding-bottom: 15px; margin-bottom: 40px;
}
.masthead-top {
    display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px;
    border-bottom: 1.5px solid var(--text-dark); border-top: 1.5px solid var(--text-dark);
    padding: 8px 0; margin-bottom: 20px; text-align: center;
}
.masthead-title { text-align: center; margin: 20px 0; }
.masthead-title h1 {
    font-size: clamp(4rem, 15vw, 10rem); /* Ukuran otomatis menyesuaikan layar */
    line-height: 0.9; letter-spacing: -3px; color: var(--text-dark);
}
.masthead-title p {
    font-size: clamp(1rem, 3vw, 1.5rem);
    letter-spacing: clamp(3px, 1vw, 10px);
    margin-top: 5px; color: var(--olive);
}
.masthead-nav {
    display: flex; justify-content: center; flex-wrap: wrap; gap: clamp(15px, 4vw, 40px);
    border-top: 1px solid var(--paper-line); padding-top: 15px;
}
.masthead-nav a { text-decoration: none; color: var(--text-dark); font-size: 1.1rem; }
.masthead-nav a:hover { color: var(--mustard); }

/* --- COVER SECTION --- */
.magazine-cover { margin-bottom: clamp(40px, 8vw, 80px); }
.cover-image-container {
    position: relative; width: 100%; height: clamp(50vh, 70vh, 80vh);
    border: 2px solid var(--text-dark); padding: 10px; background-color: var(--white);
    overflow: hidden;
}
.cover-image-container img { width: 100%; height: 100%; object-fit: cover; filter: sepia(30%) contrast(1.1) brightness(0.9); }
.cover-headlines {
    position: absolute; bottom: clamp(20px, 5vw, 40px); left: clamp(20px, 5vw, 40px);
    color: var(--cream); text-shadow: 2px 2px 4px rgba(0,0,0,0.5); z-index: 2; padding-right: 20px;
}
.headline-main {
    font-size: clamp(2.5rem, 8vw, 5rem);
    line-height: 1; margin-bottom: 15px; color: var(--mustard);
}
.headline-sub {
    font-family: 'Lora', serif; font-size: clamp(1rem, 3vw, 1.5rem); font-style: italic;
    border-left: 4px solid var(--mustard); padding-left: 15px;
}
.barcode {
    position: absolute; bottom: 20px; right: 20px; background: var(--cream);
    padding: 10px; border: 1px solid var(--text-dark); display: flex; flex-direction: column; align-items: center; z-index: 2;
}
.bar-lines {
    width: 80px; height: 35px; margin-bottom: 5px;
    background: repeating-linear-gradient(90deg, var(--text-dark), var(--text-dark) 2px, transparent 2px, transparent 4px, var(--text-dark) 4px, var(--text-dark) 8px, transparent 8px, transparent 10px);
}

/* --- ARTIKEL (SPREAD LAYOUT) --- */
.magazine-article {
    border-top: 6px double var(--text-dark); padding-top: 40px; margin-bottom: clamp(40px, 8vw, 80px);
}
.article-header { text-align: center; margin-bottom: 40px; }
.article-title { font-size: clamp(2.5rem, 6vw, 4rem); margin-bottom: 10px; }
.article-meta {
    border-bottom: 1px solid var(--text-dark); border-top: 1px solid var(--text-dark);
    display: inline-block; padding: 5px 20px; color: var(--olive);
}
.article-content {
    column-count: 2; column-gap: 50px; text-align: justify;
}
.drop-cap::first-letter {
    font-family: 'Oswald', sans-serif; font-size: clamp(4rem, 8vw, 5rem);
    float: left; line-height: 0.8; padding-right: 10px; padding-top: 5px; color: var(--olive);
}
.article-content p { margin-bottom: 20px; font-size: 1.15rem; }
.pull-quote {
    font-size: clamp(1.4rem, 3vw, 1.8rem); font-style: italic; text-align: center;
    margin: 30px 0; padding: 20px; border-top: 2px solid var(--mustard); border-bottom: 2px solid var(--mustard);
    color: var(--olive); break-inside: avoid;
}

/* --- JURNAL VISUAL (PHOTO ESSAY) --- */
.visual-journal { margin-bottom: clamp(40px, 8vw, 80px); border-top: 1.5px solid var(--text-dark); padding-top: 40px; }
.section-heading { font-size: clamp(2rem, 5vw, 2.5rem); margin-bottom: 30px; border-bottom: 4px solid var(--text-dark); display: inline-block; }
.photo-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px;
}
.photo-item { border: 1px solid var(--paper-line); padding: 10px; background: #fff; box-shadow: 2px 2px 5px rgba(0,0,0,0.05); }
.photo-item img { width: 100%; height: 250px; object-fit: cover; filter: sepia(20%) grayscale(20%); }
.caption { margin-top: 10px; text-align: right; color: var(--olive); }
.text-box { height: 100%; min-height: 250px; padding: 30px; display: flex; flex-direction: column; justify-content: center; border: 2px solid var(--text-dark); }
.mustard-bg { background-color: var(--mustard); color: var(--text-dark); }
.span-2 { grid-column: span 2; }

/* --- FOOTER / BACK COVER --- */
.back-cover {
    border: clamp(4px, 2vw, 10px) solid var(--text-dark); padding: clamp(20px, 5vw, 50px);
    background-color: var(--teal); display: flex; flex-direction: column; align-items: center; text-align: center;
}
.contact-box {
    width: 100%; max-width: 600px; background: var(--cream);
    padding: clamp(20px, 5vw, 40px); border: 2px solid var(--text-dark);
    box-shadow: 10px 10px 0px var(--olive); margin-bottom: 50px;
}
.contact-box h2 { font-size: clamp(2rem, 6vw, 3rem); margin-bottom: 10px; }
.contact-box p { font-size: 1.1rem; margin-bottom: 30px; }

.retro-form { display: flex; flex-direction: column; gap: 15px; margin-bottom: 30px; width: 100%; }
.retro-form input, .btn-retro {
    width: 100%; /* Memastikan tombol & input tidak meluap */
    padding: 15px; font-family: 'Space Mono', monospace;
    border: 1px solid var(--text-dark); font-size: 1rem;
}
.retro-form input { background: transparent; }
.btn-retro { background: var(--mustard); color: var(--text-dark); font-family: 'Oswald', sans-serif; font-size: 1.2rem; cursor: pointer; transition: all 0.3s; }
.btn-retro:hover { background: var(--text-dark); color: var(--cream); }
.contact-meta p { margin: 5px 0; border-bottom: 1px dotted var(--text-dark); word-break: break-all; }

.footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; width: 100%; border-top: 2px solid var(--text-dark); padding-top: 15px; text-align: center; }

/* --- ANIMASI REVEAL --- */
.reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s ease; }
.reveal.active { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; }

/* --- RESPONSIVITAS MOBILE/TABLET SPECIFIC --- */
@media (max-width: 900px) {
    .masthead-top { justify-content: center; }
    .article-content { column-count: 1; } /* Matikan 2 kolom teks menjadi 1 kolom agar mudah dibaca */
    .barcode { display: none; } /* Terlalu memakan tempat di layar kecil */
    .span-2 { grid-column: span 1; } /* Matikan pelebaran foto di tablet/hp */
}
@media (max-width: 600px) {
    body { padding: 5%; }
    .footer-bottom { flex-direction: column; align-items: center; }
    .contact-box { box-shadow: 5px 5px 0px var(--olive); }
}