/* ==========================================================================
   Home — index.html
   Gabungan seluruh <style> yang sebelumnya inline di index.html (blok head
   + dua blok embed Webflow di body), urutan aslinya dipertahankan.

   PENTING: attribute selector [line]/[letter]/[opacity]/[scale] menyembunyikan
   elemen (opacity 0 / scale 0) sampai dianimasikan oleh main.js — jangan
   dihapus, nanti konten home tidak muncul.
   ========================================================================== */

/* ------------------- Blok 1: dasar & hook animasi home ------------------- */

.wf-force-outline-none[tabindex="-1"]:focus {
  outline: none;
}

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html,
body {
  overscroll-behavior: none;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  height: auto;
  scroll-behavior: auto;
}

a {
  color: inherit;
  text-decoration: none;
  transition: opacity .3s ease;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Kondisi awal elemen yang di-reveal oleh main.js (lihat catatan di atas) */
[line],
[letter],
[opacity] {
  opacity: 0;
}

[scale] {
  transform: scale(0);
  transform-origin: 50% 50%;
}

.line-child,
.letter-child {
  padding-bottom: .15em;
}

.line-mask-child-mask,
.letter-mask-child-mask {
  margin-bottom: -.15em;
}

/* Hero (section-w): video background + canvas Three.js */
.section-w {
  position: relative;
  overflow: hidden;
}

.section-w .video-hero-bg {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 100%;
  height: auto;
  z-index: 0;
}

.section-w .mask-reveal-canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.section-w .section.hero-home {
  background-color: #fff;
  position: relative;
  z-index: 0;
}

.footer-svg-w,
.footer-nothin-svg {
  overflow: visible;
}

.footer-nothin-svg path {
  will-change: transform;
}

#works .line-child {
  margin-bottom: 1.25rem;
  font-size: 1.5625rem;
  font-weight: 500;
  line-height: 1;
}

@media (max-width: 768px) {
  .work-list-img {
    grid-template-columns: 1fr !important;
  }

  .work-item-img {
    grid-column: 1 / -1 !important;
    height: auto !important;
  }

  .work-item-img .work-img {
    height: auto !important;
  }
}

/* --------------- Blok 2: variables, scrollbar, reset, selection ----------
   Skala rem home: 1rem = 1vw di desktop (layout.css bergantung pada ini). */

html {
  font-size: calc(0rem + 1vw);
}

@media screen and (min-width: 992px) {
  html {
    font-size: calc(0rem + 1vw);
  }
}

@media screen and (max-width: 991px) {
  html {
    font-size: 1rem;
  }
}

/* Sembunyikan scrollbar di semua browser */
body ::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;
}

html {
  scrollbar-width: none;
}

*,
*:after,
*:before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  -webkit-font-smoothing: antialiased;
  width: 100%;
  height: auto;
}

input:focus,
select:focus,
textarea:focus,
button:focus {
  outline: none;
}

a {
  color: inherit;
}

::selection {
  background-color: #121212;
  color: white;
  text-shadow: none;
}

::-moz-selection {
  background-color: #121212;
  color: white;
  text-shadow: none;
}

.form_w ::selection {
  background-color: #2500AD;
  color: #FFFFFF;
  text-shadow: none;
}

.form_w ::-moz-selection {
  background-color: #2500AD;
  color: #FFFFFF;
  text-shadow: none;
}

.hide {
  display: none !important;
}

figure {
  margin: 0 !important;
  padding: 0 !important;
}

/* Hapus margin pertama/terakhir di dalam rich text Webflow */
.w-richtext > :not(div):first-child,
.w-richtext > div:first-child > :first-child {
  margin-top: 0 !important;
}

.w-richtext > :last-child,
.w-richtext ol li:last-child,
.w-richtext ul li:last-child {
  margin-bottom: 0 !important;
}

/* ------------------ Blok 3: utility hide per breakpoint ------------------ */

@media screen and (max-width: 991px) {
  .hide,
  .hide-tablet {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .hide-landscape {
    display: none !important;
  }
}

@media screen and (max-width: 479px) {
  .hide-mobile {
    display: none !important;
  }
}
