/* ========== RESET & BASE ========== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{
  width:100%;height:100%;overflow:hidden;
  font-family:'Poppins',sans-serif;
  background:#000;color:#fff;
}

/* ========== CANVAS ========== */
#three-canvas{
  position:fixed;inset:0;width:100%;height:100%;
  display:block;z-index:0;
}

/* ========== LOADING SCREEN ========== */
#loading-screen{
  position:fixed;inset:0;z-index:9999;
  background:linear-gradient(135deg,#0a0a1a 0%,#0d1b2a 50%,#0a0a1a 100%);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .8s ease,visibility .8s ease;
}
#loading-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}
.loader-content{text-align:center}
.loader-logo{
  font-size:3rem;font-weight:900;letter-spacing:.3em;
  background:linear-gradient(90deg,#00aaff,#00ffcc,#00aaff);
  background-size:200%;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  animation:shimmer 2s linear infinite;
}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.loader-bar-wrap{
  width:280px;height:4px;margin:2rem auto 1rem;
  background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;
}
.loader-bar{
  width:0%;height:100%;
  background:linear-gradient(90deg,#00aaff,#00ffcc);
  border-radius:2px;transition:width .3s;
}
.loader-text{font-size:.85rem;color:rgba(255,255,255,.5);letter-spacing:.1em}
#start-btn{
  display:none;margin:2rem auto 0;
  padding:.8rem 2.5rem;border:none;border-radius:50px;
  background:linear-gradient(135deg,#00aaff,#00ffcc);
  color:#000;font-family:'Poppins',sans-serif;font-weight:700;
  font-size:1rem;cursor:pointer;letter-spacing:.15em;
  transition:transform .2s,box-shadow .2s;
}
#start-btn:hover{transform:scale(1.05);box-shadow:0 0 30px rgba(0,170,255,.5)}

/* ========== OVERLAY ========== */
#overlay{
  position:fixed;inset:0;z-index:10;
  pointer-events:none;
  display:flex;align-items:center;justify-content:center;
}
.scene-text{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .8s ease,visibility .8s ease;
  pointer-events:none;
}
.scene-text.active{opacity:1;visibility:visible}
.scene-text.active .final-panel,
.scene-text.active form,
.scene-text.active button[type="submit"],
.scene-text.active input,
.scene-text.active select,
.scene-text.active textarea{pointer-events:auto}

.scene-text h1{
  font-size:clamp(2.5rem,7vw,5.5rem);font-weight:900;
  letter-spacing:.15em;line-height:1.1;
  text-shadow:0 0 60px rgba(0,170,255,.4),0 4px 20px rgba(0,0,0,.8);
  background:linear-gradient(180deg,#fff 30%,#88ccff 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  transform:translateY(30px);
  animation:none;
}
.scene-text.active h1{animation:slideUp .8s ease forwards}

.scene-text h2{
  font-size:clamp(1.5rem,4vw,3rem);font-weight:700;
  text-shadow:0 2px 20px rgba(0,0,0,.7);
  transform:translateY(20px);opacity:0;
}
.scene-text.active h2{animation:slideUp .7s .2s ease forwards}

.scene-text>p{
  font-size:clamp(.9rem,2vw,1.3rem);font-weight:300;
  color:rgba(255,255,255,.8);margin-top:.5rem;
  transform:translateY(15px);opacity:0;
}
.scene-text.active>p{animation:slideUp .6s .5s ease forwards}

@keyframes slideUp{
  to{transform:translateY(0);opacity:1}
}

/* ========== WORKSHOP STEPS ========== */
.ws-steps{
  display:flex;flex-direction:column;gap:.8rem;
  padding:2rem;
}
.ws-step{
  font-size:clamp(1rem,2.5vw,1.4rem);font-weight:500;
  padding:.8rem 1.5rem;border-radius:12px;
  background:rgba(0,0,0,.4);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.08);
  opacity:0;transform:translateX(-40px);
  transition:opacity .5s ease,transform .5s ease,
             background .3s,border-color .3s;
}
.ws-step.highlight{
  background:rgba(0,170,255,.15);
  border-color:rgba(0,170,255,.4);
  box-shadow:0 0 20px rgba(0,170,255,.15);
}
.ws-step.visible{opacity:1;transform:translateX(0)}

/* ========== STATS ========== */
.stats{
  display:flex;gap:3rem;margin-top:2rem;flex-wrap:wrap;
  justify-content:center;
}
.stat{
  text-align:center;opacity:0;transform:translateY(20px);
}
.scene-text.active .stat{animation:slideUp .6s ease forwards}
.scene-text.active .stat:nth-child(1){animation-delay:.3s}
.scene-text.active .stat:nth-child(2){animation-delay:.5s}
.scene-text.active .stat:nth-child(3){animation-delay:.7s}
.stat b{
  display:block;font-size:clamp(2rem,5vw,3.5rem);font-weight:800;
  background:linear-gradient(135deg,#00aaff,#00ffcc);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.stat span{font-size:.85rem;color:rgba(255,255,255,.6)}

/* ========== FINAL PANEL (Services + Contact) ========== */
.final-panel{
  display:flex;gap:3rem;padding:2rem;
  max-width:900px;width:90%;
  background:rgba(10,15,30,.75);
  backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  pointer-events:auto;
}
.srv-col,.form-col{flex:1;min-width:0}
.srv-col h3,.form-col h3{
  font-size:1.2rem;font-weight:700;margin-bottom:1rem;
  color:#00ccff;
}
.srv-col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.srv-col li{
  font-size:.9rem;padding:.5rem .8rem;
  border-radius:8px;
  background:rgba(255,255,255,.04);
  transition:background .2s;
}
.srv-col li:hover{background:rgba(0,170,255,.12)}

/* ========== CONTACT FORM ========== */
#contact-form{display:flex;flex-direction:column;gap:.6rem}
#contact-form input,
#contact-form select,
#contact-form textarea{
  width:100%;padding:.65rem .9rem;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.06);
  color:#fff;font-family:'Poppins',sans-serif;font-size:.85rem;
  outline:none;transition:border-color .2s,background .2s;
}
#contact-form input:focus,
#contact-form select:focus,
#contact-form textarea:focus{
  border-color:rgba(0,170,255,.5);
  background:rgba(0,170,255,.06);
}
#contact-form select option{background:#1a2a3a;color:#fff}
#contact-form button[type="submit"]{
  padding:.7rem;border:none;border-radius:8px;
  background:linear-gradient(135deg,#00aaff,#00ffcc);
  color:#000;font-weight:700;font-size:.9rem;
  cursor:pointer;transition:transform .2s,box-shadow .2s;
  letter-spacing:.05em;
}
#contact-form button[type="submit"]:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 25px rgba(0,170,255,.35);
}

