/* EDIT HOUSE — contact launcher and cinematic motion layer */
.command-orb{
  position:relative;
  isolation:isolate;
  overflow:visible;
  transition:transform .35s var(--ease),background .35s,color .35s,box-shadow .35s;
}
.command-orb::before,.command-orb::after{
  content:'';
  position:absolute;
  inset:-7px;
  z-index:-1;
  border:1px solid #d7785380;
  border-radius:50%;
  animation:contactSignal 2.6s ease-out infinite;
}
.command-orb::after{animation-delay:1.3s}
.command-orb:hover,.command-orb[aria-expanded="true"]{
  transform:rotate(8deg) scale(1.08);
  background:var(--ivory);
  color:#191a16;
  box-shadow:0 18px 44px #0009,0 0 0 7px #d7785324;
}
.command-orb[aria-expanded="true"]>span{transform:rotate(135deg)}
.command-orb>span{transition:transform .45s var(--ease)}

.quick-menu.contact-popover{
  width:min(360px,calc(100vw - 26px));
  padding:0;
  overflow:hidden;
  border:1px solid #71695a;
  border-radius:16px;
  background:linear-gradient(145deg,#25271f 0%,#12130f 72%);
  box-shadow:0 30px 90px #000d,0 0 0 1px #ffffff09 inset;
  transform-origin:calc(100% - 27px) 100%;
  animation:contactPop .58s var(--ease) both;
}
.contact-popover::before{
  content:'';
  position:absolute;
  inset:-80% -35% auto auto;
  width:270px;
  height:270px;
  border-radius:50%;
  background:#c6532c30;
  filter:blur(8px);
  pointer-events:none;
  animation:contactGlow 5s ease-in-out infinite alternate;
}
.contact-pop-head{
  position:relative;
  padding:23px 22px 20px;
  border-bottom:1px solid #ffffff18;
}
.contact-pop-head>span{
  display:block;
  margin-bottom:12px;
  color:#c9c3b7;
  font:700 10px/1.2 'Courier New',monospace;
  letter-spacing:.13em;
}
.contact-pop-head strong{
  display:block;
  color:var(--ivory);
  font:800 34px/.9 House Display,Impact,sans-serif;
  letter-spacing:-.02em;
}
.contact-channels{display:grid;gap:8px;padding:12px}
.quick-menu .contact-channel{
  position:relative;
  width:100%;
  min-height:76px;
  display:grid;
  grid-template-columns:46px 1fr auto;
  align-items:center;
  gap:13px;
  padding:12px 15px;
  border:1px solid #ffffff18;
  border-radius:11px;
  background:#ffffff08;
  color:var(--ivory);
  font:inherit;
  cursor:pointer;
  overflow:hidden;
  text-align:left;
  animation:channelIn .5s var(--ease) both;
  transition:transform .35s var(--ease),border-color .35s,background .35s;
}
.quick-menu .contact-channel:nth-child(2){animation-delay:.08s}
.quick-menu .contact-channel:nth-child(3){animation-delay:.16s}
.quick-menu .contact-channel:nth-child(4){animation-delay:.24s}
.quick-menu .contact-channel::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 20%,#ffffff18 48%,transparent 75%);
  transform:translateX(-120%);
  transition:transform .75s var(--ease);
}
.quick-menu .contact-channel:hover{
  transform:translateX(-5px);
  border-color:#ffffff50;
  background:#ffffff10;
}
.quick-menu .contact-channel:hover::before{transform:translateX(120%)}
.quick-menu .contact-channel.whatsapp:hover{border-color:#53d76999;background:#17351f}
.quick-menu .contact-channel.instagram:hover{border-color:#d65bba99;background:#311b2d}
.quick-menu .contact-channel.call:hover{border-color:#78a9ff99;background:#17253b}
.quick-menu .contact-channel.ai-channel:hover{border-color:#d7785399;background:#3a2118}
.quick-menu .contact-channel .channel-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid #ffffff25;
  border-radius:50%;
  background:#0d0e0bcc;
}
.quick-menu .contact-channel .channel-icon img,.quick-menu .contact-channel .channel-icon svg{
  width:23px;
  height:23px;
  margin:0;
  filter:none;
}
.quick-menu .contact-channel.whatsapp .channel-icon img{filter:invert(76%) sepia(54%) saturate(735%) hue-rotate(82deg)}
.quick-menu .contact-channel.instagram .channel-icon{color:#f08acb}
.quick-menu .contact-channel.call .channel-icon{color:#8db8ff}
.quick-menu .contact-channel.ai-channel .channel-icon{color:#ef8a61;font-size:21px}
.quick-menu .contact-channel .channel-copy{
  width:auto;
  height:auto;
  display:block;
  border:0;
  border-radius:0;
}
.channel-copy b{display:block;font:800 15px/1.1 House Sans,Arial,sans-serif;letter-spacing:.04em}
.quick-menu .channel-copy small{display:block;padding:5px 0 0;color:#aaa59b;font:12px/1.2 House Sans,Arial,sans-serif}
.contact-channel>i{font-style:normal;font-size:19px;transition:transform .35s var(--ease)}
.contact-channel:hover>i{transform:translate(3px,-3px)}
.contact-question{
  width:calc(100% - 24px)!important;
  min-height:48px;
  margin:0 12px;
  padding:0 14px!important;
  display:grid!important;
  grid-template-columns:auto 1fr auto;
  gap:10px!important;
  border:1px solid #ffffff1c!important;
  border-radius:9px;
  background:#0e0f0c!important;
  color:#cbc5b9!important;
  font:700 10px/1.2 House Sans,Arial,sans-serif;
  letter-spacing:.06em;
  animation:channelIn .5s .14s var(--ease) both;
  transition:border-color .3s,color .3s,transform .3s!important;
}
.contact-question:hover{border-color:#d7785377!important;color:white!important;transform:translateY(-2px)}
.contact-question span{width:auto!important;height:auto!important;border:0!important;color:var(--accent)}
.contact-question i{font-style:normal;font-size:16px}
.contact-note{
  display:flex!important;
  align-items:center;
  gap:8px;
  padding:14px 17px 16px!important;
  color:#858174!important;
  font:11px/1.3 House Sans,Arial,sans-serif!important;
}
.contact-note span{width:6px;height:6px;border-radius:50%;background:#6bd37a;box-shadow:0 0 12px #6bd37a}

/* Stronger entrance rhythm across the portfolio without slowing navigation. */
.reveal{transform:translateY(38px) scale(.985);filter:blur(5px);transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease);transition-delay:var(--delay,0ms)}
.reveal.visible{transform:none;filter:none}
.project-card{transition:opacity .45s var(--ease),transform .55s var(--ease)}
.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:5px}

@keyframes contactSignal{0%{opacity:.7;transform:scale(.82)}70%,100%{opacity:0;transform:scale(1.38)}}
@keyframes contactPop{from{opacity:0;transform:translateY(22px) scale(.82) rotate(2deg);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}
@keyframes channelIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes contactGlow{to{transform:translate(-32px,35px) scale(1.25)}}

@media(max-width:680px){
  .quick-menu.contact-popover{width:min(340px,calc(100vw - 26px));max-height:calc(100vh - 100px)}
  .contact-pop-head{padding:20px 18px 17px}
  .contact-pop-head strong{font-size:30px}
  .quick-menu .contact-channel{min-height:70px}
}
@media(prefers-reduced-motion:reduce){
  .command-orb::before,.command-orb::after,.contact-popover::before{animation:none}
  .quick-menu.contact-popover,.quick-menu .contact-channel,.contact-question{animation:none}
  .reveal{filter:none;transform:none}
}
.motion-paused .command-orb::before,.motion-paused .command-orb::after,.motion-paused .contact-popover::before{animation:none}

/* Screenshot-inspired radial contact launcher */
.quick-menu.contact-popover.radial-contact{
  position:absolute;
  right:0;
  bottom:0;
  width:60px;
  height:60px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  transform:none;
  transform-origin:center;
  animation:none;
  pointer-events:none;
}
.quick-menu.contact-popover.radial-contact::before{display:none}
.radial-contact .contact-action{
  --tx:0px;
  --ty:0px;
  --action-delay:0ms;
  position:absolute;
  right:3px;
  bottom:3px;
  width:52px;
  height:52px;
  min-height:0;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #ffffff2b;
  border-radius:50%;
  background:#161712;
  color:#f7f2e9;
  box-shadow:0 14px 35px #000b,0 0 0 1px #0008 inset;
  opacity:0;
  transform:translate(0,0) scale(.35) rotate(25deg);
  transform-origin:center;
  pointer-events:none;
  transition:transform .55s var(--ease),opacity .3s ease,background .25s,border-color .25s,box-shadow .25s;
}
.radial-contact .contact-action.whatsapp{--tx:0px;--ty:-78px;--action-delay:30ms;color:#75e590}
.radial-contact .contact-action.instagram{--tx:-62px;--ty:-90px;--action-delay:90ms;color:#f08acb}
.radial-contact .contact-action.call{--tx:-113px;--ty:-53px;--action-delay:150ms;color:#8db8ff}
.radial-contact .contact-action.ai-channel{--tx:-130px;--ty:-2px;--action-delay:210ms;color:#fff;background:#d64f2d}
.radial-contact.is-open .contact-action{
  opacity:1;
  transform:translate(var(--tx),var(--ty)) scale(1) rotate(0);
  pointer-events:auto;
  transition-delay:var(--action-delay),var(--action-delay),0ms,0ms,0ms;
}
.radial-contact .contact-action:hover,.radial-contact .contact-action:focus-visible{
  border-color:currentColor;
  background:#25271f;
  box-shadow:0 18px 42px #000c,0 0 0 5px #ffffff0d;
  outline:0;
}
.radial-contact .contact-action.ai-channel:hover,.radial-contact .contact-action.ai-channel:focus-visible{background:#ed633d}
.radial-contact .action-icon{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  font-size:23px;
  line-height:1;
  transition:transform .35s var(--ease);
}
.radial-contact .action-icon img,.radial-contact .action-icon svg{display:block;width:25px;height:25px;margin:0;filter:none}
.radial-contact .whatsapp .action-icon img{filter:invert(79%) sepia(35%) saturate(1038%) hue-rotate(76deg)}
.radial-contact .contact-action:hover .action-icon,.radial-contact .contact-action:focus-visible .action-icon{transform:scale(1.14) rotate(-7deg)}
.radial-contact .action-label{
  position:absolute;
  right:60px;
  top:50%;
  width:max-content;
  padding:7px 9px;
  border:1px solid #ffffff18;
  border-radius:6px;
  background:#11120fee;
  color:#f4efe6;
  box-shadow:0 8px 22px #0008;
  font:700 11px/1 House Sans,Arial,sans-serif;
  letter-spacing:.03em;
  opacity:0;
  transform:translate(8px,-50%);
  pointer-events:none;
  transition:opacity .25s,transform .25s var(--ease);
}
.radial-contact .contact-action:hover .action-label,.radial-contact .contact-action:focus-visible .action-label{opacity:1;transform:translate(0,-50%)}
.command-orb{
  width:62px;
  height:62px;
  background:#d64f2d;
  border:1px solid #ff896446;
  box-shadow:0 0 0 9px #d64f2d14,0 16px 36px #000a;
}
.command-orb::before{inset:-11px;border-color:#d64f2d50}
.command-orb::after{inset:-18px;border-color:#d64f2d26}
.command-orb[aria-expanded="true"]{background:#d64f2d;color:#fff;transform:scale(1.06);box-shadow:0 0 0 10px #d64f2d18,0 18px 42px #000b}
.command-orb[aria-expanded="true"]>span{transform:rotate(90deg) scale(.92)}

@media(max-width:480px){
  .command{right:max(15px,env(safe-area-inset-right));bottom:max(15px,env(safe-area-inset-bottom))}
  .assistant{width:calc(100vw - 24px);max-height:calc(100svh - 96px)}
  .assistant-body{padding:18px}
  .assistant h3{font-size:24px}
  .radial-contact .contact-action.call{--tx:-105px;--ty:-52px}
  .radial-contact .contact-action.ai-channel{--tx:-117px;--ty:0px}
  .radial-contact .action-label{display:none}
}
@media(prefers-reduced-motion:reduce){
  .radial-contact .contact-action{transition:opacity .01ms;transform:none}
  .radial-contact.is-open .contact-action{transform:translate(var(--tx),var(--ty))}
}
.motion-paused .radial-contact .contact-action{transition:opacity .01ms}

/* Animated on-site assistant */
.assistant:not([hidden]){animation:assistantIn .52s var(--ease) both;transform-origin:calc(100% - 30px) 100%}
.assistant header>div>span{position:relative;animation:assistantSpark 2.4s ease-in-out infinite}
.assistant header>div>span::after{content:'';position:absolute;inset:-6px;border:1px solid #d64f2d55;border-radius:50%;animation:assistantRing 2.4s ease-out infinite}
.prompt-box{transition:border-color .3s,box-shadow .3s,transform .3s var(--ease)}
.prompt-box:focus-within{border-color:#d64f2d99;box-shadow:0 0 0 4px #d64f2d16,0 16px 35px #0007;transform:translateY(-2px)}
#ask-submit{transition:transform .3s var(--ease),box-shadow .3s,opacity .3s}
#ask-submit:hover{transform:rotate(8deg) scale(1.08);box-shadow:0 8px 20px #d64f2d55}
#ask-submit:disabled{opacity:.55;cursor:wait}
.faq-answer{position:relative;overflow:hidden;transition:border-color .3s,background .3s,transform .3s var(--ease)}
.faq-answer::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 15%,#ffffff0d 48%,transparent 78%);transform:translateX(-120%);pointer-events:none}
.faq-answer.is-thinking{border-color:#f08a61;background:#1d1714}
.faq-answer.is-thinking::after{animation:assistantScan 1s linear infinite}
.faq-answer.is-thinking p{opacity:.72}
.faq-answer.is-answering{animation:answerReveal .48s var(--ease)}
.suggestions button{transition:transform .3s var(--ease),border-color .3s,color .3s,background .3s}
.suggestions button:hover{transform:translateY(-2px);border-color:#d64f2d99;color:white;background:#d64f2d12}
.providers button img{display:block;margin:0 auto 6px;transition:transform .35s var(--ease)}
.providers button:hover img{transform:translateY(-2px) scale(1.12)}
@keyframes assistantIn{from{opacity:0;transform:translateY(26px) scale(.86);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}
@keyframes assistantSpark{50%{transform:rotate(12deg) scale(1.08);box-shadow:0 0 26px #d64f2d77}}
@keyframes assistantRing{0%{opacity:.7;transform:scale(.7)}75%,100%{opacity:0;transform:scale(1.45)}}
@keyframes assistantScan{to{transform:translateX(120%)}}
@keyframes answerReveal{from{opacity:.45;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.assistant:not([hidden]),.assistant header>div>span,.assistant header>div>span::after,.faq-answer.is-thinking::after,.faq-answer.is-answering{animation:none}.prompt-box:focus-within{transform:none}}
.motion-paused .assistant:not([hidden]),.motion-paused .assistant header>div>span,.motion-paused .assistant header>div>span::after,.motion-paused .faq-answer::after{animation:none}
