:root{
  --cs-bg:#ffffff;
  --cs-ink:#211d16;
  --cs-ink-dim:#5d5747;
  --cs-gold:#b8933f;
  --cs-gold-deep:#8a6b2c;
  --cs-font-display:'Fraunces', serif;
  --cs-font-body:'Inter', sans-serif;
  --cs-font-mono:'JetBrains Mono', monospace;
  --cs-ease:cubic-bezier(.16,.84,.44,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body.cs-page{
  min-height:100svh;
  overflow-x:hidden;
  overflow-y:auto;
  background:var(--cs-bg);
  color:var(--cs-ink);
  font-family:var(--cs-font-body);
  position:relative;
}

/* ambient background */
.cs-ambient{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
.cs-ambient-glow{
  position:absolute;border-radius:50%;filter:blur(80px);opacity:.45;
  animation:cs-glow-drift 18s var(--cs-ease) infinite alternate;
}
.cs-ambient-glow--a{
  width:min(60vw,520px);height:min(60vw,520px);
  top:-10%;left:-8%;background:radial-gradient(circle,rgba(207,168,79,.16) 0%,transparent 70%);
}
.cs-ambient-glow--b{
  width:min(50vw,440px);height:min(50vw,440px);
  bottom:-15%;right:-10%;background:radial-gradient(circle,rgba(138,107,44,.12) 0%,transparent 72%);
  animation-delay:-6s;
}
@keyframes cs-glow-drift{
  from{transform:translate(0,0) scale(1);}
  to{transform:translate(4vw,-3vh) scale(1.08);}
}

.cs-particles{position:absolute;inset:0;}
.cs-particle{
  position:absolute;width:3px;height:3px;border-radius:50%;
  background:rgba(207,168,79,.55);
  box-shadow:0 0 12px rgba(207,168,79,.4);
  animation:cs-particle-float var(--dur,12s) ease-in-out infinite;
  animation-delay:var(--delay,0s);
  opacity:var(--op,.6);
}
@keyframes cs-particle-float{
  0%,100%{transform:translate3d(0,0,var(--z,0)) scale(1);}
  50%{transform:translate3d(14px,-32px,calc(var(--z,0) + 20px)) scale(1.25);}
}

/* 3D stage */
.cs-stage-wrap{
  position:fixed;inset:0;z-index:1;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
  perspective:1400px;
  perspective-origin:50% 42%;
}
.cs-stage{
  --tilt-x:-14deg;
  --tilt-y:10deg;
  position:relative;width:min(94vw,720px);height:min(94vw,720px);
  transform-style:preserve-3d;
  transform:rotateX(var(--tilt-y)) rotateY(var(--tilt-x));
  will-change:transform;
  animation:cs-stage-float 9s var(--cs-ease) infinite alternate;
}
@keyframes cs-stage-float{
  from{translate:0 0;}
  to{translate:0 -12px;}
}

.cs-orbit-ring{
  position:absolute;left:50%;top:50%;
  border:1px solid rgba(207,168,79,.14);
  border-radius:50%;
  transform-style:preserve-3d;
  transform:translate(-50%,-50%) rotateX(76deg);
  animation:cs-ring-spin 48s linear infinite;
}
.cs-orbit-ring--outer{width:92%;height:92%;border-width:1px;}
.cs-orbit-ring--mid{
  width:76%;height:76%;
  border-color:rgba(207,168,79,.1);
  animation-duration:40s;
  transform:translate(-50%,-50%) rotateX(76deg) rotateZ(30deg);
}
.cs-orbit-ring--inner{
  width:58%;height:58%;
  border-color:rgba(207,168,79,.07);
  animation-direction:reverse;
  animation-duration:28s;
}
@keyframes cs-ring-spin{to{transform:translate(-50%,-50%) rotateX(76deg) rotateZ(360deg);}}

.cs-orbit{
  position:absolute;inset:0;
  transform-style:preserve-3d;
  animation:cs-orbit-spin 28s linear infinite;
}
.cs-orbit--reverse{
  animation:cs-orbit-spin-rev 20s linear infinite;
}
@keyframes cs-orbit-spin{to{transform:rotateY(360deg);}}
@keyframes cs-orbit-spin-rev{to{transform:rotateY(-360deg) rotateX(12deg);}}

.cs-shard{
  --angle:calc(var(--i) * 90deg);
  position:absolute;left:50%;top:50%;
  width:clamp(28px,5vw,42px);height:clamp(48px,8vw,72px);
  margin-left:calc(clamp(28px,5vw,42px) / -2);
  margin-top:calc(clamp(48px,8vw,72px) / -2);
  transform-style:preserve-3d;
  transform:rotateY(var(--angle)) translateZ(clamp(100px,20vw,180px)) rotateY(calc(var(--angle) * -1));
  background:linear-gradient(160deg,rgba(207,168,79,.5),rgba(138,107,44,.08));
  border:1px solid rgba(207,168,79,.35);
  border-radius:4px;
  opacity:.55;
  box-shadow:0 16px 30px -16px rgba(207,168,79,.35);
  animation:cs-shard-tilt 4s var(--cs-ease) infinite;
  animation-delay:calc(var(--i) * -.5s);
}
@keyframes cs-shard-tilt{
  0%,100%{transform:rotateY(var(--angle)) translateZ(clamp(100px,20vw,180px)) rotateY(calc(var(--angle) * -1)) rotateX(0deg);}
  50%{transform:rotateY(var(--angle)) translateZ(calc(clamp(100px,20vw,180px) + 20px)) rotateY(calc(var(--angle) * -1)) rotateX(18deg);}
}

.cs-frame{
  --angle:calc(var(--i) * 60deg);
  --orbit-z:clamp(160px,32vw,280px);
  position:absolute;left:50%;top:50%;
  width:clamp(76px,15vw,118px);
  height:clamp(102px,20vw,158px);
  margin-left:calc(clamp(76px,15vw,118px) / -2);
  margin-top:calc(clamp(102px,20vw,158px) / -2);
  transform-style:preserve-3d;
  transform:rotateY(var(--angle)) translateZ(var(--orbit-z)) rotateY(calc(var(--angle) * -1));
  animation:cs-frame-bob 4.5s var(--cs-ease) infinite;
  animation-delay:calc(var(--i) * -.65s);
}
@keyframes cs-frame-bob{
  0%,100%{transform:rotateY(var(--angle)) translateZ(var(--orbit-z)) rotateY(calc(var(--angle) * -1)) translateY(0) rotateX(0deg);}
  50%{transform:rotateY(var(--angle)) translateZ(calc(var(--orbit-z) + 22px)) rotateY(calc(var(--angle) * -1)) translateY(-10px) rotateX(8deg);}
}

.cs-frame span{
  display:block;width:100%;height:100%;border-radius:10px;overflow:hidden;
  border:1px solid rgba(207,168,79,.32);
  background:
    linear-gradient(145deg,rgba(255,255,255,.1),rgba(0,0,0,.4)),
    linear-gradient(var(--hue,135deg),rgba(207,168,79,.28),rgba(20,17,10,.92));
  box-shadow:
    0 22px 48px -22px rgba(0,0,0,.8),
    inset 0 1px 0 rgba(255,255,255,.14);
  transform:translateZ(6px);
  backface-visibility:hidden;
}
.cs-frame-shine{
  position:absolute;inset:0;border-radius:10px;pointer-events:none;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.22) 48%,transparent 62%);
  transform:translateZ(8px);
  animation:cs-shine-sweep 5s ease-in-out infinite;
  animation-delay:calc(var(--i) * -.8s);
}
@keyframes cs-shine-sweep{
  0%,100%{opacity:0;transform:translateZ(8px) translateX(-30%);}
  45%,55%{opacity:1;}
  100%{opacity:0;transform:translateZ(8px) translateX(30%);}
}
.cs-frame:nth-child(1) span{--hue:120deg;}
.cs-frame:nth-child(2) span{--hue:200deg;}
.cs-frame:nth-child(3) span{--hue:280deg;}
.cs-frame:nth-child(4) span{--hue:40deg;}
.cs-frame:nth-child(5) span{--hue:320deg;}
.cs-frame:nth-child(6) span{--hue:180deg;}

/* central lens */
.cs-lens{
  position:absolute;left:50%;top:50%;
  width:clamp(130px,24vw,200px);height:clamp(130px,24vw,200px);
  transform:translate(-50%,-50%) translateZ(48px);
  transform-style:preserve-3d;
  will-change:transform;
}
.cs-barrel{
  position:absolute;inset:-8%;
  transform-style:preserve-3d;
  animation:cs-barrel-spin 24s linear infinite;
}
.cs-barrel span{
  position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(207,168,79,.18);
  transform-style:preserve-3d;
}
.cs-barrel span:nth-child(1){transform:translateZ(-18px) scale(1.08);}
.cs-barrel span:nth-child(2){transform:translateZ(-8px) scale(1.04);border-color:rgba(207,168,79,.28);}
.cs-barrel span:nth-child(3){transform:translateZ(4px) scale(1);}
@keyframes cs-barrel-spin{to{transform:rotateY(360deg);}}

.cs-lens-halo{
  position:absolute;inset:-22%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(207,168,79,.28) 0%,transparent 68%);
  animation:cs-halo-pulse 3.5s ease-in-out infinite;
  transform:translateZ(-6px);
}
@keyframes cs-halo-pulse{
  0%,100%{opacity:.65;transform:translateZ(-6px) scale(1);}
  50%{opacity:1;transform:translateZ(-6px) scale(1.1);}
}

