*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family:Arial,sans-serif;
}

:root{
  --cyan:#29c7ff;
  --muted:#9fc2d1;
}

html{
  scroll-behavior:smooth;
}

body{
  background:transparent;
  color:white;
  overflow-x:hidden;
  font-size:16px;
}

/* HEADER */

header{
  position:fixed;
  top:18px;
  left:50%;
  transform:translateX(-50%);

  width:auto;
  min-width:760px;

  padding:12px 26px;
  border-radius:24px;

  display:flex;
  align-items:center;
  justify-content:center;
  gap:42px;

  z-index:9999;

  background:rgba(255,255,255,.06);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);

  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 8px 30px rgba(0,0,0,.22);

  transition:transform .45s ease, opacity .45s ease;
}

header.hide-header{
  transform:translateX(-50%) translateY(-140%);
  opacity:0;
}

.logo{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  text-decoration:none;
  color:white;
}

.logo img{
  width:46px;
  height:46px;
  border-radius:14px;
  object-fit:cover;
}

.logo h1{
  font-size:2.5rem;
  font-weight:800;
  color:white;
}

.logo span{
  color:var(--cyan);
}

nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
}

nav a{
  color:white;
  text-decoration:none;
  font-size:1rem;
  font-weight:600;
  position:relative;
  transition:.3s;
}

nav a:hover,
nav a.active{
  color:var(--cyan);
}

nav a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-8px;
  width:0;
  height:2px;
  background:var(--cyan);
  transition:.35s;
}

nav a:hover::after,
nav a.active::after{
  width:100%;
}

/* PAGE HEAD */

.page-head{
  padding:140px 7% 20px;
}

.eyebrow{
  color:var(--cyan);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:2px;
  margin-bottom:14px;
}

.page-head h1{
  font-size:42px;
  font-weight:900;
}

.page-head span,
.section-title span{
  color:var(--cyan);
}

/* HOME HERO */

.hero-home{
  position:relative;
  min-height:calc(100vh - 120px);
  overflow:hidden;
  background:transparent;

  display:flex;
  align-items:center;
  justify-content:center;

  padding:0;

  animation:heroEnter 1.2s ease both;
}

.hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
  mix-blend-mode:normal;
}

.hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;

  opacity:1;

  filter:
    brightness(1.12)
    contrast(1.18)
    saturate(1.25);

  transform:scale(1.02);
  animation:heroSoftZoom 8s ease-in-out infinite alternate;
}

.hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;

  background:
    linear-gradient(
      to bottom,
      rgba(0,0,0,.08) 0%,
      rgba(0,0,0,.12) 42%,
      rgba(7,0,25,.55) 100%
    );
}

.hero-home::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;

  height:180px;

  z-index:2;

  background:
    linear-gradient(
      to bottom,
      rgba(7,0,25,0),
      rgba(7,0,25,.82) 75%,
      #070019 100%
    );

  pointer-events:none;
}

.hero-minimal-text,
.scroll-indicator,
.hero-main-logo{
  display:none;
}

/* HERO TAGS */

.hero-tags{
  display:flex;
  position:absolute;
  left:50%;
  bottom:70px;
  transform:translateX(-50%);
  z-index:5;

  justify-content:center;
  gap:16px;
  flex-wrap:wrap;
}

.hero-tags span{
  padding:12px 22px;
  border-radius:999px;

  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);

  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);

  color:white;
  font-size:13px;
  font-weight:700;

  transition:.3s;
}

.hero-tags span:hover{
  transform:translateY(-4px);
  background:rgba(255,255,255,.14);
}

/* WELCOME */

.welcome-section{
  position:relative;
  min-height:70vh;

  background:transparent;
  margin-top:-1px;

  display:flex;
  align-items:center;
  justify-content:center;

  text-align:center;

  padding:60px 7% 30px;
  overflow:hidden;

  opacity:0;
  transform:translateY(60px) scale(.95);
  transition:1s ease;
}

.welcome-section.show{
  opacity:1;
  transform:translateY(0) scale(1);
}

.welcome-box{
  position:relative;
  z-index:2;
}

.welcome-logo{
  width:520px;
  max-width:90vw;

  transform:translateY(-60px);

  filter:drop-shadow(0 0 24px rgba(120,0,255,.35));
  animation:welcomeFloat 4s ease-in-out infinite;
}

.welcome-mini,
.welcome-section h2,
.welcome-desc{
  display:none;
}


/* NORMAL HERO / OLD HOME */