/* ========== FOOTER INFO ========== */
.footer-info{
  display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;
  margin-top:1.5rem;
  font-size:.8rem;color:rgba(255,255,255,.5);
}

/* ========== TIMELINE ========== */
#timeline{
  position:fixed;bottom:0;left:0;right:0;
  height:3px;z-index:50;
  background:rgba(255,255,255,.08);
}
#timeline-fill{
  height:100%;width:0%;
  background:linear-gradient(90deg,#00aaff,#00ffcc);
  transition:width .15s linear;
}

/* ========== REPLAY ========== */
#replay-btn{
  position:fixed;bottom:20px;right:20px;z-index:50;
  width:48px;height:48px;border-radius:50%;
  border:none;background:rgba(0,0,0,.5);
  backdrop-filter:blur(10px);
  color:#fff;font-size:1.5rem;cursor:pointer;
  opacity:0;visibility:hidden;
  transition:opacity .3s,visibility .3s,transform .2s,background .2s;
}
#replay-btn.visible{opacity:1;visibility:visible}
#replay-btn:hover{background:rgba(0,170,255,.3);transform:scale(1.1)}

/* ========== SOUND TOGGLE ========== */
#sound-btn{
  position:fixed;top:20px;right:20px;z-index:50;
  width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(0,0,0,.4);backdrop-filter:blur(8px);
  color:#fff;font-size:1.1rem;cursor:pointer;
  transition:background .2s;
}
#sound-btn:hover{background:rgba(0,170,255,.2)}

/* ========== RESPONSIVE ========== */
@media(max-width:768px){
  .final-panel{flex-direction:column;gap:1.5rem;padding:1.2rem}
  .stats{gap:1.5rem}
  .footer-info{flex-direction:column;align-items:center;gap:.5rem}
  .ws-steps{padding:1rem}
  #replay-btn{bottom:12px;right:12px;width:40px;height:40px;font-size:1.2rem}
}
@media(max-width:480px){
  .loader-logo{font-size:2rem;letter-spacing:.2em}
  .loader-bar-wrap{width:200px}
  .scene-text h1{letter-spacing:.08em}
  .stat b{font-size:2rem}
}