.cs-aperture{
  position:absolute;inset:8%;
  border-radius:50%;
  background:radial-gradient(circle at 50% 42%,#1a1610 0%,#050403 72%);
  border:2px solid rgba(207,168,79,.5);
  box-shadow:
    0 0 0 8px rgba(207,168,79,.08),
    0 28px 70px -24px rgba(0,0,0,.95),
    inset 0 0 50px rgba(0,0,0,.85);
  overflow:hidden;
  transform:translateZ(12px);
  animation:cs-aperture-breathe 5s var(--cs-ease) infinite;
}
@keyframes cs-aperture-breathe{
  0%,100%{transform:translateZ(12px) scale(1);}
  50%{transform:translateZ(12px) scale(1.06);}
}

.cs-aperture i{
  position:absolute;left:50%;top:50%;
  width:40%;height:135%;
  margin:-67.5% 0 0 -20%;
  background:linear-gradient(180deg,#0a0805 0%,#221c14 48%,#0a0805 100%);
  transform-origin:50% 100%;
  transform:rotate(calc(var(--b,0) * 45deg)) scaleY(.94);
  opacity:.96;
  animation:cs-blade-open 4s var(--cs-ease) infinite;
  animation-delay:calc(var(--b,0) * -.12s);
}
@keyframes cs-blade-open{
  0%,100%{transform:rotate(calc(var(--b,0) * 45deg)) scaleY(.94);}
  40%,60%{transform:rotate(calc(var(--b,0) * 45deg)) scaleY(.68);}
}
.cs-aperture i:nth-child(1){--b:0;}
.cs-aperture i:nth-child(2){--b:1;}
.cs-aperture i:nth-child(3){--b:2;}
.cs-aperture i:nth-child(4){--b:3;}
.cs-aperture i:nth-child(5){--b:4;}
.cs-aperture i:nth-child(6){--b:5;}
.cs-aperture i:nth-child(7){--b:6;}
.cs-aperture i:nth-child(8){--b:7;}

.cs-lens-glass{
  position:absolute;inset:22%;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.18) 0%,transparent 45%);
  pointer-events:none;
}
.cs-lens-label{
  position:absolute;left:50%;bottom:-12%;
  transform:translateX(-50%);
  font-family:var(--cs-font-mono);
  font-size:.62rem;
  letter-spacing:.22em;
  color:var(--cs-gold);
  opacity:.85;
}