.hero{
  width:100%;
  max-width:1300px;
  margin:0 auto;

  min-height:620px;

  display:grid;
  grid-template-columns:1fr 420px;
  align-items:center;

  padding:120px 6% 80px;
  gap:60px;
}

.hero h2{
  font-size:clamp(48px,5vw,76px);
  line-height:1;
  margin-bottom:24px;
  font-weight:900;
}

.hero h2 span{
  color:var(--cyan);
}

.hero p{
  font-size:clamp(18px,1.5vw,24px);
  line-height:1.8;
  color:#d4e2ea;
  max-width:760px;
}

/* BUTTONS */

.hero-buttons{
  margin-top:36px;
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}

.btn{
  display:inline-block;
  padding:16px 34px;
  border-radius:18px;
  text-decoration:none;
  font-size:18px;
  font-weight:800;
  transition:.3s;
}

.btn-primary{
  background:var(--cyan);
  color:#00131f;
}

.btn-outline{
  border:2px solid var(--cyan);
  color:var(--cyan);
}

/* SLIDER */

.hero-slider{
  position:relative;
  width:100%;
  max-width:420px;
  aspect-ratio:1/1;
  justify-self:center;
  border-radius:28px;
  overflow:hidden;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
}

.slider-track{
  width:100%;
  height:100%;
  position:relative;
}

.slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:1s;
}

.slide.active{
  opacity:1;
}

.slide img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.slider-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  border:none;
  border-radius:50%;
  background:rgba(0,0,0,.42);
  color:white;
  font-size:24px;
  cursor:pointer;
  z-index:10;
}

.prev{
  left:16px;
}

.next{
  right:16px;
}

/* SECTION */

.section{
  max-width:1400px;
  margin:0 auto;
  padding:80px 6%;
}

.section-title{
  font-size:42px;
  margin-bottom:36px;
  font-weight:900;
  text-align:center;
}

/* PROJECT GRID */

.project-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:28px;
}

.project-card{
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.10);
  border-radius:28px;
  overflow:hidden;
}

.project-card img{
  width:100%;
  height:260px;
  object-fit:cover;
}

.project-info{
  padding:26px;
}

.project-info h3{
  font-size:25px;
  margin-bottom:10px;
}

.project-info p{
  color:#d6e3eb;
  line-height:1.8;
}

/* VIDEO */

.video-section{
  padding:60px 6%;
}

.video-card{
  max-width:900px;
  margin:0 auto;
  display:flex;
  justify-content:center;
  align-items:center;
}

.video-card video{
  width:100%;
  max-width:360px;
  display:block;
  margin:0 auto;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 45px rgba(0,0,0,.35);
  background:black;
}

/* SHOWCASE */

.showcase-section{
  padding:120px 7% 100px;
}

.showcase-grid{
  display:grid;
  gap:28px;
  margin-bottom:80px;
}

.character-grid,
.showcase-grid.character-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:28px;
  align-items:start;
  margin-bottom:80px;
}

.character-grid .showcase-card,
.showcase-grid.character-grid .showcase-card{
  position:relative;
  width:100%;
  height:280px;
  border-radius:28px;
  overflow:hidden;
  background:#111;
  transition:.35s;
}

.character-grid .showcase-card:hover,
.showcase-grid.character-grid .showcase-card:hover{
  transform:translateY(-8px);
}

.character-grid .showcase-card img,
.showcase-grid.character-grid .showcase-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.character-grid .showcase-content,
.showcase-grid.character-grid .showcase-content{
  position:absolute;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);

  width:68%;
  min-width:unset;
  max-width:unset;

  padding:12px 14px;
  border-radius:20px;

  background:rgba(255,255,255,.12);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);

  border:1px solid rgba(255,255,255,.18);
  text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}

.character-grid .showcase-content h3,
.showcase-grid.character-grid .showcase-content h3{
  font-size:20px;
  line-height:1.15;
  font-weight:900;
  margin-bottom:6px;
}

.character-grid .showcase-content p,
.showcase-grid.character-grid .showcase-content p{
  color:#e2e2e2;
  font-size:11px;
  margin-bottom:10px;
}

.character-grid .showcase-content button,
.showcase-grid.character-grid .showcase-content button{
  padding:8px 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.12);
  color:white;
  font-size:10px;
  font-weight:700;
  cursor:pointer;
  transition:.3s;
}

.character-grid .showcase-content button:hover,
.showcase-grid.character-grid .showcase-content button:hover{
  background:white;
  color:#111;
}

/* PRODUCT MINI GRID */