.cs-beam{
  position:absolute;left:50%;top:58%;
  width:min(75vw,480px);height:min(55vh,360px);
  transform:translate(-50%,-18%) rotateX(80deg) translateZ(-40px);
  background:radial-gradient(ellipse at 50% 0%,rgba(207,168,79,.24) 0%,transparent 70%);
  filter:blur(10px);
  opacity:.85;
  pointer-events:none;
  animation:cs-beam-pulse 6s ease-in-out infinite;
}
.cs-beam--soft{
  width:min(90vw,560px);
  opacity:.45;
  filter:blur(24px);
  animation-delay:-2s;
}
@keyframes cs-beam-pulse{
  0%,100%{opacity:.7;transform:translate(-50%,-18%) rotateX(80deg) translateZ(-40px) scale(1);}
  50%{opacity:1;transform:translate(-50%,-18%) rotateX(80deg) translateZ(-40px) scale(1.08);}
}

.cs-grain{
  position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}

/* foreground content */
.cs-content{
  position:relative;z-index:4;
  min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  text-align:center;
  padding:max(6vh,2rem) 6vw max(4vh,2rem);
  padding-bottom:max(5vh,calc(2rem + env(safe-area-inset-bottom,0px)));
  background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.72) 38%,#ffffff 100%);
  pointer-events:none;
}
.cs-content a,.cs-content .cs-btn{pointer-events:auto;}

.cs-brand img{
  height:clamp(48px,8vw,64px);
  width:auto;max-width:min(200px,52vw);
  object-fit:contain;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,.08));
}
.cs-eyebrow{
  margin-top:1.4rem;
  font-family:var(--cs-font-mono);
  font-size:.68rem;
  letter-spacing:.24em;
  color:var(--cs-gold);
}
.cs-content h1{
  margin-top:.9rem;
  font-family:var(--cs-font-display);
  font-size:clamp(1.9rem,5.5vw,3.2rem);
  line-height:1.08;
  max-width:16ch;
  font-weight:400;
}
.cs-content h1 em{font-style:italic;color:var(--cs-gold);}
.cs-sub{
  margin-top:1rem;
  max-width:42ch;
  color:var(--cs-ink-dim);
  font-size:clamp(.9rem,2.2vw,1.02rem);
  line-height:1.7;
  font-weight:300;
}
.cs-about{
  margin-top:1.4rem;
  max-width:min(52ch,92vw);
  text-align:left;
  pointer-events:auto;
}
.cs-about-title{
  font-family:var(--cs-font-display);
  font-size:clamp(1.05rem,2.8vw,1.35rem);
  font-weight:400;
  line-height:1.25;
  color:var(--cs-ink);
  margin-bottom:.65rem;
}
.cs-about p{
  color:var(--cs-ink-dim);
  font-size:clamp(.82rem,2vw,.92rem);
  line-height:1.65;
  font-weight:300;
}
.cs-about p + p{margin-top:.75rem;}

.cs-countdown{
  display:flex;gap:clamp(.55rem,2vw,1.2rem);
  margin-top:1.8rem;flex-wrap:wrap;justify-content:center;
  perspective:900px;
}
.cs-cd{
  min-width:clamp(62px,14vw,82px);
  padding:.85rem .55rem;
  border:1px solid rgba(33,29,22,.12);
  border-radius:6px;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
  box-shadow:0 12px 32px -18px rgba(0,0,0,.08);
  transform-style:preserve-3d;
  transition:transform .15s var(--cs-ease);
}
.cs-tilt-card:hover{
  border-color:rgba(207,168,79,.45);
  box-shadow:0 18px 40px -16px rgba(207,168,79,.25);
}
.cs-cd strong{
  display:block;
  font-family:var(--cs-font-display);
  font-size:clamp(1.45rem,4vw,1.95rem);
  font-weight:500;
  color:var(--cs-ink);
  font-variant-numeric:tabular-nums;
}
.cs-cd span{
  display:block;margin-top:.25rem;
  font-family:var(--cs-font-mono);
  font-size:.58rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--cs-ink-dim);
}

.cs-actions{
  display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;
  margin-top:1.8rem;
}
.cs-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:13px 24px;border-radius:2px;
  font-size:.82rem;letter-spacing:.04em;
  text-decoration:none;transition:all .35s var(--cs-ease);
}
.cs-btn--primary{
  background:var(--cs-gold-deep);color:#fff;border:1px solid var(--cs-gold-deep);
}
.cs-btn--primary:hover{background:transparent;color:var(--cs-gold);}
.cs-btn--ghost{
  border:1px solid rgba(33,29,22,.16);color:var(--cs-ink);
}
.cs-btn--ghost:hover{border-color:var(--cs-gold);color:var(--cs-gold);}

.cs-contact{
  display:flex;gap:1.4rem;flex-wrap:wrap;justify-content:center;
  margin-top:1.4rem;
  font-family:var(--cs-font-mono);
  font-size:.74rem;letter-spacing:.05em;
}
.cs-contact a{
  color:var(--cs-gold);
  text-decoration:none;
  border-bottom:1px solid rgba(207,168,79,.35);
  padding-bottom:2px;
}
.cs-contact a:hover{color:var(--cs-gold-deep);border-color:var(--cs-gold-deep);}