.product-mini-grid{
  display:flex;
  justify-content:center;
  gap:28px;
  flex-wrap:wrap;
  margin-bottom:80px;
}

.product-mini-grid .showcase-card{
  width:220px;
  height:170px;
  border-radius:24px;
  overflow:hidden;
  position:relative;
  flex:0 0 220px;
  background:#111;
}

.product-mini-grid .showcase-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.product-mini-grid .showcase-content{
  position:absolute;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  width:78%;
  padding:14px;
  border-radius:18px;
  min-width:unset;
  max-width:unset;
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.18);
  text-align:center;
}

.product-mini-grid .showcase-content h3{
  font-size:15px;
}

.product-mini-grid .showcase-content p{
  font-size:9px;
  margin-bottom:8px;
}

.product-mini-grid .showcase-content button{
  padding:6px 14px;
  font-size:9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.12);
  color:white;
}

/* PROJECT SET */

.project-set{
  margin-bottom:70px;
  padding:34px;
  border-radius:30px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.10);
}

.project-set h3{
  font-size:32px;
  color:var(--cyan);
  margin-bottom:10px;
}

.project-set p{
  color:#d6e3eb;
  line-height:1.8;
  margin-bottom:24px;
}

.project-gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px;
}

.project-gallery img{
  width:100%;
  height:260px;
  object-fit:cover;
  border-radius:22px;
  cursor:pointer;
  transition:.3s;
}

.project-gallery img:hover{
  transform:translateY(-8px);
  box-shadow:0 18px 40px rgba(0,0,0,.25);
}

/* LIGHTBOX */

.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.9);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9999;
}

.lightbox.show{
  display:flex;
}

.lightbox img{
  max-width:94vw;
  max-height:88vh;
  border-radius:18px;
}

.lightbox button{
  position:absolute;
  top:24px;
  right:24px;
  width:50px;
  height:50px;
  border:none;
  border-radius:50%;
  background:var(--cyan);
  color:#00131f;
  font-size:30px;
  cursor:pointer;
}

/* GALLERY MODAL */

.gallery-modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.92);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:99999;
  padding:24px;
}

.gallery-modal.show{
  display:flex;
}

.gallery-image{
  max-width:86vw;
  max-height:86vh;
  border-radius:24px;
  object-fit:contain;
  border:1px solid rgba(255,255,255,.18);
}

.close-gallery{
  position:absolute;
  top:26px;
  right:34px;
  width:52px;
  height:52px;
  border:none;
  border-radius:50%;
  background:var(--cyan);
  color:#00131f;
  font-size:34px;
  cursor:pointer;
  z-index:2;
}

.gallery-prev,
.gallery-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:58px;
  height:58px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.16);
  color:white;
  font-size:30px;
  cursor:pointer;
  z-index:2;
}

.gallery-prev{
  left:36px;
}

.gallery-next{
  right:36px;
}

/* INFO */

.center-head{
  text-align:center;
}

.center-head p{
  margin-left:auto;
  margin-right:auto;
}

.info-section{
  max-width:1200px;
  margin:0 auto;
  padding:80px 7%;
}

.info-card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:34px;
  padding:50px;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 20px 60px rgba(0,0,0,.22);
}

.info-card h2{
  font-size:42px;
  color:var(--cyan);
  margin-bottom:20px;
}

.info-card p{
  font-size:20px;
  line-height:1.9;
  color:#d6e3eb;
}

.mini-grid,
.service-grid,
.contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:26px;
  margin-top:34px;
}

.mini-card,
.service-card,
.contact-card{
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  padding:34px;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:.3s;
}

.mini-card:hover,
.service-card:hover,
.contact-card:hover{
  transform:translateY(-8px);
  box-shadow:0 18px 45px rgba(0,0,0,.25);
}

.mini-card h3,
.service-card h3,
.contact-card h3{
  color:var(--cyan);
  font-size:26px;
  margin-bottom:14px;
}

.mini-card p,
.service-card p,
.contact-card p{
  color:#d6e3eb;
  font-size:18px;
  line-height:1.7;
}

/* FOOTER */

footer{
  text-align:center;
  padding:40px;
  color:#8ca6b6;
}

/* ANIMATION */

@keyframes heroEnter{
  from{
    opacity:0;
    transform:scale(1.02);
  }

  to{
    opacity:1;
    transform:scale(1);
  }
}

@keyframes heroSoftZoom{
  from{
    transform:scale(1.02);
  }

  to{
    transform:scale(1.06);
  }
}

@keyframes welcomeFloat{
  0%,100%{
    transform:translateY(0);
  }

  50%{
    transform:translateY(-12px);
  }
}

/* TABLET */

@media(max-width:1100px){
  .hero{
    grid-template-columns:1fr;
    text-align:center;
    min-height:auto;
  }

  .hero-buttons{
    justify-content:center;
  }

  .hero-slider{
    max-width:460px;
  }
}

/* MOBILE */

@media(max-width:900px){
  header{
    width:94%;
    min-width:unset;
    padding:14px 18px;
    border-radius:22px;
    gap:22px;
  }

  .logo img{
    width:40px;
    height:40px;
  }

  .logo h1{
    font-size:1.8rem;
  }

  nav{
    gap:18px;
  }

  nav a{
    font-size:.9rem;
  }

  .hero-home{
    min-height:calc(100vh - 100px);
  }

  .hero-tags{
    bottom:44px;
    width:90%;
    gap:10px;
  }

  .hero-tags span{
    font-size:10px;
    padding:9px 12px;
  }

  .page-head{
    padding:120px 5% 10px;
  }

  .page-head h1{
    font-size:32px;
  }

  .hero{
    padding:120px 5% 50px;
    gap:36px;
  }

  .hero h2{
    font-size:48px;
  }

  .hero p{
    font-size:18px;
  }

  .hero-slider{
    max-width:100%;
  }

  .section{
    padding:78px 5%;
  }

  .section-title{
    font-size:32px;
    margin-bottom:28px;
  }

  .showcase-section{
    padding:120px 5% 80px;
  }

  .character-grid,
  .showcase-grid.character-grid{
    grid-template-columns:1fr;
  }

  .character-grid .showcase-card,
  .showcase-grid.character-grid .showcase-card{
    height:300px;
  }

  .welcome-logo{
    width:820px;
  }

  .video-card video{
    max-width:300px;
  }

  .project-card img{
    height:auto;
  }

  .gallery-image{
    max-width:92vw;
    max-height:78vh;
  }

  .gallery-prev,
  .gallery-next{
    width:48px;
    height:48px;
    font-size:24px;
  }

  .gallery-prev{
    left:14px;
  }

  .gallery-next{
    right:14px;
  }

  .info-section{
    padding:60px 5%;
  }

  .info-card{
    padding:30px;
  }

  .info-card h2{
    font-size:32px;
  }

  .info-card p{
    font-size:18px;
  }
}/* ===== FIX BOTTOM HERO CLEAR ===== */

.hero-home::after{

  height:300px !important;

  background:
    linear-gradient(
      to bottom,
      rgba(7,0,25,0),
      rgba(7,0,25,.65) 65%,
      #070019 100%
    ) !important;

}

/* ทำให้ปุ่มชัดขึ้น */

.hero-tags{
  z-index:20 !important;
}

.hero-tags span{

  background:rgba(255,255,255,.12) !important;

  border:1px solid rgba(255,255,255,.18) !important;

  color:white !important;

  backdrop-filter:blur(18px);

  box-shadow:
    0 8px 20px rgba(0,0,0,.25);

}

/* เพิ่มแสงใต้ปุ่ม */

.hero-tags span:hover{

  background:rgba(255,255,255,.18) !important;

  transform:translateY(-4px);

}
/* WELCOME ขยับขึ้น */
.welcome-section{
  min-height:70vh !important;
  padding:60px 7% 30px !important;
}

.welcome-logo{
  width:520px !important;
  max-width:90vw !important;
  transform:translateY(-60px);
}

/* =========================
   WORK SLIDER CINEMATIC
========================= */

.work-slider-section{
  position:relative;
  overflow:hidden;

  background:transparent;

  padding:60px 0 100px;

  margin-top:-40px;
}

.work-slider-section::before,
.work-slider-section::after{
  content:"";
  position:absolute;
  top:0;
  width:180px;
  height:100%;
  z-index:5;
  pointer-events:none;
  display:none !important;
}

.work-slider-section::before{
  left:0;

  background:
    linear-gradient(
      to right,
      #070019 0%,
      rgba(7,0,25,0) 100%
    );
}

.work-slider-section::after{
  right:0;

  background:
    linear-gradient(
      to left,
      #070019 0%,
      rgba(7,0,25,0) 100%
    );
}

.work-slider{

  display:flex;
  align-items:center;
  gap:36px;

  width:max-content;

  animation:sliderMove 45s linear infinite;

  padding:70px 0;
}