@media (max-width:640px){
  .cs-stage-wrap{perspective:1000px;}
  .cs-stage{scale:.9;}
  .cs-content{
    padding-left:5vw;padding-right:5vw;
    background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.82) 28%,#ffffff 100%);
  }
}

/* Mobile: readable type + lighter visuals */
@media (max-width:860px),(pointer:coarse){
  :root{
    --cs-ink-dim:#454035;
  }
  body.cs-page{
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  .cs-stage-wrap,
  .cs-ambient-glow,
  .cs-particles,
  .cs-grain{
    display:none;
  }
  .cs-content{
    justify-content:flex-start;
    padding-top:max(12vh,3.5rem);
    background:linear-gradient(180deg,#ffffff 0%,#ffffff 100%);
  }
  .cs-eyebrow{
    font-size:.76rem;
    letter-spacing:.18em;
  }
  .cs-content h1{
    font-size:clamp(1.85rem,6.8vw,2.45rem);
    max-width:18ch;
    line-height:1.12;
  }
  .cs-sub{
    font-size:clamp(.96rem,3.6vw,1.05rem);
    line-height:1.65;
    font-weight:400;
    max-width:34ch;
  }
  .cs-about{
    max-width:min(36ch,94vw);
    text-align:center;
  }
  .cs-about-title{
    font-size:clamp(1.12rem,4.2vw,1.28rem);
    line-height:1.3;
  }
  .cs-about p{
    font-size:clamp(.92rem,3.4vw,.98rem);
    line-height:1.68;
    font-weight:400;
  }
  .cs-cd{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:#fff;
  }
  .cs-cd strong{font-size:clamp(1.55rem,5vw,1.75rem);}
  .cs-cd span{
    font-size:.7rem;
    letter-spacing:.1em;
  }
  .cs-btn{
    font-size:.88rem;
    padding:14px 22px;
    min-height:48px;
  }
  .cs-contact{
    font-size:.82rem;
    letter-spacing:.04em;
    gap:1rem 1.4rem;
  }
  .whatsapp-float{
    font-size:.84rem;
    padding:12px 15px 12px 13px;
  }
}

body.cs-lite .cs-orbit,
body.cs-lite .cs-orbit--reverse,
body.cs-lite .cs-orbit-ring,
body.cs-lite .cs-frame,
body.cs-lite .cs-shard,
body.cs-lite .cs-aperture,
body.cs-lite .cs-aperture i,
body.cs-lite .cs-lens-halo,
body.cs-lite .cs-barrel,
body.cs-lite .cs-beam,
body.cs-lite .cs-stage,
body.cs-lite .cs-frame-shine{
  animation:none!important;
}

@media (prefers-reduced-motion:reduce){
  .cs-orbit,.cs-orbit--reverse,.cs-orbit-ring,.cs-frame,.cs-shard,.cs-aperture,.cs-aperture i,.cs-lens-halo,.cs-barrel,.cs-ambient-glow,.cs-particle,.cs-beam,.cs-stage,.cs-frame-shine{
    animation:none!important;
  }
  .cs-stage{
    --tilt-x:-10deg;
    --tilt-y:8deg;
  }
}

/* WhatsApp float (injected by site-shell.js on Coming Soon page) */
.whatsapp-float{
  position:fixed;
  right:max(18px, env(safe-area-inset-right, 0px));
  bottom:max(18px, env(safe-area-inset-bottom, 0px));
  z-index:9400;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:12px 16px 12px 14px;
  border-radius:999px;
  background:#25d366;
  color:#fff;
  text-decoration:none;
  font-family:var(--cs-font-body);
  font-size:.82rem;
  font-weight:500;
  letter-spacing:.02em;
  box-shadow:0 10px 28px rgba(0,0,0,.22);
  transition:transform .25s var(--cs-ease), box-shadow .25s var(--cs-ease), background .25s var(--cs-ease);
}
.whatsapp-float:hover{
  background:#1ebe57;
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(0,0,0,.26);
  color:#fff;
}
.whatsapp-float-icon{display:flex;align-items:center;justify-content:center;line-height:0;}
.whatsapp-float-icon i{font-size:22px;line-height:1;}
.whatsapp-float-text{white-space:nowrap;}
@media (max-width:520px){
  .whatsapp-float{padding:11px 14px 11px 12px;font-size:.78rem;}
  .whatsapp-float-icon i{font-size:20px;}
}