.work-slider:hover{
  animation-play-state:paused;
}

.work-slider img{

  width:460px;
  height:300px;

  object-fit:cover;

  border-radius:34px;

  flex-shrink:0;

  box-shadow:
    0 20px 55px rgba(0,0,0,.38);

  transition:.45s ease;

  transform:
    perspective(1400px)
    rotateY(-6deg)
    scale(1);

  border:1px solid rgba(255,255,255,.08);

}

.work-slider img:nth-child(even){

  transform:
    perspective(1400px)
    rotateY(6deg)
    rotateX(-2deg);

}

.work-slider img:hover{

  transform:
    scale(1.08)
    rotateY(0deg);

  box-shadow:
    0 28px 80px rgba(140,0,255,.45);

}

/* ANIMATION */

@keyframes sliderMove{

  from{
    transform:translateX(0);
  }

  to{
    transform:translateX(-50%);
  }

}
/* SHAPE PROJECT CARD */

.character-grid,
.showcase-grid.character-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:90px 38px;
  align-items:start;
}

/* MOLYGON STYLE CARD */

.character-grid,
.showcase-grid.character-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:90px 38px;
}

.shape-card{
  position:relative;
  height:520px !important;
  overflow:visible !important;
  background:transparent !important;
  border-radius:0 !important;
  margin-bottom:80px;
}

.shape-card .showcase-shape{
  display:none !important;
}

.shape-card .showcase-character{
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);

  width:86% !important;
  height:430px !important;
  object-fit:cover !important;

  border-radius:
  38% 52% 10% 14% /
  28% 42% 12% 16% !important;

transform:
  translateX(-50%)
  rotate(-1.8deg);

  z-index:2;
}

.shape-card .showcase-content{
  position:absolute !important;
  left:50% !important;
  bottom:0 !important;
  transform:translateX(-50%) !important;

  width:58% !important;
  padding:22px 18px !important;

  border-radius:28px !important;

  background:linear-gradient(
    135deg,
    rgba(75,120,160,.55),
    rgba(120,75,90,.50)
  ) !important;

  backdrop-filter:blur(18px) !important;
  -webkit-backdrop-filter:blur(18px) !important;

  border:1px solid rgba(255,255,255,.22) !important;

  z-index:5 !important;

  box-shadow:
    0 24px 50px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.18);
}

.shape-card .showcase-content h3{
  font-size:22px !important;
  line-height:1.15 !important;
  margin-bottom:8px !important;
}

.shape-card .showcase-content p{
  font-size:12px !important;
  margin-bottom:16px !important;
}

.shape-card .showcase-content button{
  padding:10px 24px !important;
  font-size:11px !important;
  border-radius:999px !important;
}
.shape-card:nth-child(even) .showcase-character{
  border-radius:
    52% 36% 14% 8% /
    34% 26% 18% 10% !important;

  transform:
    translateX(-50%)
    rotate(1.8deg);
}

.shape-card:nth-child(3n) .showcase-character{
  border-radius:
    42% 58% 8% 18% /
    26% 44% 12% 22% !important;

  transform:
    translateX(-50%)
    rotate(-2.5deg);
}
.shape-card:nth-child(3n) .showcase-character{
  border-radius:
    42% 58% 8% 18% /
    26% 44% 12% 22% !important;

  transform:
    translateX(-50%)
    rotate(-2.5deg);
}

/* =========================
   HOVER EFFECT
========================= */

.shape-card{
  transition:.45s ease;
}

.shape-card:hover{
  transform:translateY(-12px);
}

.shape-card .showcase-character{
  transition:.6s ease;
}

.shape-card:hover .showcase-character{
  transform:
    translateX(-50%)
    rotate(-1deg)
    scale(1.04);
}

/* GLOW */

.shape-card::after{
  content:"";
  position:absolute;

  inset:auto 20% -30px 20%;

  height:60px;

  background:rgba(120,0,255,.35);

  filter:blur(40px);

  z-index:0;
}
/* =========================
   MOBILE RESPONSIVE
========================= */

@media(max-width:900px){

  header{
    padding:16px 24px !important;
  }

  .logo h1{
    font-size:34px !important;
  }

  nav{
    gap:18px !important;
    flex-wrap:wrap;
    justify-content:center;
  }

  nav a{
    font-size:15px !important;
  }

  /* HERO */

  .hero-home{
    min-height:88vh !important;
  }

  .hero-bg img{
    object-fit:cover !important;
    object-position:center !important;
    transform:scale(1.08);
  }

  /* WELCOME */

  .welcome-logo{
    width:95vw !important;
  }

  /* PROJECT GRID */

  .character-grid,
  .showcase-grid.character-grid,
  .project-grid{
    grid-template-columns:1fr !important;
    gap:100px !important;
  }

  .shape-card{
    height:500px !important;
    margin-bottom:40px !important;
  }

  .shape-card .showcase-character{
    width:92% !important;
    height:420px !important;
  }

  .shape-card .showcase-content{
    width:68% !important;
    bottom:-10px !important;
  }

  .shape-card .showcase-content h3{
    font-size:24px !important;
  }

  .shape-card .showcase-content p{
    font-size:14px !important;
  }

  /* VIDEO */

  .video-card{
    border-radius:24px !important;
    overflow:hidden;
  }

  .video-card video{
    height:240px !important;
    object-fit:cover;
  }

}

/* SMALL PHONE */

@media(max-width:600px){

  .logo img{
    width:54px !important;
    height:54px !important;
  }

  .logo h1{
    font-size:28px !important;
  }

  nav{
    gap:14px !important;
  }

  nav a{
    font-size:14px !important;
  }

  .hero-home{
    min-height:78vh !important;
  }

  .welcome-logo{
    width:92vw !important;
  }

  .shape-card{
    height:460px !important;
  }

  .shape-card .showcase-character{
    height:390px !important;
  }

  .shape-card .showcase-content{
    width:74% !important;
    padding:18px 16px !important;
  }

  .shape-card .showcase-content h3{
    font-size:20px !important;
  }

  .section-title{
    font-size:42px !important;
  }

}
@media(max-width:600px){

  header{
    top:12px !important;
    width:92% !important;
    min-width:unset !important;
    padding:14px 16px !important;
    flex-direction:column !important;
    gap:12px !important;
  }

  .logo img{
    width:46px !important;
    height:46px !important;
  }

  .logo h1{
    font-size:28px !important;
  }

  nav{
    width:100% !important;
    display:flex !important;
    flex-direction:row !important;
    justify-content:center !important;
    flex-wrap:wrap !important;
    gap:10px 16px !important;
  }

  nav a{
    font-size:13px !important;
  }
    .video-section{
    padding:80px 18px !important;
  }

  .video-card{
    width:100% !important;
    border-radius:24px !important;
    overflow:hidden !important;
  }

  .video-card video{
    width:100% !important;
    height:auto !important;

    min-height:240px !important;

    object-fit:cover !important;

    display:block;
  }

}
@media(max-width:600px){

  .hero-bg img{
    width:100% !important;
    height:100% !important;

    object-fit:contain !important;
    object-position:center center !important;

    background:transparent;

    transform:none !important;
  }

}
/* =========================
   HERO CINEMATIC EFFECT
========================= */

.hero-home{
  position:relative;
  overflow:hidden;
}

/* แสงเรืองหลัง */

.hero-home::before{
  content:"";

  position:absolute;
  inset:-20%;

  background:
    radial-gradient(circle at 50% 35%,
      rgba(255,0,255,.28),
      transparent 35%),

    radial-gradient(circle at 20% 50%,
      rgba(0,180,255,.18),
      transparent 30%),

    radial-gradient(circle at 80% 40%,
      rgba(255,255,255,.10),
      transparent 25%);

  filter:blur(60px);

  animation:heroGlow 8s ease-in-out infinite alternate;

  z-index:1;
}

/* แสงวิ่ง */

.hero-home::after{
  content:"";

  position:absolute;

  top:-20%;
  left:-30%;

  width:45%;
  height:160%;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.12),
      transparent
    );

  transform:rotate(12deg);

  filter:blur(22px);

  animation:lightSweep 7s linear infinite;

  z-index:2;
}

/* รูป */

.hero-bg{
  position:relative;
  z-index:3;
}

.hero-bg img{

  animation:
    heroFloat 6s ease-in-out infinite;

  filter:
    saturate(1.1)
    contrast(1.06)
    brightness(1.02);

}

/* เอฟเฟคลอย */

@keyframes heroFloat{

  0%{
    transform:scale(1) translateY(0px);
  }

  50%{
    transform:scale(1.02) translateY(-10px);
  }

  100%{
    transform:scale(1) translateY(0px);
  }

}

/* glow */

@keyframes heroGlow{

  0%{
    transform:scale(1);
    opacity:.8;
  }

  100%{
    transform:scale(1.1);
    opacity:1;
  }

}

/* แสงวิ่ง */

@keyframes lightSweep{

  0%{
    transform:
      translateX(-120%)
      rotate(12deg);
  }

  100%{
    transform:
      translateX(320%)
      rotate(12deg);
  }

}

/* =========================
   CLEAN COLOR BLEND
========================= */

.welcome-section{

  position:relative;

  margin-top:-120px !important;

  padding-top:180px !important;

  background:
    linear-gradient(
      to bottom,

      rgba(25,0,70,.15) 0%,
      rgba(20,0,55,.55) 25%,
      rgba(10,0,35,.92) 60%,
      #070019 100%
    ) !important;

}.hero-home{
  position:relative;
}

.hero-home::after{
  content:"";

  position:absolute;
  left:0;
  right:0;
  bottom:0;

  height:220px;

  background:
    linear-gradient(
      to bottom,
      rgba(7,0,25,0),
      rgba(7,0,25,.78),
      #070019
    );

  z-index:5;
}
/* =========================
   GLOBAL SPACE BACKGROUND
========================= */

body{

  background:
    radial-gradient(circle at top,
      #170038 0%,
      #090018 45%,
      #050010 100%);

  color:white;

  overflow-x:hidden;

  position:relative;
}

/* ดาว */

body::before{

  content:"";

  position:fixed;
  inset:0;

  background-image:
    radial-gradient(rgba(255,255,255,.9) 1px, transparent 1px),
    radial-gradient(rgba(120,180,255,.6) 1px, transparent 1px),
    radial-gradient(rgba(255,0,255,.45) 1px, transparent 1px);

  background-size:
    140px 140px,
    220px 220px,
    320px 320px;

  background-position:
    0 0,
    40px 60px,
    100px 120px;

  opacity:.12;

  pointer-events:none;

  z-index:-2;

  animation:starsMove 90s linear infinite;
}

/* glow ม่วง */

body::after{

  content:"";

  position:fixed;

  width:900px;
  height:900px;

  top:-250px;
  left:50%;

  transform:translateX(-50%);

  background:
    radial-gradient(
      circle,
      rgba(120,0,255,.18),
      transparent 70%
    );

  filter:blur(90px);

  pointer-events:none;

  z-index:-1;
}

/* animation */

@keyframes starsMove{

  from{
    transform:translateY(0);
  }

  to{
    transform:translateY(-300px);
  }

}/* =========================
   MOBILE FIX
========================= */

@media(max-width:768px){

  /* HEADER */

  header{

    width:92% !important;

    top:18px !important;

    padding:18px 20px !important;

    border-radius:28px !important;
  }

  .logo h1{
    font-size:34px !important;
  }

  nav{
    gap:18px !important;
    flex-wrap:wrap;
  }

  nav a{
    font-size:15px !important;
  }

  /* HERO */

  .hero-home{

    min-height:72vh !important;

    display:flex;
    align-items:center;
    justify-content:center;

    padding-top:120px !important;
  }

  .hero-bg{

    width:100% !important;
    height:100% !important;

    display:flex;
    align-items:center;
    justify-content:center;
  }

  .hero-bg img{

    width:115% !important;
    height:auto !important;

    object-fit:contain !important;

    transform:none !important;

    opacity:.95;
  }

  /* TAGS */

  .hero-tags{

    bottom:36px !important;

    gap:8px !important;

    padding:0 12px !important;

    flex-wrap:wrap;
  }

  .hero-tags span{

    font-size:10px !important;

    padding:7px 12px !important;
  }

  /* WELCOME */

  .welcome-section{

    min-height:auto !important;

    padding:100px 20px !important;

    margin-top:-40px !important;
  }

  .welcome-logo{

    width:300px !important;
  }

}/* ให้ดาวเห็นทุก section */
.section,
.video-section,
.featured-section,
.showcase-section,
.work-slider-section,
.welcome-section{
  background:transparent !important;
}

/* ถ้าพื้นยังมืดทึบ ให้ body เป็นดาว */
body{
  background:
    radial-gradient(circle at top,#170038 0%,#090018 45%,#050010 100%) !important;
}
/* =========================
   ONE BLOCK LAYOUT
========================= */

main{

  background:
    radial-gradient(circle at top,
      #1b0040 0%,
      #0c0020 35%,
      #050010 100%);

  position:relative;

  overflow:hidden;
}

/* ดาว */

main::before{

  content:"";

  position:absolute;
  inset:0;

  background-image:
    radial-gradient(rgba(255,255,255,.9) 1px, transparent 1px);

  background-size:120px 120px;

  opacity:.08;

  pointer-events:none;

  animation:starsMove 90s linear infinite;

  z-index:0;
}

@keyframes starsMove{

  from{
    transform:translateY(0);
  }

  to{
    transform:translateY(-300px);
  }

}

/* ทุก section โปร่ง */

.hero-home,
.welcome-section,
.work-slider-section,
.section,
.featured-section{

  background:transparent !important;

  position:relative;
  z-index:2;
}

/* welcome ไม่ต้องมีพื้นหลังแล้ว */

.welcome-section{

  margin-top:-60px;

  padding-top:80px;
}

/* works ต่อจาก welcome เลย */

.work-slider-section{

  margin-top:-40px;

  padding-top:40px;
}
/* FIX HERO IMAGE BLEND */

.hero-home{
  background:#050010 !important;
}

.hero-bg{
  inset:0 !important;
  overflow:hidden !important;
}

.hero-bg img{
  width:100% !important;
  height:100% !important;

  object-fit:cover !important;
  object-position:center top !important;

  mask-image:linear-gradient(
    to bottom,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) 68%,
    rgba(0,0,0,.55) 82%,
    rgba(0,0,0,0) 100%
  );

  -webkit-mask-image:linear-gradient(
    to bottom,
    rgba(0,0,0,1) 0%,
    rgba(0,0,0,1) 68%,
    rgba(0,0,0,.55) 82%,
    rgba(0,0,0,0) 100%
  );
}

.hero-overlay{
  background:linear-gradient(
    to bottom,
    rgba(5,0,16,0) 0%,
    rgba(5,0,16,.18) 55%,
    #050010 100%
  ) !important;
}
.hero-home::after{
  display:none !important;
}
/* SAME BACKGROUND COLOR FIX */

body,
main,
.hero-home,
.welcome-section,
.work-slider-section,
.section,
.video-section,
.featured-section{
  background:#14002d !important;
}

/* ไล่สีนิดเดียวให้ไม่แบน */
main{
  background:
    linear-gradient(
      to bottom,
      #120028 0%,
      #14002d 45%,
      #120028 100%
    ) !important;
}

/* เอาเส้นตัด/เงาตัดออก */
.hero-overlay,
.hero-home::after{
  display:none !important;
}

/* ให้รูป hero ลอยบนพื้นสีเดียว */
.hero-bg img{
  object-fit:contain !important;
  background:#14002d !important;
}
/* HERO SMOOTH FADE */

.hero-home{
  position:relative;
  overflow:hidden;
}

.hero-home::after{

  content:"";

  position:absolute;

  left:0;
  bottom:-1px;

  width:100%;
  height:260px;

  z-index:5;

  pointer-events:none;

  background:linear-gradient(
    to bottom,
    rgba(20,0,45,0) 0%,
    rgba(20,0,45,.15) 20%,
    rgba(20,0,45,.45) 45%,
    rgba(20,0,45,.78) 70%,
    #14002d 100%
  );
}
/* WELCOME SMOOTH FADE */

.welcome-section{
  position:relative;
  overflow:hidden;
}

.welcome-section::after{

  content:"";

  position:absolute;

  left:0;
  bottom:-1px;

  width:100%;
  height:240px;

  pointer-events:none;

  z-index:3;

  background:linear-gradient(
    to bottom,
    rgba(20,0,45,0) 0%,
    rgba(20,0,45,.12) 22%,
    rgba(20,0,45,.35) 48%,
    rgba(20,0,45,.72) 74%,
    #14002d 100%
  );
}
.welcome-box::before{

  content:"";

  position:absolute;

  left:50%;
  top:50%;

  transform:translate(-50%,-50%);

  width:540px;
  height:540px;

  border-radius:50%;

  background:
    radial-gradient(
      circle,
      rgba(170,70,255,.22),
      rgba(70,120,255,.10),
      transparent 72%
    );

  filter:blur(40px);

  z-index:-1;
}
.grim-showcase{
  width:100%;
  padding:100px 8%;
  text-align:center;
  background:#14002d;
}

.grim-showcase h2{
  color:white;
  font-size:48px;
  letter-spacing:6px;
  margin-bottom:35px;
}

.grim-showcase model-viewer{
  display:block;
  width:100%;
  max-width:900px;
  height:600px;
  margin:0 auto;
  border-radius:40px;
  background:#241038;
}
.grim-showcase model-viewer{
    width:100%;
    height:700px;
    background:#241038;
}